@maas/vue-equipment 1.0.0-beta.1 → 1.0.0-beta.10

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 (163) 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.json +1 -1
  6. package/dist/nuxt/module.mjs +9 -2
  7. package/dist/plugins/.turbo/turbo-lint.log +1 -9
  8. package/dist/plugins/MagicAccordion/demo/data/footer.json +1 -1
  9. package/dist/plugins/MagicAccordion/src/components/MagicAccordionContent.vue.d.ts +33 -22
  10. package/dist/plugins/MagicAccordion/src/components/MagicAccordionProvider.vue +2 -2
  11. package/dist/plugins/MagicAccordion/src/components/MagicAccordionProvider.vue.d.ts +12 -21
  12. package/dist/plugins/MagicAccordion/src/components/MagicAccordionTrigger.vue +15 -13
  13. package/dist/plugins/MagicAccordion/src/components/MagicAccordionTrigger.vue.d.ts +23 -59
  14. package/dist/plugins/MagicAccordion/src/components/MagicAccordionView.vue +2 -1
  15. package/dist/plugins/MagicAccordion/src/components/MagicAccordionView.vue.d.ts +17 -22
  16. package/dist/plugins/MagicAccordion/src/composables/private/useAccordionTrigger.d.ts +1 -1
  17. package/dist/plugins/MagicAccordion/src/symbols/index.d.ts +2 -2
  18. package/dist/plugins/MagicCommand/src/components/MagicCommandContent.vue +11 -4
  19. package/dist/plugins/MagicCommand/src/components/MagicCommandContent.vue.d.ts +24 -13
  20. package/dist/plugins/MagicCommand/src/components/MagicCommandDrawer.vue.d.ts +12 -21
  21. package/dist/plugins/MagicCommand/src/components/MagicCommandItem.vue +0 -4
  22. package/dist/plugins/MagicCommand/src/components/MagicCommandItem.vue.d.ts +29 -28
  23. package/dist/plugins/MagicCommand/src/components/MagicCommandModal.vue.d.ts +12 -21
  24. package/dist/plugins/MagicCommand/src/components/MagicCommandProvider.vue +5 -7
  25. package/dist/plugins/MagicCommand/src/components/MagicCommandProvider.vue.d.ts +12 -58
  26. package/dist/plugins/MagicCommand/src/components/MagicCommandRenderer.vue +7 -7
  27. package/dist/plugins/MagicCommand/src/components/MagicCommandTrigger.vue +7 -6
  28. package/dist/plugins/MagicCommand/src/components/MagicCommandTrigger.vue.d.ts +25 -60
  29. package/dist/plugins/MagicCommand/src/components/MagicCommandView.vue +2 -2
  30. package/dist/plugins/MagicCommand/src/components/MagicCommandView.vue.d.ts +15 -22
  31. package/dist/plugins/MagicCommand/src/composables/private/useCommandScroll.d.ts +2 -2
  32. package/dist/plugins/MagicCommand/src/composables/private/useCommandState.mjs +1 -1
  33. package/dist/plugins/MagicCommand/src/composables/private/useCommandTrigger.d.ts +1 -1
  34. package/dist/plugins/MagicCommand/src/symbols/index.d.ts +4 -4
  35. package/dist/plugins/MagicCommand/src/types/index.d.ts +1 -1
  36. package/dist/plugins/MagicCookie/src/components/MagicCookieItem.vue.d.ts +13 -22
  37. package/dist/plugins/MagicCookie/src/components/MagicCookieProvider.vue.d.ts +9 -21
  38. package/dist/plugins/MagicCookie/src/components/MagicCookieView.vue.d.ts +21 -12
  39. package/dist/plugins/MagicCookie/src/symbols/index.d.ts +2 -2
  40. package/dist/plugins/MagicDraggable/src/components/MagicDraggable.vue +18 -24
  41. package/dist/plugins/MagicDraggable/src/components/MagicDraggable.vue.d.ts +94 -23
  42. package/dist/plugins/MagicDraggable/src/composables/private/useDraggableDrag.d.ts +2 -2
  43. package/dist/plugins/MagicDraggable/src/composables/private/useDraggableDrag.mjs +9 -5
  44. package/dist/plugins/MagicDraggable/src/composables/private/useDraggableScrollLock.mjs +34 -14
  45. package/dist/plugins/MagicDraggable/src/composables/private/useDraggableSnap.d.ts +6 -4
  46. package/dist/plugins/MagicDraggable/src/composables/private/useDraggableSnap.mjs +54 -19
  47. package/dist/plugins/MagicDraggable/src/composables/private/useDraggableState.mjs +4 -4
  48. package/dist/plugins/MagicDraggable/src/types/index.d.ts +1 -1
  49. package/dist/plugins/MagicDraggable/src/utils/defaultOptions.mjs +1 -1
  50. package/dist/plugins/MagicDrawer/src/components/MagicDrawer.vue +33 -24
  51. package/dist/plugins/MagicDrawer/src/components/MagicDrawer.vue.d.ts +165 -24
  52. package/dist/plugins/MagicDrawer/src/composables/private/useDrawerDOM.mjs +34 -14
  53. package/dist/plugins/MagicDrawer/src/composables/private/useDrawerDrag.d.ts +2 -2
  54. package/dist/plugins/MagicDrawer/src/composables/private/useDrawerDrag.mjs +3 -3
  55. package/dist/plugins/MagicDrawer/src/composables/private/useDrawerGuards.d.ts +1 -1
  56. package/dist/plugins/MagicDrawer/src/composables/private/useDrawerGuards.mjs +28 -10
  57. package/dist/plugins/MagicDrawer/src/composables/private/useDrawerProgress.d.ts +2 -2
  58. package/dist/plugins/MagicDrawer/src/composables/private/useDrawerSnap.d.ts +3 -3
  59. package/dist/plugins/MagicDrawer/src/composables/private/useDrawerSnap.mjs +16 -14
  60. package/dist/plugins/MagicDrawer/src/composables/private/useDrawerWheel.d.ts +1 -1
  61. package/dist/plugins/MagicMarquee/src/components/MagicMarquee.vue +15 -15
  62. package/dist/plugins/MagicMarquee/src/components/MagicMarquee.vue.d.ts +14 -25
  63. package/dist/plugins/MagicMarquee/src/composables/private/useMarqueeApi.d.ts +1 -1
  64. package/dist/plugins/MagicMarquee/src/composables/private/useMarqueeApi.mjs +8 -2
  65. package/dist/plugins/MagicMenu/src/components/MagicMenuChannel.vue +4 -5
  66. package/dist/plugins/MagicMenu/src/components/MagicMenuChannel.vue.d.ts +18 -21
  67. package/dist/plugins/MagicMenu/src/components/MagicMenuContent.vue +3 -6
  68. package/dist/plugins/MagicMenu/src/components/MagicMenuContent.vue.d.ts +41 -24
  69. package/dist/plugins/MagicMenu/src/components/MagicMenuFloat.vue +5 -7
  70. package/dist/plugins/MagicMenu/src/components/MagicMenuFloat.vue.d.ts +40 -25
  71. package/dist/plugins/MagicMenu/src/components/MagicMenuItem.vue +3 -14
  72. package/dist/plugins/MagicMenu/src/components/MagicMenuItem.vue.d.ts +31 -28
  73. package/dist/plugins/MagicMenu/src/components/MagicMenuProvider.vue +19 -8
  74. package/dist/plugins/MagicMenu/src/components/MagicMenuProvider.vue.d.ts +12 -58
  75. package/dist/plugins/MagicMenu/src/components/MagicMenuRemote.vue +28 -38
  76. package/dist/plugins/MagicMenu/src/components/MagicMenuRemote.vue.d.ts +19 -23
  77. package/dist/plugins/MagicMenu/src/components/MagicMenuTrigger.vue +29 -19
  78. package/dist/plugins/MagicMenu/src/components/MagicMenuTrigger.vue.d.ts +27 -60
  79. package/dist/plugins/MagicMenu/src/components/MagicMenuView.vue +2 -2
  80. package/dist/plugins/MagicMenu/src/components/MagicMenuView.vue.d.ts +15 -22
  81. package/dist/plugins/MagicMenu/src/composables/private/useMenuCallback.mjs +1 -1
  82. package/dist/plugins/MagicMenu/src/composables/private/useMenuChannel.mjs +15 -5
  83. package/dist/plugins/MagicMenu/src/composables/private/useMenuCursor.d.ts +3 -3
  84. package/dist/plugins/MagicMenu/src/composables/private/useMenuCursor.mjs +4 -4
  85. package/dist/plugins/MagicMenu/src/composables/private/useMenuDOM.mjs +35 -15
  86. package/dist/plugins/MagicMenu/src/composables/private/useMenuTrigger.d.ts +1 -1
  87. package/dist/plugins/MagicMenu/src/composables/private/useMenuView.mjs +18 -6
  88. package/dist/plugins/MagicMenu/src/symbols/index.d.ts +4 -4
  89. package/dist/plugins/MagicMenu/src/utils/modeDelayDefaults.d.ts +2 -2
  90. package/dist/plugins/MagicMenu/src/utils/modeDelayDefaults.mjs +2 -2
  91. package/dist/plugins/MagicModal/src/components/MagicModal.vue +9 -9
  92. package/dist/plugins/MagicModal/src/components/MagicModal.vue.d.ts +44 -22
  93. package/dist/plugins/MagicModal/src/composables/private/useModalDOM.mjs +34 -14
  94. package/dist/plugins/MagicNoise/src/components/MagicNoise.vue +14 -14
  95. package/dist/plugins/MagicNoise/src/components/MagicNoise.vue.d.ts +1 -10
  96. package/dist/plugins/MagicNoise/src/composables/private/useNoiseApi.d.ts +3 -3
  97. package/dist/plugins/MagicNoise/src/composables/private/useNoiseApi.mjs +2 -2
  98. package/dist/plugins/MagicPie/index.d.ts +7 -0
  99. package/dist/plugins/MagicPie/index.mjs +8 -0
  100. package/dist/plugins/MagicPie/nuxt.d.ts +2 -0
  101. package/dist/plugins/MagicPie/nuxt.mjs +23 -0
  102. package/dist/plugins/MagicPie/src/components/MagicPie.vue +202 -0
  103. package/dist/plugins/MagicPie/src/components/MagicPie.vue.d.ts +7 -0
  104. package/dist/plugins/MagicPie/src/composables/private/usePieState.d.ts +6 -0
  105. package/dist/plugins/MagicPie/src/composables/private/usePieState.mjs +33 -0
  106. package/dist/plugins/MagicPie/src/composables/useMagicPie.d.ts +13 -0
  107. package/dist/plugins/MagicPie/src/composables/useMagicPie.mjs +43 -0
  108. package/dist/plugins/MagicPie/src/types/index.d.ts +9 -0
  109. package/dist/plugins/MagicPie/src/types/index.mjs +0 -0
  110. package/dist/plugins/MagicPlayer/src/components/MagicPlayerAudio.vue +14 -8
  111. package/dist/plugins/MagicPlayer/src/components/MagicPlayerAudioControls.vue +32 -38
  112. package/dist/plugins/MagicPlayer/src/components/MagicPlayerAudioControls.vue.d.ts +27 -26
  113. package/dist/plugins/MagicPlayer/src/components/MagicPlayerDisplayTime.vue.d.ts +1 -10
  114. package/dist/plugins/MagicPlayer/src/components/MagicPlayerMuxPopover.vue +19 -8
  115. package/dist/plugins/MagicPlayer/src/components/MagicPlayerMuxPopover.vue.d.ts +1 -10
  116. package/dist/plugins/MagicPlayer/src/components/MagicPlayerOverlay.vue +2 -2
  117. package/dist/plugins/MagicPlayer/src/components/MagicPlayerOverlay.vue.d.ts +29 -14
  118. package/dist/plugins/MagicPlayer/src/components/MagicPlayerPoster.vue.d.ts +13 -11
  119. package/dist/plugins/MagicPlayer/src/components/MagicPlayerProvider.vue +3 -4
  120. package/dist/plugins/MagicPlayer/src/components/MagicPlayerProvider.vue.d.ts +23 -23
  121. package/dist/plugins/MagicPlayer/src/components/MagicPlayerVideo.vue +3 -4
  122. package/dist/plugins/MagicPlayer/src/components/MagicPlayerVideoControls.vue +24 -25
  123. package/dist/plugins/MagicPlayer/src/components/MagicPlayerVideoControls.vue.d.ts +61 -33
  124. package/dist/plugins/MagicPlayer/src/composables/private/usePlayerAudioApi.d.ts +2 -2
  125. package/dist/plugins/MagicPlayer/src/composables/private/usePlayerAudioApi.mjs +3 -3
  126. package/dist/plugins/MagicPlayer/src/composables/private/usePlayerControlsApi.d.ts +10 -10
  127. package/dist/plugins/MagicPlayer/src/composables/private/usePlayerControlsApi.mjs +15 -9
  128. package/dist/plugins/MagicPlayer/src/composables/private/usePlayerMediaApi.d.ts +13 -13
  129. package/dist/plugins/MagicPlayer/src/composables/private/usePlayerMediaApi.mjs +18 -11
  130. package/dist/plugins/MagicPlayer/src/composables/private/usePlayerRuntime.d.ts +3 -3
  131. package/dist/plugins/MagicPlayer/src/composables/private/usePlayerRuntime.mjs +3 -3
  132. package/dist/plugins/MagicPlayer/src/composables/private/usePlayerVideoApi.d.ts +6 -6
  133. package/dist/plugins/MagicPlayer/src/composables/private/usePlayerVideoApi.mjs +4 -4
  134. package/dist/plugins/MagicPlayer/src/composables/useMagicPlayer.d.ts +20 -20
  135. package/dist/plugins/MagicScroll/src/components/MagicScrollCollision.vue +17 -8
  136. package/dist/plugins/MagicScroll/src/components/MagicScrollCollision.vue.d.ts +9 -23
  137. package/dist/plugins/MagicScroll/src/components/MagicScrollMotion.vue +11 -11
  138. package/dist/plugins/MagicScroll/src/components/MagicScrollMotion.vue.d.ts +9 -23
  139. package/dist/plugins/MagicScroll/src/components/MagicScrollProvider.vue.d.ts +45 -37
  140. package/dist/plugins/MagicScroll/src/components/MagicScrollScene.vue +18 -10
  141. package/dist/plugins/MagicScroll/src/components/MagicScrollScene.vue.d.ts +13 -24
  142. package/dist/plugins/MagicScroll/src/composables/private/useCollisionDetection.d.ts +2 -2
  143. package/dist/plugins/MagicScroll/src/composables/private/useCollisionDetection.mjs +3 -3
  144. package/dist/plugins/MagicScroll/src/composables/private/useScrollApi.mjs +14 -4
  145. package/dist/plugins/MagicScroll/src/symbols/index.d.ts +1 -1
  146. package/dist/plugins/MagicToast/src/components/MagicToastProvider.vue +23 -29
  147. package/dist/plugins/MagicToast/src/components/MagicToastProvider.vue.d.ts +1 -10
  148. package/dist/plugins/MagicToast/src/components/MagicToastView.vue +8 -11
  149. package/dist/plugins/MagicToast/src/components/MagicToastView.vue.d.ts +24 -23
  150. package/dist/plugins/MagicToast/src/composables/private/useToastCallback.d.ts +2 -2
  151. package/dist/plugins/MagicToast/src/composables/private/useToastCallback.mjs +5 -5
  152. package/dist/plugins/MagicToast/src/composables/private/useToastDrag.mjs +22 -22
  153. package/dist/plugins/MagicToast/src/composables/private/useToastScrollLock.mjs +33 -15
  154. package/dist/plugins/MagicToast/src/composables/useMagicToast.d.ts +1 -0
  155. package/dist/plugins/MagicToast/src/composables/useMagicToast.mjs +10 -2
  156. package/dist/plugins/MagicToast/src/types/index.d.ts +1 -1
  157. package/dist/plugins/MagicToast/src/utils/defaultOptions.mjs +1 -1
  158. package/dist/plugins/index.d.ts +1 -0
  159. package/dist/plugins/index.mjs +1 -0
  160. package/dist/utils/index.d.ts +9 -4
  161. package/dist/utils/index.js +39 -3
  162. package/dist/utils/index.js.map +1 -1
  163. package/package.json +16 -7
