@maas/vue-equipment 1.0.0-beta.34 → 1.0.0-beta.36
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/composables/useScrollTo/index.js +6 -2
- package/dist/composables/useScrollTo/index.js.map +1 -1
- package/dist/nuxt/module.d.mts +2 -2
- package/dist/nuxt/module.json +1 -1
- package/dist/nuxt/module.mjs +8 -1
- package/dist/plugins/.turbo/turbo-lint.log +1 -1
- package/dist/plugins/MagicAccordion/src/components/MagicAccordionContent.vue +15 -6
- package/dist/plugins/MagicAccordion/src/components/MagicAccordionContent.vue.d.ts +1 -1
- package/dist/plugins/MagicAccordion/src/components/MagicAccordionProvider.vue.d.ts +1 -1
- package/dist/plugins/MagicAccordion/src/components/MagicAccordionTrigger.vue +17 -12
- package/dist/plugins/MagicAccordion/src/components/MagicAccordionTrigger.vue.d.ts +1 -1
- package/dist/plugins/MagicAccordion/src/components/MagicAccordionView.vue +11 -5
- package/dist/plugins/MagicAccordion/src/components/MagicAccordionView.vue.d.ts +1 -1
- package/dist/plugins/MagicAccordion/src/composables/private/useAccordionTrigger.d.ts +2 -2
- package/dist/plugins/MagicAccordion/src/composables/private/useAccordionTrigger.mjs +5 -5
- package/dist/plugins/MagicCommand/src/components/MagicCommandContent.vue +28 -10
- package/dist/plugins/MagicCommand/src/components/MagicCommandContent.vue.d.ts +1 -1
- package/dist/plugins/MagicCommand/src/components/MagicCommandDrawer.vue +11 -5
- package/dist/plugins/MagicCommand/src/components/MagicCommandDrawer.vue.d.ts +1 -1
- package/dist/plugins/MagicCommand/src/components/MagicCommandItem.vue +19 -9
- package/dist/plugins/MagicCommand/src/components/MagicCommandItem.vue.d.ts +1 -1
- package/dist/plugins/MagicCommand/src/components/MagicCommandModal.vue.d.ts +1 -1
- package/dist/plugins/MagicCommand/src/components/MagicCommandProvider.vue +17 -2
- package/dist/plugins/MagicCommand/src/components/MagicCommandProvider.vue.d.ts +1 -1
- package/dist/plugins/MagicCommand/src/components/MagicCommandRenderer.vue +11 -5
- package/dist/plugins/MagicCommand/src/components/MagicCommandRenderer.vue.d.ts +1 -1
- package/dist/plugins/MagicCommand/src/components/MagicCommandTrigger.vue +22 -11
- package/dist/plugins/MagicCommand/src/components/MagicCommandTrigger.vue.d.ts +1 -1
- package/dist/plugins/MagicCommand/src/components/MagicCommandView.vue +11 -3
- package/dist/plugins/MagicCommand/src/components/MagicCommandView.vue.d.ts +1 -1
- package/dist/plugins/MagicCommand/src/composables/private/useCommandItem.mjs +3 -1
- package/dist/plugins/MagicCommand/src/composables/private/useCommandView.d.ts +1 -1
- package/dist/plugins/MagicCommand/src/composables/private/useCommandView.mjs +63 -44
- package/dist/plugins/MagicCommand/src/composables/useMagicCommand.mjs +21 -4
- package/dist/plugins/MagicCookie/src/components/MagicCookieItem.vue +12 -3
- package/dist/plugins/MagicCookie/src/components/MagicCookieItem.vue.d.ts +1 -1
- package/dist/plugins/MagicCookie/src/components/MagicCookieProvider.vue.d.ts +1 -1
- package/dist/plugins/MagicCookie/src/components/MagicCookieView.vue +11 -5
- package/dist/plugins/MagicCookie/src/components/MagicCookieView.vue.d.ts +1 -1
- package/dist/plugins/MagicCookie/src/composables/private/useCookieItem.mjs +9 -2
- package/dist/plugins/MagicDraggable/src/components/MagicDraggable.vue +11 -2
- package/dist/plugins/MagicDraggable/src/components/MagicDraggable.vue.d.ts +1 -1
- package/dist/plugins/MagicDraggable/src/composables/private/useDraggableDrag.mjs +8 -3
- package/dist/plugins/MagicDraggable/src/composables/private/useDraggableScrollLock.mjs +3 -1
- package/dist/plugins/MagicDraggable/src/composables/private/useDraggableSnap.mjs +7 -2
- package/dist/plugins/MagicDrawer/src/components/MagicDrawer.vue +7 -2
- package/dist/plugins/MagicDrawer/src/components/MagicDrawer.vue.d.ts +1 -1
- package/dist/plugins/MagicDrawer/src/composables/private/useDrawerDOM.mjs +3 -1
- package/dist/plugins/MagicDrawer/src/composables/private/useDrawerDrag.mjs +6 -1
- package/dist/plugins/MagicDrawer/src/composables/private/useDrawerSnap.mjs +55 -21
- package/dist/plugins/MagicDrawer/src/composables/private/useDrawerState.mjs +3 -1
- package/dist/plugins/MagicDrawer/src/composables/private/useDrawerUtils.mjs +21 -8
- package/dist/plugins/MagicDrawer/src/composables/private/useDrawerWheel.mjs +6 -1
- package/dist/plugins/MagicError/index.d.ts +5 -0
- package/dist/plugins/MagicError/index.mjs +3 -0
- package/dist/plugins/MagicError/nuxt.d.ts +2 -0
- package/dist/plugins/MagicError/nuxt.mjs +12 -0
- package/dist/plugins/MagicError/package.json +40 -0
- package/dist/plugins/MagicError/src/MagicError.d.ts +0 -0
- package/dist/plugins/MagicError/src/MagicError.mjs +0 -0
- package/dist/plugins/MagicError/src/class/MagicError.d.ts +6 -0
- package/dist/plugins/MagicError/src/class/MagicError.mjs +15 -0
- package/dist/plugins/MagicError/src/composables/useMagicError.d.ts +18 -0
- package/dist/plugins/MagicError/src/composables/useMagicError.mjs +31 -0
- package/dist/plugins/MagicMarquee/src/components/MagicMarquee.vue.d.ts +1 -1
- package/dist/plugins/MagicMenu/src/components/MagicMenuChannel.vue +22 -10
- package/dist/plugins/MagicMenu/src/components/MagicMenuChannel.vue.d.ts +1 -1
- package/dist/plugins/MagicMenu/src/components/MagicMenuContent.vue +15 -6
- package/dist/plugins/MagicMenu/src/components/MagicMenuContent.vue.d.ts +1 -1
- package/dist/plugins/MagicMenu/src/components/MagicMenuFloat.vue +1 -1
- package/dist/plugins/MagicMenu/src/components/MagicMenuFloat.vue.d.ts +4 -3
- package/dist/plugins/MagicMenu/src/components/MagicMenuItem.vue +19 -9
- package/dist/plugins/MagicMenu/src/components/MagicMenuItem.vue.d.ts +1 -1
- package/dist/plugins/MagicMenu/src/components/MagicMenuProvider.vue.d.ts +1 -1
- package/dist/plugins/MagicMenu/src/components/MagicMenuRemote.vue +19 -13
- package/dist/plugins/MagicMenu/src/components/MagicMenuRemote.vue.d.ts +1 -1
- package/dist/plugins/MagicMenu/src/components/MagicMenuTrigger.vue +15 -10
- package/dist/plugins/MagicMenu/src/components/MagicMenuTrigger.vue.d.ts +1 -1
- package/dist/plugins/MagicMenu/src/components/MagicMenuView.vue +12 -4
- package/dist/plugins/MagicMenu/src/components/MagicMenuView.vue.d.ts +3 -3
- package/dist/plugins/MagicMenu/src/composables/private/useMenuDOM.mjs +3 -1
- package/dist/plugins/MagicMenu/src/composables/private/useMenuItem.mjs +12 -2
- package/dist/plugins/MagicMenu/src/composables/private/useMenuKeyListener.mjs +22 -10
- package/dist/plugins/MagicMenu/src/composables/private/useMenuView.mjs +13 -4
- package/dist/plugins/MagicMenu/src/types/index.d.ts +2 -2
- package/dist/plugins/MagicModal/src/components/MagicModal.vue.d.ts +1 -1
- package/dist/plugins/MagicModal/src/composables/private/useModalDOM.mjs +3 -1
- package/dist/plugins/MagicNoise/src/components/MagicNoise.vue.d.ts +1 -1
- package/dist/plugins/MagicNoise/src/composables/private/useNoiseApi.mjs +7 -3
- package/dist/plugins/MagicPie/src/components/MagicPie.vue +15 -2
- package/dist/plugins/MagicPie/src/components/MagicPie.vue.d.ts +1 -1
- package/dist/plugins/MagicPie/src/composables/private/usePieState.mjs +3 -1
- package/dist/plugins/MagicPlayer/src/components/MagicPlayerAudio.vue +17 -7
- package/dist/plugins/MagicPlayer/src/components/MagicPlayerAudio.vue.d.ts +1 -1
- package/dist/plugins/MagicPlayer/src/components/MagicPlayerAudioControls.vue +11 -5
- package/dist/plugins/MagicPlayer/src/components/MagicPlayerAudioControls.vue.d.ts +1 -1
- package/dist/plugins/MagicPlayer/src/components/MagicPlayerDisplayTime.vue +11 -5
- package/dist/plugins/MagicPlayer/src/components/MagicPlayerDisplayTime.vue.d.ts +1 -1
- package/dist/plugins/MagicPlayer/src/components/MagicPlayerMuxPopover.vue +29 -14
- package/dist/plugins/MagicPlayer/src/components/MagicPlayerMuxPopover.vue.d.ts +1 -1
- package/dist/plugins/MagicPlayer/src/components/MagicPlayerOverlay.vue +11 -5
- package/dist/plugins/MagicPlayer/src/components/MagicPlayerOverlay.vue.d.ts +1 -1
- package/dist/plugins/MagicPlayer/src/components/MagicPlayerPoster.vue +11 -5
- package/dist/plugins/MagicPlayer/src/components/MagicPlayerPoster.vue.d.ts +1 -1
- package/dist/plugins/MagicPlayer/src/components/MagicPlayerProvider.vue.d.ts +1 -1
- package/dist/plugins/MagicPlayer/src/components/MagicPlayerTimeline.vue +11 -5
- package/dist/plugins/MagicPlayer/src/components/MagicPlayerTimeline.vue.d.ts +1 -1
- package/dist/plugins/MagicPlayer/src/components/MagicPlayerVideo.vue +17 -7
- package/dist/plugins/MagicPlayer/src/components/MagicPlayerVideo.vue.d.ts +1 -1
- package/dist/plugins/MagicPlayer/src/components/MagicPlayerVideoControls.vue +11 -5
- package/dist/plugins/MagicPlayer/src/components/MagicPlayerVideoControls.vue.d.ts +1 -1
- package/dist/plugins/MagicPlayer/src/components/icons/FullscreenEnter.vue.d.ts +1 -1
- package/dist/plugins/MagicPlayer/src/components/icons/FullscreenExit.vue.d.ts +1 -1
- package/dist/plugins/MagicPlayer/src/components/icons/Pause.vue.d.ts +1 -1
- package/dist/plugins/MagicPlayer/src/components/icons/Play.vue.d.ts +1 -1
- package/dist/plugins/MagicPlayer/src/components/icons/VolumeOff.vue.d.ts +1 -1
- package/dist/plugins/MagicPlayer/src/components/icons/VolumeOn.vue.d.ts +1 -1
- package/dist/plugins/MagicPlayer/src/components/icons/Waiting.vue.d.ts +1 -1
- package/dist/plugins/MagicPlayer/src/composables/private/usePlayerMediaApi.mjs +65 -11
- package/dist/plugins/MagicPlayer/src/composables/private/usePlayerRuntime.d.ts +1 -0
- package/dist/plugins/MagicPlayer/src/composables/private/usePlayerRuntime.mjs +96 -16
- package/dist/plugins/MagicPlayer/src/composables/private/usePlayerState.mjs +3 -1
- package/dist/plugins/MagicPlayer/src/composables/private/usePlayerVideoApi.mjs +7 -2
- package/dist/plugins/MagicPlayer/src/types/index.d.ts +2 -0
- package/dist/plugins/MagicPlayer/src/utils/defaultOptions.mjs +1 -0
- package/dist/plugins/MagicScroll/src/components/MagicScrollCollision.vue +12 -6
- package/dist/plugins/MagicScroll/src/components/MagicScrollCollision.vue.d.ts +1 -1
- package/dist/plugins/MagicScroll/src/components/MagicScrollMotion.vue.d.ts +1 -1
- package/dist/plugins/MagicScroll/src/components/MagicScrollProvider.vue.d.ts +1 -1
- package/dist/plugins/MagicScroll/src/components/MagicScrollScene.vue +11 -3
- package/dist/plugins/MagicScroll/src/components/MagicScrollScene.vue.d.ts +1 -1
- package/dist/plugins/MagicToast/src/components/MagicToastProvider.vue.d.ts +1 -1
- package/dist/plugins/MagicToast/src/components/MagicToastView.vue +11 -3
- package/dist/plugins/MagicToast/src/components/MagicToastView.vue.d.ts +1 -1
- package/dist/plugins/MagicToast/src/composables/private/useToastCallback.d.ts +2 -2
- package/dist/plugins/MagicToast/src/composables/private/useToastCallback.mjs +7 -5
- package/dist/plugins/MagicToast/src/composables/private/useToastScrollLock.mjs +3 -1
- package/dist/utils/index.js +3 -1
- package/dist/utils/index.js.map +1 -1
- package/package.json +16 -21
|
@@ -111,9 +111,13 @@ function useScrollTo() {
|
|
|
111
111
|
easing = easeOutQuad
|
|
112
112
|
}) {
|
|
113
113
|
const parentEl = unwrapParent(parent);
|
|
114
|
-
if (!parentEl)
|
|
114
|
+
if (!parentEl) {
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
115
117
|
const targetEl = unwrapTarget(target, parentEl);
|
|
116
|
-
if (!targetEl)
|
|
118
|
+
if (!targetEl) {
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
117
121
|
disableScrollSnap(parentEl);
|
|
118
122
|
const mappedOffset = { x: 0, y: 0, ...offset };
|
|
119
123
|
const distance = getDistance(targetEl, parentEl);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../packages/composables/useScrollTo/index.ts"],"sourcesContent":["import {\n unrefElement,\n type MaybeComputedElementRef,\n type MaybeElement,\n} from '@vueuse/core'\nimport { easeOutQuad } from '@maas/vue-equipment/utils'\n\nexport type ScrollToTarget =\n | string\n | Element\n | MaybeElement\n | MaybeComputedElementRef\n\nexport type ScrollToParent = ScrollToTarget | Window\n\nexport type ScrollToParams = {\n parent?: Element | Window\n left: number\n top: number\n duration?: { x?: number; y?: number }\n easing?: (t: number) => number\n callback?: () => void\n}\n\nexport type getScrollDurationParams = {\n parent: Element | Window\n left: number\n top: number\n speed: number\n}\n\nexport type scrollToTargetParams = {\n target: ScrollToTarget\n parent?: ScrollToParent\n offset?: {\n x?: number\n y?: number\n }\n speed?: number\n easing?: (t: number) => number\n}\n\n// Private functions\nfunction min(a: number, b: number) {\n return a < b ? a : b\n}\n\nfunction unwrapParent(parent: ScrollToParent) {\n if (parent === window) {\n return parent\n } else if (typeof parent === 'string') {\n return document.querySelector(parent) || document.documentElement\n } else {\n return (\n unrefElement(parent as MaybeComputedElementRef<MaybeElement>) ||\n document.documentElement\n )\n }\n}\n\nfunction unwrapTarget(target: ScrollToTarget, parentEl: Element | Window) {\n if (typeof target === 'string') {\n const queryTarget = parentEl === window ? document : (parentEl as Element)\n return queryTarget.querySelector(target)\n } else {\n return unrefElement(target as MaybeComputedElementRef<MaybeElement>)\n }\n}\n\nfunction isHtmlElement(\n parentEl: Window | SVGElement | Element\n): parentEl is HTMLElement {\n return parentEl instanceof HTMLElement\n}\n\nfunction disableScrollSnap(parentEl: Window | SVGElement | Element) {\n if (isHtmlElement(parentEl)) {\n parentEl.style.scrollSnapType = 'none'\n }\n}\n\nfunction reenableScrollSnap(parentEl: Window | SVGElement | Element) {\n if (isHtmlElement(parentEl)) {\n parentEl.style.scrollSnapType = ''\n }\n}\n\n// Public composable\nexport function useScrollTo() {\n function getScrollPosition(element: Element | Window): {\n x: number\n y: number\n } {\n if (element === window) {\n return { x: window.scrollX, y: window.scrollY }\n } else if (element instanceof Element) {\n return { x: element.scrollLeft, y: element.scrollTop }\n } else {\n return { x: 0, y: 0 }\n }\n }\n\n function getDistance(\n target: Element,\n parent?: Element | Window\n ): { top: number; left: number } {\n const rect = target.getBoundingClientRect()\n const scrollEl =\n parent || document.scrollingElement || document.documentElement\n\n const scrollTop = scrollEl instanceof Window ? 0 : scrollEl.scrollTop\n const scrollLeft = scrollEl instanceof Window ? 0 : scrollEl.scrollLeft\n\n return {\n top: rect.top + scrollTop,\n left: rect.left + scrollLeft,\n }\n }\n\n function getScrollDuration({\n parent = document.documentElement || document.body,\n left = 0,\n top = 0,\n speed = 500,\n }: getScrollDurationParams) {\n const currentPos = getScrollPosition(parent)\n const distanceX = currentPos.x - left\n const distanceY = currentPos.y - top\n const durationX = Math.abs((distanceX / speed) * 100)\n const durationY = Math.abs((distanceY / speed) * 100)\n\n return { x: durationX, y: durationY }\n }\n\n function scrollTo({\n parent = document.documentElement || document.body,\n top,\n left,\n duration = {},\n easing = easeOutQuad,\n callback,\n }: ScrollToParams) {\n const startTime = Date.now()\n const { x: fromX, y: fromY } = getScrollPosition(parent)\n\n if (fromX === top && fromY === left) {\n if (callback) callback()\n return\n }\n\n const mappedDuration = { x: 500, y: 500, ...duration }\n\n const scroll = () => {\n const currentTime = Date.now()\n\n const timeX = min(1, (currentTime - startTime) / mappedDuration.x)\n const timeY = min(1, (currentTime - startTime) / mappedDuration.y)\n const easedTimeX = easing(timeX)\n const easedTimeY = easing(timeY)\n\n // We use the min of the two times to make sure we scroll at the same speed\n const minTime = Math.min(easedTimeX, easedTimeY)\n\n parent.scroll({\n left: minTime * (left - fromX) + fromX,\n top: minTime * (top - fromY) + fromY,\n })\n\n if (easedTimeX < 1 || easedTimeY < 1) {\n requestAnimationFrame(scroll)\n } else if (callback) {\n callback()\n }\n }\n\n requestAnimationFrame(scroll)\n }\n\n function scrollToTarget({\n target,\n parent = document.documentElement || document.body,\n offset = {},\n speed = 500,\n easing = easeOutQuad,\n }: scrollToTargetParams) {\n const parentEl = unwrapParent(parent)\n if (!parentEl) return\n const targetEl = unwrapTarget(target, parentEl)\n if (!targetEl) return\n\n disableScrollSnap(parentEl)\n\n const mappedOffset = { x: 0, y: 0, ...offset }\n const distance = getDistance(targetEl, parentEl)\n const leftDistance = distance.left - mappedOffset.x\n const topDistance = distance.top - mappedOffset.y\n\n const scrollDuration = getScrollDuration({\n parent: parentEl,\n left: leftDistance,\n top: topDistance,\n speed: speed,\n })\n\n scrollTo({\n parent: parentEl,\n left: leftDistance,\n top: topDistance,\n duration: scrollDuration,\n easing: easing,\n callback: () => reenableScrollSnap(parentEl),\n })\n }\n\n return {\n getScrollPosition,\n getDistance,\n getScrollDuration,\n scrollTo,\n scrollToTarget,\n }\n}\n"],"mappings":";AAAA;AAAA,EACE;AAAA,OAGK;AACP,SAAS,mBAAmB;AAsC5B,SAAS,IAAI,GAAW,GAAW;AACjC,SAAO,IAAI,IAAI,IAAI;AACrB;AAEA,SAAS,aAAa,QAAwB;AAC5C,MAAI,WAAW,QAAQ;AACrB,WAAO;AAAA,EACT,WAAW,OAAO,WAAW,UAAU;AACrC,WAAO,SAAS,cAAc,MAAM,KAAK,SAAS;AAAA,EACpD,OAAO;AACL,WACE,aAAa,MAA+C,KAC5D,SAAS;AAAA,EAEb;AACF;AAEA,SAAS,aAAa,QAAwB,UAA4B;AACxE,MAAI,OAAO,WAAW,UAAU;AAC9B,UAAM,cAAc,aAAa,SAAS,WAAY;AACtD,WAAO,YAAY,cAAc,MAAM;AAAA,EACzC,OAAO;AACL,WAAO,aAAa,MAA+C;AAAA,EACrE;AACF;AAEA,SAAS,cACP,UACyB;AACzB,SAAO,oBAAoB;AAC7B;AAEA,SAAS,kBAAkB,UAAyC;AAClE,MAAI,cAAc,QAAQ,GAAG;AAC3B,aAAS,MAAM,iBAAiB;AAAA,EAClC;AACF;AAEA,SAAS,mBAAmB,UAAyC;AACnE,MAAI,cAAc,QAAQ,GAAG;AAC3B,aAAS,MAAM,iBAAiB;AAAA,EAClC;AACF;AAGO,SAAS,cAAc;AAC5B,WAAS,kBAAkB,SAGzB;AACA,QAAI,YAAY,QAAQ;AACtB,aAAO,EAAE,GAAG,OAAO,SAAS,GAAG,OAAO,QAAQ;AAAA,IAChD,WAAW,mBAAmB,SAAS;AACrC,aAAO,EAAE,GAAG,QAAQ,YAAY,GAAG,QAAQ,UAAU;AAAA,IACvD,OAAO;AACL,aAAO,EAAE,GAAG,GAAG,GAAG,EAAE;AAAA,IACtB;AAAA,EACF;AAEA,WAAS,YACP,QACA,QAC+B;AAC/B,UAAM,OAAO,OAAO,sBAAsB;AAC1C,UAAM,WACJ,UAAU,SAAS,oBAAoB,SAAS;AAElD,UAAM,YAAY,oBAAoB,SAAS,IAAI,SAAS;AAC5D,UAAM,aAAa,oBAAoB,SAAS,IAAI,SAAS;AAE7D,WAAO;AAAA,MACL,KAAK,KAAK,MAAM;AAAA,MAChB,MAAM,KAAK,OAAO;AAAA,IACpB;AAAA,EACF;AAEA,WAAS,kBAAkB;AAAA,IACzB,SAAS,SAAS,mBAAmB,SAAS;AAAA,IAC9C,OAAO;AAAA,IACP,MAAM;AAAA,IACN,QAAQ;AAAA,EACV,GAA4B;AAC1B,UAAM,aAAa,kBAAkB,MAAM;AAC3C,UAAM,YAAY,WAAW,IAAI;AACjC,UAAM,YAAY,WAAW,IAAI;AACjC,UAAM,YAAY,KAAK,IAAK,YAAY,QAAS,GAAG;AACpD,UAAM,YAAY,KAAK,IAAK,YAAY,QAAS,GAAG;AAEpD,WAAO,EAAE,GAAG,WAAW,GAAG,UAAU;AAAA,EACtC;AAEA,WAAS,SAAS;AAAA,IAChB,SAAS,SAAS,mBAAmB,SAAS;AAAA,IAC9C;AAAA,IACA;AAAA,IACA,WAAW,CAAC;AAAA,IACZ,SAAS;AAAA,IACT;AAAA,EACF,GAAmB;AACjB,UAAM,YAAY,KAAK,IAAI;AAC3B,UAAM,EAAE,GAAG,OAAO,GAAG,MAAM,IAAI,kBAAkB,MAAM;AAEvD,QAAI,UAAU,OAAO,UAAU,MAAM;AACnC,UAAI,SAAU,UAAS;AACvB;AAAA,IACF;AAEA,UAAM,iBAAiB,EAAE,GAAG,KAAK,GAAG,KAAK,GAAG,SAAS;AAErD,UAAM,SAAS,MAAM;AACnB,YAAM,cAAc,KAAK,IAAI;AAE7B,YAAM,QAAQ,IAAI,IAAI,cAAc,aAAa,eAAe,CAAC;AACjE,YAAM,QAAQ,IAAI,IAAI,cAAc,aAAa,eAAe,CAAC;AACjE,YAAM,aAAa,OAAO,KAAK;AAC/B,YAAM,aAAa,OAAO,KAAK;AAG/B,YAAM,UAAU,KAAK,IAAI,YAAY,UAAU;AAE/C,aAAO,OAAO;AAAA,QACZ,MAAM,WAAW,OAAO,SAAS;AAAA,QACjC,KAAK,WAAW,MAAM,SAAS;AAAA,MACjC,CAAC;AAED,UAAI,aAAa,KAAK,aAAa,GAAG;AACpC,8BAAsB,MAAM;AAAA,MAC9B,WAAW,UAAU;AACnB,iBAAS;AAAA,MACX;AAAA,IACF;AAEA,0BAAsB,MAAM;AAAA,EAC9B;AAEA,WAAS,eAAe;AAAA,IACtB;AAAA,IACA,SAAS,SAAS,mBAAmB,SAAS;AAAA,IAC9C,SAAS,CAAC;AAAA,IACV,QAAQ;AAAA,IACR,SAAS;AAAA,EACX,GAAyB;AACvB,UAAM,WAAW,aAAa,MAAM;AACpC,QAAI,CAAC,
|
|
1
|
+
{"version":3,"sources":["../../../packages/composables/useScrollTo/index.ts"],"sourcesContent":["import {\n unrefElement,\n type MaybeComputedElementRef,\n type MaybeElement,\n} from '@vueuse/core'\nimport { easeOutQuad } from '@maas/vue-equipment/utils'\n\nexport type ScrollToTarget =\n | string\n | Element\n | MaybeElement\n | MaybeComputedElementRef\n\nexport type ScrollToParent = ScrollToTarget | Window\n\nexport type ScrollToParams = {\n parent?: Element | Window\n left: number\n top: number\n duration?: { x?: number; y?: number }\n easing?: (t: number) => number\n callback?: () => void\n}\n\nexport type getScrollDurationParams = {\n parent: Element | Window\n left: number\n top: number\n speed: number\n}\n\nexport type scrollToTargetParams = {\n target: ScrollToTarget\n parent?: ScrollToParent\n offset?: {\n x?: number\n y?: number\n }\n speed?: number\n easing?: (t: number) => number\n}\n\n// Private functions\nfunction min(a: number, b: number) {\n return a < b ? a : b\n}\n\nfunction unwrapParent(parent: ScrollToParent) {\n if (parent === window) {\n return parent\n } else if (typeof parent === 'string') {\n return document.querySelector(parent) || document.documentElement\n } else {\n return (\n unrefElement(parent as MaybeComputedElementRef<MaybeElement>) ||\n document.documentElement\n )\n }\n}\n\nfunction unwrapTarget(target: ScrollToTarget, parentEl: Element | Window) {\n if (typeof target === 'string') {\n const queryTarget = parentEl === window ? document : (parentEl as Element)\n return queryTarget.querySelector(target)\n } else {\n return unrefElement(target as MaybeComputedElementRef<MaybeElement>)\n }\n}\n\nfunction isHtmlElement(\n parentEl: Window | SVGElement | Element\n): parentEl is HTMLElement {\n return parentEl instanceof HTMLElement\n}\n\nfunction disableScrollSnap(parentEl: Window | SVGElement | Element) {\n if (isHtmlElement(parentEl)) {\n parentEl.style.scrollSnapType = 'none'\n }\n}\n\nfunction reenableScrollSnap(parentEl: Window | SVGElement | Element) {\n if (isHtmlElement(parentEl)) {\n parentEl.style.scrollSnapType = ''\n }\n}\n\n// Public composable\nexport function useScrollTo() {\n function getScrollPosition(element: Element | Window): {\n x: number\n y: number\n } {\n if (element === window) {\n return { x: window.scrollX, y: window.scrollY }\n } else if (element instanceof Element) {\n return { x: element.scrollLeft, y: element.scrollTop }\n } else {\n return { x: 0, y: 0 }\n }\n }\n\n function getDistance(\n target: Element,\n parent?: Element | Window\n ): { top: number; left: number } {\n const rect = target.getBoundingClientRect()\n const scrollEl =\n parent || document.scrollingElement || document.documentElement\n\n const scrollTop = scrollEl instanceof Window ? 0 : scrollEl.scrollTop\n const scrollLeft = scrollEl instanceof Window ? 0 : scrollEl.scrollLeft\n\n return {\n top: rect.top + scrollTop,\n left: rect.left + scrollLeft,\n }\n }\n\n function getScrollDuration({\n parent = document.documentElement || document.body,\n left = 0,\n top = 0,\n speed = 500,\n }: getScrollDurationParams) {\n const currentPos = getScrollPosition(parent)\n const distanceX = currentPos.x - left\n const distanceY = currentPos.y - top\n const durationX = Math.abs((distanceX / speed) * 100)\n const durationY = Math.abs((distanceY / speed) * 100)\n\n return { x: durationX, y: durationY }\n }\n\n function scrollTo({\n parent = document.documentElement || document.body,\n top,\n left,\n duration = {},\n easing = easeOutQuad,\n callback,\n }: ScrollToParams) {\n const startTime = Date.now()\n const { x: fromX, y: fromY } = getScrollPosition(parent)\n\n if (fromX === top && fromY === left) {\n if (callback) callback()\n return\n }\n\n const mappedDuration = { x: 500, y: 500, ...duration }\n\n const scroll = () => {\n const currentTime = Date.now()\n\n const timeX = min(1, (currentTime - startTime) / mappedDuration.x)\n const timeY = min(1, (currentTime - startTime) / mappedDuration.y)\n const easedTimeX = easing(timeX)\n const easedTimeY = easing(timeY)\n\n // We use the min of the two times to make sure we scroll at the same speed\n const minTime = Math.min(easedTimeX, easedTimeY)\n\n parent.scroll({\n left: minTime * (left - fromX) + fromX,\n top: minTime * (top - fromY) + fromY,\n })\n\n if (easedTimeX < 1 || easedTimeY < 1) {\n requestAnimationFrame(scroll)\n } else if (callback) {\n callback()\n }\n }\n\n requestAnimationFrame(scroll)\n }\n\n function scrollToTarget({\n target,\n parent = document.documentElement || document.body,\n offset = {},\n speed = 500,\n easing = easeOutQuad,\n }: scrollToTargetParams) {\n const parentEl = unwrapParent(parent)\n if (!parentEl) {\n return\n }\n const targetEl = unwrapTarget(target, parentEl)\n if (!targetEl) {\n return\n }\n\n disableScrollSnap(parentEl)\n\n const mappedOffset = { x: 0, y: 0, ...offset }\n const distance = getDistance(targetEl, parentEl)\n const leftDistance = distance.left - mappedOffset.x\n const topDistance = distance.top - mappedOffset.y\n\n const scrollDuration = getScrollDuration({\n parent: parentEl,\n left: leftDistance,\n top: topDistance,\n speed: speed,\n })\n\n scrollTo({\n parent: parentEl,\n left: leftDistance,\n top: topDistance,\n duration: scrollDuration,\n easing: easing,\n callback: () => reenableScrollSnap(parentEl),\n })\n }\n\n return {\n getScrollPosition,\n getDistance,\n getScrollDuration,\n scrollTo,\n scrollToTarget,\n }\n}\n"],"mappings":"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","names":[]}
|
package/dist/nuxt/module.d.mts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as nuxt_schema from 'nuxt/schema';
|
|
2
2
|
|
|
3
3
|
interface ModuleOptions {
|
|
4
4
|
plugins?: string[] | boolean;
|
|
5
5
|
composables?: string[] | boolean;
|
|
6
6
|
}
|
|
7
|
-
declare const _default:
|
|
7
|
+
declare const _default: nuxt_schema.NuxtModule<ModuleOptions, ModuleOptions, false>;
|
|
8
8
|
|
|
9
9
|
export { _default as default };
|
|
10
10
|
export type { ModuleOptions };
|
package/dist/nuxt/module.json
CHANGED
package/dist/nuxt/module.mjs
CHANGED
|
@@ -43,6 +43,13 @@ const functions$1 = [
|
|
|
43
43
|
docs: "https://maas.egineering/vue-equipment/plugins/MagicEmitter/",
|
|
44
44
|
description: "MagicEmitter is a wrapper around [mitt](https://github.com/developit/mitt)"
|
|
45
45
|
},
|
|
46
|
+
{
|
|
47
|
+
name: "MagicError",
|
|
48
|
+
"package": "plugins",
|
|
49
|
+
lastUpdated: 1754925604000,
|
|
50
|
+
docs: "https://maas.egineering/vue-equipment/plugins/MagicError/",
|
|
51
|
+
description: "MagicError is a composable and a class used throughout Vue Equipment for error handling and logging"
|
|
52
|
+
},
|
|
46
53
|
{
|
|
47
54
|
name: "MagicMarquee",
|
|
48
55
|
"package": "plugins",
|
|
@@ -123,7 +130,7 @@ const functions$1 = [
|
|
|
123
130
|
{
|
|
124
131
|
name: "useScrollTo",
|
|
125
132
|
"package": "composables",
|
|
126
|
-
lastUpdated:
|
|
133
|
+
lastUpdated: 1757314730000,
|
|
127
134
|
docs: "https://maas.egineering/vue-equipment/composables/useScrollTo/",
|
|
128
135
|
description: "Scroll to an element with consistent speed"
|
|
129
136
|
}
|
|
@@ -32,6 +32,9 @@ import { inject, computed } from "vue";
|
|
|
32
32
|
import { defu } from "defu";
|
|
33
33
|
import { AutoSize } from "@maas/vue-autosize";
|
|
34
34
|
import { Primitive } from "@maas/vue-primitive";
|
|
35
|
+
import {
|
|
36
|
+
useMagicError
|
|
37
|
+
} from "@maas/vue-equipment/plugins/MagicError";
|
|
35
38
|
import { useAccordionView } from "../composables/private/useAccordionView";
|
|
36
39
|
import { useAccordionState } from "../composables/private/useAccordionState";
|
|
37
40
|
import { useAccordionCallback } from "../composables/private/useAccordionCallback";
|
|
@@ -44,14 +47,20 @@ const { transition, animation } = defineProps({
|
|
|
44
47
|
transition: { type: String, required: false },
|
|
45
48
|
animation: { type: Object, required: false }
|
|
46
49
|
});
|
|
50
|
+
const magicError = useMagicError({
|
|
51
|
+
prefix: "MagicAccordion",
|
|
52
|
+
source: "MagicAccordionContent"
|
|
53
|
+
});
|
|
47
54
|
const instanceId = inject(MagicAccordionInstanceId, void 0);
|
|
48
55
|
const viewId = inject(MagicAccordionViewId, void 0);
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
56
|
+
magicError.assert(instanceId, {
|
|
57
|
+
message: "MagicAccordionContent must be nested inside MagicAccordionProvider",
|
|
58
|
+
errorCode: "missing_instance_id"
|
|
59
|
+
});
|
|
60
|
+
magicError.assert(viewId, {
|
|
61
|
+
message: "MagicAccordionContent must be nested inside MagicAccordionView",
|
|
62
|
+
errorCode: "missing_view_id"
|
|
63
|
+
});
|
|
55
64
|
const { initializeState } = useAccordionState(instanceId);
|
|
56
65
|
const state = initializeState();
|
|
57
66
|
const { getView } = useAccordionView(instanceId);
|
|
@@ -15,7 +15,7 @@ declare var __VLS_24: {
|
|
|
15
15
|
type __VLS_Slots = {} & {
|
|
16
16
|
default?: (props: typeof __VLS_24) => any;
|
|
17
17
|
};
|
|
18
|
-
declare const __VLS_component: import("vue").DefineComponent<MagicAccordionContentProps,
|
|
18
|
+
declare const __VLS_component: import("vue").DefineComponent<MagicAccordionContentProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<MagicAccordionContentProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
19
19
|
declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
|
|
20
20
|
export default _default;
|
|
21
21
|
type __VLS_WithSlots<T, S> = T & {
|
|
@@ -9,7 +9,7 @@ declare var __VLS_7: {};
|
|
|
9
9
|
type __VLS_Slots = {} & {
|
|
10
10
|
default?: (props: typeof __VLS_7) => any;
|
|
11
11
|
};
|
|
12
|
-
declare const __VLS_component: import("vue").DefineComponent<MagicAccordionProviderProps,
|
|
12
|
+
declare const __VLS_component: import("vue").DefineComponent<MagicAccordionProviderProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<MagicAccordionProviderProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
13
13
|
declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
|
|
14
14
|
export default _default;
|
|
15
15
|
type __VLS_WithSlots<T, S> = T & {
|
|
@@ -17,6 +17,9 @@
|
|
|
17
17
|
import { useTemplateRef, inject, computed, toValue } from "vue";
|
|
18
18
|
import { Primitive } from "@maas/vue-primitive";
|
|
19
19
|
import { onKeyStroke } from "@vueuse/core";
|
|
20
|
+
import {
|
|
21
|
+
useMagicError
|
|
22
|
+
} from "@maas/vue-equipment/plugins/MagicError";
|
|
20
23
|
import { useAccordionTrigger } from "../composables/private/useAccordionTrigger";
|
|
21
24
|
import { useAccordionState } from "../composables/private/useAccordionState";
|
|
22
25
|
import { useAccordionView } from "../composables/private/useAccordionView";
|
|
@@ -32,32 +35,34 @@ const {
|
|
|
32
35
|
trigger: { type: String, required: false },
|
|
33
36
|
asChild: { type: Boolean, required: false }
|
|
34
37
|
});
|
|
38
|
+
const magicError = useMagicError({
|
|
39
|
+
prefix: "MagicAccordion",
|
|
40
|
+
source: "MagicAccordion"
|
|
41
|
+
});
|
|
35
42
|
const elRef = useTemplateRef("el");
|
|
36
43
|
const instanceId = inject(MagicAccordionInstanceId, void 0);
|
|
37
44
|
const injectedViewId = inject(MagicAccordionViewId, void 0);
|
|
38
45
|
const mappedViewId = computed(() => viewId ?? injectedViewId);
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
);
|
|
48
|
-
}
|
|
46
|
+
magicError.assert(instanceId, {
|
|
47
|
+
message: "MagicAccordionTrigger must be nested inside MagicAccordionProvider",
|
|
48
|
+
errorCode: "missing_instance_id"
|
|
49
|
+
});
|
|
50
|
+
magicError.assert(mappedViewId.value, {
|
|
51
|
+
message: "MagicAccordionTrigger must be nested inside MagicAccordionView or a viewId must be provided",
|
|
52
|
+
errorCode: "missing_view_id"
|
|
53
|
+
});
|
|
49
54
|
const { initializeState } = useAccordionState(instanceId);
|
|
50
55
|
const state = initializeState();
|
|
51
56
|
const { getView } = useAccordionView(instanceId);
|
|
52
57
|
const view = getView(mappedViewId.value);
|
|
53
58
|
const mappedDisabled = computed(
|
|
54
|
-
() => toValue(disabled) || state.options.disabled
|
|
59
|
+
() => (toValue(disabled) || state.options.disabled) ?? false
|
|
55
60
|
);
|
|
56
61
|
const { onMouseenter, onClick, onKeypress } = useAccordionTrigger({
|
|
57
62
|
elRef,
|
|
58
63
|
instanceId,
|
|
64
|
+
mappedDisabled,
|
|
59
65
|
viewId: mappedViewId.value,
|
|
60
|
-
disabled,
|
|
61
66
|
trigger
|
|
62
67
|
});
|
|
63
68
|
onKeyStroke("Enter", onKeypress);
|
|
@@ -12,7 +12,7 @@ declare var __VLS_12: {
|
|
|
12
12
|
type __VLS_Slots = {} & {
|
|
13
13
|
default?: (props: typeof __VLS_12) => any;
|
|
14
14
|
};
|
|
15
|
-
declare const __VLS_component: import("vue").DefineComponent<MagicAccordionTriggerProps,
|
|
15
|
+
declare const __VLS_component: import("vue").DefineComponent<MagicAccordionTriggerProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<MagicAccordionTriggerProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
16
16
|
declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
|
|
17
17
|
export default _default;
|
|
18
18
|
type __VLS_WithSlots<T, S> = T & {
|
|
@@ -12,6 +12,9 @@
|
|
|
12
12
|
<script setup>
|
|
13
13
|
import { computed, inject, onBeforeUnmount, provide, useId } from "vue";
|
|
14
14
|
import { Primitive } from "@maas/vue-primitive";
|
|
15
|
+
import {
|
|
16
|
+
useMagicError
|
|
17
|
+
} from "@maas/vue-equipment/plugins/MagicError";
|
|
15
18
|
import {
|
|
16
19
|
MagicAccordionInstanceId,
|
|
17
20
|
MagicAccordionViewActive,
|
|
@@ -23,12 +26,15 @@ const { id, active } = defineProps({
|
|
|
23
26
|
asChild: { type: Boolean, required: false },
|
|
24
27
|
active: { type: Boolean, required: false }
|
|
25
28
|
});
|
|
29
|
+
const magicError = useMagicError({
|
|
30
|
+
prefix: "MagicAccordion",
|
|
31
|
+
source: "MagicAccordionView"
|
|
32
|
+
});
|
|
26
33
|
const instanceId = inject(MagicAccordionInstanceId, void 0);
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
}
|
|
34
|
+
magicError.assert(instanceId, {
|
|
35
|
+
message: "MagicAccordionView must be nested inside MagicAccordionProvider",
|
|
36
|
+
errorCode: "missing_instance_id"
|
|
37
|
+
});
|
|
32
38
|
const mappedId = computed(() => id ?? `magic-accordion-view-${useId()}`);
|
|
33
39
|
const mappedActive = computed(() => view.active);
|
|
34
40
|
const { initializeView, deleteView } = useAccordionView(instanceId);
|
|
@@ -9,7 +9,7 @@ declare var __VLS_7: {
|
|
|
9
9
|
type __VLS_Slots = {} & {
|
|
10
10
|
default?: (props: typeof __VLS_7) => any;
|
|
11
11
|
};
|
|
12
|
-
declare const __VLS_component: import("vue").DefineComponent<MagicAccordionViewProps,
|
|
12
|
+
declare const __VLS_component: import("vue").DefineComponent<MagicAccordionViewProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<MagicAccordionViewProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
13
13
|
declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
|
|
14
14
|
export default _default;
|
|
15
15
|
type __VLS_WithSlots<T, S> = T & {
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { type MaybeRef, type Ref } from 'vue';
|
|
1
|
+
import { type ComputedRef, type MaybeRef, type Ref } from 'vue';
|
|
2
2
|
import { Primitive } from '@maas/vue-primitive';
|
|
3
3
|
import type { Interaction } from '../../types/index.js';
|
|
4
4
|
interface UseAccordionTriggerArgs {
|
|
5
5
|
instanceId: MaybeRef<string>;
|
|
6
6
|
viewId: string;
|
|
7
7
|
trigger: Interaction;
|
|
8
|
-
|
|
8
|
+
mappedDisabled: ComputedRef<boolean>;
|
|
9
9
|
elRef: Ref<InstanceType<typeof Primitive> | null>;
|
|
10
10
|
}
|
|
11
11
|
export declare function useAccordionTrigger(args: UseAccordionTriggerArgs): {
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {} from "vue";
|
|
2
2
|
import { Primitive } from "@maas/vue-primitive";
|
|
3
3
|
import { useFocus } from "@vueuse/core";
|
|
4
4
|
import { useAccordionView } from "./useAccordionView.mjs";
|
|
5
5
|
export function useAccordionTrigger(args) {
|
|
6
|
-
const { instanceId, viewId, elRef,
|
|
6
|
+
const { instanceId, viewId, elRef, mappedDisabled, trigger } = args;
|
|
7
7
|
const { selectView, unselectView, getView } = useAccordionView(instanceId);
|
|
8
8
|
const view = getView(viewId);
|
|
9
9
|
const { focused } = useFocus(elRef);
|
|
10
10
|
function onMouseenter() {
|
|
11
|
-
if (!
|
|
11
|
+
if (!mappedDisabled.value && trigger === "mouseenter") {
|
|
12
12
|
selectView(viewId);
|
|
13
13
|
}
|
|
14
14
|
}
|
|
15
15
|
function onClick() {
|
|
16
|
-
if (!
|
|
16
|
+
if (!mappedDisabled.value && trigger === "click") {
|
|
17
17
|
if (view?.active) {
|
|
18
18
|
unselectView(viewId);
|
|
19
19
|
} else {
|
|
@@ -22,7 +22,7 @@ export function useAccordionTrigger(args) {
|
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
24
|
function onKeypress(e) {
|
|
25
|
-
if (focused.value && !
|
|
25
|
+
if (focused.value && !mappedDisabled.value && !view?.active) {
|
|
26
26
|
e.preventDefault();
|
|
27
27
|
e.stopPropagation();
|
|
28
28
|
if (view?.active) {
|
|
@@ -36,6 +36,9 @@ import {
|
|
|
36
36
|
useTemplateRef
|
|
37
37
|
} from "vue";
|
|
38
38
|
import { useMagicKeys } from "@vueuse/core";
|
|
39
|
+
import {
|
|
40
|
+
useMagicError
|
|
41
|
+
} from "@maas/vue-equipment/plugins/MagicError";
|
|
39
42
|
import { useCommandItem } from "../composables/private/useCommandItem";
|
|
40
43
|
import { useCommandScroll } from "../composables/private/useCommandScroll";
|
|
41
44
|
import { useCommandCallback } from "../composables/private/useCommandCallback";
|
|
@@ -52,17 +55,21 @@ import "@maas/vue-equipment/utils/css/keyframes/fade-out.css";
|
|
|
52
55
|
defineOptions({
|
|
53
56
|
inheritAttrs: false
|
|
54
57
|
});
|
|
58
|
+
const magicError = useMagicError({
|
|
59
|
+
prefix: "MagicCommand",
|
|
60
|
+
source: "MagicCommandContent"
|
|
61
|
+
});
|
|
55
62
|
const instanceId = inject(MagicCommandInstanceId, void 0);
|
|
56
63
|
const viewId = inject(MagicCommandViewId, void 0);
|
|
57
64
|
const elRef = useTemplateRef("el");
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
}
|
|
65
|
+
magicError.assert(instanceId, {
|
|
66
|
+
message: "MagicCommandContent must be nested inside MagicCommandProvider",
|
|
67
|
+
errorCode: "missing_instance_id"
|
|
68
|
+
});
|
|
69
|
+
magicError.assert(viewId, {
|
|
70
|
+
message: "MagicCommandContent must be nested inside MagicCommandView",
|
|
71
|
+
errorCode: "missing_view_id"
|
|
72
|
+
});
|
|
66
73
|
const { getView } = useCommandView(instanceId);
|
|
67
74
|
const view = getView(viewId);
|
|
68
75
|
const { initializeState } = useCommandState(instanceId);
|
|
@@ -94,13 +101,19 @@ const {
|
|
|
94
101
|
scrollInFromTop
|
|
95
102
|
} = useCommandScroll(elRef);
|
|
96
103
|
const keys = useMagicKeys();
|
|
104
|
+
const { logWarning } = magicError;
|
|
97
105
|
const nextTimeout = ref(void 0);
|
|
98
106
|
const prevTimeout = ref(void 0);
|
|
99
107
|
const nextInterval = ref(void 0);
|
|
100
108
|
const prevInterval = ref(void 0);
|
|
101
109
|
if (options?.keyListener?.next) {
|
|
102
110
|
for (const key of options.keyListener.next) {
|
|
103
|
-
|
|
111
|
+
const mappedKey = keys[key];
|
|
112
|
+
if (!mappedKey) {
|
|
113
|
+
logWarning(`The key \u201C${key}\u201D is not supported by MagicCommand`);
|
|
114
|
+
continue;
|
|
115
|
+
}
|
|
116
|
+
watch(mappedKey, (value) => {
|
|
104
117
|
if (isIdle.value) {
|
|
105
118
|
return;
|
|
106
119
|
}
|
|
@@ -121,7 +134,12 @@ if (options?.keyListener?.next) {
|
|
|
121
134
|
}
|
|
122
135
|
if (options?.keyListener?.prev) {
|
|
123
136
|
for (const key of options.keyListener.prev) {
|
|
124
|
-
|
|
137
|
+
const mappedKey = keys[key];
|
|
138
|
+
if (!mappedKey) {
|
|
139
|
+
logWarning(`The key \u201C${key}\u201D is not supported by MagicCommand`);
|
|
140
|
+
continue;
|
|
141
|
+
}
|
|
142
|
+
watch(mappedKey, (value) => {
|
|
125
143
|
if (isIdle.value) {
|
|
126
144
|
return;
|
|
127
145
|
}
|
|
@@ -4,7 +4,7 @@ declare var __VLS_19: {};
|
|
|
4
4
|
type __VLS_Slots = {} & {
|
|
5
5
|
default?: (props: typeof __VLS_19) => any;
|
|
6
6
|
};
|
|
7
|
-
declare const __VLS_component: import("vue").DefineComponent<{},
|
|
7
|
+
declare const __VLS_component: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
8
8
|
declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
|
|
9
9
|
export default _default;
|
|
10
10
|
type __VLS_WithSlots<T, S> = T & {
|
|
@@ -15,6 +15,9 @@ import { useMagicDrawer } from "@maas/vue-equipment/plugins/MagicDrawer";
|
|
|
15
15
|
import {
|
|
16
16
|
useMagicEmitter
|
|
17
17
|
} from "@maas/vue-equipment/plugins/MagicEmitter";
|
|
18
|
+
import {
|
|
19
|
+
useMagicError
|
|
20
|
+
} from "@maas/vue-equipment/plugins/MagicError";
|
|
18
21
|
import { useMagicCommand } from "../composables/useMagicCommand";
|
|
19
22
|
import { MagicCommandInstanceId } from "../symbols";
|
|
20
23
|
defineOptions({
|
|
@@ -23,13 +26,16 @@ defineOptions({
|
|
|
23
26
|
defineProps({
|
|
24
27
|
options: { type: null, required: false }
|
|
25
28
|
});
|
|
29
|
+
const magicError = useMagicError({
|
|
30
|
+
prefix: "MagicCommand",
|
|
31
|
+
source: "MagicCommandDrawer"
|
|
32
|
+
});
|
|
26
33
|
const instanceId = inject(MagicCommandInstanceId, "");
|
|
27
34
|
const emitter = useMagicEmitter();
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
}
|
|
35
|
+
magicError.assert(instanceId, {
|
|
36
|
+
message: "MagicCommandDrawer must be nested inside MagicCommandProvider",
|
|
37
|
+
errorCode: "missing_instance_id"
|
|
38
|
+
});
|
|
33
39
|
function afterLeaveCallback(payload) {
|
|
34
40
|
if (typeof payload === "string" && payload === instanceId) {
|
|
35
41
|
close();
|
|
@@ -6,7 +6,7 @@ declare var __VLS_7: {};
|
|
|
6
6
|
type __VLS_Slots = {} & {
|
|
7
7
|
default?: (props: typeof __VLS_7) => any;
|
|
8
8
|
};
|
|
9
|
-
declare const __VLS_component: import("vue").DefineComponent<MagicCommandDrawerProps,
|
|
9
|
+
declare const __VLS_component: import("vue").DefineComponent<MagicCommandDrawerProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<MagicCommandDrawerProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
10
10
|
declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
|
|
11
11
|
export default _default;
|
|
12
12
|
type __VLS_WithSlots<T, S> = T & {
|
|
@@ -24,6 +24,9 @@ import {
|
|
|
24
24
|
useId,
|
|
25
25
|
onMounted
|
|
26
26
|
} from "vue";
|
|
27
|
+
import {
|
|
28
|
+
useMagicError
|
|
29
|
+
} from "@maas/vue-equipment/plugins/MagicError";
|
|
27
30
|
import { useCommandItem } from "../composables/private/useCommandItem";
|
|
28
31
|
import { useCommandState } from "../composables/private/useCommandState";
|
|
29
32
|
import {
|
|
@@ -44,18 +47,25 @@ const {
|
|
|
44
47
|
disabled: { type: Boolean, required: false }
|
|
45
48
|
});
|
|
46
49
|
const emit = defineEmits(["click"]);
|
|
50
|
+
const magicError = useMagicError({
|
|
51
|
+
prefix: "MagicCommand",
|
|
52
|
+
source: "MagicCommand"
|
|
53
|
+
});
|
|
47
54
|
const instanceId = inject(MagicCommandInstanceId, void 0);
|
|
48
55
|
const viewId = inject(MagicCommandViewId, void 0);
|
|
49
56
|
const contentId = inject(MagicCommandContentId, void 0);
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
57
|
+
magicError.assert(instanceId, {
|
|
58
|
+
message: "MagicCommandItem must be nested inside MagicCommandProvider",
|
|
59
|
+
errorCode: "missing_instance_id"
|
|
60
|
+
});
|
|
61
|
+
magicError.assert(viewId, {
|
|
62
|
+
message: "MagicCommandItem must be nested inside MagicCommandView",
|
|
63
|
+
errorCode: "missing_view_id"
|
|
64
|
+
});
|
|
65
|
+
magicError.assert(contentId, {
|
|
66
|
+
message: "MagicCommandItem must be nested inside MagicCommandContent",
|
|
67
|
+
errorCode: "missing_content_id"
|
|
68
|
+
});
|
|
59
69
|
const mappedId = computed(() => id ?? `magic-command-item-${useId()}`);
|
|
60
70
|
const { initializeItem, deleteItem, selectItem } = useCommandItem({
|
|
61
71
|
instanceId,
|
|
@@ -10,7 +10,7 @@ declare var __VLS_1: {
|
|
|
10
10
|
type __VLS_Slots = {} & {
|
|
11
11
|
default?: (props: typeof __VLS_1) => any;
|
|
12
12
|
};
|
|
13
|
-
declare const __VLS_component: import("vue").DefineComponent<MagicCommandItemProps,
|
|
13
|
+
declare const __VLS_component: import("vue").DefineComponent<MagicCommandItemProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
|
|
14
14
|
click: (event: MouseEvent) => any;
|
|
15
15
|
}, string, import("vue").PublicProps, Readonly<MagicCommandItemProps> & Readonly<{
|
|
16
16
|
onClick?: ((event: MouseEvent) => any) | undefined;
|
|
@@ -6,7 +6,7 @@ declare var __VLS_7: {};
|
|
|
6
6
|
type __VLS_Slots = {} & {
|
|
7
7
|
default?: (props: typeof __VLS_7) => any;
|
|
8
8
|
};
|
|
9
|
-
declare const __VLS_component: import("vue").DefineComponent<MagicCommandProps,
|
|
9
|
+
declare const __VLS_component: import("vue").DefineComponent<MagicCommandProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<MagicCommandProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
10
10
|
declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
|
|
11
11
|
export default _default;
|
|
12
12
|
type __VLS_WithSlots<T, S> = T & {
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
import { shallowRef, provide, watch, onBeforeUnmount } from "vue";
|
|
9
9
|
import { useMagicKeys, usePointer } from "@vueuse/core";
|
|
10
10
|
import { Primitive } from "@maas/vue-primitive";
|
|
11
|
+
import { useMagicError } from "@maas/vue-equipment/plugins/MagicError";
|
|
11
12
|
import { createDefu } from "defu";
|
|
12
13
|
import { useCommandState } from "../composables/private/useCommandState";
|
|
13
14
|
import { useMagicCommand } from "../composables/useMagicCommand";
|
|
@@ -49,9 +50,18 @@ watch([x, y], ([x2, y2]) => {
|
|
|
49
50
|
const keys = useMagicKeys();
|
|
50
51
|
const commandApi = useMagicCommand(id);
|
|
51
52
|
const { open, close } = commandApi;
|
|
53
|
+
const { logWarning } = useMagicError({
|
|
54
|
+
prefix: "MagicCommand",
|
|
55
|
+
source: "MagicCommandProvider"
|
|
56
|
+
});
|
|
52
57
|
if (mappedOptions.keyListener?.open) {
|
|
53
58
|
for (const key of mappedOptions.keyListener.open) {
|
|
54
|
-
|
|
59
|
+
const mappedKey = keys[key];
|
|
60
|
+
if (!mappedKey) {
|
|
61
|
+
logWarning(`The key \u201C${key}\u201D is not supported by MagicCommand`);
|
|
62
|
+
continue;
|
|
63
|
+
}
|
|
64
|
+
watch(mappedKey, (value) => {
|
|
55
65
|
if (value) {
|
|
56
66
|
open();
|
|
57
67
|
}
|
|
@@ -60,7 +70,12 @@ if (mappedOptions.keyListener?.open) {
|
|
|
60
70
|
}
|
|
61
71
|
if (mappedOptions.keyListener?.close) {
|
|
62
72
|
for (const key of mappedOptions.keyListener.close) {
|
|
63
|
-
|
|
73
|
+
const mappedKey = keys[key];
|
|
74
|
+
if (!mappedKey) {
|
|
75
|
+
logWarning(`The key \u201C${key}\u201D is not supported by MagicCommand`);
|
|
76
|
+
continue;
|
|
77
|
+
}
|
|
78
|
+
watch(mappedKey, (value) => {
|
|
64
79
|
if (value) {
|
|
65
80
|
close();
|
|
66
81
|
}
|
|
@@ -9,7 +9,7 @@ declare var __VLS_7: {};
|
|
|
9
9
|
type __VLS_Slots = {} & {
|
|
10
10
|
default?: (props: typeof __VLS_7) => any;
|
|
11
11
|
};
|
|
12
|
-
declare const __VLS_component: import("vue").DefineComponent<MagicCommandProviderProps,
|
|
12
|
+
declare const __VLS_component: import("vue").DefineComponent<MagicCommandProviderProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<MagicCommandProviderProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
13
13
|
declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
|
|
14
14
|
export default _default;
|
|
15
15
|
type __VLS_WithSlots<T, S> = T & {
|
|
@@ -4,18 +4,24 @@
|
|
|
4
4
|
|
|
5
5
|
<script setup>
|
|
6
6
|
import { inject, onBeforeUnmount, useTemplateRef } from "vue";
|
|
7
|
+
import {
|
|
8
|
+
useMagicError
|
|
9
|
+
} from "@maas/vue-equipment/plugins/MagicError";
|
|
7
10
|
import {
|
|
8
11
|
useMagicEmitter
|
|
9
12
|
} from "@maas/vue-equipment/plugins/MagicEmitter";
|
|
10
13
|
import { MagicCommandInstanceId } from "./../symbols";
|
|
11
14
|
import { useCommandState } from "../composables/private/useCommandState";
|
|
15
|
+
const magicError = useMagicError({
|
|
16
|
+
prefix: "MagicCommand",
|
|
17
|
+
source: "MagicCommand"
|
|
18
|
+
});
|
|
12
19
|
const instanceId = inject(MagicCommandInstanceId, "");
|
|
13
20
|
const emitter = useMagicEmitter();
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
}
|
|
21
|
+
magicError.assert(instanceId, {
|
|
22
|
+
message: "MagicCommandRenderer must be nested inside MagicCommandProvider",
|
|
23
|
+
errorCode: "missing_instance_id"
|
|
24
|
+
});
|
|
19
25
|
const elRef = useTemplateRef("el");
|
|
20
26
|
const { initializeState } = useCommandState(instanceId);
|
|
21
27
|
const state = initializeState();
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare const _default: import("vue").DefineComponent<{},
|
|
1
|
+
declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
2
2
|
export default _default;
|