vuetify 3.5.16 → 3.5.18
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 +226 -30
- package/dist/json/importMap-labs.json +12 -8
- package/dist/json/importMap.json +114 -114
- package/dist/json/tags.json +54 -0
- package/dist/json/web-types.json +607 -84
- package/dist/vuetify-labs.css +2293 -2267
- package/dist/vuetify-labs.d.ts +742 -64
- package/dist/vuetify-labs.esm.js +365 -132
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +364 -131
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +2324 -2298
- package/dist/vuetify.d.ts +120 -55
- package/dist/vuetify.esm.js +177 -104
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +176 -103
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +183 -179
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAppBar/index.d.mts +1 -0
- package/lib/components/VAutocomplete/VAutocomplete.mjs +8 -10
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VBanner/VBanner.css +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbs.css +1 -1
- package/lib/components/VBtn/index.d.mts +1 -0
- package/lib/components/VBtnToggle/index.d.mts +1 -0
- package/lib/components/VCard/VCard.css +3 -3
- package/lib/components/VCarousel/VCarouselItem.mjs +1 -1
- package/lib/components/VCarousel/VCarouselItem.mjs.map +1 -1
- package/lib/components/VCarousel/index.d.mts +1 -0
- package/lib/components/VChip/VChip.css +1 -1
- package/lib/components/VChip/VChip.sass +1 -0
- package/lib/components/VChipGroup/index.d.mts +1 -0
- package/lib/components/VCombobox/VCombobox.mjs +8 -10
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VDatePicker/VDatePicker.mjs +12 -2
- package/lib/components/VDatePicker/VDatePicker.mjs.map +1 -1
- package/lib/components/VDialog/VDialog.mjs +6 -2
- package/lib/components/VDialog/VDialog.mjs.map +1 -1
- package/lib/components/VDialog/__test__/VDialog.spec.cy.mjs +39 -0
- package/lib/components/VDialog/__test__/VDialog.spec.cy.mjs.map +1 -0
- package/lib/components/VDialog/index.d.mts +4 -10
- package/lib/components/VFileInput/VFileInput.mjs +1 -1
- package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
- package/lib/components/VFileInput/index.d.mts +17 -5
- package/lib/components/VInput/VInput.mjs +6 -1
- package/lib/components/VInput/VInput.mjs.map +1 -1
- package/lib/components/VInput/index.d.mts +6 -0
- package/lib/components/VList/VList.mjs +2 -1
- package/lib/components/VList/VList.mjs.map +1 -1
- package/lib/components/VList/VListItem.css +1 -1
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +3 -3
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
- package/lib/components/VNavigationDrawer/touch.mjs +16 -2
- package/lib/components/VNavigationDrawer/touch.mjs.map +1 -1
- package/lib/components/VProgressLinear/VProgressLinear.mjs +11 -1
- package/lib/components/VProgressLinear/VProgressLinear.mjs.map +1 -1
- package/lib/components/VProgressLinear/index.d.mts +21 -0
- package/lib/components/VRangeSlider/index.d.mts +6 -0
- package/lib/components/VSelect/VSelect.mjs +5 -1
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VSlideGroup/index.d.mts +1 -0
- package/lib/components/VSlider/index.d.mts +6 -0
- package/lib/components/VSnackbar/VSnackbar.css +18 -4
- package/lib/components/VSnackbar/VSnackbar.mjs +34 -9
- package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
- package/lib/components/VSnackbar/VSnackbar.sass +19 -3
- package/lib/components/VSwitch/VSwitch.css +14 -2
- package/lib/components/VSwitch/VSwitch.sass +8 -2
- package/lib/components/VSystemBar/VSystemBar.css +1 -1
- package/lib/components/VTabs/index.d.mts +1 -0
- package/lib/components/VTextField/index.d.mts +15 -3
- package/lib/components/VTextarea/index.d.mts +15 -3
- package/lib/components/VWindow/index.d.mts +1 -0
- package/lib/components/index.d.mts +85 -21
- package/lib/composables/directiveComponent.mjs +4 -2
- package/lib/composables/directiveComponent.mjs.map +1 -1
- package/lib/composables/group.mjs +10 -1
- package/lib/composables/group.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/index.d.mts +35 -34
- package/lib/labs/VCalendar/VCalendar.css +0 -1
- package/lib/labs/VCalendar/VCalendar.sass +0 -2
- package/lib/labs/VEmptyState/VEmptyState.css +3 -3
- package/lib/labs/VFab/VFab.css +1 -0
- package/lib/labs/VFab/VFab.mjs +3 -2
- package/lib/labs/VFab/VFab.mjs.map +1 -1
- package/lib/labs/VFab/VFab.sass +1 -0
- package/lib/labs/VFab/index.d.mts +10 -0
- package/lib/labs/VNumberInput/VNumberInput.mjs +79 -24
- package/lib/labs/VNumberInput/VNumberInput.mjs.map +1 -1
- package/lib/labs/VNumberInput/index.d.mts +56 -29
- package/lib/labs/VSnackbarQueue/VSnackbarQueue.mjs +112 -0
- package/lib/labs/VSnackbarQueue/VSnackbarQueue.mjs.map +1 -0
- package/lib/labs/VSnackbarQueue/index.d.mts +2693 -0
- package/lib/labs/VSnackbarQueue/index.mjs +2 -0
- package/lib/labs/VSnackbarQueue/index.mjs.map +1 -0
- package/lib/labs/VSpeedDial/VSpeedDial.mjs +1 -2
- package/lib/labs/VSpeedDial/VSpeedDial.mjs.map +1 -1
- package/lib/labs/VTimePicker/VTimePickerClock.mjs +1 -3
- package/lib/labs/VTimePicker/VTimePickerClock.mjs.map +1 -1
- package/lib/labs/VTimePicker/index.d.mts +6 -13
- package/lib/labs/components.d.mts +2893 -282
- package/lib/labs/components.mjs +1 -0
- package/lib/labs/components.mjs.map +1 -1
- 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 +43 -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/km.mjs +1 -0
- package/lib/locale/km.mjs.map +1 -1
- package/lib/locale/ko.mjs +9 -8
- 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 +78 -78
- package/lib/styles/settings/_variables.scss +21 -14
- package/package.json +2 -2
package/dist/vuetify-labs.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Vuetify v3.5.
|
|
2
|
+
* Vuetify v3.5.18
|
|
3
3
|
* Forged by John Leider
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
@@ -1935,6 +1935,7 @@
|
|
|
1935
1935
|
badge: 'Badge',
|
|
1936
1936
|
open: 'Open',
|
|
1937
1937
|
close: 'Close',
|
|
1938
|
+
dismiss: 'Dismiss',
|
|
1938
1939
|
confirmEdit: {
|
|
1939
1940
|
ok: 'OK',
|
|
1940
1941
|
cancel: 'Cancel'
|
|
@@ -4159,6 +4160,7 @@
|
|
|
4159
4160
|
const index = children.indexOf(vm);
|
|
4160
4161
|
if (vue.unref(unwrapped.value) == null) {
|
|
4161
4162
|
unwrapped.value = index;
|
|
4163
|
+
unwrapped.useIndexAsValue = true;
|
|
4162
4164
|
}
|
|
4163
4165
|
if (index > -1) {
|
|
4164
4166
|
items.splice(index, 0, unwrapped);
|
|
@@ -4191,6 +4193,14 @@
|
|
|
4191
4193
|
vue.onBeforeUnmount(() => {
|
|
4192
4194
|
isUnmounted = true;
|
|
4193
4195
|
});
|
|
4196
|
+
vue.onUpdated(() => {
|
|
4197
|
+
// #19655 update the items that use the index as the value.
|
|
4198
|
+
for (let i = 0; i < items.length; i++) {
|
|
4199
|
+
if (items[i].useIndexAsValue) {
|
|
4200
|
+
items[i].value = i;
|
|
4201
|
+
}
|
|
4202
|
+
}
|
|
4203
|
+
});
|
|
4194
4204
|
function select(id, value) {
|
|
4195
4205
|
const item = items.find(item => item.id === id);
|
|
4196
4206
|
if (value && item?.disabled) return;
|
|
@@ -4779,6 +4789,65 @@
|
|
|
4779
4789
|
}
|
|
4780
4790
|
});
|
|
4781
4791
|
|
|
4792
|
+
// Composables
|
|
4793
|
+
|
|
4794
|
+
// Types
|
|
4795
|
+
|
|
4796
|
+
const oppositeMap = {
|
|
4797
|
+
center: 'center',
|
|
4798
|
+
top: 'bottom',
|
|
4799
|
+
bottom: 'top',
|
|
4800
|
+
left: 'right',
|
|
4801
|
+
right: 'left'
|
|
4802
|
+
};
|
|
4803
|
+
const makeLocationProps = propsFactory({
|
|
4804
|
+
location: String
|
|
4805
|
+
}, 'location');
|
|
4806
|
+
function useLocation(props) {
|
|
4807
|
+
let opposite = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
4808
|
+
let offset = arguments.length > 2 ? arguments[2] : undefined;
|
|
4809
|
+
const {
|
|
4810
|
+
isRtl
|
|
4811
|
+
} = useRtl();
|
|
4812
|
+
const locationStyles = vue.computed(() => {
|
|
4813
|
+
if (!props.location) return {};
|
|
4814
|
+
const {
|
|
4815
|
+
side,
|
|
4816
|
+
align
|
|
4817
|
+
} = parseAnchor(props.location.split(' ').length > 1 ? props.location : `${props.location} center`, isRtl.value);
|
|
4818
|
+
function getOffset(side) {
|
|
4819
|
+
return offset ? offset(side) : 0;
|
|
4820
|
+
}
|
|
4821
|
+
const styles = {};
|
|
4822
|
+
if (side !== 'center') {
|
|
4823
|
+
if (opposite) styles[oppositeMap[side]] = `calc(100% - ${getOffset(side)}px)`;else styles[side] = 0;
|
|
4824
|
+
}
|
|
4825
|
+
if (align !== 'center') {
|
|
4826
|
+
if (opposite) styles[oppositeMap[align]] = `calc(100% - ${getOffset(align)}px)`;else styles[align] = 0;
|
|
4827
|
+
} else {
|
|
4828
|
+
if (side === 'center') styles.top = styles.left = '50%';else {
|
|
4829
|
+
styles[{
|
|
4830
|
+
top: 'left',
|
|
4831
|
+
bottom: 'left',
|
|
4832
|
+
left: 'top',
|
|
4833
|
+
right: 'top'
|
|
4834
|
+
}[side]] = '50%';
|
|
4835
|
+
}
|
|
4836
|
+
styles.transform = {
|
|
4837
|
+
top: 'translateX(-50%)',
|
|
4838
|
+
bottom: 'translateX(-50%)',
|
|
4839
|
+
left: 'translateY(-50%)',
|
|
4840
|
+
right: 'translateY(-50%)',
|
|
4841
|
+
center: 'translate(-50%, -50%)'
|
|
4842
|
+
}[side];
|
|
4843
|
+
}
|
|
4844
|
+
return styles;
|
|
4845
|
+
});
|
|
4846
|
+
return {
|
|
4847
|
+
locationStyles
|
|
4848
|
+
};
|
|
4849
|
+
}
|
|
4850
|
+
|
|
4782
4851
|
const makeVProgressLinearProps = propsFactory({
|
|
4783
4852
|
absolute: Boolean,
|
|
4784
4853
|
active: {
|
|
@@ -4811,6 +4880,9 @@
|
|
|
4811
4880
|
striped: Boolean,
|
|
4812
4881
|
roundedBar: Boolean,
|
|
4813
4882
|
...makeComponentProps(),
|
|
4883
|
+
...makeLocationProps({
|
|
4884
|
+
location: 'top'
|
|
4885
|
+
}),
|
|
4814
4886
|
...makeRoundedProps(),
|
|
4815
4887
|
...makeTagProps(),
|
|
4816
4888
|
...makeThemeProps()
|
|
@@ -4833,6 +4905,9 @@
|
|
|
4833
4905
|
const {
|
|
4834
4906
|
themeClasses
|
|
4835
4907
|
} = provideTheme(props);
|
|
4908
|
+
const {
|
|
4909
|
+
locationStyles
|
|
4910
|
+
} = useLocation(props);
|
|
4836
4911
|
const {
|
|
4837
4912
|
textColorClasses,
|
|
4838
4913
|
textColorStyles
|
|
@@ -4882,8 +4957,11 @@
|
|
|
4882
4957
|
'v-progress-linear--striped': props.striped
|
|
4883
4958
|
}, roundedClasses.value, themeClasses.value, rtlClasses.value, props.class],
|
|
4884
4959
|
"style": [{
|
|
4960
|
+
bottom: props.location === 'bottom' ? 0 : undefined,
|
|
4961
|
+
top: props.location === 'top' ? 0 : undefined,
|
|
4885
4962
|
height: props.active ? convertToUnit(height.value) : 0,
|
|
4886
|
-
'--v-progress-linear-height': convertToUnit(height.value)
|
|
4963
|
+
'--v-progress-linear-height': convertToUnit(height.value),
|
|
4964
|
+
...(props.absolute ? locationStyles.value : {})
|
|
4887
4965
|
}, props.style],
|
|
4888
4966
|
"role": "progressbar",
|
|
4889
4967
|
"aria-hidden": props.active ? 'false' : 'true',
|
|
@@ -4969,65 +5047,6 @@
|
|
|
4969
5047
|
}, null)]);
|
|
4970
5048
|
}
|
|
4971
5049
|
|
|
4972
|
-
// Composables
|
|
4973
|
-
|
|
4974
|
-
// Types
|
|
4975
|
-
|
|
4976
|
-
const oppositeMap = {
|
|
4977
|
-
center: 'center',
|
|
4978
|
-
top: 'bottom',
|
|
4979
|
-
bottom: 'top',
|
|
4980
|
-
left: 'right',
|
|
4981
|
-
right: 'left'
|
|
4982
|
-
};
|
|
4983
|
-
const makeLocationProps = propsFactory({
|
|
4984
|
-
location: String
|
|
4985
|
-
}, 'location');
|
|
4986
|
-
function useLocation(props) {
|
|
4987
|
-
let opposite = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
4988
|
-
let offset = arguments.length > 2 ? arguments[2] : undefined;
|
|
4989
|
-
const {
|
|
4990
|
-
isRtl
|
|
4991
|
-
} = useRtl();
|
|
4992
|
-
const locationStyles = vue.computed(() => {
|
|
4993
|
-
if (!props.location) return {};
|
|
4994
|
-
const {
|
|
4995
|
-
side,
|
|
4996
|
-
align
|
|
4997
|
-
} = parseAnchor(props.location.split(' ').length > 1 ? props.location : `${props.location} center`, isRtl.value);
|
|
4998
|
-
function getOffset(side) {
|
|
4999
|
-
return offset ? offset(side) : 0;
|
|
5000
|
-
}
|
|
5001
|
-
const styles = {};
|
|
5002
|
-
if (side !== 'center') {
|
|
5003
|
-
if (opposite) styles[oppositeMap[side]] = `calc(100% - ${getOffset(side)}px)`;else styles[side] = 0;
|
|
5004
|
-
}
|
|
5005
|
-
if (align !== 'center') {
|
|
5006
|
-
if (opposite) styles[oppositeMap[align]] = `calc(100% - ${getOffset(align)}px)`;else styles[align] = 0;
|
|
5007
|
-
} else {
|
|
5008
|
-
if (side === 'center') styles.top = styles.left = '50%';else {
|
|
5009
|
-
styles[{
|
|
5010
|
-
top: 'left',
|
|
5011
|
-
bottom: 'left',
|
|
5012
|
-
left: 'top',
|
|
5013
|
-
right: 'top'
|
|
5014
|
-
}[side]] = '50%';
|
|
5015
|
-
}
|
|
5016
|
-
styles.transform = {
|
|
5017
|
-
top: 'translateX(-50%)',
|
|
5018
|
-
bottom: 'translateX(-50%)',
|
|
5019
|
-
left: 'translateY(-50%)',
|
|
5020
|
-
right: 'translateY(-50%)',
|
|
5021
|
-
center: 'translate(-50%, -50%)'
|
|
5022
|
-
}[side];
|
|
5023
|
-
}
|
|
5024
|
-
return styles;
|
|
5025
|
-
});
|
|
5026
|
-
return {
|
|
5027
|
-
locationStyles
|
|
5028
|
-
};
|
|
5029
|
-
}
|
|
5030
|
-
|
|
5031
5050
|
// Utilities
|
|
5032
5051
|
|
|
5033
5052
|
// Types
|
|
@@ -6742,6 +6761,7 @@
|
|
|
6742
6761
|
'onClick:append': EventProp(),
|
|
6743
6762
|
...makeComponentProps(),
|
|
6744
6763
|
...makeDensityProps(),
|
|
6764
|
+
...makeThemeProps(),
|
|
6745
6765
|
...makeValidationProps()
|
|
6746
6766
|
}, 'VInput');
|
|
6747
6767
|
const VInput = genericComponent()({
|
|
@@ -6761,6 +6781,9 @@
|
|
|
6761
6781
|
const {
|
|
6762
6782
|
densityClasses
|
|
6763
6783
|
} = useDensity(props);
|
|
6784
|
+
const {
|
|
6785
|
+
themeClasses
|
|
6786
|
+
} = provideTheme(props);
|
|
6764
6787
|
const {
|
|
6765
6788
|
rtlClasses
|
|
6766
6789
|
} = useRtl();
|
|
@@ -6814,7 +6837,7 @@
|
|
|
6814
6837
|
"class": ['v-input', `v-input--${props.direction}`, {
|
|
6815
6838
|
'v-input--center-affix': props.centerAffix,
|
|
6816
6839
|
'v-input--hide-spin-buttons': props.hideSpinButtons
|
|
6817
|
-
}, densityClasses.value, rtlClasses.value, validationClasses.value, props.class],
|
|
6840
|
+
}, densityClasses.value, themeClasses.value, rtlClasses.value, validationClasses.value, props.class],
|
|
6818
6841
|
"style": props.style
|
|
6819
6842
|
}, [hasPrepend && vue.createVNode("div", {
|
|
6820
6843
|
"key": "prepend",
|
|
@@ -9170,7 +9193,8 @@
|
|
|
9170
9193
|
if (!isFocused.value && !(e.relatedTarget && contentRef.value?.contains(e.relatedTarget))) focus();
|
|
9171
9194
|
}
|
|
9172
9195
|
function onKeydown(e) {
|
|
9173
|
-
|
|
9196
|
+
const target = e.target;
|
|
9197
|
+
if (!contentRef.value || ['INPUT', 'TEXTAREA'].includes(target.tagName)) return;
|
|
9174
9198
|
if (e.key === 'ArrowDown') {
|
|
9175
9199
|
focus('next');
|
|
9176
9200
|
} else if (e.key === 'ArrowUp') {
|
|
@@ -12084,6 +12108,10 @@
|
|
|
12084
12108
|
const item = items.value.find(item => item.title.toLowerCase().startsWith(keyboardLookupPrefix));
|
|
12085
12109
|
if (item !== undefined) {
|
|
12086
12110
|
model.value = [item];
|
|
12111
|
+
const index = displayItems.value.indexOf(item);
|
|
12112
|
+
IN_BROWSER && window.requestAnimationFrame(() => {
|
|
12113
|
+
index >= 0 && vVirtualScrollRef.value?.scrollToIndex(index);
|
|
12114
|
+
});
|
|
12087
12115
|
}
|
|
12088
12116
|
}
|
|
12089
12117
|
|
|
@@ -12132,7 +12160,7 @@
|
|
|
12132
12160
|
vTextFieldRef.value.value = '';
|
|
12133
12161
|
}
|
|
12134
12162
|
}
|
|
12135
|
-
vue.watch(
|
|
12163
|
+
vue.watch(menu, () => {
|
|
12136
12164
|
if (!props.hideSelected && menu.value && model.value.length) {
|
|
12137
12165
|
const index = displayItems.value.findIndex(item => model.value.some(s => props.valueComparator(s.value, item.value)));
|
|
12138
12166
|
IN_BROWSER && window.requestAnimationFrame(() => {
|
|
@@ -12586,16 +12614,14 @@
|
|
|
12586
12614
|
listRef.value?.focus('next');
|
|
12587
12615
|
}
|
|
12588
12616
|
if (['Backspace', 'Delete'].includes(e.key)) {
|
|
12589
|
-
if (!props.multiple && hasSelectionSlot.value && model.value.length > 0) return select(model.value[0], false);
|
|
12590
|
-
if (selectionIndex.value
|
|
12591
|
-
|
|
12592
|
-
|
|
12593
|
-
|
|
12594
|
-
|
|
12617
|
+
if (!props.multiple && hasSelectionSlot.value && model.value.length > 0 && !search.value) return select(model.value[0], false);
|
|
12618
|
+
if (~selectionIndex.value) {
|
|
12619
|
+
const originalSelectionIndex = selectionIndex.value;
|
|
12620
|
+
select(model.value[selectionIndex.value], false);
|
|
12621
|
+
selectionIndex.value = originalSelectionIndex >= length - 1 ? length - 2 : originalSelectionIndex;
|
|
12622
|
+
} else if (e.key === 'Backspace' && !search.value) {
|
|
12623
|
+
selectionIndex.value = length - 1;
|
|
12595
12624
|
}
|
|
12596
|
-
const originalSelectionIndex = selectionIndex.value;
|
|
12597
|
-
select(model.value[selectionIndex.value], false);
|
|
12598
|
-
selectionIndex.value = originalSelectionIndex >= length - 1 ? length - 2 : originalSelectionIndex;
|
|
12599
12625
|
}
|
|
12600
12626
|
if (!props.multiple) return;
|
|
12601
12627
|
if (e.key === 'ArrowLeft') {
|
|
@@ -12643,7 +12669,7 @@
|
|
|
12643
12669
|
listHasFocus.value = false;
|
|
12644
12670
|
}
|
|
12645
12671
|
function onUpdateModelValue(v) {
|
|
12646
|
-
if (v == null || v === '' && !props.multiple) model.value = [];
|
|
12672
|
+
if (v == null || v === '' && !props.multiple && !hasSelectionSlot.value) model.value = [];
|
|
12647
12673
|
}
|
|
12648
12674
|
const isSelecting = vue.shallowRef(false);
|
|
12649
12675
|
|
|
@@ -13281,12 +13307,12 @@
|
|
|
13281
13307
|
name: 'VDialog',
|
|
13282
13308
|
props: makeVDialogProps(),
|
|
13283
13309
|
emits: {
|
|
13284
|
-
'click:outside': e => true,
|
|
13285
13310
|
'update:modelValue': value => true,
|
|
13286
13311
|
afterLeave: () => true
|
|
13287
13312
|
},
|
|
13288
13313
|
setup(props, _ref) {
|
|
13289
13314
|
let {
|
|
13315
|
+
emit,
|
|
13290
13316
|
slots
|
|
13291
13317
|
} = _ref;
|
|
13292
13318
|
const isActive = useProxiedModel(props, 'modelValue');
|
|
@@ -13329,6 +13355,9 @@
|
|
|
13329
13355
|
});
|
|
13330
13356
|
}
|
|
13331
13357
|
}
|
|
13358
|
+
function onAfterLeave() {
|
|
13359
|
+
emit('afterLeave');
|
|
13360
|
+
}
|
|
13332
13361
|
vue.watch(isActive, async val => {
|
|
13333
13362
|
if (!val) {
|
|
13334
13363
|
await vue.nextTick();
|
|
@@ -13360,7 +13389,8 @@
|
|
|
13360
13389
|
"activatorProps": activatorProps,
|
|
13361
13390
|
"contentProps": contentProps,
|
|
13362
13391
|
"role": "dialog",
|
|
13363
|
-
"onAfterEnter": onAfterEnter
|
|
13392
|
+
"onAfterEnter": onAfterEnter,
|
|
13393
|
+
"onAfterLeave": onAfterLeave
|
|
13364
13394
|
}, scopeId), {
|
|
13365
13395
|
activator: slots.activator,
|
|
13366
13396
|
default: function () {
|
|
@@ -14410,7 +14440,7 @@
|
|
|
14410
14440
|
const imgProps = VImg.filterProps(props);
|
|
14411
14441
|
const windowItemProps = VWindowItem.filterProps(props);
|
|
14412
14442
|
return vue.createVNode(VWindowItem, vue.mergeProps({
|
|
14413
|
-
"class":
|
|
14443
|
+
"class": ['v-carousel-item', props.class]
|
|
14414
14444
|
}, windowItemProps), {
|
|
14415
14445
|
default: () => [vue.createVNode(VImg, vue.mergeProps(attrs, imgProps), slots)]
|
|
14416
14446
|
});
|
|
@@ -16415,16 +16445,14 @@
|
|
|
16415
16445
|
if (hasSelectionSlot.value) _search.value = '';
|
|
16416
16446
|
}
|
|
16417
16447
|
if (['Backspace', 'Delete'].includes(e.key)) {
|
|
16418
|
-
if (!props.multiple && hasSelectionSlot.value && model.value.length > 0) return select(model.value[0], false);
|
|
16419
|
-
if (selectionIndex.value
|
|
16420
|
-
|
|
16421
|
-
|
|
16422
|
-
|
|
16423
|
-
|
|
16448
|
+
if (!props.multiple && hasSelectionSlot.value && model.value.length > 0 && !search.value) return select(model.value[0], false);
|
|
16449
|
+
if (~selectionIndex.value) {
|
|
16450
|
+
const originalSelectionIndex = selectionIndex.value;
|
|
16451
|
+
select(model.value[selectionIndex.value], false);
|
|
16452
|
+
selectionIndex.value = originalSelectionIndex >= length - 1 ? length - 2 : originalSelectionIndex;
|
|
16453
|
+
} else if (e.key === 'Backspace' && !search.value) {
|
|
16454
|
+
selectionIndex.value = length - 1;
|
|
16424
16455
|
}
|
|
16425
|
-
const originalSelectionIndex = selectionIndex.value;
|
|
16426
|
-
select(model.value[selectionIndex.value], false);
|
|
16427
|
-
selectionIndex.value = originalSelectionIndex >= length - 1 ? length - 2 : originalSelectionIndex;
|
|
16428
16456
|
}
|
|
16429
16457
|
if (!props.multiple) return;
|
|
16430
16458
|
if (e.key === 'ArrowLeft') {
|
|
@@ -16493,7 +16521,7 @@
|
|
|
16493
16521
|
listHasFocus.value = false;
|
|
16494
16522
|
}
|
|
16495
16523
|
function onUpdateModelValue(v) {
|
|
16496
|
-
if (v == null || v === '' && !props.multiple) model.value = [];
|
|
16524
|
+
if (v == null || v === '' && !props.multiple && !hasSelectionSlot.value) model.value = [];
|
|
16497
16525
|
}
|
|
16498
16526
|
vue.watch(isFocused, (val, oldVal) => {
|
|
16499
16527
|
if (val || val === oldVal) return;
|
|
@@ -21354,8 +21382,18 @@
|
|
|
21354
21382
|
emit('update:year', value);
|
|
21355
21383
|
}
|
|
21356
21384
|
vue.watch(model, (val, oldVal) => {
|
|
21357
|
-
const before = adapter.date(wrapInArray(
|
|
21358
|
-
const after = adapter.date(wrapInArray(
|
|
21385
|
+
const before = adapter.date(wrapInArray(oldVal)[oldVal.length - 1]);
|
|
21386
|
+
const after = adapter.date(wrapInArray(val)[val.length - 1]);
|
|
21387
|
+
const newMonth = adapter.getMonth(after);
|
|
21388
|
+
const newYear = adapter.getYear(after);
|
|
21389
|
+
if (newMonth !== month.value) {
|
|
21390
|
+
month.value = newMonth;
|
|
21391
|
+
onUpdateMonth(month.value);
|
|
21392
|
+
}
|
|
21393
|
+
if (newYear !== year.value) {
|
|
21394
|
+
year.value = newYear;
|
|
21395
|
+
onUpdateYear(year.value);
|
|
21396
|
+
}
|
|
21359
21397
|
isReversing.value = adapter.isBefore(before, after);
|
|
21360
21398
|
});
|
|
21361
21399
|
useRender(() => {
|
|
@@ -21709,7 +21747,7 @@
|
|
|
21709
21747
|
}),
|
|
21710
21748
|
modelValue: {
|
|
21711
21749
|
type: [Array, Object],
|
|
21712
|
-
default:
|
|
21750
|
+
default: props => props.multiple ? [] : null,
|
|
21713
21751
|
validator: val => {
|
|
21714
21752
|
return wrapInArray(val).every(v => v != null && typeof v === 'object');
|
|
21715
21753
|
}
|
|
@@ -22738,6 +22776,7 @@
|
|
|
22738
22776
|
|
|
22739
22777
|
function useTouch(_ref) {
|
|
22740
22778
|
let {
|
|
22779
|
+
el,
|
|
22741
22780
|
isActive,
|
|
22742
22781
|
isTemporary,
|
|
22743
22782
|
width,
|
|
@@ -22787,10 +22826,10 @@
|
|
|
22787
22826
|
const inTouchZone = position.value === 'left' ? touchX < touchZone : position.value === 'right' ? touchX > document.documentElement.clientWidth - touchZone : position.value === 'top' ? touchY < touchZone : position.value === 'bottom' ? touchY > document.documentElement.clientHeight - touchZone : oops();
|
|
22788
22827
|
const inElement = isActive.value && (position.value === 'left' ? touchX < width.value : position.value === 'right' ? touchX > document.documentElement.clientWidth - width.value : position.value === 'top' ? touchY < width.value : position.value === 'bottom' ? touchY > document.documentElement.clientHeight - width.value : oops());
|
|
22789
22828
|
if (inTouchZone || inElement || isActive.value && isTemporary.value) {
|
|
22790
|
-
maybeDragging = true;
|
|
22791
22829
|
start = [touchX, touchY];
|
|
22792
22830
|
offset.value = getOffset(isHorizontal.value ? touchX : touchY, isActive.value);
|
|
22793
22831
|
dragProgress.value = getProgress(isHorizontal.value ? touchX : touchY);
|
|
22832
|
+
maybeDragging = offset.value > -20 && offset.value < 80;
|
|
22794
22833
|
endTouch(e);
|
|
22795
22834
|
addMovement(e);
|
|
22796
22835
|
}
|
|
@@ -22850,6 +22889,18 @@
|
|
|
22850
22889
|
transition: 'none'
|
|
22851
22890
|
} : undefined;
|
|
22852
22891
|
});
|
|
22892
|
+
useToggleScope(isDragging, () => {
|
|
22893
|
+
const transform = el.value?.style.transform ?? null;
|
|
22894
|
+
const transition = el.value?.style.transition ?? null;
|
|
22895
|
+
vue.watchEffect(() => {
|
|
22896
|
+
el.value?.style.setProperty('transform', dragStyles.value?.transform || 'none');
|
|
22897
|
+
el.value?.style.setProperty('transition', dragStyles.value?.transition || null);
|
|
22898
|
+
});
|
|
22899
|
+
vue.onScopeDispose(() => {
|
|
22900
|
+
el.value?.style.setProperty('transform', transform);
|
|
22901
|
+
el.value?.style.setProperty('transition', transition);
|
|
22902
|
+
});
|
|
22903
|
+
});
|
|
22853
22904
|
return {
|
|
22854
22905
|
isDragging,
|
|
22855
22906
|
dragProgress,
|
|
@@ -22982,9 +23033,9 @@
|
|
|
22982
23033
|
});
|
|
22983
23034
|
const {
|
|
22984
23035
|
isDragging,
|
|
22985
|
-
dragProgress
|
|
22986
|
-
dragStyles
|
|
23036
|
+
dragProgress
|
|
22987
23037
|
} = useTouch({
|
|
23038
|
+
el: rootEl,
|
|
22988
23039
|
isActive,
|
|
22989
23040
|
isTemporary,
|
|
22990
23041
|
width,
|
|
@@ -23054,7 +23105,7 @@
|
|
|
23054
23105
|
'v-navigation-drawer--active': isActive.value,
|
|
23055
23106
|
'v-navigation-drawer--sticky': isSticky.value
|
|
23056
23107
|
}, themeClasses.value, backgroundColorClasses.value, borderClasses.value, displayClasses.value, elevationClasses.value, roundedClasses.value, props.class],
|
|
23057
|
-
"style": [backgroundColorStyles.value, layoutItemStyles.value,
|
|
23108
|
+
"style": [backgroundColorStyles.value, layoutItemStyles.value, ssrBootStyles.value, stickyStyles.value, props.style]
|
|
23058
23109
|
}, scopeId, attrs), {
|
|
23059
23110
|
default: () => [hasImage && vue.createVNode("div", {
|
|
23060
23111
|
"key": "image",
|
|
@@ -24164,9 +24215,6 @@
|
|
|
24164
24215
|
slots
|
|
24165
24216
|
} = _ref;
|
|
24166
24217
|
const isActive = useProxiedModel(props, 'modelValue');
|
|
24167
|
-
const {
|
|
24168
|
-
locationStyles
|
|
24169
|
-
} = useLocation(props);
|
|
24170
24218
|
const {
|
|
24171
24219
|
positionClasses
|
|
24172
24220
|
} = usePosition(props);
|
|
@@ -24188,6 +24236,15 @@
|
|
|
24188
24236
|
const overlay = vue.ref();
|
|
24189
24237
|
const timerRef = vue.ref();
|
|
24190
24238
|
const isHovering = vue.shallowRef(false);
|
|
24239
|
+
const startY = vue.shallowRef(0);
|
|
24240
|
+
const mainStyles = vue.ref();
|
|
24241
|
+
const hasLayout = vue.inject(VuetifyLayoutKey, undefined);
|
|
24242
|
+
useToggleScope(() => !!hasLayout, () => {
|
|
24243
|
+
const layout = useLayout();
|
|
24244
|
+
vue.watchEffect(() => {
|
|
24245
|
+
mainStyles.value = layout.mainStyles.value;
|
|
24246
|
+
});
|
|
24247
|
+
});
|
|
24191
24248
|
vue.watch(isActive, startTimeout);
|
|
24192
24249
|
vue.watch(() => props.timeout, startTimeout);
|
|
24193
24250
|
vue.onMounted(() => {
|
|
@@ -24217,6 +24274,20 @@
|
|
|
24217
24274
|
isHovering.value = false;
|
|
24218
24275
|
startTimeout();
|
|
24219
24276
|
}
|
|
24277
|
+
function onTouchstart(event) {
|
|
24278
|
+
startY.value = event.touches[0].clientY;
|
|
24279
|
+
}
|
|
24280
|
+
function onTouchend(event) {
|
|
24281
|
+
if (Math.abs(startY.value - event.changedTouches[0].clientY) > 50) {
|
|
24282
|
+
isActive.value = false;
|
|
24283
|
+
}
|
|
24284
|
+
}
|
|
24285
|
+
const locationClasses = vue.computed(() => {
|
|
24286
|
+
return props.location.split(' ').reduce((acc, loc) => {
|
|
24287
|
+
acc[`v-snackbar--${loc}`] = true;
|
|
24288
|
+
return acc;
|
|
24289
|
+
}, {});
|
|
24290
|
+
});
|
|
24220
24291
|
useRender(() => {
|
|
24221
24292
|
const overlayProps = VOverlay.filterProps(props);
|
|
24222
24293
|
const hasContent = !!(slots.default || slots.text || props.text);
|
|
@@ -24227,14 +24298,14 @@
|
|
|
24227
24298
|
'v-snackbar--multi-line': props.multiLine && !props.vertical,
|
|
24228
24299
|
'v-snackbar--timer': !!props.timer,
|
|
24229
24300
|
'v-snackbar--vertical': props.vertical
|
|
24230
|
-
}, positionClasses.value, props.class],
|
|
24231
|
-
"style": props.style
|
|
24301
|
+
}, locationClasses.value, positionClasses.value, props.class],
|
|
24302
|
+
"style": [mainStyles.value, props.style]
|
|
24232
24303
|
}, overlayProps, {
|
|
24233
24304
|
"modelValue": isActive.value,
|
|
24234
24305
|
"onUpdate:modelValue": $event => isActive.value = $event,
|
|
24235
24306
|
"contentProps": vue.mergeProps({
|
|
24236
24307
|
class: ['v-snackbar__wrapper', themeClasses.value, colorClasses.value, roundedClasses.value, variantClasses.value],
|
|
24237
|
-
style: [
|
|
24308
|
+
style: [colorStyles.value],
|
|
24238
24309
|
onPointerenter,
|
|
24239
24310
|
onPointerleave
|
|
24240
24311
|
}, overlayProps.contentProps),
|
|
@@ -24242,7 +24313,9 @@
|
|
|
24242
24313
|
"noClickAnimation": true,
|
|
24243
24314
|
"scrim": false,
|
|
24244
24315
|
"scrollStrategy": "none",
|
|
24245
|
-
"_disableGlobalStack": true
|
|
24316
|
+
"_disableGlobalStack": true,
|
|
24317
|
+
"onTouchstartPassive": onTouchstart,
|
|
24318
|
+
"onTouchend": onTouchend
|
|
24246
24319
|
}, scopeId), {
|
|
24247
24320
|
default: () => [genOverlays(false, 'v-snackbar'), props.timer && !isHovering.value && vue.createVNode("div", {
|
|
24248
24321
|
"key": "timer",
|
|
@@ -26414,6 +26487,7 @@
|
|
|
26414
26487
|
app: Boolean,
|
|
26415
26488
|
appear: Boolean,
|
|
26416
26489
|
extended: Boolean,
|
|
26490
|
+
layout: Boolean,
|
|
26417
26491
|
location: {
|
|
26418
26492
|
type: String,
|
|
26419
26493
|
default: 'bottom end'
|
|
@@ -26464,8 +26538,8 @@
|
|
|
26464
26538
|
id: props.name,
|
|
26465
26539
|
order: vue.computed(() => parseInt(props.order, 10)),
|
|
26466
26540
|
position,
|
|
26467
|
-
layoutSize: height,
|
|
26468
|
-
elementSize: vue.computed(() => height.value +
|
|
26541
|
+
layoutSize: vue.computed(() => props.layout ? height.value + 24 : 0),
|
|
26542
|
+
elementSize: vue.computed(() => height.value + 24),
|
|
26469
26543
|
active: vue.computed(() => props.app && model.value),
|
|
26470
26544
|
absolute: vue.toRef(props, 'absolute')
|
|
26471
26545
|
});
|
|
@@ -26519,9 +26593,18 @@
|
|
|
26519
26593
|
},
|
|
26520
26594
|
inset: Boolean,
|
|
26521
26595
|
hideInput: Boolean,
|
|
26522
|
-
min:
|
|
26523
|
-
|
|
26524
|
-
|
|
26596
|
+
min: {
|
|
26597
|
+
type: Number,
|
|
26598
|
+
default: -Infinity
|
|
26599
|
+
},
|
|
26600
|
+
max: {
|
|
26601
|
+
type: Number,
|
|
26602
|
+
default: Infinity
|
|
26603
|
+
},
|
|
26604
|
+
step: {
|
|
26605
|
+
type: Number,
|
|
26606
|
+
default: 1
|
|
26607
|
+
},
|
|
26525
26608
|
...only(makeVInputProps(), ['density', 'disabled', 'focused', 'hideDetails', 'hint', 'label', 'persistentHint', 'readonly']),
|
|
26526
26609
|
...only(makeVFieldProps(), ['baseColor', 'bgColor', 'class', 'color', 'disabled', 'error', 'loading', 'reverse', 'rounded', 'style', 'theme', 'variant']),
|
|
26527
26610
|
...makeFocusProps()
|
|
@@ -26532,8 +26615,8 @@
|
|
|
26532
26615
|
props: {
|
|
26533
26616
|
...makeVNumberInputProps(),
|
|
26534
26617
|
modelValue: {
|
|
26535
|
-
type:
|
|
26536
|
-
default:
|
|
26618
|
+
type: Number,
|
|
26619
|
+
default: undefined
|
|
26537
26620
|
}
|
|
26538
26621
|
},
|
|
26539
26622
|
emits: {
|
|
@@ -26552,20 +26635,45 @@
|
|
|
26552
26635
|
blur
|
|
26553
26636
|
} = useFocus(props);
|
|
26554
26637
|
const inputRef = vue.ref();
|
|
26638
|
+
const stepDecimals = vue.computed(() => getDecimals(props.step));
|
|
26639
|
+
const modelDecimals = vue.computed(() => model.value != null ? getDecimals(model.value) : 0);
|
|
26640
|
+
const canIncrease = vue.computed(() => {
|
|
26641
|
+
if (model.value == null) return true;
|
|
26642
|
+
return model.value + props.step <= props.max;
|
|
26643
|
+
});
|
|
26644
|
+
const canDecrease = vue.computed(() => {
|
|
26645
|
+
if (model.value == null) return true;
|
|
26646
|
+
return model.value - props.step >= props.min;
|
|
26647
|
+
});
|
|
26648
|
+
vue.watchEffect(() => {
|
|
26649
|
+
if (model.value != null && (model.value < props.min || model.value > props.max)) {
|
|
26650
|
+
model.value = clamp(model.value, props.min, props.max);
|
|
26651
|
+
}
|
|
26652
|
+
});
|
|
26555
26653
|
function onFocus() {
|
|
26556
26654
|
if (!isFocused.value) focus();
|
|
26557
26655
|
}
|
|
26558
26656
|
const controlVariant = vue.computed(() => {
|
|
26559
26657
|
return props.hideInput ? 'stacked' : props.controlVariant;
|
|
26560
26658
|
});
|
|
26659
|
+
const incrementSlotProps = vue.computed(() => ({
|
|
26660
|
+
click: onClickUp
|
|
26661
|
+
}));
|
|
26662
|
+
const decrementSlotProps = vue.computed(() => ({
|
|
26663
|
+
click: onClickDown
|
|
26664
|
+
}));
|
|
26561
26665
|
function toggleUpDown() {
|
|
26562
26666
|
let increment = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
|
|
26667
|
+
if (model.value == null) {
|
|
26668
|
+
model.value = 0;
|
|
26669
|
+
return;
|
|
26670
|
+
}
|
|
26671
|
+
const decimals = Math.max(modelDecimals.value, stepDecimals.value);
|
|
26563
26672
|
if (increment) {
|
|
26564
|
-
|
|
26673
|
+
if (canIncrease.value) model.value = +(model.value + props.step).toFixed(decimals);
|
|
26565
26674
|
} else {
|
|
26566
|
-
|
|
26675
|
+
if (canDecrease.value) model.value = +(model.value - props.step).toFixed(decimals);
|
|
26567
26676
|
}
|
|
26568
|
-
if (inputRef.value) model.value = parseInt(inputRef.value.value, 10);
|
|
26569
26677
|
}
|
|
26570
26678
|
function onClickUp() {
|
|
26571
26679
|
toggleUpDown();
|
|
@@ -26573,12 +26681,28 @@
|
|
|
26573
26681
|
function onClickDown() {
|
|
26574
26682
|
toggleUpDown(false);
|
|
26575
26683
|
}
|
|
26576
|
-
|
|
26577
|
-
|
|
26578
|
-
|
|
26579
|
-
|
|
26580
|
-
|
|
26581
|
-
|
|
26684
|
+
function onKeydown(e) {
|
|
26685
|
+
if (['Enter', 'ArrowLeft', 'ArrowRight', 'Backspace'].includes(e.key) || e.ctrlKey) return;
|
|
26686
|
+
if (['ArrowDown'].includes(e.key)) {
|
|
26687
|
+
e.preventDefault();
|
|
26688
|
+
toggleUpDown(false);
|
|
26689
|
+
return;
|
|
26690
|
+
}
|
|
26691
|
+
if (['ArrowUp'].includes(e.key)) {
|
|
26692
|
+
e.preventDefault();
|
|
26693
|
+
toggleUpDown();
|
|
26694
|
+
return;
|
|
26695
|
+
}
|
|
26696
|
+
|
|
26697
|
+
// Only numbers, +, - & . are allowed
|
|
26698
|
+
if (!/^[0-9\-+.]+$/.test(e.key)) {
|
|
26699
|
+
e.preventDefault();
|
|
26700
|
+
}
|
|
26701
|
+
}
|
|
26702
|
+
function onInput(e) {
|
|
26703
|
+
const el = e.target;
|
|
26704
|
+
model.value = el.value ? +el.value : undefined;
|
|
26705
|
+
}
|
|
26582
26706
|
useRender(() => {
|
|
26583
26707
|
const fieldProps = filterFieldProps(props);
|
|
26584
26708
|
const [rootAttrs, inputAttrs] = filterInputAttrs(attrs);
|
|
@@ -26591,9 +26715,11 @@
|
|
|
26591
26715
|
return vue.createVNode("div", {
|
|
26592
26716
|
"class": "v-number-input__control"
|
|
26593
26717
|
}, [!slots.decrement ? vue.createVNode(VBtn, {
|
|
26718
|
+
"disabled": !canDecrease.value,
|
|
26594
26719
|
"flat": true,
|
|
26595
26720
|
"key": "decrement-btn",
|
|
26596
26721
|
"height": defaultHeight,
|
|
26722
|
+
"name": "decrement-btn",
|
|
26597
26723
|
"icon": "$expand",
|
|
26598
26724
|
"size": "small",
|
|
26599
26725
|
"onClick": onClickDown
|
|
@@ -26601,6 +26727,7 @@
|
|
|
26601
26727
|
"key": "decrement-defaults",
|
|
26602
26728
|
"defaults": {
|
|
26603
26729
|
VBtn: {
|
|
26730
|
+
disabled: !canDecrease.value,
|
|
26604
26731
|
flat: true,
|
|
26605
26732
|
height: defaultHeight,
|
|
26606
26733
|
size: 'small',
|
|
@@ -26612,9 +26739,11 @@
|
|
|
26612
26739
|
}), vue.createVNode(VDivider, {
|
|
26613
26740
|
"vertical": controlVariant.value !== 'stacked'
|
|
26614
26741
|
}, null), !slots.increment ? vue.createVNode(VBtn, {
|
|
26742
|
+
"disabled": !canIncrease.value,
|
|
26615
26743
|
"flat": true,
|
|
26616
26744
|
"key": "increment-btn",
|
|
26617
26745
|
"height": defaultHeight,
|
|
26746
|
+
"name": "increment-btn",
|
|
26618
26747
|
"icon": "$collapse",
|
|
26619
26748
|
"onClick": onClickUp,
|
|
26620
26749
|
"size": "small"
|
|
@@ -26622,6 +26751,7 @@
|
|
|
26622
26751
|
"key": "increment-defaults",
|
|
26623
26752
|
"defaults": {
|
|
26624
26753
|
VBtn: {
|
|
26754
|
+
disabled: !canIncrease.value,
|
|
26625
26755
|
flat: true,
|
|
26626
26756
|
height: defaultHeight,
|
|
26627
26757
|
size: 'small',
|
|
@@ -26663,17 +26793,16 @@
|
|
|
26663
26793
|
...slotProps
|
|
26664
26794
|
}
|
|
26665
26795
|
} = _ref2;
|
|
26666
|
-
return vue.
|
|
26796
|
+
return vue.createVNode("input", vue.mergeProps({
|
|
26667
26797
|
"ref": inputRef,
|
|
26668
|
-
"type": "
|
|
26669
|
-
"
|
|
26798
|
+
"type": "text",
|
|
26799
|
+
"value": model.value,
|
|
26800
|
+
"onInput": onInput,
|
|
26801
|
+
"onKeydown": onKeydown,
|
|
26670
26802
|
"class": fieldClass,
|
|
26671
|
-
"max": props.max,
|
|
26672
|
-
"min": props.min,
|
|
26673
|
-
"step": props.step,
|
|
26674
26803
|
"onFocus": onFocus,
|
|
26675
26804
|
"onBlur": blur
|
|
26676
|
-
}, inputAttrs), null)
|
|
26805
|
+
}, inputAttrs), null);
|
|
26677
26806
|
},
|
|
26678
26807
|
'append-inner': controlVariant.value === 'split' ? () => vue.createVNode("div", {
|
|
26679
26808
|
"class": "v-number-input__control"
|
|
@@ -26703,6 +26832,112 @@
|
|
|
26703
26832
|
}
|
|
26704
26833
|
});
|
|
26705
26834
|
|
|
26835
|
+
// Types
|
|
26836
|
+
|
|
26837
|
+
const makeVSnackbarQueueProps = propsFactory({
|
|
26838
|
+
// TODO: Port this to Snackbar on dev
|
|
26839
|
+
closable: [Boolean, String],
|
|
26840
|
+
closeText: {
|
|
26841
|
+
type: String,
|
|
26842
|
+
default: '$vuetify.dismiss'
|
|
26843
|
+
},
|
|
26844
|
+
modelValue: {
|
|
26845
|
+
type: Array,
|
|
26846
|
+
default: () => []
|
|
26847
|
+
},
|
|
26848
|
+
...omit(makeVSnackbarProps(), ['modelValue'])
|
|
26849
|
+
}, 'VSnackbarQueue');
|
|
26850
|
+
const VSnackbarQueue = genericComponent()({
|
|
26851
|
+
name: 'VSnackbarQueue',
|
|
26852
|
+
props: makeVSnackbarQueueProps(),
|
|
26853
|
+
emits: {
|
|
26854
|
+
'update:modelValue': val => true
|
|
26855
|
+
},
|
|
26856
|
+
setup(props, _ref) {
|
|
26857
|
+
let {
|
|
26858
|
+
emit,
|
|
26859
|
+
slots
|
|
26860
|
+
} = _ref;
|
|
26861
|
+
const {
|
|
26862
|
+
t
|
|
26863
|
+
} = useLocale();
|
|
26864
|
+
const isActive = vue.shallowRef(false);
|
|
26865
|
+
const isVisible = vue.shallowRef(false);
|
|
26866
|
+
const current = vue.shallowRef();
|
|
26867
|
+
vue.watch(() => props.modelValue.length, (val, oldVal) => {
|
|
26868
|
+
if (!isVisible.value && val > oldVal) {
|
|
26869
|
+
showNext();
|
|
26870
|
+
}
|
|
26871
|
+
});
|
|
26872
|
+
vue.watch(isActive, val => {
|
|
26873
|
+
if (val) isVisible.value = true;
|
|
26874
|
+
});
|
|
26875
|
+
function onAfterLeave() {
|
|
26876
|
+
if (props.modelValue.length) {
|
|
26877
|
+
showNext();
|
|
26878
|
+
} else {
|
|
26879
|
+
current.value = undefined;
|
|
26880
|
+
isVisible.value = false;
|
|
26881
|
+
}
|
|
26882
|
+
}
|
|
26883
|
+
function showNext() {
|
|
26884
|
+
const [next, ...rest] = props.modelValue;
|
|
26885
|
+
emit('update:modelValue', rest);
|
|
26886
|
+
current.value = typeof next === 'string' ? {
|
|
26887
|
+
text: next
|
|
26888
|
+
} : next;
|
|
26889
|
+
vue.nextTick(() => {
|
|
26890
|
+
isActive.value = true;
|
|
26891
|
+
});
|
|
26892
|
+
}
|
|
26893
|
+
function onClickClose() {
|
|
26894
|
+
isActive.value = false;
|
|
26895
|
+
}
|
|
26896
|
+
const btnProps = vue.computed(() => ({
|
|
26897
|
+
color: typeof props.closable === 'string' ? props.closable : undefined,
|
|
26898
|
+
text: t(props.closeText)
|
|
26899
|
+
}));
|
|
26900
|
+
useRender(() => {
|
|
26901
|
+
const hasActions = !!(props.closable || slots.actions);
|
|
26902
|
+
const {
|
|
26903
|
+
modelValue: _,
|
|
26904
|
+
...snackbarProps
|
|
26905
|
+
} = VSnackbar.filterProps(props);
|
|
26906
|
+
return vue.createVNode(vue.Fragment, null, [isVisible.value && !!current.value && (slots.default ? vue.createVNode(VDefaultsProvider, {
|
|
26907
|
+
"defaults": {
|
|
26908
|
+
VSnackbar: current.value
|
|
26909
|
+
}
|
|
26910
|
+
}, {
|
|
26911
|
+
default: () => [slots.default({
|
|
26912
|
+
item: current.value
|
|
26913
|
+
})]
|
|
26914
|
+
}) : vue.createVNode(VSnackbar, vue.mergeProps(snackbarProps, current.value, {
|
|
26915
|
+
"modelValue": isActive.value,
|
|
26916
|
+
"onUpdate:modelValue": $event => isActive.value = $event,
|
|
26917
|
+
"onAfterLeave": onAfterLeave
|
|
26918
|
+
}), {
|
|
26919
|
+
text: slots.text ? () => slots.text?.({
|
|
26920
|
+
item: current.value
|
|
26921
|
+
}) : undefined,
|
|
26922
|
+
actions: hasActions ? () => vue.createVNode(vue.Fragment, null, [!slots.actions ? vue.createVNode(VBtn, vue.mergeProps(btnProps.value, {
|
|
26923
|
+
"onClick": onClickClose
|
|
26924
|
+
}), null) : vue.createVNode(VDefaultsProvider, {
|
|
26925
|
+
"defaults": {
|
|
26926
|
+
VBtn: btnProps.value
|
|
26927
|
+
}
|
|
26928
|
+
}, {
|
|
26929
|
+
default: () => [slots.actions({
|
|
26930
|
+
item: current.value,
|
|
26931
|
+
props: {
|
|
26932
|
+
onClick: onClickClose
|
|
26933
|
+
}
|
|
26934
|
+
})]
|
|
26935
|
+
})]) : undefined
|
|
26936
|
+
}))]);
|
|
26937
|
+
});
|
|
26938
|
+
}
|
|
26939
|
+
});
|
|
26940
|
+
|
|
26706
26941
|
// Utilities
|
|
26707
26942
|
|
|
26708
26943
|
// Types
|
|
@@ -27199,8 +27434,7 @@
|
|
|
27199
27434
|
default: () => [vue.createVNode(MaybeTransition, {
|
|
27200
27435
|
"appear": true,
|
|
27201
27436
|
"group": true,
|
|
27202
|
-
"transition": props.transition
|
|
27203
|
-
"mode": "out-in"
|
|
27437
|
+
"transition": props.transition
|
|
27204
27438
|
}, {
|
|
27205
27439
|
default: () => [slots.default?.(slotProps)]
|
|
27206
27440
|
})]
|
|
@@ -27218,9 +27452,7 @@
|
|
|
27218
27452
|
ampm: Boolean,
|
|
27219
27453
|
color: String,
|
|
27220
27454
|
disabled: Boolean,
|
|
27221
|
-
displayedValue:
|
|
27222
|
-
default: null
|
|
27223
|
-
},
|
|
27455
|
+
displayedValue: null,
|
|
27224
27456
|
double: Boolean,
|
|
27225
27457
|
format: {
|
|
27226
27458
|
type: Function,
|
|
@@ -28349,6 +28581,7 @@
|
|
|
28349
28581
|
VSlideYTransition: VSlideYTransition,
|
|
28350
28582
|
VSlider: VSlider,
|
|
28351
28583
|
VSnackbar: VSnackbar,
|
|
28584
|
+
VSnackbarQueue: VSnackbarQueue,
|
|
28352
28585
|
VSpacer: VSpacer,
|
|
28353
28586
|
VSparkline: VSparkline,
|
|
28354
28587
|
VSpeedDial: VSpeedDial,
|
|
@@ -28605,7 +28838,7 @@
|
|
|
28605
28838
|
goTo
|
|
28606
28839
|
};
|
|
28607
28840
|
}
|
|
28608
|
-
const version$1 = "3.5.
|
|
28841
|
+
const version$1 = "3.5.18";
|
|
28609
28842
|
createVuetify$1.version = version$1;
|
|
28610
28843
|
|
|
28611
28844
|
// Vue's inject() can only be used in setup
|
|
@@ -28858,7 +29091,7 @@
|
|
|
28858
29091
|
|
|
28859
29092
|
/* eslint-disable local-rules/sort-imports */
|
|
28860
29093
|
|
|
28861
|
-
const version = "3.5.
|
|
29094
|
+
const version = "3.5.18";
|
|
28862
29095
|
|
|
28863
29096
|
/* eslint-disable local-rules/sort-imports */
|
|
28864
29097
|
|