@omnipad/core 0.5.0 → 0.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunk-42WBUPM3.cjs +1 -0
- package/dist/chunk-45F3BQT7.cjs +1 -0
- package/dist/chunk-52YF3VHH.cjs +1 -0
- package/dist/chunk-6XY2ZHZ3.mjs +1 -0
- package/dist/chunk-AK3RL7NL.mjs +1 -0
- package/dist/chunk-EYKCVOUA.mjs +1 -0
- package/dist/chunk-HCOFKHVV.cjs +1 -0
- package/dist/chunk-HQNUZXP5.mjs +1 -0
- package/dist/chunk-J5SVBM6K.mjs +1 -0
- package/dist/chunk-NB4FTDOP.cjs +1 -0
- package/dist/chunk-OVV5DKL6.cjs +1 -0
- package/dist/chunk-YAS6LFBF.mjs +1 -0
- package/dist/dom/index.cjs +1 -1
- package/dist/dom/index.d.cts +105 -36
- package/dist/dom/index.d.ts +105 -36
- package/dist/dom/index.mjs +1 -1
- package/dist/guest/index.cjs +1 -0
- package/dist/guest/index.d.cts +21 -0
- package/dist/guest/index.d.ts +21 -0
- package/dist/guest/index.mjs +1 -0
- package/dist/{index-DVegtw8s.d.cts → index-Dd0aHJaA.d.cts} +739 -27
- package/dist/{index-DVegtw8s.d.ts → index-Dd0aHJaA.d.ts} +739 -27
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +312 -5
- package/dist/index.d.ts +312 -5
- package/dist/index.mjs +1 -1
- package/dist/sticky-CCj0ECTY.d.cts +285 -0
- package/dist/sticky-d_z_GU83.d.ts +285 -0
- package/dist/utils/index.cjs +1 -1
- package/dist/utils/index.d.cts +122 -69
- package/dist/utils/index.d.ts +122 -69
- package/dist/utils/index.mjs +1 -1
- package/package.json +9 -1
- package/dist/chunk-FSJTQU4W.cjs +0 -1
- package/dist/chunk-MKVX5ALC.mjs +0 -1
- package/dist/chunk-PACTGVBB.mjs +0 -1
- package/dist/chunk-U52W5J3K.cjs +0 -1
- package/dist/chunk-V7AHGFPB.mjs +0 -1
- package/dist/chunk-VHF3K5X6.cjs +0 -1
- package/dist/chunk-ZHPNS73J.cjs +0 -1
- package/dist/chunk-ZM2LX5IW.mjs +0 -1
- package/dist/sticky-4yk5DLzG.d.cts +0 -59
- package/dist/sticky-CLBq1EPa.d.ts +0 -59
- package/dist/traits-D6ePqSA6.d.cts +0 -152
- package/dist/traits-dAndzyWS.d.ts +0 -152
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';var chunkU52W5J3K_cjs=require('./chunk-U52W5J3K.cjs'),chunkVHF3K5X6_cjs=require('./chunk-VHF3K5X6.cjs'),chunkZHPNS73J_cjs=require('./chunk-ZHPNS73J.cjs');var S=class{constructor(){chunkZHPNS73J_cjs.a(this,"listeners",new Set);}subscribe(s){return this.listeners.add(s),()=>this.listeners.delete(s)}emit(s){this.listeners.forEach(t=>{try{t(s);}catch(e){console.error("[OmniPad-Core] Emitter callback error:",e);}});}clear(){this.listeners.clear();}};var l=class{constructor(s,t,e,i){chunkZHPNS73J_cjs.a(this,"uid");chunkZHPNS73J_cjs.a(this,"type");chunkZHPNS73J_cjs.a(this,"config");chunkZHPNS73J_cjs.a(this,"state");chunkZHPNS73J_cjs.a(this,"rectProvider",null);chunkZHPNS73J_cjs.a(this,"_onMarkDirtyCb",null);chunkZHPNS73J_cjs.a(this,"stateEmitter",new S);chunkZHPNS73J_cjs.a(this,"configEmitter",new S);this.uid=s,this.type=t,this.config=e,this.state=i;}getConfig(){return this.config}subscribeConfig(s){return s(this.config),this.configEmitter.subscribe(s)}updateConfig(s){this.config={...this.config,...s},this.configEmitter.emit(this.config);}getState(){return this.state}setState(s){this.state={...this.state,...s},this.stateEmitter.emit(this.state);}subscribeState(s){return s(this.state),this.stateEmitter.subscribe(s)}destroy(){this.reset(),this.stateEmitter.clear(),this.configEmitter.clear(),chunkZHPNS73J_cjs.h.getInstance().unregister(this.uid);}get rect(){return this.rectProvider?this.rectProvider():null}bindRectProvider(s,t){this.rectProvider=s,t&&(this._onMarkDirtyCb=t);}markRectDirty(){this._onMarkDirtyCb?.();}};var c=class{constructor(s,t){chunkZHPNS73J_cjs.a(this,"isPressed",false);chunkZHPNS73J_cjs.a(this,"mapping");chunkZHPNS73J_cjs.a(this,"targetId");this.update(s,t);}update(s,t){this.isPressed&&this.reset(),this.targetId=s,this.mapping=this.hydrate(t);}hydrate(s){if(!s)return;let t={...s};if(t.type==="mouse")return t.button=t.button??0,t;let{key:e,code:i,keyCode:o}=t;if(e||i||o){t.type="keyboard";let a=Object.values(chunkZHPNS73J_cjs.b).find(p=>p.code===i||p.key===e||p.keyCode===o);a&&(t.key=e??a.key,t.code=i??a.code,t.keyCode=o??a.keyCode);}return t}press(){if(!this.mapping||this.isPressed)return;this.isPressed=true;let s=this.mapping.type==="keyboard"?chunkZHPNS73J_cjs.d.KEYDOWN:chunkZHPNS73J_cjs.d.MOUSEDOWN;this.emitSignal(s);}release(s=true){if(!this.mapping||!this.isPressed)return;this.isPressed=false;let t=this.mapping.type==="keyboard"?chunkZHPNS73J_cjs.d.KEYUP:chunkZHPNS73J_cjs.d.MOUSEUP;this.emitSignal(t),this.mapping.type==="mouse"&&s&&this.emitSignal(chunkZHPNS73J_cjs.d.CLICK);}move(s){this.mapping?.type==="mouse"&&this.emitSignal(chunkZHPNS73J_cjs.d.MOUSEMOVE,s);}reset(){this.isPressed&&this.release(false);}async tap(s=true){this.isPressed||(this.press(),await chunkVHF3K5X6_cjs.c(2),this.isPressed&&this.release(s));}emitSignal(s,t={}){this.mapping&&chunkZHPNS73J_cjs.h.getInstance().broadcastSignal({targetStageId:this.targetId||"",type:s,payload:{key:this.mapping.key,code:this.mapping.code,keyCode:this.mapping.keyCode,button:this.mapping.button,point:this.mapping.fixedPoint,...t}});}};var x={isActive:false,isPressed:false,pointerId:null,value:0},w=class extends l{constructor(t,e,i){super(t,i||chunkZHPNS73J_cjs.c.BUTTON,e,x);chunkZHPNS73J_cjs.a(this,"emitter");this.emitter=new c(e.targetStageId,e.mapping);}get activePointerId(){return this.state.pointerId}onPointerDown(t){this.setState({isActive:true,isPressed:true,pointerId:t.pointerId}),this.emitter.press();}onPointerUp(t){!this.state.isActive||t.pointerId!==this.state.pointerId||this.handleRelease(true);}onPointerCancel(){this.handleRelease(false);}onPointerMove(){}reset(){this.setState(x),this.emitter.reset();}updateConfig(t){super.updateConfig(t),this.emitter.update(this.config.targetStageId,this.config.mapping);}handleRelease(t){this.setState(x),this.emitter.release(t);}triggerDown(){this.state.isPressed||(this.setState({isActive:true,isPressed:true}),this.emitter.press());}triggerUp(){this.state.isPressed&&(this.setState({isActive:false,isPressed:false}),this.emitter.release(true));}};var K={isActive:false,pointerId:null,vector:{x:0,y:0}},X=.002,L=.3,M=class extends l{constructor(t,e,i){super(t,i||chunkZHPNS73J_cjs.c.D_PAD,e,K);chunkZHPNS73J_cjs.a(this,"emitters");let o=e.targetStageId;this.emitters={up:new c(o,e.mapping?.up),down:new c(o,e.mapping?.down),left:new c(o,e.mapping?.left),right:new c(o,e.mapping?.right)};}get activePointerId(){return this.state.pointerId}onPointerDown(t){this.setState({isActive:true,pointerId:t.pointerId,vector:{x:0,y:0}}),this.processInput(t,true);}onPointerMove(t){!this.state.isActive||t.pointerId!==this.state.pointerId||this.processInput(t);}onPointerUp(t){!this.state.isActive||t.pointerId!==this.state.pointerId||this.reset();}onPointerCancel(){this.reset();}processInput(t,e=false){if(!this.state.isActive)return;let i=this.rect;if(!i)return;let o=i.left+i.width/2,a=i.top+i.height/2,p=i.width/2,f=i.height/2,P=(t.clientX-o)/p,b=(t.clientY-a)/f;if(e&&(P!=chunkU52W5J3K_cjs.d(P,-1,1)||b!=chunkU52W5J3K_cjs.d(b,-1,1))){this.setState({vector:{x:0,y:0}}),this.markRectDirty();return}let A={x:chunkU52W5J3K_cjs.d(P,-1,1),y:chunkU52W5J3K_cjs.d(b,-1,1)};chunkU52W5J3K_cjs.s(A,this.state.vector,X)||(this.setState({vector:A}),this.handleDigitalKeys(A));}handleDigitalKeys(t){let e=this.config.threshold??.3;t.y<-e?(this.emitters.up.press(),this.emitters.down.release()):t.y>e?(this.emitters.down.press(),this.emitters.up.release()):(this.emitters.up.release(),this.emitters.down.release()),t.x<-e?(this.emitters.left.press(),this.emitters.right.release()):t.x>e?(this.emitters.right.press(),this.emitters.left.release()):(this.emitters.left.release(),this.emitters.right.release());}reset(){this.emitters.up.reset(),this.emitters.down.reset(),this.emitters.left.reset(),this.emitters.right.reset(),this.setState(K);}updateConfig(t){super.updateConfig(t),this.emitters.up.update(this.config.targetStageId,this.config.mapping?.up),this.emitters.down.update(this.config.targetStageId,this.config.mapping?.down),this.emitters.left.update(this.config.targetStageId,this.config.mapping?.left),this.emitters.right.update(this.config.targetStageId,this.config.mapping?.right);}triggerVector(t,e){let i=this.config.threshold??.3;if(Math.abs(t)<i&&Math.abs(e)<i){this.state.isActive&&this.reset();return}this.state.isActive||this.setState({isActive:true});let o=chunkU52W5J3K_cjs.e(this.state.vector.x,t,L),a=chunkU52W5J3K_cjs.e(this.state.vector.y,e,L),p={x:o,y:a};chunkU52W5J3K_cjs.s(p,this.state.vector,X)||(this.setState({vector:p}),this.handleDigitalKeys(p));}};var q={isDynamicActive:false,dynamicPointerId:null,dynamicPosition:{x:0,y:0}},k=class extends l{constructor(t,e,i){super(t,i||chunkZHPNS73J_cjs.c.INPUT_ZONE,e,q);chunkZHPNS73J_cjs.a(this,"delegates",{dynamicWidgetPointerDown:()=>{},dynamicWidgetPointerMove:()=>{},dynamicWidgetPointerUp:()=>{},dynamicWidgetPointerCancel:()=>{}});}bindDelegate(t,e){Object.prototype.hasOwnProperty.call(this.delegates,t)?this.delegates[t]=e:undefined?.DEV&&console.warn(`[OmniPad-Core] TargetZone attempted to bind unknown delegate: ${t}`);}get activePointerId(){return this.state.dynamicPointerId}onPointerDown(t){if(this.state.isDynamicActive)return;let e=this.calculateRelativePosition(t.clientX,t.clientY);this.setState({isDynamicActive:true,dynamicPointerId:t.pointerId,dynamicPosition:e}),this.delegates.dynamicWidgetPointerDown?.(t);}onPointerMove(t){this.state.isDynamicActive&&this.delegates.dynamicWidgetPointerMove?.(t);}onPointerUp(t){this.delegates.dynamicWidgetPointerUp?.(t),this.reset();}onPointerCancel(t){this.delegates.dynamicWidgetPointerCancel?.(t),this.reset();}calculateRelativePosition(t,e){let i=this.rect;return i?{x:chunkU52W5J3K_cjs.o(t-i.left,i.width),y:chunkU52W5J3K_cjs.o(e-i.top,i.height)}:{x:0,y:0}}get isInterceptorRequired(){return !!(this.config.dynamicWidgetId||this.config.preventFocusLoss)}reset(){this.setState({isDynamicActive:false,dynamicPointerId:null});}};var T=class{constructor(s={}){chunkZHPNS73J_cjs.a(this,"options");chunkZHPNS73J_cjs.a(this,"startTime",0);chunkZHPNS73J_cjs.a(this,"startPos",{x:0,y:0});chunkZHPNS73J_cjs.a(this,"lastTapTime",0);chunkZHPNS73J_cjs.a(this,"hasMoved",false);chunkZHPNS73J_cjs.a(this,"isDoubleTapHolding",false);this.options={tapTime:250,tapDistance:10,doubleTapGap:300,...s};}onPointerDown(s,t){let e=Date.now();this.startTime=e,this.startPos={x:s,y:t},this.hasMoved=false,e-this.lastTapTime<this.options.doubleTapGap?(this.isDoubleTapHolding=true,this.options.onDoubleTapHoldStart?.()):this.isDoubleTapHolding=false;}onPointerMove(s,t){this.hasMoved||Math.hypot(s-this.startPos.x,t-this.startPos.y)>this.options.tapDistance&&(this.hasMoved=true);}onPointerUp(){let s=Date.now(),t=s-this.startTime;this.isDoubleTapHolding?(this.isDoubleTapHolding=false,this.options.onDoubleTapHoldEnd?.(),this.lastTapTime=0):t<=this.options.tapTime&&!this.hasMoved&&(this.options.onTap?.(),s-this.lastTapTime<this.options.doubleTapGap?(this.options.onDoubleTap?.(),this.lastTapTime=0):this.lastTapTime=s);}reset(){this.isDoubleTapHolding&&this.options.onDoubleTapHoldEnd?.(),this.isDoubleTapHolding=false,this.hasMoved=false,this.startTime=0,this.lastTapTime=0;}};var W={isActive:false,isPressed:false,pointerId:null,value:0,vector:{x:0,y:0}},O=.002,G=.3,R=class extends l{constructor(t,e,i){super(t,i||chunkZHPNS73J_cjs.c.JOYSTICK,e,W);chunkZHPNS73J_cjs.a(this,"emitters");chunkZHPNS73J_cjs.a(this,"stickEmitter");chunkZHPNS73J_cjs.a(this,"cursorEmitter");chunkZHPNS73J_cjs.a(this,"gesture");chunkZHPNS73J_cjs.a(this,"ticker");let o=e.targetStageId,a=e.mapping||{};this.emitters={up:new c(o,a.up),down:new c(o,a.down),left:new c(o,a.left),right:new c(o,a.right)},this.stickEmitter=new c(o,a.stick),this.cursorEmitter=new c(o,{type:"mouse"}),this.gesture=new T({onTap:async()=>{this.setState({isPressed:true}),await this.stickEmitter.tap(),this.setState({isPressed:false});},onDoubleTapHoldStart:()=>{this.setState({isPressed:true}),this.stickEmitter.press();},onDoubleTapHoldEnd:()=>{this.setState({isPressed:false}),this.stickEmitter.release(false);}}),this.ticker=chunkVHF3K5X6_cjs.b(()=>{this.handleCursorTick();});}get activePointerId(){return this.state.pointerId}onPointerDown(t){this.setState({isActive:true,pointerId:t.pointerId,vector:{x:0,y:0}}),this.gesture.onPointerDown(t.clientX,t.clientY),this.processInput(t,true);}onPointerMove(t){!this.state.isActive||t.pointerId!==this.state.pointerId||(this.gesture.onPointerMove(t.clientX,t.clientY),this.config.cursorMode&&this.ticker.start(),this.processInput(t));}onPointerUp(t){!this.state.isActive||t.pointerId!==this.state.pointerId||(this.gesture.onPointerUp(),this.handleRelease());}onPointerCancel(){this.handleRelease();}handleRelease(){this.setState({isActive:false,pointerId:null,vector:{x:0,y:0}}),this.ticker.stop(),Object.values(this.emitters).forEach(t=>t?.reset());}processInput(t,e=false){if(!this.state.isActive)return;let i=this.rect;if(!i)return;let o=i.left+i.width/2,a=i.top+i.height/2,p=i.width/2,f=i.height/2,P=(t.clientX-o)/p,b=(t.clientY-a)/f;if(e&&(P!=chunkU52W5J3K_cjs.d(P,-1,1)||b!=chunkU52W5J3K_cjs.d(b,-1,1))){this.setState({vector:{x:0,y:0}}),this.markRectDirty();return}let D=chunkU52W5J3K_cjs.u({x:P,y:b},1,this.config.threshold||.15);chunkU52W5J3K_cjs.s(D,this.state.vector,O)||(this.setState({vector:D}),this.handleDigitalKeys(D));}handleCursorTick(){let{vector:t,isActive:e}=this.state;if(!e||!this.config.cursorMode||chunkU52W5J3K_cjs.s(t,{x:0,y:0},O)){this.ticker.stop();return}let i=this.config.cursorSensitivity??1,o={x:t.x*Math.abs(t.x)*i,y:t.y*Math.abs(t.y)*i};(Math.abs(o.x)>0||Math.abs(o.y)>0)&&this.cursorEmitter.move({delta:o});}handleDigitalKeys(t){let e=this.config.threshold??.3;t.y<-e?(this.emitters.up.press(),this.emitters.down.release()):t.y>e?(this.emitters.down.press(),this.emitters.up.release()):(this.emitters.up.release(),this.emitters.down.release()),t.x<-e?(this.emitters.left.press(),this.emitters.right.release()):t.x>e?(this.emitters.right.press(),this.emitters.left.release()):(this.emitters.left.release(),this.emitters.right.release());}reset(){this.setState(W),this.gesture.reset(),this.handleRelease(),this.stickEmitter.reset(),this.cursorEmitter.reset();}updateConfig(t){super.updateConfig(t);let e=this.config.targetStageId,i=this.config.mapping||{};this.emitters.up.update(e,i.up),this.emitters.down.update(e,i.down),this.emitters.left.update(e,i.left),this.emitters.right.update(e,i.right),this.stickEmitter.update(e,i.stick),this.cursorEmitter.update(e);}triggerDown(){this.state.isPressed||(this.setState({isActive:true,isPressed:true}),this.stickEmitter.press());}triggerUp(){this.state.isPressed&&(this.setState({isActive:false,isPressed:false}),this.stickEmitter.release(true));}triggerVector(t,e){let i=this.config.threshold??.15;if(Math.hypot(t,e)<i){this.state.isActive&&this.handleRelease();return}this.state.isActive||this.setState({isActive:true});let a=chunkU52W5J3K_cjs.e(this.state.vector.x,t,G),p=chunkU52W5J3K_cjs.e(this.state.vector.y,e,G),f={x:a,y:p};chunkU52W5J3K_cjs.s(f,this.state.vector,O)||(this.setState({vector:f}),this.handleDigitalKeys(f)),this.config.cursorMode&&this.ticker.start();}};var z={isHighlighted:false},Y=class extends l{constructor(s,t,e){super(s,e||chunkZHPNS73J_cjs.c.ROOT_LAYER,t,z);}reset(){}};var j={position:{x:50,y:50},isVisible:false,isPointerDown:false,isFocusReturning:false},v=1,H=class extends l{constructor(t,e,i){super(t,i||chunkZHPNS73J_cjs.c.TARGET_ZONE,e,j);chunkZHPNS73J_cjs.a(this,"hideTimer",null);chunkZHPNS73J_cjs.a(this,"focusFeedbackTimer",null);chunkZHPNS73J_cjs.a(this,"throttledMoveExecution");chunkZHPNS73J_cjs.a(this,"delegates",{dispatchKeyboardEvent:()=>{},dispatchPointerEventAtPos:()=>{},reclaimFocusAtPos:()=>{}});this.throttledMoveExecution=chunkVHF3K5X6_cjs.a(o=>{this.executeMouseAction(chunkZHPNS73J_cjs.d.POINTERMOVE,o);});}bindDelegate(t,e){Object.prototype.hasOwnProperty.call(this.delegates,t)?this.delegates[t]=e:undefined?.DEV&&console.warn(`[OmniPad-Core] TargetZone attempted to bind unknown delegate: ${t}`);}get activePointerId(){return null}onPointerDown(t){this.processPhysicalEvent(t,chunkZHPNS73J_cjs.d.MOUSEDOWN);}onPointerMove(t){this.processPhysicalEvent(t,chunkZHPNS73J_cjs.d.MOUSEMOVE);}onPointerUp(t){this.processPhysicalEvent(t,chunkZHPNS73J_cjs.d.MOUSEUP),this.processPhysicalEvent(t,chunkZHPNS73J_cjs.d.CLICK);}onPointerCancel(t){this.processPhysicalEvent(t,chunkZHPNS73J_cjs.d.MOUSEUP);}processPhysicalEvent(t,e){let i=this.rect;if(!i)return;let o={x:chunkU52W5J3K_cjs.o(t.clientX-i.left,i.width),y:chunkU52W5J3K_cjs.o(t.clientY-i.top,i.height)};this.handleSignal({targetStageId:this.uid,type:e,payload:{point:o,button:t.button}});}handleSignal(t){let{type:e,payload:i}=t;switch(this.ensureFocus(),e){case chunkZHPNS73J_cjs.d.KEYDOWN:case chunkZHPNS73J_cjs.d.KEYUP:this.delegates.dispatchKeyboardEvent?.(e,i);break;case chunkZHPNS73J_cjs.d.MOUSEMOVE:i.point?this.updateCursorPosition(i.point):i.delta&&this.updateCursorPositionByDelta(i.delta),this.config.cursorEnabled&&this.showCursor(),this.throttledMoveExecution(i);break;case chunkZHPNS73J_cjs.d.MOUSEDOWN:case chunkZHPNS73J_cjs.d.MOUSEUP:case chunkZHPNS73J_cjs.d.CLICK:i.point&&this.updateCursorPosition(i.point),this.config.cursorEnabled&&this.showCursor(),this.executeMouseAction(e.startsWith(chunkZHPNS73J_cjs.d.MOUSE)?e.replace(chunkZHPNS73J_cjs.d.MOUSE,chunkZHPNS73J_cjs.d.POINTER):e,i);break}}executeMouseAction(t,e){let i=this.rect;if(!i)return;t===chunkZHPNS73J_cjs.d.POINTERDOWN&&this.setState({isPointerDown:true}),t===chunkZHPNS73J_cjs.d.POINTERUP&&this.setState({isPointerDown:false});let o=e.point||this.state.position,a=chunkU52W5J3K_cjs.d(i.left+chunkU52W5J3K_cjs.n(o.x,i.width),i.left+v,i.left+i.width-v),p=chunkU52W5J3K_cjs.d(i.top+chunkU52W5J3K_cjs.n(o.y,i.height),i.top+v,i.top+i.height-v);this.delegates.dispatchPointerEventAtPos?.(t,a,p,{button:e.button??0,buttons:this.state.isPointerDown?1:0,pressure:this.state.isPointerDown?.5:0});}ensureFocus(){let t=this.rect;if(!t)return;let e=chunkU52W5J3K_cjs.d(t.left+chunkU52W5J3K_cjs.n(this.state.position.x,t.width),t.left+v,t.left+t.width-v),i=chunkU52W5J3K_cjs.d(t.top+chunkU52W5J3K_cjs.n(this.state.position.y,t.height),t.top+v,t.top+t.height-v);this.delegates.reclaimFocusAtPos?.(e,i,()=>this.triggerFocusFeedback());}triggerFocusFeedback(){this.setState({isFocusReturning:true}),this.focusFeedbackTimer&&clearTimeout(this.focusFeedbackTimer),this.focusFeedbackTimer=setTimeout(()=>this.setState({isFocusReturning:false}),500);}updateCursorPosition(t){chunkU52W5J3K_cjs.s(t,this.state.position)||this.setState({position:{...t}});}updateCursorPositionByDelta(t){if(chunkU52W5J3K_cjs.s(t,{x:0,y:0}))return;let e=this.rect;if(!e)return;let i=chunkU52W5J3K_cjs.o(t.x,e.width),o=chunkU52W5J3K_cjs.o(t.y,e.height);this.updateCursorPosition({x:chunkU52W5J3K_cjs.d(this.state.position.x+i,0,100),y:chunkU52W5J3K_cjs.d(this.state.position.y+o,0,100)});}showCursor(){this.setState({isVisible:true}),this.hideTimer&&clearTimeout(this.hideTimer),this.config.cursorAutoDelay&&this.config.cursorAutoDelay>0&&(this.hideTimer=setTimeout(()=>this.setState({isVisible:false}),this.config.cursorAutoDelay));}reset(){this.state.isPointerDown&&this.executeMouseAction(chunkZHPNS73J_cjs.d.POINTERUP,{}),this.hideTimer&&clearTimeout(this.hideTimer),this.focusFeedbackTimer&&clearTimeout(this.focusFeedbackTimer),this.setState({isVisible:false,isPointerDown:false,isFocusReturning:false});}};var Z={isActive:false,isPressed:false,pointerId:null,value:0},U=class extends l{constructor(t,e,i){super(t,i||chunkZHPNS73J_cjs.c.TRACKPAD,e,Z);chunkZHPNS73J_cjs.a(this,"lastPointerPos",{x:0,y:0});chunkZHPNS73J_cjs.a(this,"gesture");chunkZHPNS73J_cjs.a(this,"emitter");let o=e.mapping||{type:"mouse"};this.emitter=new c(e.targetStageId,o),this.gesture=new T({onTap:()=>{this.setState({isPressed:true}),this.emitter.tap();},onDoubleTapHoldStart:()=>{this.setState({isPressed:true}),this.emitter.press();},onDoubleTapHoldEnd:()=>{this.setState({isPressed:false}),this.emitter.release(false);}});}get activePointerId(){return this.state.pointerId}onPointerDown(t){this.lastPointerPos={x:t.clientX,y:t.clientY},this.gesture.onPointerDown(t.clientX,t.clientY),this.setState({isActive:true,pointerId:t.pointerId});}onPointerMove(t){!this.state.isActive||t.pointerId!==this.state.pointerId||(this.gesture.onPointerMove(t.clientX,t.clientY),this.processInput(t));}processInput(t){if(!this.state.isActive)return;let e=t.clientX-this.lastPointerPos.x,i=t.clientY-this.lastPointerPos.y,o=this.rect;if(!o)return;let a=e/o.width*100*(this.config.sensitivity??1),p=i/o.height*100*(this.config.sensitivity??1),f={x:a,y:p};chunkU52W5J3K_cjs.s(f,{x:0,y:0})||this.emitter.move({delta:f}),this.lastPointerPos={x:t.clientX,y:t.clientY};}onPointerUp(t){!this.state.isActive||t.pointerId!==this.state.pointerId||(this.gesture.onPointerUp(),this.handleRelease());}onPointerCancel(){this.handleRelease();}reset(){this.gesture.reset(),this.emitter.reset(),this.handleRelease();}updateConfig(t){super.updateConfig(t),this.emitter.update(this.config.targetStageId,this.config.mapping);}handleRelease(){this.setState(Z);}};var ye={ActionTypes:chunkZHPNS73J_cjs.d,Context:chunkZHPNS73J_cjs.f,Keys:chunkZHPNS73J_cjs.b,Types:chunkZHPNS73J_cjs.c};Object.defineProperty(exports,"ACTION_TYPES",{enumerable:true,get:function(){return chunkZHPNS73J_cjs.d}});Object.defineProperty(exports,"CMP_TYPES",{enumerable:true,get:function(){return chunkZHPNS73J_cjs.c}});Object.defineProperty(exports,"CONTEXT",{enumerable:true,get:function(){return chunkZHPNS73J_cjs.f}});Object.defineProperty(exports,"KEYS",{enumerable:true,get:function(){return chunkZHPNS73J_cjs.b}});Object.defineProperty(exports,"Registry",{enumerable:true,get:function(){return chunkZHPNS73J_cjs.h}});Object.defineProperty(exports,"VALID_UNITS",{enumerable:true,get:function(){return chunkZHPNS73J_cjs.e}});Object.defineProperty(exports,"setGlobalSignalHandler",{enumerable:true,get:function(){return chunkZHPNS73J_cjs.g}});exports.BaseEntity=l;exports.ButtonCore=w;exports.DPadCore=M;exports.InputZoneCore=k;exports.JoystickCore=R;exports.OmniPad=ye;exports.RootLayerCore=Y;exports.TargetZoneCore=H;exports.TrackpadCore=U;
|
|
1
|
+
'use strict';var chunkOVV5DKL6_cjs=require('./chunk-OVV5DKL6.cjs'),chunkNB4FTDOP_cjs=require('./chunk-NB4FTDOP.cjs'),chunk52YF3VHH_cjs=require('./chunk-52YF3VHH.cjs'),chunkHCOFKHVV_cjs=require('./chunk-HCOFKHVV.cjs');function Dt(o,r){if(!(!o||!r)&&"bindDelegate"in o&&typeof o.bindDelegate=="function"){let t=Object.entries(r);for(let i=0;i<t.length;i++){let[e,s]=t[i];typeof s=="function"&&o.bindDelegate(e,s);}}}function wt(o,r,t,i,e){if(!o.uid)return ()=>{};let s=o.uid;if("bindRectProvider"in o){let c=o,p=chunk52YF3VHH_cjs.f(()=>i(r));c.bindRectProvider(p.get,()=>{p.markDirty(),e&&e.markDirty();}),t.observeResize(s,r,()=>{c.markRectDirty();});}if("reset"in o){let c=o;t.observeIntersect(s,r,p=>{p||c.reset();});}return ()=>{t.disconnect(s);}}function Mt(o=[],r){return o?.filter(t=>t.uid!==r)||[]}function Ot(o,r){return chunkOVV5DKL6_cjs.a(o,r)}function kt(o,r,t,i,e,s){let c=chunkOVV5DKL6_cjs.c(i,e,s);return c.id=r,c.baseType=o,c.parentId=t,c.layout=chunkOVV5DKL6_cjs.c(i.layout,e.layout,s.layout),c}function Rt(o,r=[],t){let i=r?.find(s=>s.uid===t),e=o.length>0;return o.length>1&&console.error(`[OmniPad-Validation] InputZone ${t} has multiple dynamic widgets in slot. Only the first one will be activated.`),e&&i&&console.warn(`[OmniPad-Validation] InputZone ${t} has both Slot and Config dynamic widgets. Config ignored.`),{nodeToRender:e?o[0]:i||null,isFromSlot:e}}function Nt(o,r){if(!o||Object.keys(o??{}).length===0)return;if(!(o.config?.baseType===r||o.type===r)){undefined?.DEV&&console.warn(`[OmniPad-Validation] Type mismatch! Expected "${r}", received "${o.type}". Config ignored.`);return}return o}var it=100,st=10*1024*1024,rt=10;function Bt(o){return ot(o)}function ot(o){if(!o||typeof o!="object")throw new Error("[OmniPad-Validation] Profile must be a valid JSON object.");if(JSON.stringify(o).length>st)throw new Error(`[OmniPad-Validation] Profile too large (max: ${st} bytes)`);if(!Array.isArray(o.items)||o.items.length>it)throw new Error(`[OmniPad-Security] Profile items exceed limit (${it}).`);o=chunk52YF3VHH_cjs.m(o);let t=new Set;o.items.forEach((s,c)=>{if(!s.id||!s.type)throw new Error(`[OmniPad-Validation] Item at index ${c} missing id/type.`);if(t.has(s.id))throw new Error(`[OmniPad-Security] Duplicate Config ID detected: "${s.id}".`);t.add(s.id);});let i={name:o.meta?.name||"Untitled Profile",version:o.meta?.version||"1.0.0",author:o.meta?.author||"Unknown",description:o.meta?.description||"Enter text."},e=o.items.map(s=>({id:String(s.id),type:String(s.type),parentId:s.parentId?String(s.parentId):void 0,config:{...s.config,layout:chunk52YF3VHH_cjs.M(s.config.layout),cssClass:chunk52YF3VHH_cjs.l(s.config.cssClass)}}));return mt(o.gamepadMappings,t),{meta:i,items:e,gamepadMappings:o.gamepadMappings}}function mt(o,r){!o||!Array.isArray(o)||o.forEach((t,i)=>{t.buttons&&Object.values(t.buttons).forEach(e=>{if(typeof e=="string"&&!e.startsWith("$")&&!r.has(e))throw new Error(`[OmniPad-Security] Gamepad Slot ${i}: Target ID "${e}" not found in items.`)}),["dpad","leftStick","rightStick"].forEach(e=>{let s=t[e];if(s&&!s.startsWith("$")&&!r.has(s))throw new Error(`[OmniPad-Security] Gamepad Slot ${i}: ${e} target "${s}" not found.`)});});}function gt(o){let{meta:r,items:t,gamepadMappings:i}=o,e=new Map,s=(n,l="node")=>chunk52YF3VHH_cjs.h(n)?n:(e.has(n)||e.set(n,chunk52YF3VHH_cjs.g(l)),e.get(n));t.forEach(n=>s(n.id,n.type));let c=[];i&&i.forEach(n=>{let l={};if(n.buttons){l.buttons={};for(let[E,O]of Object.entries(n.buttons))l.buttons[E]=s(O);}n.dpad&&(l.dpad=s(n.dpad)),n.leftStick&&(l.leftStick=s(n.leftStick)),n.rightStick&&(l.rightStick=s(n.rightStick)),c.push(l);});let p=new Map,m=[];t.forEach(n=>{n.parentId?(p.has(n.parentId)||p.set(n.parentId,[]),p.get(n.parentId).push(n)):m.push(n);});let f=new Set,d=(n,l)=>{if(l>rt)throw new Error(`[OmniPad-Security] Profile exceeds max depth of ${rt}.`);if(f.has(n.id))throw new Error(`[OmniPad-Security] Critical layout error. Node "${n.id}" is either part of a loop or has multiple parents.`);f.add(n.id);let E={...n.config};E?.targetStageId&&(E.targetStageId=s(E.targetStageId)),E?.dynamicWidgetId&&(E.dynamicWidgetId=s(E.dynamicWidgetId));let M=(p.get(n.id)||[]).map(ft=>d(ft,l+1));return {uid:s(n.id),type:n.type,config:E,children:M}},h={};if(m.forEach(n=>{h[n.id]=d(n,0);}),f.size<t.length){let n=t.filter(l=>!f.has(l.id)).map(l=>l.id);console.warn(`[OmniPad-Integrity] Found ${n.length} unreachable nodes (orphans or isolated loops). These nodes will NOT be rendered: ${n.join(", ")}`);}return {meta:r,roots:h,runtimeGamepadMappings:c}}function Vt(o){let r;if(typeof o=="string")try{r=JSON.parse(o);}catch{throw new Error("[OmniPad-Core] Failed to parse input string as valid JSON.")}else r=o;let t=ot(r);return gt(t)}function Kt(o,r,t){let i=chunkNB4FTDOP_cjs.b.getInstance(),e=[];if(!r||r.length===0)e=i.getAllEntities();else {let d=new Set;r.forEach(h=>{i.getEntitiesByRoot(h).forEach(l=>d.add(l));}),e=Array.from(d);}let s=new Map,c=0,p=d=>chunk52YF3VHH_cjs.h(d)?d:(s.has(d)||s.set(d,`node_${++c}`),s.get(d)),m=e.map(d=>{let h=d.getConfig(),n=d.uid,l={...h};l.targetStageId&&(l.targetStageId=p(l.targetStageId)),l.dynamicWidgetId&&(l.dynamicWidgetId=p(l.dynamicWidgetId));let{id:E,parentId:O,...M}=l;return {id:p(n),type:d.type,parentId:h.parentId?p(h.parentId):void 0,config:{...M,layout:chunk52YF3VHH_cjs.N(M.layout)}}}),f=[];return t&&t.forEach(d=>{let h={};if(d.buttons){h.buttons={};for(let[n,l]of Object.entries(d.buttons))s.has(l)&&(h.buttons[n]=s.get(l));}d.dpad&&s.has(d.dpad)&&(h.dpad=s.get(d.dpad)),d.leftStick&&s.has(d.leftStick)&&(h.leftStick=s.get(d.leftStick)),d.rightStick&&s.has(d.rightStick)&&(h.rightStick=s.get(d.rightStick)),Object.keys(h).length>0?f.push(h):f.push({});}),{meta:o,items:m,gamepadMappings:Object.keys(f).length>0?f:void 0}}var w=class{constructor(){chunkHCOFKHVV_cjs.a(this,"listeners",new Set);}subscribe(r){return this.listeners.add(r),()=>this.listeners.delete(r)}emit(r){this.listeners.forEach(t=>{try{t(r);}catch(i){console.error("[OmniPad-Core] Emitter callback error:",i);}});}clear(){this.listeners.clear();}};var y=class{constructor(r,t,i,e){chunkHCOFKHVV_cjs.a(this,"uid");chunkHCOFKHVV_cjs.a(this,"type");chunkHCOFKHVV_cjs.a(this,"config");chunkHCOFKHVV_cjs.a(this,"state");chunkHCOFKHVV_cjs.a(this,"rectProvider",null);chunkHCOFKHVV_cjs.a(this,"_onMarkDirtyCb",null);chunkHCOFKHVV_cjs.a(this,"stateEmitter",new w);chunkHCOFKHVV_cjs.a(this,"configEmitter",new w);this.uid=r,this.type=t,this.config=i,this.state=e;}getConfig(){return this.config}subscribeConfig(r){return r(this.config),this.configEmitter.subscribe(r)}updateConfig(r){this.config={...this.config,...r},this.configEmitter.emit(this.config);}getState(){return this.state}setState(r){this.state={...this.state,...r},this.stateEmitter.emit(this.state);}subscribeState(r){return r(this.state),this.stateEmitter.subscribe(r)}destroy(){this.reset(),this.stateEmitter.clear(),this.configEmitter.clear(),chunkNB4FTDOP_cjs.b.getInstance().unregister(this.uid);}get rect(){return this.rectProvider?this.rectProvider():null}bindRectProvider(r,t){this.rectProvider=r,t&&(this._onMarkDirtyCb=t);}markRectDirty(){this._onMarkDirtyCb?.();}};var nt=32,yt=255,g=class{constructor(r,t){chunkHCOFKHVV_cjs.a(this,"isPressed",false);chunkHCOFKHVV_cjs.a(this,"mapping");chunkHCOFKHVV_cjs.a(this,"targetId");this.update(r,t);}update(r,t){this.isPressed&&this.reset(),this.targetId=r,this.mapping=typeof t=="string"?chunk52YF3VHH_cjs.a[t]??void 0:this.hydrate(t);}hydrate(r){if(!r||typeof r!="object")return;let{type:t,key:i,code:e,keyCode:s,button:c,fixedPoint:p}=r;if(t==="mouse")return {type:"mouse",button:typeof c=="number"&&c>=0&&c<=2?c:0,fixedPoint:p&&typeof p.x=="number"?{x:Number(p.x),y:Number(p.y)}:void 0};let m=typeof i=="string"?i.substring(0,nt):void 0,f=typeof e=="string"?e.substring(0,nt):void 0,d=typeof s=="number"&&Number.isFinite(s)?Math.floor(Math.min(s,yt)):void 0;if(m||f||d){let h=Object.values(chunk52YF3VHH_cjs.a).find(n=>n.type!=="keyboard"?false:n.code===f||n.key===m||n.keyCode===d);return h?{type:"keyboard",key:m??h.key,code:f??h.code,keyCode:d??h.keyCode}:{type:"keyboard",key:m||"unknown",code:f||"Unknown",keyCode:d||0}}}press(){if(!this.mapping||this.isPressed)return;this.isPressed=true;let r=this.mapping.type==="keyboard"?chunk52YF3VHH_cjs.c.KEYDOWN:chunk52YF3VHH_cjs.c.MOUSEDOWN;this.emitSignal(r);}release(r=true){if(!this.mapping||!this.isPressed)return;this.isPressed=false;let t=this.mapping.type==="keyboard"?chunk52YF3VHH_cjs.c.KEYUP:chunk52YF3VHH_cjs.c.MOUSEUP;this.emitSignal(t),this.mapping.type==="mouse"&&r&&this.emitSignal(chunk52YF3VHH_cjs.c.CLICK);}move(r){this.mapping?.type==="mouse"&&this.emitSignal(chunk52YF3VHH_cjs.c.MOUSEMOVE,r);}reset(){this.isPressed&&this.release(false);}async tap(r=true){this.isPressed||(this.press(),await chunkNB4FTDOP_cjs.g(2),this.isPressed&&this.release(r));}emitSignal(r,t={}){this.mapping&&chunkNB4FTDOP_cjs.b.getInstance().broadcastSignal({targetStageId:this.targetId||"",type:r,payload:{key:this.mapping.key,code:this.mapping.code,keyCode:this.mapping.keyCode,button:this.mapping.button,point:this.mapping.fixedPoint,...t}});}};var N={isActive:false,isPressed:false,pointerId:null,value:0},F=class extends y{constructor(t,i,e){super(t,e||chunk52YF3VHH_cjs.b.BUTTON,i,N);chunkHCOFKHVV_cjs.a(this,"emitter");this.emitter=new g(i.targetStageId,i.mapping);}get activePointerId(){return this.state.pointerId}onPointerDown(t){this.setState({isActive:true,isPressed:true,pointerId:t.pointerId}),this.emitter.press();}onPointerUp(t){!this.state.isActive||t.pointerId!==this.state.pointerId||this.handleRelease(true);}onPointerCancel(){this.handleRelease(false);}onPointerMove(){}reset(){this.setState(N),this.emitter.reset();}updateConfig(t){super.updateConfig(t),this.emitter.update(this.config.targetStageId,this.config.mapping);}handleRelease(t){this.setState(N),this.emitter.release(t);}triggerDown(){this.state.isPressed||(this.setState({isActive:true,isPressed:true}),this.emitter.press());}triggerUp(){this.state.isPressed&&(this.setState({isActive:false,isPressed:false}),this.emitter.release(true));}};var at={isActive:false,pointerId:null,vector:{x:0,y:0}},ct=.15,dt=.002,pt=.3,_=class extends y{constructor(t,i,e){super(t,e||chunk52YF3VHH_cjs.b.D_PAD,i,at);chunkHCOFKHVV_cjs.a(this,"emitters");let s=i.targetStageId;this.emitters={up:new g(s,i.mapping?.up),down:new g(s,i.mapping?.down),left:new g(s,i.mapping?.left),right:new g(s,i.mapping?.right)};}get activePointerId(){return this.state.pointerId}onPointerDown(t){this.setState({isActive:true,pointerId:t.pointerId,vector:{x:0,y:0}}),this.processInput(t,true);}onPointerMove(t){!this.state.isActive||t.pointerId!==this.state.pointerId||this.processInput(t);}onPointerUp(t){!this.state.isActive||t.pointerId!==this.state.pointerId||this.reset();}onPointerCancel(){this.reset();}processInput(t,i=false){if(!this.state.isActive)return;let e=this.rect;if(!e)return;let s=e.left+e.width/2,c=e.top+e.height/2,p=e.width/2,m=e.height/2,f=(t.clientX-s)/p,d=(t.clientY-c)/m;if(i&&(f!=chunk52YF3VHH_cjs.q(f,-1,1)||d!=chunk52YF3VHH_cjs.q(d,-1,1))){this.setState({vector:{x:0,y:0}}),this.markRectDirty();return}let h={x:chunk52YF3VHH_cjs.q(f,-1,1),y:chunk52YF3VHH_cjs.q(d,-1,1)};chunk52YF3VHH_cjs.F(h,this.state.vector,dt)||(this.setState({vector:h}),this.handleDigitalKeys(h));}handleDigitalKeys(t){let i=this.config.threshold??ct;t.y<-i?(this.emitters.up.press(),this.emitters.down.release()):t.y>i?(this.emitters.down.press(),this.emitters.up.release()):(this.emitters.up.release(),this.emitters.down.release()),t.x<-i?(this.emitters.left.press(),this.emitters.right.release()):t.x>i?(this.emitters.right.press(),this.emitters.left.release()):(this.emitters.left.release(),this.emitters.right.release());}reset(){this.emitters.up.reset(),this.emitters.down.reset(),this.emitters.left.reset(),this.emitters.right.reset(),this.setState(at);}updateConfig(t){super.updateConfig(t),this.emitters.up.update(this.config.targetStageId,this.config.mapping?.up),this.emitters.down.update(this.config.targetStageId,this.config.mapping?.down),this.emitters.left.update(this.config.targetStageId,this.config.mapping?.left),this.emitters.right.update(this.config.targetStageId,this.config.mapping?.right);}triggerVector(t,i){let e=this.config.threshold??ct;if(Math.abs(t)<e&&Math.abs(i)<e){this.state.isActive&&this.reset();return}this.state.isActive||this.setState({isActive:true});let s=chunk52YF3VHH_cjs.r(this.state.vector.x,t,pt),c=chunk52YF3VHH_cjs.r(this.state.vector.y,i,pt),p={x:s,y:c};chunk52YF3VHH_cjs.F(p,this.state.vector,dt)||(this.setState({vector:p}),this.handleDigitalKeys(p));}};var bt={isDynamicActive:false,dynamicPointerId:null,dynamicPosition:{x:0,y:0}},Y=class extends y{constructor(t,i,e){super(t,e||chunk52YF3VHH_cjs.b.INPUT_ZONE,i,bt);chunkHCOFKHVV_cjs.a(this,"delegates",{dynamicWidgetPointerDown:()=>{},dynamicWidgetPointerMove:()=>{},dynamicWidgetPointerUp:()=>{},dynamicWidgetPointerCancel:()=>{}});}bindDelegate(t,i){Object.prototype.hasOwnProperty.call(this.delegates,t)?this.delegates[t]=i:undefined?.DEV&&console.warn(`[OmniPad-Core] TargetZone attempted to bind unknown delegate: ${t}`);}get activePointerId(){return this.state.dynamicPointerId}onPointerDown(t){if(this.state.isDynamicActive)return;let i=this.calculateRelativePosition(t.clientX,t.clientY);this.setState({isDynamicActive:true,dynamicPointerId:t.pointerId,dynamicPosition:i}),this.delegates.dynamicWidgetPointerDown?.(t);}onPointerMove(t){this.state.isDynamicActive&&this.delegates.dynamicWidgetPointerMove?.(t);}onPointerUp(t){this.delegates.dynamicWidgetPointerUp?.(t),this.reset();}onPointerCancel(t){this.delegates.dynamicWidgetPointerCancel?.(t),this.reset();}calculateRelativePosition(t,i){let e=this.rect;return e?{x:chunk52YF3VHH_cjs.B(t-e.left,e.width),y:chunk52YF3VHH_cjs.B(i-e.top,e.height)}:{x:0,y:0}}get isInterceptorRequired(){return !!(this.config.dynamicWidgetId||this.config.preventFocusLoss)}reset(){this.setState({isDynamicActive:false,dynamicPointerId:null});}};var A=class{constructor(r={}){chunkHCOFKHVV_cjs.a(this,"options");chunkHCOFKHVV_cjs.a(this,"startTime",0);chunkHCOFKHVV_cjs.a(this,"startPos",{x:0,y:0});chunkHCOFKHVV_cjs.a(this,"lastTapTime",0);chunkHCOFKHVV_cjs.a(this,"hasMoved",false);chunkHCOFKHVV_cjs.a(this,"isDoubleTapHolding",false);this.options={tapTime:250,tapDistance:10,doubleTapGap:300,...r};}onPointerDown(r,t){let i=Date.now();this.startTime=i,this.startPos={x:r,y:t},this.hasMoved=false,i-this.lastTapTime<this.options.doubleTapGap?(this.isDoubleTapHolding=true,this.options.onDoubleTapHoldStart?.()):this.isDoubleTapHolding=false;}onPointerMove(r,t){this.hasMoved||Math.hypot(r-this.startPos.x,t-this.startPos.y)>this.options.tapDistance&&(this.hasMoved=true);}onPointerUp(){let r=Date.now(),t=r-this.startTime;this.isDoubleTapHolding?(this.isDoubleTapHolding=false,this.options.onDoubleTapHoldEnd?.(),this.lastTapTime=0):t<=this.options.tapTime&&!this.hasMoved&&(this.options.onTap?.(),r-this.lastTapTime<this.options.doubleTapGap?(this.options.onDoubleTap?.(),this.lastTapTime=0):this.lastTapTime=r);}reset(){this.isDoubleTapHolding&&this.options.onDoubleTapHoldEnd?.(),this.isDoubleTapHolding=false,this.hasMoved=false,this.startTime=0,this.lastTapTime=0;}};var lt={isActive:false,isPressed:false,pointerId:null,value:0,vector:{x:0,y:0}},H=.15,U=.002,ut=.3,B=class extends y{constructor(t,i,e){super(t,e||chunk52YF3VHH_cjs.b.JOYSTICK,i,lt);chunkHCOFKHVV_cjs.a(this,"emitters");chunkHCOFKHVV_cjs.a(this,"stickEmitter");chunkHCOFKHVV_cjs.a(this,"cursorEmitter");chunkHCOFKHVV_cjs.a(this,"gesture");chunkHCOFKHVV_cjs.a(this,"ticker");let s=i.targetStageId,c=i.mapping||{};this.emitters={up:new g(s,c.up),down:new g(s,c.down),left:new g(s,c.left),right:new g(s,c.right)},this.stickEmitter=new g(s,c.stick),this.cursorEmitter=new g(s,"Mouse"),this.gesture=new A({onTap:async()=>{this.setState({isPressed:true}),await this.stickEmitter.tap(),this.setState({isPressed:false});},onDoubleTapHoldStart:()=>{this.setState({isPressed:true}),this.stickEmitter.press();},onDoubleTapHoldEnd:()=>{this.setState({isPressed:false}),this.stickEmitter.release(false);}}),this.ticker=chunkNB4FTDOP_cjs.f(()=>{this.handleCursorTick();});}get activePointerId(){return this.state.pointerId}onPointerDown(t){this.setState({isActive:true,pointerId:t.pointerId,vector:{x:0,y:0}}),this.gesture.onPointerDown(t.clientX,t.clientY),this.processInput(t,true);}onPointerMove(t){!this.state.isActive||t.pointerId!==this.state.pointerId||(this.gesture.onPointerMove(t.clientX,t.clientY),this.config.cursorMode&&this.ticker.start(),this.processInput(t));}onPointerUp(t){!this.state.isActive||t.pointerId!==this.state.pointerId||(this.gesture.onPointerUp(),this.handleRelease());}onPointerCancel(){this.handleRelease();}handleRelease(){this.setState({isActive:false,pointerId:null,vector:{x:0,y:0}}),this.ticker.stop(),Object.values(this.emitters).forEach(t=>t?.reset());}processInput(t,i=false){if(!this.state.isActive)return;let e=this.rect;if(!e)return;let s=e.left+e.width/2,c=e.top+e.height/2,p=e.width/2,m=e.height/2,f=(t.clientX-s)/p,d=(t.clientY-c)/m;if(i&&(f!=chunk52YF3VHH_cjs.q(f,-1,1)||d!=chunk52YF3VHH_cjs.q(d,-1,1))){this.setState({vector:{x:0,y:0}}),this.markRectDirty();return}let n=chunk52YF3VHH_cjs.H({x:f,y:d},1,this.config.threshold??H);chunk52YF3VHH_cjs.F(n,this.state.vector,U)||(this.setState({vector:n}),this.handleDigitalKeys(n));}handleCursorTick(){let{vector:t,isActive:i}=this.state;if(!i||!this.config.cursorMode||chunk52YF3VHH_cjs.F(t,{x:0,y:0},U)){this.ticker.stop();return}let e=this.config.cursorSensitivity??1,s={x:t.x*Math.abs(t.x)*e,y:t.y*Math.abs(t.y)*e};(Math.abs(s.x)>0||Math.abs(s.y)>0)&&this.cursorEmitter.move({delta:s});}handleDigitalKeys(t){let i=this.config.threshold??H;t.y<-i?(this.emitters.up.press(),this.emitters.down.release()):t.y>i?(this.emitters.down.press(),this.emitters.up.release()):(this.emitters.up.release(),this.emitters.down.release()),t.x<-i?(this.emitters.left.press(),this.emitters.right.release()):t.x>i?(this.emitters.right.press(),this.emitters.left.release()):(this.emitters.left.release(),this.emitters.right.release());}reset(){this.setState(lt),this.gesture.reset(),this.handleRelease(),this.stickEmitter.reset(),this.cursorEmitter.reset();}updateConfig(t){super.updateConfig(t);let i=this.config.targetStageId,e=this.config.mapping||{};this.emitters.up.update(i,e.up),this.emitters.down.update(i,e.down),this.emitters.left.update(i,e.left),this.emitters.right.update(i,e.right),this.stickEmitter.update(i,e.stick),this.cursorEmitter.update(i);}triggerDown(){this.state.isPressed||(this.setState({isActive:true,isPressed:true}),this.stickEmitter.press());}triggerUp(){this.state.isPressed&&(this.setState({isActive:false,isPressed:false}),this.stickEmitter.release(true));}triggerVector(t,i){let e=this.config.threshold??H;if(Math.hypot(t,i)<e){this.state.isActive&&this.handleRelease();return}this.state.isActive||this.setState({isActive:true});let c=chunk52YF3VHH_cjs.r(this.state.vector.x,t,ut),p=chunk52YF3VHH_cjs.r(this.state.vector.y,i,ut),m={x:c,y:p};chunk52YF3VHH_cjs.F(m,this.state.vector,U)||(this.setState({vector:m}),this.handleDigitalKeys(m)),this.config.cursorMode&&this.ticker.start();}};var Pt={isHighlighted:false},V=class extends y{constructor(r,t,i){super(r,i||chunk52YF3VHH_cjs.b.ROOT_LAYER,t,Pt);}reset(){}};var vt={position:{x:50,y:50},isVisible:false,isPointerDown:false,isFocusReturning:false},S=1,K=class extends y{constructor(t,i,e){super(t,e||chunk52YF3VHH_cjs.b.TARGET_ZONE,i,vt);chunkHCOFKHVV_cjs.a(this,"hideTimer",null);chunkHCOFKHVV_cjs.a(this,"focusFeedbackTimer",null);chunkHCOFKHVV_cjs.a(this,"throttledMoveExecution");chunkHCOFKHVV_cjs.a(this,"delegates",{dispatchKeyboardEvent:()=>{},dispatchPointerEventAtPos:()=>{},reclaimFocusAtPos:()=>{}});this.throttledMoveExecution=chunkNB4FTDOP_cjs.e(s=>{this.executeMouseAction(chunk52YF3VHH_cjs.c.POINTERMOVE,s);});}bindDelegate(t,i){Object.prototype.hasOwnProperty.call(this.delegates,t)?this.delegates[t]=i:undefined?.DEV&&console.warn(`[OmniPad-Core] TargetZone attempted to bind unknown delegate: ${t}`);}get activePointerId(){return null}onPointerDown(t){this.processPhysicalEvent(t,chunk52YF3VHH_cjs.c.MOUSEDOWN);}onPointerMove(t){this.processPhysicalEvent(t,chunk52YF3VHH_cjs.c.MOUSEMOVE);}onPointerUp(t){this.processPhysicalEvent(t,chunk52YF3VHH_cjs.c.MOUSEUP),this.processPhysicalEvent(t,chunk52YF3VHH_cjs.c.CLICK);}onPointerCancel(t){this.processPhysicalEvent(t,chunk52YF3VHH_cjs.c.MOUSEUP);}processPhysicalEvent(t,i){let e=this.rect;if(!e)return;let s={x:chunk52YF3VHH_cjs.B(t.clientX-e.left,e.width),y:chunk52YF3VHH_cjs.B(t.clientY-e.top,e.height)};this.handleSignal({targetStageId:this.uid,type:i,payload:{point:s,button:t.button}});}handleSignal(t){let{type:i,payload:e}=t;switch(this.ensureFocus(),i){case chunk52YF3VHH_cjs.c.KEYDOWN:case chunk52YF3VHH_cjs.c.KEYUP:this.delegates.dispatchKeyboardEvent?.(i,e);break;case chunk52YF3VHH_cjs.c.MOUSEMOVE:e.point?this.updateCursorPosition(e.point):e.delta&&this.updateCursorPositionByDelta(e.delta),this.config.cursorEnabled&&this.showCursor(),this.throttledMoveExecution(e);break;case chunk52YF3VHH_cjs.c.MOUSEDOWN:case chunk52YF3VHH_cjs.c.MOUSEUP:case chunk52YF3VHH_cjs.c.CLICK:e.point&&this.updateCursorPosition(e.point),this.config.cursorEnabled&&this.showCursor(),this.executeMouseAction(i.startsWith(chunk52YF3VHH_cjs.c.MOUSE)?i.replace(chunk52YF3VHH_cjs.c.MOUSE,chunk52YF3VHH_cjs.c.POINTER):i,e);break}}executeMouseAction(t,i){let e=this.rect;if(!e)return;t===chunk52YF3VHH_cjs.c.POINTERDOWN&&this.setState({isPointerDown:true}),t===chunk52YF3VHH_cjs.c.POINTERUP&&this.setState({isPointerDown:false});let s=i.point||this.state.position,c=chunk52YF3VHH_cjs.q(e.left+chunk52YF3VHH_cjs.A(s.x,e.width),e.left+S,e.left+e.width-S),p=chunk52YF3VHH_cjs.q(e.top+chunk52YF3VHH_cjs.A(s.y,e.height),e.top+S,e.top+e.height-S);this.delegates.dispatchPointerEventAtPos?.(t,c,p,{button:i.button??0,buttons:this.state.isPointerDown?1:0,pressure:this.state.isPointerDown?.5:0});}ensureFocus(){let t=this.rect;if(!t)return;let i=chunk52YF3VHH_cjs.q(t.left+chunk52YF3VHH_cjs.A(this.state.position.x,t.width),t.left+S,t.left+t.width-S),e=chunk52YF3VHH_cjs.q(t.top+chunk52YF3VHH_cjs.A(this.state.position.y,t.height),t.top+S,t.top+t.height-S);this.delegates.reclaimFocusAtPos?.(i,e,()=>this.triggerFocusFeedback());}triggerFocusFeedback(){this.setState({isFocusReturning:true}),this.focusFeedbackTimer&&clearTimeout(this.focusFeedbackTimer),this.focusFeedbackTimer=setTimeout(()=>this.setState({isFocusReturning:false}),500);}updateCursorPosition(t){chunk52YF3VHH_cjs.F(t,this.state.position)||this.setState({position:{...t}});}updateCursorPositionByDelta(t){if(chunk52YF3VHH_cjs.F(t,{x:0,y:0}))return;let i=this.rect;if(!i)return;let e=chunk52YF3VHH_cjs.B(t.x,i.width),s=chunk52YF3VHH_cjs.B(t.y,i.height);this.updateCursorPosition({x:chunk52YF3VHH_cjs.q(this.state.position.x+e,0,100),y:chunk52YF3VHH_cjs.q(this.state.position.y+s,0,100)});}showCursor(){this.setState({isVisible:true}),this.hideTimer&&clearTimeout(this.hideTimer),this.config.cursorAutoDelay&&this.config.cursorAutoDelay>0&&(this.hideTimer=setTimeout(()=>this.setState({isVisible:false}),this.config.cursorAutoDelay));}reset(){this.state.isPointerDown&&this.executeMouseAction(chunk52YF3VHH_cjs.c.POINTERUP,{}),this.hideTimer&&clearTimeout(this.hideTimer),this.focusFeedbackTimer&&clearTimeout(this.focusFeedbackTimer),this.setState({isVisible:false,isPointerDown:false,isFocusReturning:false});}};var ht={isActive:false,isPressed:false,pointerId:null,value:0},W=class extends y{constructor(t,i,e){super(t,e||chunk52YF3VHH_cjs.b.TRACKPAD,i,ht);chunkHCOFKHVV_cjs.a(this,"lastPointerPos",{x:0,y:0});chunkHCOFKHVV_cjs.a(this,"gesture");chunkHCOFKHVV_cjs.a(this,"emitter");let s=i.mapping||"Mouse";this.emitter=new g(i.targetStageId,s),this.gesture=new A({onTap:()=>{this.setState({isPressed:true}),this.emitter.tap();},onDoubleTapHoldStart:()=>{this.setState({isPressed:true}),this.emitter.press();},onDoubleTapHoldEnd:()=>{this.setState({isPressed:false}),this.emitter.release(false);}});}get activePointerId(){return this.state.pointerId}onPointerDown(t){this.lastPointerPos={x:t.clientX,y:t.clientY},this.gesture.onPointerDown(t.clientX,t.clientY),this.setState({isActive:true,pointerId:t.pointerId});}onPointerMove(t){!this.state.isActive||t.pointerId!==this.state.pointerId||(this.gesture.onPointerMove(t.clientX,t.clientY),this.processInput(t));}processInput(t){if(!this.state.isActive)return;let i=t.clientX-this.lastPointerPos.x,e=t.clientY-this.lastPointerPos.y,s=this.rect;if(!s)return;let c=i/s.width*100*(this.config.sensitivity??1),p=e/s.height*100*(this.config.sensitivity??1),m={x:c,y:p};chunk52YF3VHH_cjs.F(m,{x:0,y:0})||this.emitter.move({delta:m}),this.lastPointerPos={x:t.clientX,y:t.clientY};}onPointerUp(t){!this.state.isActive||t.pointerId!==this.state.pointerId||(this.gesture.onPointerUp(),this.handleRelease());}onPointerCancel(){this.handleRelease();}reset(){this.gesture.reset(),this.emitter.reset(),this.handleRelease();}updateConfig(t){super.updateConfig(t),this.emitter.update(this.config.targetStageId,this.config.mapping);}handleRelease(){this.setState(ht);}};var yi={ActionTypes:chunk52YF3VHH_cjs.c,Context:chunk52YF3VHH_cjs.e,Keys:chunk52YF3VHH_cjs.a,Types:chunk52YF3VHH_cjs.b};Object.defineProperty(exports,"Registry",{enumerable:true,get:function(){return chunkNB4FTDOP_cjs.b}});Object.defineProperty(exports,"StickyController",{enumerable:true,get:function(){return chunkNB4FTDOP_cjs.d}});Object.defineProperty(exports,"StickyProvider",{enumerable:true,get:function(){return chunkNB4FTDOP_cjs.c}});Object.defineProperty(exports,"setGlobalSignalHandler",{enumerable:true,get:function(){return chunkNB4FTDOP_cjs.a}});Object.defineProperty(exports,"ACTION_TYPES",{enumerable:true,get:function(){return chunk52YF3VHH_cjs.c}});Object.defineProperty(exports,"CMP_TYPES",{enumerable:true,get:function(){return chunk52YF3VHH_cjs.b}});Object.defineProperty(exports,"CONTEXT",{enumerable:true,get:function(){return chunk52YF3VHH_cjs.e}});Object.defineProperty(exports,"KEYS",{enumerable:true,get:function(){return chunk52YF3VHH_cjs.a}});Object.defineProperty(exports,"VALID_UNITS",{enumerable:true,get:function(){return chunk52YF3VHH_cjs.d}});Object.defineProperty(exports,"OMNIPAD_IPC_SIGNATURE",{enumerable:true,get:function(){return chunkHCOFKHVV_cjs.b}});exports.BaseEntity=y;exports.ButtonCore=F;exports.DPadCore=_;exports.InputZoneCore=Y;exports.JoystickCore=B;exports.OmniPad=yi;exports.RootLayerCore=V;exports.TargetZoneCore=K;exports.TrackpadCore=W;exports.bindEntityDelegates=Dt;exports.exportProfile=Kt;exports.filterNotDynamicChildren=Mt;exports.getOverrideProps=Ot;exports.mergeWidgetConfig=kt;exports.parseProfileForest=Vt;exports.parseProfileJson=Bt;exports.parseProfileTrees=gt;exports.resolveDynamicWidget=Rt;exports.setupSpatialLogic=wt;exports.validateProfile=ot;exports.validateWidgetNode=Nt;
|