@vuetify/nightly 3.0.0-beta.10 → 3.0.0-beta.13
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/CHANGELOG.md +13 -2
- package/dist/json/attributes.json +37 -29
- package/dist/json/importMap.json +46 -46
- package/dist/json/tags.json +10 -8
- package/dist/json/web-types.json +101 -87
- package/dist/vuetify.css +545 -441
- package/dist/vuetify.d.ts +12095 -10059
- package/dist/vuetify.esm.js +401 -266
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +371 -236
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +3 -3
- package/dist/vuetify.min.js +496 -490
- package/dist/vuetify.min.js.map +1 -1
- package/lib/blueprints/index.d.ts +171 -0
- package/lib/blueprints/md1.d.ts +167 -0
- package/lib/blueprints/md2.d.ts +167 -0
- package/lib/blueprints/md3.d.ts +167 -0
- package/lib/components/VAlert/index.d.ts +185 -0
- package/lib/components/VApp/index.d.ts +83 -0
- package/lib/components/VAppBar/VAppBar.css +3 -0
- package/lib/components/VAppBar/VAppBar.sass +3 -0
- package/lib/components/VAppBar/index.d.ts +156 -0
- package/lib/components/VAutocomplete/VAutocomplete.mjs +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VAutocomplete/index.d.ts +1569 -0
- package/lib/components/VAvatar/VAvatar.css +44 -2
- package/lib/components/VAvatar/VAvatar.mjs +16 -12
- package/lib/components/VAvatar/VAvatar.mjs.map +1 -1
- package/lib/components/VAvatar/VAvatar.sass +5 -1
- package/lib/components/VAvatar/_variables.scss +9 -4
- package/lib/components/VAvatar/index.d.ts +80 -0
- package/lib/components/VBadge/index.d.ts +123 -0
- package/lib/components/VBanner/index.d.ts +122 -0
- package/lib/components/VBottomNavigation/index.d.ts +143 -0
- package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs +2 -2
- package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/index.d.ts +301 -0
- package/lib/components/VBtn/VBtn.css +8 -3
- package/lib/components/VBtn/VBtn.mjs +16 -6
- package/lib/components/VBtn/VBtn.mjs.map +1 -1
- package/lib/components/VBtn/index.d.ts +210 -0
- package/lib/components/VBtnGroup/index.d.ts +65 -0
- package/lib/components/VBtnToggle/VBtnToggle.mjs +1 -3
- package/lib/components/VBtnToggle/VBtnToggle.mjs.map +1 -1
- package/lib/components/VBtnToggle/index.d.ts +175 -0
- package/lib/components/VCard/VCard.css +8 -3
- package/lib/components/VCard/index.d.ts +230 -0
- package/lib/components/VCarousel/VCarousel.mjs +3 -3
- package/lib/components/VCarousel/VCarousel.mjs.map +1 -1
- package/lib/components/VCarousel/index.d.ts +80 -0
- package/lib/components/VCheckbox/index.d.ts +291 -0
- package/lib/components/VChip/index.d.ts +195 -0
- package/lib/components/VChipGroup/index.d.ts +89 -0
- package/lib/components/VCode/index.d.ts +19 -0
- package/lib/components/VColorPicker/index.d.ts +116 -0
- package/lib/components/VCombobox/VCombobox.mjs +1 -1
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VCombobox/index.d.ts +1590 -0
- package/lib/components/VCounter/index.d.ts +223 -0
- package/lib/components/VDefaultsProvider/index.d.ts +26 -0
- package/lib/components/VDialog/VDialog.css +2 -0
- package/lib/components/VDialog/VDialog.mjs +17 -12
- package/lib/components/VDialog/VDialog.mjs.map +1 -1
- package/lib/components/VDialog/VDialog.sass +2 -0
- package/lib/components/VDialog/index.d.ts +859 -0
- package/lib/components/VDivider/index.d.ts +22 -0
- package/lib/components/VExpansionPanel/VExpansionPanel.css +8 -3
- package/lib/components/VExpansionPanel/index.d.ts +206 -0
- package/lib/components/VField/VField.css +27 -24
- package/lib/components/VField/VField.mjs +1 -1
- package/lib/components/VField/VField.mjs.map +1 -1
- package/lib/components/VField/VField.sass +23 -21
- package/lib/components/VField/index.d.ts +332 -0
- package/lib/components/VFileInput/VFileInput.mjs +3 -3
- package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
- package/lib/components/VFileInput/index.d.ts +236 -0
- package/lib/components/VFooter/VFooter.css +7 -0
- package/lib/components/VFooter/VFooter.sass +1 -1
- package/lib/components/VFooter/_variables.scss +11 -0
- package/lib/components/VFooter/index.d.ts +76 -0
- package/lib/components/VForm/index.d.ts +72 -0
- package/lib/components/VGrid/index.d.ts +154 -0
- package/lib/components/VHover/index.d.ts +30 -0
- package/lib/components/VIcon/index.d.ts +124 -0
- package/lib/components/VImg/VImg.mjs +29 -27
- package/lib/components/VImg/VImg.mjs.map +1 -1
- package/lib/components/VImg/index.d.ts +89 -0
- package/lib/components/VInput/VInput.mjs +4 -4
- package/lib/components/VInput/VInput.mjs.map +1 -1
- package/lib/components/VInput/index.d.ts +325 -0
- package/lib/components/VItemGroup/index.d.ts +210 -0
- package/lib/components/VKbd/index.d.ts +19 -0
- package/lib/components/VLabel/VLabel.css +4 -1
- package/lib/components/VLabel/VLabel.mjs +4 -1
- package/lib/components/VLabel/VLabel.mjs.map +1 -1
- package/lib/components/VLabel/VLabel.sass +3 -1
- package/lib/components/VLabel/index.d.ts +16 -0
- package/lib/components/VLayout/index.d.ts +75 -0
- package/lib/components/VLazy/index.d.ts +85 -0
- package/lib/components/VList/VListItem.css +8 -3
- package/lib/components/VList/VListItem.mjs +4 -4
- package/lib/components/VList/VListItem.mjs.map +1 -1
- package/lib/components/VList/index.d.ts +1250 -0
- package/lib/components/VLocaleProvider/index.d.ts +23 -0
- package/lib/components/VMain/index.d.ts +26 -0
- package/lib/components/VMenu/VMenu.mjs +16 -3
- package/lib/components/VMenu/VMenu.mjs.map +1 -1
- package/lib/components/VMenu/index.d.ts +817 -0
- package/lib/components/VMessages/index.d.ts +234 -0
- package/lib/components/VNavigationDrawer/index.d.ts +148 -0
- package/lib/components/VNoSsr/index.d.ts +7 -0
- package/lib/components/VOverlay/VOverlay.mjs +4 -3
- package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
- package/lib/components/VOverlay/index.d.ts +579 -0
- package/lib/components/VOverlay/useActivator.mjs +27 -1
- package/lib/components/VOverlay/useActivator.mjs.map +1 -1
- package/lib/components/VPagination/VPagination.mjs +6 -3
- package/lib/components/VPagination/VPagination.mjs.map +1 -1
- package/lib/components/VPagination/index.d.ts +247 -0
- package/lib/components/VParallax/VParallax.mjs +24 -10
- package/lib/components/VParallax/VParallax.mjs.map +1 -1
- package/lib/components/VParallax/index.d.ts +18 -0
- package/lib/components/VProgressCircular/index.d.ts +68 -0
- package/lib/components/VProgressLinear/index.d.ts +101 -0
- package/lib/components/VRadio/index.d.ts +103 -0
- package/lib/components/VRadioGroup/VRadioGroup.css +2 -3
- package/lib/components/VRadioGroup/VRadioGroup.mjs +2 -1
- package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
- package/lib/components/VRadioGroup/VRadioGroup.sass +2 -2
- package/lib/components/VRadioGroup/_variables.scss +0 -1
- package/lib/components/VRadioGroup/index.d.ts +186 -0
- package/lib/components/VRangeSlider/VRangeSlider.mjs +12 -2
- package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
- package/lib/components/VRangeSlider/index.d.ts +242 -0
- package/lib/components/VRating/index.d.ts +356 -0
- package/lib/components/VResponsive/index.d.ts +23 -0
- package/lib/components/VSelect/VSelect.mjs +1 -1
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VSelect/index.d.ts +1521 -0
- package/lib/components/VSelectionControl/VSelectionControl.mjs +2 -1
- package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
- package/lib/components/VSelectionControl/index.d.ts +275 -0
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.css +5 -0
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs +3 -1
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs.map +1 -1
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.sass +5 -0
- package/lib/components/VSelectionControlGroup/index.d.ts +47 -0
- package/lib/components/VSheet/index.d.ts +68 -0
- package/lib/components/VSlideGroup/index.d.ts +151 -0
- package/lib/components/VSlider/VSlider.css +7 -2
- package/lib/components/VSlider/VSlider.mjs +14 -4
- package/lib/components/VSlider/VSlider.mjs.map +1 -1
- package/lib/components/VSlider/VSlider.sass +6 -2
- package/lib/components/VSlider/VSliderTrack.css +20 -20
- package/lib/components/VSlider/VSliderTrack.mjs +7 -3
- package/lib/components/VSlider/VSliderTrack.mjs.map +1 -1
- package/lib/components/VSlider/VSliderTrack.sass +14 -14
- package/lib/components/VSlider/_variables.scss +2 -2
- package/lib/components/VSlider/index.d.ts +239 -0
- package/lib/components/VSlider/slider.mjs +2 -2
- package/lib/components/VSlider/slider.mjs.map +1 -1
- package/lib/components/VSnackbar/VSnackbar.mjs +3 -2
- package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
- package/lib/components/VSnackbar/index.d.ts +892 -0
- package/lib/components/VSwitch/index.d.ts +175 -0
- package/lib/components/VSystemBar/index.d.ts +61 -0
- package/lib/components/VTable/index.d.ts +39 -0
- package/lib/components/VTabs/VTab.mjs +1 -0
- package/lib/components/VTabs/VTab.mjs.map +1 -1
- package/lib/components/VTabs/index.d.ts +178 -0
- package/lib/components/VTextField/VTextField.css +2 -3
- package/lib/components/VTextField/VTextField.sass +2 -4
- package/lib/components/VTextField/index.d.ts +582 -0
- package/lib/components/VTextarea/VTextarea.css +5 -3
- package/lib/components/VTextarea/VTextarea.mjs +2 -1
- package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
- package/lib/components/VTextarea/VTextarea.sass +5 -4
- package/lib/components/VTextarea/index.d.ts +218 -0
- package/lib/components/VThemeProvider/index.d.ts +24 -0
- package/lib/components/VTimeline/VTimeline.css +21 -6
- package/lib/components/VTimeline/VTimeline.mjs +6 -1
- package/lib/components/VTimeline/VTimeline.mjs.map +1 -1
- package/lib/components/VTimeline/VTimeline.sass +16 -2
- package/lib/components/VTimeline/_variables.scss +4 -3
- package/lib/components/VTimeline/index.d.ts +154 -0
- package/lib/components/VToolbar/VToolbar.css +0 -1
- package/lib/components/VToolbar/VToolbar.sass +0 -1
- package/lib/components/VToolbar/index.d.ts +414 -0
- package/lib/components/VTooltip/VTooltip.mjs.map +1 -1
- package/lib/components/VTooltip/index.d.ts +799 -0
- package/lib/components/VValidation/index.d.ts +61 -0
- package/lib/components/VWindow/index.d.ts +428 -0
- package/lib/components/index.d.ts +12037 -10009
- package/lib/components/transitions/index.d.ts +454 -0
- package/lib/composables/display.mjs +3 -3
- package/lib/composables/display.mjs.map +1 -1
- package/lib/composables/items.mjs.map +1 -1
- package/lib/composables/locale.mjs +10 -3
- package/lib/composables/locale.mjs.map +1 -1
- package/lib/composables/proxiedModel.mjs +28 -10
- package/lib/composables/proxiedModel.mjs.map +1 -1
- package/lib/composables/router.mjs +10 -2
- package/lib/composables/router.mjs.map +1 -1
- package/lib/composables/selectLink.mjs +4 -4
- package/lib/composables/selectLink.mjs.map +1 -1
- package/lib/composables/theme.mjs +37 -33
- package/lib/composables/theme.mjs.map +1 -1
- package/lib/composables/validation.mjs +1 -1
- package/lib/composables/validation.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +46 -51
- package/lib/framework.mjs.map +1 -1
- package/lib/index.d.ts +31 -22
- package/lib/locale/adapters/vue-i18n.d.ts +35 -0
- package/lib/locale/adapters/vue-intl.d.ts +42 -0
- package/lib/styles/main.css +73 -73
- package/lib/styles/settings/_colors.scss +84 -84
- package/lib/styles/tools/_states.sass +8 -3
- package/lib/util/getCurrentInstance.mjs +2 -3
- package/lib/util/getCurrentInstance.mjs.map +1 -1
- package/lib/util/helpers.mjs +6 -11
- package/lib/util/helpers.mjs.map +1 -1
- package/package.json +4 -2
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
import * as vue from 'vue';
|
|
2
|
+
import { PropType, JSXComponent } from 'vue';
|
|
3
|
+
|
|
4
|
+
declare type EventProp<T = (...args: any[]) => any> = T | T[];
|
|
5
|
+
declare const EventProp: PropType<EventProp<(...args: any[]) => any>>;
|
|
6
|
+
|
|
7
|
+
declare type IconValue = string | JSXComponent;
|
|
8
|
+
declare const IconValue: PropType<IconValue>;
|
|
9
|
+
|
|
10
|
+
declare type ValidationResult = string | boolean;
|
|
11
|
+
declare type ValidationRule = ValidationResult | PromiseLike<ValidationResult> | ((value: any) => ValidationResult) | ((value: any) => PromiseLike<ValidationResult>);
|
|
12
|
+
|
|
13
|
+
declare const VSlider: vue.DefineComponent<{
|
|
14
|
+
modelValue: {
|
|
15
|
+
type: (StringConstructor | NumberConstructor)[];
|
|
16
|
+
default: number;
|
|
17
|
+
};
|
|
18
|
+
disabled: BooleanConstructor;
|
|
19
|
+
error: BooleanConstructor;
|
|
20
|
+
errorMessages: {
|
|
21
|
+
type: vue.PropType<string | string[]>;
|
|
22
|
+
default: () => never[];
|
|
23
|
+
};
|
|
24
|
+
maxErrors: {
|
|
25
|
+
type: (StringConstructor | NumberConstructor)[];
|
|
26
|
+
default: number;
|
|
27
|
+
};
|
|
28
|
+
name: StringConstructor;
|
|
29
|
+
label: StringConstructor;
|
|
30
|
+
readonly: BooleanConstructor;
|
|
31
|
+
rules: {
|
|
32
|
+
type: vue.PropType<ValidationRule[]>;
|
|
33
|
+
default: () => never[];
|
|
34
|
+
};
|
|
35
|
+
validationValue: null;
|
|
36
|
+
density: {
|
|
37
|
+
type: vue.PropType<"default" | "compact" | "comfortable" | null>;
|
|
38
|
+
default: string;
|
|
39
|
+
validator: (v: any) => boolean;
|
|
40
|
+
};
|
|
41
|
+
id: StringConstructor;
|
|
42
|
+
appendIcon: vue.PropType<IconValue>;
|
|
43
|
+
prependIcon: vue.PropType<IconValue>;
|
|
44
|
+
hideDetails: vue.PropType<boolean | "auto">;
|
|
45
|
+
messages: {
|
|
46
|
+
type: vue.PropType<string | string[]>;
|
|
47
|
+
default: () => never[];
|
|
48
|
+
};
|
|
49
|
+
direction: {
|
|
50
|
+
type: vue.PropType<"horizontal" | "vertical">;
|
|
51
|
+
default: string;
|
|
52
|
+
validator: (v: any) => boolean;
|
|
53
|
+
};
|
|
54
|
+
'onClick:prepend': vue.PropType<EventProp<(...args: any[]) => any>>;
|
|
55
|
+
'onClick:append': vue.PropType<EventProp<(...args: any[]) => any>>;
|
|
56
|
+
elevation: Omit<{
|
|
57
|
+
type: (StringConstructor | NumberConstructor)[];
|
|
58
|
+
validator(v: any): boolean;
|
|
59
|
+
}, "type" | "default"> & {
|
|
60
|
+
type: vue.PropType<string | number>;
|
|
61
|
+
default: string | number;
|
|
62
|
+
};
|
|
63
|
+
rounded: {
|
|
64
|
+
type: (StringConstructor | BooleanConstructor | NumberConstructor)[];
|
|
65
|
+
default: undefined;
|
|
66
|
+
};
|
|
67
|
+
max: {
|
|
68
|
+
type: (StringConstructor | NumberConstructor)[];
|
|
69
|
+
default: number;
|
|
70
|
+
};
|
|
71
|
+
min: {
|
|
72
|
+
type: (StringConstructor | NumberConstructor)[];
|
|
73
|
+
default: number;
|
|
74
|
+
};
|
|
75
|
+
step: {
|
|
76
|
+
type: (StringConstructor | NumberConstructor)[];
|
|
77
|
+
default: number;
|
|
78
|
+
};
|
|
79
|
+
thumbColor: StringConstructor;
|
|
80
|
+
thumbLabel: {
|
|
81
|
+
type: vue.PropType<boolean | "always" | undefined>;
|
|
82
|
+
default: undefined;
|
|
83
|
+
validator: (v: any) => boolean;
|
|
84
|
+
};
|
|
85
|
+
thumbSize: {
|
|
86
|
+
type: (StringConstructor | NumberConstructor)[];
|
|
87
|
+
default: number;
|
|
88
|
+
};
|
|
89
|
+
showTicks: {
|
|
90
|
+
type: vue.PropType<boolean | "always">;
|
|
91
|
+
default: boolean;
|
|
92
|
+
validator: (v: any) => boolean;
|
|
93
|
+
};
|
|
94
|
+
ticks: {
|
|
95
|
+
type: vue.PropType<number[] | Record<number, string>>;
|
|
96
|
+
};
|
|
97
|
+
tickSize: {
|
|
98
|
+
type: (StringConstructor | NumberConstructor)[];
|
|
99
|
+
default: number;
|
|
100
|
+
};
|
|
101
|
+
color: StringConstructor;
|
|
102
|
+
trackColor: StringConstructor;
|
|
103
|
+
trackFillColor: StringConstructor;
|
|
104
|
+
trackSize: {
|
|
105
|
+
type: (StringConstructor | NumberConstructor)[];
|
|
106
|
+
default: number;
|
|
107
|
+
};
|
|
108
|
+
reverse: BooleanConstructor;
|
|
109
|
+
focused: BooleanConstructor;
|
|
110
|
+
}, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
|
|
111
|
+
'update:focused': (value: boolean) => true;
|
|
112
|
+
'update:modelValue': (v: number) => true;
|
|
113
|
+
}, string, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, Readonly<vue.ExtractPropTypes<{
|
|
114
|
+
modelValue: {
|
|
115
|
+
type: (StringConstructor | NumberConstructor)[];
|
|
116
|
+
default: number;
|
|
117
|
+
};
|
|
118
|
+
disabled: BooleanConstructor;
|
|
119
|
+
error: BooleanConstructor;
|
|
120
|
+
errorMessages: {
|
|
121
|
+
type: vue.PropType<string | string[]>;
|
|
122
|
+
default: () => never[];
|
|
123
|
+
};
|
|
124
|
+
maxErrors: {
|
|
125
|
+
type: (StringConstructor | NumberConstructor)[];
|
|
126
|
+
default: number;
|
|
127
|
+
};
|
|
128
|
+
name: StringConstructor;
|
|
129
|
+
label: StringConstructor;
|
|
130
|
+
readonly: BooleanConstructor;
|
|
131
|
+
rules: {
|
|
132
|
+
type: vue.PropType<ValidationRule[]>;
|
|
133
|
+
default: () => never[];
|
|
134
|
+
};
|
|
135
|
+
validationValue: null;
|
|
136
|
+
density: {
|
|
137
|
+
type: vue.PropType<"default" | "compact" | "comfortable" | null>;
|
|
138
|
+
default: string;
|
|
139
|
+
validator: (v: any) => boolean;
|
|
140
|
+
};
|
|
141
|
+
id: StringConstructor;
|
|
142
|
+
appendIcon: vue.PropType<IconValue>;
|
|
143
|
+
prependIcon: vue.PropType<IconValue>;
|
|
144
|
+
hideDetails: vue.PropType<boolean | "auto">;
|
|
145
|
+
messages: {
|
|
146
|
+
type: vue.PropType<string | string[]>;
|
|
147
|
+
default: () => never[];
|
|
148
|
+
};
|
|
149
|
+
direction: {
|
|
150
|
+
type: vue.PropType<"horizontal" | "vertical">;
|
|
151
|
+
default: string;
|
|
152
|
+
validator: (v: any) => boolean;
|
|
153
|
+
};
|
|
154
|
+
'onClick:prepend': vue.PropType<EventProp<(...args: any[]) => any>>;
|
|
155
|
+
'onClick:append': vue.PropType<EventProp<(...args: any[]) => any>>;
|
|
156
|
+
elevation: Omit<{
|
|
157
|
+
type: (StringConstructor | NumberConstructor)[];
|
|
158
|
+
validator(v: any): boolean;
|
|
159
|
+
}, "type" | "default"> & {
|
|
160
|
+
type: vue.PropType<string | number>;
|
|
161
|
+
default: string | number;
|
|
162
|
+
};
|
|
163
|
+
rounded: {
|
|
164
|
+
type: (StringConstructor | BooleanConstructor | NumberConstructor)[];
|
|
165
|
+
default: undefined;
|
|
166
|
+
};
|
|
167
|
+
max: {
|
|
168
|
+
type: (StringConstructor | NumberConstructor)[];
|
|
169
|
+
default: number;
|
|
170
|
+
};
|
|
171
|
+
min: {
|
|
172
|
+
type: (StringConstructor | NumberConstructor)[];
|
|
173
|
+
default: number;
|
|
174
|
+
};
|
|
175
|
+
step: {
|
|
176
|
+
type: (StringConstructor | NumberConstructor)[];
|
|
177
|
+
default: number;
|
|
178
|
+
};
|
|
179
|
+
thumbColor: StringConstructor;
|
|
180
|
+
thumbLabel: {
|
|
181
|
+
type: vue.PropType<boolean | "always" | undefined>;
|
|
182
|
+
default: undefined;
|
|
183
|
+
validator: (v: any) => boolean;
|
|
184
|
+
};
|
|
185
|
+
thumbSize: {
|
|
186
|
+
type: (StringConstructor | NumberConstructor)[];
|
|
187
|
+
default: number;
|
|
188
|
+
};
|
|
189
|
+
showTicks: {
|
|
190
|
+
type: vue.PropType<boolean | "always">;
|
|
191
|
+
default: boolean;
|
|
192
|
+
validator: (v: any) => boolean;
|
|
193
|
+
};
|
|
194
|
+
ticks: {
|
|
195
|
+
type: vue.PropType<number[] | Record<number, string>>;
|
|
196
|
+
};
|
|
197
|
+
tickSize: {
|
|
198
|
+
type: (StringConstructor | NumberConstructor)[];
|
|
199
|
+
default: number;
|
|
200
|
+
};
|
|
201
|
+
color: StringConstructor;
|
|
202
|
+
trackColor: StringConstructor;
|
|
203
|
+
trackFillColor: StringConstructor;
|
|
204
|
+
trackSize: {
|
|
205
|
+
type: (StringConstructor | NumberConstructor)[];
|
|
206
|
+
default: number;
|
|
207
|
+
};
|
|
208
|
+
reverse: BooleanConstructor;
|
|
209
|
+
focused: BooleanConstructor;
|
|
210
|
+
}>> & {
|
|
211
|
+
"onUpdate:modelValue"?: ((v: number) => any) | undefined;
|
|
212
|
+
"onUpdate:focused"?: ((value: boolean) => any) | undefined;
|
|
213
|
+
}, {
|
|
214
|
+
reverse: boolean;
|
|
215
|
+
max: string | number;
|
|
216
|
+
error: boolean;
|
|
217
|
+
direction: "horizontal" | "vertical";
|
|
218
|
+
disabled: boolean;
|
|
219
|
+
readonly: boolean;
|
|
220
|
+
step: string | number;
|
|
221
|
+
min: string | number;
|
|
222
|
+
elevation: string | number;
|
|
223
|
+
messages: string | string[];
|
|
224
|
+
rounded: string | number | boolean;
|
|
225
|
+
density: "default" | "compact" | "comfortable" | null;
|
|
226
|
+
modelValue: string | number;
|
|
227
|
+
errorMessages: string | string[];
|
|
228
|
+
maxErrors: string | number;
|
|
229
|
+
rules: ValidationRule[];
|
|
230
|
+
focused: boolean;
|
|
231
|
+
showTicks: boolean | "always";
|
|
232
|
+
tickSize: string | number;
|
|
233
|
+
trackSize: string | number;
|
|
234
|
+
thumbLabel: boolean | "always" | undefined;
|
|
235
|
+
thumbSize: string | number;
|
|
236
|
+
}>;
|
|
237
|
+
declare type VSlider = InstanceType<typeof VSlider>;
|
|
238
|
+
|
|
239
|
+
export { VSlider };
|
|
@@ -237,8 +237,8 @@ export const useSlider = _ref => {
|
|
|
237
237
|
label: t.toString()
|
|
238
238
|
}));
|
|
239
239
|
return Object.keys(props.ticks).map(key => ({
|
|
240
|
-
value:
|
|
241
|
-
position: position(
|
|
240
|
+
value: parseFloat(key),
|
|
241
|
+
position: position(parseFloat(key)),
|
|
242
242
|
label: props.ticks[key]
|
|
243
243
|
}));
|
|
244
244
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slider.mjs","names":["makeElevationProps","makeRoundedProps","useRtl","clamp","createRange","propsFactory","computed","provide","ref","toRef","VSliderSymbol","Symbol","for","getOffset","e","el","direction","vertical","rect","getBoundingClientRect","touch","touches","clientY","top","height","clientX","left","width","getPosition","position","length","changedTouches","makeSliderProps","disabled","Boolean","error","readonly","max","type","Number","String","default","min","step","thumbColor","thumbLabel","undefined","validator","v","thumbSize","showTicks","ticks","Array","Object","tickSize","color","trackColor","trackFillColor","trackSize","includes","reverse","elevation","useSlider","props","handleSliderMouseUp","handleMouseMove","getActiveThumb","isRtl","isReversed","value","horizontalDirection","hd","parseFloat","decimals","trimmedStep","toString","trim","indexOf","parseInt","numTicks","mousePressed","startOffset","trackContainerRef","activeThumbRef","roundValue","clamped","offset","newValue","Math","round","toFixed","parseMouseMove","start","trackStart","trackLength","$el","clickOffset","clickPos","thumbMoved","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","keys","key","hasLabels","some","data","rounded"],"sources":["../../../src/components/VSlider/slider.ts"],"sourcesContent":["/* eslint-disable max-statements */\n// Composables\nimport { makeElevationProps } from '@/composables/elevation'\nimport { makeRoundedProps } from '@/composables/rounded'\nimport { useRtl } from '@/composables/rtl'\n\n// Utilities\nimport { clamp, createRange, propsFactory } from '@/util'\nimport { computed, provide, ref, toRef } from 'vue'\n\n// Types\nimport type { ExtractPropTypes, InjectionKey, PropType, Ref } from 'vue'\nimport type { VSliderTrack } from './VSliderTrack'\n\ntype 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 | 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 | 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<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: Boolean,\n error: Boolean,\n readonly: Boolean,\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<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\nexport const useSlider = ({\n props,\n handleSliderMouseUp,\n handleMouseMove,\n getActiveThumb,\n}: {\n props: SliderProps\n handleSliderMouseUp: (v: number) => void\n handleMouseMove: (v: number) => void\n getActiveThumb: (e: MouseEvent | TouchEvent) => HTMLElement\n}) => {\n const { isRtl } = useRtl()\n const isReversed = computed(() => isRtl.value !== 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 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(() => {\n const trimmedStep = step.value.toString().trim()\n return trimmedStep.includes('.')\n ? (trimmedStep.length - trimmedStep.indexOf('.') - 1)\n : 0\n })\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 = ref(false)\n\n const startOffset = ref(0)\n const trackContainerRef = ref<VSliderTrack | undefined>()\n const activeThumbRef = ref<HTMLElement | undefined>()\n\n function roundValue (value: number) {\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 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 || isReversed.value) clickPos = 1 - clickPos\n\n return roundValue(min.value + clickPos * (max.value - min.value))\n }\n\n let thumbMoved = false\n\n const handleStop = (e: MouseEvent | TouchEvent) => {\n if (!thumbMoved) {\n startOffset.value = 0\n handleSliderMouseUp(parseMouseMove(e))\n }\n\n mousePressed.value = false\n thumbMoved = 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 thumbMoved = true\n startOffset.value = getOffset(e, activeThumbRef.value, props.direction)\n } else {\n startOffset.value = 0\n handleMouseMove(parseMouseMove(e))\n }\n }\n\n const moveListenerOptions = { passive: true, capture: true }\n\n function onMouseMove (e: MouseEvent | TouchEvent) {\n thumbMoved = true\n handleMouseMove(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 parsedTicks = computed<Tick[]>(() => {\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: parseInt(key, 10),\n position: position(parseInt(key, 10)),\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: toRef(props, '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","makeRoundedProps","useRtl","clamp","createRange","propsFactory","computed","provide","ref","toRef","VSliderSymbol","Symbol","for","getOffset","e","el","direction","vertical","rect","getBoundingClientRect","touch","touches","clientY","top","height","clientX","left","width","getPosition","position","length","changedTouches","makeSliderProps","disabled","Boolean","error","readonly","max","type","Number","String","default","min","step","thumbColor","thumbLabel","undefined","validator","v","thumbSize","showTicks","ticks","Array","Object","tickSize","color","trackColor","trackFillColor","trackSize","includes","reverse","elevation","useSlider","props","handleSliderMouseUp","handleMouseMove","getActiveThumb","isRtl","isReversed","value","horizontalDirection","hd","parseFloat","decimals","trimmedStep","toString","trim","indexOf","parseInt","numTicks","mousePressed","startOffset","trackContainerRef","activeThumbRef","roundValue","clamped","offset","newValue","Math","round","toFixed","parseMouseMove","start","trackStart","trackLength","$el","clickOffset","clickPos","thumbMoved","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","keys","key","hasLabels","some","data","rounded"],"sources":["../../../src/components/VSlider/slider.ts"],"sourcesContent":["/* eslint-disable max-statements */\n// Composables\nimport { makeElevationProps } from '@/composables/elevation'\nimport { makeRoundedProps } from '@/composables/rounded'\nimport { useRtl } from '@/composables/rtl'\n\n// Utilities\nimport { clamp, createRange, propsFactory } from '@/util'\nimport { computed, provide, ref, toRef } from 'vue'\n\n// Types\nimport type { ExtractPropTypes, InjectionKey, PropType, Ref } from 'vue'\nimport type { VSliderTrack } from './VSliderTrack'\n\ntype 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 | 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 | 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<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: Boolean,\n error: Boolean,\n readonly: Boolean,\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<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\nexport const useSlider = ({\n props,\n handleSliderMouseUp,\n handleMouseMove,\n getActiveThumb,\n}: {\n props: SliderProps\n handleSliderMouseUp: (v: number) => void\n handleMouseMove: (v: number) => void\n getActiveThumb: (e: MouseEvent | TouchEvent) => HTMLElement\n}) => {\n const { isRtl } = useRtl()\n const isReversed = computed(() => isRtl.value !== 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 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(() => {\n const trimmedStep = step.value.toString().trim()\n return trimmedStep.includes('.')\n ? (trimmedStep.length - trimmedStep.indexOf('.') - 1)\n : 0\n })\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 = ref(false)\n\n const startOffset = ref(0)\n const trackContainerRef = ref<VSliderTrack | undefined>()\n const activeThumbRef = ref<HTMLElement | undefined>()\n\n function roundValue (value: number) {\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 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 || isReversed.value) clickPos = 1 - clickPos\n\n return roundValue(min.value + clickPos * (max.value - min.value))\n }\n\n let thumbMoved = false\n\n const handleStop = (e: MouseEvent | TouchEvent) => {\n if (!thumbMoved) {\n startOffset.value = 0\n handleSliderMouseUp(parseMouseMove(e))\n }\n\n mousePressed.value = false\n thumbMoved = 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 thumbMoved = true\n startOffset.value = getOffset(e, activeThumbRef.value, props.direction)\n } else {\n startOffset.value = 0\n handleMouseMove(parseMouseMove(e))\n }\n }\n\n const moveListenerOptions = { passive: true, capture: true }\n\n function onMouseMove (e: MouseEvent | TouchEvent) {\n thumbMoved = true\n handleMouseMove(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 parsedTicks = computed<Tick[]>(() => {\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: toRef(props, '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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"}
|
|
@@ -15,8 +15,9 @@ import { useScopeId } from "../../composables/scopeId.mjs";
|
|
|
15
15
|
import { forwardRefs } from "../../composables/forwardRefs.mjs"; // Utilities
|
|
16
16
|
|
|
17
17
|
import { onMounted, ref, watch } from 'vue';
|
|
18
|
-
import {
|
|
19
|
-
|
|
18
|
+
import { genericComponent, useRender } from "../../util/index.mjs"; // Types
|
|
19
|
+
|
|
20
|
+
export const VSnackbar = genericComponent()({
|
|
20
21
|
name: 'VSnackbar',
|
|
21
22
|
props: {
|
|
22
23
|
contentClass: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VSnackbar.mjs","names":["VDefaultsProvider","VOverlay","genOverlays","makeVariantProps","useVariant","makeLocationProps","useLocation","makePositionProps","usePosition","makeRoundedProps","useRounded","makeTransitionProps","useProxiedModel","useScopeId","forwardRefs","onMounted","ref","watch","
|
|
1
|
+
{"version":3,"file":"VSnackbar.mjs","names":["VDefaultsProvider","VOverlay","genOverlays","makeVariantProps","useVariant","makeLocationProps","useLocation","makePositionProps","usePosition","makeRoundedProps","useRounded","makeTransitionProps","useProxiedModel","useScopeId","forwardRefs","onMounted","ref","watch","genericComponent","useRender","VSnackbar","name","props","contentClass","type","String","default","multiLine","Boolean","timeout","Number","vertical","modelValue","location","transition","emits","v","setup","slots","isActive","locationStyles","positionClasses","scopeId","colorClasses","colorStyles","variantClasses","roundedClasses","overlay","startTimeout","value","activeTimeout","window","clearTimeout","setTimeout","onPointerenter","style","actions","VBtn","variant","ripple","activator"],"sources":["../../../src/components/VSnackbar/VSnackbar.tsx"],"sourcesContent":["// Styles\nimport './VSnackbar.sass'\n\n// Components\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VOverlay } from '@/components/VOverlay'\n\n// Composables\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\nimport { makeLocationProps, useLocation } from '@/composables/location'\nimport { makePositionProps, usePosition } from '@/composables/position'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTransitionProps } from '@/composables/transition'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useScopeId } from '@/composables/scopeId'\nimport { forwardRefs } from '@/composables/forwardRefs'\n\n// Utilities\nimport { onMounted, ref, watch } from 'vue'\nimport { genericComponent, useRender } from '@/util'\n\n// Types\nimport type { MakeSlots } from '@/util'\n\nexport const VSnackbar = genericComponent<new () => {\n $slots: MakeSlots<{\n activator: [{ isActive: boolean, props: Record<string, any> }]\n default: []\n actions: []\n }>\n $props: VOverlay['$props']\n}>()({\n name: 'VSnackbar',\n\n props: {\n contentClass: {\n type: String,\n default: '',\n },\n multiLine: Boolean,\n timeout: {\n type: [Number, String],\n default: 5000,\n },\n vertical: Boolean,\n\n modelValue: Boolean,\n\n ...makeLocationProps({ location: 'bottom' } as const),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeVariantProps(),\n ...makeTransitionProps({ transition: 'v-snackbar-transition' }),\n },\n\n emits: {\n 'update:modelValue': (v: boolean) => true,\n },\n\n setup (props, { slots }) {\n const isActive = useProxiedModel(props, 'modelValue')\n const { locationStyles } = useLocation(props)\n const { positionClasses } = usePosition(props)\n const { scopeId } = useScopeId()\n\n const { colorClasses, colorStyles, variantClasses } = useVariant(props)\n const { roundedClasses } = useRounded(props)\n\n const overlay = ref<VOverlay>()\n\n watch(isActive, startTimeout)\n watch(() => props.timeout, startTimeout)\n\n onMounted(() => {\n if (isActive.value) startTimeout()\n })\n\n let activeTimeout = -1\n function startTimeout () {\n window.clearTimeout(activeTimeout)\n const timeout = Number(props.timeout)\n\n if (!isActive.value || timeout === -1) return\n\n activeTimeout = window.setTimeout(() => {\n isActive.value = false\n }, timeout)\n }\n\n function onPointerenter () {\n window.clearTimeout(activeTimeout)\n }\n\n useRender(() => (\n <VOverlay\n v-model={ isActive.value }\n ref={ overlay }\n class={[\n 'v-snackbar',\n {\n 'v-snackbar--active': isActive.value,\n 'v-snackbar--multi-line': props.multiLine && !props.vertical,\n 'v-snackbar--vertical': props.vertical,\n },\n positionClasses.value,\n ]}\n style={[colorStyles.value]}\n contentProps={{\n style: locationStyles.value,\n }}\n contentClass={ props.contentClass }\n persistent\n noClickAnimation\n scrim={ false }\n scrollStrategy=\"none\"\n transition={ props.transition }\n { ...scopeId }\n v-slots={{ activator: slots.activator }}\n >\n <div\n class={[\n 'v-snackbar__wrapper',\n colorClasses.value,\n roundedClasses.value,\n variantClasses.value,\n ]}\n onPointerenter={ onPointerenter }\n onPointerleave={ startTimeout }\n >\n { genOverlays(false, 'v-snackbar') }\n\n { slots.default && (\n <div\n class=\"v-snackbar__content\"\n role=\"status\"\n aria-live=\"polite\"\n >\n { slots.default() }\n </div>\n ) }\n\n { slots.actions && (\n <VDefaultsProvider\n defaults={{\n VBtn: {\n variant: 'text',\n ripple: false,\n },\n }}\n >\n <div class=\"v-snackbar__actions\">\n { slots.actions() }\n </div>\n </VDefaultsProvider>\n ) }\n </div>\n </VOverlay>\n ))\n\n return forwardRefs({}, overlay)\n },\n})\n\nexport type VSnackbar = InstanceType<typeof VSnackbar>\n"],"mappings":"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"}
|