vuetify 3.5.16 → 3.5.17
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 +8 -4
- package/dist/json/importMap.json +126 -126
- package/dist/json/tags.json +54 -0
- package/dist/json/web-types.json +607 -84
- package/dist/vuetify-labs.css +2606 -2579
- package/dist/vuetify-labs.d.ts +742 -64
- package/dist/vuetify-labs.esm.js +356 -127
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +355 -126
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +2393 -2367
- package/dist/vuetify.d.ts +127 -62
- package/dist/vuetify.esm.js +169 -101
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +168 -100
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +181 -178
- 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 +10 -0
- 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 +26 -8
- 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/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 +42 -41
- 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/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 +1 -0
- package/lib/locale/ko.mjs.map +1 -1
- package/lib/locale/lt.mjs +1 -0
- package/lib/locale/lt.mjs.map +1 -1
- package/lib/locale/lv.mjs +1 -0
- package/lib/locale/lv.mjs.map +1 -1
- package/lib/locale/nl.mjs +1 -0
- package/lib/locale/nl.mjs.map +1 -1
- package/lib/locale/no.mjs +1 -0
- package/lib/locale/no.mjs.map +1 -1
- package/lib/locale/pl.mjs +1 -0
- package/lib/locale/pl.mjs.map +1 -1
- package/lib/locale/pt.mjs +1 -0
- package/lib/locale/pt.mjs.map +1 -1
- package/lib/locale/ro.mjs +1 -0
- package/lib/locale/ro.mjs.map +1 -1
- package/lib/locale/ru.mjs +1 -0
- package/lib/locale/ru.mjs.map +1 -1
- package/lib/locale/sk.mjs +1 -0
- package/lib/locale/sk.mjs.map +1 -1
- package/lib/locale/sl.mjs +1 -0
- package/lib/locale/sl.mjs.map +1 -1
- package/lib/locale/sr-Cyrl.mjs +1 -0
- package/lib/locale/sr-Cyrl.mjs.map +1 -1
- package/lib/locale/sr-Latn.mjs +1 -0
- package/lib/locale/sr-Latn.mjs.map +1 -1
- package/lib/locale/sv.mjs +1 -0
- package/lib/locale/sv.mjs.map +1 -1
- package/lib/locale/th.mjs +1 -0
- package/lib/locale/th.mjs.map +1 -1
- package/lib/locale/tr.mjs +1 -0
- package/lib/locale/tr.mjs.map +1 -1
- package/lib/locale/uk.mjs +1 -0
- package/lib/locale/uk.mjs.map +1 -1
- package/lib/locale/vi.mjs +1 -0
- package/lib/locale/vi.mjs.map +1 -1
- package/lib/locale/zh-Hans.mjs +1 -0
- package/lib/locale/zh-Hans.mjs.map +1 -1
- package/lib/locale/zh-Hant.mjs +1 -0
- package/lib/locale/zh-Hant.mjs.map +1 -1
- package/lib/styles/main.css +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.17
|
|
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;
|
|
@@ -21356,6 +21384,16 @@
|
|
|
21356
21384
|
vue.watch(model, (val, oldVal) => {
|
|
21357
21385
|
const before = adapter.date(wrapInArray(val)[0]);
|
|
21358
21386
|
const after = adapter.date(wrapInArray(oldVal)[0]);
|
|
21387
|
+
const newMonth = adapter.getMonth(before);
|
|
21388
|
+
const newYear = adapter.getYear(before);
|
|
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",
|
|
@@ -24165,8 +24216,8 @@
|
|
|
24165
24216
|
} = _ref;
|
|
24166
24217
|
const isActive = useProxiedModel(props, 'modelValue');
|
|
24167
24218
|
const {
|
|
24168
|
-
|
|
24169
|
-
} =
|
|
24219
|
+
mainStyles
|
|
24220
|
+
} = useLayout();
|
|
24170
24221
|
const {
|
|
24171
24222
|
positionClasses
|
|
24172
24223
|
} = usePosition(props);
|
|
@@ -24188,6 +24239,7 @@
|
|
|
24188
24239
|
const overlay = vue.ref();
|
|
24189
24240
|
const timerRef = vue.ref();
|
|
24190
24241
|
const isHovering = vue.shallowRef(false);
|
|
24242
|
+
const startY = vue.shallowRef(0);
|
|
24191
24243
|
vue.watch(isActive, startTimeout);
|
|
24192
24244
|
vue.watch(() => props.timeout, startTimeout);
|
|
24193
24245
|
vue.onMounted(() => {
|
|
@@ -24217,6 +24269,20 @@
|
|
|
24217
24269
|
isHovering.value = false;
|
|
24218
24270
|
startTimeout();
|
|
24219
24271
|
}
|
|
24272
|
+
function onTouchstart(event) {
|
|
24273
|
+
startY.value = event.touches[0].clientY;
|
|
24274
|
+
}
|
|
24275
|
+
function onTouchend(event) {
|
|
24276
|
+
if (Math.abs(startY.value - event.changedTouches[0].clientY) > 50) {
|
|
24277
|
+
isActive.value = false;
|
|
24278
|
+
}
|
|
24279
|
+
}
|
|
24280
|
+
const locationClasses = vue.computed(() => {
|
|
24281
|
+
return props.location.split(' ').reduce((acc, loc) => {
|
|
24282
|
+
acc[`v-snackbar--${loc}`] = true;
|
|
24283
|
+
return acc;
|
|
24284
|
+
}, {});
|
|
24285
|
+
});
|
|
24220
24286
|
useRender(() => {
|
|
24221
24287
|
const overlayProps = VOverlay.filterProps(props);
|
|
24222
24288
|
const hasContent = !!(slots.default || slots.text || props.text);
|
|
@@ -24227,14 +24293,14 @@
|
|
|
24227
24293
|
'v-snackbar--multi-line': props.multiLine && !props.vertical,
|
|
24228
24294
|
'v-snackbar--timer': !!props.timer,
|
|
24229
24295
|
'v-snackbar--vertical': props.vertical
|
|
24230
|
-
}, positionClasses.value, props.class],
|
|
24231
|
-
"style": props.style
|
|
24296
|
+
}, locationClasses.value, positionClasses.value, props.class],
|
|
24297
|
+
"style": [mainStyles.value, props.style]
|
|
24232
24298
|
}, overlayProps, {
|
|
24233
24299
|
"modelValue": isActive.value,
|
|
24234
24300
|
"onUpdate:modelValue": $event => isActive.value = $event,
|
|
24235
24301
|
"contentProps": vue.mergeProps({
|
|
24236
24302
|
class: ['v-snackbar__wrapper', themeClasses.value, colorClasses.value, roundedClasses.value, variantClasses.value],
|
|
24237
|
-
style: [
|
|
24303
|
+
style: [colorStyles.value],
|
|
24238
24304
|
onPointerenter,
|
|
24239
24305
|
onPointerleave
|
|
24240
24306
|
}, overlayProps.contentProps),
|
|
@@ -24242,7 +24308,9 @@
|
|
|
24242
24308
|
"noClickAnimation": true,
|
|
24243
24309
|
"scrim": false,
|
|
24244
24310
|
"scrollStrategy": "none",
|
|
24245
|
-
"_disableGlobalStack": true
|
|
24311
|
+
"_disableGlobalStack": true,
|
|
24312
|
+
"onTouchstart": onTouchstart,
|
|
24313
|
+
"onTouchend": onTouchend
|
|
24246
24314
|
}, scopeId), {
|
|
24247
24315
|
default: () => [genOverlays(false, 'v-snackbar'), props.timer && !isHovering.value && vue.createVNode("div", {
|
|
24248
24316
|
"key": "timer",
|
|
@@ -26414,6 +26482,7 @@
|
|
|
26414
26482
|
app: Boolean,
|
|
26415
26483
|
appear: Boolean,
|
|
26416
26484
|
extended: Boolean,
|
|
26485
|
+
layout: Boolean,
|
|
26417
26486
|
location: {
|
|
26418
26487
|
type: String,
|
|
26419
26488
|
default: 'bottom end'
|
|
@@ -26464,8 +26533,8 @@
|
|
|
26464
26533
|
id: props.name,
|
|
26465
26534
|
order: vue.computed(() => parseInt(props.order, 10)),
|
|
26466
26535
|
position,
|
|
26467
|
-
layoutSize: height,
|
|
26468
|
-
elementSize: vue.computed(() => height.value +
|
|
26536
|
+
layoutSize: vue.computed(() => props.layout ? height.value + 24 : 0),
|
|
26537
|
+
elementSize: vue.computed(() => height.value + 24),
|
|
26469
26538
|
active: vue.computed(() => props.app && model.value),
|
|
26470
26539
|
absolute: vue.toRef(props, 'absolute')
|
|
26471
26540
|
});
|
|
@@ -26519,9 +26588,18 @@
|
|
|
26519
26588
|
},
|
|
26520
26589
|
inset: Boolean,
|
|
26521
26590
|
hideInput: Boolean,
|
|
26522
|
-
min:
|
|
26523
|
-
|
|
26524
|
-
|
|
26591
|
+
min: {
|
|
26592
|
+
type: Number,
|
|
26593
|
+
default: -Infinity
|
|
26594
|
+
},
|
|
26595
|
+
max: {
|
|
26596
|
+
type: Number,
|
|
26597
|
+
default: Infinity
|
|
26598
|
+
},
|
|
26599
|
+
step: {
|
|
26600
|
+
type: Number,
|
|
26601
|
+
default: 1
|
|
26602
|
+
},
|
|
26525
26603
|
...only(makeVInputProps(), ['density', 'disabled', 'focused', 'hideDetails', 'hint', 'label', 'persistentHint', 'readonly']),
|
|
26526
26604
|
...only(makeVFieldProps(), ['baseColor', 'bgColor', 'class', 'color', 'disabled', 'error', 'loading', 'reverse', 'rounded', 'style', 'theme', 'variant']),
|
|
26527
26605
|
...makeFocusProps()
|
|
@@ -26532,8 +26610,8 @@
|
|
|
26532
26610
|
props: {
|
|
26533
26611
|
...makeVNumberInputProps(),
|
|
26534
26612
|
modelValue: {
|
|
26535
|
-
type:
|
|
26536
|
-
default:
|
|
26613
|
+
type: Number,
|
|
26614
|
+
default: undefined
|
|
26537
26615
|
}
|
|
26538
26616
|
},
|
|
26539
26617
|
emits: {
|
|
@@ -26552,20 +26630,45 @@
|
|
|
26552
26630
|
blur
|
|
26553
26631
|
} = useFocus(props);
|
|
26554
26632
|
const inputRef = vue.ref();
|
|
26633
|
+
const stepDecimals = vue.computed(() => getDecimals(props.step));
|
|
26634
|
+
const modelDecimals = vue.computed(() => model.value != null ? getDecimals(model.value) : 0);
|
|
26635
|
+
const canIncrease = vue.computed(() => {
|
|
26636
|
+
if (model.value == null) return true;
|
|
26637
|
+
return model.value + props.step <= props.max;
|
|
26638
|
+
});
|
|
26639
|
+
const canDecrease = vue.computed(() => {
|
|
26640
|
+
if (model.value == null) return true;
|
|
26641
|
+
return model.value - props.step >= props.min;
|
|
26642
|
+
});
|
|
26643
|
+
vue.watchEffect(() => {
|
|
26644
|
+
if (model.value != null && (model.value < props.min || model.value > props.max)) {
|
|
26645
|
+
model.value = clamp(model.value, props.min, props.max);
|
|
26646
|
+
}
|
|
26647
|
+
});
|
|
26555
26648
|
function onFocus() {
|
|
26556
26649
|
if (!isFocused.value) focus();
|
|
26557
26650
|
}
|
|
26558
26651
|
const controlVariant = vue.computed(() => {
|
|
26559
26652
|
return props.hideInput ? 'stacked' : props.controlVariant;
|
|
26560
26653
|
});
|
|
26654
|
+
const incrementSlotProps = vue.computed(() => ({
|
|
26655
|
+
click: onClickUp
|
|
26656
|
+
}));
|
|
26657
|
+
const decrementSlotProps = vue.computed(() => ({
|
|
26658
|
+
click: onClickDown
|
|
26659
|
+
}));
|
|
26561
26660
|
function toggleUpDown() {
|
|
26562
26661
|
let increment = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
|
|
26662
|
+
if (model.value == null) {
|
|
26663
|
+
model.value = 0;
|
|
26664
|
+
return;
|
|
26665
|
+
}
|
|
26666
|
+
const decimals = Math.max(modelDecimals.value, stepDecimals.value);
|
|
26563
26667
|
if (increment) {
|
|
26564
|
-
|
|
26668
|
+
if (canIncrease.value) model.value = +(model.value + props.step).toFixed(decimals);
|
|
26565
26669
|
} else {
|
|
26566
|
-
|
|
26670
|
+
if (canDecrease.value) model.value = +(model.value - props.step).toFixed(decimals);
|
|
26567
26671
|
}
|
|
26568
|
-
if (inputRef.value) model.value = parseInt(inputRef.value.value, 10);
|
|
26569
26672
|
}
|
|
26570
26673
|
function onClickUp() {
|
|
26571
26674
|
toggleUpDown();
|
|
@@ -26573,12 +26676,28 @@
|
|
|
26573
26676
|
function onClickDown() {
|
|
26574
26677
|
toggleUpDown(false);
|
|
26575
26678
|
}
|
|
26576
|
-
|
|
26577
|
-
|
|
26578
|
-
|
|
26579
|
-
|
|
26580
|
-
|
|
26581
|
-
|
|
26679
|
+
function onKeydown(e) {
|
|
26680
|
+
if (['Enter', 'ArrowLeft', 'ArrowRight', 'Backspace'].includes(e.key) || e.ctrlKey) return;
|
|
26681
|
+
if (['ArrowDown'].includes(e.key)) {
|
|
26682
|
+
e.preventDefault();
|
|
26683
|
+
toggleUpDown(false);
|
|
26684
|
+
return;
|
|
26685
|
+
}
|
|
26686
|
+
if (['ArrowUp'].includes(e.key)) {
|
|
26687
|
+
e.preventDefault();
|
|
26688
|
+
toggleUpDown();
|
|
26689
|
+
return;
|
|
26690
|
+
}
|
|
26691
|
+
|
|
26692
|
+
// Only numbers, +, - & . are allowed
|
|
26693
|
+
if (!/^[0-9\-+.]+$/.test(e.key)) {
|
|
26694
|
+
e.preventDefault();
|
|
26695
|
+
}
|
|
26696
|
+
}
|
|
26697
|
+
function onInput(e) {
|
|
26698
|
+
const el = e.target;
|
|
26699
|
+
model.value = el.value ? +el.value : undefined;
|
|
26700
|
+
}
|
|
26582
26701
|
useRender(() => {
|
|
26583
26702
|
const fieldProps = filterFieldProps(props);
|
|
26584
26703
|
const [rootAttrs, inputAttrs] = filterInputAttrs(attrs);
|
|
@@ -26591,9 +26710,11 @@
|
|
|
26591
26710
|
return vue.createVNode("div", {
|
|
26592
26711
|
"class": "v-number-input__control"
|
|
26593
26712
|
}, [!slots.decrement ? vue.createVNode(VBtn, {
|
|
26713
|
+
"disabled": !canDecrease.value,
|
|
26594
26714
|
"flat": true,
|
|
26595
26715
|
"key": "decrement-btn",
|
|
26596
26716
|
"height": defaultHeight,
|
|
26717
|
+
"name": "decrement-btn",
|
|
26597
26718
|
"icon": "$expand",
|
|
26598
26719
|
"size": "small",
|
|
26599
26720
|
"onClick": onClickDown
|
|
@@ -26601,6 +26722,7 @@
|
|
|
26601
26722
|
"key": "decrement-defaults",
|
|
26602
26723
|
"defaults": {
|
|
26603
26724
|
VBtn: {
|
|
26725
|
+
disabled: !canDecrease.value,
|
|
26604
26726
|
flat: true,
|
|
26605
26727
|
height: defaultHeight,
|
|
26606
26728
|
size: 'small',
|
|
@@ -26612,9 +26734,11 @@
|
|
|
26612
26734
|
}), vue.createVNode(VDivider, {
|
|
26613
26735
|
"vertical": controlVariant.value !== 'stacked'
|
|
26614
26736
|
}, null), !slots.increment ? vue.createVNode(VBtn, {
|
|
26737
|
+
"disabled": !canIncrease.value,
|
|
26615
26738
|
"flat": true,
|
|
26616
26739
|
"key": "increment-btn",
|
|
26617
26740
|
"height": defaultHeight,
|
|
26741
|
+
"name": "increment-btn",
|
|
26618
26742
|
"icon": "$collapse",
|
|
26619
26743
|
"onClick": onClickUp,
|
|
26620
26744
|
"size": "small"
|
|
@@ -26622,6 +26746,7 @@
|
|
|
26622
26746
|
"key": "increment-defaults",
|
|
26623
26747
|
"defaults": {
|
|
26624
26748
|
VBtn: {
|
|
26749
|
+
disabled: !canIncrease.value,
|
|
26625
26750
|
flat: true,
|
|
26626
26751
|
height: defaultHeight,
|
|
26627
26752
|
size: 'small',
|
|
@@ -26663,17 +26788,16 @@
|
|
|
26663
26788
|
...slotProps
|
|
26664
26789
|
}
|
|
26665
26790
|
} = _ref2;
|
|
26666
|
-
return vue.
|
|
26791
|
+
return vue.createVNode("input", vue.mergeProps({
|
|
26667
26792
|
"ref": inputRef,
|
|
26668
|
-
"type": "
|
|
26669
|
-
"
|
|
26793
|
+
"type": "text",
|
|
26794
|
+
"value": model.value,
|
|
26795
|
+
"onInput": onInput,
|
|
26796
|
+
"onKeydown": onKeydown,
|
|
26670
26797
|
"class": fieldClass,
|
|
26671
|
-
"max": props.max,
|
|
26672
|
-
"min": props.min,
|
|
26673
|
-
"step": props.step,
|
|
26674
26798
|
"onFocus": onFocus,
|
|
26675
26799
|
"onBlur": blur
|
|
26676
|
-
}, inputAttrs), null)
|
|
26800
|
+
}, inputAttrs), null);
|
|
26677
26801
|
},
|
|
26678
26802
|
'append-inner': controlVariant.value === 'split' ? () => vue.createVNode("div", {
|
|
26679
26803
|
"class": "v-number-input__control"
|
|
@@ -26703,6 +26827,112 @@
|
|
|
26703
26827
|
}
|
|
26704
26828
|
});
|
|
26705
26829
|
|
|
26830
|
+
// Types
|
|
26831
|
+
|
|
26832
|
+
const makeVSnackbarQueueProps = propsFactory({
|
|
26833
|
+
// TODO: Port this to Snackbar on dev
|
|
26834
|
+
closable: [Boolean, String],
|
|
26835
|
+
closeText: {
|
|
26836
|
+
type: String,
|
|
26837
|
+
default: '$vuetify.dismiss'
|
|
26838
|
+
},
|
|
26839
|
+
modelValue: {
|
|
26840
|
+
type: Array,
|
|
26841
|
+
default: () => []
|
|
26842
|
+
},
|
|
26843
|
+
...omit(makeVSnackbarProps(), ['modelValue'])
|
|
26844
|
+
}, 'VSnackbarQueue');
|
|
26845
|
+
const VSnackbarQueue = genericComponent()({
|
|
26846
|
+
name: 'VSnackbarQueue',
|
|
26847
|
+
props: makeVSnackbarQueueProps(),
|
|
26848
|
+
emits: {
|
|
26849
|
+
'update:modelValue': val => true
|
|
26850
|
+
},
|
|
26851
|
+
setup(props, _ref) {
|
|
26852
|
+
let {
|
|
26853
|
+
emit,
|
|
26854
|
+
slots
|
|
26855
|
+
} = _ref;
|
|
26856
|
+
const {
|
|
26857
|
+
t
|
|
26858
|
+
} = useLocale();
|
|
26859
|
+
const isActive = vue.shallowRef(false);
|
|
26860
|
+
const isVisible = vue.shallowRef(false);
|
|
26861
|
+
const current = vue.shallowRef();
|
|
26862
|
+
vue.watch(() => props.modelValue.length, (val, oldVal) => {
|
|
26863
|
+
if (!isVisible.value && val > oldVal) {
|
|
26864
|
+
showNext();
|
|
26865
|
+
}
|
|
26866
|
+
});
|
|
26867
|
+
vue.watch(isActive, val => {
|
|
26868
|
+
if (val) isVisible.value = true;
|
|
26869
|
+
});
|
|
26870
|
+
function onAfterLeave() {
|
|
26871
|
+
if (props.modelValue.length) {
|
|
26872
|
+
showNext();
|
|
26873
|
+
} else {
|
|
26874
|
+
current.value = undefined;
|
|
26875
|
+
isVisible.value = false;
|
|
26876
|
+
}
|
|
26877
|
+
}
|
|
26878
|
+
function showNext() {
|
|
26879
|
+
const [next, ...rest] = props.modelValue;
|
|
26880
|
+
emit('update:modelValue', rest);
|
|
26881
|
+
current.value = typeof next === 'string' ? {
|
|
26882
|
+
text: next
|
|
26883
|
+
} : next;
|
|
26884
|
+
vue.nextTick(() => {
|
|
26885
|
+
isActive.value = true;
|
|
26886
|
+
});
|
|
26887
|
+
}
|
|
26888
|
+
function onClickClose() {
|
|
26889
|
+
isActive.value = false;
|
|
26890
|
+
}
|
|
26891
|
+
const btnProps = vue.computed(() => ({
|
|
26892
|
+
color: typeof props.closable === 'string' ? props.closable : undefined,
|
|
26893
|
+
text: t(props.closeText)
|
|
26894
|
+
}));
|
|
26895
|
+
useRender(() => {
|
|
26896
|
+
const hasActions = !!(props.closable || slots.actions);
|
|
26897
|
+
const {
|
|
26898
|
+
modelValue: _,
|
|
26899
|
+
...snackbarProps
|
|
26900
|
+
} = VSnackbar.filterProps(props);
|
|
26901
|
+
return vue.createVNode(vue.Fragment, null, [isVisible.value && !!current.value && (slots.default ? vue.createVNode(VDefaultsProvider, {
|
|
26902
|
+
"defaults": {
|
|
26903
|
+
VSnackbar: current.value
|
|
26904
|
+
}
|
|
26905
|
+
}, {
|
|
26906
|
+
default: () => [slots.default({
|
|
26907
|
+
item: current.value
|
|
26908
|
+
})]
|
|
26909
|
+
}) : vue.createVNode(VSnackbar, vue.mergeProps(snackbarProps, current.value, {
|
|
26910
|
+
"modelValue": isActive.value,
|
|
26911
|
+
"onUpdate:modelValue": $event => isActive.value = $event,
|
|
26912
|
+
"onAfterLeave": onAfterLeave
|
|
26913
|
+
}), {
|
|
26914
|
+
text: slots.text ? () => slots.text?.({
|
|
26915
|
+
item: current.value
|
|
26916
|
+
}) : undefined,
|
|
26917
|
+
actions: hasActions ? () => vue.createVNode(vue.Fragment, null, [!slots.actions ? vue.createVNode(VBtn, vue.mergeProps(btnProps.value, {
|
|
26918
|
+
"onClick": onClickClose
|
|
26919
|
+
}), null) : vue.createVNode(VDefaultsProvider, {
|
|
26920
|
+
"defaults": {
|
|
26921
|
+
VBtn: btnProps.value
|
|
26922
|
+
}
|
|
26923
|
+
}, {
|
|
26924
|
+
default: () => [slots.actions({
|
|
26925
|
+
item: current.value,
|
|
26926
|
+
props: {
|
|
26927
|
+
onClick: onClickClose
|
|
26928
|
+
}
|
|
26929
|
+
})]
|
|
26930
|
+
})]) : undefined
|
|
26931
|
+
}))]);
|
|
26932
|
+
});
|
|
26933
|
+
}
|
|
26934
|
+
});
|
|
26935
|
+
|
|
26706
26936
|
// Utilities
|
|
26707
26937
|
|
|
26708
26938
|
// Types
|
|
@@ -27218,9 +27448,7 @@
|
|
|
27218
27448
|
ampm: Boolean,
|
|
27219
27449
|
color: String,
|
|
27220
27450
|
disabled: Boolean,
|
|
27221
|
-
displayedValue:
|
|
27222
|
-
default: null
|
|
27223
|
-
},
|
|
27451
|
+
displayedValue: null,
|
|
27224
27452
|
double: Boolean,
|
|
27225
27453
|
format: {
|
|
27226
27454
|
type: Function,
|
|
@@ -28349,6 +28577,7 @@
|
|
|
28349
28577
|
VSlideYTransition: VSlideYTransition,
|
|
28350
28578
|
VSlider: VSlider,
|
|
28351
28579
|
VSnackbar: VSnackbar,
|
|
28580
|
+
VSnackbarQueue: VSnackbarQueue,
|
|
28352
28581
|
VSpacer: VSpacer,
|
|
28353
28582
|
VSparkline: VSparkline,
|
|
28354
28583
|
VSpeedDial: VSpeedDial,
|
|
@@ -28605,7 +28834,7 @@
|
|
|
28605
28834
|
goTo
|
|
28606
28835
|
};
|
|
28607
28836
|
}
|
|
28608
|
-
const version$1 = "3.5.
|
|
28837
|
+
const version$1 = "3.5.17";
|
|
28609
28838
|
createVuetify$1.version = version$1;
|
|
28610
28839
|
|
|
28611
28840
|
// Vue's inject() can only be used in setup
|
|
@@ -28858,7 +29087,7 @@
|
|
|
28858
29087
|
|
|
28859
29088
|
/* eslint-disable local-rules/sort-imports */
|
|
28860
29089
|
|
|
28861
|
-
const version = "3.5.
|
|
29090
|
+
const version = "3.5.17";
|
|
28862
29091
|
|
|
28863
29092
|
/* eslint-disable local-rules/sort-imports */
|
|
28864
29093
|
|