@omnipad/vue 0.2.0-alpha.3 → 0.3.0
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 +725 -173
- package/dist/omnipad-vue.css +1 -1
- package/dist/omnipad-vue.mjs +541 -290
- package/dist/omnipad-vue.umd.js +1 -1
- package/package.json +2 -2
package/dist/omnipad-vue.umd.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(P,a){typeof exports=="object"&&typeof module<"u"?a(exports,require("@omnipad/core"),require("vue")):typeof define=="function"&&define.amd?define(["exports","@omnipad/core","vue"],a):(P=typeof globalThis<"u"?globalThis:P||self,a(P.OmnipadVue={},P.OmniPadCore,P.Vue))})(this,(function(P,a,e){"use strict";const h={};function C(i,o){h[i]=o}function I(i){const o=h[i];return o||e.defineComponent({render:()=>e.h("div",{style:"color:red"},`[Unknown: ${i}]`)})}function T(i){const o=e.shallowRef(),s=e.ref(),n=e.ref(null),l=r=>{s.value=r};return e.onMounted(()=>{const r=i();o.value=r,a.Registry.getInstance().register(r),"subscribe"in r&&r.subscribe(l);let t=null;n.value&&(n.value instanceof Element?t=n.value:n.value.$el instanceof Element&&(t=n.value.$el)),t&&"bindRectProvider"in r&&r.bindRectProvider(()=>t.getBoundingClientRect())}),e.onUnmounted(()=>{o.value&&o.value.destroy()}),{core:o,state:s,elementRef:n}}const L={class:"omnipad-virtual-layer-base omnipad-prevent"},Y=e.defineComponent({__name:"VirtualLayerBase",props:{nodes:{}},setup(i){return(o,s)=>(e.openBlock(),e.createElementBlock("div",L,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.nodes||[],n=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(I)(n.type)),{key:n.uid,"tree-node":n},null,8,["tree-node"]))),128)),e.renderSlot(o.$slots,"default",{},void 0,!0)]))}}),B=(i,o)=>{const s=i.__vccOpts||i;for(const[n,l]of o)s[n]=l;return s},$=B(Y,[["__scopeId","data-v-6f1860f6"]]);function k(i,o,s={}){const n=o.treeNode,l=n&&n.type===i?n:void 0;n&&n.type!==i&&console.warn(`[OmniPad-Validation] Type mismatch! Component expected "${i}", but received "${n.type}". Config ignored.`);const r=e.inject(a.CONTEXT.PARENT_ID_KEY,e.ref(void 0)),t=e.computed(()=>o.parentId||l?.config?.parentId||r.value),f=e.computed(()=>o.widgetId||l?.uid||a.generateUID(i));e.provide(a.CONTEXT.PARENT_ID_KEY,f);const _=e.computed(()=>{const p=l?.config||{},u=Object.fromEntries(Object.entries(o).filter(([m,c])=>c!==void 0&&m!=="treeNode"&&m!=="widgetId"));return{...s,...p,...u,id:f.value,type:i,parentId:t.value,layout:{...s.layout||{},...p.layout||{},...u.layout||{}}}});return{uid:f,config:_}}const Z=["id"],D=B(e.defineComponent({__name:"InputZone",props:{treeNode:{},widgetId:{},layout:{},preventFocusLoss:{}},setup(i){const o=i,s=e.useSlots(),n=e.ref(null),{uid:l,config:r}=k(a.CMP_TYPES.INPUT_ZONE,o),{core:t,state:f,elementRef:_}=T(()=>new a.InputZoneCore(l.value,r.value)),p=e.computed(()=>{const d=o.treeNode?.config?.dynamicWidgetId;return o.treeNode?.children?.filter(g=>g.uid!==d)||[]}),u=e.computed(()=>{const g=(s.dynamicWidget?.()||[]).filter(R=>!(R.type===Comment||R.type===Text)),v=o.treeNode?.children?.find(R=>R.uid===o.treeNode?.config?.dynamicWidgetId),N=g.length>0;return g.length>1&&console.error(`[OmniPad-Validation] InputZone ${l.value} has multiple dynamic widgets in slot. Only the first one will be activated.`),N&&v&&console.warn(`[OmniPad-Validation] InputZone ${l.value} has both Slot and Config dynamic widgets. Config ignored.`),{nodeToRender:N?g[0]:v||null,isFromSlot:N}});e.watch(n,d=>{e.nextTick(()=>{d&&d?.uid&&t.value?.updateConfig({dynamicWidgetId:d.uid})})},{immediate:!0});const m=e.computed(()=>a.resolveLayoutStyle(r.value.layout)),c=e.computed(()=>{const d=t?.value?.getRect(),g=f?.value?.dynamicPosition;return{x:a.remap(g?.x||0,0,100,0,d?.width||0),y:a.remap(g?.y||0,0,100,0,d?.height||0)}}),b=e.computed(()=>f.value?f.value?.isDynamicActive?{zIndex:100,"--dynamic-widget-mount-x":`${c.value.x}px`,"--dynamic-widget-mount-y":`${c.value.y}px`,visibility:"visible",opacity:1,pointerEvents:"auto"}:{visibility:"hidden",opacity:0}:{display:"none"}),E=d=>{t.value&&(t.value.onPointerDown(d),f.value?.isDynamicActive&&n.value&&typeof n.value.onPointerDown=="function"&&n.value.onPointerDown(d))},y=d=>{t.value&&(t.value.onPointerMove(d),f.value?.isDynamicActive&&n.value&&typeof n.value.onPointerMove=="function"&&n.value.onPointerMove(d))},w=d=>{f.value?.isDynamicActive&&n.value&&typeof n.value.onPointerUp=="function"&&n.value.onPointerUp(d),t.value&&t.value.onPointerUp(d)},A=d=>{f.value?.isDynamicActive&&n.value&&typeof n.value.onPointerCancel=="function"&&n.value.onPointerCancel(d),t.value&&t.value.onPointerCancel(d)};return(d,g)=>(e.openBlock(),e.createElementBlock("div",{id:e.unref(l),ref_key:"elementRef",ref:_,class:"omnipad-input-zone omnipad-prevent",style:e.normalizeStyle(m.value)},[e.createVNode($,{nodes:p.value},{default:e.withCtx(()=>[e.renderSlot(d.$slots,"default",{},void 0,!0)]),_:3},8,["nodes"]),u.value.nodeToRender||e.unref(t)?.isInterceptorRequired?(e.openBlock(),e.createElementBlock("div",{key:0,class:"omnipad-input-zone-trigger",onPointerdown:E,onPointermove:y,onPointerup:w,onPointercancel:A,onLostpointercapture:A},[e.createElementVNode("div",{class:"dynamic-widget-mount",style:e.normalizeStyle(b.value)},[u.value.isFromSlot?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(u.value.nodeToRender),{key:0,ref:v=>n.value=v},null,512)):u.value.nodeToRender?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(I)(u.value.nodeToRender.type)),{key:1,ref:v=>n.value=v,"tree-node":u.value.nodeToRender},null,8,["tree-node"])):e.createCommentVNode("",!0)],4)],32)):e.createCommentVNode("",!0)],12,Z))}}),[["__scopeId","data-v-f734ffc6"]]),z=["id"],M=B(e.defineComponent({__name:"RootLayer",props:{treeNode:{},widgetId:{}},setup(i){const o=i,{uid:s,config:n}=k(a.CMP_TYPES.ROOT_LAYER,o),{elementRef:l}=T(()=>new a.RootLayerCore(s.value,n.value));return(r,t)=>(e.openBlock(),e.createElementBlock("div",{id:e.unref(s),ref_key:"elementRef",ref:l,class:"omnipad-virtual-layer"},[e.createVNode($,{nodes:i.treeNode?.children||[]},{default:e.withCtx(()=>[e.renderSlot(r.$slots,"default",{},void 0,!0)]),_:3},8,["nodes"])],8,z))}}),[["__scopeId","data-v-9e46ef9c"]]),K=["id"],j={key:0,class:"omnipad-default-focus-border-feedback"},O=B(e.defineComponent({__name:"TargetZone",props:{treeNode:{},widgetId:{},cursorEnabled:{type:Boolean},cursorAutoDelay:{},layout:{}},setup(i){const o=i,s={cursorAutoDelay:2500},{uid:n,config:l}=k(a.CMP_TYPES.TARGET_ZONE,o,s),{core:r,state:t,elementRef:f}=T(()=>new a.TargetZoneCore(n.value,l.value)),_=e.computed(()=>a.resolveLayoutStyle(l.value.layout)),p=e.computed(()=>{const y=r?.value?.getRect(),w=t?.value?.position;return{x:a.remap(w?.x||0,0,100,0,y?.width||0),y:a.remap(w?.y||0,0,100,0,y?.height||0)}}),u=e.computed(()=>t.value?{"--omnipad-virtual-cursor-x":`${p.value.x}px`,"--omnipad-virtual-cursor-y":`${p.value.y}px`,opacity:t.value.isVisible?1:0}:{display:"none"}),m=y=>r.value?.onPointerDown(y),c=y=>r.value?.onPointerMove(y),b=y=>r.value?.onPointerUp(y),E=y=>r.value?.onPointerCancel(y);return(y,w)=>(e.openBlock(),e.createElementBlock("div",{id:e.unref(n),ref_key:"elementRef",ref:f,class:"omnipad-target-zone",style:e.normalizeStyle(_.value),onPointerdown:m,onPointermove:c,onPointerup:b,onPointercancel:E,onLostpointercapture:E},[e.renderSlot(y.$slots,"focus-feedback",{state:e.unref(t),isReturning:e.unref(t)?.isFocusReturning,cursorPos:p.value},()=>[e.createVNode(e.Transition,{name:"omnipad-default-focus-fade"},{default:e.withCtx(()=>[e.unref(t)?.isFocusReturning?(e.openBlock(),e.createElementBlock("div",j)):e.createCommentVNode("",!0)]),_:1})],!0),e.unref(l).cursorEnabled?(e.openBlock(),e.createElementBlock("div",{key:0,class:"omnipad-virtual-cursor",style:e.normalizeStyle(u.value)},[e.renderSlot(y.$slots,"cursor",{state:e.unref(t),isDown:e.unref(t)?.isPointerDown,cursorPos:p.value},()=>[e.createElementVNode("div",{class:e.normalizeClass(["omnipad-default-cursor-dot",{"is-down":e.unref(t)?.isPointerDown}])},null,2)],!0)],4)):e.createCommentVNode("",!0)],44,K))}}),[["__scopeId","data-v-3067b26e"]]),F={key:0,class:"omnipad-button-label"},S=B(e.defineComponent({__name:"VirtualButtonBase",props:{layout:{},isActive:{type:Boolean},label:{}},setup(i){const o=i,s=e.computed(()=>o.layout?a.resolveLayoutStyle(o.layout):{});return(n,l)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["omnipad-button-base",{"is-active":i.isActive}]),style:e.normalizeStyle(s.value),tabindex:"-1"},[e.renderSlot(n.$slots,"default",{},()=>[i.label?(e.openBlock(),e.createElementBlock("span",F,e.toDisplayString(i.label),1)):e.createCommentVNode("",!0)],!0)],6))}}),[["__scopeId","data-v-3db6d4f9"]]),V=e.defineComponent({__name:"VirtualKeyboardButton",props:{treeNode:{},widgetId:{},label:{},targetStageId:{},mapping:{},layout:{}},setup(i,{expose:o}){const s=i,n={label:"BTN"},{uid:l,config:r}=k(a.CMP_TYPES.KEYBOARD_BUTTON,s,n),{core:t,state:f,elementRef:_}=T(()=>new a.KeyboardButtonCore(l.value,r.value)),p=c=>t.value?.onPointerDown(c),u=c=>t.value?.onPointerUp(c),m=c=>t.value?.onPointerCancel(c);return o({uid:l,onPointerDown:p,onPointerUp:u,onPointerCancel:m}),(c,b)=>(e.openBlock(),e.createBlock(S,{id:e.unref(l),ref_key:"elementRef",ref:_,layout:e.unref(r).layout,label:e.unref(r).label,"is-active":e.unref(f)?.isPressed,onPointerdown:p,onPointerup:u,onPointercancel:m,onLostpointercapture:m},null,8,["id","layout","label","is-active"]))}}),x=e.defineComponent({__name:"VirtualMouseButton",props:{treeNode:{},widgetId:{},label:{},targetStageId:{},button:{},fixedPoint:{},layout:{}},setup(i,{expose:o}){const s=i,n={label:"LMB",button:0},{uid:l,config:r}=k(a.CMP_TYPES.MOUSE_BUTTON,s,n),{core:t,state:f,elementRef:_}=T(()=>new a.MouseButtonCore(l.value,r.value)),p=c=>t.value?.onPointerDown(c),u=c=>t.value?.onPointerUp(c),m=c=>t.value?.onPointerCancel(c);return o({uid:l,onPointerDown:p,onPointerUp:u,onPointerCancel:m}),(c,b)=>(e.openBlock(),e.createBlock(S,{id:e.unref(l),ref_key:"elementRef",ref:_,layout:e.unref(r).layout,label:e.unref(r).label,"is-active":e.unref(f)?.isPressed,onPointerdown:p,onPointerup:u,onPointercancel:m,onLostpointercapture:m},null,8,["id","layout","label","is-active"]))}}),U=B(e.defineComponent({__name:"VirtualTrackpad",props:{treeNode:{},widgetId:{},label:{},sensitivity:{},targetStageId:{},layout:{}},setup(i,{expose:o}){const s=i,{uid:n,config:l}=k(a.CMP_TYPES.TRACKPAD,s,{label:"TRACKPAD",sensitivity:1}),{core:r,state:t,elementRef:f}=T(()=>new a.TrackpadCore(n.value,l.value)),_=c=>r.value?.onPointerDown(c),p=c=>r.value?.onPointerMove(c),u=c=>r.value?.onPointerUp(c),m=c=>r.value?.onPointerCancel(c);return o({uid:n,onPointerDown:_,onPointerMove:p,onPointerUp:u,onPointerCancel:m}),(c,b)=>(e.openBlock(),e.createBlock(S,{id:e.unref(n),ref_key:"elementRef",ref:f,class:"omnipad-trackpad",layout:e.unref(l).layout,label:e.unref(l).label,"is-active":e.unref(t)?.isPressed,onPointerdown:_,onPointermove:p,onPointerup:u,onPointercancel:m,onLostpointercapture:m},null,8,["id","layout","label","is-active"]))}}),[["__scopeId","data-v-c28e3a2e"]]);C(a.CMP_TYPES.INPUT_ZONE,D),C(a.CMP_TYPES.ROOT_LAYER,M),C(a.CMP_TYPES.TARGET_ZONE,O),C(a.CMP_TYPES.KEYBOARD_BUTTON,V),C(a.CMP_TYPES.MOUSE_BUTTON,x),C(a.CMP_TYPES.TRACKPAD,U),P.InputZone=D,P.RootLayer=M,P.TargetZone=O,P.VirtualKeyboardButton=V,P.VirtualMouseButton=x,P.VirtualTrackpad=U,P.registerComponent=C,Object.defineProperty(P,Symbol.toStringTag,{value:"Module"})}));
|
|
1
|
+
(function(b,m){typeof exports=="object"&&typeof module<"u"?m(exports,require("@omnipad/core"),require("vue"),require("@omnipad/core/utils")):typeof define=="function"&&define.amd?define(["exports","@omnipad/core","vue","@omnipad/core/utils"],m):(b=typeof globalThis<"u"?globalThis:b||self,m(b.OmnipadVue={},b.OmniPadCore,b.Vue,b.OmniPadCoreUtils))})(this,(function(b,m,e,_){"use strict";const D={};function B(t,i){D[t]=i}function x(t){const i=D[t];return i||e.defineComponent({render:()=>e.h("div",{style:"color:red"},`[Unknown: ${t}]`)})}function A(t){return!t||!D[t]?null:D[t]}function K(t){return t?!!D[t]:!1}function N(t,i={},p){const o=t(),n=e.shallowRef(),a=e.ref(),r=e.ref(null),l=e.ref({}),g=y=>{a.value=y},d=y=>{if(!n.value)return;const u=n.value;typeof u.bindDelegate=="function"&&Object.entries(y).forEach(([c,h])=>{u.bindDelegate(c,h)})};return e.onMounted(()=>{n.value=o,m.Registry.getInstance().register(o),"subscribe"in o&&o.subscribe(g),p&&d(p);let y=null;if(r.value&&(r.value instanceof Element?y=r.value:r.value.$el instanceof Element&&(y=r.value.$el)),y&&"bindRectProvider"in o&&o.bindRectProvider(()=>y.getBoundingClientRect()),"onPointerDown"in o){const u=_.createPointerBridge(o,i);l.value={...u}}}),e.onUnmounted(()=>{n.value&&n.value.destroy()}),{core:n,state:a,elementRef:r,domEvents:l,bindDelegates:d}}const j={class:"omnipad-virtual-layer-base omnipad-prevent"},J=e.defineComponent({__name:"VirtualLayerBase",props:{nodes:{}},setup(t){const i=t,p=e.computed(()=>(i.nodes||[]).map(o=>{let n=A(o.type);return!n&&o.config?.baseType&&(n=A(o.config.baseType)),n||(n=x(o.type)),{node:o,component:n}}));return(o,n)=>(e.openBlock(),e.createElementBlock("div",j,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(p.value,a=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a.component),{key:a.node.uid,"tree-node":a.node},null,8,["tree-node"]))),128)),e.renderSlot(o.$slots,"default",{},void 0,!0)]))}}),R=(t,i)=>{const p=t.__vccOpts||t;for(const[o,n]of i)p[o]=n;return p},z=R(J,[["__scopeId","data-v-d67cc501"]]);function T(t,i,p={}){const o=i.treeNode,n=o&&o.config?.baseType===t||o?.type===t?o:void 0;o&&!n&&console.warn(`[OmniPad-Validation] Type mismatch! Component expected "${t}", but received "${o.type}". Config ignored.`);const a=e.inject(m.CONTEXT.PARENT_ID_KEY,e.ref(void 0)),r=e.computed(()=>i.parentId||n?.config?.parentId||a.value),l=e.computed(()=>i.widgetId||n?.uid||_.generateUID(t));e.provide(m.CONTEXT.PARENT_ID_KEY,l);const g=e.computed(()=>{const d=n?.config||{},y=Object.fromEntries(Object.entries(i).filter(([u,c])=>c!==void 0&&u!=="treeNode"&&u!=="widgetId"));return{...p,...d,...y,id:l.value,baseType:t,parentId:r.value,layout:{...p.layout||{},...d.layout||{},...y.layout||{}}}});return{uid:l,config:g}}const W=["id"],M=R(e.defineComponent({__name:"InputZone",props:{treeNode:{},widgetId:{},layout:{},preventFocusLoss:{}},setup(t){const i=t,p=e.useSlots(),o=e.ref(null),{uid:n,config:a}=T(m.CMP_TYPES.INPUT_ZONE,i),{core:r,state:l,elementRef:g,domEvents:d,bindDelegates:y}=N(()=>new m.InputZoneCore(n.value,a.value),{requireDirectHit:!0}),u=e.computed(()=>{const f=i.treeNode?.config?.dynamicWidgetId;return i.treeNode?.children?.filter($=>$.uid!==f)||[]}),c=e.computed(()=>{const $=(p.dynamicWidget?.()||[]).filter(V=>!(V.type===Comment||V.type===Text)),S=i.treeNode?.children?.find(V=>V.uid===i.treeNode?.config?.dynamicWidgetId),v=$.length>0;return $.length>1&&console.error(`[OmniPad-Validation] InputZone ${n.value} has multiple dynamic widgets in slot. Only the first one will be activated.`),v&&S&&console.warn(`[OmniPad-Validation] InputZone ${n.value} has both Slot and Config dynamic widgets. Config ignored.`),{nodeToRender:v?$[0]:S||null,isFromSlot:v}}),h=e.computed(()=>{const f=c.value.nodeToRender;return x(f.config?.baseType||f.type)});e.watch(o,f=>{e.nextTick(()=>{f&&f?.uid&&(r.value?.updateConfig({dynamicWidgetId:f.uid}),y({dynamicWidgetPointerDown:f.onPointerDown,dynamicWidgetPointerMove:f.onPointerMove,dynamicWidgetPointerUp:f.onPointerUp,dynamicWidgetPointerCancel:f.onPointerCancel}))})},{immediate:!0});const k=e.computed(()=>_.resolveLayoutStyle(a.value.layout)),w=_.supportsContainerQueries(),P=e.computed(()=>{if(!l.value)return{display:"none"};if(!l.value?.isDynamicActive)return{visibility:"hidden",opacity:0};let f,$;const S=l?.value?.dynamicPosition;if(w)f=`${S.x}cqw`,$=`${S.y}cqh`;else{const v=r?.value?.rect;f=`${_.remap(S?.x||0,0,100,0,v?.width||0)}px`,$=`${_.remap(S?.y||0,0,100,0,v?.height||0)}px`}return{zIndex:100,"--dynamic-widget-mount-x":f,"--dynamic-widget-mount-y":$,visibility:"visible",opacity:1,pointerEvents:"auto"}}),s=f=>d.value?.onPointerDown(f),E=f=>d.value?.onPointerMove(f),C=f=>d.value?.onPointerUp(f),q=f=>d.value?.onPointerCancel(f);return(f,$)=>(e.openBlock(),e.createElementBlock("div",{id:e.unref(n),ref_key:"elementRef",ref:g,class:"omnipad-input-zone omnipad-prevent",style:e.normalizeStyle(k.value)},[e.createVNode(z,{nodes:u.value},{default:e.withCtx(()=>[e.renderSlot(f.$slots,"default",{},void 0,!0)]),_:3},8,["nodes"]),c.value.nodeToRender||e.unref(r)?.isInterceptorRequired?(e.openBlock(),e.createElementBlock("div",{key:0,class:"omnipad-input-zone-trigger omnipad-prevent",onPointerdown:s,onPointermove:E,onPointerup:C,onPointercancel:q,onLostpointercapture:q},[e.createElementVNode("div",{class:"dynamic-widget-mount",style:e.normalizeStyle(P.value)},[c.value.isFromSlot?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(c.value.nodeToRender),{key:0,ref:S=>o.value=S},null,512)):c.value.nodeToRender?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(h.value),{key:1,ref:S=>o.value=S,"tree-node":c.value.nodeToRender},null,8,["tree-node"])):e.createCommentVNode("",!0)],4)],32)):e.createCommentVNode("",!0)],12,W))}}),[["__scopeId","data-v-020d0ab6"]]),X=["id"],U=R(e.defineComponent({__name:"RootLayer",props:{treeNode:{},widgetId:{},layout:{}},setup(t){const i=t,{uid:p,config:o}=T(m.CMP_TYPES.ROOT_LAYER,i),{elementRef:n}=N(()=>new m.RootLayerCore(p.value,o.value)),a=e.computed(()=>_.resolveLayoutStyle(o.value.layout));return(r,l)=>(e.openBlock(),e.createElementBlock("div",{id:e.unref(p),ref_key:"elementRef",ref:n,class:"omnipad-root-layer omnipad-prevent",style:e.normalizeStyle(a.value)},[e.createVNode(z,{nodes:t.treeNode?.children||[]},{default:e.withCtx(()=>[e.renderSlot(r.$slots,"default",{},void 0,!0)]),_:3},8,["nodes"])],12,X))}}),[["__scopeId","data-v-c836f838"]]),G=["id"],H={key:0,class:"omnipad-default-focus-border-feedback"},O=R(e.defineComponent({__name:"TargetZone",props:{treeNode:{},widgetId:{},cursorEnabled:{type:Boolean},cursorAutoDelay:{},layout:{}},setup(t){const i=t,p={cursorAutoDelay:2500},{uid:o,config:n}=T(m.CMP_TYPES.TARGET_ZONE,i,p),{core:a,state:r,elementRef:l,domEvents:g}=N(()=>new m.TargetZoneCore(o.value,n.value),{},{dispatchKeyboardEvent:_.dispatchKeyboardEvent,dispatchPointerEventAtPos:_.dispatchPointerEventAtPos,reclaimFocusAtPos:_.reclaimFocusAtPos}),d=e.computed(()=>_.resolveLayoutStyle(n.value.layout)),y=_.supportsContainerQueries(),u=e.computed(()=>{if(!r.value)return{display:"none"};let P,s;const E=r?.value?.position;if(y)P=`${E.x}cqw`,s=`${E.y}cqh`;else{const C=a?.value?.rect;P=`${_.remap(E?.x||0,0,100,0,C?.width||0)}px`,s=`${_.remap(E?.y||0,0,100,0,C?.height||0)}px`}return{"--omnipad-virtual-cursor-x":P,"--omnipad-virtual-cursor-y":s,opacity:r.value.isVisible?1:0}}),c=P=>g.value?.onPointerDown(P),h=P=>g.value?.onPointerMove(P),k=P=>g.value?.onPointerUp(P),w=P=>g.value?.onPointerCancel(P);return(P,s)=>(e.openBlock(),e.createElementBlock("div",{id:e.unref(o),ref_key:"elementRef",ref:l,class:"omnipad-target-zone omnipad-prevent",style:e.normalizeStyle(d.value),onPointerdown:c,onPointermove:h,onPointerup:k,onPointercancel:w,onLostpointercapture:w},[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",H)):e.createCommentVNode("",!0)]),_:1})],!0),e.unref(n).cursorEnabled?(e.openBlock(),e.createElementBlock("div",{key:0,class:"omnipad-virtual-cursor",style:e.normalizeStyle(u.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(n).cursorEnabled?(e.openBlock(),e.createElementBlock("div",{key:1,class:"omnipad-virtual-cursor",style:e.normalizeStyle(u.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)],44,G))}}),[["__scopeId","data-v-f072b1fb"]]),ee={class:"omnipad-button-content-layer"},te={key:0,class:"omnipad-default-button-label"},I=R(e.defineComponent({__name:"VirtualButtonBase",props:{layout:{},isActive:{type:Boolean},label:{}},setup(t){const i=t,p=e.computed(()=>i.layout?_.resolveLayoutStyle(i.layout):{});return(o,n)=>(e.openBlock(),e.createElementBlock("div",{class:"omnipad-button-base omnipad-prevent",style:e.normalizeStyle(p.value),tabindex:"-1"},[e.renderSlot(o.$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",ee,[e.renderSlot(o.$slots,"default",{isActive:t.isActive,label:t.label},()=>[t.label?(e.openBlock(),e.createElementBlock("span",te,e.toDisplayString(t.label),1)):e.createCommentVNode("",!0)],!0)])],4))}}),[["__scopeId","data-v-f6a6e082"]]),Y=e.defineComponent({__name:"VirtualButton",props:{treeNode:{},widgetId:{},label:{},targetStageId:{},mapping:{},layout:{}},setup(t,{expose:i}){const p=t,o={label:"BTN"},{uid:n,config:a}=T(m.CMP_TYPES.BUTTON,p,o),{state:r,elementRef:l,domEvents:g}=N(()=>new m.ButtonCore(n.value,a.value)),d=h=>g.value?.onPointerDown(h),y=h=>g.value?.onPointerMove(h),u=h=>g.value?.onPointerUp(h),c=h=>g.value?.onPointerCancel(h);return i({uid:n,onPointerDown:d,onPointerMove:y,onPointerUp:u,onPointerCancel:c}),(h,k)=>(e.openBlock(),e.createBlock(I,{id:e.unref(n),ref_key:"elementRef",ref:l,class:"omnipad-button omnipad-prevent",layout:e.unref(a).layout,label:e.unref(a).label,"is-active":e.unref(r)?.isPressed,onPointerdown:d,onPointerup:u,onPointercancel:c,onLostpointercapture:c},{base:e.withCtx(w=>[e.renderSlot(h.$slots,"base",e.normalizeProps(e.guardReactiveProps(w)))]),default:e.withCtx(w=>[e.renderSlot(h.$slots,"default",e.normalizeProps(e.guardReactiveProps(w)))]),_:3},8,["id","layout","label","is-active"]))}}),oe={class:"omnipad-axis-bg"},ne={class:"omnipad-axis-content-layer"},L=R(e.defineComponent({__name:"VirtualAxisBase",props:{layout:{},isActive:{type:Boolean},vector:{},showStick:{type:Boolean},baseRadius:{}},setup(t){const i=t,p=e.computed(()=>i.layout?_.resolveLayoutStyle(i.layout):{}),o=_.supportsContainerQueries(),n=e.computed(()=>{const a=i.vector?.x||0,r=i.vector?.y||0,l=i.baseRadius?.x||0,g=i.baseRadius?.y||0,d=o?`${a*50}cqw`:`${a*l}px`,y=o?`${r*50}cqh`:`${r*g}px`,u=o?"100cqw":`${l*2}px`,c=o?"100cqh":`${g*2}px`;return{"--omnipad-axis-stick-container-x":d,"--omnipad-axis-stick-container-y":y,"--omnipad-axis-stick-width":u,"--omnipad-axis-stick-height":c,transition:i.isActive?"none":"transform 0.1s ease-out"}});return(a,r)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["omnipad-axis-base omnipad-prevent",{"is-active":t.isActive}]),style:e.normalizeStyle(p.value),tabindex:"-1"},[e.createElementVNode("div",oe,[e.renderSlot(a.$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(a.$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",ne,[e.renderSlot(a.$slots,"default",{isActive:t.isActive,vector:t.vector},void 0,!0)])],6))}}),[["__scopeId","data-v-95bb429e"]]),re={class:"omnipad-dpad-cross-bg"},Z=R(e.defineComponent({__name:"VirtualDPad",props:{treeNode:{},widgetId:{},targetStageId:{},mapping:{},threshold:{},showStick:{},layout:{}},setup(t,{expose:i}){const p=t,o={showStick:!1,threshold:.3},{uid:n,config:a}=T(m.CMP_TYPES.D_PAD,p,o),{core:r,state:l,elementRef:g,domEvents:d}=N(()=>new m.DPadCore(n.value,a.value)),y=_.supportsContainerQueries(),u=e.ref({x:0,y:0}),c=e.watchEffect(()=>{const s=r.value?.rect;s&&(u.value={x:s.width/2,y:s.height/2})});y&&c();const h=s=>d.value?.onPointerDown(s),k=s=>d.value?.onPointerMove(s),w=s=>d.value?.onPointerUp(s),P=s=>d.value?.onPointerCancel(s);return i({uid:n,onPointerDown:h,onPointerMove:k,onPointerUp:w,onPointerCancel:P}),(s,E)=>(e.openBlock(),e.createBlock(L,{ref_key:"elementRef",ref:g,class:"omnipad-dpad omnipad-prevent",layout:e.unref(a).layout,"is-active":e.unref(l)?.isActive,vector:e.unref(l)?.vector,"show-stick":e.unref(a).showStick,"base-radius":u.value,onPointerdown:h,onPointermove:k,onPointerup:w,onPointercancel:P,onLostpointercapture:P},{base:e.withCtx(C=>[e.renderSlot(s.$slots,"base",e.normalizeProps(e.guardReactiveProps(C)),()=>[e.createElementVNode("div",re,[e.createElementVNode("div",{class:e.normalizeClass(["dpad-arm top",{on:C.vector&&C.vector.y<-e.unref(a).threshold}])},null,2),e.createElementVNode("div",{class:e.normalizeClass(["dpad-arm bottom",{on:C.vector&&C.vector.y>e.unref(a).threshold}])},null,2),e.createElementVNode("div",{class:e.normalizeClass(["dpad-arm left",{on:C.vector&&C.vector.x<-e.unref(a).threshold}])},null,2),e.createElementVNode("div",{class:e.normalizeClass(["dpad-arm right",{on:C.vector&&C.vector.x>e.unref(a).threshold}])},null,2),E[0]||(E[0]=e.createElementVNode("div",{class:"dpad-center"},null,-1))])],!0)]),stick:e.withCtx(C=>[e.renderSlot(s.$slots,"stick",e.normalizeProps(e.guardReactiveProps(C)),void 0,!0)]),default:e.withCtx(C=>[e.renderSlot(s.$slots,"default",e.normalizeProps(e.guardReactiveProps(C)),void 0,!0)]),_:3},8,["layout","is-active","vector","show-stick","base-radius"]))}}),[["__scopeId","data-v-d141d62c"]]),F=R(e.defineComponent({__name:"VirtualTrackpad",props:{treeNode:{},widgetId:{},label:{},sensitivity:{},targetStageId:{},mapping:{},layout:{}},setup(t,{expose:i}){const p=t,{uid:o,config:n}=T(m.CMP_TYPES.TRACKPAD,p,{label:"TRACKPAD",sensitivity:1}),{state:a,elementRef:r,domEvents:l}=N(()=>new m.TrackpadCore(o.value,n.value)),g=c=>l.value?.onPointerDown(c),d=c=>l.value?.onPointerMove(c),y=c=>l.value?.onPointerUp(c),u=c=>l.value?.onPointerCancel(c);return i({uid:o,onPointerDown:g,onPointerMove:d,onPointerUp:y,onPointerCancel:u}),(c,h)=>(e.openBlock(),e.createBlock(I,{id:e.unref(o),ref_key:"elementRef",ref:r,class:"omnipad-trackpad omnipad-prevent",layout:e.unref(n).layout,label:e.unref(n).label,"is-active":e.unref(a)?.isPressed,onPointerdown:g,onPointermove:d,onPointerup:y,onPointercancel:u,onLostpointercapture:u},{base:e.withCtx(k=>[e.renderSlot(c.$slots,"base",e.normalizeProps(e.guardReactiveProps(k)),void 0,!0)]),default:e.withCtx(k=>[e.renderSlot(c.$slots,"default",e.normalizeProps(e.guardReactiveProps(k)),void 0,!0)]),_:3},8,["id","layout","label","is-active"]))}}),[["__scopeId","data-v-d23c7e6d"]]),Q=R(e.defineComponent({__name:"VirtualJoystick",props:{treeNode:{},widgetId:{},label:{},targetStageId:{},threshold:{},cursorMode:{},cursorSensitivity:{},mapping:{},layout:{}},setup(t,{expose:i}){const p=t,o={label:"PUSH",threshold:.2,cursorMode:!1,cursorSensitivity:1},{uid:n,config:a}=T(m.CMP_TYPES.JOYSTICK,p,o),{core:r,state:l,elementRef:g,domEvents:d}=N(()=>new m.JoystickCore(n.value,a.value)),y=_.supportsContainerQueries(),u=e.ref({x:0,y:0}),c=e.watchEffect(()=>{const s=r.value?.rect;s&&(u.value={x:s.width/2,y:s.height/2})});y&&c();const h=s=>d.value?.onPointerDown(s),k=s=>d.value?.onPointerMove(s),w=s=>d.value?.onPointerUp(s),P=s=>d.value?.onPointerCancel(s);return i({uid:n,onPointerDown:h,onPointerMove:k,onPointerUp:w,onPointerCancel:P}),(s,E)=>(e.openBlock(),e.createBlock(L,{ref_key:"elementRef",ref:g,class:"omnipad-joystick omnipad-prevent",layout:e.unref(a).layout,"is-active":e.unref(l)?.isActive,vector:e.unref(l)?.vector,"show-stick":"","base-radius":u.value,onPointerdown:h,onPointermove:k,onPointerup:w,onPointercancel:P,onLostpointercapture:P},{base:e.withCtx(C=>[e.renderSlot(s.$slots,"base",e.normalizeProps(e.guardReactiveProps(C)),void 0,!0)]),stick:e.withCtx(()=>[e.createVNode(I,{layout:{height:"100%",width:"100%"},"is-active":e.unref(l)?.isPressed,label:e.unref(a).label},{base:e.withCtx(C=>[e.renderSlot(s.$slots,"stick-base",e.normalizeProps(e.guardReactiveProps(C)),void 0,!0)]),default:e.withCtx(C=>[e.renderSlot(s.$slots,"stick",e.normalizeProps(e.guardReactiveProps(C)),void 0,!0)]),_:3},8,["is-active","label"])]),default:e.withCtx(C=>[e.renderSlot(s.$slots,"default",e.normalizeProps(e.guardReactiveProps(C)),void 0,!0)]),_:3},8,["layout","is-active","vector","base-radius"]))}}),[["__scopeId","data-v-fb7cd5c1"]]);B(m.CMP_TYPES.BUTTON,Y),B(m.CMP_TYPES.INPUT_ZONE,M),B(m.CMP_TYPES.ROOT_LAYER,U),B(m.CMP_TYPES.TARGET_ZONE,O),B(m.CMP_TYPES.TRACKPAD,F),B(m.CMP_TYPES.D_PAD,Z),B(m.CMP_TYPES.JOYSTICK,Q),b.InputZone=M,b.RootLayer=U,b.TargetZone=O,b.VirtualButton=Y,b.VirtualDPad=Z,b.VirtualJoystick=Q,b.VirtualTrackpad=F,b.getComponent=x,b.getComponentSafe=A,b.hasRegisteredComponent=K,b.registerComponent=B,Object.defineProperty(b,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.3.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "./dist/omnipad-vue.umd.js",
|
|
6
6
|
"module": "./dist/omnipad-vue.mjs",
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"vue": "^3.5.27"
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@omnipad/core": "0.
|
|
30
|
+
"@omnipad/core": "0.3.0"
|
|
31
31
|
},
|
|
32
32
|
"publishConfig": {
|
|
33
33
|
"access": "public",
|