@maas/vue-equipment 1.0.0-beta.2 → 1.0.0-beta.21

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.
Files changed (217) hide show
  1. package/README.md +2 -2
  2. package/dist/composables/index.d.ts +5 -5
  3. package/dist/composables/index.js +23 -13
  4. package/dist/composables/index.js.map +1 -1
  5. package/dist/nuxt/module.d.mts +2 -1
  6. package/dist/nuxt/module.json +2 -2
  7. package/dist/nuxt/module.mjs +9 -2
  8. package/dist/nuxt/types.d.mts +3 -1
  9. package/dist/plugins/.turbo/turbo-lint.log +2 -10
  10. package/dist/plugins/MagicAccordion/nuxt.d.ts +1 -1
  11. package/dist/plugins/MagicAccordion/src/components/MagicAccordionContent.vue +59 -82
  12. package/dist/plugins/MagicAccordion/src/components/MagicAccordionContent.vue.d.ts +35 -22
  13. package/dist/plugins/MagicAccordion/src/components/MagicAccordionProvider.vue +17 -31
  14. package/dist/plugins/MagicAccordion/src/components/MagicAccordionProvider.vue.d.ts +12 -21
  15. package/dist/plugins/MagicAccordion/src/components/MagicAccordionTrigger.vue +57 -62
  16. package/dist/plugins/MagicAccordion/src/components/MagicAccordionTrigger.vue.d.ts +23 -59
  17. package/dist/plugins/MagicAccordion/src/components/MagicAccordionView.vue +34 -45
  18. package/dist/plugins/MagicAccordion/src/components/MagicAccordionView.vue.d.ts +17 -22
  19. package/dist/plugins/MagicAccordion/src/composables/private/useAccordionTrigger.d.ts +1 -1
  20. package/dist/plugins/MagicAccordion/src/composables/private/useAccordionTrigger.mjs +1 -0
  21. package/dist/plugins/MagicAccordion/src/composables/private/useAccordionView.mjs +1 -0
  22. package/dist/plugins/MagicAccordion/src/composables/useMagicAccordion.mjs +1 -0
  23. package/dist/plugins/MagicAccordion/src/symbols/index.d.ts +2 -2
  24. package/dist/plugins/MagicCommand/nuxt.d.ts +1 -1
  25. package/dist/plugins/MagicCommand/src/components/MagicCommandContent.vue +146 -152
  26. package/dist/plugins/MagicCommand/src/components/MagicCommandContent.vue.d.ts +24 -13
  27. package/dist/plugins/MagicCommand/src/components/MagicCommandDrawer.vue +42 -52
  28. package/dist/plugins/MagicCommand/src/components/MagicCommandDrawer.vue.d.ts +12 -21
  29. package/dist/plugins/MagicCommand/src/components/MagicCommandItem.vue +72 -87
  30. package/dist/plugins/MagicCommand/src/components/MagicCommandItem.vue.d.ts +29 -28
  31. package/dist/plugins/MagicCommand/src/components/MagicCommandModal.vue +37 -47
  32. package/dist/plugins/MagicCommand/src/components/MagicCommandModal.vue.d.ts +12 -21
  33. package/dist/plugins/MagicCommand/src/components/MagicCommandProvider.vue +61 -77
  34. package/dist/plugins/MagicCommand/src/components/MagicCommandProvider.vue.d.ts +12 -58
  35. package/dist/plugins/MagicCommand/src/components/MagicCommandRenderer.vue +23 -39
  36. package/dist/plugins/MagicCommand/src/components/MagicCommandTrigger.vue +80 -86
  37. package/dist/plugins/MagicCommand/src/components/MagicCommandTrigger.vue.d.ts +25 -60
  38. package/dist/plugins/MagicCommand/src/components/MagicCommandView.vue +36 -48
  39. package/dist/plugins/MagicCommand/src/components/MagicCommandView.vue.d.ts +15 -22
  40. package/dist/plugins/MagicCommand/src/composables/private/useCommandScroll.d.ts +2 -2
  41. package/dist/plugins/MagicCommand/src/composables/private/useCommandState.mjs +1 -1
  42. package/dist/plugins/MagicCommand/src/composables/private/useCommandTrigger.d.ts +1 -1
  43. package/dist/plugins/MagicCommand/src/composables/private/useCommandTrigger.mjs +1 -0
  44. package/dist/plugins/MagicCommand/src/symbols/index.d.ts +4 -4
  45. package/dist/plugins/MagicCommand/src/types/index.d.ts +1 -1
  46. package/dist/plugins/MagicCookie/nuxt.d.ts +1 -1
  47. package/dist/plugins/MagicCookie/src/components/MagicCookieItem.vue +34 -41
  48. package/dist/plugins/MagicCookie/src/components/MagicCookieItem.vue.d.ts +13 -22
  49. package/dist/plugins/MagicCookie/src/components/MagicCookieProvider.vue +19 -36
  50. package/dist/plugins/MagicCookie/src/components/MagicCookieProvider.vue.d.ts +9 -21
  51. package/dist/plugins/MagicCookie/src/components/MagicCookieView.vue +40 -72
  52. package/dist/plugins/MagicCookie/src/components/MagicCookieView.vue.d.ts +21 -12
  53. package/dist/plugins/MagicCookie/src/composables/private/useCookieItem.mjs +0 -1
  54. package/dist/plugins/MagicCookie/src/symbols/index.d.ts +2 -2
  55. package/dist/plugins/MagicDraggable/nuxt.d.ts +1 -1
  56. package/dist/plugins/MagicDraggable/src/components/MagicDraggable.vue +81 -100
  57. package/dist/plugins/MagicDraggable/src/components/MagicDraggable.vue.d.ts +94 -22
  58. package/dist/plugins/MagicDraggable/src/composables/private/useDraggableDrag.d.ts +2 -2
  59. package/dist/plugins/MagicDraggable/src/composables/private/useDraggableDrag.mjs +43 -63
  60. package/dist/plugins/MagicDraggable/src/composables/private/useDraggableScrollLock.mjs +34 -14
  61. package/dist/plugins/MagicDraggable/src/composables/private/useDraggableSnap.d.ts +2 -15
  62. package/dist/plugins/MagicDraggable/src/composables/private/useDraggableSnap.mjs +117 -64
  63. package/dist/plugins/MagicDraggable/src/composables/private/useDraggableState.mjs +6 -5
  64. package/dist/plugins/MagicDraggable/src/types/index.d.ts +2 -1
  65. package/dist/plugins/MagicDraggable/src/utils/defaultOptions.mjs +1 -1
  66. package/dist/plugins/MagicDrawer/nuxt.d.ts +1 -1
  67. package/dist/plugins/MagicDrawer/src/components/MagicDrawer.vue +271 -308
  68. package/dist/plugins/MagicDrawer/src/components/MagicDrawer.vue.d.ts +165 -23
  69. package/dist/plugins/MagicDrawer/src/composables/private/useDrawerDOM.mjs +34 -14
  70. package/dist/plugins/MagicDrawer/src/composables/private/useDrawerDrag.d.ts +2 -2
  71. package/dist/plugins/MagicDrawer/src/composables/private/useDrawerDrag.mjs +3 -3
  72. package/dist/plugins/MagicDrawer/src/composables/private/useDrawerGuards.d.ts +1 -1
  73. package/dist/plugins/MagicDrawer/src/composables/private/useDrawerGuards.mjs +28 -10
  74. package/dist/plugins/MagicDrawer/src/composables/private/useDrawerProgress.d.ts +2 -2
  75. package/dist/plugins/MagicDrawer/src/composables/private/useDrawerSnap.d.ts +3 -3
  76. package/dist/plugins/MagicDrawer/src/composables/private/useDrawerSnap.mjs +16 -14
  77. package/dist/plugins/MagicDrawer/src/composables/private/useDrawerWheel.d.ts +1 -1
  78. package/dist/plugins/MagicDrawer/src/composables/private/useDrawerWheel.mjs +1 -1
  79. package/dist/plugins/MagicDrawer/src/types/index.mjs +1 -0
  80. package/dist/plugins/MagicEmitter/nuxt.d.ts +1 -1
  81. package/dist/plugins/MagicEmitter/src/composables/useMagicEmitter.d.ts +100 -100
  82. package/dist/plugins/MagicMarquee/nuxt.d.ts +1 -1
  83. package/dist/plugins/MagicMarquee/src/components/MagicMarquee.vue +38 -72
  84. package/dist/plugins/MagicMarquee/src/components/MagicMarquee.vue.d.ts +14 -25
  85. package/dist/plugins/MagicMarquee/src/composables/private/useMarqueeApi.d.ts +1 -1
  86. package/dist/plugins/MagicMarquee/src/composables/private/useMarqueeApi.mjs +8 -2
  87. package/dist/plugins/MagicMarquee/src/composables/useMagicMarquee.d.ts +1 -1
  88. package/dist/plugins/MagicMenu/nuxt.d.ts +1 -1
  89. package/dist/plugins/MagicMenu/src/components/MagicMenuChannel.vue +51 -63
  90. package/dist/plugins/MagicMenu/src/components/MagicMenuChannel.vue.d.ts +18 -21
  91. package/dist/plugins/MagicMenu/src/components/MagicMenuContent.vue +178 -214
  92. package/dist/plugins/MagicMenu/src/components/MagicMenuContent.vue.d.ts +41 -24
  93. package/dist/plugins/MagicMenu/src/components/MagicMenuFloat.vue +171 -198
  94. package/dist/plugins/MagicMenu/src/components/MagicMenuFloat.vue.d.ts +40 -25
  95. package/dist/plugins/MagicMenu/src/components/MagicMenuItem.vue +87 -113
  96. package/dist/plugins/MagicMenu/src/components/MagicMenuItem.vue.d.ts +31 -28
  97. package/dist/plugins/MagicMenu/src/components/MagicMenuProvider.vue +82 -81
  98. package/dist/plugins/MagicMenu/src/components/MagicMenuProvider.vue.d.ts +12 -58
  99. package/dist/plugins/MagicMenu/src/components/MagicMenuRemote.vue +63 -86
  100. package/dist/plugins/MagicMenu/src/components/MagicMenuRemote.vue.d.ts +19 -23
  101. package/dist/plugins/MagicMenu/src/components/MagicMenuTrigger.vue +94 -97
  102. package/dist/plugins/MagicMenu/src/components/MagicMenuTrigger.vue.d.ts +27 -60
  103. package/dist/plugins/MagicMenu/src/components/MagicMenuView.vue +49 -61
  104. package/dist/plugins/MagicMenu/src/components/MagicMenuView.vue.d.ts +15 -22
  105. package/dist/plugins/MagicMenu/src/composables/private/useMenuCallback.mjs +1 -1
  106. package/dist/plugins/MagicMenu/src/composables/private/useMenuChannel.mjs +15 -5
  107. package/dist/plugins/MagicMenu/src/composables/private/useMenuCursor.d.ts +3 -3
  108. package/dist/plugins/MagicMenu/src/composables/private/useMenuCursor.mjs +4 -4
  109. package/dist/plugins/MagicMenu/src/composables/private/useMenuDOM.mjs +35 -15
  110. package/dist/plugins/MagicMenu/src/composables/private/useMenuKeyListener.mjs +6 -2
  111. package/dist/plugins/MagicMenu/src/composables/private/useMenuTrigger.d.ts +1 -1
  112. package/dist/plugins/MagicMenu/src/composables/private/useMenuTrigger.mjs +2 -0
  113. package/dist/plugins/MagicMenu/src/composables/private/useMenuView.mjs +18 -6
  114. package/dist/plugins/MagicMenu/src/composables/useMagicMenu.mjs +1 -0
  115. package/dist/plugins/MagicMenu/src/symbols/index.d.ts +4 -4
  116. package/dist/plugins/MagicMenu/src/utils/modeDelayDefaults.d.ts +2 -2
  117. package/dist/plugins/MagicMenu/src/utils/modeDelayDefaults.mjs +2 -2
  118. package/dist/plugins/MagicModal/nuxt.d.ts +1 -1
  119. package/dist/plugins/MagicModal/src/components/MagicModal.vue +133 -168
  120. package/dist/plugins/MagicModal/src/components/MagicModal.vue.d.ts +44 -21
  121. package/dist/plugins/MagicModal/src/composables/private/useModalDOM.mjs +34 -14
  122. package/dist/plugins/MagicModal/src/types/index.mjs +1 -0
  123. package/dist/plugins/MagicNoise/nuxt.d.ts +1 -1
  124. package/dist/plugins/MagicNoise/src/components/MagicNoise.vue +50 -81
  125. package/dist/plugins/MagicNoise/src/components/MagicNoise.vue.d.ts +1 -10
  126. package/dist/plugins/MagicNoise/src/composables/private/useNoiseApi.d.ts +3 -3
  127. package/dist/plugins/MagicNoise/src/composables/private/useNoiseApi.mjs +2 -2
  128. package/dist/plugins/MagicPie/index.d.ts +7 -0
  129. package/dist/plugins/MagicPie/index.mjs +8 -0
  130. package/dist/plugins/MagicPie/nuxt.d.ts +2 -0
  131. package/dist/plugins/MagicPie/nuxt.mjs +23 -0
  132. package/dist/plugins/MagicPie/src/components/MagicPie.vue +168 -0
  133. package/dist/plugins/MagicPie/src/components/MagicPie.vue.d.ts +7 -0
  134. package/dist/plugins/MagicPie/src/composables/private/usePieState.d.ts +6 -0
  135. package/dist/plugins/MagicPie/src/composables/private/usePieState.mjs +33 -0
  136. package/dist/plugins/MagicPie/src/composables/useMagicPie.d.ts +13 -0
  137. package/dist/plugins/MagicPie/src/composables/useMagicPie.mjs +43 -0
  138. package/dist/plugins/MagicPie/src/types/index.d.ts +9 -0
  139. package/dist/plugins/MagicPie/src/types/index.mjs +0 -0
  140. package/dist/plugins/MagicPlayer/nuxt.d.ts +1 -1
  141. package/dist/plugins/MagicPlayer/src/components/MagicPlayerAudio.vue +58 -63
  142. package/dist/plugins/MagicPlayer/src/components/MagicPlayerAudioControls.vue +99 -127
  143. package/dist/plugins/MagicPlayer/src/components/MagicPlayerAudioControls.vue.d.ts +30 -26
  144. package/dist/plugins/MagicPlayer/src/components/MagicPlayerDisplayTime.vue +32 -42
  145. package/dist/plugins/MagicPlayer/src/components/MagicPlayerDisplayTime.vue.d.ts +1 -10
  146. package/dist/plugins/MagicPlayer/src/components/MagicPlayerMuxPopover.vue +106 -105
  147. package/dist/plugins/MagicPlayer/src/components/MagicPlayerMuxPopover.vue.d.ts +1 -10
  148. package/dist/plugins/MagicPlayer/src/components/MagicPlayerOverlay.vue +51 -76
  149. package/dist/plugins/MagicPlayer/src/components/MagicPlayerOverlay.vue.d.ts +29 -14
  150. package/dist/plugins/MagicPlayer/src/components/MagicPlayerPoster.vue +18 -37
  151. package/dist/plugins/MagicPlayer/src/components/MagicPlayerPoster.vue.d.ts +12 -11
  152. package/dist/plugins/MagicPlayer/src/components/MagicPlayerProvider.vue +41 -55
  153. package/dist/plugins/MagicPlayer/src/components/MagicPlayerProvider.vue.d.ts +23 -23
  154. package/dist/plugins/MagicPlayer/src/components/MagicPlayerTimeline.vue +60 -109
  155. package/dist/plugins/MagicPlayer/src/components/MagicPlayerVideo.vue +74 -71
  156. package/dist/plugins/MagicPlayer/src/components/MagicPlayerVideoControls.vue +163 -209
  157. package/dist/plugins/MagicPlayer/src/components/MagicPlayerVideoControls.vue.d.ts +63 -33
  158. package/dist/plugins/MagicPlayer/src/composables/private/usePlayerAudioApi.d.ts +0 -4
  159. package/dist/plugins/MagicPlayer/src/composables/private/usePlayerAudioApi.mjs +6 -47
  160. package/dist/plugins/MagicPlayer/src/composables/private/usePlayerControlsApi.d.ts +7 -34
  161. package/dist/plugins/MagicPlayer/src/composables/private/usePlayerControlsApi.mjs +154 -235
  162. package/dist/plugins/MagicPlayer/src/composables/private/usePlayerMediaApi.d.ts +3 -17
  163. package/dist/plugins/MagicPlayer/src/composables/private/usePlayerMediaApi.mjs +17 -157
  164. package/dist/plugins/MagicPlayer/src/composables/private/usePlayerRuntime.d.ts +2 -3
  165. package/dist/plugins/MagicPlayer/src/composables/private/usePlayerRuntime.mjs +7 -25
  166. package/dist/plugins/MagicPlayer/src/composables/private/usePlayerState.d.ts +7 -0
  167. package/dist/plugins/MagicPlayer/src/composables/private/usePlayerState.mjs +56 -0
  168. package/dist/plugins/MagicPlayer/src/composables/private/usePlayerVideoApi.d.ts +3 -8
  169. package/dist/plugins/MagicPlayer/src/composables/private/usePlayerVideoApi.mjs +7 -62
  170. package/dist/plugins/MagicPlayer/src/composables/useMagicPlayer.d.ts +32 -51
  171. package/dist/plugins/MagicPlayer/src/composables/useMagicPlayer.mjs +49 -2
  172. package/dist/plugins/MagicPlayer/src/symbols/index.d.ts +5 -2
  173. package/dist/plugins/MagicPlayer/src/symbols/index.mjs +10 -1
  174. package/dist/plugins/MagicPlayer/src/types/index.d.ts +29 -0
  175. package/dist/plugins/MagicScroll/nuxt.d.ts +1 -1
  176. package/dist/plugins/MagicScroll/src/components/MagicScrollCollision.vue +54 -61
  177. package/dist/plugins/MagicScroll/src/components/MagicScrollCollision.vue.d.ts +9 -23
  178. package/dist/plugins/MagicScroll/src/components/MagicScrollMotion.vue +56 -71
  179. package/dist/plugins/MagicScroll/src/components/MagicScrollMotion.vue.d.ts +9 -23
  180. package/dist/plugins/MagicScroll/src/components/MagicScrollProvider.vue +26 -33
  181. package/dist/plugins/MagicScroll/src/components/MagicScrollProvider.vue.d.ts +45 -37
  182. package/dist/plugins/MagicScroll/src/components/MagicScrollScene.vue +63 -71
  183. package/dist/plugins/MagicScroll/src/components/MagicScrollScene.vue.d.ts +13 -24
  184. package/dist/plugins/MagicScroll/src/composables/private/useCollisionDetection.d.ts +2 -2
  185. package/dist/plugins/MagicScroll/src/composables/private/useCollisionDetection.mjs +16 -6
  186. package/dist/plugins/MagicScroll/src/composables/private/useScrollApi.d.ts +2 -2
  187. package/dist/plugins/MagicScroll/src/composables/private/useScrollApi.mjs +41 -26
  188. package/dist/plugins/MagicScroll/src/symbols/index.d.ts +1 -1
  189. package/dist/plugins/MagicToast/nuxt.d.ts +1 -1
  190. package/dist/plugins/MagicToast/src/components/MagicToastProvider.vue +94 -118
  191. package/dist/plugins/MagicToast/src/components/MagicToastProvider.vue.d.ts +1 -10
  192. package/dist/plugins/MagicToast/src/components/MagicToastView.vue +54 -81
  193. package/dist/plugins/MagicToast/src/components/MagicToastView.vue.d.ts +24 -23
  194. package/dist/plugins/MagicToast/src/composables/private/useToastCallback.d.ts +2 -2
  195. package/dist/plugins/MagicToast/src/composables/private/useToastCallback.mjs +5 -5
  196. package/dist/plugins/MagicToast/src/composables/private/useToastDrag.mjs +22 -22
  197. package/dist/plugins/MagicToast/src/composables/private/useToastListener.mjs +1 -0
  198. package/dist/plugins/MagicToast/src/composables/private/useToastScrollLock.mjs +33 -15
  199. package/dist/plugins/MagicToast/src/composables/private/useToastView.mjs +1 -0
  200. package/dist/plugins/MagicToast/src/composables/useMagicToast.d.ts +1 -0
  201. package/dist/plugins/MagicToast/src/composables/useMagicToast.mjs +10 -2
  202. package/dist/plugins/MagicToast/src/types/index.d.ts +1 -1
  203. package/dist/plugins/MagicToast/src/utils/defaultOptions.mjs +1 -1
  204. package/dist/plugins/index.d.ts +1 -0
  205. package/dist/plugins/index.mjs +1 -0
  206. package/dist/utils/index.d.ts +9 -4
  207. package/dist/utils/index.js +39 -3
  208. package/dist/utils/index.js.map +1 -1
  209. package/package.json +17 -8
  210. package/dist/nuxt/module.cjs +0 -5
  211. package/dist/nuxt/module.d.ts +0 -9
  212. package/dist/nuxt/types.d.ts +0 -1
  213. package/dist/plugins/MagicAccordion/demo/data/footer.json +0 -117
  214. package/dist/plugins/MagicCommand/demo/data/about.json +0 -3
  215. package/dist/plugins/MagicCommand/demo/data/search.json +0 -594
  216. package/dist/plugins/MagicPlayer/src/composables/private/usePlayerStateEmitter.d.ts +0 -15
  217. package/dist/plugins/MagicPlayer/src/composables/private/usePlayerStateEmitter.mjs +0 -9
