Files
SnowCatQQ/release-tools/webui-static/assets/usePress-BrNwsdVw.js
T
2026-11-12 06:29:38 +08:00

8 lines
8.0 KiB
JavaScript

import{bw as ee,ap as K,bx as ae,ba as oe,a3 as E,by as le,bz as fe,bb as $,bA as v,bB as ce,bC as ue,bs as de,a8 as te,bD as pe,b6 as ve,bE as z,bF as $e,bG as be,bv as N,aM as ge,a9 as ye,aN as Pe,an as j}from"./index-DiaaLdUu.js";import{r as k}from"./react-vendor-jWT2yUdV.js";let w="default",R="",A=new WeakMap;function Te(s){if(ee()){if(w==="default"){const i=K(s);R=i.documentElement.style.webkitUserSelect,i.documentElement.style.webkitUserSelect="none"}w="disabled"}else if(s instanceof HTMLElement||s instanceof SVGElement){let i="userSelect"in s.style?"userSelect":"webkitUserSelect";A.set(s,s.style[i]),s.style[i]="none"}}function W(s){if(ee()){if(w!=="disabled")return;w="restoring",setTimeout(()=>{ae(()=>{if(w==="restoring"){const i=K(s);i.documentElement.style.webkitUserSelect==="none"&&(i.documentElement.style.webkitUserSelect=R||""),R="",w="default"}})},300)}else if((s instanceof HTMLElement||s instanceof SVGElement)&&s&&A.has(s)){let i=A.get(s),o="userSelect"in s.style?"userSelect":"webkitUserSelect";s.style[o]==="none"&&(s.style[o]=i),s.getAttribute("style")===""&&s.removeAttribute("style"),A.delete(s)}}function Ee(s){let i=k.useContext(pe);if(i){let{register:o,...l}=i;s=te(l,s),o()}return ve(i,s.ref),s}var O=new WeakMap;class D{continuePropagation(){z(this,O,!1)}get shouldStopPropagation(){return $e(this,O)}constructor(i,o,l,u){be(this,O,{writable:!0,value:void 0}),z(this,O,!0);var b;let g=(b=u==null?void 0:u.target)!==null&&b!==void 0?b:l.currentTarget;const p=g==null?void 0:g.getBoundingClientRect();let M,h=0,I,y=null;l.clientX!=null&&l.clientY!=null&&(I=l.clientX,y=l.clientY),p&&(I!=null&&y!=null?(M=I-p.left,h=y-p.top):(M=p.width/2,h=p.height/2)),this.type=i,this.pointerType=o,this.target=l.currentTarget,this.shiftKey=l.shiftKey,this.metaKey=l.metaKey,this.ctrlKey=l.ctrlKey,this.altKey=l.altKey,this.x=M,this.y=h}}const q=Symbol("linkClicked"),J="react-aria-pressable-style",Q="data-react-aria-pressable";function ke(s){let{onPress:i,onPressChange:o,onPressStart:l,onPressEnd:u,onPressUp:b,onClick:g,isDisabled:p,isPressed:M,preventFocusOnPress:h,shouldCancelOnPointerExit:I,allowTextSelectionOnPress:y,ref:_,...se}=Ee(s),[ne,G]=k.useState(!1),S=k.useRef({isPressed:!1,ignoreEmulatedMouseEvents:!1,didFirePressStart:!1,isTriggeringEvent:!1,activePointerId:null,target:null,isOverTarget:!1,pointerType:null,disposables:[]}),{addGlobalListener:C,removeAllGlobalListeners:H}=oe(),U=E((e,n)=>{let c=S.current;if(p||c.didFirePressStart)return!1;let t=!0;if(c.isTriggeringEvent=!0,l){let a=new D("pressstart",n,e);l(a),t=a.shouldStopPropagation}return o&&o(!0),c.isTriggeringEvent=!1,c.didFirePressStart=!0,G(!0),t}),x=E((e,n,c=!0)=>{let t=S.current;if(!t.didFirePressStart)return!1;t.didFirePressStart=!1,t.isTriggeringEvent=!0;let a=!0;if(u){let r=new D("pressend",n,e);u(r),a=r.shouldStopPropagation}if(o&&o(!1),G(!1),i&&c&&!p){let r=new D("press",n,e);i(r),a&&(a=r.shouldStopPropagation)}return t.isTriggeringEvent=!1,a}),L=E((e,n)=>{let c=S.current;if(p)return!1;if(b){c.isTriggeringEvent=!0;let t=new D("pressup",n,e);return b(t),c.isTriggeringEvent=!1,t.shouldStopPropagation}return!0}),T=E(e=>{let n=S.current;if(n.isPressed&&n.target){n.didFirePressStart&&n.pointerType!=null&&x(m(n.target,e),n.pointerType,!1),n.isPressed=!1,n.isOverTarget=!1,n.activePointerId=null,n.pointerType=null,H(),y||W(n.target);for(let c of n.disposables)c();n.disposables=[]}}),X=E(e=>{I&&T(e)}),F=E(e=>{p||g==null||g(e)}),V=E((e,n)=>{if(!p&&g){let c=new MouseEvent("click",e);le(c,n),g(fe(c))}}),ie=k.useMemo(()=>{let e=S.current,n={onKeyDown(t){if(B(t.nativeEvent,t.currentTarget)&&$(t.currentTarget,v(t.nativeEvent))){var a;Z(v(t.nativeEvent),t.key)&&t.preventDefault();let r=!0;if(!e.isPressed&&!t.repeat){e.target=t.currentTarget,e.isPressed=!0,e.pointerType="keyboard",r=U(t,"keyboard");let f=t.currentTarget,d=P=>{B(P,f)&&!P.repeat&&$(f,v(P))&&e.target&&L(m(e.target,P),"keyboard")};C(K(t.currentTarget),"keyup",ye(d,c),!0)}r&&t.stopPropagation(),t.metaKey&&Pe()&&((a=e.metaKeyEvents)===null||a===void 0||a.set(t.key,t.nativeEvent))}else t.key==="Meta"&&(e.metaKeyEvents=new Map)},onClick(t){if(!(t&&!$(t.currentTarget,v(t.nativeEvent)))&&t&&t.button===0&&!e.isTriggeringEvent&&!N.isOpening){let a=!0;if(p&&t.preventDefault(),!e.ignoreEmulatedMouseEvents&&!e.isPressed&&(e.pointerType==="virtual"||ge(t.nativeEvent))){let r=U(t,"virtual"),f=L(t,"virtual"),d=x(t,"virtual");F(t),a=r&&f&&d}else if(e.isPressed&&e.pointerType!=="keyboard"){let r=e.pointerType||t.nativeEvent.pointerType||"virtual",f=L(m(t.currentTarget,t),r),d=x(m(t.currentTarget,t),r,!0);a=f&&d,e.isOverTarget=!1,F(t),T(t)}e.ignoreEmulatedMouseEvents=!1,a&&t.stopPropagation()}}},c=t=>{var a;if(e.isPressed&&e.target&&B(t,e.target)){var r;Z(v(t),t.key)&&t.preventDefault();let d=v(t),P=$(e.target,v(t));x(m(e.target,t),"keyboard",P),P&&V(t,e.target),H(),t.key!=="Enter"&&Y(e.target)&&$(e.target,d)&&!t[q]&&(t[q]=!0,N(e.target,t,!1)),e.isPressed=!1,(r=e.metaKeyEvents)===null||r===void 0||r.delete(t.key)}else if(t.key==="Meta"&&(!((a=e.metaKeyEvents)===null||a===void 0)&&a.size)){var f;let d=e.metaKeyEvents;e.metaKeyEvents=void 0;for(let P of d.values())(f=e.target)===null||f===void 0||f.dispatchEvent(new KeyboardEvent("keyup",P))}};if(typeof PointerEvent<"u"){n.onPointerDown=r=>{if(r.button!==0||!$(r.currentTarget,v(r.nativeEvent)))return;if(ce(r.nativeEvent)){e.pointerType="virtual";return}e.pointerType=r.pointerType;let f=!0;if(!e.isPressed){e.isPressed=!0,e.isOverTarget=!0,e.activePointerId=r.pointerId,e.target=r.currentTarget,y||Te(e.target),f=U(r,e.pointerType);let d=v(r.nativeEvent);"releasePointerCapture"in d&&d.releasePointerCapture(r.pointerId),C(K(r.currentTarget),"pointerup",t,!1),C(K(r.currentTarget),"pointercancel",a,!1)}f&&r.stopPropagation()},n.onMouseDown=r=>{if($(r.currentTarget,v(r.nativeEvent))&&r.button===0){if(h){let f=ue(r.target);f&&e.disposables.push(f)}r.stopPropagation()}},n.onPointerUp=r=>{!$(r.currentTarget,v(r.nativeEvent))||e.pointerType==="virtual"||r.button===0&&!e.isPressed&&L(r,e.pointerType||r.pointerType)},n.onPointerEnter=r=>{r.pointerId===e.activePointerId&&e.target&&!e.isOverTarget&&e.pointerType!=null&&(e.isOverTarget=!0,U(m(e.target,r),e.pointerType))},n.onPointerLeave=r=>{r.pointerId===e.activePointerId&&e.target&&e.isOverTarget&&e.pointerType!=null&&(e.isOverTarget=!1,x(m(e.target,r),e.pointerType,!1),X(r))};let t=r=>{if(r.pointerId===e.activePointerId&&e.isPressed&&r.button===0&&e.target){if($(e.target,v(r))&&e.pointerType!=null){let f=!1,d=setTimeout(()=>{e.isPressed&&e.target instanceof HTMLElement&&(f?T(r):(de(e.target),e.target.click()))},80);C(r.currentTarget,"click",()=>f=!0,!0),e.disposables.push(()=>clearTimeout(d))}else T(r);e.isOverTarget=!1}},a=r=>{T(r)};n.onDragStart=r=>{$(r.currentTarget,v(r.nativeEvent))&&T(r)}}return n},[C,p,h,H,y,T,X,x,U,L,F,V]);return k.useEffect(()=>{if(!_)return;const e=K(_.current);if(!e||!e.head||e.getElementById(J))return;const n=e.createElement("style");n.id=J,n.textContent=`
@layer {
[${Q}] {
touch-action: pan-x pan-y pinch-zoom;
}
}
`.trim(),e.head.prepend(n)},[_]),k.useEffect(()=>{let e=S.current;return()=>{var n;y||W((n=e.target)!==null&&n!==void 0?n:void 0);for(let c of e.disposables)c();e.disposables=[]}},[y]),{isPressed:M||ne,pressProps:te(se,ie,{[Q]:!0})}}function Y(s){return s.tagName==="A"&&s.hasAttribute("href")}function B(s,i){const{key:o,code:l}=s,u=i,b=u.getAttribute("role");return(o==="Enter"||o===" "||o==="Spacebar"||l==="Space")&&!(u instanceof j(u).HTMLInputElement&&!re(u,o)||u instanceof j(u).HTMLTextAreaElement||u.isContentEditable)&&!((b==="link"||!b&&Y(u))&&o!=="Enter")}function m(s,i){let o=i.clientX,l=i.clientY;return{currentTarget:s,shiftKey:i.shiftKey,ctrlKey:i.ctrlKey,metaKey:i.metaKey,altKey:i.altKey,clientX:o,clientY:l}}function me(s){return s instanceof HTMLInputElement?!1:s instanceof HTMLButtonElement?s.type!=="submit"&&s.type!=="reset":!Y(s)}function Z(s,i){return s instanceof HTMLInputElement?!re(s,i):me(s)}const he=new Set(["checkbox","radio","range","color","file","image","button","submit","reset"]);function re(s,i){return s.type==="checkbox"||s.type==="radio"?i===" ":he.has(s.type)}export{ke as $};