@@ -0,0 +1,202 @@
1
+ <script>
2
+ import { defineComponent as _defineComponent } from "vue";
3
+ import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from "vue";
4
+ const _hoisted_1 = ["data-flip", "data-id"];
5
+ const _hoisted_2 = {
6
+ id: "magic-pie__svg",
7
+ viewBox: "0 0 100 100",
8
+ xmlns: "http://www.w3.org/2000/svg"
9
+ };
10
+ const _hoisted_3 = { mask: "url(#magic-pie__mask)" };
11
+ const _hoisted_4 = ["d"];
12
+ import { computed, toRefs, onBeforeUnmount } from "vue";
13
+ import { usePieState } from "../composables/private/usePieState";
14
+ export default /* @__PURE__ */ _defineComponent({
15
+ __name: "MagicPie",
16
+ props: {
17
+ id: { type: String, required: true },
18
+ options: { type: Object, required: false }
19
+ },
20
+ setup(__props) {
21
+ const { initializeState, deleteState } = usePieState(__props.id);
22
+ const state = initializeState();
23
+ const { percentage } = toRefs(state);
24
+ function generatePath(points) {
25
+ if (points.length < 2) {
26
+ throw new Error("At least two points are required to generate a path.");
27
+ }
28
+ let path2 = `M ${points[0][0]} ${points[0][1]}`;
29
+ for (let i = 1; i < points.length; i++) {
30
+ path2 += ` L ${points[i][0]} ${points[i][1]}`;
31
+ }
32
+ return path2;
33
+ }
34
+ function generatePie(percentage2, flip) {
35
+ if (percentage2 < 0 || percentage2 > 100) {
36
+ throw new Error("percentage needs to be between 0 and 100");
37
+ }
38
+ const size = 100;
39
+ const points = [
40
+ [size / 2, size / 2],
41
+ [size / 2, 0]
42
+ ];
43
+ function getEndpoint(percentage3, size2) {
44
+ const circumference = size2 * 4;
45
+ const distance = percentage3 / 100 * circumference;
46
+ if (distance === 0) {
47
+ return [size2 / 2, 0];
48
+ }
49
+ const position = Math.floor(distance / (size2 / 2)) % 8;
50
+ const remainingDistance = distance % (size2 / 2);
51
+ let x = 0;
52
+ let y = 0;
53
+ switch (position) {
54
+ case 0:
55
+ x = size2 / 2 + remainingDistance;
56
+ y = 0;
57
+ break;
58
+ case 1:
59
+ x = size2;
60
+ y = remainingDistance;
61
+ break;
62
+ case 2:
63
+ x = size2;
64
+ y = size2 / 2 + remainingDistance;
65
+ break;
66
+ case 3:
67
+ x = size2 - remainingDistance;
68
+ y = size2;
69
+ break;
70
+ case 4:
71
+ x = size2 / 2 - remainingDistance;
72
+ y = size2;
73
+ break;
74
+ case 5:
75
+ x = 0;
76
+ y = size2 - remainingDistance;
77
+ break;
78
+ case 6:
79
+ x = 0;
80
+ y = size2 / 2 - remainingDistance;
81
+ break;
82
+ case 7:
83
+ x = remainingDistance;
84
+ y = 0;
85
+ }
86
+ return [x, y];
87
+ }
88
+ if (flip) {
89
+ if (100 - percentage2 >= 12.5) {
90
+ points.push([0, 0]);
91
+ }
92
+ if (100 - percentage2 >= 25) {
93
+ points.push([0, size / 2]);
94
+ }
95
+ if (100 - percentage2 >= 37.5) {
96
+ points.push([0, size]);
97
+ }
98
+ if (100 - percentage2 >= 50) {
99
+ points.push([size / 2, size]);
100
+ }
101
+ if (100 - percentage2 >= 62.5) {
102
+ points.push([size, size]);
103
+ }
104
+ if (100 - percentage2 >= 75) {
105
+ points.push([size, size / 2]);
106
+ }
107
+ if (100 - percentage2 >= 87.5) {
108
+ points.push([size, 0]);
109
+ }
110
+ } else {
111
+ if (percentage2 >= 12.5) {
112
+ points.push([size, 0]);
113
+ }
114
+ if (percentage2 >= 25) {
115
+ points.push([size, size / 2]);
116
+ }
117
+ if (percentage2 >= 37.5) {
118
+ points.push([size, size]);
119
+ }
120
+ if (percentage2 >= 50) {
121
+ points.push([size / 2, size]);
122
+ }
123
+ if (percentage2 >= 62.5) {
124
+ points.push([0, size]);
125
+ }
126
+ if (percentage2 >= 75) {
127
+ points.push([0, size / 2]);
128
+ }
129
+ if (percentage2 >= 87.5) {
130
+ points.push([0, 0]);
131
+ }
132
+ }
133
+ points.push(getEndpoint(percentage2, size));
134
+ return generatePath(points);
135
+ }
136
+ const path = computed(() => {
137
+ return generatePie(percentage.value, __props.options?.flip);
138
+ });
139
+ onBeforeUnmount(() => {
140
+ deleteState();
141
+ });
142
+ return (_ctx, _cache) => {
143
+ return _openBlock(), _createElementBlock("div", {
144
+ class: "magic-pie",
145
+ "data-flip": _ctx.options?.flip,
146
+ "data-id": _ctx.id
147
+ }, [
148
+ (_openBlock(), _createElementBlock("svg", _hoisted_2, [
149
+ _cache[1] || (_cache[1] = _createElementVNode(
150
+ "mask",
151
+ { id: "magic-pie__mask" },
152
+ [
153
+ _createElementVNode("circle", {
154
+ cx: "50",
155
+ cy: "50",
156
+ r: "50",
157
+ fill: "white"
158
+ })
159
+ ],
160
+ -1
161
+ /* HOISTED */
162
+ )),
163
+ _createElementVNode("g", _hoisted_3, [
164
+ _cache[0] || (_cache[0] = _createElementVNode(
165
+ "rect",
166
+ {
167
+ width: "100",
168
+ height: "100"
169
+ },
170
+ null,
171
+ -1
172
+ /* HOISTED */
173
+ )),
174
+ _createElementVNode("path", { d: path.value }, null, 8, _hoisted_4)
175
+ ])
176
+ ]))
177
+ ], 8, _hoisted_1);
178
+ };
179
+ }
180
+ });
181
+ </script>
182
+
183
+ <style>
184
+ .magic-pie {
185
+ position: relative;
186
+
187
+ & path {
188
+ fill: var(--magic-pie-foreground, currentColor);
189
+ }
190
+
191
+ & rect {
192
+ fill: var(--magic-pie-background, transparent);
193
+ }
194
+ }
195
+
196
+ #magic-pie__svg {
197
+ width: 100%;
198
+ height: 100%;
199
+ margin-left: auto;
200
+ margin-right: auto;
201
+ }
202
+ </style>
@@ -0,0 +1,7 @@
1
+ import type { MagicPieOptions } from '../types/index.js';
2
+ interface MagicPieProps {
3
+ id: string;
4
+ options?: MagicPieOptions;
5
+ }
6
+ declare const _default: import("vue").DefineComponent<MagicPieProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<MagicPieProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
7
+ export default _default;
@@ -0,0 +1,6 @@
1
+ import { type MaybeRef } from 'vue';
2
+ import type { PieState } from '../../types/index.js';
3
+ export declare function usePieState(id: MaybeRef<string>): {
4
+ initializeState: () => PieState;
5
+ deleteState: () => void;
6
+ };
@@ -0,0 +1,33 @@
1
+ import { ref, reactive, toValue } from "vue";
2
+ const pieStateStore = ref([]);
3
+ export function usePieState(id) {
4
+ function createState(id2) {
5
+ const state = {
6
+ id: id2,
7
+ percentage: 0,
8
+ interpolationId: void 0
9
+ };
10
+ return reactive(state);
11
+ }
12
+ function addState(id2) {
13
+ const state = createState(id2);
14
+ pieStateStore.value = [...pieStateStore.value, state];
15
+ return state;
16
+ }
17
+ function initializeState() {
18
+ let state = pieStateStore.value.find((entry) => {
19
+ return entry.id === id;
20
+ });
21
+ if (!state) state = addState(toValue(id));
22
+ return state;
23
+ }
24
+ function deleteState() {
25
+ pieStateStore.value = pieStateStore.value.filter(
26
+ (x) => x.id !== id
27
+ );
28
+ }
29
+ return {
30
+ initializeState,
31
+ deleteState
32
+ };
33
+ }
@@ -0,0 +1,13 @@
1
+ import { type MaybeRef } from 'vue';
2
+ interface InterpolatePercentageArgs {
3
+ value: number;
4
+ duration: number;
5
+ easing?: (t: number) => number;
6
+ }
7
+ export declare function useMagicPie(id: MaybeRef<string>): {
8
+ percentage: import("vue").Ref<number, number>;
9
+ setPercentage: (value: number) => void;
10
+ interpolatePercentage: (args: InterpolatePercentageArgs) => void;
11
+ cancelInterpolatePercentage: () => void;
12
+ };
13
+ export {};
@@ -0,0 +1,43 @@
1
+ import { toValue, toRefs } from "vue";
2
+ import { interpolate, linear } from "@maas/vue-equipment/utils";
3
+ import { usePieState } from "./private/usePieState.mjs";
4
+ export function useMagicPie(id) {
5
+ const { initializeState } = usePieState(toValue(id));
6
+ const state = initializeState();
7
+ const { percentage, interpolationId } = toRefs(state);
8
+ function setPercentage(value) {
9
+ percentage.value = Math.min(Math.max(0, value), 100);
10
+ }
11
+ function interpolatePercentage(args) {
12
+ const { value, duration = 1e3, easing = linear } = args;
13
+ const mappedValue = Math.min(Math.max(0, value), 100);
14
+ if (interpolationId.value) {
15
+ cancelAnimationFrame(interpolationId.value);
16
+ }
17
+ const mappedDuration = duration - duration * percentage.value / 100;
18
+ interpolationId.value = interpolate({
19
+ from: percentage.value,
20
+ to: mappedValue,
21
+ duration: mappedDuration,
22
+ easing,
23
+ callback: (value2) => {
24
+ percentage.value = value2;
25
+ },
26
+ interpolationIdCallback: (id2) => {
27
+ interpolationId.value = id2;
28
+ }
29
+ });
30
+ }
31
+ function cancelInterpolatePercentage() {
32
+ if (interpolationId.value) {
33
+ cancelAnimationFrame(interpolationId.value);
34
+ interpolationId.value = void 0;
35
+ }
36
+ }
37
+ return {
38
+ percentage,
39
+ setPercentage,
40
+ interpolatePercentage,
41
+ cancelInterpolatePercentage
42
+ };
43
+ }
@@ -0,0 +1,9 @@
1
+ export interface MagicPieOptions {
2
+ flip?: boolean;
3
+ }
4
+ export interface PieState {
5
+ id: string;
6
+ percentage: number;
7
+ interpolationId: number | undefined;
8
+ }
9
+ export type PiePoint = [number, number];
File without changes
@@ -1,7 +1,17 @@
1
1
  <script>
