@vuetify/nightly 3.0.0-beta.6 → 3.0.0-beta.9
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 +14 -39
- package/dist/json/attributes.json +98 -14
- package/dist/json/importMap.json +64 -64
- package/dist/json/tags.json +23 -2
- package/dist/json/web-types.json +253 -40
- package/dist/vuetify.css +1469 -1640
- package/dist/vuetify.d.ts +1701 -7588
- package/dist/vuetify.esm.js +694 -443
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +693 -441
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +3 -3
- package/dist/vuetify.min.js +766 -742
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAlert/VAlert.css +0 -3
- package/lib/components/VAlert/VAlert.mjs +20 -10
- package/lib/components/VAlert/VAlert.mjs.map +1 -1
- package/lib/components/VAlert/VAlert.sass +0 -3
- package/lib/components/VAutocomplete/VAutocomplete.css +10 -0
- package/lib/components/VAutocomplete/VAutocomplete.mjs +2 -3
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.sass +10 -0
- package/lib/components/VAutocomplete/_variables.scss +1 -0
- package/lib/components/VAvatar/VAvatar.css +2 -0
- package/lib/components/VAvatar/VAvatar.sass +3 -0
- package/lib/components/VBtn/VBtn.css +29 -5
- package/lib/components/VBtn/VBtn.sass +40 -10
- package/lib/components/VBtn/_variables.scss +4 -0
- package/lib/components/VBtnGroup/VBtnGroup.css +1 -0
- package/lib/components/VCard/VCard.mjs +12 -7
- package/lib/components/VCard/VCard.mjs.map +1 -1
- package/lib/components/VCombobox/VCombobox.css +10 -0
- package/lib/components/VCombobox/VCombobox.mjs +2 -2
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VCombobox/VCombobox.sass +10 -0
- package/lib/components/VCombobox/_variables.scss +1 -0
- package/lib/components/VDialog/VDialog.mjs +3 -3
- package/lib/components/VDialog/VDialog.mjs.map +1 -1
- package/lib/components/VField/VField.css +44 -25
- package/lib/components/VField/VField.mjs +1 -1
- package/lib/components/VField/VField.mjs.map +1 -1
- package/lib/components/VField/VField.sass +33 -19
- package/lib/components/VField/_variables.scss +3 -2
- package/lib/components/VFileInput/VFileInput.mjs +2 -2
- package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
- package/lib/components/VForm/VForm.mjs +2 -2
- package/lib/components/VForm/VForm.mjs.map +1 -1
- package/lib/components/VGrid/VCol.mjs +2 -1
- package/lib/components/VGrid/VCol.mjs.map +1 -1
- package/lib/components/VGrid/VRow.mjs +8 -3
- package/lib/components/VGrid/VRow.mjs.map +1 -1
- package/lib/components/VIcon/VIcon.css +0 -10
- package/lib/components/VIcon/VIcon.sass +0 -10
- package/lib/components/VIcon/_variables.scss +0 -1
- package/lib/components/VImg/VImg.mjs +1 -0
- package/lib/components/VImg/VImg.mjs.map +1 -1
- package/lib/components/VInput/VInput.css +2 -1
- package/lib/components/VInput/VInput.sass +2 -1
- package/lib/components/VInput/_variables.scss +0 -1
- package/lib/components/VLayout/VLayout.css +0 -2
- package/lib/components/VLayout/VLayout.sass +0 -2
- package/lib/components/VList/VList.css +4 -1
- package/lib/components/VList/VList.sass +5 -1
- package/lib/components/VList/VListChildren.mjs +19 -2
- package/lib/components/VList/VListChildren.mjs.map +1 -1
- package/lib/components/VList/VListItem.mjs +18 -11
- package/lib/components/VList/VListItem.mjs.map +1 -1
- package/lib/components/VList/_variables.scss +1 -0
- package/lib/components/VMain/VMain.css +21 -3
- package/lib/components/VMain/VMain.mjs +13 -8
- package/lib/components/VMain/VMain.mjs.map +1 -1
- package/lib/components/VMain/VMain.sass +18 -3
- package/lib/components/VMenu/VMenu.mjs +2 -2
- package/lib/components/VMenu/VMenu.mjs.map +1 -1
- package/lib/components/VNavigationDrawer/VNavigationDrawer.css +12 -17
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +52 -19
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
- package/lib/components/VNavigationDrawer/VNavigationDrawer.sass +15 -20
- package/lib/components/VNavigationDrawer/_variables.scss +1 -1
- package/lib/components/VNavigationDrawer/sticky.mjs +72 -0
- package/lib/components/VNavigationDrawer/sticky.mjs.map +1 -0
- package/lib/components/VOverlay/VOverlay.mjs +8 -6
- package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
- package/lib/components/VOverlay/_variables.scss +1 -1
- package/lib/components/VOverlay/useActivator.mjs +1 -1
- package/lib/components/VOverlay/useActivator.mjs.map +1 -1
- package/lib/components/VPagination/VPagination.mjs +1 -1
- package/lib/components/VPagination/VPagination.mjs.map +1 -1
- package/lib/components/VRadio/VRadio.mjs +8 -17
- package/lib/components/VRadio/VRadio.mjs.map +1 -1
- package/lib/components/VRadioGroup/VRadioGroup.mjs +20 -3
- package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
- package/lib/components/VSelect/VSelect.css +10 -0
- package/lib/components/VSelect/VSelect.mjs +3 -4
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VSelect/VSelect.sass +10 -0
- package/lib/components/VSelect/_variables.scss +1 -0
- package/lib/components/VSelectionControl/VSelectionControl.mjs +9 -4
- package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
- package/lib/components/VSnackbar/VSnackbar.css +1 -1
- package/lib/components/VSnackbar/VSnackbar.mjs +4 -4
- package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
- package/lib/components/VSnackbar/_variables.scss +1 -3
- package/lib/components/VTable/VTable.mjs.map +1 -1
- package/lib/components/VTabs/VTab.css +0 -1
- package/lib/components/VTabs/VTab.sass +0 -1
- package/lib/components/VTextField/VTextField.css +2 -1
- package/lib/components/VTextField/VTextField.mjs +19 -21
- package/lib/components/VTextField/VTextField.mjs.map +1 -1
- package/lib/components/VTextField/VTextField.sass +2 -1
- package/lib/components/VTextarea/VTextarea.css +6 -2
- package/lib/components/VTextarea/VTextarea.mjs +18 -11
- package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
- package/lib/components/VTextarea/VTextarea.sass +9 -2
- package/lib/components/VTextarea/_variables.scss +0 -1
- package/lib/components/VTimeline/VTimeline.css +123 -112
- package/lib/components/VTimeline/VTimeline.mjs +4 -4
- package/lib/components/VTimeline/VTimeline.mjs.map +1 -1
- package/lib/components/VTimeline/VTimeline.sass +129 -111
- package/lib/components/VTimeline/VTimelineDivider.mjs +5 -2
- package/lib/components/VTimeline/VTimelineDivider.mjs.map +1 -1
- package/lib/components/VTimeline/VTimelineItem.mjs +3 -1
- package/lib/components/VTimeline/VTimelineItem.mjs.map +1 -1
- package/lib/components/VToolbar/VToolbar.css +9 -33
- package/lib/components/VToolbar/VToolbar.mjs +3 -4
- package/lib/components/VToolbar/VToolbar.mjs.map +1 -1
- package/lib/components/VToolbar/VToolbar.sass +5 -15
- package/lib/components/VToolbar/_variables.scss +3 -7
- package/lib/components/VTooltip/VTooltip.mjs +2 -2
- package/lib/components/VTooltip/VTooltip.mjs.map +1 -1
- package/lib/components/index.d.ts +1696 -7583
- package/lib/composables/color.mjs +19 -26
- package/lib/composables/color.mjs.map +1 -1
- package/lib/composables/defaults.mjs +1 -1
- package/lib/composables/defaults.mjs.map +1 -1
- package/lib/composables/form.mjs +29 -9
- package/lib/composables/form.mjs.map +1 -1
- package/lib/composables/{forwardRef.mjs → forwardRefs.mjs} +29 -3
- package/lib/composables/forwardRefs.mjs.map +1 -0
- package/lib/composables/index.mjs +3 -2
- package/lib/composables/index.mjs.map +1 -1
- package/lib/composables/layout.mjs +12 -12
- package/lib/composables/layout.mjs.map +1 -1
- package/lib/composables/rtl.mjs +2 -2
- package/lib/composables/rtl.mjs.map +1 -1
- package/lib/composables/size.mjs +18 -14
- package/lib/composables/size.mjs.map +1 -1
- package/lib/composables/stack.mjs +22 -12
- package/lib/composables/stack.mjs.map +1 -1
- package/lib/composables/theme.mjs +9 -6
- package/lib/composables/theme.mjs.map +1 -1
- package/lib/composables/validation.mjs +13 -3
- package/lib/composables/validation.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/index.d.ts +21 -21
- package/lib/styles/generic/_colors.scss +17 -9
- package/lib/styles/main.css +1135 -1371
- package/lib/styles/settings/_utilities.scss +16 -5
- package/lib/styles/utilities/_index.sass +0 -1
- package/lib/util/anchor.mjs +1 -3
- package/lib/util/anchor.mjs.map +1 -1
- package/lib/util/colorUtils.mjs +2 -2
- package/lib/util/colorUtils.mjs.map +1 -1
- package/lib/util/colors.mjs +1 -1
- package/lib/util/colors.mjs.map +1 -1
- package/lib/util/defineComponent.mjs +6 -3
- package/lib/util/defineComponent.mjs.map +1 -1
- package/lib/util/helpers.mjs +4 -1
- package/lib/util/helpers.mjs.map +1 -1
- package/lib/util/injectSelf.mjs +12 -0
- package/lib/util/injectSelf.mjs.map +1 -0
- package/package.json +3 -1
- package/lib/composables/forwardRef.mjs.map +0 -1
- package/lib/styles/utilities/_text.sass +0 -9
package/dist/vuetify.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Vuetify v3.0.0-beta.
|
|
2
|
+
* Vuetify v3.0.0-beta.9
|
|
3
3
|
* Forged by John Leider
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
@@ -351,7 +351,8 @@
|
|
|
351
351
|
clientX: e.clientX,
|
|
352
352
|
clientY: e.clientY
|
|
353
353
|
};
|
|
354
|
-
}
|
|
354
|
+
} // Only allow a single return type
|
|
355
|
+
|
|
355
356
|
function destructComputed(getter) {
|
|
356
357
|
const refs = {};
|
|
357
358
|
const base = vue.computed(getter);
|
|
@@ -369,6 +370,8 @@
|
|
|
369
370
|
});
|
|
370
371
|
return refs;
|
|
371
372
|
}
|
|
373
|
+
/** Array.includes but value can be any type */
|
|
374
|
+
|
|
372
375
|
function includes(arr, val) {
|
|
373
376
|
return arr.includes(val);
|
|
374
377
|
}
|
|
@@ -389,13 +392,11 @@
|
|
|
389
392
|
align: toPhysical(align, isRtl)
|
|
390
393
|
};
|
|
391
394
|
}
|
|
392
|
-
|
|
393
395
|
function toPhysical(str, isRtl) {
|
|
394
396
|
if (str === 'start') return isRtl ? 'right' : 'left';
|
|
395
397
|
if (str === 'end') return isRtl ? 'left' : 'right';
|
|
396
398
|
return str;
|
|
397
399
|
}
|
|
398
|
-
|
|
399
400
|
function flipSide(anchor) {
|
|
400
401
|
return {
|
|
401
402
|
side: {
|
|
@@ -671,7 +672,7 @@
|
|
|
671
672
|
c = c.split('').map(char => char + char).join('');
|
|
672
673
|
}
|
|
673
674
|
|
|
674
|
-
if (c.length !== 6) {
|
|
675
|
+
if (c.length !== 6 && c.length !== 8) {
|
|
675
676
|
consoleWarn(`'${color}' is not a valid rgb color`);
|
|
676
677
|
}
|
|
677
678
|
|
|
@@ -683,7 +684,7 @@
|
|
|
683
684
|
if (rgb < 0) {
|
|
684
685
|
consoleWarn(`Colors cannot be negative: '${color}'`);
|
|
685
686
|
rgb = 0;
|
|
686
|
-
} else if (rgb >
|
|
687
|
+
} else if (rgb > 0xffffffff || isNaN(rgb)) {
|
|
687
688
|
consoleWarn(`'${color}' is not a valid rgb color`);
|
|
688
689
|
rgb = 0xffffff;
|
|
689
690
|
}
|
|
@@ -885,6 +886,53 @@
|
|
|
885
886
|
return (light + 0.05) / (dark + 0.05);
|
|
886
887
|
}
|
|
887
888
|
|
|
889
|
+
// Utilities
|
|
890
|
+
function getCurrentInstance(name, message) {
|
|
891
|
+
const vm = vue.getCurrentInstance();
|
|
892
|
+
|
|
893
|
+
if (!vm) {
|
|
894
|
+
throw new Error(`[Vuetify] ${name} ${message || 'must be called from inside a setup function'}`);
|
|
895
|
+
}
|
|
896
|
+
|
|
897
|
+
return vm;
|
|
898
|
+
}
|
|
899
|
+
function getCurrentInstanceName() {
|
|
900
|
+
var _getCurrentInstance$t;
|
|
901
|
+
|
|
902
|
+
let name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'composables';
|
|
903
|
+
return toKebabCase((_getCurrentInstance$t = getCurrentInstance(name).type) == null ? void 0 : _getCurrentInstance$t.name);
|
|
904
|
+
}
|
|
905
|
+
let _uid = 0;
|
|
906
|
+
|
|
907
|
+
let _map = new WeakMap();
|
|
908
|
+
|
|
909
|
+
function getUid() {
|
|
910
|
+
const vm = getCurrentInstance('getUid');
|
|
911
|
+
if (_map.has(vm)) return _map.get(vm);else {
|
|
912
|
+
const uid = _uid++;
|
|
913
|
+
|
|
914
|
+
_map.set(vm, uid);
|
|
915
|
+
|
|
916
|
+
return uid;
|
|
917
|
+
}
|
|
918
|
+
}
|
|
919
|
+
|
|
920
|
+
getUid.reset = () => {
|
|
921
|
+
_uid = 0;
|
|
922
|
+
_map = new WeakMap();
|
|
923
|
+
};
|
|
924
|
+
|
|
925
|
+
function injectSelf(key) {
|
|
926
|
+
const {
|
|
927
|
+
provides
|
|
928
|
+
} = getCurrentInstance('injectSelf');
|
|
929
|
+
|
|
930
|
+
if (provides && key in provides) {
|
|
931
|
+
// TS doesn't allow symbol as index type
|
|
932
|
+
return provides[key];
|
|
933
|
+
}
|
|
934
|
+
}
|
|
935
|
+
|
|
888
936
|
// Utilities
|
|
889
937
|
|
|
890
938
|
const DefaultsSymbol = Symbol.for('vuetify:defaults');
|
|
@@ -996,7 +1044,9 @@
|
|
|
996
1044
|
if (!val && scope) scope.stop();else if (val && !oldVal) {
|
|
997
1045
|
scope = vue.effectScope();
|
|
998
1046
|
scope.run(() => {
|
|
999
|
-
|
|
1047
|
+
var _injectSelf$value, _injectSelf;
|
|
1048
|
+
|
|
1049
|
+
provideDefaults(mergeDeep((_injectSelf$value = (_injectSelf = injectSelf(DefaultsSymbol)) == null ? void 0 : _injectSelf.value) != null ? _injectSelf$value : {}, val));
|
|
1000
1050
|
});
|
|
1001
1051
|
}
|
|
1002
1052
|
}, {
|
|
@@ -1070,42 +1120,6 @@
|
|
|
1070
1120
|
|
|
1071
1121
|
const acceleratedEasing = 'cubic-bezier(0.4, 0, 1, 1)'; // Leaving
|
|
1072
1122
|
|
|
1073
|
-
// Utilities
|
|
1074
|
-
function getCurrentInstance(name, message) {
|
|
1075
|
-
const vm = vue.getCurrentInstance();
|
|
1076
|
-
|
|
1077
|
-
if (!vm) {
|
|
1078
|
-
throw new Error(`[Vuetify] ${name} ${message || 'must be called from inside a setup function'}`);
|
|
1079
|
-
}
|
|
1080
|
-
|
|
1081
|
-
return vm;
|
|
1082
|
-
}
|
|
1083
|
-
function getCurrentInstanceName() {
|
|
1084
|
-
var _getCurrentInstance$t;
|
|
1085
|
-
|
|
1086
|
-
let name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'composables';
|
|
1087
|
-
return toKebabCase((_getCurrentInstance$t = getCurrentInstance(name).type) == null ? void 0 : _getCurrentInstance$t.name);
|
|
1088
|
-
}
|
|
1089
|
-
let _uid = 0;
|
|
1090
|
-
|
|
1091
|
-
let _map = new WeakMap();
|
|
1092
|
-
|
|
1093
|
-
function getUid() {
|
|
1094
|
-
const vm = getCurrentInstance('getUid');
|
|
1095
|
-
if (_map.has(vm)) return _map.get(vm);else {
|
|
1096
|
-
const uid = _uid++;
|
|
1097
|
-
|
|
1098
|
-
_map.set(vm, uid);
|
|
1099
|
-
|
|
1100
|
-
return uid;
|
|
1101
|
-
}
|
|
1102
|
-
}
|
|
1103
|
-
|
|
1104
|
-
getUid.reset = () => {
|
|
1105
|
-
_uid = 0;
|
|
1106
|
-
_map = new WeakMap();
|
|
1107
|
-
};
|
|
1108
|
-
|
|
1109
1123
|
function getScrollParent(el) {
|
|
1110
1124
|
while (el) {
|
|
1111
1125
|
if (hasScrollbar(el)) return el;
|
|
@@ -1346,11 +1360,10 @@
|
|
|
1346
1360
|
const mainStyles = vue.computed(() => {
|
|
1347
1361
|
const layer = layers.value[layers.value.length - 1].layer;
|
|
1348
1362
|
return {
|
|
1349
|
-
|
|
1350
|
-
|
|
1351
|
-
|
|
1352
|
-
|
|
1353
|
-
paddingBottom: convertToUnit(layer.bottom),
|
|
1363
|
+
'--v-layout-left': convertToUnit(layer.left),
|
|
1364
|
+
'--v-layout-right': convertToUnit(layer.right),
|
|
1365
|
+
'--v-layout-top': convertToUnit(layer.top),
|
|
1366
|
+
'--v-layout-bottom': convertToUnit(layer.bottom),
|
|
1354
1367
|
...(transitionsEnabled.value ? undefined : {
|
|
1355
1368
|
transition: 'none'
|
|
1356
1369
|
})
|
|
@@ -1429,16 +1442,15 @@
|
|
|
1429
1442
|
|
|
1430
1443
|
return { ...styles,
|
|
1431
1444
|
height: isHorizontal ? `calc(100% - ${item.top}px - ${item.bottom}px)` : elementSize.value ? `${elementSize.value}px` : undefined,
|
|
1432
|
-
|
|
1433
|
-
|
|
1434
|
-
|
|
1435
|
-
|
|
1445
|
+
left: isOppositeHorizontal ? undefined : `${item.left}px`,
|
|
1446
|
+
right: isOppositeHorizontal ? `${item.right}px` : undefined,
|
|
1447
|
+
top: position.value !== 'bottom' ? `${item.top}px` : undefined,
|
|
1448
|
+
bottom: position.value !== 'top' ? `${item.bottom}px` : undefined,
|
|
1436
1449
|
width: !isHorizontal ? `calc(100% - ${item.left}px - ${item.right}px)` : elementSize.value ? `${elementSize.value}px` : undefined
|
|
1437
1450
|
};
|
|
1438
1451
|
});
|
|
1439
1452
|
const layoutItemScrimStyles = vue.computed(() => ({
|
|
1440
|
-
zIndex: zIndex.value - 1
|
|
1441
|
-
position: rootZIndex.value === ROOT_ZINDEX ? 'fixed' : 'absolute'
|
|
1453
|
+
zIndex: zIndex.value - 1
|
|
1442
1454
|
}));
|
|
1443
1455
|
return {
|
|
1444
1456
|
layoutItemStyles,
|
|
@@ -1464,7 +1476,9 @@
|
|
|
1464
1476
|
'v-layout--full-height': props.fullHeight
|
|
1465
1477
|
}]);
|
|
1466
1478
|
const layoutStyles = vue.computed(() => ({
|
|
1467
|
-
zIndex: rootZIndex.value
|
|
1479
|
+
zIndex: rootZIndex.value,
|
|
1480
|
+
position: parentLayout ? 'relative' : undefined,
|
|
1481
|
+
overflow: parentLayout ? 'hidden' : undefined
|
|
1468
1482
|
}));
|
|
1469
1483
|
return {
|
|
1470
1484
|
layoutClasses,
|
|
@@ -1695,7 +1709,7 @@
|
|
|
1695
1709
|
}
|
|
1696
1710
|
|
|
1697
1711
|
for (const color of Object.keys(theme.colors)) {
|
|
1698
|
-
if (
|
|
1712
|
+
if (/^on-[a-z]/.test(color) || theme.colors[`on-${color}`]) continue;
|
|
1699
1713
|
const onColor = `on-${color}`;
|
|
1700
1714
|
const colorVal = colorToInt(theme.colors[color]);
|
|
1701
1715
|
const blackContrast = Math.abs(APCAcontrast(0, colorVal));
|
|
@@ -1736,18 +1750,21 @@
|
|
|
1736
1750
|
})]);
|
|
1737
1751
|
}
|
|
1738
1752
|
|
|
1753
|
+
const bgLines = [];
|
|
1754
|
+
const fgLines = [];
|
|
1739
1755
|
const colors = new Set(Object.values(computedThemes.value).flatMap(theme => Object.keys(theme.colors)));
|
|
1740
1756
|
|
|
1741
1757
|
for (const key of colors) {
|
|
1742
|
-
if (
|
|
1743
|
-
createCssClass(
|
|
1758
|
+
if (/^on-[a-z]/.test(key)) {
|
|
1759
|
+
createCssClass(fgLines, `.${key}`, [`color: rgb(var(--v-theme-${key})) !important`]);
|
|
1744
1760
|
} else {
|
|
1745
|
-
createCssClass(
|
|
1746
|
-
createCssClass(
|
|
1747
|
-
createCssClass(
|
|
1761
|
+
createCssClass(bgLines, `.bg-${key}`, [`--v-theme-overlay-multiplier: var(--v-theme-${key}-overlay-multiplier)`, `background: rgb(var(--v-theme-${key})) !important`, `color: rgb(var(--v-theme-on-${key})) !important`]);
|
|
1762
|
+
createCssClass(fgLines, `.text-${key}`, [`color: rgb(var(--v-theme-${key})) !important`]);
|
|
1763
|
+
createCssClass(fgLines, `.border-${key}`, [`--v-border-color: var(--v-theme-${key})`]);
|
|
1748
1764
|
}
|
|
1749
1765
|
}
|
|
1750
1766
|
|
|
1767
|
+
lines.push(...bgLines, ...fgLines);
|
|
1751
1768
|
return lines.map((str, i) => i === 0 ? str : ` ${str}`).join('');
|
|
1752
1769
|
});
|
|
1753
1770
|
|
|
@@ -1967,13 +1984,13 @@
|
|
|
1967
1984
|
|
|
1968
1985
|
const RtlSymbol = Symbol.for('vuetify:rtl');
|
|
1969
1986
|
function createRtl(localeScope, options) {
|
|
1970
|
-
var _options$rtl
|
|
1987
|
+
var _options$rtl;
|
|
1971
1988
|
|
|
1972
1989
|
return createRtlScope({
|
|
1973
1990
|
rtl: { ...rtl,
|
|
1974
1991
|
...((_options$rtl = options == null ? void 0 : options.rtl) != null ? _options$rtl : {})
|
|
1975
1992
|
},
|
|
1976
|
-
isRtl: vue.ref(
|
|
1993
|
+
isRtl: vue.ref(false),
|
|
1977
1994
|
rtlClasses: vue.ref('')
|
|
1978
1995
|
}, localeScope);
|
|
1979
1996
|
}
|
|
@@ -2755,6 +2772,7 @@
|
|
|
2755
2772
|
class: ['v-img__img', containClasses.value],
|
|
2756
2773
|
src: normalisedSrc.value.src,
|
|
2757
2774
|
srcset: normalisedSrc.value.srcset,
|
|
2775
|
+
alt: '',
|
|
2758
2776
|
sizes: props.sizes,
|
|
2759
2777
|
ref: image,
|
|
2760
2778
|
onLoad,
|
|
@@ -2987,39 +3005,32 @@
|
|
|
2987
3005
|
|
|
2988
3006
|
// Composables
|
|
2989
3007
|
function useColor(colors) {
|
|
2990
|
-
|
|
2991
|
-
const textIsCssColor = vue.computed(() => isCssColor(colors.value.text));
|
|
2992
|
-
const colorClasses = vue.computed(() => {
|
|
3008
|
+
return destructComputed(() => {
|
|
2993
3009
|
const classes = [];
|
|
2994
|
-
|
|
2995
|
-
if (colors.value.background && !backgroundIsCssColor.value) {
|
|
2996
|
-
classes.push(`bg-${colors.value.background}`);
|
|
2997
|
-
}
|
|
2998
|
-
|
|
2999
|
-
if (colors.value.text && !textIsCssColor.value) {
|
|
3000
|
-
classes.push(`text-${colors.value.text}`);
|
|
3001
|
-
}
|
|
3002
|
-
|
|
3003
|
-
return classes;
|
|
3004
|
-
});
|
|
3005
|
-
const colorStyles = vue.computed(() => {
|
|
3006
3010
|
const styles = {};
|
|
3007
3011
|
|
|
3008
|
-
if (colors.value.background
|
|
3009
|
-
|
|
3012
|
+
if (colors.value.background) {
|
|
3013
|
+
if (isCssColor(colors.value.background)) {
|
|
3014
|
+
styles.backgroundColor = colors.value.background;
|
|
3015
|
+
} else {
|
|
3016
|
+
classes.push(`bg-${colors.value.background}`);
|
|
3017
|
+
}
|
|
3010
3018
|
}
|
|
3011
3019
|
|
|
3012
|
-
if (colors.value.text
|
|
3013
|
-
|
|
3014
|
-
|
|
3020
|
+
if (colors.value.text) {
|
|
3021
|
+
if (isCssColor(colors.value.text)) {
|
|
3022
|
+
styles.color = colors.value.text;
|
|
3023
|
+
styles.caretColor = colors.value.text;
|
|
3024
|
+
} else {
|
|
3025
|
+
classes.push(`text-${colors.value.text}`);
|
|
3026
|
+
}
|
|
3015
3027
|
}
|
|
3016
3028
|
|
|
3017
|
-
return
|
|
3029
|
+
return {
|
|
3030
|
+
colorClasses: classes,
|
|
3031
|
+
colorStyles: styles
|
|
3032
|
+
};
|
|
3018
3033
|
});
|
|
3019
|
-
return {
|
|
3020
|
-
colorClasses,
|
|
3021
|
-
colorStyles
|
|
3022
|
-
};
|
|
3023
3034
|
}
|
|
3024
3035
|
function useTextColor(props, name) {
|
|
3025
3036
|
const colors = vue.computed(() => ({
|
|
@@ -3048,52 +3059,6 @@
|
|
|
3048
3059
|
};
|
|
3049
3060
|
}
|
|
3050
3061
|
|
|
3051
|
-
function useForwardRef(target) {
|
|
3052
|
-
for (var _len = arguments.length, refs = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
|
3053
|
-
refs[_key - 1] = arguments[_key];
|
|
3054
|
-
}
|
|
3055
|
-
|
|
3056
|
-
return new Proxy(target, {
|
|
3057
|
-
get(target, key) {
|
|
3058
|
-
if (Reflect.has(target, key)) {
|
|
3059
|
-
return Reflect.get(target, key);
|
|
3060
|
-
}
|
|
3061
|
-
|
|
3062
|
-
for (const ref of refs) {
|
|
3063
|
-
if (ref.value && Reflect.has(ref.value, key)) {
|
|
3064
|
-
const val = Reflect.get(ref.value, key);
|
|
3065
|
-
return typeof val === 'function' ? val.bind(ref.value) : val;
|
|
3066
|
-
}
|
|
3067
|
-
}
|
|
3068
|
-
},
|
|
3069
|
-
|
|
3070
|
-
getOwnPropertyDescriptor(target, key) {
|
|
3071
|
-
const descriptor = Reflect.getOwnPropertyDescriptor(target, key);
|
|
3072
|
-
if (descriptor) return descriptor; // Check each ref's own properties
|
|
3073
|
-
|
|
3074
|
-
for (const ref of refs) {
|
|
3075
|
-
if (!ref.value) continue;
|
|
3076
|
-
const descriptor = Reflect.getOwnPropertyDescriptor(ref.value, key);
|
|
3077
|
-
if (descriptor) return descriptor;
|
|
3078
|
-
} // Recursive search up each ref's prototype
|
|
3079
|
-
|
|
3080
|
-
|
|
3081
|
-
for (const ref of refs) {
|
|
3082
|
-
let obj = ref.value && Object.getPrototypeOf(ref.value);
|
|
3083
|
-
|
|
3084
|
-
while (obj) {
|
|
3085
|
-
const descriptor = Reflect.getOwnPropertyDescriptor(obj, key);
|
|
3086
|
-
if (descriptor) return descriptor;
|
|
3087
|
-
obj = Object.getPrototypeOf(obj);
|
|
3088
|
-
}
|
|
3089
|
-
}
|
|
3090
|
-
|
|
3091
|
-
return undefined;
|
|
3092
|
-
}
|
|
3093
|
-
|
|
3094
|
-
});
|
|
3095
|
-
}
|
|
3096
|
-
|
|
3097
3062
|
const allowedDensities$1 = [null, 'prominent', 'default', 'comfortable', 'compact'];
|
|
3098
3063
|
const makeVToolbarProps = propsFactory({
|
|
3099
3064
|
absolute: Boolean,
|
|
@@ -3212,10 +3177,10 @@
|
|
|
3212
3177
|
})]
|
|
3213
3178
|
});
|
|
3214
3179
|
});
|
|
3215
|
-
return
|
|
3180
|
+
return {
|
|
3216
3181
|
contentHeight,
|
|
3217
3182
|
extensionHeight
|
|
3218
|
-
}
|
|
3183
|
+
};
|
|
3219
3184
|
}
|
|
3220
3185
|
|
|
3221
3186
|
});
|
|
@@ -3906,19 +3871,24 @@
|
|
|
3906
3871
|
}, 'size');
|
|
3907
3872
|
function useSize(props) {
|
|
3908
3873
|
let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();
|
|
3909
|
-
|
|
3910
|
-
|
|
3911
|
-
|
|
3912
|
-
|
|
3913
|
-
|
|
3914
|
-
|
|
3915
|
-
|
|
3916
|
-
|
|
3874
|
+
return destructComputed(() => {
|
|
3875
|
+
let sizeClasses;
|
|
3876
|
+
let sizeStyles;
|
|
3877
|
+
|
|
3878
|
+
if (includes(predefinedSizes, props.size)) {
|
|
3879
|
+
sizeClasses = `${name}--size-${props.size}`;
|
|
3880
|
+
} else if (props.size) {
|
|
3881
|
+
sizeStyles = {
|
|
3882
|
+
width: convertToUnit(props.size),
|
|
3883
|
+
height: convertToUnit(props.size)
|
|
3884
|
+
};
|
|
3885
|
+
}
|
|
3886
|
+
|
|
3887
|
+
return {
|
|
3888
|
+
sizeClasses,
|
|
3889
|
+
sizeStyles
|
|
3890
|
+
};
|
|
3917
3891
|
});
|
|
3918
|
-
return {
|
|
3919
|
-
sizeClasses,
|
|
3920
|
-
sizeStyles
|
|
3921
|
-
};
|
|
3922
3892
|
}
|
|
3923
3893
|
|
|
3924
3894
|
const makeVIconProps = propsFactory({
|
|
@@ -5087,6 +5057,141 @@
|
|
|
5087
5057
|
// Utilities
|
|
5088
5058
|
const VAlertTitle = createSimpleFunctional('v-alert-title');
|
|
5089
5059
|
|
|
5060
|
+
// Locales
|
|
5061
|
+
|
|
5062
|
+
const LocaleAdapterSymbol = Symbol.for('vuetify:locale-adapter');
|
|
5063
|
+
const VuetifyLocaleSymbol = Symbol.for('vuetify:locale');
|
|
5064
|
+
function provideLocale(props) {
|
|
5065
|
+
const adapter = vue.inject(LocaleAdapterSymbol);
|
|
5066
|
+
if (!adapter) throw new Error('[Vuetify] Could not find injected locale adapter');
|
|
5067
|
+
return adapter.createScope(props);
|
|
5068
|
+
}
|
|
5069
|
+
function useLocale() {
|
|
5070
|
+
const adapter = vue.inject(LocaleAdapterSymbol);
|
|
5071
|
+
if (!adapter) throw new Error('[Vuetify] Could not find injected locale adapter');
|
|
5072
|
+
return adapter.getScope();
|
|
5073
|
+
}
|
|
5074
|
+
|
|
5075
|
+
function isLocaleAdapter(x) {
|
|
5076
|
+
return !!x && x.hasOwnProperty('getScope') && x.hasOwnProperty('createScope') && x.hasOwnProperty('createRoot');
|
|
5077
|
+
}
|
|
5078
|
+
|
|
5079
|
+
function createLocale(app, options) {
|
|
5080
|
+
const adapter = isLocaleAdapter(options) ? options : createDefaultLocaleAdapter(options);
|
|
5081
|
+
const instance = adapter.createRoot(app);
|
|
5082
|
+
app == null ? void 0 : app.provide(RtlSymbol, createRtl(instance, options));
|
|
5083
|
+
return adapter;
|
|
5084
|
+
}
|
|
5085
|
+
const LANG_PREFIX = '$vuetify.';
|
|
5086
|
+
|
|
5087
|
+
const replace = (str, params) => {
|
|
5088
|
+
return str.replace(/\{(\d+)\}/g, (match, index) => {
|
|
5089
|
+
/* istanbul ignore next */
|
|
5090
|
+
return String(params[+index]);
|
|
5091
|
+
});
|
|
5092
|
+
};
|
|
5093
|
+
|
|
5094
|
+
const createTranslateFunction = (current, fallback, messages) => {
|
|
5095
|
+
return function (key) {
|
|
5096
|
+
for (var _len = arguments.length, params = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
|
5097
|
+
params[_key - 1] = arguments[_key];
|
|
5098
|
+
}
|
|
5099
|
+
|
|
5100
|
+
if (!key.startsWith(LANG_PREFIX)) {
|
|
5101
|
+
return replace(key, params);
|
|
5102
|
+
}
|
|
5103
|
+
|
|
5104
|
+
const shortKey = key.replace(LANG_PREFIX, '');
|
|
5105
|
+
const currentLocale = current.value && messages.value[current.value];
|
|
5106
|
+
const fallbackLocale = fallback.value && messages.value[fallback.value];
|
|
5107
|
+
let str = getObjectValueByPath(currentLocale, shortKey, null);
|
|
5108
|
+
|
|
5109
|
+
if (!str) {
|
|
5110
|
+
consoleWarn(`Translation key "${key}" not found in "${current.value}", trying fallback locale`);
|
|
5111
|
+
str = getObjectValueByPath(fallbackLocale, shortKey, null);
|
|
5112
|
+
}
|
|
5113
|
+
|
|
5114
|
+
if (!str) {
|
|
5115
|
+
consoleError(`Translation key "${key}" not found in fallback`);
|
|
5116
|
+
str = key;
|
|
5117
|
+
}
|
|
5118
|
+
|
|
5119
|
+
if (typeof str !== 'string') {
|
|
5120
|
+
consoleError(`Translation key "${key}" has a non-string value`);
|
|
5121
|
+
str = key;
|
|
5122
|
+
}
|
|
5123
|
+
|
|
5124
|
+
return replace(str, params);
|
|
5125
|
+
};
|
|
5126
|
+
};
|
|
5127
|
+
|
|
5128
|
+
function createNumberFunction(current, fallback) {
|
|
5129
|
+
return (value, options) => {
|
|
5130
|
+
const numberFormat = new Intl.NumberFormat([current.value, fallback.value], options);
|
|
5131
|
+
return numberFormat.format(value);
|
|
5132
|
+
};
|
|
5133
|
+
}
|
|
5134
|
+
|
|
5135
|
+
function createDefaultLocaleAdapter(options) {
|
|
5136
|
+
const createScope = options => {
|
|
5137
|
+
const current = vue.ref(options.current);
|
|
5138
|
+
const fallback = vue.ref(options.fallback);
|
|
5139
|
+
const messages = vue.ref(options.messages);
|
|
5140
|
+
return {
|
|
5141
|
+
current,
|
|
5142
|
+
fallback,
|
|
5143
|
+
messages,
|
|
5144
|
+
t: createTranslateFunction(current, fallback, messages),
|
|
5145
|
+
n: createNumberFunction(current, fallback)
|
|
5146
|
+
};
|
|
5147
|
+
};
|
|
5148
|
+
|
|
5149
|
+
return {
|
|
5150
|
+
createRoot: app => {
|
|
5151
|
+
var _options$defaultLocal, _options$fallbackLoca, _options$messages;
|
|
5152
|
+
|
|
5153
|
+
const rootScope = createScope({
|
|
5154
|
+
current: (_options$defaultLocal = options == null ? void 0 : options.defaultLocale) != null ? _options$defaultLocal : 'en',
|
|
5155
|
+
fallback: (_options$fallbackLoca = options == null ? void 0 : options.fallbackLocale) != null ? _options$fallbackLoca : 'en',
|
|
5156
|
+
messages: (_options$messages = options == null ? void 0 : options.messages) != null ? _options$messages : {
|
|
5157
|
+
en
|
|
5158
|
+
}
|
|
5159
|
+
});
|
|
5160
|
+
if (!app) throw new Error('[Vuetify] Could not find default app instance');
|
|
5161
|
+
app.provide(VuetifyLocaleSymbol, rootScope);
|
|
5162
|
+
return rootScope;
|
|
5163
|
+
},
|
|
5164
|
+
getScope: () => {
|
|
5165
|
+
const currentScope = vue.inject(VuetifyLocaleSymbol);
|
|
5166
|
+
if (!currentScope) throw new Error('[Vuetify] Could not find injected locale instance');
|
|
5167
|
+
return currentScope;
|
|
5168
|
+
},
|
|
5169
|
+
createScope: options => {
|
|
5170
|
+
const currentScope = vue.inject(VuetifyLocaleSymbol);
|
|
5171
|
+
if (!currentScope) throw new Error('[Vuetify] Could not find injected locale instance');
|
|
5172
|
+
const newScope = createScope({
|
|
5173
|
+
current: vue.computed(() => {
|
|
5174
|
+
var _options$locale;
|
|
5175
|
+
|
|
5176
|
+
return (_options$locale = options == null ? void 0 : options.locale) != null ? _options$locale : currentScope.current.value;
|
|
5177
|
+
}),
|
|
5178
|
+
fallback: vue.computed(() => {
|
|
5179
|
+
var _options$locale2;
|
|
5180
|
+
|
|
5181
|
+
return (_options$locale2 = options == null ? void 0 : options.locale) != null ? _options$locale2 : currentScope.fallback.value;
|
|
5182
|
+
}),
|
|
5183
|
+
messages: vue.computed(() => {
|
|
5184
|
+
var _options$messages2;
|
|
5185
|
+
|
|
5186
|
+
return (_options$messages2 = options == null ? void 0 : options.messages) != null ? _options$messages2 : currentScope.messages.value;
|
|
5187
|
+
})
|
|
5188
|
+
});
|
|
5189
|
+
vue.provide(VuetifyLocaleSymbol, newScope);
|
|
5190
|
+
return newScope;
|
|
5191
|
+
}
|
|
5192
|
+
};
|
|
5193
|
+
}
|
|
5194
|
+
|
|
5090
5195
|
const allowedTypes = ['success', 'info', 'warning', 'error'];
|
|
5091
5196
|
const VAlert = defineComponent({
|
|
5092
5197
|
name: 'VAlert',
|
|
@@ -5188,13 +5293,19 @@
|
|
|
5188
5293
|
textColorClasses,
|
|
5189
5294
|
textColorStyles
|
|
5190
5295
|
} = useTextColor(vue.toRef(props, 'borderColor'));
|
|
5296
|
+
const {
|
|
5297
|
+
t
|
|
5298
|
+
} = useLocale();
|
|
5299
|
+
const closeProps = vue.computed(() => ({
|
|
5300
|
+
'aria-label': t(props.closeLabel),
|
|
5191
5301
|
|
|
5192
|
-
|
|
5193
|
-
|
|
5194
|
-
|
|
5302
|
+
onClick(e) {
|
|
5303
|
+
isActive.value = false;
|
|
5304
|
+
}
|
|
5195
5305
|
|
|
5306
|
+
}));
|
|
5196
5307
|
return () => {
|
|
5197
|
-
var _slots$default;
|
|
5308
|
+
var _slots$default, _slots$close, _slots$close2;
|
|
5198
5309
|
|
|
5199
5310
|
const hasPrepend = !!(slots.prepend || icon.value);
|
|
5200
5311
|
const hasTitle = !!(slots.title || props.title);
|
|
@@ -5220,7 +5331,7 @@
|
|
|
5220
5331
|
VIcon: {
|
|
5221
5332
|
density: props.density,
|
|
5222
5333
|
icon: icon.value,
|
|
5223
|
-
size: props.prominent ? 44 :
|
|
5334
|
+
size: props.prominent ? 44 : 28
|
|
5224
5335
|
}
|
|
5225
5336
|
}
|
|
5226
5337
|
}, {
|
|
@@ -5239,16 +5350,18 @@
|
|
|
5239
5350
|
}, [slots.append()]), hasClose && vue.createVNode(VDefaultsProvider, {
|
|
5240
5351
|
"key": "close",
|
|
5241
5352
|
"defaults": {
|
|
5242
|
-
|
|
5353
|
+
VBtn: {
|
|
5243
5354
|
icon: props.closeIcon,
|
|
5244
|
-
size: 'small'
|
|
5355
|
+
size: 'x-small',
|
|
5356
|
+
variant: 'text'
|
|
5245
5357
|
}
|
|
5246
5358
|
}
|
|
5247
5359
|
}, {
|
|
5248
5360
|
default: () => [vue.createVNode("div", {
|
|
5249
|
-
"class": "v-alert__close"
|
|
5250
|
-
|
|
5251
|
-
|
|
5361
|
+
"class": "v-alert__close"
|
|
5362
|
+
}, [(_slots$close = (_slots$close2 = slots.close) == null ? void 0 : _slots$close2.call(slots, {
|
|
5363
|
+
props: closeProps.value
|
|
5364
|
+
})) != null ? _slots$close : vue.createVNode(VBtn, closeProps.value, null)])]
|
|
5252
5365
|
})]
|
|
5253
5366
|
});
|
|
5254
5367
|
};
|
|
@@ -5362,20 +5475,34 @@
|
|
|
5362
5475
|
}
|
|
5363
5476
|
|
|
5364
5477
|
vue.watch(items, () => {
|
|
5365
|
-
let valid =
|
|
5478
|
+
let valid = 0;
|
|
5479
|
+
let invalid = 0;
|
|
5480
|
+
const results = [];
|
|
5366
5481
|
|
|
5367
|
-
|
|
5368
|
-
|
|
5369
|
-
|
|
5370
|
-
|
|
5482
|
+
for (const item of items.value) {
|
|
5483
|
+
if (item.isValid === false) {
|
|
5484
|
+
invalid++;
|
|
5485
|
+
results.push({
|
|
5486
|
+
id: item.id,
|
|
5487
|
+
errorMessages: item.errorMessages
|
|
5488
|
+
});
|
|
5489
|
+
} else if (item.isValid === true) valid++;
|
|
5371
5490
|
}
|
|
5372
5491
|
|
|
5373
|
-
|
|
5492
|
+
errors.value = results;
|
|
5493
|
+
model.value = invalid > 0 ? false : valid === items.value.length ? true : null;
|
|
5374
5494
|
}, {
|
|
5375
5495
|
deep: true
|
|
5376
5496
|
});
|
|
5377
5497
|
vue.provide(FormKey, {
|
|
5378
|
-
register:
|
|
5498
|
+
register: _ref => {
|
|
5499
|
+
let {
|
|
5500
|
+
id,
|
|
5501
|
+
validate,
|
|
5502
|
+
reset,
|
|
5503
|
+
resetValidation
|
|
5504
|
+
} = _ref;
|
|
5505
|
+
|
|
5379
5506
|
if (items.value.some(item => item.id === id)) {
|
|
5380
5507
|
consoleWarn(`Duplicate input name "${id}"`);
|
|
5381
5508
|
}
|
|
@@ -5385,8 +5512,8 @@
|
|
|
5385
5512
|
validate,
|
|
5386
5513
|
reset,
|
|
5387
5514
|
resetValidation,
|
|
5388
|
-
isValid:
|
|
5389
|
-
|
|
5515
|
+
isValid: null,
|
|
5516
|
+
errorMessages: []
|
|
5390
5517
|
});
|
|
5391
5518
|
},
|
|
5392
5519
|
unregister: id => {
|
|
@@ -5394,6 +5521,12 @@
|
|
|
5394
5521
|
return item.id !== id;
|
|
5395
5522
|
});
|
|
5396
5523
|
},
|
|
5524
|
+
update: (id, isValid, errorMessages) => {
|
|
5525
|
+
const found = items.value.find(item => item.id === id);
|
|
5526
|
+
if (!found) return;
|
|
5527
|
+
found.isValid = isValid;
|
|
5528
|
+
found.errorMessages = errorMessages;
|
|
5529
|
+
},
|
|
5397
5530
|
isDisabled,
|
|
5398
5531
|
isReadonly,
|
|
5399
5532
|
isValidating,
|
|
@@ -5474,14 +5607,24 @@
|
|
|
5474
5607
|
return (_props$name = props.name) != null ? _props$name : vue.unref(id);
|
|
5475
5608
|
});
|
|
5476
5609
|
vue.onBeforeMount(() => {
|
|
5477
|
-
form == null ? void 0 : form.register(
|
|
5610
|
+
form == null ? void 0 : form.register({
|
|
5611
|
+
id: uid.value,
|
|
5612
|
+
validate,
|
|
5613
|
+
reset,
|
|
5614
|
+
resetValidation
|
|
5615
|
+
});
|
|
5478
5616
|
});
|
|
5479
5617
|
vue.onBeforeUnmount(() => {
|
|
5480
5618
|
form == null ? void 0 : form.unregister(uid.value);
|
|
5481
|
-
});
|
|
5619
|
+
}); // Set initial valid state, for inputs that might not have rules
|
|
5620
|
+
|
|
5621
|
+
vue.onMounted(() => form == null ? void 0 : form.update(uid.value, isValid.value, errorMessages.value));
|
|
5482
5622
|
vue.watch(validationModel, () => {
|
|
5483
5623
|
if (validationModel.value != null) validate();
|
|
5484
5624
|
});
|
|
5625
|
+
vue.watch(isValid, () => {
|
|
5626
|
+
form == null ? void 0 : form.update(uid.value, isValid.value, errorMessages.value);
|
|
5627
|
+
});
|
|
5485
5628
|
|
|
5486
5629
|
function reset() {
|
|
5487
5630
|
resetValidation();
|
|
@@ -5850,6 +5993,10 @@
|
|
|
5850
5993
|
isFocusVisible.value = false;
|
|
5851
5994
|
}
|
|
5852
5995
|
|
|
5996
|
+
function onInput(e) {
|
|
5997
|
+
model.value = e.target.checked;
|
|
5998
|
+
}
|
|
5999
|
+
|
|
5853
6000
|
useRender(() => {
|
|
5854
6001
|
var _group$type$value, _slots$default, _group$name$value, _slots$input;
|
|
5855
6002
|
|
|
@@ -5878,19 +6025,20 @@
|
|
|
5878
6025
|
}, [icon.value && vue.createVNode(VIcon, {
|
|
5879
6026
|
"key": "icon",
|
|
5880
6027
|
"icon": icon.value
|
|
5881
|
-
}, null), vue.
|
|
5882
|
-
"onUpdate:modelValue": $event => model.value = $event,
|
|
6028
|
+
}, null), vue.createVNode("input", vue.mergeProps({
|
|
5883
6029
|
"ref": input,
|
|
6030
|
+
"checked": model.value,
|
|
5884
6031
|
"disabled": props.disabled,
|
|
5885
6032
|
"id": id.value,
|
|
5886
6033
|
"onBlur": onBlur,
|
|
5887
6034
|
"onFocus": onFocus,
|
|
6035
|
+
"onInput": onInput,
|
|
5888
6036
|
"aria-readonly": props.readonly,
|
|
5889
6037
|
"type": type,
|
|
5890
6038
|
"value": trueValue.value,
|
|
5891
6039
|
"name": (_group$name$value = group == null ? void 0 : group.name.value) != null ? _group$name$value : props.name,
|
|
5892
6040
|
"aria-checked": type === 'checkbox' ? model.value : undefined
|
|
5893
|
-
}, inputAttrs), null),
|
|
6041
|
+
}, inputAttrs), null), (_slots$input = slots.input) == null ? void 0 : _slots$input.call(slots, {
|
|
5894
6042
|
model,
|
|
5895
6043
|
textColorClasses,
|
|
5896
6044
|
props: {
|
|
@@ -6995,20 +7143,26 @@
|
|
|
6995
7143
|
Ripple
|
|
6996
7144
|
},
|
|
6997
7145
|
props: {
|
|
6998
|
-
active:
|
|
6999
|
-
|
|
7146
|
+
active: {
|
|
7147
|
+
type: Boolean,
|
|
7148
|
+
default: undefined
|
|
7149
|
+
},
|
|
7000
7150
|
activeClass: String,
|
|
7151
|
+
activeColor: String,
|
|
7001
7152
|
appendAvatar: String,
|
|
7002
7153
|
appendIcon: IconValue,
|
|
7003
7154
|
disabled: Boolean,
|
|
7004
7155
|
lines: String,
|
|
7156
|
+
link: {
|
|
7157
|
+
type: Boolean,
|
|
7158
|
+
default: undefined
|
|
7159
|
+
},
|
|
7005
7160
|
nav: Boolean,
|
|
7006
7161
|
prependAvatar: String,
|
|
7007
7162
|
prependIcon: IconValue,
|
|
7008
7163
|
subtitle: [String, Number, Boolean],
|
|
7009
7164
|
title: [String, Number, Boolean],
|
|
7010
7165
|
value: null,
|
|
7011
|
-
link: Boolean,
|
|
7012
7166
|
...makeBorderProps(),
|
|
7013
7167
|
...makeDensityProps(),
|
|
7014
7168
|
...makeDimensionProps(),
|
|
@@ -7045,8 +7199,10 @@
|
|
|
7045
7199
|
const isActive = vue.computed(() => {
|
|
7046
7200
|
var _link$isExactActive;
|
|
7047
7201
|
|
|
7048
|
-
return props.active || ((_link$isExactActive = link.isExactActive) == null ? void 0 : _link$isExactActive.value) || isSelected.value;
|
|
7202
|
+
return props.active !== false && (props.active || ((_link$isExactActive = link.isExactActive) == null ? void 0 : _link$isExactActive.value) || isSelected.value);
|
|
7049
7203
|
});
|
|
7204
|
+
const isLink = vue.computed(() => props.link !== false && link.isLink.value);
|
|
7205
|
+
const isClickable = vue.computed(() => !props.disabled && props.link !== false && (props.link || link.isClickable.value || props.value != null && !!list));
|
|
7050
7206
|
const roundedProps = vue.computed(() => props.rounded || props.nav);
|
|
7051
7207
|
const variantProps = vue.computed(() => {
|
|
7052
7208
|
var _props$activeColor;
|
|
@@ -7100,27 +7256,26 @@
|
|
|
7100
7256
|
useRender(() => {
|
|
7101
7257
|
var _slots$prepend, _slots$title, _slots$title2, _slots$subtitle, _slots$subtitle2, _slots$default, _slots$append;
|
|
7102
7258
|
|
|
7103
|
-
const Tag =
|
|
7259
|
+
const Tag = isLink.value ? 'a' : props.tag;
|
|
7104
7260
|
const hasColor = !list || isSelected.value || isActive.value;
|
|
7105
7261
|
const hasTitle = slots.title || props.title;
|
|
7106
7262
|
const hasSubtitle = slots.subtitle || props.subtitle;
|
|
7107
7263
|
const hasAppend = !!(slots.append || props.appendAvatar || props.appendIcon);
|
|
7108
7264
|
const hasPrepend = !!(slots.prepend || props.prependAvatar || props.prependIcon);
|
|
7109
|
-
const isClickable = !props.disabled && (props.link || link.isClickable.value || props.value != null && !!list);
|
|
7110
7265
|
list == null ? void 0 : list.updateHasPrepend(hasPrepend);
|
|
7111
7266
|
return vue.withDirectives(vue.createVNode(Tag, {
|
|
7112
7267
|
"class": ['v-list-item', {
|
|
7113
7268
|
'v-list-item--active': isActive.value,
|
|
7114
7269
|
'v-list-item--disabled': props.disabled,
|
|
7115
|
-
'v-list-item--link': isClickable,
|
|
7270
|
+
'v-list-item--link': isClickable.value,
|
|
7116
7271
|
'v-list-item--nav': props.nav,
|
|
7117
7272
|
'v-list-item--prepend': !hasPrepend && (list == null ? void 0 : list.hasPrepend.value),
|
|
7118
7273
|
[`${props.activeClass}`]: isActive.value
|
|
7119
7274
|
}, themeClasses.value, borderClasses.value, hasColor ? colorClasses.value : undefined, densityClasses.value, elevationClasses.value, lineClasses.value, roundedClasses.value, variantClasses.value],
|
|
7120
7275
|
"style": [hasColor ? colorStyles.value : undefined, dimensionStyles.value],
|
|
7121
7276
|
"href": link.href.value,
|
|
7122
|
-
"tabindex": isClickable ? 0 : undefined,
|
|
7123
|
-
"onClick": isClickable && (e => {
|
|
7277
|
+
"tabindex": isClickable.value ? 0 : undefined,
|
|
7278
|
+
"onClick": isClickable.value && (e => {
|
|
7124
7279
|
var _link$navigate;
|
|
7125
7280
|
|
|
7126
7281
|
if (isGroupActivator) return;
|
|
@@ -7128,7 +7283,7 @@
|
|
|
7128
7283
|
props.value != null && select(!isSelected.value, e);
|
|
7129
7284
|
})
|
|
7130
7285
|
}, {
|
|
7131
|
-
default: () => [genOverlays(isClickable || isActive.value, 'v-list-item'), hasPrepend && vue.createVNode(VDefaultsProvider, {
|
|
7286
|
+
default: () => [genOverlays(isClickable.value || isActive.value, 'v-list-item'), hasPrepend && vue.createVNode(VDefaultsProvider, {
|
|
7132
7287
|
"key": "prepend",
|
|
7133
7288
|
"defaults": {
|
|
7134
7289
|
VAvatar: {
|
|
@@ -7189,7 +7344,7 @@
|
|
|
7189
7344
|
"key": "append-avatar"
|
|
7190
7345
|
}, null)])]
|
|
7191
7346
|
})]
|
|
7192
|
-
}), [[vue.resolveDirective("ripple"), isClickable]]);
|
|
7347
|
+
}), [[vue.resolveDirective("ripple"), isClickable.value]]);
|
|
7193
7348
|
});
|
|
7194
7349
|
return {};
|
|
7195
7350
|
}
|
|
@@ -7258,8 +7413,25 @@
|
|
|
7258
7413
|
type,
|
|
7259
7414
|
raw: item
|
|
7260
7415
|
} = _ref2;
|
|
7261
|
-
|
|
7262
|
-
if (type === '
|
|
7416
|
+
|
|
7417
|
+
if (type === 'divider') {
|
|
7418
|
+
var _slots$divider, _slots$divider2;
|
|
7419
|
+
|
|
7420
|
+
return (_slots$divider = (_slots$divider2 = slots.divider) == null ? void 0 : _slots$divider2.call(slots, {
|
|
7421
|
+
props: itemProps
|
|
7422
|
+
})) != null ? _slots$divider : vue.createVNode(VDivider, itemProps, null);
|
|
7423
|
+
}
|
|
7424
|
+
|
|
7425
|
+
if (type === 'subheader') {
|
|
7426
|
+
var _slots$subheader, _slots$subheader2;
|
|
7427
|
+
|
|
7428
|
+
return (_slots$subheader = (_slots$subheader2 = slots.subheader) == null ? void 0 : _slots$subheader2.call(slots, {
|
|
7429
|
+
props: itemProps
|
|
7430
|
+
})) != null ? _slots$subheader : vue.createVNode(VListSubheader, itemProps, {
|
|
7431
|
+
default: slots.subheader
|
|
7432
|
+
});
|
|
7433
|
+
}
|
|
7434
|
+
|
|
7263
7435
|
const slotsWithItem = {
|
|
7264
7436
|
subtitle: slots.subtitle ? slotProps => {
|
|
7265
7437
|
var _slots$subtitle;
|
|
@@ -7749,7 +7921,7 @@
|
|
|
7749
7921
|
return events;
|
|
7750
7922
|
});
|
|
7751
7923
|
vue.watch(isTop, val => {
|
|
7752
|
-
if (val && props.openOnHover && !isHovered) {
|
|
7924
|
+
if (val && (props.openOnHover && !isHovered && (!openOnFocus.value || !isFocused) || openOnFocus.value && !isFocused && (!props.openOnHover || !isHovered))) {
|
|
7753
7925
|
isActive.value = false;
|
|
7754
7926
|
}
|
|
7755
7927
|
});
|
|
@@ -8518,33 +8690,43 @@
|
|
|
8518
8690
|
});
|
|
8519
8691
|
}
|
|
8520
8692
|
|
|
8521
|
-
const
|
|
8693
|
+
const StackSymbol = Symbol.for('vuetify:stack');
|
|
8694
|
+
const globalStack = vue.reactive([]);
|
|
8522
8695
|
function useStack(isActive, zIndex) {
|
|
8523
8696
|
const vm = getCurrentInstance('useStack');
|
|
8697
|
+
const parent = vue.inject(StackSymbol, undefined);
|
|
8698
|
+
const stack = vue.reactive({
|
|
8699
|
+
activeChildren: new Set()
|
|
8700
|
+
});
|
|
8701
|
+
vue.provide(StackSymbol, stack);
|
|
8524
8702
|
|
|
8525
8703
|
const _zIndex = vue.ref(+zIndex.value);
|
|
8526
8704
|
|
|
8527
8705
|
useToggleScope(isActive, () => {
|
|
8528
|
-
var
|
|
8706
|
+
var _globalStack$at;
|
|
8529
8707
|
|
|
8530
|
-
const lastZIndex = (
|
|
8708
|
+
const lastZIndex = (_globalStack$at = globalStack.at(-1)) == null ? void 0 : _globalStack$at[1];
|
|
8531
8709
|
_zIndex.value = lastZIndex ? lastZIndex + 10 : +zIndex.value;
|
|
8532
|
-
|
|
8710
|
+
globalStack.push([vm.uid, _zIndex.value]);
|
|
8711
|
+
parent == null ? void 0 : parent.activeChildren.add(vm.uid);
|
|
8533
8712
|
vue.onScopeDispose(() => {
|
|
8534
|
-
const idx =
|
|
8535
|
-
|
|
8713
|
+
const idx = globalStack.findIndex(v => v[0] === vm.uid);
|
|
8714
|
+
globalStack.splice(idx, 1);
|
|
8715
|
+
parent == null ? void 0 : parent.activeChildren.delete(vm.uid);
|
|
8536
8716
|
});
|
|
8537
8717
|
});
|
|
8538
|
-
const
|
|
8718
|
+
const globalTop = vue.ref(true);
|
|
8539
8719
|
vue.watchEffect(() => {
|
|
8540
|
-
var
|
|
8720
|
+
var _globalStack$at2;
|
|
8541
8721
|
|
|
8542
|
-
const _isTop = ((
|
|
8722
|
+
const _isTop = ((_globalStack$at2 = globalStack.at(-1)) == null ? void 0 : _globalStack$at2[0]) === vm.uid;
|
|
8543
8723
|
|
|
8544
|
-
setTimeout(() =>
|
|
8724
|
+
setTimeout(() => globalTop.value = _isTop);
|
|
8545
8725
|
});
|
|
8726
|
+
const localTop = vue.computed(() => !stack.activeChildren.size);
|
|
8546
8727
|
return {
|
|
8547
|
-
|
|
8728
|
+
globalTop: vue.readonly(globalTop),
|
|
8729
|
+
localTop,
|
|
8548
8730
|
stackStyles: vue.computed(() => ({
|
|
8549
8731
|
zIndex: _zIndex.value
|
|
8550
8732
|
}))
|
|
@@ -8767,7 +8949,8 @@
|
|
|
8767
8949
|
return typeof props.scrim === 'string' ? props.scrim : null;
|
|
8768
8950
|
}));
|
|
8769
8951
|
const {
|
|
8770
|
-
|
|
8952
|
+
globalTop,
|
|
8953
|
+
localTop,
|
|
8771
8954
|
stackStyles
|
|
8772
8955
|
} = useStack(isActive, vue.toRef(props, 'zIndex'));
|
|
8773
8956
|
const {
|
|
@@ -8777,7 +8960,7 @@
|
|
|
8777
8960
|
contentEvents
|
|
8778
8961
|
} = useActivator(props, {
|
|
8779
8962
|
isActive,
|
|
8780
|
-
isTop
|
|
8963
|
+
isTop: localTop
|
|
8781
8964
|
});
|
|
8782
8965
|
const {
|
|
8783
8966
|
dimensionStyles
|
|
@@ -8810,7 +8993,7 @@
|
|
|
8810
8993
|
}
|
|
8811
8994
|
|
|
8812
8995
|
function closeConditional() {
|
|
8813
|
-
return isActive.value &&
|
|
8996
|
+
return isActive.value && globalTop.value;
|
|
8814
8997
|
}
|
|
8815
8998
|
|
|
8816
8999
|
IN_BROWSER && vue.watch(isActive, val => {
|
|
@@ -8824,7 +9007,7 @@
|
|
|
8824
9007
|
});
|
|
8825
9008
|
|
|
8826
9009
|
function onKeydown(e) {
|
|
8827
|
-
if (e.key === 'Escape' &&
|
|
9010
|
+
if (e.key === 'Escape' && globalTop.value) {
|
|
8828
9011
|
if (!props.persistent) {
|
|
8829
9012
|
isActive.value = false;
|
|
8830
9013
|
} else animateClick();
|
|
@@ -8834,7 +9017,7 @@
|
|
|
8834
9017
|
const router = useRouter();
|
|
8835
9018
|
useToggleScope(() => props.closeOnBack, () => {
|
|
8836
9019
|
useBackButton(router, next => {
|
|
8837
|
-
if (
|
|
9020
|
+
if (globalTop.value && isActive.value) {
|
|
8838
9021
|
next(false);
|
|
8839
9022
|
if (!props.persistent) isActive.value = false;else animateClick();
|
|
8840
9023
|
} else {
|
|
@@ -8922,13 +9105,86 @@
|
|
|
8922
9105
|
activatorEl,
|
|
8923
9106
|
animateClick,
|
|
8924
9107
|
contentEl,
|
|
8925
|
-
|
|
9108
|
+
globalTop,
|
|
9109
|
+
localTop,
|
|
8926
9110
|
updateLocation
|
|
8927
9111
|
};
|
|
8928
9112
|
}
|
|
8929
9113
|
|
|
8930
9114
|
});
|
|
8931
9115
|
|
|
9116
|
+
const Refs = Symbol('Forwarded refs');
|
|
9117
|
+
/** Omit properties starting with P */
|
|
9118
|
+
|
|
9119
|
+
function forwardRefs(target) {
|
|
9120
|
+
for (var _len = arguments.length, refs = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
|
9121
|
+
refs[_key - 1] = arguments[_key];
|
|
9122
|
+
}
|
|
9123
|
+
|
|
9124
|
+
target[Refs] = refs;
|
|
9125
|
+
return new Proxy(target, {
|
|
9126
|
+
get(target, key) {
|
|
9127
|
+
if (Reflect.has(target, key)) {
|
|
9128
|
+
return Reflect.get(target, key);
|
|
9129
|
+
}
|
|
9130
|
+
|
|
9131
|
+
for (const ref of refs) {
|
|
9132
|
+
if (ref.value && Reflect.has(ref.value, key)) {
|
|
9133
|
+
const val = Reflect.get(ref.value, key);
|
|
9134
|
+
return typeof val === 'function' ? val.bind(ref.value) : val;
|
|
9135
|
+
}
|
|
9136
|
+
}
|
|
9137
|
+
},
|
|
9138
|
+
|
|
9139
|
+
getOwnPropertyDescriptor(target, key) {
|
|
9140
|
+
const descriptor = Reflect.getOwnPropertyDescriptor(target, key);
|
|
9141
|
+
if (descriptor) return descriptor; // Skip internal properties
|
|
9142
|
+
|
|
9143
|
+
if (typeof key === 'symbol' || key.startsWith('__')) return; // Check each ref's own properties
|
|
9144
|
+
|
|
9145
|
+
for (const ref of refs) {
|
|
9146
|
+
if (!ref.value) continue;
|
|
9147
|
+
const descriptor = Reflect.getOwnPropertyDescriptor(ref.value, key);
|
|
9148
|
+
if (descriptor) return descriptor;
|
|
9149
|
+
|
|
9150
|
+
if ('_' in ref.value && 'setupState' in ref.value._) {
|
|
9151
|
+
const descriptor = Reflect.getOwnPropertyDescriptor(ref.value._.setupState, key);
|
|
9152
|
+
if (descriptor) return descriptor;
|
|
9153
|
+
}
|
|
9154
|
+
} // Recursive search up each ref's prototype
|
|
9155
|
+
|
|
9156
|
+
|
|
9157
|
+
for (const ref of refs) {
|
|
9158
|
+
let obj = ref.value && Object.getPrototypeOf(ref.value);
|
|
9159
|
+
|
|
9160
|
+
while (obj) {
|
|
9161
|
+
const descriptor = Reflect.getOwnPropertyDescriptor(obj, key);
|
|
9162
|
+
if (descriptor) return descriptor;
|
|
9163
|
+
obj = Object.getPrototypeOf(obj);
|
|
9164
|
+
}
|
|
9165
|
+
} // Call forwarded refs' proxies
|
|
9166
|
+
|
|
9167
|
+
|
|
9168
|
+
for (const ref of refs) {
|
|
9169
|
+
const childRefs = ref.value && ref.value[Refs];
|
|
9170
|
+
if (!childRefs) continue;
|
|
9171
|
+
const queue = childRefs.slice();
|
|
9172
|
+
|
|
9173
|
+
while (queue.length) {
|
|
9174
|
+
const ref = queue.shift();
|
|
9175
|
+
const descriptor = Reflect.getOwnPropertyDescriptor(ref.value, key);
|
|
9176
|
+
if (descriptor) return descriptor;
|
|
9177
|
+
const childRefs = ref.value && ref.value[Refs];
|
|
9178
|
+
if (childRefs) queue.push(...childRefs);
|
|
9179
|
+
}
|
|
9180
|
+
}
|
|
9181
|
+
|
|
9182
|
+
return undefined;
|
|
9183
|
+
}
|
|
9184
|
+
|
|
9185
|
+
});
|
|
9186
|
+
}
|
|
9187
|
+
|
|
8932
9188
|
function useScopeId() {
|
|
8933
9189
|
const vm = getCurrentInstance('useScopeId');
|
|
8934
9190
|
const scopeId = vm.vnode.scopeId;
|
|
@@ -9021,7 +9277,7 @@
|
|
|
9021
9277
|
default: slots.default,
|
|
9022
9278
|
activator: slots.activator
|
|
9023
9279
|
}));
|
|
9024
|
-
return
|
|
9280
|
+
return forwardRefs({
|
|
9025
9281
|
id
|
|
9026
9282
|
}, overlay);
|
|
9027
9283
|
}
|
|
@@ -9169,7 +9425,7 @@
|
|
|
9169
9425
|
const width = Math.abs(targetWidth - rect.width) > 1 ? {
|
|
9170
9426
|
maxWidth: convertToUnit(targetWidth)
|
|
9171
9427
|
} : undefined;
|
|
9172
|
-
const duration = parseFloat(getComputedStyle(el).transitionDuration) * 1000;
|
|
9428
|
+
const duration = parseFloat(getComputedStyle(el).transitionDuration) * 1000 || 150;
|
|
9173
9429
|
const scale = parseFloat(getComputedStyle(targetEl).getPropertyValue('--v-field-label-scale'));
|
|
9174
9430
|
el.style.visibility = 'visible';
|
|
9175
9431
|
targetEl.style.visibility = 'hidden';
|
|
@@ -9450,10 +9706,6 @@
|
|
|
9450
9706
|
});
|
|
9451
9707
|
}
|
|
9452
9708
|
|
|
9453
|
-
function onInput(e) {
|
|
9454
|
-
model.value = e.target.value;
|
|
9455
|
-
}
|
|
9456
|
-
|
|
9457
9709
|
useRender(() => {
|
|
9458
9710
|
const hasCounter = !!(slots.counter || props.counter || props.counterValue);
|
|
9459
9711
|
const hasDetails = !!(hasCounter || slots.details);
|
|
@@ -9504,24 +9756,16 @@
|
|
|
9504
9756
|
"error": isValid.value === false
|
|
9505
9757
|
}), { ...slots,
|
|
9506
9758
|
default: _ref3 => {
|
|
9507
|
-
var _slots$default;
|
|
9508
|
-
|
|
9509
9759
|
let {
|
|
9510
9760
|
props: {
|
|
9511
9761
|
class: fieldClass,
|
|
9512
9762
|
...slotProps
|
|
9513
9763
|
}
|
|
9514
9764
|
} = _ref3;
|
|
9515
|
-
|
|
9516
|
-
|
|
9517
|
-
}, [props.prefix]), vue.createVNode("div", {
|
|
9518
|
-
"class": fieldClass,
|
|
9519
|
-
"onClick": e => emit('click:input', e),
|
|
9520
|
-
"data-no-activator": ""
|
|
9521
|
-
}, [(_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots), vue.withDirectives(vue.createVNode("input", vue.mergeProps({
|
|
9765
|
+
|
|
9766
|
+
const inputNode = vue.withDirectives(vue.createVNode("input", vue.mergeProps({
|
|
9522
9767
|
"ref": inputRef,
|
|
9523
|
-
"
|
|
9524
|
-
"onInput": onInput,
|
|
9768
|
+
"onUpdate:modelValue": $event => model.value = $event,
|
|
9525
9769
|
"autofocus": props.autofocus,
|
|
9526
9770
|
"readonly": isReadonly.value,
|
|
9527
9771
|
"disabled": isDisabled.value,
|
|
@@ -9531,11 +9775,21 @@
|
|
|
9531
9775
|
"type": props.type,
|
|
9532
9776
|
"onFocus": onFocus,
|
|
9533
9777
|
"onBlur": () => isFocused.value = false
|
|
9534
|
-
}, slotProps, inputAttrs), null), [[vue.resolveDirective("intersect"), {
|
|
9778
|
+
}, slotProps, inputAttrs), null), [[vue.vModelDynamic, model.value], [vue.resolveDirective("intersect"), {
|
|
9535
9779
|
handler: onIntersect
|
|
9536
9780
|
}, null, {
|
|
9537
9781
|
once: true
|
|
9538
|
-
}]])
|
|
9782
|
+
}]]);
|
|
9783
|
+
|
|
9784
|
+
return vue.createVNode(vue.Fragment, null, [props.prefix && vue.createVNode("span", {
|
|
9785
|
+
"class": "v-text-field__prefix"
|
|
9786
|
+
}, [props.prefix]), slots.default ? vue.createVNode("div", {
|
|
9787
|
+
"class": fieldClass,
|
|
9788
|
+
"onClick": e => emit('click:input', e),
|
|
9789
|
+
"data-no-activator": ""
|
|
9790
|
+
}, [slots.default(), inputNode]) : vue.cloneVNode(inputNode, {
|
|
9791
|
+
class: fieldClass
|
|
9792
|
+
}), props.suffix && vue.createVNode("span", {
|
|
9539
9793
|
"class": "v-text-field__suffix"
|
|
9540
9794
|
}, [props.suffix])]);
|
|
9541
9795
|
}
|
|
@@ -9552,146 +9806,11 @@
|
|
|
9552
9806
|
} : undefined
|
|
9553
9807
|
});
|
|
9554
9808
|
});
|
|
9555
|
-
return
|
|
9809
|
+
return forwardRefs({}, vInputRef, vFieldRef, inputRef);
|
|
9556
9810
|
}
|
|
9557
9811
|
|
|
9558
9812
|
});
|
|
9559
9813
|
|
|
9560
|
-
// Locales
|
|
9561
|
-
|
|
9562
|
-
const LocaleAdapterSymbol = Symbol.for('vuetify:locale-adapter');
|
|
9563
|
-
const VuetifyLocaleSymbol = Symbol.for('vuetify:locale');
|
|
9564
|
-
function provideLocale(props) {
|
|
9565
|
-
const adapter = vue.inject(LocaleAdapterSymbol);
|
|
9566
|
-
if (!adapter) throw new Error('[Vuetify] Could not find injected locale adapter');
|
|
9567
|
-
return adapter.createScope(props);
|
|
9568
|
-
}
|
|
9569
|
-
function useLocale() {
|
|
9570
|
-
const adapter = vue.inject(LocaleAdapterSymbol);
|
|
9571
|
-
if (!adapter) throw new Error('[Vuetify] Could not find injected locale adapter');
|
|
9572
|
-
return adapter.getScope();
|
|
9573
|
-
}
|
|
9574
|
-
|
|
9575
|
-
function isLocaleAdapter(x) {
|
|
9576
|
-
return !!x && x.hasOwnProperty('getScope') && x.hasOwnProperty('createScope') && x.hasOwnProperty('createRoot');
|
|
9577
|
-
}
|
|
9578
|
-
|
|
9579
|
-
function createLocale(app, options) {
|
|
9580
|
-
const adapter = isLocaleAdapter(options) ? options : createDefaultLocaleAdapter(options);
|
|
9581
|
-
const instance = adapter.createRoot(app);
|
|
9582
|
-
app == null ? void 0 : app.provide(RtlSymbol, createRtl(instance, options));
|
|
9583
|
-
return adapter;
|
|
9584
|
-
}
|
|
9585
|
-
const LANG_PREFIX = '$vuetify.';
|
|
9586
|
-
|
|
9587
|
-
const replace = (str, params) => {
|
|
9588
|
-
return str.replace(/\{(\d+)\}/g, (match, index) => {
|
|
9589
|
-
/* istanbul ignore next */
|
|
9590
|
-
return String(params[+index]);
|
|
9591
|
-
});
|
|
9592
|
-
};
|
|
9593
|
-
|
|
9594
|
-
const createTranslateFunction = (current, fallback, messages) => {
|
|
9595
|
-
return function (key) {
|
|
9596
|
-
for (var _len = arguments.length, params = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
|
9597
|
-
params[_key - 1] = arguments[_key];
|
|
9598
|
-
}
|
|
9599
|
-
|
|
9600
|
-
if (!key.startsWith(LANG_PREFIX)) {
|
|
9601
|
-
return replace(key, params);
|
|
9602
|
-
}
|
|
9603
|
-
|
|
9604
|
-
const shortKey = key.replace(LANG_PREFIX, '');
|
|
9605
|
-
const currentLocale = current.value && messages.value[current.value];
|
|
9606
|
-
const fallbackLocale = fallback.value && messages.value[fallback.value];
|
|
9607
|
-
let str = getObjectValueByPath(currentLocale, shortKey, null);
|
|
9608
|
-
|
|
9609
|
-
if (!str) {
|
|
9610
|
-
consoleWarn(`Translation key "${key}" not found in "${current.value}", trying fallback locale`);
|
|
9611
|
-
str = getObjectValueByPath(fallbackLocale, shortKey, null);
|
|
9612
|
-
}
|
|
9613
|
-
|
|
9614
|
-
if (!str) {
|
|
9615
|
-
consoleError(`Translation key "${key}" not found in fallback`);
|
|
9616
|
-
str = key;
|
|
9617
|
-
}
|
|
9618
|
-
|
|
9619
|
-
if (typeof str !== 'string') {
|
|
9620
|
-
consoleError(`Translation key "${key}" has a non-string value`);
|
|
9621
|
-
str = key;
|
|
9622
|
-
}
|
|
9623
|
-
|
|
9624
|
-
return replace(str, params);
|
|
9625
|
-
};
|
|
9626
|
-
};
|
|
9627
|
-
|
|
9628
|
-
function createNumberFunction(current, fallback) {
|
|
9629
|
-
return (value, options) => {
|
|
9630
|
-
const numberFormat = new Intl.NumberFormat([current.value, fallback.value], options);
|
|
9631
|
-
return numberFormat.format(value);
|
|
9632
|
-
};
|
|
9633
|
-
}
|
|
9634
|
-
|
|
9635
|
-
function createDefaultLocaleAdapter(options) {
|
|
9636
|
-
const createScope = options => {
|
|
9637
|
-
const current = vue.ref(options.current);
|
|
9638
|
-
const fallback = vue.ref(options.fallback);
|
|
9639
|
-
const messages = vue.ref(options.messages);
|
|
9640
|
-
return {
|
|
9641
|
-
current,
|
|
9642
|
-
fallback,
|
|
9643
|
-
messages,
|
|
9644
|
-
t: createTranslateFunction(current, fallback, messages),
|
|
9645
|
-
n: createNumberFunction(current, fallback)
|
|
9646
|
-
};
|
|
9647
|
-
};
|
|
9648
|
-
|
|
9649
|
-
return {
|
|
9650
|
-
createRoot: app => {
|
|
9651
|
-
var _options$defaultLocal, _options$fallbackLoca, _options$messages;
|
|
9652
|
-
|
|
9653
|
-
const rootScope = createScope({
|
|
9654
|
-
current: (_options$defaultLocal = options == null ? void 0 : options.defaultLocale) != null ? _options$defaultLocal : 'en',
|
|
9655
|
-
fallback: (_options$fallbackLoca = options == null ? void 0 : options.fallbackLocale) != null ? _options$fallbackLoca : 'en',
|
|
9656
|
-
messages: (_options$messages = options == null ? void 0 : options.messages) != null ? _options$messages : {
|
|
9657
|
-
en
|
|
9658
|
-
}
|
|
9659
|
-
});
|
|
9660
|
-
if (!app) throw new Error('[Vuetify] Could not find default app instance');
|
|
9661
|
-
app.provide(VuetifyLocaleSymbol, rootScope);
|
|
9662
|
-
return rootScope;
|
|
9663
|
-
},
|
|
9664
|
-
getScope: () => {
|
|
9665
|
-
const currentScope = vue.inject(VuetifyLocaleSymbol);
|
|
9666
|
-
if (!currentScope) throw new Error('[Vuetify] Could not find injected locale instance');
|
|
9667
|
-
return currentScope;
|
|
9668
|
-
},
|
|
9669
|
-
createScope: options => {
|
|
9670
|
-
const currentScope = vue.inject(VuetifyLocaleSymbol);
|
|
9671
|
-
if (!currentScope) throw new Error('[Vuetify] Could not find injected locale instance');
|
|
9672
|
-
const newScope = createScope({
|
|
9673
|
-
current: vue.computed(() => {
|
|
9674
|
-
var _options$locale;
|
|
9675
|
-
|
|
9676
|
-
return (_options$locale = options == null ? void 0 : options.locale) != null ? _options$locale : currentScope.current.value;
|
|
9677
|
-
}),
|
|
9678
|
-
fallback: vue.computed(() => {
|
|
9679
|
-
var _options$locale2;
|
|
9680
|
-
|
|
9681
|
-
return (_options$locale2 = options == null ? void 0 : options.locale) != null ? _options$locale2 : currentScope.fallback.value;
|
|
9682
|
-
}),
|
|
9683
|
-
messages: vue.computed(() => {
|
|
9684
|
-
var _options$messages2;
|
|
9685
|
-
|
|
9686
|
-
return (_options$messages2 = options == null ? void 0 : options.messages) != null ? _options$messages2 : currentScope.messages.value;
|
|
9687
|
-
})
|
|
9688
|
-
});
|
|
9689
|
-
vue.provide(VuetifyLocaleSymbol, newScope);
|
|
9690
|
-
return newScope;
|
|
9691
|
-
}
|
|
9692
|
-
};
|
|
9693
|
-
}
|
|
9694
|
-
|
|
9695
9814
|
const makeSelectProps = propsFactory({
|
|
9696
9815
|
chips: Boolean,
|
|
9697
9816
|
closableChips: Boolean,
|
|
@@ -9771,7 +9890,7 @@
|
|
|
9771
9890
|
|
|
9772
9891
|
function onClickControl() {
|
|
9773
9892
|
if (props.hideNoData && !items.value.length) return;
|
|
9774
|
-
menu.value =
|
|
9893
|
+
menu.value = !menu.value;
|
|
9775
9894
|
}
|
|
9776
9895
|
|
|
9777
9896
|
function onKeydown(e) {
|
|
@@ -9818,7 +9937,6 @@
|
|
|
9818
9937
|
"appendInnerIcon": props.menuIcon,
|
|
9819
9938
|
"readonly": true,
|
|
9820
9939
|
"onClick:clear": onClear,
|
|
9821
|
-
"onClick:input": onClickControl,
|
|
9822
9940
|
"onClick:control": onClickControl,
|
|
9823
9941
|
"onBlur": () => menu.value = false,
|
|
9824
9942
|
"onKeydown": onKeydown
|
|
@@ -9909,7 +10027,7 @@
|
|
|
9909
10027
|
}
|
|
9910
10028
|
});
|
|
9911
10029
|
});
|
|
9912
|
-
return
|
|
10030
|
+
return forwardRefs({
|
|
9913
10031
|
menu,
|
|
9914
10032
|
select
|
|
9915
10033
|
}, vTextFieldRef);
|
|
@@ -10045,7 +10163,6 @@
|
|
|
10045
10163
|
})
|
|
10046
10164
|
},
|
|
10047
10165
|
emits: {
|
|
10048
|
-
'click:clear': e => true,
|
|
10049
10166
|
'update:search': val => true,
|
|
10050
10167
|
'update:modelValue': val => true,
|
|
10051
10168
|
'update:menu': val => true
|
|
@@ -10282,7 +10399,7 @@
|
|
|
10282
10399
|
}
|
|
10283
10400
|
});
|
|
10284
10401
|
});
|
|
10285
|
-
return
|
|
10402
|
+
return forwardRefs({
|
|
10286
10403
|
isFocused,
|
|
10287
10404
|
isPristine,
|
|
10288
10405
|
menu,
|
|
@@ -11032,7 +11149,10 @@
|
|
|
11032
11149
|
flat: Boolean,
|
|
11033
11150
|
hover: Boolean,
|
|
11034
11151
|
image: String,
|
|
11035
|
-
link:
|
|
11152
|
+
link: {
|
|
11153
|
+
type: Boolean,
|
|
11154
|
+
default: undefined
|
|
11155
|
+
},
|
|
11036
11156
|
prependAvatar: String,
|
|
11037
11157
|
prependIcon: IconValue,
|
|
11038
11158
|
ripple: Boolean,
|
|
@@ -11093,10 +11213,12 @@
|
|
|
11093
11213
|
roundedClasses
|
|
11094
11214
|
} = useRounded(props);
|
|
11095
11215
|
const link = useLink(props, attrs);
|
|
11216
|
+
const isLink = vue.computed(() => props.link !== false && link.isLink.value);
|
|
11217
|
+
const isClickable = vue.computed(() => !props.disabled && props.link !== false && (props.link || link.isClickable.value));
|
|
11096
11218
|
useRender(() => {
|
|
11097
11219
|
var _slots$image, _slots$image2, _slots$text, _slots$text2, _slots$default;
|
|
11098
11220
|
|
|
11099
|
-
const Tag =
|
|
11221
|
+
const Tag = isLink.value ? 'a' : props.tag;
|
|
11100
11222
|
const hasTitle = !!(slots.title || props.title);
|
|
11101
11223
|
const hasSubtitle = !!(slots.subtitle || props.subtitle);
|
|
11102
11224
|
const hasHeader = hasTitle || hasSubtitle;
|
|
@@ -11105,17 +11227,16 @@
|
|
|
11105
11227
|
const hasImage = !!(slots.image || props.image);
|
|
11106
11228
|
const hasCardItem = hasHeader || hasPrepend || hasAppend;
|
|
11107
11229
|
const hasText = !!(slots.text || props.text);
|
|
11108
|
-
const isClickable = !props.disabled && (link.isClickable.value || props.link);
|
|
11109
11230
|
return vue.withDirectives(vue.createVNode(Tag, {
|
|
11110
11231
|
"class": ['v-card', {
|
|
11111
11232
|
'v-card--disabled': props.disabled,
|
|
11112
11233
|
'v-card--flat': props.flat,
|
|
11113
11234
|
'v-card--hover': props.hover && !(props.disabled || props.flat),
|
|
11114
|
-
'v-card--link': isClickable
|
|
11235
|
+
'v-card--link': isClickable.value
|
|
11115
11236
|
}, themeClasses.value, borderClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, loaderClasses.value, positionClasses.value, roundedClasses.value, variantClasses.value],
|
|
11116
11237
|
"style": [colorStyles.value, dimensionStyles.value, locationStyles.value],
|
|
11117
11238
|
"href": link.href.value,
|
|
11118
|
-
"onClick": isClickable && link.navigate
|
|
11239
|
+
"onClick": isClickable.value && link.navigate
|
|
11119
11240
|
}, {
|
|
11120
11241
|
default: () => [hasImage && vue.createVNode(VDefaultsProvider, {
|
|
11121
11242
|
"key": "image",
|
|
@@ -11155,8 +11276,8 @@
|
|
|
11155
11276
|
default: () => [(_slots$text = (_slots$text2 = slots.text) == null ? void 0 : _slots$text2.call(slots)) != null ? _slots$text : props.text]
|
|
11156
11277
|
}), (_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots), slots.actions && vue.createVNode(VCardActions, null, {
|
|
11157
11278
|
default: slots.actions
|
|
11158
|
-
}), genOverlays(isClickable, 'v-card')]
|
|
11159
|
-
}), [[vue.resolveDirective("ripple"), isClickable]]);
|
|
11279
|
+
}), genOverlays(isClickable.value, 'v-card')]
|
|
11280
|
+
}), [[vue.resolveDirective("ripple"), isClickable.value]]);
|
|
11160
11281
|
});
|
|
11161
11282
|
return {};
|
|
11162
11283
|
}
|
|
@@ -13244,7 +13365,7 @@
|
|
|
13244
13365
|
const shades = Object.freeze({
|
|
13245
13366
|
black: '#000000',
|
|
13246
13367
|
white: '#ffffff',
|
|
13247
|
-
transparent: '
|
|
13368
|
+
transparent: '#ffffff00'
|
|
13248
13369
|
});
|
|
13249
13370
|
var colors = Object.freeze({
|
|
13250
13371
|
red,
|
|
@@ -13853,7 +13974,7 @@
|
|
|
13853
13974
|
}
|
|
13854
13975
|
});
|
|
13855
13976
|
});
|
|
13856
|
-
return
|
|
13977
|
+
return forwardRefs({
|
|
13857
13978
|
isFocused,
|
|
13858
13979
|
isPristine,
|
|
13859
13980
|
menu,
|
|
@@ -13915,7 +14036,7 @@
|
|
|
13915
14036
|
const after = e.target;
|
|
13916
14037
|
|
|
13917
14038
|
if (before !== after && (_overlay$value = overlay.value) != null && _overlay$value.contentEl && // We're the topmost dialog
|
|
13918
|
-
(_overlay$value2 = overlay.value) != null && _overlay$value2.
|
|
14039
|
+
(_overlay$value2 = overlay.value) != null && _overlay$value2.globalTop && // It isn't the document or the dialog body
|
|
13919
14040
|
![document, overlay.value.contentEl].includes(after) && // It isn't inside the dialog body
|
|
13920
14041
|
!overlay.value.contentEl.contains(after)) {
|
|
13921
14042
|
const focusable = [...overlay.value.contentEl.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])')].filter(el => !el.hasAttribute('disabled'));
|
|
@@ -13977,7 +14098,7 @@
|
|
|
13977
14098
|
default: slots.default,
|
|
13978
14099
|
activator: slots.activator
|
|
13979
14100
|
}));
|
|
13980
|
-
return
|
|
14101
|
+
return forwardRefs({}, overlay);
|
|
13981
14102
|
}
|
|
13982
14103
|
|
|
13983
14104
|
});
|
|
@@ -14429,7 +14550,7 @@
|
|
|
14429
14550
|
} : undefined
|
|
14430
14551
|
});
|
|
14431
14552
|
});
|
|
14432
|
-
return
|
|
14553
|
+
return forwardRefs({}, vInputRef, vFieldRef, inputRef);
|
|
14433
14554
|
}
|
|
14434
14555
|
|
|
14435
14556
|
});
|
|
@@ -14560,7 +14681,7 @@
|
|
|
14560
14681
|
"onSubmit": onSubmit
|
|
14561
14682
|
}, [(_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots, form)]);
|
|
14562
14683
|
});
|
|
14563
|
-
return
|
|
14684
|
+
return forwardRefs(form, formRef);
|
|
14564
14685
|
}
|
|
14565
14686
|
|
|
14566
14687
|
});
|
|
@@ -14658,6 +14779,7 @@
|
|
|
14658
14779
|
return className.toLowerCase();
|
|
14659
14780
|
}
|
|
14660
14781
|
|
|
14782
|
+
const ALIGN_SELF_VALUES = ['auto', 'start', 'end', 'center', 'baseline', 'stretch'];
|
|
14661
14783
|
const VCol = defineComponent({
|
|
14662
14784
|
name: 'VCol',
|
|
14663
14785
|
props: {
|
|
@@ -14679,7 +14801,7 @@
|
|
|
14679
14801
|
alignSelf: {
|
|
14680
14802
|
type: String,
|
|
14681
14803
|
default: null,
|
|
14682
|
-
validator: str =>
|
|
14804
|
+
validator: str => ALIGN_SELF_VALUES.includes(str)
|
|
14683
14805
|
},
|
|
14684
14806
|
...makeTagProps()
|
|
14685
14807
|
},
|
|
@@ -14728,6 +14850,7 @@
|
|
|
14728
14850
|
const breakpoints = ['sm', 'md', 'lg', 'xl', 'xxl']; // no xs
|
|
14729
14851
|
|
|
14730
14852
|
const ALIGNMENT = ['start', 'end', 'center'];
|
|
14853
|
+
const SPACE = ['space-between', 'space-around', 'space-evenly'];
|
|
14731
14854
|
|
|
14732
14855
|
function makeRowProps(prefix, def) {
|
|
14733
14856
|
return breakpoints.reduce((props, val) => {
|
|
@@ -14736,23 +14859,27 @@
|
|
|
14736
14859
|
}, {});
|
|
14737
14860
|
}
|
|
14738
14861
|
|
|
14739
|
-
const
|
|
14862
|
+
const ALIGN_VALUES = [...ALIGNMENT, 'baseline', 'stretch'];
|
|
14863
|
+
|
|
14864
|
+
const alignValidator = str => ALIGN_VALUES.includes(str);
|
|
14740
14865
|
|
|
14741
14866
|
const alignProps = makeRowProps('align', () => ({
|
|
14742
14867
|
type: String,
|
|
14743
14868
|
default: null,
|
|
14744
14869
|
validator: alignValidator
|
|
14745
14870
|
}));
|
|
14871
|
+
const JUSTIFY_VALUES = [...ALIGNMENT, ...SPACE];
|
|
14746
14872
|
|
|
14747
|
-
const justifyValidator = str =>
|
|
14873
|
+
const justifyValidator = str => JUSTIFY_VALUES.includes(str);
|
|
14748
14874
|
|
|
14749
14875
|
const justifyProps = makeRowProps('justify', () => ({
|
|
14750
14876
|
type: String,
|
|
14751
14877
|
default: null,
|
|
14752
14878
|
validator: justifyValidator
|
|
14753
14879
|
}));
|
|
14880
|
+
const ALIGN_CONTENT_VALUES = [...ALIGNMENT, ...SPACE, 'stretch'];
|
|
14754
14881
|
|
|
14755
|
-
const alignContentValidator = str =>
|
|
14882
|
+
const alignContentValidator = str => ALIGN_CONTENT_VALUES.includes(str);
|
|
14756
14883
|
|
|
14757
14884
|
const alignContentProps = makeRowProps('alignContent', () => ({
|
|
14758
14885
|
type: String,
|
|
@@ -15145,9 +15272,12 @@
|
|
|
15145
15272
|
|
|
15146
15273
|
const VMain = defineComponent({
|
|
15147
15274
|
name: 'VMain',
|
|
15148
|
-
props:
|
|
15149
|
-
|
|
15150
|
-
|
|
15275
|
+
props: {
|
|
15276
|
+
scrollable: Boolean,
|
|
15277
|
+
...makeTagProps({
|
|
15278
|
+
tag: 'main'
|
|
15279
|
+
})
|
|
15280
|
+
},
|
|
15151
15281
|
|
|
15152
15282
|
setup(props, _ref) {
|
|
15153
15283
|
let {
|
|
@@ -15160,15 +15290,17 @@
|
|
|
15160
15290
|
ssrBootStyles
|
|
15161
15291
|
} = useSsrBoot();
|
|
15162
15292
|
useRender(() => {
|
|
15163
|
-
var _slots$default;
|
|
15293
|
+
var _slots$default, _slots$default2;
|
|
15164
15294
|
|
|
15165
15295
|
return vue.createVNode(props.tag, {
|
|
15166
|
-
"class":
|
|
15296
|
+
"class": ['v-main', {
|
|
15297
|
+
'v-main--scrollable': props.scrollable
|
|
15298
|
+
}],
|
|
15167
15299
|
"style": [mainStyles.value, ssrBootStyles.value]
|
|
15168
15300
|
}, {
|
|
15169
|
-
default: () => [vue.createVNode("div", {
|
|
15170
|
-
"class": "v-
|
|
15171
|
-
}, [(_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots)])]
|
|
15301
|
+
default: () => [props.scrollable ? vue.createVNode("div", {
|
|
15302
|
+
"class": "v-main__scroller"
|
|
15303
|
+
}, [(_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots)]) : (_slots$default2 = slots.default) == null ? void 0 : _slots$default2.call(slots)]
|
|
15172
15304
|
});
|
|
15173
15305
|
});
|
|
15174
15306
|
return {};
|
|
@@ -15176,6 +15308,76 @@
|
|
|
15176
15308
|
|
|
15177
15309
|
});
|
|
15178
15310
|
|
|
15311
|
+
function useSticky(_ref) {
|
|
15312
|
+
let {
|
|
15313
|
+
rootEl,
|
|
15314
|
+
isSticky,
|
|
15315
|
+
layoutItemStyles
|
|
15316
|
+
} = _ref;
|
|
15317
|
+
const isStuck = vue.ref(false);
|
|
15318
|
+
const stuckPosition = vue.ref(0);
|
|
15319
|
+
const stickyStyles = vue.computed(() => {
|
|
15320
|
+
const side = typeof isStuck.value === 'boolean' ? 'top' : isStuck.value;
|
|
15321
|
+
return [isSticky.value ? {
|
|
15322
|
+
top: 'auto',
|
|
15323
|
+
bottom: 'auto',
|
|
15324
|
+
height: undefined
|
|
15325
|
+
} : undefined, isStuck.value ? {
|
|
15326
|
+
[side]: convertToUnit(stuckPosition.value)
|
|
15327
|
+
} : {
|
|
15328
|
+
top: layoutItemStyles.value.top
|
|
15329
|
+
}];
|
|
15330
|
+
});
|
|
15331
|
+
vue.onMounted(() => {
|
|
15332
|
+
vue.watch(isSticky, val => {
|
|
15333
|
+
if (val) {
|
|
15334
|
+
window.addEventListener('scroll', onScroll, {
|
|
15335
|
+
passive: true
|
|
15336
|
+
});
|
|
15337
|
+
} else {
|
|
15338
|
+
window.removeEventListener('scroll', onScroll);
|
|
15339
|
+
}
|
|
15340
|
+
}, {
|
|
15341
|
+
immediate: true
|
|
15342
|
+
});
|
|
15343
|
+
});
|
|
15344
|
+
vue.onBeforeUnmount(() => {
|
|
15345
|
+
document.removeEventListener('scroll', onScroll);
|
|
15346
|
+
});
|
|
15347
|
+
let lastScrollTop = 0;
|
|
15348
|
+
|
|
15349
|
+
function onScroll() {
|
|
15350
|
+
var _layoutItemStyles$val;
|
|
15351
|
+
|
|
15352
|
+
const direction = lastScrollTop > window.scrollY ? 'up' : 'down';
|
|
15353
|
+
const rect = rootEl.value.getBoundingClientRect();
|
|
15354
|
+
const layoutTop = parseFloat((_layoutItemStyles$val = layoutItemStyles.value.top) != null ? _layoutItemStyles$val : 0);
|
|
15355
|
+
const top = window.scrollY - Math.max(0, stuckPosition.value - layoutTop);
|
|
15356
|
+
const bottom = rect.height + Math.max(stuckPosition.value, layoutTop) - window.scrollY - window.innerHeight;
|
|
15357
|
+
|
|
15358
|
+
if (rect.height < window.innerHeight - layoutTop) {
|
|
15359
|
+
isStuck.value = 'top';
|
|
15360
|
+
stuckPosition.value = layoutTop;
|
|
15361
|
+
} else if (direction === 'up' && isStuck.value === 'bottom' || direction === 'down' && isStuck.value === 'top') {
|
|
15362
|
+
stuckPosition.value = window.scrollY + rect.top;
|
|
15363
|
+
isStuck.value = true;
|
|
15364
|
+
} else if (direction === 'down' && bottom <= 0) {
|
|
15365
|
+
stuckPosition.value = 0;
|
|
15366
|
+
isStuck.value = 'bottom';
|
|
15367
|
+
} else if (direction === 'up' && top <= 0) {
|
|
15368
|
+
stuckPosition.value = rect.top + top;
|
|
15369
|
+
isStuck.value = 'top';
|
|
15370
|
+
}
|
|
15371
|
+
|
|
15372
|
+
lastScrollTop = window.scrollY;
|
|
15373
|
+
}
|
|
15374
|
+
|
|
15375
|
+
return {
|
|
15376
|
+
isStuck,
|
|
15377
|
+
stickyStyles
|
|
15378
|
+
};
|
|
15379
|
+
}
|
|
15380
|
+
|
|
15179
15381
|
const HORIZON = 100; // ms
|
|
15180
15382
|
|
|
15181
15383
|
const HISTORY = 20; // number of samples to keep
|
|
@@ -15443,6 +15645,7 @@
|
|
|
15443
15645
|
throw new Error();
|
|
15444
15646
|
}
|
|
15445
15647
|
|
|
15648
|
+
const locations = ['start', 'end', 'left', 'right', 'bottom'];
|
|
15446
15649
|
const VNavigationDrawer = defineComponent({
|
|
15447
15650
|
name: 'VNavigationDrawer',
|
|
15448
15651
|
props: {
|
|
@@ -15459,7 +15662,11 @@
|
|
|
15459
15662
|
rail: Boolean,
|
|
15460
15663
|
railWidth: {
|
|
15461
15664
|
type: [Number, String],
|
|
15462
|
-
default:
|
|
15665
|
+
default: 56
|
|
15666
|
+
},
|
|
15667
|
+
scrim: {
|
|
15668
|
+
type: [String, Boolean],
|
|
15669
|
+
default: true
|
|
15463
15670
|
},
|
|
15464
15671
|
image: String,
|
|
15465
15672
|
temporary: Boolean,
|
|
@@ -15470,9 +15677,10 @@
|
|
|
15470
15677
|
},
|
|
15471
15678
|
location: {
|
|
15472
15679
|
type: String,
|
|
15473
|
-
default: '
|
|
15474
|
-
validator: value =>
|
|
15680
|
+
default: 'start',
|
|
15681
|
+
validator: value => locations.includes(value)
|
|
15475
15682
|
},
|
|
15683
|
+
sticky: Boolean,
|
|
15476
15684
|
...makeBorderProps(),
|
|
15477
15685
|
...makeElevationProps(),
|
|
15478
15686
|
...makeLayoutItemProps(),
|
|
@@ -15491,6 +15699,9 @@
|
|
|
15491
15699
|
attrs,
|
|
15492
15700
|
slots
|
|
15493
15701
|
} = _ref;
|
|
15702
|
+
const {
|
|
15703
|
+
isRtl
|
|
15704
|
+
} = useRtl();
|
|
15494
15705
|
const {
|
|
15495
15706
|
themeClasses
|
|
15496
15707
|
} = provideTheme(props);
|
|
@@ -15512,14 +15723,19 @@
|
|
|
15512
15723
|
} = useRounded(props);
|
|
15513
15724
|
const router = useRouter();
|
|
15514
15725
|
const isActive = useProxiedModel(props, 'modelValue', null, v => !!v);
|
|
15515
|
-
const isHovering = vue.ref(false);
|
|
15516
15726
|
const {
|
|
15517
15727
|
ssrBootStyles
|
|
15518
15728
|
} = useSsrBoot();
|
|
15729
|
+
const rootEl = vue.ref();
|
|
15730
|
+
const isHovering = vue.ref(false);
|
|
15519
15731
|
const width = vue.computed(() => {
|
|
15520
15732
|
return props.rail && props.expandOnHover && isHovering.value ? Number(props.width) : Number(props.rail ? props.railWidth : props.width);
|
|
15521
15733
|
});
|
|
15734
|
+
const location = vue.computed(() => {
|
|
15735
|
+
return toPhysical(props.location, isRtl.value);
|
|
15736
|
+
});
|
|
15522
15737
|
const isTemporary = vue.computed(() => !props.permanent && (mobile.value || props.temporary));
|
|
15738
|
+
const isSticky = vue.computed(() => props.sticky && !isTemporary.value && location.value !== 'bottom');
|
|
15523
15739
|
|
|
15524
15740
|
if (!props.disableResizeWatcher) {
|
|
15525
15741
|
vue.watch(isTemporary, val => !props.permanent && (isActive.value = !val));
|
|
@@ -15536,7 +15752,6 @@
|
|
|
15536
15752
|
if (props.modelValue != null || isTemporary.value) return;
|
|
15537
15753
|
isActive.value = props.permanent || !mobile.value;
|
|
15538
15754
|
});
|
|
15539
|
-
const rootEl = vue.ref();
|
|
15540
15755
|
const {
|
|
15541
15756
|
isDragging,
|
|
15542
15757
|
dragProgress,
|
|
@@ -15546,7 +15761,7 @@
|
|
|
15546
15761
|
isTemporary,
|
|
15547
15762
|
width,
|
|
15548
15763
|
touchless: vue.toRef(props, 'touchless'),
|
|
15549
|
-
position:
|
|
15764
|
+
position: location
|
|
15550
15765
|
});
|
|
15551
15766
|
const layoutSize = vue.computed(() => {
|
|
15552
15767
|
const size = isTemporary.value ? 0 : props.rail && props.expandOnHover ? Number(props.railWidth) : width.value;
|
|
@@ -15559,13 +15774,25 @@
|
|
|
15559
15774
|
} = useLayoutItem({
|
|
15560
15775
|
id: props.name,
|
|
15561
15776
|
order: vue.computed(() => parseInt(props.order, 10)),
|
|
15562
|
-
position:
|
|
15777
|
+
position: location,
|
|
15563
15778
|
layoutSize,
|
|
15564
15779
|
elementSize: width,
|
|
15565
15780
|
active: vue.computed(() => isActive.value || isDragging.value),
|
|
15566
15781
|
disableTransitions: vue.computed(() => isDragging.value),
|
|
15567
|
-
absolute: vue.
|
|
15782
|
+
absolute: vue.computed(() => // eslint-disable-next-line @typescript-eslint/no-use-before-define
|
|
15783
|
+
props.absolute || isSticky.value && typeof isStuck.value !== 'string')
|
|
15784
|
+
});
|
|
15785
|
+
const {
|
|
15786
|
+
isStuck,
|
|
15787
|
+
stickyStyles
|
|
15788
|
+
} = useSticky({
|
|
15789
|
+
rootEl,
|
|
15790
|
+
isSticky,
|
|
15791
|
+
layoutItemStyles
|
|
15568
15792
|
});
|
|
15793
|
+
const scrimColor = useBackgroundColor(vue.computed(() => {
|
|
15794
|
+
return typeof props.scrim === 'string' ? props.scrim : null;
|
|
15795
|
+
}));
|
|
15569
15796
|
const scrimStyles = vue.computed(() => ({ ...(isDragging.value ? {
|
|
15570
15797
|
opacity: dragProgress.value * 0.2,
|
|
15571
15798
|
transition: 'none'
|
|
@@ -15578,6 +15805,11 @@
|
|
|
15578
15805
|
} : undefined),
|
|
15579
15806
|
...layoutItemScrimStyles.value
|
|
15580
15807
|
}));
|
|
15808
|
+
provideDefaults({
|
|
15809
|
+
VList: {
|
|
15810
|
+
bgColor: 'transparent'
|
|
15811
|
+
}
|
|
15812
|
+
});
|
|
15581
15813
|
useRender(() => {
|
|
15582
15814
|
var _slots$image, _slots$prepend, _slots$default, _slots$append;
|
|
15583
15815
|
|
|
@@ -15586,18 +15818,16 @@
|
|
|
15586
15818
|
"ref": rootEl,
|
|
15587
15819
|
"onMouseenter": () => isHovering.value = true,
|
|
15588
15820
|
"onMouseleave": () => isHovering.value = false,
|
|
15589
|
-
"class": ['v-navigation-drawer', {
|
|
15590
|
-
'v-navigation-drawer--bottom': props.location === 'bottom',
|
|
15591
|
-
'v-navigation-drawer--end': props.location === 'right',
|
|
15821
|
+
"class": ['v-navigation-drawer', `v-navigation-drawer--${location.value}`, {
|
|
15592
15822
|
'v-navigation-drawer--expand-on-hover': props.expandOnHover,
|
|
15593
15823
|
'v-navigation-drawer--floating': props.floating,
|
|
15594
15824
|
'v-navigation-drawer--is-hovering': isHovering.value,
|
|
15595
15825
|
'v-navigation-drawer--rail': props.rail,
|
|
15596
|
-
'v-navigation-drawer--start': props.location === 'left',
|
|
15597
15826
|
'v-navigation-drawer--temporary': isTemporary.value,
|
|
15598
|
-
'v-navigation-drawer--active': isActive.value
|
|
15827
|
+
'v-navigation-drawer--active': isActive.value,
|
|
15828
|
+
'v-navigation-drawer--sticky': isSticky.value
|
|
15599
15829
|
}, themeClasses.value, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, roundedClasses.value],
|
|
15600
|
-
"style": [backgroundColorStyles.value, layoutItemStyles.value, dragStyles.value, ssrBootStyles.value]
|
|
15830
|
+
"style": [backgroundColorStyles.value, layoutItemStyles.value, dragStyles.value, ssrBootStyles.value, stickyStyles.value]
|
|
15601
15831
|
}, attrs), {
|
|
15602
15832
|
default: () => [hasImage && vue.createVNode("div", {
|
|
15603
15833
|
"key": "image",
|
|
@@ -15617,14 +15847,16 @@
|
|
|
15617
15847
|
}), vue.createVNode(vue.Transition, {
|
|
15618
15848
|
"name": "fade-transition"
|
|
15619
15849
|
}, {
|
|
15620
|
-
default: () => [isTemporary.value && (isDragging.value || isActive.value) && vue.createVNode("div", {
|
|
15621
|
-
"class":
|
|
15622
|
-
"style": scrimStyles.value,
|
|
15850
|
+
default: () => [isTemporary.value && (isDragging.value || isActive.value) && !!props.scrim && vue.createVNode("div", {
|
|
15851
|
+
"class": ['v-navigation-drawer__scrim', scrimColor.backgroundColorClasses.value],
|
|
15852
|
+
"style": [scrimStyles.value, scrimColor.backgroundColorStyles.value],
|
|
15623
15853
|
"onClick": () => isActive.value = false
|
|
15624
15854
|
}, null)]
|
|
15625
15855
|
})]);
|
|
15626
15856
|
});
|
|
15627
|
-
return {
|
|
15857
|
+
return {
|
|
15858
|
+
isStuck
|
|
15859
|
+
};
|
|
15628
15860
|
}
|
|
15629
15861
|
|
|
15630
15862
|
});
|
|
@@ -15805,7 +16037,7 @@
|
|
|
15805
16037
|
return length.value;
|
|
15806
16038
|
});
|
|
15807
16039
|
const range = vue.computed(() => {
|
|
15808
|
-
if (length.value <= 0) return [];
|
|
16040
|
+
if (length.value <= 0 || isNaN(length.value) || length.value > Number.MAX_SAFE_INTEGER) return [];
|
|
15809
16041
|
if (totalVisible.value <= 2) return [page.value];
|
|
15810
16042
|
|
|
15811
16043
|
if (length.value <= totalVisible.value) {
|
|
@@ -16069,27 +16301,20 @@
|
|
|
16069
16301
|
|
|
16070
16302
|
const VRadio = defineComponent({
|
|
16071
16303
|
name: 'VRadio',
|
|
16072
|
-
props: {
|
|
16073
|
-
|
|
16074
|
-
|
|
16075
|
-
|
|
16076
|
-
},
|
|
16077
|
-
trueIcon: {
|
|
16078
|
-
type: IconValue,
|
|
16079
|
-
default: '$radioOn'
|
|
16080
|
-
}
|
|
16304
|
+
props: { ...makeSelectionControlProps({
|
|
16305
|
+
falseIcon: '$radioOff',
|
|
16306
|
+
trueIcon: '$radioOn'
|
|
16307
|
+
})
|
|
16081
16308
|
},
|
|
16082
16309
|
|
|
16083
16310
|
setup(props, _ref) {
|
|
16084
16311
|
let {
|
|
16085
16312
|
slots
|
|
16086
16313
|
} = _ref;
|
|
16087
|
-
useRender(() => vue.createVNode(VSelectionControl, {
|
|
16314
|
+
useRender(() => vue.createVNode(VSelectionControl, vue.mergeProps(props, {
|
|
16088
16315
|
"class": "v-radio",
|
|
16089
|
-
"trueIcon": props.trueIcon,
|
|
16090
|
-
"falseIcon": props.falseIcon,
|
|
16091
16316
|
"type": "radio"
|
|
16092
|
-
}, slots));
|
|
16317
|
+
}), slots));
|
|
16093
16318
|
return {};
|
|
16094
16319
|
}
|
|
16095
16320
|
|
|
@@ -16118,6 +16343,9 @@
|
|
|
16118
16343
|
default: 'radio'
|
|
16119
16344
|
}
|
|
16120
16345
|
},
|
|
16346
|
+
emits: {
|
|
16347
|
+
'update:modelValue': val => true
|
|
16348
|
+
},
|
|
16121
16349
|
|
|
16122
16350
|
setup(props, _ref) {
|
|
16123
16351
|
let {
|
|
@@ -16126,6 +16354,13 @@
|
|
|
16126
16354
|
} = _ref;
|
|
16127
16355
|
const uid = getUid();
|
|
16128
16356
|
const id = vue.computed(() => props.id || `radio-group-${uid}`);
|
|
16357
|
+
const model = useProxiedModel(props, 'modelValue');
|
|
16358
|
+
provideDefaults({
|
|
16359
|
+
VRadio: {
|
|
16360
|
+
color: vue.toRef(props, 'color'),
|
|
16361
|
+
density: vue.toRef(props, 'density')
|
|
16362
|
+
}
|
|
16363
|
+
});
|
|
16129
16364
|
useRender(() => {
|
|
16130
16365
|
const [inputAttrs, controlAttrs] = filterInputAttrs(attrs);
|
|
16131
16366
|
const [inputProps, _1] = filterInputProps(props);
|
|
@@ -16139,6 +16374,8 @@
|
|
|
16139
16374
|
return vue.createVNode(VInput, vue.mergeProps({
|
|
16140
16375
|
"class": "v-radio-group"
|
|
16141
16376
|
}, inputAttrs, inputProps, {
|
|
16377
|
+
"modelValue": model.value,
|
|
16378
|
+
"onUpdate:modelValue": $event => model.value = $event,
|
|
16142
16379
|
"id": id.value
|
|
16143
16380
|
}), { ...slots,
|
|
16144
16381
|
default: _ref2 => {
|
|
@@ -16158,7 +16395,10 @@
|
|
|
16158
16395
|
"type": props.type,
|
|
16159
16396
|
"disabled": isDisabled.value,
|
|
16160
16397
|
"readonly": isReadonly.value
|
|
16161
|
-
}, controlAttrs
|
|
16398
|
+
}, controlAttrs, {
|
|
16399
|
+
"modelValue": model.value,
|
|
16400
|
+
"onUpdate:modelValue": $event => model.value = $event
|
|
16401
|
+
}), slots)]);
|
|
16162
16402
|
}
|
|
16163
16403
|
});
|
|
16164
16404
|
});
|
|
@@ -17035,7 +17275,6 @@
|
|
|
17035
17275
|
const VSnackbar = defineComponent({
|
|
17036
17276
|
name: 'VSnackbar',
|
|
17037
17277
|
props: {
|
|
17038
|
-
app: Boolean,
|
|
17039
17278
|
contentClass: {
|
|
17040
17279
|
type: String,
|
|
17041
17280
|
default: ''
|
|
@@ -17117,6 +17356,7 @@
|
|
|
17117
17356
|
"contentProps": {
|
|
17118
17357
|
style: locationStyles.value
|
|
17119
17358
|
},
|
|
17359
|
+
"contentClass": props.contentClass,
|
|
17120
17360
|
"persistent": true,
|
|
17121
17361
|
"noClickAnimation": true,
|
|
17122
17362
|
"scrim": false,
|
|
@@ -17128,7 +17368,7 @@
|
|
|
17128
17368
|
"onPointerenter": onPointerenter,
|
|
17129
17369
|
"onPointerleave": startTimeout
|
|
17130
17370
|
}, [genOverlays(false, 'v-snackbar'), slots.default && vue.createVNode("div", {
|
|
17131
|
-
"class":
|
|
17371
|
+
"class": "v-snackbar__content",
|
|
17132
17372
|
"role": "status",
|
|
17133
17373
|
"aria-live": "polite"
|
|
17134
17374
|
}, [slots.default()]), slots.actions && vue.createVNode(VDefaultsProvider, {
|
|
@@ -17145,7 +17385,7 @@
|
|
|
17145
17385
|
})])],
|
|
17146
17386
|
activator: slots.activator
|
|
17147
17387
|
}));
|
|
17148
|
-
return
|
|
17388
|
+
return forwardRefs({}, overlay);
|
|
17149
17389
|
}
|
|
17150
17390
|
|
|
17151
17391
|
});
|
|
@@ -17631,7 +17871,7 @@
|
|
|
17631
17871
|
const vInputRef = vue.ref();
|
|
17632
17872
|
const vFieldRef = vue.ref();
|
|
17633
17873
|
const isFocused = vue.ref(false);
|
|
17634
|
-
const controlHeight = vue.ref('
|
|
17874
|
+
const controlHeight = vue.ref('');
|
|
17635
17875
|
const textareaRef = vue.ref();
|
|
17636
17876
|
const isActive = vue.computed(() => isFocused.value || props.persistentPlaceholder);
|
|
17637
17877
|
const messages = vue.computed(() => {
|
|
@@ -17671,14 +17911,15 @@
|
|
|
17671
17911
|
function calculateInputHeight() {
|
|
17672
17912
|
if (!props.autoGrow) return;
|
|
17673
17913
|
vue.nextTick(() => {
|
|
17674
|
-
if (!sizerRef.value) return;
|
|
17914
|
+
if (!sizerRef.value || !vFieldRef.value) return;
|
|
17675
17915
|
const style = getComputedStyle(sizerRef.value);
|
|
17676
|
-
const
|
|
17916
|
+
const fieldStyle = getComputedStyle(vFieldRef.value.$el);
|
|
17917
|
+
const padding = parseFloat(style.getPropertyValue('--v-field-padding-top')) + parseFloat(style.getPropertyValue('--v-input-padding-top')) + parseFloat(style.getPropertyValue('--v-field-padding-bottom'));
|
|
17677
17918
|
const height = sizerRef.value.scrollHeight;
|
|
17678
17919
|
const lineHeight = parseFloat(style.lineHeight);
|
|
17679
|
-
const minHeight = parseFloat(props.rows) * lineHeight + padding;
|
|
17920
|
+
const minHeight = Math.max(parseFloat(props.rows) * lineHeight + padding, parseFloat(fieldStyle.getPropertyValue('--v-input-control-height')));
|
|
17680
17921
|
const maxHeight = parseFloat(props.maxRows) * lineHeight + padding || Infinity;
|
|
17681
|
-
controlHeight.value = convertToUnit(
|
|
17922
|
+
controlHeight.value = convertToUnit(clamp(height != null ? height : 0, minHeight, maxHeight));
|
|
17682
17923
|
});
|
|
17683
17924
|
}
|
|
17684
17925
|
|
|
@@ -17686,6 +17927,7 @@
|
|
|
17686
17927
|
vue.watch(model, calculateInputHeight);
|
|
17687
17928
|
vue.watch(() => props.rows, calculateInputHeight);
|
|
17688
17929
|
vue.watch(() => props.maxRows, calculateInputHeight);
|
|
17930
|
+
vue.watch(() => props.density, calculateInputHeight);
|
|
17689
17931
|
let observer;
|
|
17690
17932
|
vue.watch(sizerRef, val => {
|
|
17691
17933
|
if (val) {
|
|
@@ -17712,11 +17954,14 @@
|
|
|
17712
17954
|
}] = filterInputProps(props);
|
|
17713
17955
|
const [fieldProps] = filterFieldProps(props);
|
|
17714
17956
|
return vue.createVNode(VInput, vue.mergeProps({
|
|
17957
|
+
"ref": vInputRef,
|
|
17715
17958
|
"modelValue": model.value,
|
|
17716
17959
|
"onUpdate:modelValue": $event => model.value = $event,
|
|
17717
|
-
"class": ['v-textarea', {
|
|
17960
|
+
"class": ['v-textarea v-text-field', {
|
|
17718
17961
|
'v-textarea--prefixed': props.prefix,
|
|
17719
17962
|
'v-textarea--suffixed': props.suffix,
|
|
17963
|
+
'v-text-field--prefixed': props.prefix,
|
|
17964
|
+
'v-text-field--suffixed': props.suffix,
|
|
17720
17965
|
'v-textarea--auto-grow': props.autoGrow,
|
|
17721
17966
|
'v-textarea--no-resize': props.noResize || props.autoGrow
|
|
17722
17967
|
}]
|
|
@@ -17731,8 +17976,9 @@
|
|
|
17731
17976
|
isValid
|
|
17732
17977
|
} = _ref2;
|
|
17733
17978
|
return vue.createVNode(VField, vue.mergeProps({
|
|
17979
|
+
"ref": vFieldRef,
|
|
17734
17980
|
"style": {
|
|
17735
|
-
'--v-
|
|
17981
|
+
'--v-textarea-control-height': controlHeight.value
|
|
17736
17982
|
},
|
|
17737
17983
|
"onClick:control": onControlClick,
|
|
17738
17984
|
"onClick:clear": onClear,
|
|
@@ -17792,7 +18038,7 @@
|
|
|
17792
18038
|
} : undefined
|
|
17793
18039
|
});
|
|
17794
18040
|
});
|
|
17795
|
-
return
|
|
18041
|
+
return forwardRefs({}, vInputRef, vFieldRef, textareaRef);
|
|
17796
18042
|
}
|
|
17797
18043
|
|
|
17798
18044
|
});
|
|
@@ -17876,7 +18122,8 @@
|
|
|
17876
18122
|
lineColor: vue.toRef(props, 'lineColor')
|
|
17877
18123
|
},
|
|
17878
18124
|
VTimelineItem: {
|
|
17879
|
-
density: vue.toRef(props, 'density')
|
|
18125
|
+
density: vue.toRef(props, 'density'),
|
|
18126
|
+
lineInset: vue.toRef(props, 'lineInset')
|
|
17880
18127
|
}
|
|
17881
18128
|
});
|
|
17882
18129
|
const sideClasses = vue.computed(() => {
|
|
@@ -17901,12 +18148,11 @@
|
|
|
17901
18148
|
}
|
|
17902
18149
|
});
|
|
17903
18150
|
useRender(() => vue.createVNode(props.tag, {
|
|
17904
|
-
"class": ['v-timeline', `v-timeline--${props.direction}`, `v-timeline--align-${props.align}`,
|
|
18151
|
+
"class": ['v-timeline', `v-timeline--${props.direction}`, `v-timeline--align-${props.align}`, truncateClasses.value, {
|
|
17905
18152
|
'v-timeline--inset-line': !!props.lineInset
|
|
17906
18153
|
}, themeClasses.value, densityClasses.value, sideClasses.value],
|
|
17907
18154
|
"style": {
|
|
17908
|
-
'--v-timeline-line-thickness': convertToUnit(props.lineThickness)
|
|
17909
|
-
'--v-timeline-line-inset': convertToUnit(props.lineInset)
|
|
18155
|
+
'--v-timeline-line-thickness': convertToUnit(props.lineThickness)
|
|
17910
18156
|
}
|
|
17911
18157
|
}, slots));
|
|
17912
18158
|
return {};
|
|
@@ -17964,7 +18210,10 @@
|
|
|
17964
18210
|
"class": ['v-timeline-divider', {
|
|
17965
18211
|
'v-timeline-divider--fill-dot': props.fillDot
|
|
17966
18212
|
}]
|
|
17967
|
-
}, [
|
|
18213
|
+
}, [vue.createVNode("div", {
|
|
18214
|
+
"class": ['v-timeline-divider__before', lineColorClasses.value],
|
|
18215
|
+
"style": lineColorStyles.value
|
|
18216
|
+
}, null), !props.hideDot && vue.createVNode("div", {
|
|
17968
18217
|
"key": "dot",
|
|
17969
18218
|
"class": ['v-timeline-divider__dot', elevationClasses.value, roundedClasses.value, sizeClasses.value],
|
|
17970
18219
|
"style": sizeStyles.value
|
|
@@ -17972,7 +18221,7 @@
|
|
|
17972
18221
|
"class": ['v-timeline-divider__inner-dot', backgroundColorClasses.value, roundedClasses.value],
|
|
17973
18222
|
"style": backgroundColorStyles.value
|
|
17974
18223
|
}, [(_slots$default = (_slots$default2 = slots.default) == null ? void 0 : _slots$default2.call(slots)) != null ? _slots$default : props.icon ? vue.createVNode(VIcon, null, null) : undefined])]), vue.createVNode("div", {
|
|
17975
|
-
"class": ['v-timeline-
|
|
18224
|
+
"class": ['v-timeline-divider__after', lineColorClasses.value],
|
|
17976
18225
|
"style": lineColorStyles.value
|
|
17977
18226
|
}, null)]);
|
|
17978
18227
|
});
|
|
@@ -17994,6 +18243,7 @@
|
|
|
17994
18243
|
},
|
|
17995
18244
|
icon: IconValue,
|
|
17996
18245
|
iconColor: String,
|
|
18246
|
+
lineInset: [Number, String],
|
|
17997
18247
|
...makeRoundedProps(),
|
|
17998
18248
|
...makeElevationProps(),
|
|
17999
18249
|
...makeSizeProps(),
|
|
@@ -18026,7 +18276,8 @@
|
|
|
18026
18276
|
'v-timeline-item--fill-dot': props.fillDot
|
|
18027
18277
|
}],
|
|
18028
18278
|
"style": {
|
|
18029
|
-
'--v-timeline-dot-size': convertToUnit(dotSize.value)
|
|
18279
|
+
'--v-timeline-dot-size': convertToUnit(dotSize.value),
|
|
18280
|
+
'--v-timeline-line-inset': props.lineInset ? `calc(var(--v-timeline-dot-size) / 2 + ${convertToUnit(props.lineInset)})` : convertToUnit(0)
|
|
18030
18281
|
}
|
|
18031
18282
|
}, [vue.createVNode("div", {
|
|
18032
18283
|
"class": "v-timeline-item__body",
|
|
@@ -18133,7 +18384,7 @@
|
|
|
18133
18384
|
return (_slots$default = (_slots$default2 = slots.default) == null ? void 0 : _slots$default2.call(slots, ...args)) != null ? _slots$default : props.text;
|
|
18134
18385
|
}
|
|
18135
18386
|
}));
|
|
18136
|
-
return
|
|
18387
|
+
return forwardRefs({}, overlay);
|
|
18137
18388
|
}
|
|
18138
18389
|
|
|
18139
18390
|
});
|
|
@@ -18539,7 +18790,7 @@
|
|
|
18539
18790
|
...options
|
|
18540
18791
|
});
|
|
18541
18792
|
};
|
|
18542
|
-
const version = "3.0.0-beta.
|
|
18793
|
+
const version = "3.0.0-beta.9";
|
|
18543
18794
|
|
|
18544
18795
|
exports.components = components;
|
|
18545
18796
|
exports.createVuetify = createVuetify;
|
|
@@ -18547,6 +18798,7 @@
|
|
|
18547
18798
|
exports.provideRtl = provideRtl;
|
|
18548
18799
|
exports.useDisplay = useDisplay;
|
|
18549
18800
|
exports.useLayout = useLayout;
|
|
18801
|
+
exports.useLocale = useLocale;
|
|
18550
18802
|
exports.useRtl = useRtl;
|
|
18551
18803
|
exports.useTheme = useTheme;
|
|
18552
18804
|
exports.version = version;
|