@maas/vue-equipment 0.1.2 → 0.1.3
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/index.d.mts +87 -0
- package/dist/composables/index.d.ts +87 -0
- package/dist/composables/index.js +2 -0
- package/dist/composables/index.js.map +1 -0
- package/dist/composables/index.mjs +2 -0
- package/dist/composables/index.mjs.map +1 -0
- package/dist/nuxt/module.cjs +5 -0
- package/dist/nuxt/module.d.ts +11 -0
- package/dist/nuxt/module.json +5 -0
- package/dist/nuxt/module.mjs +123 -0
- package/dist/nuxt/types.d.ts +15 -0
- package/dist/plugins/MagicModal/index.d.ts +4 -0
- package/dist/plugins/MagicModal/index.mjs +8 -0
- package/dist/plugins/MagicModal/nuxt.d.ts +2 -0
- package/dist/plugins/MagicModal/nuxt.mjs +5 -0
- package/dist/plugins/MagicModal/src/components/MagicModal.vue +254 -0
- package/dist/plugins/MagicModal/src/components/MagicModal.vue.d.ts +43 -0
- package/dist/plugins/MagicModal/src/composables/useModalApi.d.ts +18 -0
- package/dist/plugins/MagicModal/src/composables/useModalApi.mjs +74 -0
- package/dist/plugins/MagicModal/src/composables/useModalStore.d.ts +5 -0
- package/dist/plugins/MagicModal/src/composables/useModalStore.mjs +15 -0
- package/dist/plugins/MagicModal/src/store/modals.d.ts +4 -0
- package/dist/plugins/MagicModal/src/store/modals.mjs +9 -0
- package/dist/plugins/MagicModal/src/types/index.d.ts +15 -0
- package/dist/plugins/MagicModal/src/types/index.mjs +0 -0
- package/dist/plugins/MagicModal/src/utils/defaultOptions.d.ts +3 -0
- package/dist/plugins/MagicModal/src/utils/defaultOptions.mjs +15 -0
- package/dist/plugins/MagicPlayer/index.d.ts +7 -0
- package/dist/plugins/MagicPlayer/index.mjs +15 -0
- package/dist/plugins/MagicPlayer/nuxt.d.ts +2 -0
- package/dist/plugins/MagicPlayer/nuxt.mjs +5 -0
- package/dist/plugins/MagicPlayer/src/components/MagicPlayer.vue +103 -0
- package/dist/plugins/MagicPlayer/src/components/MagicPlayer.vue.d.ts +86 -0
- package/dist/plugins/MagicPlayer/src/components/MagicPlayerControls.vue +262 -0
- package/dist/plugins/MagicPlayer/src/components/MagicPlayerControls.vue.d.ts +25 -0
- package/dist/plugins/MagicPlayer/src/components/MagicPlayerMuxPopover.vue +132 -0
- package/dist/plugins/MagicPlayer/src/components/MagicPlayerMuxPopover.vue.d.ts +12 -0
- package/dist/plugins/MagicPlayer/src/components/MagicPlayerTimeline.vue +155 -0
- package/dist/plugins/MagicPlayer/src/components/MagicPlayerTimeline.vue.d.ts +2 -0
- package/dist/plugins/MagicPlayer/src/components/icons/FullscreenEnter.vue +13 -0
- package/dist/plugins/MagicPlayer/src/components/icons/FullscreenEnter.vue.d.ts +2 -0
- package/dist/plugins/MagicPlayer/src/components/icons/FullscreenExit.vue +14 -0
- package/dist/plugins/MagicPlayer/src/components/icons/FullscreenExit.vue.d.ts +2 -0
- package/dist/plugins/MagicPlayer/src/components/icons/Pause.vue +14 -0
- package/dist/plugins/MagicPlayer/src/components/icons/Pause.vue.d.ts +2 -0
- package/dist/plugins/MagicPlayer/src/components/icons/Play.vue +11 -0
- package/dist/plugins/MagicPlayer/src/components/icons/Play.vue.d.ts +2 -0
- package/dist/plugins/MagicPlayer/src/components/icons/VolumeOff.vue +14 -0
- package/dist/plugins/MagicPlayer/src/components/icons/VolumeOff.vue.d.ts +2 -0
- package/dist/plugins/MagicPlayer/src/components/icons/VolumeOn.vue +11 -0
- package/dist/plugins/MagicPlayer/src/components/icons/VolumeOn.vue.d.ts +2 -0
- package/dist/plugins/MagicPlayer/src/components/icons/Waiting.vue +38 -0
- package/dist/plugins/MagicPlayer/src/components/icons/Waiting.vue.d.ts +2 -0
- package/dist/plugins/MagicPlayer/src/composables/useControls.d.ts +8 -0
- package/dist/plugins/MagicPlayer/src/composables/useControls.mjs +15 -0
- package/dist/plugins/MagicPlayer/src/composables/useControlsApi.d.ts +17 -0
- package/dist/plugins/MagicPlayer/src/composables/useControlsApi.mjs +129 -0
- package/dist/plugins/MagicPlayer/src/composables/useMediaApi.d.ts +15 -0
- package/dist/plugins/MagicPlayer/src/composables/useMediaApi.mjs +122 -0
- package/dist/plugins/MagicPlayer/src/composables/usePlayer.d.ts +12 -0
- package/dist/plugins/MagicPlayer/src/composables/usePlayer.mjs +33 -0
- package/dist/plugins/MagicPlayer/src/composables/usePlayerApi.d.ts +20 -0
- package/dist/plugins/MagicPlayer/src/composables/usePlayerApi.mjs +50 -0
- package/dist/plugins/MagicPlayer/src/composables/useRuntimeSourceProvider.d.ts +8 -0
- package/dist/plugins/MagicPlayer/src/composables/useRuntimeSourceProvider.mjs +49 -0
- package/dist/plugins/MagicPlayer/src/types/index.d.ts +15 -0
- package/dist/plugins/MagicPlayer/src/types/index.mjs +1 -0
- package/dist/plugins/MagicPlayer/src/types/injectionKeys.d.ts +45 -0
- package/dist/plugins/MagicPlayer/src/types/injectionKeys.mjs +10 -0
- package/dist/plugins/MagicPlayer/src/utils/index.d.ts +4 -0
- package/dist/plugins/MagicPlayer/src/utils/index.mjs +19 -0
- package/dist/plugins/MagicScroll/index.d.ts +7 -0
- package/dist/plugins/MagicScroll/index.mjs +19 -0
- package/dist/plugins/MagicScroll/nuxt.d.ts +2 -0
- package/dist/plugins/MagicScroll/nuxt.mjs +5 -0
- package/dist/plugins/MagicScroll/src/components/MagicScrollCollision.vue +35 -0
- package/dist/plugins/MagicScroll/src/components/MagicScrollCollision.vue.d.ts +20 -0
- package/dist/plugins/MagicScroll/src/components/MagicScrollProvider.vue +34 -0
- package/dist/plugins/MagicScroll/src/components/MagicScrollProvider.vue.d.ts +21 -0
- package/dist/plugins/MagicScroll/src/components/MagicScrollScene.vue +80 -0
- package/dist/plugins/MagicScroll/src/components/MagicScrollScene.vue.d.ts +41 -0
- package/dist/plugins/MagicScroll/src/components/MagicScrollTransform.vue +42 -0
- package/dist/plugins/MagicScroll/src/components/MagicScrollTransform.vue.d.ts +84 -0
- package/dist/plugins/MagicScroll/src/composables/useCollisionDetect.d.ts +6 -0
- package/dist/plugins/MagicScroll/src/composables/useCollisionDetect.mjs +116 -0
- package/dist/plugins/MagicScroll/src/composables/useEmitter.d.ts +15 -0
- package/dist/plugins/MagicScroll/src/composables/useEmitter.mjs +9 -0
- package/dist/plugins/MagicScroll/src/composables/useProgress.d.ts +7 -0
- package/dist/plugins/MagicScroll/src/composables/useProgress.mjs +59 -0
- package/dist/plugins/MagicScroll/src/store/index.d.ts +4 -0
- package/dist/plugins/MagicScroll/src/store/index.mjs +5 -0
- package/dist/plugins/MagicScroll/src/types/index.d.ts +34 -0
- package/dist/plugins/MagicScroll/src/types/index.mjs +1 -0
- package/dist/plugins/MagicScroll/src/types/injectionKeys.d.ts +12 -0
- package/dist/plugins/MagicScroll/src/types/injectionKeys.mjs +5 -0
- package/dist/plugins/MagicScroll/src/utils/index.d.ts +2 -0
- package/dist/plugins/MagicScroll/src/utils/index.mjs +6 -0
- package/dist/plugins/index.d.ts +3 -0
- package/dist/plugins/index.mjs +3 -0
- package/package.json +13 -13
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { Ref } from 'vue';
|
|
2
|
+
import { Font } from 'fontkit';
|
|
3
|
+
import { MaybeElement, MaybeComputedElementRef } from '@vueuse/core';
|
|
4
|
+
|
|
5
|
+
type EasingKey = 'linear' | 'easeInQuad' | 'easeOutQuad' | 'easeInOutQuad' | 'easeInCubic' | 'easeOutCubic' | 'easeInOutCubic' | 'easeInQuart' | 'easeOutQuart' | 'easeInOutQuart' | 'easeInQuint' | 'easeOutQuint' | 'easeInOutQuint';
|
|
6
|
+
type EasingFunction = (t: number) => number;
|
|
7
|
+
declare function useEasings(): {
|
|
8
|
+
linear: (t: number) => number;
|
|
9
|
+
easeInQuad: (t: number) => number;
|
|
10
|
+
easeOutQuad: (t: number) => number;
|
|
11
|
+
easeInOutQuad: (t: number) => number;
|
|
12
|
+
easeInCubic: (t: number) => number;
|
|
13
|
+
easeOutCubic: (t: number) => number;
|
|
14
|
+
easeInOutCubic: (t: number) => number;
|
|
15
|
+
easeInQuart: (t: number) => number;
|
|
16
|
+
easeOutQuart: (t: number) => number;
|
|
17
|
+
easeInOutQuart: (t: number) => number;
|
|
18
|
+
easeInQuint: (t: number) => number;
|
|
19
|
+
easeOutQuint: (t: number) => number;
|
|
20
|
+
easeInOutQuint: (t: number) => number;
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
type useGlyphToSvgOptions = {
|
|
24
|
+
fontSize: Ref<number> | number;
|
|
25
|
+
fontWeight: Ref<number> | number;
|
|
26
|
+
fontFile: Ref<Font> | Font;
|
|
27
|
+
};
|
|
28
|
+
declare function useGlyphToSvg({ fontSize, fontWeight, fontFile, }: useGlyphToSvgOptions): {
|
|
29
|
+
copySvg: (codePoint: string) => Promise<void>;
|
|
30
|
+
renderSvg: (codePoint: string) => Promise<string>;
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
type ScrollToTarget = string | Element | MaybeElement | MaybeComputedElementRef;
|
|
34
|
+
type ScrollToParent = ScrollToTarget | Window;
|
|
35
|
+
type ScrollToParams = {
|
|
36
|
+
parent?: Element | Window;
|
|
37
|
+
left: number;
|
|
38
|
+
top: number;
|
|
39
|
+
duration?: {
|
|
40
|
+
x?: number;
|
|
41
|
+
y?: number;
|
|
42
|
+
};
|
|
43
|
+
easing?: EasingFunction;
|
|
44
|
+
callback?: () => void;
|
|
45
|
+
};
|
|
46
|
+
type getScrollDurationParams = {
|
|
47
|
+
parent: Element | Window;
|
|
48
|
+
left: number;
|
|
49
|
+
top: number;
|
|
50
|
+
speed: number;
|
|
51
|
+
};
|
|
52
|
+
type scrollToTargetParams = {
|
|
53
|
+
target: ScrollToTarget;
|
|
54
|
+
parent?: ScrollToParent;
|
|
55
|
+
offset?: {
|
|
56
|
+
x?: number;
|
|
57
|
+
y?: number;
|
|
58
|
+
};
|
|
59
|
+
speed?: number;
|
|
60
|
+
easing?: EasingFunction;
|
|
61
|
+
};
|
|
62
|
+
declare function useScrollTo(): {
|
|
63
|
+
getScrollPosition: (element: Element | Window) => {
|
|
64
|
+
x: number;
|
|
65
|
+
y: number;
|
|
66
|
+
};
|
|
67
|
+
getDistance: (element: Element) => {
|
|
68
|
+
top: number;
|
|
69
|
+
left: number;
|
|
70
|
+
};
|
|
71
|
+
getScrollDuration: ({ parent, left, top, speed, }: getScrollDurationParams) => {
|
|
72
|
+
x: number;
|
|
73
|
+
y: number;
|
|
74
|
+
};
|
|
75
|
+
scrollTo: ({ parent, top, left, duration, easing, callback, }: ScrollToParams) => void;
|
|
76
|
+
scrollToTarget: ({ target, parent, offset, speed, easing, }: scrollToTargetParams) => void;
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
type UseViewportDimensionsOptions = {
|
|
80
|
+
width?: false | string;
|
|
81
|
+
height?: false | string;
|
|
82
|
+
initialWidth?: false | string;
|
|
83
|
+
initialHeight?: false | string;
|
|
84
|
+
};
|
|
85
|
+
declare function useViewportDimensions(options?: UseViewportDimensionsOptions): void;
|
|
86
|
+
|
|
87
|
+
export { EasingFunction, EasingKey, ScrollToParams, ScrollToParent, ScrollToTarget, UseViewportDimensionsOptions, getScrollDurationParams, scrollToTargetParams, useEasings, useGlyphToSvg, useGlyphToSvgOptions, useScrollTo, useViewportDimensions };
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { Ref } from 'vue';
|
|
2
|
+
import { Font } from 'fontkit';
|
|
3
|
+
import { MaybeElement, MaybeComputedElementRef } from '@vueuse/core';
|
|
4
|
+
|
|
5
|
+
type EasingKey = 'linear' | 'easeInQuad' | 'easeOutQuad' | 'easeInOutQuad' | 'easeInCubic' | 'easeOutCubic' | 'easeInOutCubic' | 'easeInQuart' | 'easeOutQuart' | 'easeInOutQuart' | 'easeInQuint' | 'easeOutQuint' | 'easeInOutQuint';
|
|
6
|
+
type EasingFunction = (t: number) => number;
|
|
7
|
+
declare function useEasings(): {
|
|
8
|
+
linear: (t: number) => number;
|
|
9
|
+
easeInQuad: (t: number) => number;
|
|
10
|
+
easeOutQuad: (t: number) => number;
|
|
11
|
+
easeInOutQuad: (t: number) => number;
|
|
12
|
+
easeInCubic: (t: number) => number;
|
|
13
|
+
easeOutCubic: (t: number) => number;
|
|
14
|
+
easeInOutCubic: (t: number) => number;
|
|
15
|
+
easeInQuart: (t: number) => number;
|
|
16
|
+
easeOutQuart: (t: number) => number;
|
|
17
|
+
easeInOutQuart: (t: number) => number;
|
|
18
|
+
easeInQuint: (t: number) => number;
|
|
19
|
+
easeOutQuint: (t: number) => number;
|
|
20
|
+
easeInOutQuint: (t: number) => number;
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
type useGlyphToSvgOptions = {
|
|
24
|
+
fontSize: Ref<number> | number;
|
|
25
|
+
fontWeight: Ref<number> | number;
|
|
26
|
+
fontFile: Ref<Font> | Font;
|
|
27
|
+
};
|
|
28
|
+
declare function useGlyphToSvg({ fontSize, fontWeight, fontFile, }: useGlyphToSvgOptions): {
|
|
29
|
+
copySvg: (codePoint: string) => Promise<void>;
|
|
30
|
+
renderSvg: (codePoint: string) => Promise<string>;
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
type ScrollToTarget = string | Element | MaybeElement | MaybeComputedElementRef;
|
|
34
|
+
type ScrollToParent = ScrollToTarget | Window;
|
|
35
|
+
type ScrollToParams = {
|
|
36
|
+
parent?: Element | Window;
|
|
37
|
+
left: number;
|
|
38
|
+
top: number;
|
|
39
|
+
duration?: {
|
|
40
|
+
x?: number;
|
|
41
|
+
y?: number;
|
|
42
|
+
};
|
|
43
|
+
easing?: EasingFunction;
|
|
44
|
+
callback?: () => void;
|
|
45
|
+
};
|
|
46
|
+
type getScrollDurationParams = {
|
|
47
|
+
parent: Element | Window;
|
|
48
|
+
left: number;
|
|
49
|
+
top: number;
|
|
50
|
+
speed: number;
|
|
51
|
+
};
|
|
52
|
+
type scrollToTargetParams = {
|
|
53
|
+
target: ScrollToTarget;
|
|
54
|
+
parent?: ScrollToParent;
|
|
55
|
+
offset?: {
|
|
56
|
+
x?: number;
|
|
57
|
+
y?: number;
|
|
58
|
+
};
|
|
59
|
+
speed?: number;
|
|
60
|
+
easing?: EasingFunction;
|
|
61
|
+
};
|
|
62
|
+
declare function useScrollTo(): {
|
|
63
|
+
getScrollPosition: (element: Element | Window) => {
|
|
64
|
+
x: number;
|
|
65
|
+
y: number;
|
|
66
|
+
};
|
|
67
|
+
getDistance: (element: Element) => {
|
|
68
|
+
top: number;
|
|
69
|
+
left: number;
|
|
70
|
+
};
|
|
71
|
+
getScrollDuration: ({ parent, left, top, speed, }: getScrollDurationParams) => {
|
|
72
|
+
x: number;
|
|
73
|
+
y: number;
|
|
74
|
+
};
|
|
75
|
+
scrollTo: ({ parent, top, left, duration, easing, callback, }: ScrollToParams) => void;
|
|
76
|
+
scrollToTarget: ({ target, parent, offset, speed, easing, }: scrollToTargetParams) => void;
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
type UseViewportDimensionsOptions = {
|
|
80
|
+
width?: false | string;
|
|
81
|
+
height?: false | string;
|
|
82
|
+
initialWidth?: false | string;
|
|
83
|
+
initialHeight?: false | string;
|
|
84
|
+
};
|
|
85
|
+
declare function useViewportDimensions(options?: UseViewportDimensionsOptions): void;
|
|
86
|
+
|
|
87
|
+
export { EasingFunction, EasingKey, ScrollToParams, ScrollToParent, ScrollToTarget, UseViewportDimensionsOptions, getScrollDurationParams, scrollToTargetParams, useEasings, useGlyphToSvg, useGlyphToSvgOptions, useScrollTo, useViewportDimensions };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var S=Object.defineProperty;var D=Object.getOwnPropertyDescriptor;var M=Object.getOwnPropertyNames;var W=Object.prototype.hasOwnProperty;var X=(t,e)=>{for(var s in e)S(t,s,{get:e[s],enumerable:!0})},$=(t,e,s,p)=>{if(e&&typeof e=="object"||typeof e=="function")for(let u of M(e))!W.call(t,u)&&u!==s&&S(t,u,{get:()=>e[u],enumerable:!(p=D(e,u))||p.enumerable});return t};var R=t=>$(S({},"__esModule",{value:!0}),t);var G={};X(G,{useEasings:()=>F,useGlyphToSvg:()=>Y,useScrollTo:()=>H,useViewportDimensions:()=>B});module.exports=R(G);function F(){return{linear:e=>e,easeInQuad:e=>e*e,easeOutQuad:e=>e*(2-e),easeInOutQuad:e=>e<.5?2*e*e:-1+(4-2*e)*e,easeInCubic:e=>e*e*e,easeOutCubic:e=>--e*e*e+1,easeInOutCubic:e=>e<.5?4*e*e*e:(e-1)*(2*e-2)*(2*e-2)+1,easeInQuart:e=>e*e*e*e,easeOutQuart:e=>1- --e*e*e*e,easeInOutQuart:e=>e<.5?8*e*e*e*e:1-8*--e*e*e*e,easeInQuint:e=>e*e*e*e*e,easeOutQuint:e=>1+--e*e*e*e*e,easeInOutQuint:e=>e<.5?16*e*e*e*e*e:1+16*--e*e*e*e*e}}var P=require("@vueuse/core"),w=require("vue");function Y({fontSize:t,fontWeight:e,fontFile:s}){let{copy:p}=(0,P.useClipboard)(),u=(0,w.unref)(s),n=(0,w.unref)(t),o=(0,w.unref)(e),c=()=>u.getVariation({wght:o}),f=r=>{let i=n/u.unitsPerEm,a=r.path.scale(i,i).scale(-1,1).rotate(Math.PI),l=a.bbox,g=l.minX,y=l.minY,E=l.height,v=l.width,b=(0,w.unref)(t),h=(E-b)/2+y,O=`<svg xmlns="http://www.w3.org/2000/svg" viewBox="${`${(v-b)/2+g} ${h} ${b} ${b}`}" xmlns:xlink="http://www.w3.org/1999/xlink">`;return O+=`<path d="${a.toSVG()}" fill="currentColor" />`,O+="</svg>",O},d=async r=>{let a=(await c()).glyphForCodePoint(r);return f(a)};return{copySvg:async r=>{let i=await d(r);p(i)},renderSvg:d}}var Q=require("@vueuse/core"),I=F();function C(t,e){return t<e?t:e}function V(t){return t===window?t:typeof t=="string"?document.querySelector(t)||document.documentElement:(0,Q.unrefElement)(t)||document.documentElement}function q(t,e){return typeof t=="string"?(e===window?document:e).querySelector(t):(0,Q.unrefElement)(t)}function H(){function t(n){return n===window?{x:window.pageXOffset,y:window.pageYOffset}:n instanceof Element?{x:n.scrollLeft,y:n.scrollTop}:{x:0,y:0}}function e(n){let o=n.getBoundingClientRect(),c=document.scrollingElement||document.documentElement;return{top:o.top+c.scrollTop,left:o.left+c.scrollLeft}}function s({parent:n=document.documentElement||document.body,left:o=0,top:c=0,speed:f=500}){let d=t(n),m=d.x-o,r=d.y-c,i=Math.abs(m/f*100),a=Math.abs(r/f*100);return{x:i,y:a}}function p({parent:n=document.documentElement||document.body,top:o,left:c,duration:f={},easing:d=I.easeOutQuad,callback:m}){let r=Date.now(),{x:i,y:a}=t(n);if(i===o&&a===c){m&&m();return}let l={x:500,y:500,...f},g=()=>{let y=Date.now(),E=C(1,(y-r)/l.x),v=C(1,(y-r)/l.y),b=d(E),h=d(v),T=Math.min(b,h);n.scroll({left:T*(c-i)+i,top:T*(o-a)+a}),b<1||h<1?requestAnimationFrame(g):m&&m()};requestAnimationFrame(g)}function u({target:n,parent:o=document.documentElement||document.body,offset:c={},speed:f=500,easing:d=I.easeOutQuad}){let m=V(o);if(!m)return;let r=q(n,m);if(!r)return;let i={x:0,y:0,...c},a=e(r),l=a.left-i.x,g=a.top-i.y,y=s({parent:m,left:l,top:g,speed:f});p({parent:m,left:l,top:g,duration:y,easing:d})}return{getScrollPosition:t,getDistance:e,getScrollDuration:s,scrollTo:p,scrollToTarget:u}}var x=require("vue");function B(t){let e={width:"--vw",height:"--vh",initialWidth:"--initial-vw",initialHeight:"--initial-vh",...t},s=n=>{let o=Number(window.innerWidth*.01).toFixed(2);e.width&&document.documentElement.style.setProperty(e.width,`${o}px`),n&&e.initialWidth&&document.documentElement.style.setProperty(e.initialWidth,`${o}px`)},p=n=>{let o=Number(window.innerHeight*.01).toFixed(2);e.height&&document.documentElement.style.setProperty(e.height||"--vh",`${o}px`),n&&e.initialHeight&&document.documentElement.style.setProperty(e.initialHeight||"--initial-vh",`${o}px`)},u=()=>{s(),p()};(0,x.onMounted)(()=>{s(!0),p(!0),window.addEventListener("resize",u,{passive:!0})}),(0,x.onUnmounted)(()=>{window.addEventListener("resize",u,{passive:!0})})}0&&(module.exports={useEasings,useGlyphToSvg,useScrollTo,useViewportDimensions});
|
|
2
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../packages/composables/index.ts","../../packages/composables/useEasings/index.ts","../../packages/composables/useGlyphToSvg/index.ts","../../packages/composables/useScrollTo/index.ts","../../packages/composables/useViewportDimensions/index.ts"],"sourcesContent":["export * from './useEasings'\nexport * from './useGlyphToSvg'\nexport * from './useScrollTo'\nexport * from './useViewportDimensions'\n","export type EasingKey =\n | 'linear'\n | 'easeInQuad'\n | 'easeOutQuad'\n | 'easeInOutQuad'\n | 'easeInCubic'\n | 'easeOutCubic'\n | 'easeInOutCubic'\n | 'easeInQuart'\n | 'easeOutQuart'\n | 'easeInOutQuart'\n | 'easeInQuint'\n | 'easeOutQuint'\n | 'easeInOutQuint'\n\nexport type EasingFunction = (t: number) => number\n\nexport function useEasings() {\n const easings = {\n linear: (t: number) => t,\n easeInQuad: (t: number) => t * t,\n easeOutQuad: (t: number) => t * (2 - t),\n easeInOutQuad: (t: number) => (t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t),\n easeInCubic: (t: number) => t * t * t,\n easeOutCubic: (t: number) => --t * t * t + 1,\n easeInOutCubic: (t: number) =>\n t < 0.5 ? 4 * t * t * t : (t - 1) * (2 * t - 2) * (2 * t - 2) + 1,\n easeInQuart: (t: number) => t * t * t * t,\n easeOutQuart: (t: number) => 1 - --t * t * t * t,\n easeInOutQuart: (t: number) =>\n t < 0.5 ? 8 * t * t * t * t : 1 - 8 * --t * t * t * t,\n easeInQuint: (t: number) => t * t * t * t * t,\n easeOutQuint: (t: number) => 1 + --t * t * t * t * t,\n easeInOutQuint: (t: number) =>\n t < 0.5 ? 16 * t * t * t * t * t : 1 + 16 * --t * t * t * t * t,\n }\n\n return easings\n}\n","import { useClipboard } from '@vueuse/core'\nimport { unref } from 'vue'\n\nimport type { Ref } from 'vue'\nimport type { Font } from 'fontkit'\n\nexport type useGlyphToSvgOptions = {\n fontSize: Ref<number> | number\n fontWeight: Ref<number> | number\n fontFile: Ref<Font> | Font\n}\n\nexport function useGlyphToSvg({\n fontSize,\n fontWeight,\n fontFile,\n}: useGlyphToSvgOptions) {\n const { copy } = useClipboard()\n const mappedFontFile = unref(fontFile)\n const mappedFontSize = unref(fontSize)\n const mappedFontWeight = unref(fontWeight)\n\n const loadVariableFont = () => {\n // @ts-ignore\n const variableFont = mappedFontFile.getVariation({\n wght: mappedFontWeight,\n })\n return variableFont\n }\n\n const convertToSvg = (glyph: any) => {\n // Scale according to current font size\n const scale = mappedFontSize / mappedFontFile.unitsPerEm\n const path = glyph.path.scale(scale, scale).scale(-1, 1).rotate(Math.PI)\n\n // Center inside square bounding box\n const bbox = path.bbox\n const minX = bbox.minX\n const minY = bbox.minY\n const height = bbox.height\n const width = bbox.width\n const dims = unref(fontSize)\n\n const centeredY = (height - dims) / 2 + minY\n const centeredX = (width - dims) / 2 + minX\n\n const viewBox = `${centeredX} ${centeredY} ${dims} ${dims}`\n\n let svg = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"${viewBox}\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">`\n svg += `<path d=\"${path.toSVG()}\" fill=\"currentColor\" />`\n svg += '</svg>'\n\n return svg\n }\n\n const renderSvg = async (codePoint: string) => {\n const font = await loadVariableFont()\n const glyph = font.glyphForCodePoint(codePoint)\n const svg = convertToSvg(glyph)\n return svg\n }\n\n const copySvg = async (codePoint: string) => {\n const svg = await renderSvg(codePoint)\n copy(svg)\n }\n\n return { copySvg, renderSvg }\n}\n","import { useEasings } from '../useEasings'\nimport { unrefElement } from '@vueuse/core'\nimport type { EasingFunction } from '../useEasings'\nimport type { MaybeComputedElementRef, MaybeElement } from '@vueuse/core'\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?: EasingFunction\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?: EasingFunction\n}\n\nconst easings = useEasings()\n\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\nexport function useScrollTo() {\n function getScrollPosition(element: Element | Window): {\n x: number\n y: number\n } {\n if (element === window) {\n return { x: window.pageXOffset, y: window.pageYOffset }\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(element: Element): { top: number; left: number } {\n const rect = element.getBoundingClientRect()\n const scrollEl = document.scrollingElement || document.documentElement\n\n return {\n top: rect.top + scrollEl.scrollTop,\n left: rect.left + scrollEl.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 = easings.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 = easings.easeOutQuad,\n }: scrollToTargetParams) {\n let parentEl = unwrapParent(parent)\n if (!parentEl) return\n let targetEl = unwrapTarget(target, parentEl)\n if (!targetEl) return\n\n const mappedOffset = { x: 0, y: 0, ...offset }\n const distance = getDistance(targetEl)\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 })\n }\n\n return {\n getScrollPosition,\n getDistance,\n getScrollDuration,\n scrollTo,\n scrollToTarget,\n }\n}\n","import { onMounted, onUnmounted } from 'vue'\n\nexport type UseViewportDimensionsOptions = {\n width?: false | string\n height?: false | string\n initialWidth?: false | string\n initialHeight?: false | string\n}\n\nexport function useViewportDimensions(options?: UseViewportDimensionsOptions) {\n const mappedOptions = {\n width: '--vw',\n height: '--vh',\n initialWidth: '--initial-vw',\n initialHeight: '--initial-vh',\n ...options,\n }\n\n const setViewportWidth = (initial?: boolean) => {\n const vw = Number(window.innerWidth * 0.01).toFixed(2)\n\n if (mappedOptions.width) {\n document.documentElement.style.setProperty(mappedOptions.width, `${vw}px`)\n }\n\n if (initial && mappedOptions.initialWidth) {\n document.documentElement.style.setProperty(\n mappedOptions.initialWidth,\n `${vw}px`\n )\n }\n }\n\n const setViewportHeight = (initial?: boolean) => {\n const vh = Number(window.innerHeight * 0.01).toFixed(2)\n\n if (mappedOptions.height) {\n document.documentElement.style.setProperty(\n mappedOptions.height || '--vh',\n `${vh}px`\n )\n }\n\n if (initial && mappedOptions.initialHeight) {\n document.documentElement.style.setProperty(\n mappedOptions.initialHeight || '--initial-vh',\n `${vh}px`\n )\n }\n }\n\n const setDimensions = () => {\n setViewportWidth()\n setViewportHeight()\n }\n\n onMounted(() => {\n setViewportWidth(true)\n setViewportHeight(true)\n\n window.addEventListener('resize', setDimensions, { passive: true })\n })\n\n onUnmounted(() => {\n window.addEventListener('resize', setDimensions, { passive: true })\n })\n}\n"],"mappings":"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","names":["composables_exports","__export","useEasings","useGlyphToSvg","useScrollTo","useViewportDimensions","__toCommonJS","useEasings","t","import_core","import_vue","useGlyphToSvg","fontSize","fontWeight","fontFile","copy","mappedFontFile","mappedFontSize","mappedFontWeight","loadVariableFont","convertToSvg","glyph","scale","path","bbox","minX","minY","height","width","dims","centeredY","svg","renderSvg","codePoint","import_core","easings","useEasings","min","a","b","unwrapParent","parent","unwrapTarget","target","parentEl","useScrollTo","getScrollPosition","element","getDistance","rect","scrollEl","getScrollDuration","left","top","speed","currentPos","distanceX","distanceY","durationX","durationY","scrollTo","duration","easing","callback","startTime","fromX","fromY","mappedDuration","scroll","currentTime","timeX","timeY","easedTimeX","easedTimeY","minTime","scrollToTarget","offset","targetEl","mappedOffset","distance","leftDistance","topDistance","scrollDuration","import_vue","useViewportDimensions","options","mappedOptions","setViewportWidth","initial","vw","setViewportHeight","vh","setDimensions"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
function O(){return{linear:e=>e,easeInQuad:e=>e*e,easeOutQuad:e=>e*(2-e),easeInOutQuad:e=>e<.5?2*e*e:-1+(4-2*e)*e,easeInCubic:e=>e*e*e,easeOutCubic:e=>--e*e*e+1,easeInOutCubic:e=>e<.5?4*e*e*e:(e-1)*(2*e-2)*(2*e-2)+1,easeInQuart:e=>e*e*e*e,easeOutQuart:e=>1- --e*e*e*e,easeInOutQuart:e=>e<.5?8*e*e*e*e:1-8*--e*e*e*e,easeInQuint:e=>e*e*e*e*e,easeOutQuint:e=>1+--e*e*e*e*e,easeInOutQuint:e=>e<.5?16*e*e*e*e*e:1+16*--e*e*e*e*e}}import{useClipboard as P}from"@vueuse/core";import{unref as h}from"vue";function Y({fontSize:t,fontWeight:e,fontFile:l}){let{copy:d}=P(),f=h(l),n=h(t),o=h(e),a=()=>f.getVariation({wght:o}),p=r=>{let i=n/f.unitsPerEm,s=r.path.scale(i,i).scale(-1,1).rotate(Math.PI),m=s.bbox,g=m.minX,y=m.minY,x=m.height,E=m.width,b=h(t),w=(x-b)/2+y,T=`<svg xmlns="http://www.w3.org/2000/svg" viewBox="${`${(E-b)/2+g} ${w} ${b} ${b}`}" xmlns:xlink="http://www.w3.org/1999/xlink">`;return T+=`<path d="${s.toSVG()}" fill="currentColor" />`,T+="</svg>",T},c=async r=>{let s=(await a()).glyphForCodePoint(r);return p(s)};return{copySvg:async r=>{let i=await c(r);d(i)},renderSvg:c}}import{unrefElement as Q}from"@vueuse/core";var S=O();function F(t,e){return t<e?t:e}function I(t){return t===window?t:typeof t=="string"?document.querySelector(t)||document.documentElement:Q(t)||document.documentElement}function C(t,e){return typeof t=="string"?(e===window?document:e).querySelector(t):Q(t)}function B(){function t(n){return n===window?{x:window.pageXOffset,y:window.pageYOffset}:n instanceof Element?{x:n.scrollLeft,y:n.scrollTop}:{x:0,y:0}}function e(n){let o=n.getBoundingClientRect(),a=document.scrollingElement||document.documentElement;return{top:o.top+a.scrollTop,left:o.left+a.scrollLeft}}function l({parent:n=document.documentElement||document.body,left:o=0,top:a=0,speed:p=500}){let c=t(n),u=c.x-o,r=c.y-a,i=Math.abs(u/p*100),s=Math.abs(r/p*100);return{x:i,y:s}}function d({parent:n=document.documentElement||document.body,top:o,left:a,duration:p={},easing:c=S.easeOutQuad,callback:u}){let r=Date.now(),{x:i,y:s}=t(n);if(i===o&&s===a){u&&u();return}let m={x:500,y:500,...p},g=()=>{let y=Date.now(),x=F(1,(y-r)/m.x),E=F(1,(y-r)/m.y),b=c(x),w=c(E),v=Math.min(b,w);n.scroll({left:v*(a-i)+i,top:v*(o-s)+s}),b<1||w<1?requestAnimationFrame(g):u&&u()};requestAnimationFrame(g)}function f({target:n,parent:o=document.documentElement||document.body,offset:a={},speed:p=500,easing:c=S.easeOutQuad}){let u=I(o);if(!u)return;let r=C(n,u);if(!r)return;let i={x:0,y:0,...a},s=e(r),m=s.left-i.x,g=s.top-i.y,y=l({parent:u,left:m,top:g,speed:p});d({parent:u,left:m,top:g,duration:y,easing:c})}return{getScrollPosition:t,getDistance:e,getScrollDuration:l,scrollTo:d,scrollToTarget:f}}import{onMounted as D,onUnmounted as M}from"vue";function z(t){let e={width:"--vw",height:"--vh",initialWidth:"--initial-vw",initialHeight:"--initial-vh",...t},l=n=>{let o=Number(window.innerWidth*.01).toFixed(2);e.width&&document.documentElement.style.setProperty(e.width,`${o}px`),n&&e.initialWidth&&document.documentElement.style.setProperty(e.initialWidth,`${o}px`)},d=n=>{let o=Number(window.innerHeight*.01).toFixed(2);e.height&&document.documentElement.style.setProperty(e.height||"--vh",`${o}px`),n&&e.initialHeight&&document.documentElement.style.setProperty(e.initialHeight||"--initial-vh",`${o}px`)},f=()=>{l(),d()};D(()=>{l(!0),d(!0),window.addEventListener("resize",f,{passive:!0})}),M(()=>{window.addEventListener("resize",f,{passive:!0})})}export{O as useEasings,Y as useGlyphToSvg,B as useScrollTo,z as useViewportDimensions};
|
|
2
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../packages/composables/useEasings/index.ts","../../packages/composables/useGlyphToSvg/index.ts","../../packages/composables/useScrollTo/index.ts","../../packages/composables/useViewportDimensions/index.ts"],"sourcesContent":["export type EasingKey =\n | 'linear'\n | 'easeInQuad'\n | 'easeOutQuad'\n | 'easeInOutQuad'\n | 'easeInCubic'\n | 'easeOutCubic'\n | 'easeInOutCubic'\n | 'easeInQuart'\n | 'easeOutQuart'\n | 'easeInOutQuart'\n | 'easeInQuint'\n | 'easeOutQuint'\n | 'easeInOutQuint'\n\nexport type EasingFunction = (t: number) => number\n\nexport function useEasings() {\n const easings = {\n linear: (t: number) => t,\n easeInQuad: (t: number) => t * t,\n easeOutQuad: (t: number) => t * (2 - t),\n easeInOutQuad: (t: number) => (t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t),\n easeInCubic: (t: number) => t * t * t,\n easeOutCubic: (t: number) => --t * t * t + 1,\n easeInOutCubic: (t: number) =>\n t < 0.5 ? 4 * t * t * t : (t - 1) * (2 * t - 2) * (2 * t - 2) + 1,\n easeInQuart: (t: number) => t * t * t * t,\n easeOutQuart: (t: number) => 1 - --t * t * t * t,\n easeInOutQuart: (t: number) =>\n t < 0.5 ? 8 * t * t * t * t : 1 - 8 * --t * t * t * t,\n easeInQuint: (t: number) => t * t * t * t * t,\n easeOutQuint: (t: number) => 1 + --t * t * t * t * t,\n easeInOutQuint: (t: number) =>\n t < 0.5 ? 16 * t * t * t * t * t : 1 + 16 * --t * t * t * t * t,\n }\n\n return easings\n}\n","import { useClipboard } from '@vueuse/core'\nimport { unref } from 'vue'\n\nimport type { Ref } from 'vue'\nimport type { Font } from 'fontkit'\n\nexport type useGlyphToSvgOptions = {\n fontSize: Ref<number> | number\n fontWeight: Ref<number> | number\n fontFile: Ref<Font> | Font\n}\n\nexport function useGlyphToSvg({\n fontSize,\n fontWeight,\n fontFile,\n}: useGlyphToSvgOptions) {\n const { copy } = useClipboard()\n const mappedFontFile = unref(fontFile)\n const mappedFontSize = unref(fontSize)\n const mappedFontWeight = unref(fontWeight)\n\n const loadVariableFont = () => {\n // @ts-ignore\n const variableFont = mappedFontFile.getVariation({\n wght: mappedFontWeight,\n })\n return variableFont\n }\n\n const convertToSvg = (glyph: any) => {\n // Scale according to current font size\n const scale = mappedFontSize / mappedFontFile.unitsPerEm\n const path = glyph.path.scale(scale, scale).scale(-1, 1).rotate(Math.PI)\n\n // Center inside square bounding box\n const bbox = path.bbox\n const minX = bbox.minX\n const minY = bbox.minY\n const height = bbox.height\n const width = bbox.width\n const dims = unref(fontSize)\n\n const centeredY = (height - dims) / 2 + minY\n const centeredX = (width - dims) / 2 + minX\n\n const viewBox = `${centeredX} ${centeredY} ${dims} ${dims}`\n\n let svg = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"${viewBox}\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">`\n svg += `<path d=\"${path.toSVG()}\" fill=\"currentColor\" />`\n svg += '</svg>'\n\n return svg\n }\n\n const renderSvg = async (codePoint: string) => {\n const font = await loadVariableFont()\n const glyph = font.glyphForCodePoint(codePoint)\n const svg = convertToSvg(glyph)\n return svg\n }\n\n const copySvg = async (codePoint: string) => {\n const svg = await renderSvg(codePoint)\n copy(svg)\n }\n\n return { copySvg, renderSvg }\n}\n","import { useEasings } from '../useEasings'\nimport { unrefElement } from '@vueuse/core'\nimport type { EasingFunction } from '../useEasings'\nimport type { MaybeComputedElementRef, MaybeElement } from '@vueuse/core'\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?: EasingFunction\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?: EasingFunction\n}\n\nconst easings = useEasings()\n\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\nexport function useScrollTo() {\n function getScrollPosition(element: Element | Window): {\n x: number\n y: number\n } {\n if (element === window) {\n return { x: window.pageXOffset, y: window.pageYOffset }\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(element: Element): { top: number; left: number } {\n const rect = element.getBoundingClientRect()\n const scrollEl = document.scrollingElement || document.documentElement\n\n return {\n top: rect.top + scrollEl.scrollTop,\n left: rect.left + scrollEl.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 = easings.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 = easings.easeOutQuad,\n }: scrollToTargetParams) {\n let parentEl = unwrapParent(parent)\n if (!parentEl) return\n let targetEl = unwrapTarget(target, parentEl)\n if (!targetEl) return\n\n const mappedOffset = { x: 0, y: 0, ...offset }\n const distance = getDistance(targetEl)\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 })\n }\n\n return {\n getScrollPosition,\n getDistance,\n getScrollDuration,\n scrollTo,\n scrollToTarget,\n }\n}\n","import { onMounted, onUnmounted } from 'vue'\n\nexport type UseViewportDimensionsOptions = {\n width?: false | string\n height?: false | string\n initialWidth?: false | string\n initialHeight?: false | string\n}\n\nexport function useViewportDimensions(options?: UseViewportDimensionsOptions) {\n const mappedOptions = {\n width: '--vw',\n height: '--vh',\n initialWidth: '--initial-vw',\n initialHeight: '--initial-vh',\n ...options,\n }\n\n const setViewportWidth = (initial?: boolean) => {\n const vw = Number(window.innerWidth * 0.01).toFixed(2)\n\n if (mappedOptions.width) {\n document.documentElement.style.setProperty(mappedOptions.width, `${vw}px`)\n }\n\n if (initial && mappedOptions.initialWidth) {\n document.documentElement.style.setProperty(\n mappedOptions.initialWidth,\n `${vw}px`\n )\n }\n }\n\n const setViewportHeight = (initial?: boolean) => {\n const vh = Number(window.innerHeight * 0.01).toFixed(2)\n\n if (mappedOptions.height) {\n document.documentElement.style.setProperty(\n mappedOptions.height || '--vh',\n `${vh}px`\n )\n }\n\n if (initial && mappedOptions.initialHeight) {\n document.documentElement.style.setProperty(\n mappedOptions.initialHeight || '--initial-vh',\n `${vh}px`\n )\n }\n }\n\n const setDimensions = () => {\n setViewportWidth()\n setViewportHeight()\n }\n\n onMounted(() => {\n setViewportWidth(true)\n setViewportHeight(true)\n\n window.addEventListener('resize', setDimensions, { passive: true })\n })\n\n onUnmounted(() => {\n window.addEventListener('resize', setDimensions, { passive: true })\n })\n}\n"],"mappings":"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","names":["useEasings","t","useClipboard","unref","useGlyphToSvg","fontSize","fontWeight","fontFile","copy","mappedFontFile","mappedFontSize","mappedFontWeight","loadVariableFont","convertToSvg","glyph","scale","path","bbox","minX","minY","height","width","dims","centeredY","svg","renderSvg","codePoint","unrefElement","easings","useEasings","min","a","b","unwrapParent","parent","unwrapTarget","target","parentEl","useScrollTo","getScrollPosition","element","getDistance","rect","scrollEl","getScrollDuration","left","top","speed","currentPos","distanceX","distanceY","durationX","durationY","scrollTo","duration","easing","callback","startTime","fromX","fromY","mappedDuration","scroll","currentTime","timeX","timeY","easedTimeX","easedTimeY","minTime","scrollToTarget","offset","targetEl","mappedOffset","distance","leftDistance","topDistance","scrollDuration","onMounted","onUnmounted","useViewportDimensions","options","mappedOptions","setViewportWidth","initial","vw","setViewportHeight","vh","setDimensions"]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as _nuxt_schema from '@nuxt/schema';
|
|
2
|
+
|
|
3
|
+
interface ModuleOptions {
|
|
4
|
+
autoImportPlugins?: boolean;
|
|
5
|
+
autoImportComposables?: boolean;
|
|
6
|
+
plugins?: string[];
|
|
7
|
+
composables?: string[];
|
|
8
|
+
}
|
|
9
|
+
declare const _default: _nuxt_schema.NuxtModule<ModuleOptions>;
|
|
10
|
+
|
|
11
|
+
export { ModuleOptions, _default as default };
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import { defineNuxtModule, createResolver, addPlugin, addImportsDir, addImportsSources } from '@nuxt/kit';
|
|
2
|
+
|
|
3
|
+
const packages = {
|
|
4
|
+
composables: {
|
|
5
|
+
name: "composables",
|
|
6
|
+
display: "Vue Equipment Composables",
|
|
7
|
+
description: "A magic collection of Vue composables",
|
|
8
|
+
dir: "packages/composables"
|
|
9
|
+
},
|
|
10
|
+
plugins: {
|
|
11
|
+
name: "plugins",
|
|
12
|
+
display: "Vue Equipment Plugins",
|
|
13
|
+
description: "A magic collection of Vue plugins",
|
|
14
|
+
dir: "packages/plugins"
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
const functions = [
|
|
18
|
+
{
|
|
19
|
+
name: "MagicModal",
|
|
20
|
+
"package": "plugins",
|
|
21
|
+
lastUpdated: 1689600576000,
|
|
22
|
+
docs: "https://maas.egineering/vue-equipment/plugins/MagicModal/",
|
|
23
|
+
description: "modal"
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
name: "MagicPlayer",
|
|
27
|
+
"package": "plugins",
|
|
28
|
+
lastUpdated: 1690289302000,
|
|
29
|
+
docs: "https://maas.egineering/vue-equipment/plugins/MagicPlayer/",
|
|
30
|
+
description: "player"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
name: "MagicScroll",
|
|
34
|
+
"package": "plugins",
|
|
35
|
+
lastUpdated: 1689669455000,
|
|
36
|
+
docs: "https://maas.egineering/vue-equipment/plugins/MagicScroll/",
|
|
37
|
+
description: "scroll"
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
name: "useEasings",
|
|
41
|
+
"package": "composables",
|
|
42
|
+
lastUpdated: 1682351430000,
|
|
43
|
+
docs: "https://maas.egineering/vue-equipment/composables/useEasings/",
|
|
44
|
+
description: "easings as functions"
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
name: "useGlyphToSvg",
|
|
48
|
+
"package": "composables",
|
|
49
|
+
lastUpdated: 1690192429000,
|
|
50
|
+
docs: "https://maas.egineering/vue-equipment/composables/useGlyphToSvg/",
|
|
51
|
+
description: "render [fontkit](https://github.com/foliojs/fontkit) glyphs as SVG"
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
name: "useScrollTo",
|
|
55
|
+
"package": "composables",
|
|
56
|
+
lastUpdated: 1682404778000,
|
|
57
|
+
docs: "https://maas.egineering/vue-equipment/composables/useScrollTo/",
|
|
58
|
+
description: "scroll to element with a set speed"
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
name: "useViewportDimensions",
|
|
62
|
+
"package": "composables",
|
|
63
|
+
lastUpdated: 1690194481000,
|
|
64
|
+
docs: "https://maas.egineering/vue-equipment/composables/useViewportDimensions/",
|
|
65
|
+
description: "attach viewport dimensions as css variables to the document"
|
|
66
|
+
}
|
|
67
|
+
];
|
|
68
|
+
const metadata = {
|
|
69
|
+
packages: packages,
|
|
70
|
+
functions: functions
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
const module = defineNuxtModule({
|
|
74
|
+
meta: {
|
|
75
|
+
name: "@maas/vue-equipment",
|
|
76
|
+
configKey: "vueEquipment"
|
|
77
|
+
},
|
|
78
|
+
defaults: {
|
|
79
|
+
autoImportPlugins: false,
|
|
80
|
+
autoImportComposables: false,
|
|
81
|
+
plugins: [],
|
|
82
|
+
composables: []
|
|
83
|
+
},
|
|
84
|
+
async setup(options, nuxt) {
|
|
85
|
+
let plugins;
|
|
86
|
+
let composables;
|
|
87
|
+
const resolver = createResolver(import.meta.url);
|
|
88
|
+
nuxt.options.build.transpile.push("@maas/vue-equipment");
|
|
89
|
+
nuxt.options.alias = nuxt.options.alias || {};
|
|
90
|
+
const packages = ["plugins", "composables"];
|
|
91
|
+
packages.forEach((pkg) => {
|
|
92
|
+
nuxt.options.alias[`@maas/vue-equipment/${pkg}`] = nuxt.options.alias[`@maas/vue-equipment/${pkg}`] || resolver.resolve(`../${pkg}`);
|
|
93
|
+
});
|
|
94
|
+
if (options.autoImportPlugins) {
|
|
95
|
+
plugins = metadata.functions.filter((fn) => fn.package === "plugins").map((fn) => fn.name);
|
|
96
|
+
} else {
|
|
97
|
+
plugins = options.plugins || [];
|
|
98
|
+
}
|
|
99
|
+
for (const plugin of plugins) {
|
|
100
|
+
const nuxtPlugin = await resolver.resolvePath(
|
|
101
|
+
`@maas/vue-equipment/plugins/${plugin}/nuxt`
|
|
102
|
+
);
|
|
103
|
+
const composablesDir = await resolver.resolvePath(
|
|
104
|
+
`@maas/vue-equipment/plugins/${plugin}/src/composables`
|
|
105
|
+
);
|
|
106
|
+
addPlugin(nuxtPlugin);
|
|
107
|
+
addImportsDir(composablesDir, {
|
|
108
|
+
prepend: true
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
if (options.autoImportComposables) {
|
|
112
|
+
composables = metadata.functions.filter((fn) => fn.package === "composables").map((fn) => fn.name);
|
|
113
|
+
} else {
|
|
114
|
+
composables = options.composables || [];
|
|
115
|
+
}
|
|
116
|
+
addImportsSources({
|
|
117
|
+
from: "@maas/vue-equipment/composables",
|
|
118
|
+
imports: composables
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
});
|
|
122
|
+
|
|
123
|
+
export { module as default };
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
|
|
2
|
+
import { ModuleOptions } from './module'
|
|
3
|
+
|
|
4
|
+
declare module '@nuxt/schema' {
|
|
5
|
+
interface NuxtConfig { ['vueEquipment']?: Partial<ModuleOptions> }
|
|
6
|
+
interface NuxtOptions { ['vueEquipment']?: ModuleOptions }
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
declare module 'nuxt/schema' {
|
|
10
|
+
interface NuxtConfig { ['vueEquipment']?: Partial<ModuleOptions> }
|
|
11
|
+
interface NuxtOptions { ['vueEquipment']?: ModuleOptions }
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
export { ModuleOptions, default } from './module'
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import MagicModalComponent from "./src/components/MagicModal.vue";
|
|
2
|
+
import { useModalApi } from "./src/composables/useModalApi.mjs";
|
|
3
|
+
const MagicModal = {
|
|
4
|
+
install: (app) => {
|
|
5
|
+
app.component("MagicModal", MagicModalComponent);
|
|
6
|
+
}
|
|
7
|
+
};
|
|
8
|
+
export { MagicModal, useModalApi };
|