@@ -1,34 +1,56 @@
1
- import { ref, toValue, nextTick } from "vue";
1
+ import {
2
+ ref,
3
+ toRefs,
4
+ computed,
5
+ toValue,
6
+ nextTick
7
+ } from "vue";
2
8
  import { computedWithControl } from "@vueuse/core";
3
9
  import { interpolate } from "@maas/vue-equipment/utils";
4
10
  import { useMagicEmitter } from "@maas/vue-equipment/plugins";
5
11
  import { defu } from "defu";
12
+ import { useDraggableState } from "./useDraggableState.mjs";
6
13
  export function useDraggableSnap(args) {
7
- const { id, draggedY, draggedX, elRect, wrapperRect, animation, snapPoints } = args;
8
- const activeSnapPoint = ref(void 0);
14
+ const { id, animation, snapPoints } = args;
15
+ const { initializeState } = useDraggableState(toValue(id));
16
+ const state = initializeState();
17
+ const {
18
+ lastDraggedX,
19
+ lastDraggedY,
20
+ draggedX,
21
+ draggedY,
22
+ elRect,
23
+ wrapperRect,
24
+ activeSnapPoint
25
+ } = toRefs(state);
26
+ const interpolationIdX = ref(void 0);
27
+ const interpolationIdY = ref(void 0);
28
+ const mappedActiveSnapPoint = computed(() => {
29
+ if (!activeSnapPoint.value) {
30
+ return void 0;
31
+ }
32
+ return mapSnapPoint(activeSnapPoint.value);
33
+ });
9
34
  const mappedSnapPoints = computedWithControl(
10
35
  () => toValue(wrapperRect),
11
36
  () => {
12
37
  const mapped = toValue(snapPoints).map((snapPoint) => {
13
38
  return mapSnapPoint(snapPoint);
14
39
  }).filter((snapPoint) => snapPoint !== void 0);
15
- return mapped;
40
+ return mapped ?? [];
16
41
  }
17
42
  );
18
43
  const snapPointsMap = computedWithControl(
19
44
  () => toValue(snapPoints),
20
45
  () => {
21
- const mapped = toValue(snapPoints).reduce(
22
- (acc, current) => {
23
- const key = mapSnapPoint(current);
24
- if (key) {
25
- const mappedKey = `x${key.x}y${key.y}`;
26
- acc[mappedKey] = current;
27
- }
28
- return acc;
29
- },
30
- {}
31
- );
46
+ const mapped = toValue(snapPoints).reduce((acc, current) => {
47
+ const key = mapSnapPoint(current);
48
+ if (key) {
49
+ const mappedKey = `x${key.x}y${key.y}`;
50
+ acc[mappedKey] = current;
51
+ }
52
+ return acc;
53
+ }, {});
32
54
  return mapped;
33
55
  }
34
56
  );
@@ -45,52 +67,65 @@ export function useDraggableSnap(args) {
45
67
  const mappedSnapPoint = typeof snapPoint === "string" ? [snapPoint] : snapPoint;
46
68
  const [position, offset] = mappedSnapPoint;
47
69
  const mappedOffset = defu(offset, { x: 0, y: 0 });
70
+ let x = 0;
71
+ let y = 0;
48
72
  switch (position) {
49
- case "top-left":
50
- return {
51
- x: mappedOffset.x,
52
- y: mappedOffset.y
53
- };
54
- case "top-center":
55
- return {
56
- x: wrapperRect.value.width / 2 + mappedOffset.x - elRect.value.width / 2,
57
- y: mappedOffset.y
58
- };
59
- case "top-right":
60
- return {
61
- x: wrapperRect.value.width - mappedOffset.x - elRect.value.width,
62
- y: mappedOffset.y
63
- };
64
- case "center-left":
65
- return {
66
- x: mappedOffset.x,
67
- y: wrapperRect.value.height / 2 + mappedOffset.y - elRect.value.height / 2
68
- };
69
- case "center":
70
- return {
71
- x: wrapperRect.value.width / 2 - elRect.value.width / 2 + mappedOffset.x,
72
- y: wrapperRect.value.height / 2 - elRect.value.height / 2 + mappedOffset.y
73
- };
74
- case "center-right":
75
- return {
76
- x: wrapperRect.value.width - mappedOffset.x - elRect.value.width,
77
- y: wrapperRect.value.height / 2 + mappedOffset.y - elRect.value.height / 2
78
- };
79
- case "bottom-left":
80
- return {
81
- x: mappedOffset.x,
82
- y: wrapperRect.value.height + mappedOffset.y - elRect.value.height
83
- };
84
- case "bottom-center":
85
- return {
86
- x: wrapperRect.value.width / 2 + mappedOffset.x - elRect.value.width / 2,
87
- y: wrapperRect.value.height - mappedOffset.y - elRect.value.height
88
- };
89
- case "bottom-right":
90
- return {
91
- x: wrapperRect.value.width - mappedOffset.x - elRect.value.width,
92
- y: wrapperRect.value.height - mappedOffset.y - elRect.value.height
93
- };
73
+ case "top-left": {
74
+ x = mappedOffset.x;
75
+ y = mappedOffset.y;
76
+ break;
77
+ }
78
+ case "top": {
79
+ x = wrapperRect.value.width / 2 + mappedOffset.x - elRect.value.width / 2;
80
+ y = mappedOffset.y;
81
+ break;
82
+ }
83
+ case "top-right": {
84
+ x = wrapperRect.value.width - mappedOffset.x - elRect.value.width;
85
+ y = mappedOffset.y;
86
+ break;
87
+ }
88
+ case "left": {
89
+ x = mappedOffset.x;
90
+ y = wrapperRect.value.height / 2 + mappedOffset.y - elRect.value.height / 2;
91
+ break;
92
+ }
93
+ case "center": {
94
+ x = wrapperRect.value.width / 2 - elRect.value.width / 2 + mappedOffset.x;
95
+ y = wrapperRect.value.height / 2 - elRect.value.height / 2 + mappedOffset.y;
96
+ break;
97
+ }
98
+ case "right": {
99
+ x = wrapperRect.value.width - mappedOffset.x - elRect.value.width;
100
+ y = wrapperRect.value.height / 2 + mappedOffset.y - elRect.value.height / 2;
101
+ break;
102
+ }
103
+ case "bottom-left": {
104
+ x = mappedOffset.x;
105
+ y = wrapperRect.value.height + mappedOffset.y - elRect.value.height;
106
+ break;
107
+ }
108
+ case "bottom": {
109
+ x = wrapperRect.value.width / 2 + mappedOffset.x - elRect.value.width / 2;
110
+ y = wrapperRect.value.height - mappedOffset.y - elRect.value.height;
111
+ break;
112
+ }
113
+ case "bottom-right": {
114
+ x = wrapperRect.value.width - mappedOffset.x - elRect.value.width;
115
+ y = wrapperRect.value.height - mappedOffset.y - elRect.value.height;
116
+ break;
117
+ }
118
+ }
119
+ return { x: Math.round(x), y: Math.round(y) };
120
+ }
121
+ function cancelInterpolation() {
122
+ if (interpolationIdY.value) {
123
+ cancelAnimationFrame(interpolationIdY.value);
124
+ interpolationIdY.value = void 0;
125
+ }
126
+ if (interpolationIdX.value) {
127
+ cancelAnimationFrame(interpolationIdX.value);
128
+ interpolationIdX.value = void 0;
94
129
  }
95
130
  }
96
131
  function interpolateDragged(args2) {
@@ -102,19 +137,27 @@ export function useDraggableSnap(args) {
102
137
  } = args2;
103
138
  const snapPoint = snapPointsMap.value[`x${x}y${y}`];
104
139
  emitter.emit("beforeSnap", { id: toValue(id), snapPoint });
105
- interpolate({
140
+ cancelInterpolation();
141
+ interpolationIdY.value = interpolate({
106
142
  from: draggedY.value,
107
143
  to: y,
108
144
  duration,
109
145
  easing,
110
- callback: (value) => {
146
+ callback(value) {
111
147
  draggedY.value = value;
112
148
  if (y > x && draggedY.value === y) {
113
149
  emitter.emit("afterSnap", { id: toValue(id), snapPoint });
114
150
  }
151
+ if (draggedY.value === y) {
152
+ lastDraggedY.value = y;
153
+ interpolationIdY.value = void 0;
154
+ }
155
+ },
156
+ interpolationIdCallback(id2) {
157
+ interpolationIdY.value = id2;
115
158
  }
116
159
  });
117
- interpolate({
160
+ interpolationIdX.value = interpolate({
118
161
  from: draggedX.value,
119
162
  to: x,
120
163
  duration,
@@ -124,6 +167,13 @@ export function useDraggableSnap(args) {
124
167
  if (x >= y && draggedX.value === x) {
125
168
  emitter.emit("afterSnap", { id: toValue(id), snapPoint });
126
169
  }
170
+ if (draggedX.value === x) {
171
+ lastDraggedX.value = x;
172
+ interpolationIdX.value = void 0;
173
+ }
174
+ },
175
+ interpolationIdCallback(id2) {
176
+ interpolationIdX.value = id2;
127
177
  }
128
178
  });
129
179
  }
@@ -139,15 +189,18 @@ export function useDraggableSnap(args) {
139
189
  duration
140
190
  });
141
191
  } else {
192
+ cancelInterpolation();
142
193
  draggedX.value = mappedSnapPoint.x;
143
194
  draggedY.value = mappedSnapPoint.y;
195
+ lastDraggedX.value = draggedX.value;
196
+ lastDraggedY.value = draggedY.value;
144
197
  }
145
198
  }
146
199
  activeSnapPoint.value = snapPoint;
147
200
  }
148
201
  return {
202
+ mappedActiveSnapPoint,
149
203
  mappedSnapPoints,
150
- activeSnapPoint,
151
204
  snapPointsMap,
152
205
  mapSnapPoint,
153
206
  interpolateDragged,
@@ -1,5 +1,5 @@
1
1
  import { ref, reactive, toValue } from "vue";
2
- const drawerStateStore = ref([]);
2
+ const draggableStateStore = ref([]);
3
3
  export function useDraggableState(id) {
4
4
  function createState(id2) {
5
5
  const state = {
@@ -16,24 +16,25 @@ export function useDraggableState(id) {
16
16
  draggedX: 0,
17
17
  draggedY: 0,
18
18
  elRect: void 0,
19
- wrapperRect: void 0
19
+ wrapperRect: void 0,
20
+ activeSnapPoint: void 0
20
21
  };
21
22
  return reactive(state);
22
23
  }
23
24
  function addState(id2) {
24
25
  const state = createState(id2);
25
- drawerStateStore.value = [...drawerStateStore.value, state];
26
+ draggableStateStore.value = [...draggableStateStore.value, state];
26
27
  return state;
27
28
  }
28
29
  function initializeState() {
29
- let state = drawerStateStore.value.find((entry) => {
30
+ let state = draggableStateStore.value.find((entry) => {
30
31
  return entry.id === id;
31
32
  });
32
33
  if (!state) state = addState(toValue(id));
33
34
  return state;
34
35
  }
35
36
  function deleteState() {
36
- drawerStateStore.value = drawerStateStore.value.filter(
37
+ draggableStateStore.value = draggableStateStore.value.filter(
37
38
  (x) => x.id !== id
38
39
  );
39
40
  }
@@ -1,5 +1,5 @@
1
1
  import type { RequireAll } from '@maas/vue-equipment/utils';
2
- type Position = 'top-left' | 'top-center' | 'top-right' | 'center-left' | 'center' | 'center-right' | 'bottom-left' | 'bottom-center' | 'bottom-right';
2
+ type Position = 'top-left' | 'top' | 'top-right' | 'left' | 'center' | 'right' | 'bottom-left' | 'bottom' | 'bottom-right';
3
3
  export type Coordinates = {
4
4
  x: number;
5
5
  y: number;
@@ -53,6 +53,7 @@ export interface DraggableState {
53
53
  draggedY: number;
54
54
  elRect: DOMRect | undefined;
55
55
  wrapperRect: DOMRect | undefined;
56
+ activeSnapPoint: DraggableSnapPoint | undefined;
56
57
  }
57
58
  export type DraggableEvents = {
58
59
  beforeSnap: {
@@ -16,7 +16,7 @@ const defaultOptions = {
16
16
  }
17
17
  },
18
18
  initial: {
19
- snapPoint: "center"
19
+ snapPoint: "top-left"
20
20
  },
21
21
  disabled: false
22
22
  };
@@ -1,2 +1,2 @@
1
- declare const _default: import("@nuxt/schema").NuxtModule<import("@nuxt/schema").ModuleOptions, import("@nuxt/schema").ModuleOptions, false>;
1
+ declare const _default: import("nuxt/schema").NuxtModule<import("nuxt/schema").ModuleOptions, import("nuxt/schema").ModuleOptions, false>;
2
2
  export default _default;