@maas/vue-equipment 1.0.0-beta.32 → 1.0.0-beta.34
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/useCountdown/index.d.ts +23 -0
- package/dist/composables/useCountdown/index.js +133 -0
- package/dist/composables/useCountdown/index.js.map +1 -0
- package/dist/composables/useEasings/index.d.ts +21 -0
- package/dist/composables/useEasings/index.js +40 -0
- package/dist/composables/useEasings/index.js.map +1 -0
- package/dist/composables/useMetaViewport/index.d.ts +9 -0
- package/dist/composables/useMetaViewport/index.js +29 -0
- package/dist/composables/useMetaViewport/index.js.map +1 -0
- package/dist/composables/useScrollTo/index.d.ts +49 -0
- package/dist/composables/useScrollTo/index.js +148 -0
- package/dist/composables/useScrollTo/index.js.map +1 -0
- package/dist/nuxt/module.json +2 -2
- package/dist/nuxt/module.mjs +17 -11
- package/dist/plugins/.turbo/turbo-lint.log +1 -1
- package/dist/plugins/MagicAccordion/src/components/MagicAccordionContent.vue.d.ts +3 -3
- package/dist/plugins/MagicAccordion/src/components/MagicAccordionProvider.vue.d.ts +3 -3
- package/dist/plugins/MagicAccordion/src/components/MagicAccordionTrigger.vue.d.ts +1 -1
- package/dist/plugins/MagicAccordion/src/components/MagicAccordionView.vue.d.ts +3 -3
- package/dist/plugins/MagicAccordion/src/composables/private/useAccordionCallback.mjs +1 -1
- package/dist/plugins/MagicCommand/src/components/MagicCommandContent.vue.d.ts +3 -3
- package/dist/plugins/MagicCommand/src/components/MagicCommandDrawer.vue +2 -2
- package/dist/plugins/MagicCommand/src/components/MagicCommandDrawer.vue.d.ts +3 -3
- package/dist/plugins/MagicCommand/src/components/MagicCommandItem.vue.d.ts +1 -1
- package/dist/plugins/MagicCommand/src/components/MagicCommandModal.vue +2 -2
- package/dist/plugins/MagicCommand/src/components/MagicCommandModal.vue.d.ts +3 -3
- package/dist/plugins/MagicCommand/src/components/MagicCommandProvider.vue.d.ts +3 -3
- package/dist/plugins/MagicCommand/src/components/MagicCommandRenderer.vue +1 -1
- package/dist/plugins/MagicCommand/src/components/MagicCommandRenderer.vue.d.ts +1 -1
- package/dist/plugins/MagicCommand/src/components/MagicCommandTrigger.vue.d.ts +1 -1
- package/dist/plugins/MagicCommand/src/components/MagicCommandView.vue.d.ts +1 -1
- package/dist/plugins/MagicCommand/src/composables/private/useCommandCallback.mjs +1 -1
- package/dist/plugins/MagicCookie/src/components/MagicCookieItem.vue.d.ts +1 -1
- package/dist/plugins/MagicCookie/src/components/MagicCookieProvider.vue.d.ts +3 -3
- package/dist/plugins/MagicCookie/src/components/MagicCookieView.vue.d.ts +3 -3
- package/dist/plugins/MagicCookie/src/composables/private/useCookieCallback.mjs +1 -1
- package/dist/plugins/MagicCookie/src/composables/useMagicCookie.mjs +1 -1
- package/dist/plugins/MagicDraggable/src/components/MagicDraggable.vue.d.ts +1 -1
- package/dist/plugins/MagicDraggable/src/composables/private/useDraggableDrag.mjs +1 -1
- package/dist/plugins/MagicDraggable/src/composables/private/useDraggableSnap.mjs +1 -1
- package/dist/plugins/MagicDraggable/src/composables/useMagicDraggable.mjs +1 -1
- package/dist/plugins/MagicDrawer/src/components/MagicDrawer.vue +1 -1
- package/dist/plugins/MagicDrawer/src/components/MagicDrawer.vue.d.ts +4 -4
- package/dist/plugins/MagicDrawer/src/composables/private/useDrawerCallback.mjs +2 -2
- package/dist/plugins/MagicDrawer/src/composables/private/useDrawerDrag.mjs +1 -1
- package/dist/plugins/MagicDrawer/src/composables/private/useDrawerProgress.mjs +1 -1
- package/dist/plugins/MagicDrawer/src/composables/private/useDrawerSnap.mjs +1 -1
- package/dist/plugins/MagicDrawer/src/composables/useMagicDrawer.mjs +1 -1
- package/dist/plugins/MagicMarquee/src/components/MagicMarquee.vue.d.ts +1 -1
- package/dist/plugins/MagicMenu/src/components/MagicMenuChannel.vue.d.ts +3 -3
- package/dist/plugins/MagicMenu/src/components/MagicMenuContent.vue.d.ts +4 -4
- package/dist/plugins/MagicMenu/src/components/MagicMenuFloat.vue.d.ts +1 -1
- package/dist/plugins/MagicMenu/src/components/MagicMenuItem.vue.d.ts +1 -1
- package/dist/plugins/MagicMenu/src/components/MagicMenuProvider.vue.d.ts +3 -3
- package/dist/plugins/MagicMenu/src/components/MagicMenuRemote.vue.d.ts +1 -1
- package/dist/plugins/MagicMenu/src/components/MagicMenuTrigger.vue.d.ts +1 -1
- package/dist/plugins/MagicMenu/src/components/MagicMenuView.vue.d.ts +1 -1
- package/dist/plugins/MagicMenu/src/composables/private/useMenuCallback.mjs +1 -1
- package/dist/plugins/MagicModal/src/components/MagicModal.vue.d.ts +4 -4
- package/dist/plugins/MagicModal/src/composables/private/useModalCallback.mjs +1 -1
- package/dist/plugins/MagicNoise/src/components/MagicNoise.vue.d.ts +1 -1
- package/dist/plugins/MagicPie/src/components/MagicPie.vue.d.ts +1 -1
- package/dist/plugins/MagicPlayer/src/components/MagicPlayerAudio.vue.d.ts +1 -1
- package/dist/plugins/MagicPlayer/src/components/MagicPlayerAudioControls.vue.d.ts +3 -3
- package/dist/plugins/MagicPlayer/src/components/MagicPlayerDisplayTime.vue.d.ts +1 -1
- package/dist/plugins/MagicPlayer/src/components/MagicPlayerMuxPopover.vue.d.ts +1 -1
- package/dist/plugins/MagicPlayer/src/components/MagicPlayerOverlay.vue +2 -2
- package/dist/plugins/MagicPlayer/src/components/MagicPlayerOverlay.vue.d.ts +6 -6
- 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.d.ts +1 -1
- package/dist/plugins/MagicPlayer/src/components/MagicPlayerVideo.vue.d.ts +1 -1
- package/dist/plugins/MagicPlayer/src/components/MagicPlayerVideoControls.vue.d.ts +11 -11
- 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/usePlayerEmitter.mjs +1 -1
- package/dist/plugins/MagicPlayer/src/css/magic-player-overlay.css +0 -0
- 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.d.ts +1 -1
- package/dist/plugins/MagicScroll/src/composables/private/useCollisionDetection.mjs +1 -1
- package/dist/plugins/MagicToast/src/components/MagicToastProvider.vue.d.ts +1 -1
- package/dist/plugins/MagicToast/src/components/MagicToastView.vue.d.ts +1 -1
- package/dist/plugins/MagicToast/src/composables/private/useToastCallback.mjs +1 -1
- package/dist/plugins/MagicToast/src/composables/private/useToastDrag.mjs +1 -1
- package/package.json +23 -19
- package/dist/composables/index.d.ts +0 -97
- package/dist/composables/index.js +0 -344
- package/dist/composables/index.js.map +0 -1
- package/dist/plugins/index.d.ts +0 -14
- package/dist/plugins/index.mjs +0 -14
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import * as vue from 'vue';
|
|
2
|
+
import { MaybeRef } from 'vue';
|
|
3
|
+
import { DateTime } from 'luxon';
|
|
4
|
+
|
|
5
|
+
type DateTimeArray = [number, number, number, number?, number?, number?];
|
|
6
|
+
interface CountdownOptions {
|
|
7
|
+
endDateTime: MaybeRef<DateTimeArray>;
|
|
8
|
+
timezone?: MaybeRef<string>;
|
|
9
|
+
zeroIndexedMonths?: boolean;
|
|
10
|
+
}
|
|
11
|
+
declare function useCountdown(options: CountdownOptions, callback?: () => void): {
|
|
12
|
+
years: vue.ShallowRef<number, number>;
|
|
13
|
+
days: vue.ShallowRef<number, number>;
|
|
14
|
+
hours: vue.ShallowRef<number, number>;
|
|
15
|
+
minutes: vue.ShallowRef<number, number>;
|
|
16
|
+
seconds: vue.ShallowRef<number, number>;
|
|
17
|
+
endDateTime: vue.ComputedRef<DateTime<true> | DateTime<false>>;
|
|
18
|
+
pad: (value: number) => string;
|
|
19
|
+
restart: () => void;
|
|
20
|
+
onTick: (callback: () => void) => void;
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
export { type CountdownOptions, type DateTimeArray, useCountdown };
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
// useCountdown/index.ts
|
|
2
|
+
import {
|
|
3
|
+
computed,
|
|
4
|
+
onMounted,
|
|
5
|
+
shallowRef,
|
|
6
|
+
unref,
|
|
7
|
+
watch
|
|
8
|
+
} from "vue";
|
|
9
|
+
import { MagicTimer } from "@maas/magic-timer";
|
|
10
|
+
import { DateTime } from "luxon";
|
|
11
|
+
var defaultOptions = {
|
|
12
|
+
endDateTime: [1970, 1, 1, 0, 0, 0],
|
|
13
|
+
zeroIndexedMonths: false
|
|
14
|
+
};
|
|
15
|
+
function useCountdown(options, callback) {
|
|
16
|
+
options = { ...defaultOptions, ...options };
|
|
17
|
+
if (unref(options.endDateTime).length < 3) {
|
|
18
|
+
console.error(
|
|
19
|
+
"useCountdownClock: \u201CendDateTime\u201D needs to be an array [YYYY, MM, DD, HH?, MM?, SS?]"
|
|
20
|
+
);
|
|
21
|
+
}
|
|
22
|
+
const timezone = unref(options.timezone);
|
|
23
|
+
if (timezone) {
|
|
24
|
+
if (!DateTime.now().setZone(timezone).isValid) {
|
|
25
|
+
console.error(
|
|
26
|
+
`useCountdownClock: \u201C${timezone}\u201D is not a valid timezone. Did you mean ${DateTime.local().zoneName}? For more information see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones`
|
|
27
|
+
);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
const timer = new MagicTimer();
|
|
31
|
+
const years = shallowRef(0);
|
|
32
|
+
const days = shallowRef(0);
|
|
33
|
+
const hours = shallowRef(0);
|
|
34
|
+
const minutes = shallowRef(0);
|
|
35
|
+
const seconds = shallowRef(0);
|
|
36
|
+
const parseDateTimeArray = (dateTimeArr) => {
|
|
37
|
+
const [year, month, day, hour, minute, second] = dateTimeArr;
|
|
38
|
+
return {
|
|
39
|
+
year,
|
|
40
|
+
month: options.zeroIndexedMonths ? month + 1 : month,
|
|
41
|
+
day,
|
|
42
|
+
hour: hour ?? 0,
|
|
43
|
+
minute: minute ?? 0,
|
|
44
|
+
second: second ?? 0
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
const endDateTime = computed(() => {
|
|
48
|
+
const { year, month, day, hour, minute, second } = parseDateTimeArray(
|
|
49
|
+
unref(options.endDateTime)
|
|
50
|
+
);
|
|
51
|
+
return DateTime.fromObject(
|
|
52
|
+
{
|
|
53
|
+
year,
|
|
54
|
+
month,
|
|
55
|
+
day,
|
|
56
|
+
hour,
|
|
57
|
+
minute,
|
|
58
|
+
second
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
zone: unref(options.timezone)
|
|
62
|
+
}
|
|
63
|
+
);
|
|
64
|
+
});
|
|
65
|
+
function tick() {
|
|
66
|
+
const now = DateTime.now().setZone(unref(options.timezone));
|
|
67
|
+
const end = endDateTime.value;
|
|
68
|
+
if (end <= now) {
|
|
69
|
+
timer.stop();
|
|
70
|
+
reset();
|
|
71
|
+
if (callback) {
|
|
72
|
+
callback();
|
|
73
|
+
}
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
const diff = end.diff(now, [
|
|
77
|
+
"years",
|
|
78
|
+
"days",
|
|
79
|
+
"hours",
|
|
80
|
+
"minutes",
|
|
81
|
+
"seconds",
|
|
82
|
+
"milliseconds"
|
|
83
|
+
]).toObject();
|
|
84
|
+
years.value = diff.years ?? 0;
|
|
85
|
+
days.value = diff.days ?? 0;
|
|
86
|
+
hours.value = diff.hours ?? 0;
|
|
87
|
+
minutes.value = diff.minutes ?? 0;
|
|
88
|
+
seconds.value = diff.seconds ?? 0;
|
|
89
|
+
}
|
|
90
|
+
function pad(value) {
|
|
91
|
+
return ("0" + value).slice(-2);
|
|
92
|
+
}
|
|
93
|
+
function onTick(callback2) {
|
|
94
|
+
timer.on("tick", callback2);
|
|
95
|
+
}
|
|
96
|
+
function reset() {
|
|
97
|
+
years.value = 0;
|
|
98
|
+
days.value = 0;
|
|
99
|
+
hours.value = 0;
|
|
100
|
+
minutes.value = 0;
|
|
101
|
+
seconds.value = 0;
|
|
102
|
+
}
|
|
103
|
+
function restart() {
|
|
104
|
+
timer.reset();
|
|
105
|
+
timer.start();
|
|
106
|
+
}
|
|
107
|
+
timer.on("tick", tick);
|
|
108
|
+
onMounted(() => {
|
|
109
|
+
tick();
|
|
110
|
+
timer.start();
|
|
111
|
+
});
|
|
112
|
+
watch(endDateTime, () => {
|
|
113
|
+
if (timer.state === "running") {
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
restart();
|
|
117
|
+
});
|
|
118
|
+
return {
|
|
119
|
+
years,
|
|
120
|
+
days,
|
|
121
|
+
hours,
|
|
122
|
+
minutes,
|
|
123
|
+
seconds,
|
|
124
|
+
endDateTime,
|
|
125
|
+
pad,
|
|
126
|
+
restart,
|
|
127
|
+
onTick
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
export {
|
|
131
|
+
useCountdown
|
|
132
|
+
};
|
|
133
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../packages/composables/useCountdown/index.ts"],"sourcesContent":["import {\n computed,\n onMounted,\n shallowRef,\n unref,\n watch,\n type MaybeRef,\n} from 'vue'\nimport { MagicTimer } from '@maas/magic-timer'\nimport { DateTime } from 'luxon'\n\nexport type DateTimeArray = [number, number, number, number?, number?, number?]\n\nexport interface CountdownOptions {\n endDateTime: MaybeRef<DateTimeArray>\n timezone?: MaybeRef<string>\n zeroIndexedMonths?: boolean\n}\n\nconst defaultOptions: CountdownOptions = {\n endDateTime: [1970, 1, 1, 0, 0, 0],\n zeroIndexedMonths: false,\n}\n\nexport function useCountdown(options: CountdownOptions, callback?: () => void) {\n options = { ...defaultOptions, ...options }\n\n if (unref(options.endDateTime).length < 3) {\n console.error(\n 'useCountdownClock: “endDateTime” needs to be an array [YYYY, MM, DD, HH?, MM?, SS?]'\n )\n }\n\n const timezone = unref(options.timezone)\n if (timezone) {\n if (!DateTime.now().setZone(timezone).isValid) {\n console.error(\n `useCountdownClock: “${timezone}” is not a valid timezone. Did you mean ${\n DateTime.local().zoneName\n }? For more information see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones`\n )\n }\n }\n\n const timer = new MagicTimer()\n\n const years = shallowRef(0)\n const days = shallowRef(0)\n const hours = shallowRef(0)\n const minutes = shallowRef(0)\n const seconds = shallowRef(0)\n\n // Parse the end dateTime array into an date and time object\n // If hour, minute or second are not set, set them to 0\n // Optionally add +1 if month is not zero indexed\n const parseDateTimeArray = (dateTimeArr: DateTimeArray) => {\n const [year, month, day, hour, minute, second] = dateTimeArr\n return {\n year,\n month: options.zeroIndexedMonths ? month + 1 : month,\n day,\n hour: hour ?? 0,\n minute: minute ?? 0,\n second: second ?? 0,\n }\n }\n\n const endDateTime = computed(() => {\n const { year, month, day, hour, minute, second } = parseDateTimeArray(\n unref(options.endDateTime)\n )\n\n return DateTime.fromObject(\n {\n year,\n month,\n day,\n hour,\n minute,\n second,\n },\n {\n zone: unref(options.timezone),\n }\n )\n })\n\n // Update the countdown values on each tick\n // If endDateTime is reached, stop the timer, reset the values and run the callback\n function tick() {\n const now = DateTime.now().setZone(unref(options.timezone))\n const end = endDateTime.value\n\n if (end <= now) {\n timer.stop()\n reset()\n\n if (callback) {\n callback()\n }\n\n return\n }\n\n const diff = end\n .diff(now, [\n 'years',\n 'days',\n 'hours',\n 'minutes',\n 'seconds',\n 'milliseconds',\n ])\n .toObject()\n\n years.value = diff.years ?? 0\n days.value = diff.days ?? 0\n hours.value = diff.hours ?? 0\n minutes.value = diff.minutes ?? 0\n seconds.value = diff.seconds ?? 0\n }\n\n function pad(value: number): string {\n return ('0' + value).slice(-2)\n }\n\n function onTick(callback: () => void) {\n timer.on('tick', callback)\n }\n\n function reset() {\n years.value = 0\n days.value = 0\n hours.value = 0\n minutes.value = 0\n seconds.value = 0\n }\n\n function restart() {\n timer.reset()\n timer.start()\n }\n\n timer.on('tick', tick)\n\n onMounted(() => {\n tick()\n timer.start()\n })\n\n // Watch for changes in the endDateTime\n // and restart the timer\n watch(endDateTime, () => {\n if (timer.state === 'running') {\n return\n }\n\n restart()\n })\n\n return {\n years,\n days,\n hours,\n minutes,\n seconds,\n endDateTime,\n pad,\n restart,\n onTick,\n }\n}\n"],"mappings":"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","names":["callback"]}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { linear, easeInQuad, easeOutQuad, easeInOutQuad, easeOutBack, easeInCubic, easeOutCubic, easeInOutCubic, easeInQuart, easeOutQuart, easeInOutQuart, easeInQuint, easeOutQuint, easeInOutQuint } from '@maas/vue-equipment/utils';
|
|
2
|
+
|
|
3
|
+
type EasingKey = 'linear' | 'easeInQuad' | 'easeOutQuad' | 'easeInOutQuad' | 'easeOutBack' | 'easeInCubic' | 'easeOutCubic' | 'easeInOutCubic' | 'easeInQuart' | 'easeOutQuart' | 'easeInOutQuart' | 'easeInQuint' | 'easeOutQuint' | 'easeInOutQuint';
|
|
4
|
+
declare function useEasings(): {
|
|
5
|
+
linear: typeof linear;
|
|
6
|
+
easeInQuad: typeof easeInQuad;
|
|
7
|
+
easeOutQuad: typeof easeOutQuad;
|
|
8
|
+
easeInOutQuad: typeof easeInOutQuad;
|
|
9
|
+
easeOutBack: typeof easeOutBack;
|
|
10
|
+
easeInCubic: typeof easeInCubic;
|
|
11
|
+
easeOutCubic: typeof easeOutCubic;
|
|
12
|
+
easeInOutCubic: typeof easeInOutCubic;
|
|
13
|
+
easeInQuart: typeof easeInQuart;
|
|
14
|
+
easeOutQuart: typeof easeOutQuart;
|
|
15
|
+
easeInOutQuart: typeof easeInOutQuart;
|
|
16
|
+
easeInQuint: typeof easeInQuint;
|
|
17
|
+
easeOutQuint: typeof easeOutQuint;
|
|
18
|
+
easeInOutQuint: typeof easeInOutQuint;
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
export { type EasingKey, useEasings };
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
// useEasings/index.ts
|
|
2
|
+
import {
|
|
3
|
+
linear,
|
|
4
|
+
easeInQuad,
|
|
5
|
+
easeOutQuad,
|
|
6
|
+
easeInOutQuad,
|
|
7
|
+
easeOutBack,
|
|
8
|
+
easeInCubic,
|
|
9
|
+
easeOutCubic,
|
|
10
|
+
easeInOutCubic,
|
|
11
|
+
easeInQuart,
|
|
12
|
+
easeOutQuart,
|
|
13
|
+
easeInOutQuart,
|
|
14
|
+
easeInQuint,
|
|
15
|
+
easeOutQuint,
|
|
16
|
+
easeInOutQuint
|
|
17
|
+
} from "@maas/vue-equipment/utils";
|
|
18
|
+
function useEasings() {
|
|
19
|
+
const easings = {
|
|
20
|
+
linear,
|
|
21
|
+
easeInQuad,
|
|
22
|
+
easeOutQuad,
|
|
23
|
+
easeInOutQuad,
|
|
24
|
+
easeOutBack,
|
|
25
|
+
easeInCubic,
|
|
26
|
+
easeOutCubic,
|
|
27
|
+
easeInOutCubic,
|
|
28
|
+
easeInQuart,
|
|
29
|
+
easeOutQuart,
|
|
30
|
+
easeInOutQuart,
|
|
31
|
+
easeInQuint,
|
|
32
|
+
easeOutQuint,
|
|
33
|
+
easeInOutQuint
|
|
34
|
+
};
|
|
35
|
+
return easings;
|
|
36
|
+
}
|
|
37
|
+
export {
|
|
38
|
+
useEasings
|
|
39
|
+
};
|
|
40
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../packages/composables/useEasings/index.ts"],"sourcesContent":["import {\n linear,\n easeInQuad,\n easeOutQuad,\n easeInOutQuad,\n easeOutBack,\n easeInCubic,\n easeOutCubic,\n easeInOutCubic,\n easeInQuart,\n easeOutQuart,\n easeInOutQuart,\n easeInQuint,\n easeOutQuint,\n easeInOutQuint,\n} from '@maas/vue-equipment/utils'\n\nexport type EasingKey =\n | 'linear'\n | 'easeInQuad'\n | 'easeOutQuad'\n | 'easeInOutQuad'\n | 'easeOutBack'\n | 'easeInCubic'\n | 'easeOutCubic'\n | 'easeInOutCubic'\n | 'easeInQuart'\n | 'easeOutQuart'\n | 'easeInOutQuart'\n | 'easeInQuint'\n | 'easeOutQuint'\n | 'easeInOutQuint'\n\nexport function useEasings() {\n const easings = {\n linear,\n easeInQuad,\n easeOutQuad,\n easeInOutQuad,\n easeOutBack,\n easeInCubic,\n easeOutCubic,\n easeInOutCubic,\n easeInQuart,\n easeOutQuart,\n easeInOutQuart,\n easeInQuint,\n easeOutQuint,\n easeInOutQuint,\n }\n\n return easings\n}\n"],"mappings":";AAAA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAkBA,SAAS,aAAa;AAC3B,QAAM,UAAU;AAAA,IACd;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAEA,SAAO;AACT;","names":[]}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
// useMetaViewport/index.ts
|
|
2
|
+
import { shallowRef } from "vue";
|
|
3
|
+
function useMetaViewport(args) {
|
|
4
|
+
const content = args?.content || "width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0";
|
|
5
|
+
const metaViewport = shallowRef(void 0);
|
|
6
|
+
function setMetaViewport() {
|
|
7
|
+
const metaElement = document.querySelector(
|
|
8
|
+
'meta[name="viewport"]'
|
|
9
|
+
);
|
|
10
|
+
metaViewport.value = metaElement.content;
|
|
11
|
+
metaElement.setAttribute("content", content);
|
|
12
|
+
}
|
|
13
|
+
function resetMetaViewport() {
|
|
14
|
+
const metaElement = document.querySelector(
|
|
15
|
+
'meta[name="viewport"]'
|
|
16
|
+
);
|
|
17
|
+
if (metaViewport.value) {
|
|
18
|
+
metaElement.setAttribute("content", metaViewport.value);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
return {
|
|
22
|
+
setMetaViewport,
|
|
23
|
+
resetMetaViewport
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
export {
|
|
27
|
+
useMetaViewport
|
|
28
|
+
};
|
|
29
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../packages/composables/useMetaViewport/index.ts"],"sourcesContent":["import { shallowRef } from 'vue'\n\nexport type UseMetaViewportArgs = {\n content: string\n}\n\nexport function useMetaViewport(args?: UseMetaViewportArgs) {\n const content =\n args?.content ||\n 'width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0'\n\n const metaViewport = shallowRef<string | undefined>(undefined)\n\n function setMetaViewport() {\n const metaElement = document.querySelector(\n 'meta[name=\"viewport\"]'\n ) as HTMLMetaElement\n\n metaViewport.value = metaElement.content\n metaElement.setAttribute('content', content)\n }\n\n function resetMetaViewport() {\n const metaElement = document.querySelector(\n 'meta[name=\"viewport\"]'\n ) as HTMLMetaElement\n\n if (metaViewport.value) {\n metaElement.setAttribute('content', metaViewport.value)\n }\n }\n\n return {\n setMetaViewport,\n resetMetaViewport,\n }\n}\n"],"mappings":";AAAA,SAAS,kBAAkB;AAMpB,SAAS,gBAAgB,MAA4B;AAC1D,QAAM,UACJ,MAAM,WACN;AAEF,QAAM,eAAe,WAA+B,MAAS;AAE7D,WAAS,kBAAkB;AACzB,UAAM,cAAc,SAAS;AAAA,MAC3B;AAAA,IACF;AAEA,iBAAa,QAAQ,YAAY;AACjC,gBAAY,aAAa,WAAW,OAAO;AAAA,EAC7C;AAEA,WAAS,oBAAoB;AAC3B,UAAM,cAAc,SAAS;AAAA,MAC3B;AAAA,IACF;AAEA,QAAI,aAAa,OAAO;AACtB,kBAAY,aAAa,WAAW,aAAa,KAAK;AAAA,IACxD;AAAA,EACF;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,EACF;AACF;","names":[]}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { MaybeElement, MaybeComputedElementRef } from '@vueuse/core';
|
|
2
|
+
|
|
3
|
+
type ScrollToTarget = string | Element | MaybeElement | MaybeComputedElementRef;
|
|
4
|
+
type ScrollToParent = ScrollToTarget | Window;
|
|
5
|
+
type ScrollToParams = {
|
|
6
|
+
parent?: Element | Window;
|
|
7
|
+
left: number;
|
|
8
|
+
top: number;
|
|
9
|
+
duration?: {
|
|
10
|
+
x?: number;
|
|
11
|
+
y?: number;
|
|
12
|
+
};
|
|
13
|
+
easing?: (t: number) => number;
|
|
14
|
+
callback?: () => void;
|
|
15
|
+
};
|
|
16
|
+
type getScrollDurationParams = {
|
|
17
|
+
parent: Element | Window;
|
|
18
|
+
left: number;
|
|
19
|
+
top: number;
|
|
20
|
+
speed: number;
|
|
21
|
+
};
|
|
22
|
+
type scrollToTargetParams = {
|
|
23
|
+
target: ScrollToTarget;
|
|
24
|
+
parent?: ScrollToParent;
|
|
25
|
+
offset?: {
|
|
26
|
+
x?: number;
|
|
27
|
+
y?: number;
|
|
28
|
+
};
|
|
29
|
+
speed?: number;
|
|
30
|
+
easing?: (t: number) => number;
|
|
31
|
+
};
|
|
32
|
+
declare function useScrollTo(): {
|
|
33
|
+
getScrollPosition: (element: Element | Window) => {
|
|
34
|
+
x: number;
|
|
35
|
+
y: number;
|
|
36
|
+
};
|
|
37
|
+
getDistance: (target: Element, parent?: Element | Window) => {
|
|
38
|
+
top: number;
|
|
39
|
+
left: number;
|
|
40
|
+
};
|
|
41
|
+
getScrollDuration: ({ parent, left, top, speed, }: getScrollDurationParams) => {
|
|
42
|
+
x: number;
|
|
43
|
+
y: number;
|
|
44
|
+
};
|
|
45
|
+
scrollTo: ({ parent, top, left, duration, easing, callback, }: ScrollToParams) => void;
|
|
46
|
+
scrollToTarget: ({ target, parent, offset, speed, easing, }: scrollToTargetParams) => void;
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
export { type ScrollToParams, type ScrollToParent, type ScrollToTarget, type getScrollDurationParams, type scrollToTargetParams, useScrollTo };
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
// useScrollTo/index.ts
|
|
2
|
+
import {
|
|
3
|
+
unrefElement
|
|
4
|
+
} from "@vueuse/core";
|
|
5
|
+
import { easeOutQuad } from "@maas/vue-equipment/utils";
|
|
6
|
+
function min(a, b) {
|
|
7
|
+
return a < b ? a : b;
|
|
8
|
+
}
|
|
9
|
+
function unwrapParent(parent) {
|
|
10
|
+
if (parent === window) {
|
|
11
|
+
return parent;
|
|
12
|
+
} else if (typeof parent === "string") {
|
|
13
|
+
return document.querySelector(parent) || document.documentElement;
|
|
14
|
+
} else {
|
|
15
|
+
return unrefElement(parent) || document.documentElement;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
function unwrapTarget(target, parentEl) {
|
|
19
|
+
if (typeof target === "string") {
|
|
20
|
+
const queryTarget = parentEl === window ? document : parentEl;
|
|
21
|
+
return queryTarget.querySelector(target);
|
|
22
|
+
} else {
|
|
23
|
+
return unrefElement(target);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
function isHtmlElement(parentEl) {
|
|
27
|
+
return parentEl instanceof HTMLElement;
|
|
28
|
+
}
|
|
29
|
+
function disableScrollSnap(parentEl) {
|
|
30
|
+
if (isHtmlElement(parentEl)) {
|
|
31
|
+
parentEl.style.scrollSnapType = "none";
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
function reenableScrollSnap(parentEl) {
|
|
35
|
+
if (isHtmlElement(parentEl)) {
|
|
36
|
+
parentEl.style.scrollSnapType = "";
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
function useScrollTo() {
|
|
40
|
+
function getScrollPosition(element) {
|
|
41
|
+
if (element === window) {
|
|
42
|
+
return { x: window.scrollX, y: window.scrollY };
|
|
43
|
+
} else if (element instanceof Element) {
|
|
44
|
+
return { x: element.scrollLeft, y: element.scrollTop };
|
|
45
|
+
} else {
|
|
46
|
+
return { x: 0, y: 0 };
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
function getDistance(target, parent) {
|
|
50
|
+
const rect = target.getBoundingClientRect();
|
|
51
|
+
const scrollEl = parent || document.scrollingElement || document.documentElement;
|
|
52
|
+
const scrollTop = scrollEl instanceof Window ? 0 : scrollEl.scrollTop;
|
|
53
|
+
const scrollLeft = scrollEl instanceof Window ? 0 : scrollEl.scrollLeft;
|
|
54
|
+
return {
|
|
55
|
+
top: rect.top + scrollTop,
|
|
56
|
+
left: rect.left + scrollLeft
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
function getScrollDuration({
|
|
60
|
+
parent = document.documentElement || document.body,
|
|
61
|
+
left = 0,
|
|
62
|
+
top = 0,
|
|
63
|
+
speed = 500
|
|
64
|
+
}) {
|
|
65
|
+
const currentPos = getScrollPosition(parent);
|
|
66
|
+
const distanceX = currentPos.x - left;
|
|
67
|
+
const distanceY = currentPos.y - top;
|
|
68
|
+
const durationX = Math.abs(distanceX / speed * 100);
|
|
69
|
+
const durationY = Math.abs(distanceY / speed * 100);
|
|
70
|
+
return { x: durationX, y: durationY };
|
|
71
|
+
}
|
|
72
|
+
function scrollTo({
|
|
73
|
+
parent = document.documentElement || document.body,
|
|
74
|
+
top,
|
|
75
|
+
left,
|
|
76
|
+
duration = {},
|
|
77
|
+
easing = easeOutQuad,
|
|
78
|
+
callback
|
|
79
|
+
}) {
|
|
80
|
+
const startTime = Date.now();
|
|
81
|
+
const { x: fromX, y: fromY } = getScrollPosition(parent);
|
|
82
|
+
if (fromX === top && fromY === left) {
|
|
83
|
+
if (callback) callback();
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
const mappedDuration = { x: 500, y: 500, ...duration };
|
|
87
|
+
const scroll = () => {
|
|
88
|
+
const currentTime = Date.now();
|
|
89
|
+
const timeX = min(1, (currentTime - startTime) / mappedDuration.x);
|
|
90
|
+
const timeY = min(1, (currentTime - startTime) / mappedDuration.y);
|
|
91
|
+
const easedTimeX = easing(timeX);
|
|
92
|
+
const easedTimeY = easing(timeY);
|
|
93
|
+
const minTime = Math.min(easedTimeX, easedTimeY);
|
|
94
|
+
parent.scroll({
|
|
95
|
+
left: minTime * (left - fromX) + fromX,
|
|
96
|
+
top: minTime * (top - fromY) + fromY
|
|
97
|
+
});
|
|
98
|
+
if (easedTimeX < 1 || easedTimeY < 1) {
|
|
99
|
+
requestAnimationFrame(scroll);
|
|
100
|
+
} else if (callback) {
|
|
101
|
+
callback();
|
|
102
|
+
}
|
|
103
|
+
};
|
|
104
|
+
requestAnimationFrame(scroll);
|
|
105
|
+
}
|
|
106
|
+
function scrollToTarget({
|
|
107
|
+
target,
|
|
108
|
+
parent = document.documentElement || document.body,
|
|
109
|
+
offset = {},
|
|
110
|
+
speed = 500,
|
|
111
|
+
easing = easeOutQuad
|
|
112
|
+
}) {
|
|
113
|
+
const parentEl = unwrapParent(parent);
|
|
114
|
+
if (!parentEl) return;
|
|
115
|
+
const targetEl = unwrapTarget(target, parentEl);
|
|
116
|
+
if (!targetEl) return;
|
|
117
|
+
disableScrollSnap(parentEl);
|
|
118
|
+
const mappedOffset = { x: 0, y: 0, ...offset };
|
|
119
|
+
const distance = getDistance(targetEl, parentEl);
|
|
120
|
+
const leftDistance = distance.left - mappedOffset.x;
|
|
121
|
+
const topDistance = distance.top - mappedOffset.y;
|
|
122
|
+
const scrollDuration = getScrollDuration({
|
|
123
|
+
parent: parentEl,
|
|
124
|
+
left: leftDistance,
|
|
125
|
+
top: topDistance,
|
|
126
|
+
speed
|
|
127
|
+
});
|
|
128
|
+
scrollTo({
|
|
129
|
+
parent: parentEl,
|
|
130
|
+
left: leftDistance,
|
|
131
|
+
top: topDistance,
|
|
132
|
+
duration: scrollDuration,
|
|
133
|
+
easing,
|
|
134
|
+
callback: () => reenableScrollSnap(parentEl)
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
return {
|
|
138
|
+
getScrollPosition,
|
|
139
|
+
getDistance,
|
|
140
|
+
getScrollDuration,
|
|
141
|
+
scrollTo,
|
|
142
|
+
scrollToTarget
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
export {
|
|
146
|
+
useScrollTo
|
|
147
|
+
};
|
|
148
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +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":"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","names":[]}
|
package/dist/nuxt/module.json
CHANGED
package/dist/nuxt/module.mjs
CHANGED
|
@@ -140,19 +140,14 @@ const module = defineNuxtModule({
|
|
|
140
140
|
configKey: "vueEquipment"
|
|
141
141
|
},
|
|
142
142
|
defaults: {
|
|
143
|
-
plugins:
|
|
144
|
-
composables:
|
|
143
|
+
plugins: false,
|
|
144
|
+
composables: false
|
|
145
145
|
},
|
|
146
146
|
async setup(options, nuxt) {
|
|
147
147
|
let mappedPlugins;
|
|
148
148
|
let mappedComposables;
|
|
149
149
|
const resolver = createResolver(import.meta.url);
|
|
150
150
|
nuxt.options.build.transpile.push("@maas/vue-equipment");
|
|
151
|
-
extendViteConfig((config) => {
|
|
152
|
-
config.optimizeDeps = config.optimizeDeps ?? {};
|
|
153
|
-
config.optimizeDeps.exclude = config.optimizeDeps.exclude ?? [];
|
|
154
|
-
config.optimizeDeps.exclude.push("@maas/vue-equipment/plugins");
|
|
155
|
-
});
|
|
156
151
|
const packages = ["plugins", "composables", "utils"];
|
|
157
152
|
nuxt.options.alias = nuxt.options.alias ?? {};
|
|
158
153
|
for (const pkg of packages) {
|
|
@@ -163,6 +158,15 @@ const module = defineNuxtModule({
|
|
|
163
158
|
} else {
|
|
164
159
|
mappedPlugins = options.plugins || [];
|
|
165
160
|
}
|
|
161
|
+
extendViteConfig((config) => {
|
|
162
|
+
config.optimizeDeps = config.optimizeDeps ?? {};
|
|
163
|
+
config.optimizeDeps.exclude = config.optimizeDeps.exclude ?? [];
|
|
164
|
+
for (const plugin of mappedPlugins) {
|
|
165
|
+
config.optimizeDeps.exclude.push(
|
|
166
|
+
`@maas/vue-equipment/plugins/${plugin}`
|
|
167
|
+
);
|
|
168
|
+
}
|
|
169
|
+
});
|
|
166
170
|
for (const plugin of mappedPlugins) {
|
|
167
171
|
const nuxtPlugin = await resolver.resolvePath(
|
|
168
172
|
`@maas/vue-equipment/plugins/${plugin}/nuxt`
|
|
@@ -174,10 +178,12 @@ const module = defineNuxtModule({
|
|
|
174
178
|
} else {
|
|
175
179
|
mappedComposables = options.composables || [];
|
|
176
180
|
}
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
+
for (const composable of mappedComposables) {
|
|
182
|
+
addImportsSources({
|
|
183
|
+
from: `@maas/vue-equipment/composables/${composable}`,
|
|
184
|
+
imports: [composable]
|
|
185
|
+
});
|
|
186
|
+
}
|
|
181
187
|
}
|
|
182
188
|
});
|
|
183
189
|
|
|
@@ -9,13 +9,13 @@ interface MagicAccordionContentProps {
|
|
|
9
9
|
easing: (t: number) => number;
|
|
10
10
|
};
|
|
11
11
|
}
|
|
12
|
-
declare var
|
|
12
|
+
declare var __VLS_24: {
|
|
13
13
|
viewActive: boolean | undefined;
|
|
14
14
|
};
|
|
15
15
|
type __VLS_Slots = {} & {
|
|
16
|
-
default?: (props: typeof
|
|
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, void, {}, {}, {}, 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 & {
|
|
@@ -5,11 +5,11 @@ interface MagicAccordionProviderProps {
|
|
|
5
5
|
asChild?: boolean;
|
|
6
6
|
options?: MagicAccordionOptions;
|
|
7
7
|
}
|
|
8
|
-
declare var
|
|
8
|
+
declare var __VLS_7: {};
|
|
9
9
|
type __VLS_Slots = {} & {
|
|
10
|
-
default?: (props: typeof
|
|
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, void, {}, {}, {}, 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 & {
|
|
@@ -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, void, {}, {}, {}, 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 & {
|
|
@@ -3,13 +3,13 @@ interface MagicAccordionViewProps {
|
|
|
3
3
|
asChild?: boolean;
|
|
4
4
|
active?: boolean;
|
|
5
5
|
}
|
|
6
|
-
declare var
|
|
6
|
+
declare var __VLS_7: {
|
|
7
7
|
viewActive: boolean;
|
|
8
8
|
};
|
|
9
9
|
type __VLS_Slots = {} & {
|
|
10
|
-
default?: (props: typeof
|
|
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, void, {}, {}, {}, 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,5 +1,5 @@
|
|
|
1
1
|
import { toValue } from "vue";
|
|
2
|
-
import { useMagicEmitter } from "@maas/vue-equipment/plugins";
|
|
2
|
+
import { useMagicEmitter } from "@maas/vue-equipment/plugins/MagicEmitter";
|
|
3
3
|
export function useAccordionCallback(args) {
|
|
4
4
|
const { viewId, instanceId } = args;
|
|
5
5
|
const emitter = useMagicEmitter();
|