@omnipad/vue 0.2.0-alpha.2 → 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 -167
- package/dist/omnipad-vue.css +1 -1
- package/dist/omnipad-vue.mjs +538 -274
- package/dist/omnipad-vue.umd.js +1 -1
- package/package.json +2 -2
package/dist/omnipad-vue.umd.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(y,l){typeof exports=="object"&&typeof module<"u"?l(exports,require("@omnipad/core"),require("vue")):typeof define=="function"&&define.amd?define(["exports","@omnipad/core","vue"],l):(y=typeof globalThis<"u"?globalThis:y||self,l(y.OmnipadVue={},y.OmniPadCore,y.Vue))})(this,(function(y,l,e){"use strict";const N={};function C(r,t){N[r]=t}function v(r){const t=N[r];return t||e.defineComponent({render:()=>e.h("div",{style:"color:red"},`[Unknown: ${r}]`)})}function T(r){const t=e.shallowRef(),s=e.ref(),n=e.ref(null),i=a=>{s.value=a};return e.onMounted(()=>{const a=r();t.value=a,l.Registry.getInstance().register(a),"subscribe"in a&&a.subscribe(i);let o=null;n.value&&(n.value instanceof Element?o=n.value:n.value.$el instanceof Element&&(o=n.value.$el)),o&&"bindRectProvider"in a&&a.bindRectProvider(()=>o.getBoundingClientRect())}),e.onUnmounted(()=>{t.value&&t.value.destroy()}),{core:t,state:s,elementRef:n}}const L={class:"omnipad-virtual-layer-base omnipad-prevent"},Y=e.defineComponent({__name:"VirtualLayerBase",props:{nodes:{}},setup(r){return(t,s)=>(e.openBlock(),e.createElementBlock("div",L,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.nodes||[],n=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(v)(n.type)),{key:n.uid,"tree-node":n},null,8,["tree-node"]))),128)),e.renderSlot(t.$slots,"default",{},void 0,!0)]))}}),B=(r,t)=>{const s=r.__vccOpts||r;for(const[n,i]of t)s[n]=i;return s},I=B(Y,[["__scopeId","data-v-6f1860f6"]]);function k(r,t,s={}){const n=t.treeNode,i=n&&n.type===r?n:void 0;n&&n.type!==r&&console.warn(`[OmniPad-Validation] Type mismatch! Component expected "${r}", but received "${n.type}". Config ignored.`);const a=e.inject(l.CONTEXT.PARENT_ID_KEY,e.ref(void 0)),o=e.computed(()=>t.parentId||i?.config?.parentId||a.value),f=e.computed(()=>t.widgetId||i?.uid||l.generateUID(r));e.provide(l.CONTEXT.PARENT_ID_KEY,f);const P=e.computed(()=>{const m=i?.config||{},d=Object.fromEntries(Object.entries(t).filter(([p,c])=>c!==void 0&&p!=="treeNode"&&p!=="widgetId"));return{...s,...m,...d,id:f.value,type:r,parentId:o.value,layout:{...s.layout||{},...m.layout||{},...d.layout||{}}}});return{uid:f,config:P}}const x=["id"],$=B(e.defineComponent({__name:"InputZone",props:{treeNode:{},widgetId:{},layout:{},preventFocusLoss:{}},setup(r){const t=r,s=e.useSlots(),n=e.ref(null),{uid:i,config:a}=k(l.CMP_TYPES.INPUT_ZONE,t),{core:o,state:f,elementRef:P}=T(()=>new l.InputZoneCore(i.value,a.value)),m=e.computed(()=>{const u=t.treeNode?.config?.dynamicWidgetId;return t.treeNode?.children?.filter(b=>b.uid!==u)||[]}),d=e.computed(()=>{const b=(s.dynamicWidget?.()||[]).filter(w=>!(w.type===Comment||w.type===Text)),E=t.treeNode?.children?.find(w=>w.uid===t.treeNode?.config?.dynamicWidgetId),S=b.length>0;return b.length>1&&console.error(`[OmniPad-Validation] InputZone ${i.value} has multiple dynamic widgets in slot. Only the first one will be activated.`),S&&E&&console.warn(`[OmniPad-Validation] InputZone ${i.value} has both Slot and Config dynamic widgets. Config ignored.`),{nodeToRender:S?b[0]:E||null,isFromSlot:S}});e.watch(n,u=>{e.nextTick(()=>{u&&u?.uid&&o.value?.updateConfig({dynamicWidgetId:u.uid})})},{immediate:!0});const p=e.computed(()=>l.resolveLayoutStyle(a.value.layout)),c=e.computed(()=>f.value?.isDynamicActive?{position:"absolute",left:`${f.value.dynamicPosition.x}%`,top:`${f.value.dynamicPosition.y}%`,zIndex:100,pointerEvents:"auto"}:{display:"none"}),g=u=>{o.value&&(o.value.onPointerDown(u),f.value?.isDynamicActive&&n.value&&typeof n.value.onPointerDown=="function"&&n.value.onPointerDown(u))},_=u=>{o.value&&(o.value.onPointerMove(u),f.value?.isDynamicActive&&n.value&&typeof n.value.onPointerMove=="function"&&n.value.onPointerMove(u))},U=u=>{f.value?.isDynamicActive&&n.value&&typeof n.value.onPointerUp=="function"&&n.value.onPointerUp(u),o.value&&o.value.onPointerUp(u)},A=u=>{f.value?.isDynamicActive&&n.value&&typeof n.value.onPointerCancel=="function"&&n.value.onPointerCancel(u),o.value&&o.value.onPointerCancel(u)};return(u,b)=>(e.openBlock(),e.createElementBlock("div",{id:e.unref(i),ref_key:"elementRef",ref:P,class:"omnipad-input-zone omnipad-prevent",style:e.normalizeStyle(p.value)},[e.createVNode(I,{nodes:m.value},{default:e.withCtx(()=>[e.renderSlot(u.$slots,"default",{},void 0,!0)]),_:3},8,["nodes"]),d.value.nodeToRender||e.unref(o)?.isInterceptorRequired?(e.openBlock(),e.createElementBlock("div",{key:0,class:"omnipad-input-zone-trigger",onPointerdown:g,onPointermove:_,onPointerup:U,onPointercancel:A,onLostpointercapture:A},[e.createElementVNode("div",{class:"dynamic-widget-mount",style:e.normalizeStyle(c.value)},[d.value.isFromSlot?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(d.value.nodeToRender),{key:0,ref:E=>n.value=E},null,512)):d.value.nodeToRender?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(v)(d.value.nodeToRender.type)),{key:1,ref:E=>n.value=E,"tree-node":d.value.nodeToRender},null,8,["tree-node"])):e.createCommentVNode("",!0)],4)],32)):e.createCommentVNode("",!0)],12,x))}}),[["__scopeId","data-v-e0c28ebd"]]),Z=["id"],h=B(e.defineComponent({__name:"RootLayer",props:{treeNode:{},widgetId:{}},setup(r){const t=r,{uid:s,config:n}=k(l.CMP_TYPES.ROOT_LAYER,t),{elementRef:i}=T(()=>new l.RootLayerCore(s.value,n.value));return(a,o)=>(e.openBlock(),e.createElementBlock("div",{id:e.unref(s),ref_key:"elementRef",ref:i,class:"omnipad-virtual-layer"},[e.createVNode(I,{nodes:r.treeNode?.children||[]},{default:e.withCtx(()=>[e.renderSlot(a.$slots,"default",{},void 0,!0)]),_:3},8,["nodes"])],8,Z))}}),[["__scopeId","data-v-9e46ef9c"]]),z=["id"],K={key:0,class:"omnipad-default-focus-border-feedback"},D=B(e.defineComponent({__name:"TargetZone",props:{treeNode:{},widgetId:{},cursorEnabled:{type:Boolean},cursorAutoDelay:{},layout:{}},setup(r){const t=r,s={cursorAutoDelay:2500},{uid:n,config:i}=k(l.CMP_TYPES.TARGET_ZONE,t,s),{core:a,state:o,elementRef:f}=T(()=>new l.TargetZoneCore(n.value,i.value)),P=e.computed(()=>l.resolveLayoutStyle(i.value.layout)),m=e.computed(()=>o.value?{left:`${o.value.position.x}%`,top:`${o.value.position.y}%`,opacity:o.value.isVisible?1:0}:{display:"none"}),d=_=>a.value?.onPointerDown(_),p=_=>a.value?.onPointerMove(_),c=_=>a.value?.onPointerUp(_),g=_=>a.value?.onPointerCancel(_);return(_,U)=>(e.openBlock(),e.createElementBlock("div",{id:e.unref(n),ref_key:"elementRef",ref:f,class:"omnipad-target-zone",style:e.normalizeStyle(P.value),onPointerdown:d,onPointermove:p,onPointerup:c,onPointercancel:g,onLostpointercapture:g},[e.renderSlot(_.$slots,"focus-feedback",{state:e.unref(o),isReturning:e.unref(o)?.isFocusReturning,cursorPos:e.unref(o)?.position},()=>[e.createVNode(e.Transition,{name:"omnipad-default-focus-fade"},{default:e.withCtx(()=>[e.unref(o)?.isFocusReturning?(e.openBlock(),e.createElementBlock("div",K)):e.createCommentVNode("",!0)]),_:1})],!0),e.unref(i).cursorEnabled?(e.openBlock(),e.createElementBlock("div",{key:0,class:"omnipad-virtual-cursor",style:e.normalizeStyle(m.value)},[e.renderSlot(_.$slots,"cursor",{state:e.unref(o),isDown:e.unref(o)?.isPointerDown,cursorPos:e.unref(o)?.position},()=>[e.createElementVNode("div",{class:e.normalizeClass(["omnipad-default-cursor-dot",{"is-down":e.unref(o)?.isPointerDown}])},null,2)],!0)],4)):e.createCommentVNode("",!0)],44,z))}}),[["__scopeId","data-v-70b706ac"]]),j={key:0,class:"omnipad-button-label"},R=B(e.defineComponent({__name:"VirtualButtonBase",props:{layout:{},isActive:{type:Boolean},label:{}},setup(r){const t=r,s=e.computed(()=>t.layout?l.resolveLayoutStyle(t.layout):{});return(n,i)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["omnipad-button-base",{"is-active":r.isActive}]),style:e.normalizeStyle(s.value),tabindex:"-1"},[e.renderSlot(n.$slots,"default",{},()=>[r.label?(e.openBlock(),e.createElementBlock("span",j,e.toDisplayString(r.label),1)):e.createCommentVNode("",!0)],!0)],6))}}),[["__scopeId","data-v-3db6d4f9"]]),M=e.defineComponent({__name:"VirtualKeyboardButton",props:{treeNode:{},widgetId:{},label:{},targetStageId:{},mapping:{},layout:{}},setup(r,{expose:t}){const s=r,n={label:"BTN"},{uid:i,config:a}=k(l.CMP_TYPES.KEYBOARD_BUTTON,s,n),{core:o,state:f,elementRef:P}=T(()=>new l.KeyboardButtonCore(i.value,a.value)),m=c=>o.value?.onPointerDown(c),d=c=>o.value?.onPointerUp(c),p=c=>o.value?.onPointerCancel(c);return t({uid:i,onPointerDown:m,onPointerUp:d,onPointerCancel:p}),(c,g)=>(e.openBlock(),e.createBlock(R,{id:e.unref(i),ref_key:"elementRef",ref:P,layout:e.unref(a).layout,label:e.unref(a).label,"is-active":e.unref(f)?.isPressed,onPointerdown:m,onPointerup:d,onPointercancel:p,onLostpointercapture:p},null,8,["id","layout","label","is-active"]))}}),O=e.defineComponent({__name:"VirtualMouseButton",props:{treeNode:{},widgetId:{},label:{},targetStageId:{},button:{},fixedPoint:{},layout:{}},setup(r,{expose:t}){const s=r,n={label:"LMB",button:0},{uid:i,config:a}=k(l.CMP_TYPES.MOUSE_BUTTON,s,n),{core:o,state:f,elementRef:P}=T(()=>new l.MouseButtonCore(i.value,a.value)),m=c=>o.value?.onPointerDown(c),d=c=>o.value?.onPointerUp(c),p=c=>o.value?.onPointerCancel(c);return t({uid:i,onPointerDown:m,onPointerUp:d,onPointerCancel:p}),(c,g)=>(e.openBlock(),e.createBlock(R,{id:e.unref(i),ref_key:"elementRef",ref:P,layout:e.unref(a).layout,label:e.unref(a).label,"is-active":e.unref(f)?.isPressed,onPointerdown:m,onPointerup:d,onPointercancel:p,onLostpointercapture:p},null,8,["id","layout","label","is-active"]))}}),V=B(e.defineComponent({__name:"VirtualTrackpad",props:{treeNode:{},widgetId:{},label:{},sensitivity:{},targetStageId:{},layout:{}},setup(r,{expose:t}){const s=r,{uid:n,config:i}=k(l.CMP_TYPES.TRACKPAD,s,{label:"TRACKPAD",sensitivity:1}),{core:a,state:o,elementRef:f}=T(()=>new l.TrackpadCore(n.value,i.value)),P=c=>a.value?.onPointerDown(c),m=c=>a.value?.onPointerMove(c),d=c=>a.value?.onPointerUp(c),p=c=>a.value?.onPointerCancel(c);return t({uid:n,onPointerDown:P,onPointerMove:m,onPointerUp:d,onPointerCancel:p}),(c,g)=>(e.openBlock(),e.createBlock(R,{id:e.unref(n),ref_key:"elementRef",ref:f,class:"omnipad-trackpad",layout:e.unref(i).layout,label:e.unref(i).label,"is-active":e.unref(o)?.isPressed,onPointerdown:P,onPointermove:m,onPointerup:d,onPointercancel:p,onLostpointercapture:p},null,8,["id","layout","label","is-active"]))}}),[["__scopeId","data-v-c28e3a2e"]]);C(l.CMP_TYPES.INPUT_ZONE,$),C(l.CMP_TYPES.ROOT_LAYER,h),C(l.CMP_TYPES.TARGET_ZONE,D),C(l.CMP_TYPES.KEYBOARD_BUTTON,M),C(l.CMP_TYPES.MOUSE_BUTTON,O),C(l.CMP_TYPES.TRACKPAD,V),y.InputZone=$,y.RootLayer=h,y.TargetZone=D,y.VirtualKeyboardButton=M,y.VirtualMouseButton=O,y.VirtualTrackpad=V,y.registerComponent=C,Object.defineProperty(y,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",
|