@omnipad/vue 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/index.d.ts +20 -17
- package/dist/omnipad-vue.css +1 -1
- package/dist/omnipad-vue.mjs +527 -505
- package/dist/omnipad-vue.umd.js +1 -1
- package/package.json +2 -2
package/dist/omnipad-vue.umd.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(_,u){typeof exports=="object"&&typeof module<"u"?u(exports,require("@omnipad/core"),require("@omnipad/core/dom"),require("vue"),require("@omnipad/core/utils")):typeof define=="function"&&define.amd?define(["exports","@omnipad/core","@omnipad/core/dom","vue","@omnipad/core/utils"],u):(_=typeof globalThis<"u"?globalThis:_||self,u(_.OmniPadVue={},_.OmniPadCore,_.OmniPadCoreDom,_.Vue,_.OmniPadCoreUtils))})(this,(function(_,u,w,e,$){"use strict";const x={};function D(t,o){x[t]=o}function O(t){const o=x[t];return o||e.defineComponent({render:()=>e.h("div",{style:"color:red"},`[Unknown: ${t}]`)})}function L(t){return!t||!x[t]?null:x[t]}function X(t){return t?!!x[t]:!1}function I(t,o,m={},c){const n=t(),l=e.shallowRef(),k=e.ref(),r=e.ref(),d=e.ref(null);let i;const y=e.ref(0),h=()=>{y.value=y.value%65535+1};e.watch(()=>r.value?.layout?.stickySelector,(a,f,g)=>{if(!a){i=null,h();return}let p=!1;if(i?p=i.updateSelector(a):(i=w.createWebStickyProvider(a),p=!0),!p)return;const s=i.getTarget();if(!s)return;const N=n.uid+"-sticky";w.ElementObserver.getInstance().observeResize(N,s,()=>{i?.markDirty(),n.markRectDirty()}),w.ElementObserver.getInstance().observeIntersect(N,s,P=>{P||n.reset()}),h(),g(()=>{w.ElementObserver.getInstance().disconnect(N)})},{immediate:!0});let E={...o.value};e.watch(o,a=>{if(!l.value)return;const f=$.getObjectDiff(E,a);Object.keys(f).length>0&&l.value.updateConfig(f),E={...o.value}},{deep:!0});const R=a=>{l.value&&"bindDelegate"in l.value&&Object.entries(a).forEach(([f,g])=>{l.value.bindDelegate(f,g)})};e.onMounted(()=>{l.value=n,u.Registry.getInstance().register(n),"subscribeState"in n&&n.subscribeState(f=>k.value=f),"subscribeConfig"in n&&n.subscribeConfig(f=>r.value=f),c&&R(c);let a=null;if(d.value&&(d.value instanceof Element?a=d.value:d.value.$el instanceof Element&&(a=d.value.$el)),a instanceof Element){const f=w.ElementObserver.getInstance();if("bindRectProvider"in n){const g=$.createCachedProvider(()=>a.getBoundingClientRect());n.bindRectProvider(g.get,()=>{g.markDirty(),i&&(i.markDirty(),h())}),f.observeResize(n.uid,a,()=>{n.markRectDirty()})}f.observeIntersect(n.uid,a,g=>{g||n.reset()})}w.WindowManager.getInstance().init()}),e.onUnmounted(()=>{w.ElementObserver.getInstance().disconnect(n.uid),w.ElementObserver.getInstance().disconnect(n.uid+"-sticky"),l.value&&l.value.destroy()});const S="onPointerDown"in n?w.createPointerBridge(n,m):{},b=e.computed(()=>{const a=r.value?.layout;if(!i||!y.value)return a;const f=i.getRect();return f?$.resolveStickyLayout(a,f):a});return{core:e.readonly(l),state:e.readonly(k),domEvents:S,effectiveConfig:e.readonly(r),effectiveLayout:b,elementRef:d,bindDelegates:R}}const G={class:"omnipad-virtual-layer-base omnipad-prevent"},H=e.defineComponent({__name:"VirtualLayerBase",props:{nodes:{}},setup(t){const o=t,m=e.computed(()=>(o.nodes||[]).map(c=>{let n=L(c.type);return!n&&c.config?.baseType&&(n=L(c.config.baseType)),n||(n=O(c.type)),{node:c,component:n}}));return(c,n)=>(e.openBlock(),e.createElementBlock("div",G,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(m.value,l=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(l.component),{key:l.node.uid,"tree-node":l.node},null,8,["tree-node"]))),128)),e.renderSlot(c.$slots,"default",{},void 0,!0)]))}}),B=(t,o)=>{const m=t.__vccOpts||t;for(const[c,n]of o)m[c]=n;return m},U=B(H,[["__scopeId","data-v-a172c7c0"]]),ee=["treeNode","widgetId","parentId"];function V(t,o,m={},c=[]){const n=o.treeNode,l=n&&n.config?.baseType===t||n?.type===t?n:void 0;n&&!l&&console.warn(`[OmniPad-Validation] Type mismatch! Component expected "${t}", but received "${n.type}". Config ignored.`);const k=e.inject(u.CONTEXT.PARENT_ID_KEY,e.ref(void 0)),r=e.computed(()=>o.parentId||l?.config?.parentId||k.value),d=e.computed(()=>o.widgetId||l?.uid||$.generateUID(t));e.provide(u.CONTEXT.PARENT_ID_KEY,d);const i=new Set([...ee,...c]),y=l?.config||{},h=$.getBusinessProps(o,i),E=e.computed(()=>({...m,...y,...h,id:d.value,baseType:t,parentId:r.value,layout:{...m.layout||{},...y.layout||{},...h.layout||{}}})),R=e.computed(()=>{const S=$.getBusinessProps(o,i);return{...S,parentId:r.value,layout:S.layout||void 0}});return{uid:d,initialConfig:E,reactiveConfig:R}}const te=["id"],Y=B(e.defineComponent({__name:"InputZone",props:{treeNode:{},widgetId:{},layout:{},preventFocusLoss:{}},setup(t){const o=t,m=e.useSlots(),c=e.ref(null),{uid:n,initialConfig:l,reactiveConfig:k}=V(u.CMP_TYPES.INPUT_ZONE,o),{core:r,state:d,domEvents:i,effectiveConfig:y,effectiveLayout:h,elementRef:E,bindDelegates:R}=I(()=>new u.InputZoneCore(n.value,l.value,o.treeNode?.type),k,{requireDirectHit:!0}),S=e.computed(()=>{const C=o.treeNode?.config?.dynamicWidgetId;return o.treeNode?.children?.filter(T=>T.uid!==C)||[]}),b=e.computed(()=>{const T=(m.dynamicWidget?.()||[]).filter(z=>!(z.type===Comment||z.type===Text)),v=o.treeNode?.children?.find(z=>z.uid===o.treeNode?.config?.dynamicWidgetId),A=T.length>0;return T.length>1&&console.error(`[OmniPad-Validation] InputZone ${n} has multiple dynamic widgets in slot. Only the first one will be activated.`),A&&v&&console.warn(`[OmniPad-Validation] InputZone ${n} has both Slot and Config dynamic widgets. Config ignored.`),{nodeToRender:A?T[0]:v||null,isFromSlot:A}}),a=e.computed(()=>{const C=b.value.nodeToRender;return O(C.config?.baseType||C.type)});e.watch(c,C=>{e.nextTick(()=>{C&&C?.uid&&(r.value?.updateConfig({dynamicWidgetId:C.uid}),R({dynamicWidgetPointerDown:T=>{C.markRectDirty?.(),C.onPointerDown?.(T)},dynamicWidgetPointerMove:C.onPointerMove,dynamicWidgetPointerUp:C.onPointerUp,dynamicWidgetPointerCancel:C.onPointerCancel}))})},{immediate:!0});const f=e.computed(()=>h.value?$.resolveLayoutStyle(h.value):{}),g=w.supportsContainerQueries(),p=e.computed(()=>{if(!d.value)return{display:"none"};if(!d.value?.isDynamicActive)return{visibility:"hidden",opacity:0};let C,T;const v=d?.value?.dynamicPosition;if(g)C=`${v.x}cqw`,T=`${v.y}cqh`;else{const A=r?.value?.rect;C=`${$.remap(v?.x||0,0,100,0,A?.width||0)}px`,T=`${$.remap(v?.y||0,0,100,0,A?.height||0)}px`}return{zIndex:100,"--dynamic-widget-mount-x":C,"--dynamic-widget-mount-y":T,visibility:"visible",opacity:1,pointerEvents:"auto"}}),s=C=>i?.onPointerDown?.(C),N=C=>i?.onPointerMove?.(C),P=C=>i?.onPointerUp?.(C),J=C=>i?.onPointerCancel?.(C);return(C,T)=>(e.openBlock(),e.createElementBlock("div",{id:e.unref(n),ref_key:"elementRef",ref:E,class:e.normalizeClass(["omnipad-input-zone omnipad-prevent",e.unref(y)?.cssClass]),style:e.normalizeStyle(f.value)},[e.createVNode(U,{nodes:S.value},{default:e.withCtx(()=>[e.renderSlot(C.$slots,"default",{},void 0,!0)]),_:3},8,["nodes"]),b.value.nodeToRender||e.unref(r)?.isInterceptorRequired?(e.openBlock(),e.createElementBlock("div",{key:0,class:"omnipad-input-zone-trigger omnipad-prevent",onPointerdown:s,onPointermove:N,onPointerup:P,onPointercancel:J,onLostpointercapture:J},[e.createElementVNode("div",{class:"dynamic-widget-mount",style:e.normalizeStyle(p.value)},[b.value.isFromSlot?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(b.value.nodeToRender),{key:0,ref:v=>c.value=v},null,512)):b.value.nodeToRender?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a.value),{key:1,ref:v=>c.value=v,"tree-node":b.value.nodeToRender},null,8,["tree-node"])):e.createCommentVNode("",!0)],4)],32)):e.createCommentVNode("",!0)],14,te))}}),[["__scopeId","data-v-2f22290e"]]),ne=["id"],Z=B(e.defineComponent({__name:"RootLayer",props:{treeNode:{},widgetId:{},layout:{}},setup(t){const o=t,{uid:m,initialConfig:c,reactiveConfig:n}=V(u.CMP_TYPES.ROOT_LAYER,o),{effectiveConfig:l,effectiveLayout:k,elementRef:r}=I(()=>new u.RootLayerCore(m.value,c.value,o.treeNode?.type),n),d=e.computed(()=>k.value?$.resolveLayoutStyle(k.value):{});return(i,y)=>(e.openBlock(),e.createElementBlock("div",{id:e.unref(m),ref_key:"elementRef",ref:r,class:e.normalizeClass(["omnipad-root-layer omnipad-prevent",e.unref(l)?.cssClass]),style:e.normalizeStyle(d.value)},[e.createVNode(U,{nodes:t.treeNode?.children||[]},{default:e.withCtx(()=>[e.renderSlot(i.$slots,"default",{},void 0,!0)]),_:3},8,["nodes"])],14,ne))}}),[["__scopeId","data-v-ad8f02d4"]]),oe=["id"],re={key:0,class:"omnipad-default-focus-border-feedback"},K=B(e.defineComponent({__name:"TargetZone",props:{treeNode:{},widgetId:{},cursorEnabled:{type:Boolean},cursorAutoDelay:{},layout:{}},setup(t){const o=t,m={cursorAutoDelay:2500},{uid:c,initialConfig:n,reactiveConfig:l}=V(u.CMP_TYPES.TARGET_ZONE,o,m),{core:k,state:r,domEvents:d,effectiveConfig:i,effectiveLayout:y,elementRef:h}=I(()=>new u.TargetZoneCore(c.value,n.value,o.treeNode?.type),l,{},{dispatchKeyboardEvent:w.dispatchKeyboardEvent,dispatchPointerEventAtPos:w.dispatchPointerEventAtPos,reclaimFocusAtPos:w.reclaimFocusAtPos}),E=e.computed(()=>y.value?$.resolveLayoutStyle(y.value):{}),R=w.supportsContainerQueries(),S=e.computed(()=>{if(!r.value)return{display:"none"};let p,s;const N=r?.value?.position;if(R)p=`${N.x}cqw`,s=`${N.y}cqh`;else{const P=k?.value?.rect;p=`${$.remap(N?.x||0,0,100,0,P?.width||0)}px`,s=`${$.remap(N?.y||0,0,100,0,P?.height||0)}px`}return{"--omnipad-virtual-cursor-x":p,"--omnipad-virtual-cursor-y":s,opacity:r.value.isVisible?1:0}}),b=p=>d?.onPointerDown?.(p),a=p=>d?.onPointerMove?.(p),f=p=>d?.onPointerUp?.(p),g=p=>d?.onPointerCancel?.(p);return(p,s)=>(e.openBlock(),e.createElementBlock("div",{id:e.unref(c),ref_key:"elementRef",ref:h,class:e.normalizeClass(["omnipad-target-zone omnipad-prevent",e.unref(i)?.cssClass]),style:e.normalizeStyle(E.value),onPointerdown:b,onPointermove:a,onPointerup:f,onPointercancel:g,onLostpointercapture:g},[e.renderSlot(p.$slots,"focus-feedback",{state:e.unref(r),isReturning:e.unref(r)?.isFocusReturning,cursorPos:e.unref(r)?.position},()=>[e.createVNode(e.Transition,{name:"omnipad-default-focus-fade"},{default:e.withCtx(()=>[e.unref(r)?.isFocusReturning?(e.openBlock(),e.createElementBlock("div",re)):e.createCommentVNode("",!0)]),_:1})],!0),e.unref(i)?.cursorEnabled?(e.openBlock(),e.createElementBlock("div",{key:0,class:"omnipad-virtual-cursor",style:e.normalizeStyle(S.value)},[e.renderSlot(p.$slots,"cursor",{state:e.unref(r),isDown:e.unref(r)?.isPointerDown,isReturning:e.unref(r)?.isFocusReturning,cursorPos:e.unref(r)?.position},()=>[e.createElementVNode("div",{class:e.normalizeClass(["omnipad-default-cursor-dot",{"is-down":e.unref(r)?.isPointerDown}])},null,2)],!0)],4)):e.createCommentVNode("",!0),e.unref(i)?.cursorEnabled?(e.openBlock(),e.createElementBlock("div",{key:1,class:"omnipad-virtual-cursor",style:e.normalizeStyle(S.value)},[e.renderSlot(p.$slots,"with-cursor",{state:e.unref(r),isDown:e.unref(r)?.isPointerDown,isReturning:e.unref(r)?.isFocusReturning,cursorPos:e.unref(r)?.position},void 0,!0)],4)):e.createCommentVNode("",!0),e.renderSlot(p.$slots,"default",{state:e.unref(r),isDown:e.unref(r)?.isPointerDown,isReturning:e.unref(r)?.isFocusReturning,cursorPos:e.unref(r)?.position},void 0,!0)],46,oe))}}),[["__scopeId","data-v-b1782723"]]),ie={class:"omnipad-button-content-layer"},ae={key:0,class:"omnipad-default-button-label"},M=B(e.defineComponent({__name:"VirtualButtonBase",props:{layout:{},isActive:{type:Boolean},label:{}},setup(t){const o=t,m=e.computed(()=>o.layout?$.resolveLayoutStyle(o.layout):{});return(c,n)=>(e.openBlock(),e.createElementBlock("div",{class:"omnipad-button-base omnipad-prevent",style:e.normalizeStyle(m.value),tabindex:"-1"},[e.renderSlot(c.$slots,"base",{isActive:t.isActive,label:t.label},()=>[e.createElementVNode("div",{class:e.normalizeClass(["omnipad-default-button-base",{"is-active":t.isActive}])},null,2)],!0),e.createElementVNode("div",ie,[e.renderSlot(c.$slots,"default",{isActive:t.isActive,label:t.label},()=>[t.label?(e.openBlock(),e.createElementBlock("span",ae,e.toDisplayString(t.label),1)):e.createCommentVNode("",!0)],!0)])],4))}}),[["__scopeId","data-v-f6a6e082"]]),F=e.defineComponent({__name:"VirtualButton",props:{treeNode:{},widgetId:{},label:{},targetStageId:{},mapping:{},layout:{}},setup(t,{expose:o}){const m=t,c={label:"BTN"},{uid:n,initialConfig:l,reactiveConfig:k}=V(u.CMP_TYPES.BUTTON,m,c),{core:r,state:d,domEvents:i,effectiveConfig:y,effectiveLayout:h,elementRef:E}=I(()=>new u.ButtonCore(n.value,l.value,m.treeNode?.type),k),R=f=>i?.onPointerDown?.(f),S=f=>i?.onPointerMove?.(f),b=f=>i?.onPointerUp?.(f),a=f=>i?.onPointerCancel?.(f);return o({uid:n,onPointerDown:R,onPointerMove:S,onPointerUp:b,onPointerCancel:a,markRectDirty:()=>r.value?.markRectDirty}),(f,g)=>(e.openBlock(),e.createBlock(M,{id:e.unref(n),ref_key:"elementRef",ref:E,class:e.normalizeClass(["omnipad-button omnipad-prevent",e.unref(y)?.cssClass]),layout:e.unref(h),label:e.unref(y)?.label,"is-active":e.unref(d)?.isPressed,onPointerdown:R,onPointerup:b,onPointercancel:a,onLostpointercapture:a},{base:e.withCtx(p=>[e.renderSlot(f.$slots,"base",e.normalizeProps(e.guardReactiveProps(p)))]),default:e.withCtx(p=>[e.renderSlot(f.$slots,"default",e.normalizeProps(e.guardReactiveProps(p)))]),_:3},8,["id","class","layout","label","is-active"]))}}),se={class:"omnipad-axis-bg"},ce={class:"omnipad-axis-content-layer"},q=B(e.defineComponent({__name:"VirtualAxisBase",props:{layout:{},isActive:{type:Boolean},vector:{},showStick:{type:Boolean},baseRadius:{}},setup(t){const o=t,m=e.computed(()=>o.layout?$.resolveLayoutStyle(o.layout):{}),c=w.supportsContainerQueries(),n=e.computed(()=>{const l=o.vector?.x||0,k=o.vector?.y||0,r=o.baseRadius?.x||0,d=o.baseRadius?.y||0,i=c?`${l*50}cqw`:`${l*r}px`,y=c?`${k*50}cqh`:`${k*d}px`,h=c?"100cqw":`${r*2}px`,E=c?"100cqh":`${d*2}px`;return{"--omnipad-axis-stick-container-x":i,"--omnipad-axis-stick-container-y":y,"--omnipad-axis-stick-width":h,"--omnipad-axis-stick-height":E,transition:o.isActive?"none":"transform 0.1s ease-out"}});return(l,k)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["omnipad-axis-base omnipad-prevent",{"is-active":t.isActive}]),style:e.normalizeStyle(m.value),tabindex:"-1"},[e.createElementVNode("div",se,[e.renderSlot(l.$slots,"base",{isActive:t.isActive,vector:t.vector},void 0,!0)]),t.showStick?(e.openBlock(),e.createElementBlock("div",{key:0,class:"omnipad-axis-stick-container",style:e.normalizeStyle(n.value)},[e.renderSlot(l.$slots,"stick",{isActive:t.isActive,vector:t.vector},()=>[e.createElementVNode("div",{class:e.normalizeClass(["omnipad-default-axis-stick",{"is-active":t.isActive}])},null,2)],!0)],4)):e.createCommentVNode("",!0),e.createElementVNode("div",ce,[e.renderSlot(l.$slots,"default",{isActive:t.isActive,vector:t.vector},void 0,!0)])],6))}}),[["__scopeId","data-v-6ae17f17"]]),le={class:"omnipad-dpad-cross-bg"},Q=B(e.defineComponent({__name:"VirtualDPad",props:{treeNode:{},widgetId:{},targetStageId:{},mapping:{},threshold:{},showStick:{},layout:{}},setup(t,{expose:o}){const m=t,c={showStick:!1,threshold:.3},{uid:n,initialConfig:l,reactiveConfig:k}=V(u.CMP_TYPES.D_PAD,m,c),{core:r,state:d,domEvents:i,effectiveConfig:y,effectiveLayout:h,elementRef:E}=I(()=>new u.DPadCore(n.value,l.value,m.treeNode?.type),k),R=w.supportsContainerQueries(),S=e.ref({x:0,y:0}),b=e.watchEffect(()=>{const s=r.value?.rect;s&&(S.value={x:s.width/2,y:s.height/2})});R&&b();const a=s=>i?.onPointerDown?.(s),f=s=>i?.onPointerMove?.(s),g=s=>i?.onPointerUp?.(s),p=s=>i?.onPointerCancel?.(s);return o({uid:n,onPointerDown:a,onPointerMove:f,onPointerUp:g,onPointerCancel:p,markRectDirty:()=>r.value?.markRectDirty()}),(s,N)=>(e.openBlock(),e.createBlock(q,{ref_key:"elementRef",ref:E,class:e.normalizeClass(["omnipad-dpad omnipad-prevent",e.unref(y)?.cssClass]),layout:e.unref(h),"is-active":e.unref(d)?.isActive,vector:e.unref(d)?.vector,"show-stick":e.unref(y)?.showStick,"base-radius":S.value,onPointerdown:a,onPointermove:f,onPointerup:g,onPointercancel:p,onLostpointercapture:p},{base:e.withCtx(P=>[e.renderSlot(s.$slots,"base",e.normalizeProps(e.guardReactiveProps(P)),()=>[e.createElementVNode("div",le,[e.createElementVNode("div",{class:e.normalizeClass(["dpad-arm top",{on:P.vector&&P.vector.y<-e.unref(y)?.threshold}])},null,2),e.createElementVNode("div",{class:e.normalizeClass(["dpad-arm bottom",{on:P.vector&&P.vector.y>e.unref(y)?.threshold}])},null,2),e.createElementVNode("div",{class:e.normalizeClass(["dpad-arm left",{on:P.vector&&P.vector.x<-e.unref(y)?.threshold}])},null,2),e.createElementVNode("div",{class:e.normalizeClass(["dpad-arm right",{on:P.vector&&P.vector.x>e.unref(y)?.threshold}])},null,2),N[0]||(N[0]=e.createElementVNode("div",{class:"dpad-center"},null,-1))])],!0)]),stick:e.withCtx(P=>[e.renderSlot(s.$slots,"stick",e.normalizeProps(e.guardReactiveProps(P)),void 0,!0)]),default:e.withCtx(P=>[e.renderSlot(s.$slots,"default",e.normalizeProps(e.guardReactiveProps(P)),void 0,!0)]),_:3},8,["class","layout","is-active","vector","show-stick","base-radius"]))}}),[["__scopeId","data-v-8c030849"]]),j=B(e.defineComponent({__name:"VirtualTrackpad",props:{treeNode:{},widgetId:{},label:{},sensitivity:{},targetStageId:{},mapping:{},layout:{}},setup(t,{expose:o}){const m=t,{uid:c,initialConfig:n,reactiveConfig:l}=V(u.CMP_TYPES.TRACKPAD,m,{label:"TRACKPAD",sensitivity:1}),{core:k,state:r,domEvents:d,effectiveConfig:i,effectiveLayout:y,elementRef:h}=I(()=>new u.TrackpadCore(c.value,n.value,m.treeNode?.type),l),E=a=>d?.onPointerDown?.(a),R=a=>d?.onPointerMove?.(a),S=a=>d?.onPointerUp?.(a),b=a=>d?.onPointerCancel?.(a);return o({uid:c,onPointerDown:E,onPointerMove:R,onPointerUp:S,onPointerCancel:b,markRectDirty:()=>k.value?.markRectDirty}),(a,f)=>(e.openBlock(),e.createBlock(M,{id:e.unref(c),ref_key:"elementRef",ref:h,class:e.normalizeClass(["omnipad-trackpad omnipad-prevent",e.unref(i)?.cssClass]),layout:e.unref(y),label:e.unref(i)?.label,"is-active":e.unref(r)?.isPressed,onPointerdown:E,onPointermove:R,onPointerup:S,onPointercancel:b,onLostpointercapture:b},{base:e.withCtx(g=>[e.renderSlot(a.$slots,"base",e.normalizeProps(e.guardReactiveProps(g)),void 0,!0)]),default:e.withCtx(g=>[e.renderSlot(a.$slots,"default",e.normalizeProps(e.guardReactiveProps(g)),void 0,!0)]),_:3},8,["id","class","layout","label","is-active"]))}}),[["__scopeId","data-v-bacab613"]]),W=B(e.defineComponent({__name:"VirtualJoystick",props:{treeNode:{},widgetId:{},label:{},targetStageId:{},threshold:{},cursorMode:{},cursorSensitivity:{},mapping:{},layout:{}},setup(t,{expose:o}){const m=t,c={label:"PUSH",threshold:.2,cursorMode:!1,cursorSensitivity:1},{uid:n,initialConfig:l,reactiveConfig:k}=V(u.CMP_TYPES.JOYSTICK,m,c),{core:r,state:d,domEvents:i,effectiveConfig:y,effectiveLayout:h,elementRef:E}=I(()=>new u.JoystickCore(n.value,l.value,m.treeNode?.type),k),R=w.supportsContainerQueries(),S=e.ref({x:0,y:0}),b=e.watchEffect(()=>{const s=r.value?.rect;s&&(S.value={x:s.width/2,y:s.height/2})});R&&b();const a=s=>i?.onPointerDown?.(s),f=s=>i?.onPointerMove?.(s),g=s=>i?.onPointerUp?.(s),p=s=>i?.onPointerCancel?.(s);return o({uid:n,onPointerDown:a,onPointerMove:f,onPointerUp:g,onPointerCancel:p,markRectDirty:()=>r.value?.markRectDirty}),(s,N)=>(e.openBlock(),e.createBlock(q,{ref_key:"elementRef",ref:E,class:e.normalizeClass(["omnipad-joystick omnipad-prevent",e.unref(y)?.cssClass]),layout:e.unref(h),"is-active":e.unref(d)?.isActive,vector:e.unref(d)?.vector,"show-stick":"","base-radius":S.value,onPointerdown:a,onPointermove:f,onPointerup:g,onPointercancel:p,onLostpointercapture:p},{base:e.withCtx(P=>[e.renderSlot(s.$slots,"base",e.normalizeProps(e.guardReactiveProps(P)),void 0,!0)]),stick:e.withCtx(()=>[e.createVNode(M,{layout:{height:"100%",width:"100%"},"is-active":e.unref(d)?.isPressed,label:e.unref(y)?.label},{base:e.withCtx(P=>[e.renderSlot(s.$slots,"stick-base",e.normalizeProps(e.guardReactiveProps(P)),void 0,!0)]),default:e.withCtx(P=>[e.renderSlot(s.$slots,"stick",e.normalizeProps(e.guardReactiveProps(P)),void 0,!0)]),_:3},8,["is-active","label"])]),default:e.withCtx(P=>[e.renderSlot(s.$slots,"default",e.normalizeProps(e.guardReactiveProps(P)),void 0,!0)]),_:3},8,["class","layout","is-active","vector","base-radius"]))}}),[["__scopeId","data-v-ae628e53"]]);D(u.CMP_TYPES.BUTTON,F),D(u.CMP_TYPES.INPUT_ZONE,Y),D(u.CMP_TYPES.ROOT_LAYER,Z),D(u.CMP_TYPES.TARGET_ZONE,K),D(u.CMP_TYPES.TRACKPAD,j),D(u.CMP_TYPES.D_PAD,Q),D(u.CMP_TYPES.JOYSTICK,W),u.setGlobalSignalHandler(t=>{(t.type===u.ACTION_TYPES.KEYDOWN||t.type===u.ACTION_TYPES.KEYUP)&&w.dispatchKeyboardEvent(t.type,t.payload)}),_.InputZone=Y,_.RootLayer=Z,_.TargetZone=K,_.VirtualButton=F,_.VirtualDPad=Q,_.VirtualJoystick=W,_.VirtualTrackpad=j,_.getComponent=O,_.getComponentSafe=L,_.hasRegisteredComponent=X,_.registerComponent=D,Object.defineProperty(_,Symbol.toStringTag,{value:"Module"})}));
|
|
1
|
+
(function(_,i){typeof exports=="object"&&typeof module<"u"?i(exports,require("@omnipad/core"),require("@omnipad/core/dom"),require("vue"),require("@omnipad/core/utils")):typeof define=="function"&&define.amd?define(["exports","@omnipad/core","@omnipad/core/dom","vue","@omnipad/core/utils"],i):(_=typeof globalThis<"u"?globalThis:_||self,i(_.OmniPadVue={},_.OmniPadCore,_.OmniPadCoreDom,_.Vue,_.OmniPadCoreUtils))})(this,(function(_,i,E,e,R){"use strict";const z={};function N(t,o){z[t]=o}function A(t){const o=z[t];return o||e.defineComponent({render:()=>e.h("div",{style:"color:red"},`[Unknown: ${t}]`)})}function I(t){return!t||!z[t]?null:z[t]}function F(t){return t?!!z[t]:!1}const Q={class:"omnipad-virtual-layer-base omnipad-prevent"},J=e.defineComponent({__name:"VirtualLayerBase",props:{nodes:{}},setup(t){const o=t,f=e.computed(()=>(o.nodes||[]).map(a=>{let r=I(a.type);return!r&&a.config?.baseType&&(r=I(a.config.baseType)),r||(r=A(a.type)),{node:a,component:r}}));return(a,r)=>(e.openBlock(),e.createElementBlock("div",Q,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(f.value,n=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(n.component),{key:n.node.uid,"tree-node":n.node},null,8,["tree-node"]))),128)),e.renderSlot(a.$slots,"default",{},void 0,!0)]))}}),T=(t,o)=>{const f=t.__vccOpts||t;for(const[a,r]of o)f[a]=r;return f},M=T(J,[["__scopeId","data-v-a172c7c0"]]),G={[i.CMP_TYPES.BUTTON]:i.ButtonCore,[i.CMP_TYPES.JOYSTICK]:i.JoystickCore,[i.CMP_TYPES.D_PAD]:i.DPadCore,[i.CMP_TYPES.TRACKPAD]:i.TrackpadCore,[i.CMP_TYPES.INPUT_ZONE]:i.InputZoneCore,[i.CMP_TYPES.TARGET_ZONE]:i.TargetZoneCore,[i.CMP_TYPES.ROOT_LAYER]:i.RootLayerCore};function H(t){const o=G[t];if(!o)throw new Error(`[OmniPad-Vue] No core logic defined for entity type: "${t}"`);return o}const q=Object.freeze(["treeNode","widgetId","parentId"]);function X(t,o,f={},a=[]){const r=i.validateWidgetNode(o.treeNode,t),n=e.inject(i.CONTEXT.PARENT_ID_KEY,e.ref(void 0)),c=e.computed(()=>o.parentId||r?.config?.parentId||n.value),s=e.computed(()=>o.widgetId||r?.uid||R.generateUID(t));e.provide(i.CONTEXT.PARENT_ID_KEY,s);const p=new Set([...q,...a]),P=r?.config||{},h=i.getOverrideProps(o,p),k=e.computed(()=>i.mergeWidgetConfig(t,s.value,c.value,f,P,h)),u=e.computed(()=>{const y=i.getOverrideProps(o,p);return{...y,parentId:c.value,layout:y.layout||void 0}});return{uid:s,initialConfig:k,reactiveConfig:u}}function ee(t,o,f={},a){const r=t(),n=e.computed(()=>r),c=e.ref(),s=e.ref(),p=e.ref(null);let P={...o.value};e.watch(o,u=>{if(!n.value)return;const y=R.getObjectDiff(P,u);Object.keys(y).length>0&&n.value.updateConfig(y),P={...o.value}},{deep:!0});const h=u=>{i.bindEntityDelegates(n.value,u)};e.onMounted(()=>{i.Registry.getInstance().register(r),"subscribeState"in r&&r.subscribeState(u=>c.value=u),"subscribeConfig"in r&&r.subscribeConfig(u=>s.value=u),a&&h(a),E.WindowManager.getInstance().init()}),e.onUnmounted(()=>{n.value&&n.value.destroy()});const k="onPointerDown"in r?E.createPointerBridge(r,f):{};return{core:n,state:e.readonly(c),domEvents:k,effectiveConfig:e.readonly(s),elementRef:p,bindDelegates:h}}function te(t,o,f){const a=e.shallowRef(null);let r=null;return e.watch(()=>o.value?.layout?.stickySelector,(n,c,s)=>{if(!t.value)return;r||(r=new i.StickyController(E.ElementObserver.getInstance(),t.value,f));const p=r.handleSelectorChange(n,a.value,P=>E.createWebStickyProvider(P));a.value=p.provider,s(()=>{r?.onCleanUp()})},{immediate:!0}),e.onUnmounted(()=>{r?.onCleanUp(),a.value=null}),{stickyProvider:a}}function ne(){const t=e.ref(0);return{depend:()=>t.value,notify:()=>{t.value=(t.value+1)%65535}}}function oe(t,o,f){let a=null;const r=n=>n instanceof Element?n:n?.$el instanceof Element?n.$el:null;e.onMounted(()=>{const n=t.value,c=r(o.value);n&&c&&(a=i.setupSpatialLogic(n,c,E.ElementObserver.getInstance(),s=>R.distillRect(s.getBoundingClientRect()),f?.value))}),e.onUnmounted(()=>{a&&a()})}function B(t,o,f={}){const{uid:a,initialConfig:r,reactiveConfig:n}=X(t,o,f.defaultProps,f.extraSkipProps),{core:c,state:s,effectiveConfig:p,elementRef:P,domEvents:h,bindDelegates:k}=ee(()=>{const d=H(t);return new d(a.value,r.value,o.treeNode?.type)},n,f.domEventOptions,f.initialDelegates),u=ne(),{stickyProvider:y}=te(c,p,u.notify);oe(c,P,y);const S=e.computed(()=>{u.depend();const d=p.value?.layout;if(y.value){const b=y.value.getRect();if(b)return E.flattenToHostLayout(d,b)}return d});return{uid:a,core:c,state:s,effectiveConfig:p,effectiveLayout:S,elementRef:P,domEvents:h,bindDelegates:k}}const re=["id"],O=T(e.defineComponent({__name:"InputZone",props:{treeNode:{},widgetId:{},layout:{},preventFocusLoss:{}},setup(t){const o=t,f=e.useSlots(),a=e.ref(null),{uid:r,core:n,state:c,domEvents:s,effectiveConfig:p,effectiveLayout:P,elementRef:h,bindDelegates:k}=B(i.CMP_TYPES.INPUT_ZONE,o,{domEventOptions:{requireDirectHit:!0}}),u=e.computed(()=>i.filterNotDynamicChildren(o.treeNode?.children,o.treeNode?.config?.dynamicWidgetId)),y=e.computed(()=>{const $=(f.dynamicWidget?.()||[]).filter(w=>!(w.type===Comment||w.type===Text));return i.resolveDynamicWidget($,o.treeNode?.children,o.treeNode?.config?.dynamicWidgetId)}),S=e.computed(()=>{const g=y.value.nodeToRender;return A(g.config?.baseType||g.type)});e.watch(a,g=>{e.nextTick(()=>{g&&g?.uid&&(n.value?.updateConfig({dynamicWidgetId:g.uid}),k({dynamicWidgetPointerDown:$=>{g.markRectDirty?.(),g.onPointerDown?.($)},dynamicWidgetPointerMove:g.onPointerMove,dynamicWidgetPointerUp:g.onPointerUp,dynamicWidgetPointerCancel:g.onPointerCancel}))})},{immediate:!0});const d=e.computed(()=>P.value?R.resolveLayoutStyle(P.value):{}),b=E.supportsContainerQueries(),m=e.computed(()=>{if(!c.value)return{display:"none"};if(!c.value?.isDynamicActive)return{visibility:"hidden",opacity:0};const g=c?.value?.dynamicPosition,$=()=>{const j=n?.value?.rect;return{x:j?.width||0,y:j?.height||0}},w=R.projectPercentToBox(g,$,b);return{zIndex:100,"--dynamic-widget-mount-x":w.x,"--dynamic-widget-mount-y":w.y,visibility:"visible",opacity:1,pointerEvents:"auto"}}),l=g=>s?.onPointerDown?.(g),D=g=>s?.onPointerMove?.(g),C=g=>s?.onPointerUp?.(g),W=g=>s?.onPointerCancel?.(g);return(g,$)=>(e.openBlock(),e.createElementBlock("div",{id:e.unref(r),ref_key:"elementRef",ref:h,class:e.normalizeClass(["omnipad-input-zone omnipad-prevent",e.unref(p)?.cssClass]),style:e.normalizeStyle(d.value)},[e.createVNode(M,{nodes:u.value},{default:e.withCtx(()=>[e.renderSlot(g.$slots,"default",{},void 0,!0)]),_:3},8,["nodes"]),y.value.nodeToRender||e.unref(n)?.isInterceptorRequired?(e.openBlock(),e.createElementBlock("div",{key:0,class:"omnipad-input-zone-trigger omnipad-prevent",onPointerdown:l,onPointermove:D,onPointerup:C,onPointercancel:W,onLostpointercapture:W},[e.createElementVNode("div",{class:"dynamic-widget-mount",style:e.normalizeStyle(m.value)},[y.value.isFromSlot?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(y.value.nodeToRender),{key:0,ref:w=>a.value=w},null,512)):y.value.nodeToRender?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(S.value),{key:1,ref:w=>a.value=w,"tree-node":y.value.nodeToRender},null,8,["tree-node"])):e.createCommentVNode("",!0)],4)],32)):e.createCommentVNode("",!0)],14,re))}}),[["__scopeId","data-v-6543281e"]]),ie=["id"],v=T(e.defineComponent({__name:"RootLayer",props:{treeNode:{},widgetId:{},layout:{}},setup(t){const o=t,{uid:f,effectiveConfig:a,effectiveLayout:r,elementRef:n}=B(i.CMP_TYPES.ROOT_LAYER,o),c=e.computed(()=>r.value?R.resolveLayoutStyle(r.value):{});return(s,p)=>(e.openBlock(),e.createElementBlock("div",{id:e.unref(f),ref_key:"elementRef",ref:n,class:e.normalizeClass(["omnipad-root-layer omnipad-prevent",e.unref(a)?.cssClass]),style:e.normalizeStyle(c.value)},[e.createVNode(M,{nodes:t.treeNode?.children||[]},{default:e.withCtx(()=>[e.renderSlot(s.$slots,"default",{},void 0,!0)]),_:3},8,["nodes"])],14,ie))}}),[["__scopeId","data-v-99206012"]]),ae=["id"],se={key:0,class:"omnipad-default-focus-border-feedback"},x=T(e.defineComponent({__name:"TargetZone",props:{treeNode:{},widgetId:{},cursorEnabled:{},cursorAutoDelay:{},layout:{}},setup(t){const o=t,f={cursorAutoDelay:2500},{uid:a,core:r,state:n,domEvents:c,effectiveConfig:s,effectiveLayout:p,elementRef:P}=B(i.CMP_TYPES.TARGET_ZONE,o,{defaultProps:f,initialDelegates:{dispatchKeyboardEvent:E.dispatchKeyboardEvent,dispatchPointerEventAtPos:E.dispatchPointerEventAtPos,reclaimFocusAtPos:E.reclaimFocusAtPos}}),h=e.computed(()=>p.value?R.resolveLayoutStyle(p.value):{}),k=E.supportsContainerQueries(),u=e.computed(()=>{if(!n.value)return{display:"none"};const m=n?.value?.position,l=()=>{const C=r?.value?.rect;return{x:C?.width||0,y:C?.height||0}},D=R.projectPercentToBox(m,l,k);return{"--omnipad-virtual-cursor-x":D.x,"--omnipad-virtual-cursor-y":D.y,opacity:n.value.isVisible?1:0}}),y=m=>c?.onPointerDown?.(m),S=m=>c?.onPointerMove?.(m),d=m=>c?.onPointerUp?.(m),b=m=>c?.onPointerCancel?.(m);return(m,l)=>(e.openBlock(),e.createElementBlock("div",{id:e.unref(a),ref_key:"elementRef",ref:P,class:e.normalizeClass(["omnipad-target-zone omnipad-prevent",e.unref(s)?.cssClass]),style:e.normalizeStyle(h.value),onPointerdown:y,onPointermove:S,onPointerup:d,onPointercancel:b,onLostpointercapture:b},[e.renderSlot(m.$slots,"focus-feedback",{state:e.unref(n),isReturning:e.unref(n)?.isFocusReturning,cursorPos:e.unref(n)?.position},()=>[e.createVNode(e.Transition,{name:"omnipad-default-focus-fade"},{default:e.withCtx(()=>[e.unref(n)?.isFocusReturning?(e.openBlock(),e.createElementBlock("div",se)):e.createCommentVNode("",!0)]),_:1})],!0),e.unref(s)?.cursorEnabled?(e.openBlock(),e.createElementBlock("div",{key:0,class:"omnipad-virtual-cursor",style:e.normalizeStyle(u.value)},[e.renderSlot(m.$slots,"cursor",{state:e.unref(n),isDown:e.unref(n)?.isPointerDown,isReturning:e.unref(n)?.isFocusReturning,cursorPos:e.unref(n)?.position},()=>[e.createElementVNode("div",{class:e.normalizeClass(["omnipad-default-cursor-dot",{"is-down":e.unref(n)?.isPointerDown}])},null,2)],!0)],4)):e.createCommentVNode("",!0),e.unref(s)?.cursorEnabled?(e.openBlock(),e.createElementBlock("div",{key:1,class:"omnipad-virtual-cursor",style:e.normalizeStyle(u.value)},[e.renderSlot(m.$slots,"with-cursor",{state:e.unref(n),isDown:e.unref(n)?.isPointerDown,isReturning:e.unref(n)?.isFocusReturning,cursorPos:e.unref(n)?.position},void 0,!0)],4)):e.createCommentVNode("",!0),e.renderSlot(m.$slots,"default",{state:e.unref(n),isDown:e.unref(n)?.isPointerDown,isReturning:e.unref(n)?.isFocusReturning,cursorPos:e.unref(n)?.position},void 0,!0)],46,ae))}}),[["__scopeId","data-v-8de7c4a4"]]),ce={class:"omnipad-button-content-layer"},le={key:0,class:"omnipad-default-button-label"},V=T(e.defineComponent({__name:"VirtualButtonBase",props:{layout:{},isActive:{type:Boolean},label:{}},setup(t){const o=t,f=e.computed(()=>o.layout?R.resolveLayoutStyle(o.layout):{});return(a,r)=>(e.openBlock(),e.createElementBlock("div",{class:"omnipad-button-base omnipad-prevent",style:e.normalizeStyle(f.value),tabindex:"-1"},[e.renderSlot(a.$slots,"base",{isActive:t.isActive,label:t.label},()=>[e.createElementVNode("div",{class:e.normalizeClass(["omnipad-default-button-base",{"is-active":t.isActive}])},null,2)],!0),e.createElementVNode("div",ce,[e.renderSlot(a.$slots,"default",{isActive:t.isActive,label:t.label},()=>[t.label?(e.openBlock(),e.createElementBlock("span",le,e.toDisplayString(t.label),1)):e.createCommentVNode("",!0)],!0)])],4))}}),[["__scopeId","data-v-f6a6e082"]]),U=e.defineComponent({__name:"VirtualButton",props:{treeNode:{},widgetId:{},label:{},targetStageId:{},mapping:{},layout:{}},setup(t,{expose:o}){const f=t,a={label:"BTN"},{uid:r,core:n,state:c,domEvents:s,effectiveConfig:p,effectiveLayout:P,elementRef:h}=B(i.CMP_TYPES.BUTTON,f,{defaultProps:a}),k=d=>s?.onPointerDown?.(d),u=d=>s?.onPointerMove?.(d),y=d=>s?.onPointerUp?.(d),S=d=>s?.onPointerCancel?.(d);return o({uid:r,onPointerDown:k,onPointerMove:u,onPointerUp:y,onPointerCancel:S,markRectDirty:()=>n.value?.markRectDirty}),(d,b)=>(e.openBlock(),e.createBlock(V,{id:e.unref(r),ref_key:"elementRef",ref:h,class:e.normalizeClass(["omnipad-button omnipad-prevent",e.unref(p)?.cssClass]),layout:e.unref(P),label:e.unref(p)?.label,"is-active":e.unref(c)?.isPressed,onPointerdown:k,onPointerup:y,onPointercancel:S,onLostpointercapture:S},{base:e.withCtx(m=>[e.renderSlot(d.$slots,"base",e.normalizeProps(e.guardReactiveProps(m)))]),default:e.withCtx(m=>[e.renderSlot(d.$slots,"default",e.normalizeProps(e.guardReactiveProps(m)))]),_:3},8,["id","class","layout","label","is-active"]))}}),de={class:"omnipad-axis-bg"},fe={class:"omnipad-axis-content-layer"},L=T(e.defineComponent({__name:"VirtualAxisBase",props:{layout:{},isActive:{type:Boolean},vector:{},showStick:{type:Boolean},baseSize:{}},setup(t){const o=t,f=e.computed(()=>o.layout?R.resolveLayoutStyle(o.layout):{}),a=E.supportsContainerQueries(),r=e.computed(()=>{const n=o.vector?.x||0,c=o.vector?.y||0,s=o.baseSize?.x||0,p=o.baseSize?.y||0,P=R.projectVectorToBox({x:n,y:c},{x:s,y:p},a);return{"--omnipad-axis-stick-container-x":P.x,"--omnipad-axis-stick-container-y":P.y,"--omnipad-axis-stick-width":P.width,"--omnipad-axis-stick-height":P.height,transition:o.isActive?"none":"transform 0.1s ease-out"}});return(n,c)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["omnipad-axis-base omnipad-prevent",{"is-active":t.isActive}]),style:e.normalizeStyle(f.value),tabindex:"-1"},[e.createElementVNode("div",de,[e.renderSlot(n.$slots,"base",{isActive:t.isActive,vector:t.vector},void 0,!0)]),t.showStick?(e.openBlock(),e.createElementBlock("div",{key:0,class:"omnipad-axis-stick-container",style:e.normalizeStyle(r.value)},[e.renderSlot(n.$slots,"stick",{isActive:t.isActive,vector:t.vector},()=>[e.createElementVNode("div",{class:e.normalizeClass(["omnipad-default-axis-stick",{"is-active":t.isActive}])},null,2)],!0)],4)):e.createCommentVNode("",!0),e.createElementVNode("div",fe,[e.renderSlot(n.$slots,"default",{isActive:t.isActive,vector:t.vector},void 0,!0)])],6))}}),[["__scopeId","data-v-9eef9626"]]),pe={class:"omnipad-dpad-cross-bg"},Y=T(e.defineComponent({__name:"VirtualDPad",props:{treeNode:{},widgetId:{},targetStageId:{},mapping:{},threshold:{},showStick:{},layout:{}},setup(t,{expose:o}){const f=t,a={showStick:!1,threshold:.3},{uid:r,core:n,state:c,domEvents:s,effectiveConfig:p,effectiveLayout:P,elementRef:h}=B(i.CMP_TYPES.D_PAD,f,{defaultProps:a}),k=E.supportsContainerQueries(),u=e.ref({x:0,y:0}),y=e.watchEffect(()=>{const l=n.value?.rect;l&&(u.value={x:l.width,y:l.height})});k&&y();const S=l=>s?.onPointerDown?.(l),d=l=>s?.onPointerMove?.(l),b=l=>s?.onPointerUp?.(l),m=l=>s?.onPointerCancel?.(l);return o({uid:r,onPointerDown:S,onPointerMove:d,onPointerUp:b,onPointerCancel:m,markRectDirty:()=>n.value?.markRectDirty()}),(l,D)=>(e.openBlock(),e.createBlock(L,{id:e.unref(r),ref_key:"elementRef",ref:h,class:e.normalizeClass(["omnipad-dpad omnipad-prevent",e.unref(p)?.cssClass]),layout:e.unref(P),"is-active":e.unref(c)?.isActive,vector:e.unref(c)?.vector,"show-stick":e.unref(p)?.showStick,"base-size":u.value,onPointerdown:S,onPointermove:d,onPointerup:b,onPointercancel:m,onLostpointercapture:m},{base:e.withCtx(C=>[e.renderSlot(l.$slots,"base",e.normalizeProps(e.guardReactiveProps(C)),()=>[e.createElementVNode("div",pe,[e.createElementVNode("div",{class:e.normalizeClass(["dpad-arm top",{on:C.vector&&C.vector.y<-e.unref(p)?.threshold}])},null,2),e.createElementVNode("div",{class:e.normalizeClass(["dpad-arm bottom",{on:C.vector&&C.vector.y>e.unref(p)?.threshold}])},null,2),e.createElementVNode("div",{class:e.normalizeClass(["dpad-arm left",{on:C.vector&&C.vector.x<-e.unref(p)?.threshold}])},null,2),e.createElementVNode("div",{class:e.normalizeClass(["dpad-arm right",{on:C.vector&&C.vector.x>e.unref(p)?.threshold}])},null,2),D[0]||(D[0]=e.createElementVNode("div",{class:"dpad-center"},null,-1))])],!0)]),stick:e.withCtx(C=>[e.renderSlot(l.$slots,"stick",e.normalizeProps(e.guardReactiveProps(C)),void 0,!0)]),default:e.withCtx(C=>[e.renderSlot(l.$slots,"default",e.normalizeProps(e.guardReactiveProps(C)),void 0,!0)]),_:3},8,["id","class","layout","is-active","vector","show-stick","base-size"]))}}),[["__scopeId","data-v-2690a0c6"]]),K=T(e.defineComponent({__name:"VirtualTrackpad",props:{treeNode:{},widgetId:{},label:{},sensitivity:{},targetStageId:{},mapping:{},layout:{}},setup(t,{expose:o}){const f=t,a={label:"TRACKPAD",sensitivity:1},{uid:r,core:n,state:c,domEvents:s,effectiveConfig:p,effectiveLayout:P,elementRef:h}=B(i.CMP_TYPES.TRACKPAD,f,{defaultProps:a}),k=d=>s?.onPointerDown?.(d),u=d=>s?.onPointerMove?.(d),y=d=>s?.onPointerUp?.(d),S=d=>s?.onPointerCancel?.(d);return o({uid:r,onPointerDown:k,onPointerMove:u,onPointerUp:y,onPointerCancel:S,markRectDirty:()=>n.value?.markRectDirty}),(d,b)=>(e.openBlock(),e.createBlock(V,{id:e.unref(r),ref_key:"elementRef",ref:h,class:e.normalizeClass(["omnipad-trackpad omnipad-prevent",e.unref(p)?.cssClass]),layout:e.unref(P),label:e.unref(p)?.label,"is-active":e.unref(c)?.isPressed,onPointerdown:k,onPointermove:u,onPointerup:y,onPointercancel:S,onLostpointercapture:S},{base:e.withCtx(m=>[e.renderSlot(d.$slots,"base",e.normalizeProps(e.guardReactiveProps(m)),void 0,!0)]),default:e.withCtx(m=>[e.renderSlot(d.$slots,"default",e.normalizeProps(e.guardReactiveProps(m)),void 0,!0)]),_:3},8,["id","class","layout","label","is-active"]))}}),[["__scopeId","data-v-55cc7ea4"]]),Z=T(e.defineComponent({__name:"VirtualJoystick",props:{treeNode:{},widgetId:{},label:{},targetStageId:{},threshold:{},cursorMode:{},cursorSensitivity:{},mapping:{},layout:{}},setup(t,{expose:o}){const f=t,a={label:"PUSH",threshold:.2,cursorMode:!1,cursorSensitivity:1},{uid:r,core:n,state:c,domEvents:s,effectiveConfig:p,effectiveLayout:P,elementRef:h}=B(i.CMP_TYPES.JOYSTICK,f,{defaultProps:a}),k=E.supportsContainerQueries(),u=e.ref({x:0,y:0}),y=e.watchEffect(()=>{const l=n.value?.rect;l&&(u.value={x:l.width,y:l.height})});k&&y();const S=l=>s?.onPointerDown?.(l),d=l=>s?.onPointerMove?.(l),b=l=>s?.onPointerUp?.(l),m=l=>s?.onPointerCancel?.(l);return o({uid:r,onPointerDown:S,onPointerMove:d,onPointerUp:b,onPointerCancel:m,markRectDirty:()=>n.value?.markRectDirty}),(l,D)=>(e.openBlock(),e.createBlock(L,{id:e.unref(r),ref_key:"elementRef",ref:h,class:e.normalizeClass(["omnipad-joystick omnipad-prevent",e.unref(p)?.cssClass]),layout:e.unref(P),"is-active":e.unref(c)?.isActive,vector:e.unref(c)?.vector,"show-stick":"","base-size":u.value,onPointerdown:S,onPointermove:d,onPointerup:b,onPointercancel:m,onLostpointercapture:m},{base:e.withCtx(C=>[e.renderSlot(l.$slots,"base",e.normalizeProps(e.guardReactiveProps(C)),void 0,!0)]),stick:e.withCtx(()=>[e.createVNode(V,{layout:{height:"100%",width:"100%"},"is-active":e.unref(c)?.isPressed,label:e.unref(p)?.label},{base:e.withCtx(C=>[e.renderSlot(l.$slots,"stick-base",e.normalizeProps(e.guardReactiveProps(C)),void 0,!0)]),default:e.withCtx(C=>[e.renderSlot(l.$slots,"stick",e.normalizeProps(e.guardReactiveProps(C)),void 0,!0)]),_:3},8,["is-active","label"])]),default:e.withCtx(C=>[e.renderSlot(l.$slots,"default",e.normalizeProps(e.guardReactiveProps(C)),void 0,!0)]),_:3},8,["id","class","layout","is-active","vector","base-size"]))}}),[["__scopeId","data-v-b0ffdd7b"]]);N(i.CMP_TYPES.BUTTON,U),N(i.CMP_TYPES.INPUT_ZONE,O),N(i.CMP_TYPES.ROOT_LAYER,v),N(i.CMP_TYPES.TARGET_ZONE,x),N(i.CMP_TYPES.TRACKPAD,K),N(i.CMP_TYPES.D_PAD,Y),N(i.CMP_TYPES.JOYSTICK,Z),i.setGlobalSignalHandler(t=>{(t.type===i.ACTION_TYPES.KEYDOWN||t.type===i.ACTION_TYPES.KEYUP)&&E.dispatchKeyboardEvent(t.type,t.payload)}),_.InputZone=O,_.RootLayer=v,_.TargetZone=x,_.VirtualButton=U,_.VirtualDPad=Y,_.VirtualJoystick=Z,_.VirtualTrackpad=K,_.getComponent=A,_.getComponentSafe=I,_.hasRegisteredComponent=F,_.registerComponent=N,Object.defineProperty(_,Symbol.toStringTag,{value:"Module"})}));
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@omnipad/vue",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.1",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "./dist/omnipad-vue.umd.js",
|
|
6
6
|
"module": "./dist/omnipad-vue.mjs",
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"vue": "^3.2.0"
|
|
31
31
|
},
|
|
32
32
|
"dependencies": {
|
|
33
|
-
"@omnipad/core": "0.
|
|
33
|
+
"@omnipad/core": "0.6.1"
|
|
34
34
|
},
|
|
35
35
|
"publishConfig": {
|
|
36
36
|
"access": "public",
|