@vuetify/nightly 3.6.8-master.2024-06-07 → 3.6.8-master.2024-06-11

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.
@@ -1,5 +1,37 @@
1
1
  import { Ref, ComponentPublicInstance, JSXComponent, PropType } from 'vue';
2
2
 
3
+ interface LocaleMessages {
4
+ [key: string]: LocaleMessages | string;
5
+ }
6
+ interface LocaleOptions {
7
+ messages?: LocaleMessages;
8
+ locale?: string;
9
+ fallback?: string;
10
+ adapter?: LocaleInstance;
11
+ }
12
+ interface LocaleInstance {
13
+ name: string;
14
+ messages: Ref<LocaleMessages>;
15
+ current: Ref<string>;
16
+ fallback: Ref<string>;
17
+ t: (key: string, ...params: unknown[]) => string;
18
+ n: (value: number) => string;
19
+ provide: (props: LocaleOptions) => LocaleInstance;
20
+ }
21
+ interface RtlOptions {
22
+ rtl?: Record<string, boolean>;
23
+ }
24
+
25
+ interface InternalGoToOptions {
26
+ container: ComponentPublicInstance | HTMLElement | string;
27
+ duration: number;
28
+ layout: boolean;
29
+ offset: number;
30
+ easing: string | ((t: number) => number);
31
+ patterns: Record<string, (t: number) => number>;
32
+ }
33
+ type GoToOptions = Partial<InternalGoToOptions>;
34
+
3
35
  interface DateAdapter<T = unknown> {
4
36
  date(value?: any): T | null;
5
37
  format(date: T, formatString: string): string;
@@ -45,28 +77,6 @@ interface DateAdapter<T = unknown> {
45
77
  setMinutes(date: T, minutes: number): T;
46
78
  }
47
79
 
48
- interface LocaleMessages {
49
- [key: string]: LocaleMessages | string;
50
- }
51
- interface LocaleOptions {
52
- messages?: LocaleMessages;
53
- locale?: string;
54
- fallback?: string;
55
- adapter?: LocaleInstance;
56
- }
57
- interface LocaleInstance {
58
- name: string;
59
- messages: Ref<LocaleMessages>;
60
- current: Ref<string>;
61
- fallback: Ref<string>;
62
- t: (key: string, ...params: unknown[]) => string;
63
- n: (value: number) => string;
64
- provide: (props: LocaleOptions) => LocaleInstance;
65
- }
66
- interface RtlOptions {
67
- rtl?: Record<string, boolean>;
68
- }
69
-
70
80
  interface DateInstance extends DateModule.InternalAdapter {
71
81
  locale?: any;
72
82
  }
@@ -131,36 +141,6 @@ interface OnColors {
131
141
  'on-info': string;
132
142
  }
133
143
 
134
- declare const breakpoints: readonly ["sm", "md", "lg", "xl", "xxl"];
135
- type Breakpoint = typeof breakpoints[number];
136
- type DisplayBreakpoint = 'xs' | Breakpoint;
137
- type DisplayThresholds = {
138
- [key in DisplayBreakpoint]: number;
139
- };
140
- interface DisplayOptions {
141
- mobileBreakpoint?: number | DisplayBreakpoint;
142
- thresholds?: Partial<DisplayThresholds>;
143
- }
144
- type SSROptions = boolean | {
145
- clientWidth: number;
146
- clientHeight?: number;
147
- };
148
-
149
- type DefaultsInstance = undefined | {
150
- [key: string]: undefined | Record<string, unknown>;
151
- global?: Record<string, unknown>;
152
- };
153
- type DefaultsOptions = Partial<DefaultsInstance>;
154
-
155
- interface GoToOptions {
156
- container: ComponentPublicInstance | HTMLElement | string;
157
- duration: number;
158
- layout: boolean;
159
- offset: number;
160
- easing: string | ((t: number) => number);
161
- patterns: Record<string, (t: number) => number>;
162
- }
163
-
164
144
  type IconValue = string | (string | [path: string, opacity: number])[] | JSXComponent;
165
145
  declare const IconValue: PropType<IconValue>;
166
146
  interface IconAliases {
@@ -210,11 +190,33 @@ type IconComponent = JSXComponent<IconProps>;
210
190
  interface IconSet {
211
191
  component: IconComponent;
212
192
  }
213
- type IconOptions = {
214
- defaultSet?: string;
215
- aliases?: Partial<IconAliases>;
216
- sets?: Record<string, IconSet>;
193
+ type InternalIconOptions = {
194
+ defaultSet: string;
195
+ aliases: Partial<IconAliases>;
196
+ sets: Record<string, IconSet>;
217
197
  };
198
+ type IconOptions = Partial<InternalIconOptions>;
199
+
200
+ declare const breakpoints: readonly ["sm", "md", "lg", "xl", "xxl"];
201
+ type Breakpoint = typeof breakpoints[number];
202
+ type DisplayBreakpoint = 'xs' | Breakpoint;
203
+ type DisplayThresholds = {
204
+ [key in DisplayBreakpoint]: number;
205
+ };
206
+ interface DisplayOptions {
207
+ mobileBreakpoint?: number | DisplayBreakpoint;
208
+ thresholds?: Partial<DisplayThresholds>;
209
+ }
210
+ type SSROptions = boolean | {
211
+ clientWidth: number;
212
+ clientHeight?: number;
213
+ };
214
+
215
+ type DefaultsInstance = undefined | {
216
+ [key: string]: undefined | Record<string, unknown>;
217
+ global?: Record<string, unknown>;
218
+ };
219
+ type DefaultsOptions = Partial<DefaultsInstance>;
218
220
 
219
221
  interface VuetifyOptions {
220
222
  aliases?: Record<string, any>;
@@ -1,5 +1,37 @@
1
1
  import { Ref, ComponentPublicInstance, JSXComponent, PropType } from 'vue';
2
2
 
3
+ interface LocaleMessages {
4
+ [key: string]: LocaleMessages | string;
5
+ }
6
+ interface LocaleOptions {
7
+ messages?: LocaleMessages;
8
+ locale?: string;
9
+ fallback?: string;
10
+ adapter?: LocaleInstance;
11
+ }
12
+ interface LocaleInstance {
13
+ name: string;
14
+ messages: Ref<LocaleMessages>;
15
+ current: Ref<string>;
16
+ fallback: Ref<string>;
17
+ t: (key: string, ...params: unknown[]) => string;
18
+ n: (value: number) => string;
19
+ provide: (props: LocaleOptions) => LocaleInstance;
20
+ }
21
+ interface RtlOptions {
22
+ rtl?: Record<string, boolean>;
23
+ }
24
+
25
+ interface InternalGoToOptions {
26
+ container: ComponentPublicInstance | HTMLElement | string;
27
+ duration: number;
28
+ layout: boolean;
29
+ offset: number;
30
+ easing: string | ((t: number) => number);
31
+ patterns: Record<string, (t: number) => number>;
32
+ }
33
+ type GoToOptions = Partial<InternalGoToOptions>;
34
+
3
35
  interface DateAdapter<T = unknown> {
4
36
  date(value?: any): T | null;
5
37
  format(date: T, formatString: string): string;
@@ -45,28 +77,6 @@ interface DateAdapter<T = unknown> {
45
77
  setMinutes(date: T, minutes: number): T;
46
78
  }
47
79
 
48
- interface LocaleMessages {
49
- [key: string]: LocaleMessages | string;
50
- }
51
- interface LocaleOptions {
52
- messages?: LocaleMessages;
53
- locale?: string;
54
- fallback?: string;
55
- adapter?: LocaleInstance;
56
- }
57
- interface LocaleInstance {
58
- name: string;
59
- messages: Ref<LocaleMessages>;
60
- current: Ref<string>;
61
- fallback: Ref<string>;
62
- t: (key: string, ...params: unknown[]) => string;
63
- n: (value: number) => string;
64
- provide: (props: LocaleOptions) => LocaleInstance;
65
- }
66
- interface RtlOptions {
67
- rtl?: Record<string, boolean>;
68
- }
69
-
70
80
  interface DateInstance extends DateModule.InternalAdapter {
71
81
  locale?: any;
72
82
  }
@@ -131,36 +141,6 @@ interface OnColors {
131
141
  'on-info': string;
132
142
  }
133
143
 
134
- declare const breakpoints: readonly ["sm", "md", "lg", "xl", "xxl"];
135
- type Breakpoint = typeof breakpoints[number];
136
- type DisplayBreakpoint = 'xs' | Breakpoint;
137
- type DisplayThresholds = {
138
- [key in DisplayBreakpoint]: number;
139
- };
140
- interface DisplayOptions {
141
- mobileBreakpoint?: number | DisplayBreakpoint;
142
- thresholds?: Partial<DisplayThresholds>;
143
- }
144
- type SSROptions = boolean | {
145
- clientWidth: number;
146
- clientHeight?: number;
147
- };
148
-
149
- type DefaultsInstance = undefined | {
150
- [key: string]: undefined | Record<string, unknown>;
151
- global?: Record<string, unknown>;
152
- };
153
- type DefaultsOptions = Partial<DefaultsInstance>;
154
-
155
- interface GoToOptions {
156
- container: ComponentPublicInstance | HTMLElement | string;
157
- duration: number;
158
- layout: boolean;
159
- offset: number;
160
- easing: string | ((t: number) => number);
161
- patterns: Record<string, (t: number) => number>;
162
- }
163
-
164
144
  type IconValue = string | (string | [path: string, opacity: number])[] | JSXComponent;
165
145
  declare const IconValue: PropType<IconValue>;
166
146
  interface IconAliases {
@@ -210,11 +190,33 @@ type IconComponent = JSXComponent<IconProps>;
210
190
  interface IconSet {
211
191
  component: IconComponent;
212
192
  }
213
- type IconOptions = {
214
- defaultSet?: string;
215
- aliases?: Partial<IconAliases>;
216
- sets?: Record<string, IconSet>;
193
+ type InternalIconOptions = {
194
+ defaultSet: string;
195
+ aliases: Partial<IconAliases>;
196
+ sets: Record<string, IconSet>;
217
197
  };
198
+ type IconOptions = Partial<InternalIconOptions>;
199
+
200
+ declare const breakpoints: readonly ["sm", "md", "lg", "xl", "xxl"];
201
+ type Breakpoint = typeof breakpoints[number];
202
+ type DisplayBreakpoint = 'xs' | Breakpoint;
203
+ type DisplayThresholds = {
204
+ [key in DisplayBreakpoint]: number;
205
+ };
206
+ interface DisplayOptions {
207
+ mobileBreakpoint?: number | DisplayBreakpoint;
208
+ thresholds?: Partial<DisplayThresholds>;
209
+ }
210
+ type SSROptions = boolean | {
211
+ clientWidth: number;
212
+ clientHeight?: number;
213
+ };
214
+
215
+ type DefaultsInstance = undefined | {
216
+ [key: string]: undefined | Record<string, unknown>;
217
+ global?: Record<string, unknown>;
218
+ };
219
+ type DefaultsOptions = Partial<DefaultsInstance>;
218
220
 
219
221
  interface VuetifyOptions {
220
222
  aliases?: Record<string, any>;
@@ -1,5 +1,37 @@
1
1
  import { Ref, ComponentPublicInstance, JSXComponent, PropType } from 'vue';
2
2
 
3
+ interface LocaleMessages {
4
+ [key: string]: LocaleMessages | string;
5
+ }
6
+ interface LocaleOptions {
7
+ messages?: LocaleMessages;
8
+ locale?: string;
9
+ fallback?: string;
10
+ adapter?: LocaleInstance;
11
+ }
12
+ interface LocaleInstance {
13
+ name: string;
14
+ messages: Ref<LocaleMessages>;
15
+ current: Ref<string>;
16
+ fallback: Ref<string>;
17
+ t: (key: string, ...params: unknown[]) => string;
18
+ n: (value: number) => string;
19
+ provide: (props: LocaleOptions) => LocaleInstance;
20
+ }
21
+ interface RtlOptions {
22
+ rtl?: Record<string, boolean>;
23
+ }
24
+
25
+ interface InternalGoToOptions {
26
+ container: ComponentPublicInstance | HTMLElement | string;
27
+ duration: number;
28
+ layout: boolean;
29
+ offset: number;
30
+ easing: string | ((t: number) => number);
31
+ patterns: Record<string, (t: number) => number>;
32
+ }
33
+ type GoToOptions = Partial<InternalGoToOptions>;
34
+
3
35
  interface DateAdapter<T = unknown> {
4
36
  date(value?: any): T | null;
5
37
  format(date: T, formatString: string): string;
@@ -45,28 +77,6 @@ interface DateAdapter<T = unknown> {
45
77
  setMinutes(date: T, minutes: number): T;
46
78
  }
47
79
 
48
- interface LocaleMessages {
49
- [key: string]: LocaleMessages | string;
50
- }
51
- interface LocaleOptions {
52
- messages?: LocaleMessages;
53
- locale?: string;
54
- fallback?: string;
55
- adapter?: LocaleInstance;
56
- }
57
- interface LocaleInstance {
58
- name: string;
59
- messages: Ref<LocaleMessages>;
60
- current: Ref<string>;
61
- fallback: Ref<string>;
62
- t: (key: string, ...params: unknown[]) => string;
63
- n: (value: number) => string;
64
- provide: (props: LocaleOptions) => LocaleInstance;
65
- }
66
- interface RtlOptions {
67
- rtl?: Record<string, boolean>;
68
- }
69
-
70
80
  interface DateInstance extends DateModule.InternalAdapter {
71
81
  locale?: any;
72
82
  }
@@ -131,36 +141,6 @@ interface OnColors {
131
141
  'on-info': string;
132
142
  }
133
143
 
134
- declare const breakpoints: readonly ["sm", "md", "lg", "xl", "xxl"];
135
- type Breakpoint = typeof breakpoints[number];
136
- type DisplayBreakpoint = 'xs' | Breakpoint;
137
- type DisplayThresholds = {
138
- [key in DisplayBreakpoint]: number;
139
- };
140
- interface DisplayOptions {
141
- mobileBreakpoint?: number | DisplayBreakpoint;
142
- thresholds?: Partial<DisplayThresholds>;
143
- }
144
- type SSROptions = boolean | {
145
- clientWidth: number;
146
- clientHeight?: number;
147
- };
148
-
149
- type DefaultsInstance = undefined | {
150
- [key: string]: undefined | Record<string, unknown>;
151
- global?: Record<string, unknown>;
152
- };
153
- type DefaultsOptions = Partial<DefaultsInstance>;
154
-
155
- interface GoToOptions {
156
- container: ComponentPublicInstance | HTMLElement | string;
157
- duration: number;
158
- layout: boolean;
159
- offset: number;
160
- easing: string | ((t: number) => number);
161
- patterns: Record<string, (t: number) => number>;
162
- }
163
-
164
144
  type IconValue = string | (string | [path: string, opacity: number])[] | JSXComponent;
165
145
  declare const IconValue: PropType<IconValue>;
166
146
  interface IconAliases {
@@ -210,11 +190,33 @@ type IconComponent = JSXComponent<IconProps>;
210
190
  interface IconSet {
211
191
  component: IconComponent;
212
192
  }
213
- type IconOptions = {
214
- defaultSet?: string;
215
- aliases?: Partial<IconAliases>;
216
- sets?: Record<string, IconSet>;
193
+ type InternalIconOptions = {
194
+ defaultSet: string;
195
+ aliases: Partial<IconAliases>;
196
+ sets: Record<string, IconSet>;
217
197
  };
198
+ type IconOptions = Partial<InternalIconOptions>;
199
+
200
+ declare const breakpoints: readonly ["sm", "md", "lg", "xl", "xxl"];
201
+ type Breakpoint = typeof breakpoints[number];
202
+ type DisplayBreakpoint = 'xs' | Breakpoint;
203
+ type DisplayThresholds = {
204
+ [key in DisplayBreakpoint]: number;
205
+ };
206
+ interface DisplayOptions {
207
+ mobileBreakpoint?: number | DisplayBreakpoint;
208
+ thresholds?: Partial<DisplayThresholds>;
209
+ }
210
+ type SSROptions = boolean | {
211
+ clientWidth: number;
212
+ clientHeight?: number;
213
+ };
214
+
215
+ type DefaultsInstance = undefined | {
216
+ [key: string]: undefined | Record<string, unknown>;
217
+ global?: Record<string, unknown>;
218
+ };
219
+ type DefaultsOptions = Partial<DefaultsInstance>;
218
220
 
219
221
  interface VuetifyOptions {
220
222
  aliases?: Record<string, any>;
@@ -1,5 +1,37 @@
1
1
  import { Ref, ComponentPublicInstance, JSXComponent, PropType } from 'vue';
2
2
 
3
+ interface LocaleMessages {
4
+ [key: string]: LocaleMessages | string;
5
+ }
6
+ interface LocaleOptions {
7
+ messages?: LocaleMessages;
8
+ locale?: string;
9
+ fallback?: string;
10
+ adapter?: LocaleInstance;
11
+ }
12
+ interface LocaleInstance {
13
+ name: string;
14
+ messages: Ref<LocaleMessages>;
15
+ current: Ref<string>;
16
+ fallback: Ref<string>;
17
+ t: (key: string, ...params: unknown[]) => string;
18
+ n: (value: number) => string;
19
+ provide: (props: LocaleOptions) => LocaleInstance;
20
+ }
21
+ interface RtlOptions {
22
+ rtl?: Record<string, boolean>;
23
+ }
24
+
25
+ interface InternalGoToOptions {
26
+ container: ComponentPublicInstance | HTMLElement | string;
27
+ duration: number;
28
+ layout: boolean;
29
+ offset: number;
30
+ easing: string | ((t: number) => number);
31
+ patterns: Record<string, (t: number) => number>;
32
+ }
33
+ type GoToOptions = Partial<InternalGoToOptions>;
34
+
3
35
  interface DateAdapter<T = unknown> {
4
36
  date(value?: any): T | null;
5
37
  format(date: T, formatString: string): string;
@@ -45,28 +77,6 @@ interface DateAdapter<T = unknown> {
45
77
  setMinutes(date: T, minutes: number): T;
46
78
  }
47
79
 
48
- interface LocaleMessages {
49
- [key: string]: LocaleMessages | string;
50
- }
51
- interface LocaleOptions {
52
- messages?: LocaleMessages;
53
- locale?: string;
54
- fallback?: string;
55
- adapter?: LocaleInstance;
56
- }
57
- interface LocaleInstance {
58
- name: string;
59
- messages: Ref<LocaleMessages>;
60
- current: Ref<string>;
61
- fallback: Ref<string>;
62
- t: (key: string, ...params: unknown[]) => string;
63
- n: (value: number) => string;
64
- provide: (props: LocaleOptions) => LocaleInstance;
65
- }
66
- interface RtlOptions {
67
- rtl?: Record<string, boolean>;
68
- }
69
-
70
80
  interface DateInstance extends DateModule.InternalAdapter {
71
81
  locale?: any;
72
82
  }
@@ -131,36 +141,6 @@ interface OnColors {
131
141
  'on-info': string;
132
142
  }
133
143
 
134
- declare const breakpoints: readonly ["sm", "md", "lg", "xl", "xxl"];
135
- type Breakpoint = typeof breakpoints[number];
136
- type DisplayBreakpoint = 'xs' | Breakpoint;
137
- type DisplayThresholds = {
138
- [key in DisplayBreakpoint]: number;
139
- };
140
- interface DisplayOptions {
141
- mobileBreakpoint?: number | DisplayBreakpoint;
142
- thresholds?: Partial<DisplayThresholds>;
143
- }
144
- type SSROptions = boolean | {
145
- clientWidth: number;
146
- clientHeight?: number;
147
- };
148
-
149
- type DefaultsInstance = undefined | {
150
- [key: string]: undefined | Record<string, unknown>;
151
- global?: Record<string, unknown>;
152
- };
153
- type DefaultsOptions = Partial<DefaultsInstance>;
154
-
155
- interface GoToOptions {
156
- container: ComponentPublicInstance | HTMLElement | string;
157
- duration: number;
158
- layout: boolean;
159
- offset: number;
160
- easing: string | ((t: number) => number);
161
- patterns: Record<string, (t: number) => number>;
162
- }
163
-
164
144
  type IconValue = string | (string | [path: string, opacity: number])[] | JSXComponent;
165
145
  declare const IconValue: PropType<IconValue>;
166
146
  interface IconAliases {
@@ -210,11 +190,33 @@ type IconComponent = JSXComponent<IconProps>;
210
190
  interface IconSet {
211
191
  component: IconComponent;
212
192
  }
213
- type IconOptions = {
214
- defaultSet?: string;
215
- aliases?: Partial<IconAliases>;
216
- sets?: Record<string, IconSet>;
193
+ type InternalIconOptions = {
194
+ defaultSet: string;
195
+ aliases: Partial<IconAliases>;
196
+ sets: Record<string, IconSet>;
217
197
  };
198
+ type IconOptions = Partial<InternalIconOptions>;
199
+
200
+ declare const breakpoints: readonly ["sm", "md", "lg", "xl", "xxl"];
201
+ type Breakpoint = typeof breakpoints[number];
202
+ type DisplayBreakpoint = 'xs' | Breakpoint;
203
+ type DisplayThresholds = {
204
+ [key in DisplayBreakpoint]: number;
205
+ };
206
+ interface DisplayOptions {
207
+ mobileBreakpoint?: number | DisplayBreakpoint;
208
+ thresholds?: Partial<DisplayThresholds>;
209
+ }
210
+ type SSROptions = boolean | {
211
+ clientWidth: number;
212
+ clientHeight?: number;
213
+ };
214
+
215
+ type DefaultsInstance = undefined | {
216
+ [key: string]: undefined | Record<string, unknown>;
217
+ global?: Record<string, unknown>;
218
+ };
219
+ type DefaultsOptions = Partial<DefaultsInstance>;
218
220
 
219
221
  interface VuetifyOptions {
220
222
  aliases?: Record<string, any>;
@@ -1 +1 @@
1
- {"version":3,"file":"goto.mjs","names":["computed","inject","useRtl","clamp","consoleWarn","mergeDeep","refElement","GoToSymbol","Symbol","for","genDefaults","container","undefined","duration","layout","offset","easing","patterns","linear","t","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","getContainer","el","getTarget","document","scrollingElement","body","querySelector","getOffset","target","horizontal","rtl","totalOffset","offsetLeft","offsetTop","offsetParent","createGoTo","options","locale","isRtl","scrollTo","_target","_options","goTo","property","value","HTMLElement","parentElement","ease","TypeError","targetLocation","styles","window","getComputedStyle","layoutOffset","getPropertyValue","parseInt","clampTarget","startLocation","Promise","resolve","startTime","performance","now","requestAnimationFrame","step","currentTime","timeElapsed","progress","location","Math","floor","abs","useGoTo","arguments","length","goToInstance","Error","go","scrollWidth","scrollHeight","containerWidth","containerHeight","innerWidth","innerHeight","offsetWidth","offsetHeight","min","max"],"sources":["../../src/composables/goto.ts"],"sourcesContent":["// Utilities\nimport { computed, inject } from 'vue'\nimport { useRtl } from './locale'\nimport { clamp, consoleWarn, mergeDeep, refElement } from '@/util'\n\n// Types\nimport type { ComponentPublicInstance, InjectionKey, Ref } from 'vue'\nimport type { LocaleInstance, RtlInstance } from './locale'\n\nexport interface GoToInstance {\n rtl: Ref<boolean>\n options: GoToOptions\n}\n\nexport interface GoToOptions {\n container: ComponentPublicInstance | HTMLElement | string\n duration: number\n layout: boolean\n offset: number\n easing: string | ((t: number) => number)\n patterns: Record<string, (t: number) => number>\n}\n\nexport const GoToSymbol: InjectionKey<GoToInstance> = Symbol.for('vuetify:goto')\n\nfunction genDefaults () {\n return {\n container: undefined,\n duration: 300,\n layout: false,\n offset: 0,\n easing: 'easeInOutCubic',\n patterns: {\n linear: (t: number) => t,\n easeInQuad: (t: number) => t ** 2,\n easeOutQuad: (t: number) => t * (2 - t),\n easeInOutQuad: (t: number) => (t < 0.5 ? 2 * t ** 2 : -1 + (4 - 2 * t) * t),\n easeInCubic: (t: number) => t ** 3,\n easeOutCubic: (t: number) => --t ** 3 + 1,\n easeInOutCubic: (t: number) => t < 0.5 ? 4 * t ** 3 : (t - 1) * (2 * t - 2) * (2 * t - 2) + 1,\n easeInQuart: (t: number) => t ** 4,\n easeOutQuart: (t: number) => 1 - --t ** 4,\n easeInOutQuart: (t: number) => (t < 0.5 ? 8 * t ** 4 : 1 - 8 * --t ** 4),\n easeInQuint: (t: number) => t ** 5,\n easeOutQuint: (t: number) => 1 + --t ** 5,\n easeInOutQuint: (t: number) => t < 0.5 ? 16 * t ** 5 : 1 + 16 * --t ** 5,\n },\n }\n}\n\nfunction getContainer (el?: ComponentPublicInstance | HTMLElement | string) {\n return getTarget(el) ?? (document.scrollingElement || document.body) as HTMLElement\n}\n\nfunction getTarget (el: ComponentPublicInstance | HTMLElement | string | undefined) {\n return (typeof el === 'string') ? document.querySelector<HTMLElement>(el) : refElement(el)\n}\n\nfunction getOffset (target: any, horizontal?: boolean, rtl?: boolean): number {\n if (typeof target === 'number') return horizontal && rtl ? -target : target\n\n let el = getTarget(target)\n let totalOffset = 0\n while (el) {\n totalOffset += horizontal ? el.offsetLeft : el.offsetTop\n el = el.offsetParent as HTMLElement\n }\n\n return totalOffset\n}\n\nexport function createGoTo (options: Partial<GoToOptions> | undefined, locale: LocaleInstance & RtlInstance) {\n return {\n rtl: locale.isRtl,\n options: mergeDeep(genDefaults(), options),\n }\n}\n\nexport async function scrollTo (\n _target: ComponentPublicInstance | HTMLElement | number | string,\n _options: Partial<GoToOptions>,\n horizontal?: boolean,\n goTo?: GoToInstance,\n) {\n const property = horizontal ? 'scrollLeft' : 'scrollTop'\n const options = mergeDeep(goTo?.options ?? genDefaults(), _options)\n const rtl = goTo?.rtl.value\n const target = (typeof _target === 'number' ? _target : getTarget(_target)) ?? 0\n const container = options.container === 'parent' && target instanceof HTMLElement\n ? target.parentElement!\n : getContainer(options.container)\n const ease = typeof options.easing === 'function' ? options.easing : options.patterns[options.easing]\n\n if (!ease) throw new TypeError(`Easing function \"${options.easing}\" not found.`)\n\n let targetLocation: number\n if (typeof target === 'number') {\n targetLocation = getOffset(target, horizontal, rtl)\n } else {\n targetLocation = getOffset(target, horizontal, rtl) - getOffset(container, horizontal, rtl)\n\n if (options.layout) {\n const styles = window.getComputedStyle(target)\n const layoutOffset = styles.getPropertyValue('--v-layout-top')\n\n if (layoutOffset) targetLocation -= parseInt(layoutOffset, 10)\n }\n }\n\n targetLocation += options.offset\n targetLocation = clampTarget(container, targetLocation, !!rtl, !!horizontal)\n\n const startLocation = container[property] ?? 0\n\n if (targetLocation === startLocation) return Promise.resolve(targetLocation)\n\n const startTime = performance.now()\n\n return new Promise(resolve => requestAnimationFrame(function step (currentTime: number) {\n const timeElapsed = currentTime - startTime\n const progress = timeElapsed / options.duration\n const location = Math.floor(\n startLocation +\n (targetLocation - startLocation) *\n ease(clamp(progress, 0, 1))\n )\n\n container[property] = location\n\n // Allow for some jitter if target time has elapsed\n if (progress >= 1 && Math.abs(location - container[property]) < 10) {\n return resolve(targetLocation)\n } else if (progress > 2) {\n // The target might not be reachable\n consoleWarn('Scroll target is not reachable')\n return resolve(container[property])\n }\n\n requestAnimationFrame(step)\n }))\n}\n\nexport function useGoTo (_options: Partial<GoToOptions> = {}) {\n const goToInstance = inject(GoToSymbol)\n const { isRtl } = useRtl()\n\n if (!goToInstance) throw new Error('[Vuetify] Could not find injected goto instance')\n\n const goTo = {\n ...goToInstance,\n // can be set via VLocaleProvider\n rtl: computed(() => goToInstance.rtl.value || isRtl.value),\n }\n\n async function go (\n target: ComponentPublicInstance | HTMLElement | string | number,\n options?: Partial<GoToOptions>,\n ) {\n return scrollTo(target, mergeDeep(_options, options), false, goTo)\n }\n\n go.horizontal = async (\n target: ComponentPublicInstance | HTMLElement | string | number,\n options?: Partial<GoToOptions>,\n ) => {\n return scrollTo(target, mergeDeep(_options, options), true, goTo)\n }\n\n return go\n}\n\n/**\n * Clamp target value to achieve a smooth scroll animation\n * when the value goes outside the scroll container size\n */\nfunction clampTarget (\n container: HTMLElement,\n value: number,\n rtl: boolean,\n horizontal: boolean,\n) {\n const { scrollWidth, scrollHeight } = container\n const [containerWidth, containerHeight] = container === document.scrollingElement\n ? [window.innerWidth, window.innerHeight]\n : [container.offsetWidth, container.offsetHeight]\n\n let min: number\n let max: number\n\n if (horizontal) {\n if (rtl) {\n min = -(scrollWidth - containerWidth)\n max = 0\n } else {\n min = 0\n max = scrollWidth - containerWidth\n }\n } else {\n min = 0\n max = scrollHeight + -containerHeight\n }\n\n return Math.max(Math.min(value, max), min)\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"goto.mjs","names":["computed","inject","useRtl","clamp","consoleWarn","mergeDeep","refElement","GoToSymbol","Symbol","for","genDefaults","container","undefined","duration","layout","offset","easing","patterns","linear","t","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","getContainer","el","getTarget","document","scrollingElement","body","querySelector","getOffset","target","horizontal","rtl","totalOffset","offsetLeft","offsetTop","offsetParent","createGoTo","options","locale","isRtl","scrollTo","_target","_options","goTo","property","value","HTMLElement","parentElement","ease","TypeError","targetLocation","styles","window","getComputedStyle","layoutOffset","getPropertyValue","parseInt","clampTarget","startLocation","Promise","resolve","startTime","performance","now","requestAnimationFrame","step","currentTime","timeElapsed","progress","location","Math","floor","abs","useGoTo","arguments","length","goToInstance","Error","go","scrollWidth","scrollHeight","containerWidth","containerHeight","innerWidth","innerHeight","offsetWidth","offsetHeight","min","max"],"sources":["../../src/composables/goto.ts"],"sourcesContent":["// Utilities\nimport { computed, inject } from 'vue'\nimport { useRtl } from './locale'\nimport { clamp, consoleWarn, mergeDeep, refElement } from '@/util'\n\n// Types\nimport type { ComponentPublicInstance, InjectionKey, Ref } from 'vue'\nimport type { LocaleInstance, RtlInstance } from './locale'\n\nexport interface GoToInstance {\n rtl: Ref<boolean>\n options: InternalGoToOptions\n}\n\nexport interface InternalGoToOptions {\n container: ComponentPublicInstance | HTMLElement | string\n duration: number\n layout: boolean\n offset: number\n easing: string | ((t: number) => number)\n patterns: Record<string, (t: number) => number>\n}\n\nexport type GoToOptions = Partial<InternalGoToOptions>\n\nexport const GoToSymbol: InjectionKey<GoToInstance> = Symbol.for('vuetify:goto')\n\nfunction genDefaults () {\n return {\n container: undefined,\n duration: 300,\n layout: false,\n offset: 0,\n easing: 'easeInOutCubic',\n patterns: {\n linear: (t: number) => t,\n easeInQuad: (t: number) => t ** 2,\n easeOutQuad: (t: number) => t * (2 - t),\n easeInOutQuad: (t: number) => (t < 0.5 ? 2 * t ** 2 : -1 + (4 - 2 * t) * t),\n easeInCubic: (t: number) => t ** 3,\n easeOutCubic: (t: number) => --t ** 3 + 1,\n easeInOutCubic: (t: number) => t < 0.5 ? 4 * t ** 3 : (t - 1) * (2 * t - 2) * (2 * t - 2) + 1,\n easeInQuart: (t: number) => t ** 4,\n easeOutQuart: (t: number) => 1 - --t ** 4,\n easeInOutQuart: (t: number) => (t < 0.5 ? 8 * t ** 4 : 1 - 8 * --t ** 4),\n easeInQuint: (t: number) => t ** 5,\n easeOutQuint: (t: number) => 1 + --t ** 5,\n easeInOutQuint: (t: number) => t < 0.5 ? 16 * t ** 5 : 1 + 16 * --t ** 5,\n },\n }\n}\n\nfunction getContainer (el?: ComponentPublicInstance | HTMLElement | string) {\n return getTarget(el) ?? (document.scrollingElement || document.body) as HTMLElement\n}\n\nfunction getTarget (el: ComponentPublicInstance | HTMLElement | string | undefined) {\n return (typeof el === 'string') ? document.querySelector<HTMLElement>(el) : refElement(el)\n}\n\nfunction getOffset (target: any, horizontal?: boolean, rtl?: boolean): number {\n if (typeof target === 'number') return horizontal && rtl ? -target : target\n\n let el = getTarget(target)\n let totalOffset = 0\n while (el) {\n totalOffset += horizontal ? el.offsetLeft : el.offsetTop\n el = el.offsetParent as HTMLElement\n }\n\n return totalOffset\n}\n\nexport function createGoTo (\n options: GoToOptions| undefined,\n locale: LocaleInstance & RtlInstance\n): GoToInstance {\n return {\n rtl: locale.isRtl,\n options: mergeDeep(genDefaults(), options) as InternalGoToOptions,\n }\n}\n\nexport async function scrollTo (\n _target: ComponentPublicInstance | HTMLElement | number | string,\n _options: GoToOptions,\n horizontal?: boolean,\n goTo?: GoToInstance,\n) {\n const property = horizontal ? 'scrollLeft' : 'scrollTop'\n const options = mergeDeep(goTo?.options ?? genDefaults(), _options)\n const rtl = goTo?.rtl.value\n const target = (typeof _target === 'number' ? _target : getTarget(_target)) ?? 0\n const container = options.container === 'parent' && target instanceof HTMLElement\n ? target.parentElement!\n : getContainer(options.container)\n const ease = typeof options.easing === 'function' ? options.easing : options.patterns[options.easing]\n\n if (!ease) throw new TypeError(`Easing function \"${options.easing}\" not found.`)\n\n let targetLocation: number\n if (typeof target === 'number') {\n targetLocation = getOffset(target, horizontal, rtl)\n } else {\n targetLocation = getOffset(target, horizontal, rtl) - getOffset(container, horizontal, rtl)\n\n if (options.layout) {\n const styles = window.getComputedStyle(target)\n const layoutOffset = styles.getPropertyValue('--v-layout-top')\n\n if (layoutOffset) targetLocation -= parseInt(layoutOffset, 10)\n }\n }\n\n targetLocation += options.offset\n targetLocation = clampTarget(container, targetLocation, !!rtl, !!horizontal)\n\n const startLocation = container[property] ?? 0\n\n if (targetLocation === startLocation) return Promise.resolve(targetLocation)\n\n const startTime = performance.now()\n\n return new Promise(resolve => requestAnimationFrame(function step (currentTime: number) {\n const timeElapsed = currentTime - startTime\n const progress = timeElapsed / options.duration\n const location = Math.floor(\n startLocation +\n (targetLocation - startLocation) *\n ease(clamp(progress, 0, 1))\n )\n\n container[property] = location\n\n // Allow for some jitter if target time has elapsed\n if (progress >= 1 && Math.abs(location - container[property]) < 10) {\n return resolve(targetLocation)\n } else if (progress > 2) {\n // The target might not be reachable\n consoleWarn('Scroll target is not reachable')\n return resolve(container[property])\n }\n\n requestAnimationFrame(step)\n }))\n}\n\nexport function useGoTo (_options: GoToOptions = {}) {\n const goToInstance = inject(GoToSymbol)\n const { isRtl } = useRtl()\n\n if (!goToInstance) throw new Error('[Vuetify] Could not find injected goto instance')\n\n const goTo = {\n ...goToInstance,\n // can be set via VLocaleProvider\n rtl: computed(() => goToInstance.rtl.value || isRtl.value),\n }\n\n async function go (\n target: ComponentPublicInstance | HTMLElement | string | number,\n options?: Partial<GoToOptions>,\n ) {\n return scrollTo(target, mergeDeep(_options, options), false, goTo)\n }\n\n go.horizontal = async (\n target: ComponentPublicInstance | HTMLElement | string | number,\n options?: Partial<GoToOptions>,\n ) => {\n return scrollTo(target, mergeDeep(_options, options), true, goTo)\n }\n\n return go\n}\n\n/**\n * Clamp target value to achieve a smooth scroll animation\n * when the value goes outside the scroll container size\n */\nfunction clampTarget (\n container: HTMLElement,\n value: number,\n rtl: boolean,\n horizontal: boolean,\n) {\n const { scrollWidth, scrollHeight } = container\n const [containerWidth, containerHeight] = container === document.scrollingElement\n ? [window.innerWidth, window.innerHeight]\n : [container.offsetWidth, container.offsetHeight]\n\n let min: number\n let max: number\n\n if (horizontal) {\n if (rtl) {\n min = -(scrollWidth - containerWidth)\n max = 0\n } else {\n min = 0\n max = scrollWidth - containerWidth\n }\n } else {\n min = 0\n max = scrollHeight + -containerHeight\n }\n\n return Math.max(Math.min(value, max), min)\n}\n"],"mappings":"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","ignoreList":[]}