vuetify 3.3.12 → 3.4.0-alpha.0
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/json/attributes.json +152 -16
- package/dist/json/importMap.json +4 -4
- package/dist/json/tags.json +34 -0
- package/dist/json/web-types.json +462 -48
- package/dist/vuetify-labs.css +1718 -606
- package/dist/vuetify-labs.d.ts +880 -276
- package/dist/vuetify-labs.esm.js +373 -189
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +372 -188
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +1591 -479
- package/dist/vuetify.d.ts +865 -267
- package/dist/vuetify.esm.js +373 -189
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +372 -188
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +920 -905
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
- package/lib/components/VAppBar/index.d.mts +6 -6
- package/lib/components/VAutocomplete/VAutocomplete.mjs +6 -2
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VAutocomplete/index.d.mts +62 -14
- package/lib/components/VAvatar/VAvatar.mjs +2 -1
- package/lib/components/VAvatar/VAvatar.mjs.map +1 -1
- package/lib/components/VAvatar/index.d.mts +6 -0
- package/lib/components/VBanner/VBanner.mjs +5 -3
- package/lib/components/VBanner/VBanner.mjs.map +1 -1
- package/lib/components/VBanner/index.d.mts +10 -0
- package/lib/components/VBottomNavigation/VBottomNavigation.css +1 -0
- package/lib/components/VBottomNavigation/VBottomNavigation.sass +1 -0
- package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs +9 -4
- package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/index.d.mts +28 -2
- package/lib/components/VBtn/VBtn.css +3 -0
- package/lib/components/VBtn/VBtn.sass +3 -0
- package/lib/components/VCarousel/index.d.mts +26 -0
- package/lib/components/VCheckbox/VCheckbox.mjs +2 -2
- package/lib/components/VCheckbox/VCheckbox.mjs.map +1 -1
- package/lib/components/VCheckbox/VCheckboxBtn.mjs +14 -11
- package/lib/components/VCheckbox/VCheckboxBtn.mjs.map +1 -1
- package/lib/components/VCheckbox/index.d.mts +15 -1
- package/lib/components/VColorPicker/VColorPickerEdit.css +4 -2
- package/lib/components/VColorPicker/VColorPickerPreview.css +16 -6
- package/lib/components/VColorPicker/VColorPickerPreview.mjs +28 -2
- package/lib/components/VColorPicker/VColorPickerPreview.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerPreview.sass +4 -0
- package/lib/components/VColorPicker/_variables.scss +1 -0
- package/lib/components/VCombobox/VCombobox.mjs +6 -2
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VCombobox/index.d.mts +62 -14
- package/lib/components/VDialog/index.d.mts +41 -20
- package/lib/components/VField/VField.css +11 -6
- package/lib/components/VField/VField.mjs +5 -3
- package/lib/components/VField/VField.mjs.map +1 -1
- package/lib/components/VField/VField.sass +1 -0
- package/lib/components/VField/index.d.mts +4 -4
- package/lib/components/VFileInput/VFileInput.css +4 -0
- package/lib/components/VFileInput/VFileInput.sass +5 -1
- package/lib/components/VFileInput/_variables.scss +2 -1
- package/lib/components/VFileInput/index.d.mts +4 -4
- package/lib/components/VGrid/VGrid.css +153 -142
- package/lib/components/VImg/VImg.mjs +13 -1
- package/lib/components/VImg/VImg.mjs.map +1 -1
- package/lib/components/VImg/index.d.mts +26 -0
- package/lib/components/VList/VList.css +1 -1
- package/lib/components/VList/VList.sass +1 -1
- package/lib/components/VList/VListItem.css +15 -10
- package/lib/components/VList/VListItem.mjs +6 -3
- package/lib/components/VList/VListItem.mjs.map +1 -1
- package/lib/components/VList/VListItem.sass +17 -10
- package/lib/components/VList/index.d.mts +12 -12
- package/lib/components/VMenu/VMenu.mjs +4 -3
- package/lib/components/VMenu/VMenu.mjs.map +1 -1
- package/lib/components/VMenu/index.d.mts +46 -25
- package/lib/components/VNavigationDrawer/VNavigationDrawer.css +0 -1
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +5 -3
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
- package/lib/components/VNavigationDrawer/VNavigationDrawer.sass +0 -1
- package/lib/components/VNavigationDrawer/_variables.scss +0 -1
- package/lib/components/VNavigationDrawer/index.d.mts +10 -0
- package/lib/components/VOverlay/VOverlay.mjs +9 -4
- package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
- package/lib/components/VOverlay/index.d.mts +17 -8
- package/lib/components/VOverlay/locationStrategies.mjs +9 -9
- package/lib/components/VOverlay/locationStrategies.mjs.map +1 -1
- package/lib/components/VOverlay/scrollStrategies.mjs +3 -3
- package/lib/components/VOverlay/scrollStrategies.mjs.map +1 -1
- package/lib/components/VOverlay/useActivator.mjs +50 -21
- package/lib/components/VOverlay/useActivator.mjs.map +1 -1
- package/lib/components/VProgressLinear/VProgressLinear.css +3 -2
- package/lib/components/VRadio/index.d.mts +9 -1
- package/lib/components/VRadioGroup/VRadioGroup.css +6 -1
- package/lib/components/VRadioGroup/VRadioGroup.mjs +2 -2
- package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
- package/lib/components/VRadioGroup/VRadioGroup.sass +5 -0
- package/lib/components/VRadioGroup/_variables.scss +3 -1
- package/lib/components/VRadioGroup/index.d.mts +3 -1
- package/lib/components/VRangeSlider/VRangeSlider.mjs +4 -2
- package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
- package/lib/components/VRangeSlider/index.d.mts +128 -33
- package/lib/components/VSelect/VSelect.mjs +14 -2
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VSelect/index.d.mts +62 -14
- package/lib/components/VSelectionControl/VSelectionControl.mjs +27 -21
- package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
- package/lib/components/VSelectionControl/index.d.mts +33 -25
- package/lib/components/VSlideGroup/VSlideGroup.mjs +5 -3
- package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
- package/lib/components/VSlideGroup/index.d.mts +10 -0
- package/lib/components/VSlider/VSlider.mjs +2 -1
- package/lib/components/VSlider/VSlider.mjs.map +1 -1
- package/lib/components/VSlider/VSliderThumb.css +8 -4
- package/lib/components/VSlider/VSliderTrack.css +22 -12
- package/lib/components/VSlider/index.d.mts +128 -33
- package/lib/components/VSlider/slider.mjs +5 -1
- package/lib/components/VSlider/slider.mjs.map +1 -1
- package/lib/components/VSnackbar/index.d.mts +41 -20
- package/lib/components/VSwitch/VSwitch.css +24 -17
- package/lib/components/VSwitch/VSwitch.mjs +37 -28
- package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
- package/lib/components/VSwitch/VSwitch.sass +20 -11
- package/lib/components/VSwitch/_variables.scss +18 -6
- package/lib/components/VSwitch/index.d.mts +9 -1
- package/lib/components/VTabs/index.d.mts +10 -0
- package/lib/components/VTextField/VTextField.css +9 -2
- package/lib/components/VTextField/VTextField.mjs +6 -3
- package/lib/components/VTextField/VTextField.mjs.map +1 -1
- package/lib/components/VTextField/VTextField.sass +10 -3
- package/lib/components/VTextField/index.d.mts +22 -16
- package/lib/components/VTextarea/VTextarea.mjs +1 -2
- package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
- package/lib/components/VTextarea/index.d.mts +4 -4
- package/lib/components/VTimeline/VTimeline.css +21 -11
- package/lib/components/VTimeline/VTimeline.sass +6 -1
- package/lib/components/VToolbar/VToolbar.css +4 -2
- package/lib/components/VTooltip/index.d.mts +41 -20
- package/lib/components/index.d.mts +836 -265
- package/lib/components/transitions/dialog-transition.mjs +4 -3
- package/lib/components/transitions/dialog-transition.mjs.map +1 -1
- package/lib/components/transitions/index.d.mts +6 -6
- package/lib/composables/defaults.mjs +9 -9
- package/lib/composables/defaults.mjs.map +1 -1
- package/lib/composables/directiveComponent.mjs +69 -0
- package/lib/composables/directiveComponent.mjs.map +1 -0
- package/lib/composables/display.mjs +23 -3
- package/lib/composables/display.mjs.map +1 -1
- package/lib/composables/theme.mjs +7 -7
- package/lib/composables/theme.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/entry-bundler.mjs.map +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/framework.mjs.map +1 -1
- package/lib/iconsets/fa.mjs +2 -1
- package/lib/iconsets/fa.mjs.map +1 -1
- package/lib/iconsets/fa4.mjs +2 -1
- package/lib/iconsets/fa4.mjs.map +1 -1
- package/lib/iconsets/md.mjs +2 -1
- package/lib/iconsets/md.mjs.map +1 -1
- package/lib/iconsets/mdi-svg.mjs +2 -1
- package/lib/iconsets/mdi-svg.mjs.map +1 -1
- package/lib/iconsets/mdi.mjs +2 -1
- package/lib/iconsets/mdi.mjs.map +1 -1
- package/lib/index.d.mts +33 -2
- package/lib/labs/VBottomSheet/index.d.mts +14 -8
- package/lib/labs/VDateInput/index.d.mts +10 -4
- package/lib/labs/VDatePicker/VDatePickerControls.css +1 -1
- package/lib/labs/VOtpInput/index.d.mts +4 -4
- package/lib/labs/components.d.mts +18 -12
- package/lib/locale/af.mjs +1 -0
- package/lib/locale/af.mjs.map +1 -1
- package/lib/locale/ar.mjs +1 -0
- package/lib/locale/ar.mjs.map +1 -1
- package/lib/locale/az.mjs +1 -0
- package/lib/locale/az.mjs.map +1 -1
- package/lib/locale/bg.mjs +1 -0
- package/lib/locale/bg.mjs.map +1 -1
- package/lib/locale/ca.mjs +1 -0
- package/lib/locale/ca.mjs.map +1 -1
- package/lib/locale/ckb.mjs +1 -0
- package/lib/locale/ckb.mjs.map +1 -1
- package/lib/locale/cs.mjs +1 -0
- package/lib/locale/cs.mjs.map +1 -1
- package/lib/locale/da.mjs +1 -0
- package/lib/locale/da.mjs.map +1 -1
- package/lib/locale/de.mjs +1 -0
- package/lib/locale/de.mjs.map +1 -1
- package/lib/locale/el.mjs +1 -0
- package/lib/locale/el.mjs.map +1 -1
- package/lib/locale/en.mjs +1 -0
- package/lib/locale/en.mjs.map +1 -1
- package/lib/locale/es.mjs +1 -0
- package/lib/locale/es.mjs.map +1 -1
- package/lib/locale/et.mjs +1 -0
- package/lib/locale/et.mjs.map +1 -1
- package/lib/locale/fa.mjs +1 -0
- package/lib/locale/fa.mjs.map +1 -1
- package/lib/locale/fi.mjs +1 -0
- package/lib/locale/fi.mjs.map +1 -1
- package/lib/locale/fr.mjs +1 -0
- package/lib/locale/fr.mjs.map +1 -1
- package/lib/locale/he.mjs +1 -0
- package/lib/locale/he.mjs.map +1 -1
- package/lib/locale/hr.mjs +1 -0
- package/lib/locale/hr.mjs.map +1 -1
- package/lib/locale/hu.mjs +1 -0
- package/lib/locale/hu.mjs.map +1 -1
- package/lib/locale/id.mjs +1 -0
- package/lib/locale/id.mjs.map +1 -1
- package/lib/locale/index.d.mts +42 -0
- package/lib/locale/it.mjs +1 -0
- package/lib/locale/it.mjs.map +1 -1
- package/lib/locale/ja.mjs +1 -0
- package/lib/locale/ja.mjs.map +1 -1
- package/lib/locale/ko.mjs +1 -0
- package/lib/locale/ko.mjs.map +1 -1
- package/lib/locale/lt.mjs +1 -0
- package/lib/locale/lt.mjs.map +1 -1
- package/lib/locale/lv.mjs +1 -0
- package/lib/locale/lv.mjs.map +1 -1
- package/lib/locale/nl.mjs +1 -0
- package/lib/locale/nl.mjs.map +1 -1
- package/lib/locale/no.mjs +1 -0
- package/lib/locale/no.mjs.map +1 -1
- package/lib/locale/pl.mjs +1 -0
- package/lib/locale/pl.mjs.map +1 -1
- package/lib/locale/pt.mjs +1 -0
- package/lib/locale/pt.mjs.map +1 -1
- package/lib/locale/ro.mjs +1 -0
- package/lib/locale/ro.mjs.map +1 -1
- package/lib/locale/ru.mjs +1 -0
- package/lib/locale/ru.mjs.map +1 -1
- package/lib/locale/sk.mjs +1 -0
- package/lib/locale/sk.mjs.map +1 -1
- package/lib/locale/sl.mjs +1 -0
- package/lib/locale/sl.mjs.map +1 -1
- package/lib/locale/sr-Cyrl.mjs +1 -0
- package/lib/locale/sr-Cyrl.mjs.map +1 -1
- package/lib/locale/sr-Latn.mjs +1 -0
- package/lib/locale/sr-Latn.mjs.map +1 -1
- package/lib/locale/sv.mjs +1 -0
- package/lib/locale/sv.mjs.map +1 -1
- package/lib/locale/th.mjs +1 -0
- package/lib/locale/th.mjs.map +1 -1
- package/lib/locale/tr.mjs +1 -0
- package/lib/locale/tr.mjs.map +1 -1
- package/lib/locale/uk.mjs +1 -0
- package/lib/locale/uk.mjs.map +1 -1
- package/lib/locale/vi.mjs +1 -0
- package/lib/locale/vi.mjs.map +1 -1
- package/lib/locale/zh-Hans.mjs +1 -0
- package/lib/locale/zh-Hans.mjs.map +1 -1
- package/lib/locale/zh-Hant.mjs +1 -0
- package/lib/locale/zh-Hant.mjs.map +1 -1
- package/lib/styles/main.css +1026 -0
- package/lib/styles/settings/_utilities.scss +20 -0
- package/lib/styles/tools/_rtl.sass +4 -2
- package/lib/util/box.mjs +12 -0
- package/lib/util/box.mjs.map +1 -1
- package/lib/util/globals.mjs +1 -0
- package/lib/util/globals.mjs.map +1 -1
- package/lib/util/helpers.mjs +19 -5
- package/lib/util/helpers.mjs.map +1 -1
- package/lib/util/injectSelf.mjs +2 -1
- package/lib/util/injectSelf.mjs.map +1 -1
- package/package.json +2 -2
|
@@ -8,6 +8,12 @@ interface FilterPropsOptions<PropsOptions extends Readonly<ComponentPropsOptions
|
|
|
8
8
|
type EventProp<T extends any[] = any[], F = (...args: T) => any> = F | F[];
|
|
9
9
|
declare const EventProp: <T extends any[] = any[]>() => PropType<EventProp<T, (...args: T) => any>>;
|
|
10
10
|
|
|
11
|
+
type Tick = {
|
|
12
|
+
value: number;
|
|
13
|
+
position: number;
|
|
14
|
+
label?: string;
|
|
15
|
+
};
|
|
16
|
+
|
|
11
17
|
type VMessageSlot = {
|
|
12
18
|
message: string;
|
|
13
19
|
};
|
|
@@ -53,6 +59,7 @@ declare const VSlider: {
|
|
|
53
59
|
rounded?: string | number | boolean | undefined;
|
|
54
60
|
density?: Density | undefined;
|
|
55
61
|
modelValue?: string | number | undefined;
|
|
62
|
+
ripple?: boolean | undefined;
|
|
56
63
|
focused?: boolean | undefined;
|
|
57
64
|
errorMessages?: string | readonly string[] | undefined;
|
|
58
65
|
maxErrors?: string | number | undefined;
|
|
@@ -76,9 +83,14 @@ declare const VSlider: {
|
|
|
76
83
|
append?: ((arg: VInputSlot) => vue.VNodeChild) | undefined;
|
|
77
84
|
details?: ((arg: VInputSlot) => vue.VNodeChild) | undefined;
|
|
78
85
|
message?: ((arg: VMessageSlot) => vue.VNodeChild) | undefined;
|
|
86
|
+
'thumb-label'?: ((arg: {
|
|
87
|
+
modelValue: number;
|
|
88
|
+
}) => vue.VNodeChild) | undefined;
|
|
89
|
+
'tick-label'?: ((arg: {
|
|
90
|
+
tick: Tick;
|
|
91
|
+
index: number;
|
|
92
|
+
}) => vue.VNodeChild) | undefined;
|
|
79
93
|
label?: ((arg: VInputSlot) => vue.VNodeChild) | undefined;
|
|
80
|
-
'tick-label'?: (() => vue.VNodeChild) | undefined;
|
|
81
|
-
'thumb-label'?: (() => vue.VNodeChild) | undefined;
|
|
82
94
|
};
|
|
83
95
|
ref?: vue.VNodeRef | undefined;
|
|
84
96
|
ref_for?: boolean | undefined;
|
|
@@ -90,9 +102,14 @@ declare const VSlider: {
|
|
|
90
102
|
append?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
|
|
91
103
|
details?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
|
|
92
104
|
message?: false | ((arg: VMessageSlot) => vue.VNodeChild) | undefined;
|
|
105
|
+
'thumb-label'?: false | ((arg: {
|
|
106
|
+
modelValue: number;
|
|
107
|
+
}) => vue.VNodeChild) | undefined;
|
|
108
|
+
'tick-label'?: false | ((arg: {
|
|
109
|
+
tick: Tick;
|
|
110
|
+
index: number;
|
|
111
|
+
}) => vue.VNodeChild) | undefined;
|
|
93
112
|
label?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
|
|
94
|
-
'tick-label'?: false | (() => vue.VNodeChild) | undefined;
|
|
95
|
-
'thumb-label'?: false | (() => vue.VNodeChild) | undefined;
|
|
96
113
|
} | undefined;
|
|
97
114
|
onVnodeBeforeMount?: ((vnode: vue.VNode<vue.RendererNode, vue.RendererElement, {
|
|
98
115
|
[key: string]: any;
|
|
@@ -147,12 +164,17 @@ declare const VSlider: {
|
|
|
147
164
|
hint?: string | undefined;
|
|
148
165
|
hideDetails?: boolean | "auto" | undefined;
|
|
149
166
|
"v-slot:details"?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
|
|
150
|
-
"v-slot:tick-label"?: false | ((
|
|
167
|
+
"v-slot:tick-label"?: false | ((arg: {
|
|
168
|
+
tick: Tick;
|
|
169
|
+
index: number;
|
|
170
|
+
}) => vue.VNodeChild) | undefined;
|
|
151
171
|
trackColor?: string | undefined;
|
|
152
172
|
trackFillColor?: string | undefined;
|
|
153
173
|
thumbColor?: string | undefined;
|
|
154
174
|
ticks?: readonly number[] | Record<number, string> | undefined;
|
|
155
|
-
"v-slot:thumb-label"?: false | ((
|
|
175
|
+
"v-slot:thumb-label"?: false | ((arg: {
|
|
176
|
+
modelValue: number;
|
|
177
|
+
}) => vue.VNodeChild) | undefined;
|
|
156
178
|
onEnd?: ((value: number) => any) | undefined;
|
|
157
179
|
onStart?: ((value: number) => any) | undefined;
|
|
158
180
|
};
|
|
@@ -178,13 +200,18 @@ declare const VSlider: {
|
|
|
178
200
|
message?: ((arg: VMessageSlot) => vue.VNode<vue.RendererNode, vue.RendererElement, {
|
|
179
201
|
[key: string]: any;
|
|
180
202
|
}>[]) | undefined;
|
|
181
|
-
label?: ((arg:
|
|
203
|
+
'thumb-label'?: ((arg: {
|
|
204
|
+
modelValue: number;
|
|
205
|
+
}) => vue.VNode<vue.RendererNode, vue.RendererElement, {
|
|
182
206
|
[key: string]: any;
|
|
183
207
|
}>[]) | undefined;
|
|
184
|
-
'tick-label'?: ((
|
|
208
|
+
'tick-label'?: ((arg: {
|
|
209
|
+
tick: Tick;
|
|
210
|
+
index: number;
|
|
211
|
+
}) => vue.VNode<vue.RendererNode, vue.RendererElement, {
|
|
185
212
|
[key: string]: any;
|
|
186
213
|
}>[]) | undefined;
|
|
187
|
-
|
|
214
|
+
label?: ((arg: VInputSlot) => vue.VNode<vue.RendererNode, vue.RendererElement, {
|
|
188
215
|
[key: string]: any;
|
|
189
216
|
}>[]) | undefined;
|
|
190
217
|
}>;
|
|
@@ -206,6 +233,7 @@ declare const VSlider: {
|
|
|
206
233
|
messages: string | readonly string[];
|
|
207
234
|
density: Density;
|
|
208
235
|
modelValue: string | number;
|
|
236
|
+
ripple: boolean;
|
|
209
237
|
focused: boolean;
|
|
210
238
|
errorMessages: string | readonly string[];
|
|
211
239
|
maxErrors: string | number;
|
|
@@ -244,9 +272,14 @@ declare const VSlider: {
|
|
|
244
272
|
append?: ((arg: VInputSlot) => vue.VNodeChild) | undefined;
|
|
245
273
|
details?: ((arg: VInputSlot) => vue.VNodeChild) | undefined;
|
|
246
274
|
message?: ((arg: VMessageSlot) => vue.VNodeChild) | undefined;
|
|
275
|
+
'thumb-label'?: ((arg: {
|
|
276
|
+
modelValue: number;
|
|
277
|
+
}) => vue.VNodeChild) | undefined;
|
|
278
|
+
'tick-label'?: ((arg: {
|
|
279
|
+
tick: Tick;
|
|
280
|
+
index: number;
|
|
281
|
+
}) => vue.VNodeChild) | undefined;
|
|
247
282
|
label?: ((arg: VInputSlot) => vue.VNodeChild) | undefined;
|
|
248
|
-
'tick-label'?: (() => vue.VNodeChild) | undefined;
|
|
249
|
-
'thumb-label'?: (() => vue.VNodeChild) | undefined;
|
|
250
283
|
};
|
|
251
284
|
'v-slots'?: {
|
|
252
285
|
default?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
|
|
@@ -254,9 +287,14 @@ declare const VSlider: {
|
|
|
254
287
|
append?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
|
|
255
288
|
details?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
|
|
256
289
|
message?: false | ((arg: VMessageSlot) => vue.VNodeChild) | undefined;
|
|
290
|
+
'thumb-label'?: false | ((arg: {
|
|
291
|
+
modelValue: number;
|
|
292
|
+
}) => vue.VNodeChild) | undefined;
|
|
293
|
+
'tick-label'?: false | ((arg: {
|
|
294
|
+
tick: Tick;
|
|
295
|
+
index: number;
|
|
296
|
+
}) => vue.VNodeChild) | undefined;
|
|
257
297
|
label?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
|
|
258
|
-
'tick-label'?: false | (() => vue.VNodeChild) | undefined;
|
|
259
|
-
'thumb-label'?: false | (() => vue.VNodeChild) | undefined;
|
|
260
298
|
} | undefined;
|
|
261
299
|
} & {
|
|
262
300
|
"v-slot:default"?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
|
|
@@ -264,9 +302,14 @@ declare const VSlider: {
|
|
|
264
302
|
"v-slot:append"?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
|
|
265
303
|
"v-slot:details"?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
|
|
266
304
|
"v-slot:message"?: false | ((arg: VMessageSlot) => vue.VNodeChild) | undefined;
|
|
305
|
+
"v-slot:thumb-label"?: false | ((arg: {
|
|
306
|
+
modelValue: number;
|
|
307
|
+
}) => vue.VNodeChild) | undefined;
|
|
308
|
+
"v-slot:tick-label"?: false | ((arg: {
|
|
309
|
+
tick: Tick;
|
|
310
|
+
index: number;
|
|
311
|
+
}) => vue.VNodeChild) | undefined;
|
|
267
312
|
"v-slot:label"?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
|
|
268
|
-
"v-slot:tick-label"?: false | (() => vue.VNodeChild) | undefined;
|
|
269
|
-
"v-slot:thumb-label"?: false | (() => vue.VNodeChild) | undefined;
|
|
270
313
|
} & {
|
|
271
314
|
"onUpdate:modelValue"?: ((v: number) => any) | undefined;
|
|
272
315
|
"onUpdate:focused"?: ((value: boolean) => any) | undefined;
|
|
@@ -292,6 +335,7 @@ declare const VSlider: {
|
|
|
292
335
|
rounded: string | number | boolean;
|
|
293
336
|
density: Density;
|
|
294
337
|
modelValue: string | number;
|
|
338
|
+
ripple: boolean;
|
|
295
339
|
focused: boolean;
|
|
296
340
|
errorMessages: string | readonly string[];
|
|
297
341
|
maxErrors: string | number;
|
|
@@ -319,13 +363,18 @@ declare const VSlider: {
|
|
|
319
363
|
message: (arg: VMessageSlot) => vue.VNode<vue.RendererNode, vue.RendererElement, {
|
|
320
364
|
[key: string]: any;
|
|
321
365
|
}>[];
|
|
322
|
-
label: (arg:
|
|
366
|
+
'thumb-label': (arg: {
|
|
367
|
+
modelValue: number;
|
|
368
|
+
}) => vue.VNode<vue.RendererNode, vue.RendererElement, {
|
|
323
369
|
[key: string]: any;
|
|
324
370
|
}>[];
|
|
325
|
-
'tick-label': (
|
|
371
|
+
'tick-label': (arg: {
|
|
372
|
+
tick: Tick;
|
|
373
|
+
index: number;
|
|
374
|
+
}) => vue.VNode<vue.RendererNode, vue.RendererElement, {
|
|
326
375
|
[key: string]: any;
|
|
327
376
|
}>[];
|
|
328
|
-
|
|
377
|
+
label: (arg: VInputSlot) => vue.VNode<vue.RendererNode, vue.RendererElement, {
|
|
329
378
|
[key: string]: any;
|
|
330
379
|
}>[];
|
|
331
380
|
}>>> & {
|
|
@@ -362,6 +411,7 @@ declare const VSlider: {
|
|
|
362
411
|
messages: string | readonly string[];
|
|
363
412
|
density: Density;
|
|
364
413
|
modelValue: string | number;
|
|
414
|
+
ripple: boolean;
|
|
365
415
|
focused: boolean;
|
|
366
416
|
errorMessages: string | readonly string[];
|
|
367
417
|
maxErrors: string | number;
|
|
@@ -400,9 +450,14 @@ declare const VSlider: {
|
|
|
400
450
|
append?: ((arg: VInputSlot) => vue.VNodeChild) | undefined;
|
|
401
451
|
details?: ((arg: VInputSlot) => vue.VNodeChild) | undefined;
|
|
402
452
|
message?: ((arg: VMessageSlot) => vue.VNodeChild) | undefined;
|
|
453
|
+
'thumb-label'?: ((arg: {
|
|
454
|
+
modelValue: number;
|
|
455
|
+
}) => vue.VNodeChild) | undefined;
|
|
456
|
+
'tick-label'?: ((arg: {
|
|
457
|
+
tick: Tick;
|
|
458
|
+
index: number;
|
|
459
|
+
}) => vue.VNodeChild) | undefined;
|
|
403
460
|
label?: ((arg: VInputSlot) => vue.VNodeChild) | undefined;
|
|
404
|
-
'tick-label'?: (() => vue.VNodeChild) | undefined;
|
|
405
|
-
'thumb-label'?: (() => vue.VNodeChild) | undefined;
|
|
406
461
|
};
|
|
407
462
|
'v-slots'?: {
|
|
408
463
|
default?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
|
|
@@ -410,9 +465,14 @@ declare const VSlider: {
|
|
|
410
465
|
append?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
|
|
411
466
|
details?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
|
|
412
467
|
message?: false | ((arg: VMessageSlot) => vue.VNodeChild) | undefined;
|
|
468
|
+
'thumb-label'?: false | ((arg: {
|
|
469
|
+
modelValue: number;
|
|
470
|
+
}) => vue.VNodeChild) | undefined;
|
|
471
|
+
'tick-label'?: false | ((arg: {
|
|
472
|
+
tick: Tick;
|
|
473
|
+
index: number;
|
|
474
|
+
}) => vue.VNodeChild) | undefined;
|
|
413
475
|
label?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
|
|
414
|
-
'tick-label'?: false | (() => vue.VNodeChild) | undefined;
|
|
415
|
-
'thumb-label'?: false | (() => vue.VNodeChild) | undefined;
|
|
416
476
|
} | undefined;
|
|
417
477
|
} & {
|
|
418
478
|
"v-slot:default"?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
|
|
@@ -420,9 +480,14 @@ declare const VSlider: {
|
|
|
420
480
|
"v-slot:append"?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
|
|
421
481
|
"v-slot:details"?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
|
|
422
482
|
"v-slot:message"?: false | ((arg: VMessageSlot) => vue.VNodeChild) | undefined;
|
|
483
|
+
"v-slot:thumb-label"?: false | ((arg: {
|
|
484
|
+
modelValue: number;
|
|
485
|
+
}) => vue.VNodeChild) | undefined;
|
|
486
|
+
"v-slot:tick-label"?: false | ((arg: {
|
|
487
|
+
tick: Tick;
|
|
488
|
+
index: number;
|
|
489
|
+
}) => vue.VNodeChild) | undefined;
|
|
423
490
|
"v-slot:label"?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
|
|
424
|
-
"v-slot:tick-label"?: false | (() => vue.VNodeChild) | undefined;
|
|
425
|
-
"v-slot:thumb-label"?: false | (() => vue.VNodeChild) | undefined;
|
|
426
491
|
} & {
|
|
427
492
|
"onUpdate:modelValue"?: ((v: number) => any) | undefined;
|
|
428
493
|
"onUpdate:focused"?: ((value: boolean) => any) | undefined;
|
|
@@ -446,6 +511,7 @@ declare const VSlider: {
|
|
|
446
511
|
messages: string | readonly string[];
|
|
447
512
|
density: Density;
|
|
448
513
|
modelValue: string | number;
|
|
514
|
+
ripple: boolean;
|
|
449
515
|
focused: boolean;
|
|
450
516
|
errorMessages: string | readonly string[];
|
|
451
517
|
maxErrors: string | number;
|
|
@@ -484,9 +550,14 @@ declare const VSlider: {
|
|
|
484
550
|
append?: ((arg: VInputSlot) => vue.VNodeChild) | undefined;
|
|
485
551
|
details?: ((arg: VInputSlot) => vue.VNodeChild) | undefined;
|
|
486
552
|
message?: ((arg: VMessageSlot) => vue.VNodeChild) | undefined;
|
|
553
|
+
'thumb-label'?: ((arg: {
|
|
554
|
+
modelValue: number;
|
|
555
|
+
}) => vue.VNodeChild) | undefined;
|
|
556
|
+
'tick-label'?: ((arg: {
|
|
557
|
+
tick: Tick;
|
|
558
|
+
index: number;
|
|
559
|
+
}) => vue.VNodeChild) | undefined;
|
|
487
560
|
label?: ((arg: VInputSlot) => vue.VNodeChild) | undefined;
|
|
488
|
-
'tick-label'?: (() => vue.VNodeChild) | undefined;
|
|
489
|
-
'thumb-label'?: (() => vue.VNodeChild) | undefined;
|
|
490
561
|
};
|
|
491
562
|
'v-slots'?: {
|
|
492
563
|
default?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
|
|
@@ -494,9 +565,14 @@ declare const VSlider: {
|
|
|
494
565
|
append?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
|
|
495
566
|
details?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
|
|
496
567
|
message?: false | ((arg: VMessageSlot) => vue.VNodeChild) | undefined;
|
|
568
|
+
'thumb-label'?: false | ((arg: {
|
|
569
|
+
modelValue: number;
|
|
570
|
+
}) => vue.VNodeChild) | undefined;
|
|
571
|
+
'tick-label'?: false | ((arg: {
|
|
572
|
+
tick: Tick;
|
|
573
|
+
index: number;
|
|
574
|
+
}) => vue.VNodeChild) | undefined;
|
|
497
575
|
label?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
|
|
498
|
-
'tick-label'?: false | (() => vue.VNodeChild) | undefined;
|
|
499
|
-
'thumb-label'?: false | (() => vue.VNodeChild) | undefined;
|
|
500
576
|
} | undefined;
|
|
501
577
|
} & {
|
|
502
578
|
"v-slot:default"?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
|
|
@@ -504,9 +580,14 @@ declare const VSlider: {
|
|
|
504
580
|
"v-slot:append"?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
|
|
505
581
|
"v-slot:details"?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
|
|
506
582
|
"v-slot:message"?: false | ((arg: VMessageSlot) => vue.VNodeChild) | undefined;
|
|
583
|
+
"v-slot:thumb-label"?: false | ((arg: {
|
|
584
|
+
modelValue: number;
|
|
585
|
+
}) => vue.VNodeChild) | undefined;
|
|
586
|
+
"v-slot:tick-label"?: false | ((arg: {
|
|
587
|
+
tick: Tick;
|
|
588
|
+
index: number;
|
|
589
|
+
}) => vue.VNodeChild) | undefined;
|
|
507
590
|
"v-slot:label"?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
|
|
508
|
-
"v-slot:tick-label"?: false | (() => vue.VNodeChild) | undefined;
|
|
509
|
-
"v-slot:thumb-label"?: false | (() => vue.VNodeChild) | undefined;
|
|
510
591
|
} & {
|
|
511
592
|
"onUpdate:modelValue"?: ((v: number) => any) | undefined;
|
|
512
593
|
"onUpdate:focused"?: ((value: boolean) => any) | undefined;
|
|
@@ -532,6 +613,7 @@ declare const VSlider: {
|
|
|
532
613
|
rounded: string | number | boolean;
|
|
533
614
|
density: Density;
|
|
534
615
|
modelValue: string | number;
|
|
616
|
+
ripple: boolean;
|
|
535
617
|
focused: boolean;
|
|
536
618
|
errorMessages: string | readonly string[];
|
|
537
619
|
maxErrors: string | number;
|
|
@@ -559,13 +641,18 @@ declare const VSlider: {
|
|
|
559
641
|
message: (arg: VMessageSlot) => vue.VNode<vue.RendererNode, vue.RendererElement, {
|
|
560
642
|
[key: string]: any;
|
|
561
643
|
}>[];
|
|
562
|
-
label: (arg:
|
|
644
|
+
'thumb-label': (arg: {
|
|
645
|
+
modelValue: number;
|
|
646
|
+
}) => vue.VNode<vue.RendererNode, vue.RendererElement, {
|
|
563
647
|
[key: string]: any;
|
|
564
648
|
}>[];
|
|
565
|
-
'tick-label': (
|
|
649
|
+
'tick-label': (arg: {
|
|
650
|
+
tick: Tick;
|
|
651
|
+
index: number;
|
|
652
|
+
}) => vue.VNode<vue.RendererNode, vue.RendererElement, {
|
|
566
653
|
[key: string]: any;
|
|
567
654
|
}>[];
|
|
568
|
-
|
|
655
|
+
label: (arg: VInputSlot) => vue.VNode<vue.RendererNode, vue.RendererElement, {
|
|
569
656
|
[key: string]: any;
|
|
570
657
|
}>[];
|
|
571
658
|
}>>> & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & FilterPropsOptions<{
|
|
@@ -631,6 +718,10 @@ declare const VSlider: {
|
|
|
631
718
|
};
|
|
632
719
|
'onClick:prepend': vue.PropType<EventProp<[MouseEvent], (args_0: MouseEvent) => any>>;
|
|
633
720
|
'onClick:append': vue.PropType<EventProp<[MouseEvent], (args_0: MouseEvent) => any>>;
|
|
721
|
+
ripple: {
|
|
722
|
+
type: BooleanConstructor;
|
|
723
|
+
default: boolean;
|
|
724
|
+
};
|
|
634
725
|
elevation: Omit<{
|
|
635
726
|
type: (StringConstructor | NumberConstructor)[];
|
|
636
727
|
validator(v: any): boolean;
|
|
@@ -747,6 +838,10 @@ declare const VSlider: {
|
|
|
747
838
|
};
|
|
748
839
|
'onClick:prepend': vue.PropType<EventProp<[MouseEvent], (args_0: MouseEvent) => any>>;
|
|
749
840
|
'onClick:append': vue.PropType<EventProp<[MouseEvent], (args_0: MouseEvent) => any>>;
|
|
841
|
+
ripple: {
|
|
842
|
+
type: BooleanConstructor;
|
|
843
|
+
default: boolean;
|
|
844
|
+
};
|
|
750
845
|
elevation: Omit<{
|
|
751
846
|
type: (StringConstructor | NumberConstructor)[];
|
|
752
847
|
validator(v: any): boolean;
|
|
@@ -75,7 +75,11 @@ export const makeSliderProps = propsFactory({
|
|
|
75
75
|
...makeRoundedProps(),
|
|
76
76
|
...makeElevationProps({
|
|
77
77
|
elevation: 2
|
|
78
|
-
})
|
|
78
|
+
}),
|
|
79
|
+
ripple: {
|
|
80
|
+
type: Boolean,
|
|
81
|
+
default: true
|
|
82
|
+
}
|
|
79
83
|
}, 'Slider');
|
|
80
84
|
export const useSteps = props => {
|
|
81
85
|
const min = computed(() => parseFloat(props.min));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slider.mjs","names":["makeElevationProps","useRtl","makeRoundedProps","computed","provide","ref","shallowRef","toRef","clamp","createRange","getDecimals","propsFactory","VSliderSymbol","Symbol","for","getOffset","e","el","direction","vertical","rect","getBoundingClientRect","touch","touches","clientY","top","height","clientX","left","width","getPosition","position","length","changedTouches","makeSliderProps","disabled","type","Boolean","default","error","readonly","max","Number","String","min","step","thumbColor","thumbLabel","undefined","validator","v","thumbSize","showTicks","ticks","Array","Object","tickSize","color","trackColor","trackFillColor","trackSize","includes","reverse","elevation","useSteps","props","parseFloat","decimals","Math","value","roundValue","clamped","offset","newValue","round","toFixed","useSlider","_ref","steps","onSliderStart","onSliderMove","onSliderEnd","getActiveThumb","isRtl","isReversed","horizontalDirection","hd","parseInt","numTicks","mousePressed","startOffset","trackContainerRef","activeThumbRef","parseMouseMove","start","trackStart","trackLength","$el","clickOffset","clickPos","handleStop","handleStart","focus","contains","target","moveListenerOptions","passive","capture","onMouseMove","onSliderMouseUp","stopPropagation","preventDefault","window","removeEventListener","onSliderTouchend","onSliderTouchstart","addEventListener","onSliderMousedown","val","percentage","isNaN","parsedTicks","Infinity","map","t","isArray","label","toString","keys","key","hasLabels","some","_ref2","data","rounded"],"sources":["../../../src/components/VSlider/slider.ts"],"sourcesContent":["/* eslint-disable max-statements */\n// Composables\nimport { makeElevationProps } from '@/composables/elevation'\nimport { useRtl } from '@/composables/locale'\nimport { makeRoundedProps } from '@/composables/rounded'\n\n// Utilities\nimport { computed, provide, ref, shallowRef, toRef } from 'vue'\nimport { clamp, createRange, getDecimals, propsFactory } from '@/util'\n\n// Types\nimport type { ExtractPropTypes, InjectionKey, PropType, Ref } from 'vue'\nimport type { VSliderTrack } from './VSliderTrack'\n\nexport type Tick = {\n value: number\n position: number\n label?: string\n}\n\ntype SliderProvide = {\n activeThumbRef: Ref<HTMLElement | undefined>\n color: Ref<string | undefined>\n decimals: Ref<number>\n direction: Ref<'vertical' | 'horizontal'>\n disabled: Ref<boolean | null | undefined>\n elevation: Ref<number | string | undefined>\n min: Ref<number>\n max: Ref<number>\n mousePressed: Ref<boolean>\n numTicks: Ref<number>\n onSliderMousedown: (e: MouseEvent) => void\n onSliderTouchstart: (e: TouchEvent) => void\n parseMouseMove: (e: MouseEvent | TouchEvent) => number\n position: (val: number) => number\n readonly: Ref<boolean | null | undefined>\n rounded: Ref<boolean | number | string | undefined>\n roundValue: (value: number) => number\n thumbLabel: Ref<boolean | string | undefined>\n showTicks: Ref<boolean | 'always'>\n startOffset: Ref<number>\n step: Ref<number>\n thumbSize: Ref<number>\n thumbColor: Ref<string | undefined>\n trackColor: Ref<string | undefined>\n trackFillColor: Ref<string | undefined>\n trackSize: Ref<number>\n ticks: Ref<readonly number[] | Record<string, string> | undefined>\n tickSize: Ref<number>\n trackContainerRef: Ref<VSliderTrack | undefined>\n vertical: Ref<boolean>\n parsedTicks: Ref<Tick[]>\n hasLabels: Ref<boolean>\n isReversed: Ref<boolean>\n horizontalDirection: Ref<'ltr' | 'rtl'>\n}\n\nexport const VSliderSymbol: InjectionKey<SliderProvide> = Symbol.for('vuetify:v-slider')\n\nexport function getOffset (e: MouseEvent | TouchEvent, el: HTMLElement, direction: string) {\n const vertical = direction === 'vertical'\n const rect = el.getBoundingClientRect()\n const touch = 'touches' in e ? e.touches[0] : e\n return vertical\n ? touch.clientY - (rect.top + rect.height / 2)\n : touch.clientX - (rect.left + rect.width / 2)\n}\n\nfunction getPosition (e: MouseEvent | TouchEvent, position: 'clientX' | 'clientY'): number {\n if ('touches' in e && e.touches.length) return e.touches[0][position]\n else if ('changedTouches' in e && e.changedTouches.length) return e.changedTouches[0][position]\n else return (e as MouseEvent)[position]\n}\n\nexport const makeSliderProps = propsFactory({\n disabled: {\n type: Boolean as PropType<boolean | null>,\n default: null,\n },\n error: Boolean,\n readonly: {\n type: Boolean as PropType<boolean | null>,\n default: null,\n },\n max: {\n type: [Number, String],\n default: 100,\n },\n min: {\n type: [Number, String],\n default: 0,\n },\n step: {\n type: [Number, String],\n default: 0,\n },\n thumbColor: String,\n thumbLabel: {\n type: [Boolean, String] as PropType<boolean | 'always' | undefined>,\n default: undefined,\n validator: (v: any) => typeof v === 'boolean' || v === 'always',\n },\n thumbSize: {\n type: [Number, String],\n default: 20,\n },\n showTicks: {\n type: [Boolean, String] as PropType<boolean | 'always'>,\n default: false,\n validator: (v: any) => typeof v === 'boolean' || v === 'always',\n },\n ticks: {\n type: [Array, Object] as PropType<readonly number[] | Record<number, string>>,\n },\n tickSize: {\n type: [Number, String],\n default: 2,\n },\n color: String,\n trackColor: String,\n trackFillColor: String,\n trackSize: {\n type: [Number, String],\n default: 4,\n },\n direction: {\n type: String as PropType<'horizontal' | 'vertical'>,\n default: 'horizontal',\n validator: (v: any) => ['vertical', 'horizontal'].includes(v),\n },\n reverse: Boolean,\n\n ...makeRoundedProps(),\n ...makeElevationProps({\n elevation: 2,\n }),\n}, 'Slider')\n\ntype SliderProps = ExtractPropTypes<ReturnType<typeof makeSliderProps>>\n\ntype SliderData = {\n value: number\n}\n\nexport const useSteps = (props: SliderProps) => {\n const min = computed(() => parseFloat(props.min))\n const max = computed(() => parseFloat(props.max))\n const step = computed(() => +props.step > 0 ? parseFloat(props.step) : 0)\n const decimals = computed(() => Math.max(getDecimals(step.value), getDecimals(min.value)))\n\n function roundValue (value: string | number) {\n value = parseFloat(value)\n\n if (step.value <= 0) return value\n\n const clamped = clamp(value, min.value, max.value)\n const offset = min.value % step.value\n const newValue = Math.round((clamped - offset) / step.value) * step.value + offset\n\n return parseFloat(Math.min(newValue, max.value).toFixed(decimals.value))\n }\n\n return { min, max, step, decimals, roundValue }\n}\n\nexport const useSlider = ({\n props,\n steps,\n onSliderStart,\n onSliderMove,\n onSliderEnd,\n getActiveThumb,\n}: {\n props: SliderProps\n steps: ReturnType<typeof useSteps>\n onSliderEnd: (data: SliderData) => void\n onSliderStart: (data: SliderData) => void\n onSliderMove: (data: SliderData) => void\n getActiveThumb: (e: MouseEvent | TouchEvent) => HTMLElement\n}) => {\n const { isRtl } = useRtl()\n const isReversed = toRef(props, 'reverse')\n const horizontalDirection = computed(() => {\n let hd: 'ltr' | 'rtl' = isRtl.value ? 'rtl' : 'ltr'\n\n if (props.reverse) {\n hd = hd === 'rtl' ? 'ltr' : 'rtl'\n }\n\n return hd\n })\n\n const { min, max, step, decimals, roundValue } = steps\n\n const thumbSize = computed(() => parseInt(props.thumbSize, 10))\n const tickSize = computed(() => parseInt(props.tickSize, 10))\n const trackSize = computed(() => parseInt(props.trackSize, 10))\n const numTicks = computed(() => (max.value - min.value) / step.value)\n const disabled = toRef(props, 'disabled')\n const vertical = computed(() => props.direction === 'vertical')\n\n const thumbColor = computed(() => props.error || props.disabled ? undefined : props.thumbColor ?? props.color)\n const trackColor = computed(() => props.error || props.disabled ? undefined : props.trackColor ?? props.color)\n const trackFillColor = computed(() => props.error || props.disabled ? undefined : props.trackFillColor ?? props.color)\n\n const mousePressed = shallowRef(false)\n\n const startOffset = shallowRef(0)\n const trackContainerRef = ref<VSliderTrack | undefined>()\n const activeThumbRef = ref<HTMLElement | undefined>()\n\n function parseMouseMove (e: MouseEvent | TouchEvent): number {\n const vertical = props.direction === 'vertical'\n const start = vertical ? 'top' : 'left'\n const length = vertical ? 'height' : 'width'\n const position = vertical ? 'clientY' : 'clientX'\n\n const {\n [start]: trackStart,\n [length]: trackLength,\n } = trackContainerRef.value?.$el.getBoundingClientRect()\n const clickOffset = getPosition(e, position)\n\n // It is possible for left to be NaN, force to number\n let clickPos = Math.min(Math.max((clickOffset - trackStart - startOffset.value) / trackLength, 0), 1) || 0\n\n if (vertical || horizontalDirection.value === 'rtl') clickPos = 1 - clickPos\n\n return roundValue(min.value + clickPos * (max.value - min.value))\n }\n\n const handleStop = (e: MouseEvent | TouchEvent) => {\n onSliderEnd({ value: parseMouseMove(e) })\n\n mousePressed.value = false\n startOffset.value = 0\n }\n\n const handleStart = (e: MouseEvent | TouchEvent) => {\n activeThumbRef.value = getActiveThumb(e)\n\n if (!activeThumbRef.value) return\n\n activeThumbRef.value.focus()\n mousePressed.value = true\n\n if (activeThumbRef.value.contains(e.target as Node)) {\n startOffset.value = getOffset(e, activeThumbRef.value, props.direction)\n } else {\n startOffset.value = 0\n onSliderMove({ value: parseMouseMove(e) })\n }\n\n onSliderStart({ value: parseMouseMove(e) })\n }\n\n const moveListenerOptions = { passive: true, capture: true }\n\n function onMouseMove (e: MouseEvent | TouchEvent) {\n onSliderMove({ value: parseMouseMove(e) })\n }\n\n function onSliderMouseUp (e: MouseEvent) {\n e.stopPropagation()\n e.preventDefault()\n\n handleStop(e)\n\n window.removeEventListener('mousemove', onMouseMove, moveListenerOptions)\n window.removeEventListener('mouseup', onSliderMouseUp)\n }\n\n function onSliderTouchend (e: TouchEvent) {\n handleStop(e)\n\n window.removeEventListener('touchmove', onMouseMove, moveListenerOptions)\n e.target?.removeEventListener('touchend', onSliderTouchend as EventListener)\n }\n\n function onSliderTouchstart (e: TouchEvent) {\n handleStart(e)\n\n window.addEventListener('touchmove', onMouseMove, moveListenerOptions)\n e.target?.addEventListener('touchend', onSliderTouchend as EventListener, { passive: false })\n }\n\n function onSliderMousedown (e: MouseEvent) {\n e.preventDefault()\n\n handleStart(e)\n\n window.addEventListener('mousemove', onMouseMove, moveListenerOptions)\n window.addEventListener('mouseup', onSliderMouseUp, { passive: false })\n }\n\n const position = (val: number) => {\n const percentage = (val - min.value) / (max.value - min.value) * 100\n return clamp(isNaN(percentage) ? 0 : percentage, 0, 100)\n }\n\n const showTicks = toRef(props, 'showTicks')\n const parsedTicks = computed<Tick[]>(() => {\n if (!showTicks.value) return []\n\n if (!props.ticks) {\n return numTicks.value !== Infinity ? createRange(numTicks.value + 1).map(t => {\n const value = min.value + (t * step.value)\n return {\n value,\n position: position(value),\n }\n }) : []\n }\n if (Array.isArray(props.ticks)) return props.ticks.map(t => ({ value: t, position: position(t), label: t.toString() }))\n return Object.keys(props.ticks).map(key => ({\n value: parseFloat(key),\n position: position(parseFloat(key)),\n label: (props.ticks as Record<string, string>)[key],\n }))\n })\n\n const hasLabels = computed(() => parsedTicks.value.some(({ label }) => !!label))\n\n const data: SliderProvide = {\n activeThumbRef,\n color: toRef(props, 'color'),\n decimals,\n disabled,\n direction: toRef(props, 'direction'),\n elevation: toRef(props, 'elevation'),\n hasLabels,\n horizontalDirection,\n isReversed,\n min,\n max,\n mousePressed,\n numTicks,\n onSliderMousedown,\n onSliderTouchstart,\n parsedTicks,\n parseMouseMove,\n position,\n readonly: toRef(props, 'readonly'),\n rounded: toRef(props, 'rounded'),\n roundValue,\n showTicks,\n startOffset,\n step,\n thumbSize,\n thumbColor,\n thumbLabel: toRef(props, 'thumbLabel'),\n ticks: toRef(props, 'ticks'),\n tickSize,\n trackColor,\n trackContainerRef,\n trackFillColor,\n trackSize,\n vertical,\n }\n\n provide(VSliderSymbol, data)\n\n return data\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"slider.mjs","names":["makeElevationProps","useRtl","makeRoundedProps","computed","provide","ref","shallowRef","toRef","clamp","createRange","getDecimals","propsFactory","VSliderSymbol","Symbol","for","getOffset","e","el","direction","vertical","rect","getBoundingClientRect","touch","touches","clientY","top","height","clientX","left","width","getPosition","position","length","changedTouches","makeSliderProps","disabled","type","Boolean","default","error","readonly","max","Number","String","min","step","thumbColor","thumbLabel","undefined","validator","v","thumbSize","showTicks","ticks","Array","Object","tickSize","color","trackColor","trackFillColor","trackSize","includes","reverse","elevation","ripple","useSteps","props","parseFloat","decimals","Math","value","roundValue","clamped","offset","newValue","round","toFixed","useSlider","_ref","steps","onSliderStart","onSliderMove","onSliderEnd","getActiveThumb","isRtl","isReversed","horizontalDirection","hd","parseInt","numTicks","mousePressed","startOffset","trackContainerRef","activeThumbRef","parseMouseMove","start","trackStart","trackLength","$el","clickOffset","clickPos","handleStop","handleStart","focus","contains","target","moveListenerOptions","passive","capture","onMouseMove","onSliderMouseUp","stopPropagation","preventDefault","window","removeEventListener","onSliderTouchend","onSliderTouchstart","addEventListener","onSliderMousedown","val","percentage","isNaN","parsedTicks","Infinity","map","t","isArray","label","toString","keys","key","hasLabels","some","_ref2","data","rounded"],"sources":["../../../src/components/VSlider/slider.ts"],"sourcesContent":["/* eslint-disable max-statements */\n// Composables\nimport { makeElevationProps } from '@/composables/elevation'\nimport { useRtl } from '@/composables/locale'\nimport { makeRoundedProps } from '@/composables/rounded'\n\n// Utilities\nimport { computed, provide, ref, shallowRef, toRef } from 'vue'\nimport { clamp, createRange, getDecimals, propsFactory } from '@/util'\n\n// Types\nimport type { ExtractPropTypes, InjectionKey, PropType, Ref } from 'vue'\nimport type { VSliderTrack } from './VSliderTrack'\n\nexport type Tick = {\n value: number\n position: number\n label?: string\n}\n\ntype SliderProvide = {\n activeThumbRef: Ref<HTMLElement | undefined>\n color: Ref<string | undefined>\n decimals: Ref<number>\n direction: Ref<'vertical' | 'horizontal'>\n disabled: Ref<boolean | null | undefined>\n elevation: Ref<number | string | undefined>\n min: Ref<number>\n max: Ref<number>\n mousePressed: Ref<boolean>\n numTicks: Ref<number>\n onSliderMousedown: (e: MouseEvent) => void\n onSliderTouchstart: (e: TouchEvent) => void\n parseMouseMove: (e: MouseEvent | TouchEvent) => number\n position: (val: number) => number\n readonly: Ref<boolean | null | undefined>\n rounded: Ref<boolean | number | string | undefined>\n roundValue: (value: number) => number\n thumbLabel: Ref<boolean | string | undefined>\n showTicks: Ref<boolean | 'always'>\n startOffset: Ref<number>\n step: Ref<number>\n thumbSize: Ref<number>\n thumbColor: Ref<string | undefined>\n trackColor: Ref<string | undefined>\n trackFillColor: Ref<string | undefined>\n trackSize: Ref<number>\n ticks: Ref<readonly number[] | Record<string, string> | undefined>\n tickSize: Ref<number>\n trackContainerRef: Ref<VSliderTrack | undefined>\n vertical: Ref<boolean>\n parsedTicks: Ref<Tick[]>\n hasLabels: Ref<boolean>\n isReversed: Ref<boolean>\n horizontalDirection: Ref<'ltr' | 'rtl'>\n}\n\nexport const VSliderSymbol: InjectionKey<SliderProvide> = Symbol.for('vuetify:v-slider')\n\nexport function getOffset (e: MouseEvent | TouchEvent, el: HTMLElement, direction: string) {\n const vertical = direction === 'vertical'\n const rect = el.getBoundingClientRect()\n const touch = 'touches' in e ? e.touches[0] : e\n return vertical\n ? touch.clientY - (rect.top + rect.height / 2)\n : touch.clientX - (rect.left + rect.width / 2)\n}\n\nfunction getPosition (e: MouseEvent | TouchEvent, position: 'clientX' | 'clientY'): number {\n if ('touches' in e && e.touches.length) return e.touches[0][position]\n else if ('changedTouches' in e && e.changedTouches.length) return e.changedTouches[0][position]\n else return (e as MouseEvent)[position]\n}\n\nexport const makeSliderProps = propsFactory({\n disabled: {\n type: Boolean as PropType<boolean | null>,\n default: null,\n },\n error: Boolean,\n readonly: {\n type: Boolean as PropType<boolean | null>,\n default: null,\n },\n max: {\n type: [Number, String],\n default: 100,\n },\n min: {\n type: [Number, String],\n default: 0,\n },\n step: {\n type: [Number, String],\n default: 0,\n },\n thumbColor: String,\n thumbLabel: {\n type: [Boolean, String] as PropType<boolean | 'always' | undefined>,\n default: undefined,\n validator: (v: any) => typeof v === 'boolean' || v === 'always',\n },\n thumbSize: {\n type: [Number, String],\n default: 20,\n },\n showTicks: {\n type: [Boolean, String] as PropType<boolean | 'always'>,\n default: false,\n validator: (v: any) => typeof v === 'boolean' || v === 'always',\n },\n ticks: {\n type: [Array, Object] as PropType<readonly number[] | Record<number, string>>,\n },\n tickSize: {\n type: [Number, String],\n default: 2,\n },\n color: String,\n trackColor: String,\n trackFillColor: String,\n trackSize: {\n type: [Number, String],\n default: 4,\n },\n direction: {\n type: String as PropType<'horizontal' | 'vertical'>,\n default: 'horizontal',\n validator: (v: any) => ['vertical', 'horizontal'].includes(v),\n },\n reverse: Boolean,\n\n ...makeRoundedProps(),\n ...makeElevationProps({\n elevation: 2,\n }),\n ripple: {\n type: Boolean,\n default: true,\n },\n}, 'Slider')\n\ntype SliderProps = ExtractPropTypes<ReturnType<typeof makeSliderProps>>\n\ntype SliderData = {\n value: number\n}\n\nexport const useSteps = (props: SliderProps) => {\n const min = computed(() => parseFloat(props.min))\n const max = computed(() => parseFloat(props.max))\n const step = computed(() => +props.step > 0 ? parseFloat(props.step) : 0)\n const decimals = computed(() => Math.max(getDecimals(step.value), getDecimals(min.value)))\n\n function roundValue (value: string | number) {\n value = parseFloat(value)\n\n if (step.value <= 0) return value\n\n const clamped = clamp(value, min.value, max.value)\n const offset = min.value % step.value\n const newValue = Math.round((clamped - offset) / step.value) * step.value + offset\n\n return parseFloat(Math.min(newValue, max.value).toFixed(decimals.value))\n }\n\n return { min, max, step, decimals, roundValue }\n}\n\nexport const useSlider = ({\n props,\n steps,\n onSliderStart,\n onSliderMove,\n onSliderEnd,\n getActiveThumb,\n}: {\n props: SliderProps\n steps: ReturnType<typeof useSteps>\n onSliderEnd: (data: SliderData) => void\n onSliderStart: (data: SliderData) => void\n onSliderMove: (data: SliderData) => void\n getActiveThumb: (e: MouseEvent | TouchEvent) => HTMLElement\n}) => {\n const { isRtl } = useRtl()\n const isReversed = toRef(props, 'reverse')\n const horizontalDirection = computed(() => {\n let hd: 'ltr' | 'rtl' = isRtl.value ? 'rtl' : 'ltr'\n\n if (props.reverse) {\n hd = hd === 'rtl' ? 'ltr' : 'rtl'\n }\n\n return hd\n })\n\n const { min, max, step, decimals, roundValue } = steps\n\n const thumbSize = computed(() => parseInt(props.thumbSize, 10))\n const tickSize = computed(() => parseInt(props.tickSize, 10))\n const trackSize = computed(() => parseInt(props.trackSize, 10))\n const numTicks = computed(() => (max.value - min.value) / step.value)\n const disabled = toRef(props, 'disabled')\n const vertical = computed(() => props.direction === 'vertical')\n\n const thumbColor = computed(() => props.error || props.disabled ? undefined : props.thumbColor ?? props.color)\n const trackColor = computed(() => props.error || props.disabled ? undefined : props.trackColor ?? props.color)\n const trackFillColor = computed(() => props.error || props.disabled ? undefined : props.trackFillColor ?? props.color)\n\n const mousePressed = shallowRef(false)\n\n const startOffset = shallowRef(0)\n const trackContainerRef = ref<VSliderTrack | undefined>()\n const activeThumbRef = ref<HTMLElement | undefined>()\n\n function parseMouseMove (e: MouseEvent | TouchEvent): number {\n const vertical = props.direction === 'vertical'\n const start = vertical ? 'top' : 'left'\n const length = vertical ? 'height' : 'width'\n const position = vertical ? 'clientY' : 'clientX'\n\n const {\n [start]: trackStart,\n [length]: trackLength,\n } = trackContainerRef.value?.$el.getBoundingClientRect()\n const clickOffset = getPosition(e, position)\n\n // It is possible for left to be NaN, force to number\n let clickPos = Math.min(Math.max((clickOffset - trackStart - startOffset.value) / trackLength, 0), 1) || 0\n\n if (vertical || horizontalDirection.value === 'rtl') clickPos = 1 - clickPos\n\n return roundValue(min.value + clickPos * (max.value - min.value))\n }\n\n const handleStop = (e: MouseEvent | TouchEvent) => {\n onSliderEnd({ value: parseMouseMove(e) })\n\n mousePressed.value = false\n startOffset.value = 0\n }\n\n const handleStart = (e: MouseEvent | TouchEvent) => {\n activeThumbRef.value = getActiveThumb(e)\n\n if (!activeThumbRef.value) return\n\n activeThumbRef.value.focus()\n mousePressed.value = true\n\n if (activeThumbRef.value.contains(e.target as Node)) {\n startOffset.value = getOffset(e, activeThumbRef.value, props.direction)\n } else {\n startOffset.value = 0\n onSliderMove({ value: parseMouseMove(e) })\n }\n\n onSliderStart({ value: parseMouseMove(e) })\n }\n\n const moveListenerOptions = { passive: true, capture: true }\n\n function onMouseMove (e: MouseEvent | TouchEvent) {\n onSliderMove({ value: parseMouseMove(e) })\n }\n\n function onSliderMouseUp (e: MouseEvent) {\n e.stopPropagation()\n e.preventDefault()\n\n handleStop(e)\n\n window.removeEventListener('mousemove', onMouseMove, moveListenerOptions)\n window.removeEventListener('mouseup', onSliderMouseUp)\n }\n\n function onSliderTouchend (e: TouchEvent) {\n handleStop(e)\n\n window.removeEventListener('touchmove', onMouseMove, moveListenerOptions)\n e.target?.removeEventListener('touchend', onSliderTouchend as EventListener)\n }\n\n function onSliderTouchstart (e: TouchEvent) {\n handleStart(e)\n\n window.addEventListener('touchmove', onMouseMove, moveListenerOptions)\n e.target?.addEventListener('touchend', onSliderTouchend as EventListener, { passive: false })\n }\n\n function onSliderMousedown (e: MouseEvent) {\n e.preventDefault()\n\n handleStart(e)\n\n window.addEventListener('mousemove', onMouseMove, moveListenerOptions)\n window.addEventListener('mouseup', onSliderMouseUp, { passive: false })\n }\n\n const position = (val: number) => {\n const percentage = (val - min.value) / (max.value - min.value) * 100\n return clamp(isNaN(percentage) ? 0 : percentage, 0, 100)\n }\n\n const showTicks = toRef(props, 'showTicks')\n const parsedTicks = computed<Tick[]>(() => {\n if (!showTicks.value) return []\n\n if (!props.ticks) {\n return numTicks.value !== Infinity ? createRange(numTicks.value + 1).map(t => {\n const value = min.value + (t * step.value)\n return {\n value,\n position: position(value),\n }\n }) : []\n }\n if (Array.isArray(props.ticks)) return props.ticks.map(t => ({ value: t, position: position(t), label: t.toString() }))\n return Object.keys(props.ticks).map(key => ({\n value: parseFloat(key),\n position: position(parseFloat(key)),\n label: (props.ticks as Record<string, string>)[key],\n }))\n })\n\n const hasLabels = computed(() => parsedTicks.value.some(({ label }) => !!label))\n\n const data: SliderProvide = {\n activeThumbRef,\n color: toRef(props, 'color'),\n decimals,\n disabled,\n direction: toRef(props, 'direction'),\n elevation: toRef(props, 'elevation'),\n hasLabels,\n horizontalDirection,\n isReversed,\n min,\n max,\n mousePressed,\n numTicks,\n onSliderMousedown,\n onSliderTouchstart,\n parsedTicks,\n parseMouseMove,\n position,\n readonly: toRef(props, 'readonly'),\n rounded: toRef(props, 'rounded'),\n roundValue,\n showTicks,\n startOffset,\n step,\n thumbSize,\n thumbColor,\n thumbLabel: toRef(props, 'thumbLabel'),\n ticks: toRef(props, 'ticks'),\n tickSize,\n trackColor,\n trackContainerRef,\n trackFillColor,\n trackSize,\n vertical,\n }\n\n provide(VSliderSymbol, data)\n\n return data\n}\n"],"mappings":"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"}
|