2
2
  import { defineComponent as _defineComponent } from "vue";
3
3
  import { openBlock as _openBlock, createElementBlock as _createElementBlock } from "vue";
4
- import { ref, inject, onMounted, onBeforeUnmount } from "vue";
4
+ const _hoisted_1 = {
5
+ ref: "el",
6
+ class: "magic-player-audio"
7
+ };
8
+ import {
9
+ useTemplateRef,
10
+ shallowRef,
11
+ inject,
12
+ onMounted,
13
+ onBeforeUnmount
14
+ } from "vue";
5
15
  import { useIntersectionObserver } from "@vueuse/core";
6
16
  import { usePlayerAudioApi } from "../composables/private/usePlayerAudioApi";
7
17
  import { usePlayerMediaApi } from "../composables/private/usePlayerMediaApi";
@@ -18,8 +28,8 @@ export default /* @__PURE__ */ _defineComponent({
18
28
  if (!injectedOptions) {
19
29
  throw new Error("MagicPlayerVideo must be used within a MagicPlayerProvider");
20
30
  }
21
- const elRef = ref(void 0);
22
- const pausedByIntersection = ref(false);
31
+ const elRef = useTemplateRef("el");
32
+ const pausedByIntersection = shallowRef(false);
23
33
  const { initialize, destroy } = usePlayerRuntime({
24
34
  id: injectedId,
25
35
  mediaRef: elRef,
@@ -57,11 +67,7 @@ export default /* @__PURE__ */ _defineComponent({
57
67
  return (_ctx, _cache) => {
58
68
  return _openBlock(), _createElementBlock(
59
69
  "audio",
60
- {
61
- ref_key: "elRef",
62
- ref: elRef,
63
- class: "magic-player-audio"
64
- },
70
+ _hoisted_1,
65
71
  null,
66
72
  512
67
73
  /* NEED_PATCH */
@@ -4,22 +4,30 @@ import { unref as _unref, renderSlot as _renderSlot, createVNode as _createVNode
4
4
  const _hoisted_1 = ["data-touched", "data-playing", "data-paused", "data-waiting", "data-idle", "data-hover"];
5
5
  const _hoisted_2 = { class: "magic-player-audio-controls__bar" };
6
6
  const _hoisted_3 = {
7
+ ref: "bar",
8
+ class: "magic-player-audio-controls__bar--inner"
9
+ };
10
+ const _hoisted_4 = {
7
11
  class: "magic-player-audio-controls__item -shrink-0",
8
12
  "data-slot": "play-toggle"
9
13
  };
10
- const _hoisted_4 = {
14
+ const _hoisted_5 = {
11
15
  class: "magic-player-audio-controls__item -shrink-0",
12
16
  "data-slot": "display-time-current"
13
17
  };
14
- const _hoisted_5 = {
18
+ const _hoisted_6 = {
15
19
  class: "magic-player-audio-controls__item -grow",
16
20
  "data-slot": "timeline"
17
21
  };
18
- const _hoisted_6 = {
22
+ const _hoisted_7 = {
23
+ ref: "track",
24
+ class: "magic-player-audio-controls__timeline"
25
+ };
26
+ const _hoisted_8 = {
19
27
  class: "magic-player-audio-controls__item -shrink-0",
20
28
  "data-slot": "display-time-duration"
21
29
  };
22
- import { computed, ref, inject, provide } from "vue";
30
+ import { computed, inject, provide, useTemplateRef } from "vue";
23
31
  import { useIdle } from "@vueuse/core";
24
32
  import { usePlayerMediaApi } from "../composables/private/usePlayerMediaApi";
25
33
  import { usePlayerAudioApi } from "../composables/private/usePlayerAudioApi";
@@ -30,31 +38,31 @@ import { MagicPlayerInstanceId } from "../symbols";
30
38
  export default /* @__PURE__ */ _defineComponent({
31
39
  __name: "MagicPlayerAudioControls",
32
40
  props: {
33
- id: { type: String, required: false }
41
+ instanceId: { type: String, required: false }
34
42
  },
35
43
  setup(__props) {
36
- const instanceId = inject(MagicPlayerInstanceId, void 0);
37
- const mappedId = computed(() => __props.id ?? instanceId);
38
- if (!mappedId.value) {
44
+ const injectedInstanceId = inject(MagicPlayerInstanceId, void 0);
45
+ const mappedInstanceId = computed(() => __props.instanceId ?? injectedInstanceId);
46
+ if (!mappedInstanceId.value) {
39
47
  throw new Error(
40
- "MagicAudioPlayerControls must be nested inside MagicAudioPlayer or be passed an id as a prop."
48
+ "MagicAudioPlayerControls must be nested inside MagicAudioPlayer or an instanceId must be provided."
41
49
  );
42
50
  }
43
- const barRef = ref(void 0);
44
- const trackRef = ref(void 0);
51
+ const barRef = useTemplateRef("bar");
52
+ const trackRef = useTemplateRef("track");
45
53
  const { playing, waiting } = usePlayerMediaApi({
46
- id: mappedId.value
54
+ id: mappedInstanceId.value
47
55
  });
48
56
  const { play, pause, touched, mouseEntered } = usePlayerAudioApi({
49
- id: mappedId.value
57
+ id: mappedInstanceId.value
50
58
  });
51
59
  usePlayerControlsApi({
52
- id: mappedId.value,
60
+ id: mappedInstanceId.value,
53
61
  barRef,
54
62
  trackRef
55
63
  });
56
64
  const { idle } = useIdle(3e3);
57
- provide(MagicPlayerInstanceId, mappedId.value);
65
+ provide(MagicPlayerInstanceId, mappedInstanceId.value);
58
66
  return (_ctx, _cache) => {
59
67
  const _component_magic_player_display_time = _resolveComponent("magic-player-display-time");
60
68
  const _component_magic_player_timeline = _resolveComponent("magic-player-timeline");
@@ -70,13 +78,9 @@ export default /* @__PURE__ */ _defineComponent({
70
78
  _createElementVNode("div", _hoisted_2, [
71
79
  _createElementVNode(
72
80
  "div",
73
- {
74
- ref_key: "barRef",
75
- ref: barRef,
76
- class: "magic-player-audio-controls__bar--inner"
77
- },
81
+ _hoisted_3,
78
82
  [
79
- _createElementVNode("div", _hoisted_3, [
83
+ _createElementVNode("div", _hoisted_4, [
80
84
  !_unref(playing) ? (_openBlock(), _createElementBlock("button", {
81
85
  key: 0,
82
86
  onClick: _cache[0] || (_cache[0] = //@ts-ignore
@@ -95,32 +99,22 @@ export default /* @__PURE__ */ _defineComponent({
95
99
  ])
96
100
  ]))
97
101
  ]),
98
- _createElementVNode("div", _hoisted_4, [
99
- _createVNode(_component_magic_player_display_time, {
100
- id: _ctx.id,
101
- type: "current"
102
- }, null, 8, ["id"])
103
- ]),
104
102
  _createElementVNode("div", _hoisted_5, [
103
+ _createVNode(_component_magic_player_display_time, { type: "current" })
104
+ ]),
105
+ _createElementVNode("div", _hoisted_6, [
105
106
  _createElementVNode(
106
107
  "div",
107
- {
108
- ref_key: "trackRef",
109
- ref: trackRef,
110
- class: "magic-player-audio-controls__timeline"
111
- },
108
+ _hoisted_7,
112
109
  [
113
- _createVNode(_component_magic_player_timeline, { id: _ctx.id }, null, 8, ["id"])
110
+ _createVNode(_component_magic_player_timeline)
114
111
  ],
115
112
  512
116
113
  /* NEED_PATCH */
117
114
  )
118
115
  ]),
119
- _createElementVNode("div", _hoisted_6, [
120
- _createVNode(_component_magic_player_display_time, {
121
- id: _ctx.id,
122
- type: "duration"
123
- }, null, 8, ["id"])
116
+ _createElementVNode("div", _hoisted_8, [
117
+ _createVNode(_component_magic_player_display_time, { type: "duration" })
124
118
  ])
125
119
  ],
126
120
  512
@@ -1,32 +1,33 @@
1
+ import IconPlay from './icons/Play.vue.js';
2
+ import IconPause from './icons/Pause.vue.js';
1
3
  interface MagicAudioPlayerControlsProps {
2
- id?: string;
4
+ instanceId?: string;
3
5
  }
4
- declare function __VLS_template(): {
5
- attrs: Partial<{}>;
6
- slots: {
7
- playIcon?(_: {}): any;
8
- pauseIcon?(_: {}): any;
9
- };
10
- refs: {
11
- barRef: HTMLDivElement;
12
- trackRef: HTMLDivElement;
13
- };
14
- rootEl: HTMLDivElement;
15
- };
16
- type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
17
- declare const __VLS_component: import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_TypePropsToOption<MagicAudioPlayerControlsProps>>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_TypePropsToOption<MagicAudioPlayerControlsProps>>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
18
- declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
6
+ declare const playing: import("vue").ShallowRef<boolean, boolean>, waiting: import("vue").ShallowRef<boolean, boolean>;
7
+ declare const play: () => void, pause: () => void, touched: import("vue").ShallowRef<boolean, boolean>, mouseEntered: import("vue").ShallowRef<boolean, boolean>;
8
+ declare const idle: import("vue").Ref<boolean, boolean>;
9
+ declare const __VLS_ctx: InstanceType<__VLS_PickNotAny<typeof __VLS_self, new () => {}>>;
10
+ declare var __VLS_1: {}, __VLS_6: {};
11
+ type __VLS_Slots = __VLS_PrettifyGlobal<__VLS_OmitStringIndex<typeof __VLS_ctx.$slots> & {
12
+ playIcon?: (props: typeof __VLS_1) => any;
13
+ } & {
14
+ pauseIcon?: (props: typeof __VLS_6) => any;
15
+ }>;
16
+ declare const __VLS_self: import("vue").DefineComponent<MagicAudioPlayerControlsProps, {
17
+ IconPlay: typeof IconPlay;
18
+ IconPause: typeof IconPause;
19
+ playing: typeof playing;
20
+ waiting: typeof waiting;
21
+ play: typeof play;
22
+ pause: typeof pause;
23
+ touched: typeof touched;
24
+ mouseEntered: typeof mouseEntered;
25
+ idle: typeof idle;
26
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<MagicAudioPlayerControlsProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
27
+ declare const __VLS_component: import("vue").DefineComponent<MagicAudioPlayerControlsProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<MagicAudioPlayerControlsProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
28
+ declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
19
29
  export default _default;
20
- type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
21
- type __VLS_TypePropsToOption<T> = {
22
- [K in keyof T]-?: {} extends Pick<T, K> ? {
23
- type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
24
- } : {
25
- type: import('vue').PropType<T[K]>;
26
- required: true;
27
- };
28
- };
29
- type __VLS_WithTemplateSlots<T, S> = T & {
30
+ type __VLS_WithSlots<T, S> = T & {
30
31
  new (): {
31
32
  $slots: S;
32
33
  };
@@ -1,14 +1,5 @@
1
1
  interface MagicPlayerDisplayTimeProps {
2
2
  type?: 'current' | 'remaining' | 'duration';
3
3
  }
4
- declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_TypePropsToOption<MagicPlayerDisplayTimeProps>>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_TypePropsToOption<MagicPlayerDisplayTimeProps>>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
4
+ declare const _default: import("vue").DefineComponent<MagicPlayerDisplayTimeProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<MagicPlayerDisplayTimeProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
5
5
  export default _default;
6
- type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
7
- type __VLS_TypePropsToOption<T> = {
8
- [K in keyof T]-?: {} extends Pick<T, K> ? {
9
- type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
10
- } : {
11
- type: import('vue').PropType<T[K]>;
12
- required: true;
13
- };
14
- };
@@ -2,7 +2,14 @@
2
2
  import { defineComponent as _defineComponent } from "vue";
3
3
  import { createElementVNode as _createElementVNode, normalizeStyle as _normalizeStyle, openBlock as _openBlock, createElementBlock as _createElementBlock } from "vue";
4
4
  const _hoisted_1 = ["width", "height"];
5
- import { shallowRef, onMounted, watch, computed, inject } from "vue";
5
+ import {
6
+ shallowRef,
7
+ onMounted,
8
+ watch,
9
+ computed,
10
+ inject,
11
+ useTemplateRef
12
+ } from "vue";
6
13
  import { useDevicePixelRatio } from "@vueuse/core";
7
14
  import { usePlayerControlsApi } from "../composables/private/usePlayerControlsApi";
8
15
  import { MagicPlayerInstanceId, MagicPlayerOptionsKey } from "../symbols";
@@ -21,7 +28,7 @@ export default /* @__PURE__ */ _defineComponent({
21
28
  }
22
29
  const { seekedTime } = usePlayerControlsApi({ id: instanceId });
23
30
  const { pixelRatio } = useDevicePixelRatio();
24
- const canvasRef = shallowRef();
31
+ const canvasRef = useTemplateRef("canvas");
25
32
  const storyboard = shallowRef();
26
33
  let context = void 0;
27
34
  let image = void 0;
@@ -35,12 +42,17 @@ export default /* @__PURE__ */ _defineComponent({
35
42
  });
36
43
  function getMuxId(url) {
37
44
  const match = url?.match(/mux\.com\/([^\/]+)/);
38
- return match?.[1];
45
+ return match?.[1]?.replace(/\.(m3u8|mp4)$/, "");
39
46
  }
40
47
  async function init() {
41
48
  const parsedPlaybackId = getMuxId(injectedOptions?.src);
42
49
  const mappedPlaybackId = __props.playbackId ?? parsedPlaybackId;
43
- if (!mappedPlaybackId) return;
50
+ if (!mappedPlaybackId) {
51
+ console.error(
52
+ "MagicPlayerMuxPopover must be nested inside MagicPlayerProvider or a playbackId must be provided"
53
+ );
54
+ return;
55
+ }
44
56
  try {
45
57
  storyboard.value = await fetch(
46
58
  `https://image.mux.com/${mappedPlaybackId}/storyboard.json`
@@ -49,8 +61,8 @@ export default /* @__PURE__ */ _defineComponent({
49
61
  image = new Image();
50
62
  image.src = storyboard.value.url;
51
63
  await image.decode();
52
- context = canvasRef.value.getContext("2d");
53
- context.drawImage(image, 0, 0);
64
+ context = canvasRef.value?.getContext("2d");
65
+ context?.drawImage(image, 0, 0);
54
66
  } catch (e) {
55
67
  console.error("Can not initialize timeine preview.", e);
56
68
  }
@@ -95,8 +107,7 @@ export default /* @__PURE__ */ _defineComponent({
95
107
  },
96
108
  [
97
109
  _createElementVNode("canvas", {
98
- ref_key: "canvasRef",
99
- ref: canvasRef,
110
+ ref: "canvas",
100
111
  width: storyboard.value?.tile_width,
101
112
  height: storyboard.value?.tile_height
102
113
  }, null, 8, _hoisted_1)
@@ -1,14 +1,5 @@
1
1
  interface MagicPlayerMuxPopoverProps {
2
2
  playbackId?: string;
3
3
  }
4
- declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_TypePropsToOption<MagicPlayerMuxPopoverProps>>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_TypePropsToOption<MagicPlayerMuxPopoverProps>>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
4
+ declare const _default: import("vue").DefineComponent<MagicPlayerMuxPopoverProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<MagicPlayerMuxPopoverProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
5
5
  export default _default;
6
- type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
7
- type __VLS_TypePropsToOption<T> = {
8
- [K in keyof T]-?: {} extends Pick<T, K> ? {
9
- type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
10
- } : {
11
- type: import('vue').PropType<T[K]>;
12
- required: true;
13
- };
14
- };