vuetify 3.5.8 → 3.5.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_component-variables-labs.sass +1 -0
- package/dist/json/attributes.json +525 -13
- package/dist/json/importMap-labs.json +24 -8
- package/dist/json/importMap.json +130 -130
- package/dist/json/tags.json +148 -0
- package/dist/json/web-types.json +2021 -147
- package/dist/vuetify-labs.css +2819 -2760
- package/dist/vuetify-labs.d.ts +5860 -2816
- package/dist/vuetify-labs.esm.js +1286 -248
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +1286 -247
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +553 -547
- package/dist/vuetify.d.ts +2835 -2281
- package/dist/vuetify.esm.js +883 -408
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +882 -406
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +1137 -1109
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAlert/index.d.mts +15 -15
- package/lib/components/VApp/index.d.mts +8 -8
- package/lib/components/VAppBar/index.d.mts +7 -7
- package/lib/components/VAutocomplete/VAutocomplete.mjs +9 -7
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VAutocomplete/index.d.mts +232 -100
- package/lib/components/VAvatar/index.d.mts +8 -8
- package/lib/components/VBadge/index.d.mts +7 -7
- package/lib/components/VBanner/index.d.mts +20 -20
- package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/index.d.mts +27 -26
- package/lib/components/VBtnGroup/index.d.mts +8 -8
- package/lib/components/VCard/index.d.mts +32 -32
- package/lib/components/VCarousel/index.d.mts +6 -6
- package/lib/components/VCheckbox/index.d.mts +44 -44
- package/lib/components/VChip/index.d.mts +7 -7
- package/lib/components/VCode/index.d.mts +8 -8
- package/lib/components/VColorPicker/VColorPickerPreview.css +1 -0
- package/lib/components/VColorPicker/VColorPickerPreview.sass +1 -0
- package/lib/components/VColorPicker/_variables.scss +1 -0
- package/lib/components/VCombobox/VCombobox.mjs +10 -7
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VCombobox/index.d.mts +232 -100
- package/lib/components/VDataTable/index.d.mts +6 -6
- package/lib/components/VDatePicker/VDatePickerControls.mjs +1 -0
- package/lib/components/VDatePicker/VDatePickerControls.mjs.map +1 -1
- package/lib/components/VDatePicker/VDatePickerMonth.mjs +10 -4
- package/lib/components/VDatePicker/VDatePickerMonth.mjs.map +1 -1
- package/lib/components/VDatePicker/index.d.mts +10 -10
- package/lib/components/VDefaultsProvider/index.d.mts +8 -8
- package/lib/components/VDialog/index.d.mts +12 -6
- package/lib/components/VDivider/index.d.mts +8 -8
- package/lib/components/VExpansionPanel/index.d.mts +19 -19
- package/lib/components/VField/VField.css +2 -0
- package/lib/components/VField/VField.mjs +1 -1
- package/lib/components/VField/VField.mjs.map +1 -1
- package/lib/components/VField/VField.sass +2 -0
- package/lib/components/VField/index.d.mts +28 -28
- package/lib/components/VFileInput/index.d.mts +133 -133
- package/lib/components/VFooter/index.d.mts +8 -8
- package/lib/components/VGrid/index.d.mts +32 -32
- package/lib/components/VIcon/VIcon.css +4 -0
- package/lib/components/VIcon/VIcon.mjs +7 -3
- package/lib/components/VIcon/VIcon.mjs.map +1 -1
- package/lib/components/VIcon/VIcon.sass +4 -0
- package/lib/components/VIcon/_variables.scss +1 -0
- package/lib/components/VIcon/index.d.mts +25 -16
- package/lib/components/VImg/index.d.mts +4 -4
- package/lib/components/VInput/index.d.mts +21 -21
- package/lib/components/VKbd/index.d.mts +8 -8
- package/lib/components/VLabel/index.d.mts +8 -8
- package/lib/components/VLayout/index.d.mts +16 -16
- package/lib/components/VLazy/index.d.mts +8 -8
- package/lib/components/VList/VList.mjs +8 -2
- package/lib/components/VList/VList.mjs.map +1 -1
- package/lib/components/VList/VListGroup.mjs +3 -1
- package/lib/components/VList/VListGroup.mjs.map +1 -1
- package/lib/components/VList/VListItem.mjs +17 -4
- package/lib/components/VList/VListItem.mjs.map +1 -1
- package/lib/components/VList/index.d.mts +156 -54
- package/lib/components/VLocaleProvider/index.d.mts +12 -12
- package/lib/components/VMain/index.d.mts +8 -8
- package/lib/components/VMenu/VMenu.mjs +3 -0
- package/lib/components/VMenu/VMenu.mjs.map +1 -1
- package/lib/components/VMenu/index.d.mts +14 -8
- package/lib/components/VNavigationDrawer/VNavigationDrawer.css +1 -1
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +22 -8
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
- package/lib/components/VNavigationDrawer/VNavigationDrawer.sass +2 -1
- package/lib/components/VNavigationDrawer/index.d.mts +11 -11
- package/lib/components/VOtpInput/VOtpInput.mjs +7 -2
- package/lib/components/VOtpInput/VOtpInput.mjs.map +1 -1
- package/lib/components/VOtpInput/index.d.mts +31 -31
- package/lib/components/VOverlay/VOverlay.mjs +8 -3
- package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
- package/lib/components/VOverlay/index.d.mts +3 -0
- package/lib/components/VOverlay/scrollStrategies.mjs +2 -2
- package/lib/components/VOverlay/scrollStrategies.mjs.map +1 -1
- package/lib/components/VPagination/index.d.mts +7 -7
- package/lib/components/VProgressLinear/VProgressLinear.css +0 -1
- package/lib/components/VProgressLinear/VProgressLinear.sass +0 -1
- package/lib/components/VProgressLinear/index.d.mts +7 -7
- package/lib/components/VRadioGroup/index.d.mts +44 -44
- package/lib/components/VRangeSlider/index.d.mts +47 -47
- package/lib/components/VRating/index.d.mts +7 -7
- package/lib/components/VResponsive/index.d.mts +8 -8
- package/lib/components/VSelect/VSelect.mjs +5 -3
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VSelect/index.d.mts +232 -100
- package/lib/components/VSheet/index.d.mts +8 -8
- package/lib/components/VSkeletonLoader/index.d.mts +8 -8
- package/lib/components/VSlider/index.d.mts +47 -47
- package/lib/components/VSnackbar/index.d.mts +25 -19
- package/lib/components/VStepper/index.d.mts +41 -41
- package/lib/components/VSwitch/index.d.mts +39 -39
- package/lib/components/VSystemBar/index.d.mts +8 -8
- package/lib/components/VTabs/index.d.mts +15 -15
- package/lib/components/VTextField/index.d.mts +173 -173
- package/lib/components/VTextarea/index.d.mts +119 -119
- package/lib/components/VThemeProvider/index.d.mts +8 -8
- package/lib/components/VTimeline/index.d.mts +8 -8
- package/lib/components/VToolbar/index.d.mts +8 -8
- package/lib/components/VTooltip/index.d.mts +14 -8
- package/lib/components/VWindow/index.d.mts +10 -10
- package/lib/components/index.d.mts +2478 -1943
- package/lib/components/transitions/index.d.mts +128 -128
- package/lib/composables/date/adapters/vuetify.mjs +1 -1
- package/lib/composables/date/adapters/vuetify.mjs.map +1 -1
- package/lib/composables/nested/activeStrategies.mjs +121 -0
- package/lib/composables/nested/activeStrategies.mjs.map +1 -0
- package/lib/composables/nested/nested.mjs +50 -1
- package/lib/composables/nested/nested.mjs.map +1 -1
- package/lib/composables/nested/selectStrategies.mjs +4 -2
- package/lib/composables/nested/selectStrategies.mjs.map +1 -1
- package/lib/composables/theme.mjs +1 -1
- package/lib/composables/theme.mjs.map +1 -1
- package/lib/entry-bundler.mjs +3 -2
- package/lib/entry-bundler.mjs.map +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/framework.mjs.map +1 -1
- package/lib/iconsets/fa.mjs +2 -0
- package/lib/iconsets/fa.mjs.map +1 -1
- package/lib/iconsets/fa4.mjs +2 -0
- package/lib/iconsets/fa4.mjs.map +1 -1
- package/lib/iconsets/md.mjs +2 -0
- package/lib/iconsets/md.mjs.map +1 -1
- package/lib/iconsets/mdi-svg.mjs +2 -0
- package/lib/iconsets/mdi-svg.mjs.map +1 -1
- package/lib/iconsets/mdi.mjs +2 -0
- package/lib/iconsets/mdi.mjs.map +1 -1
- package/lib/index.d.mts +48 -44
- package/lib/labs/VCalendar/index.d.mts +32 -32
- package/lib/labs/VFab/index.d.mts +15 -15
- package/lib/labs/VNumberInput/VNumberInput.css +38 -0
- package/lib/labs/VNumberInput/VNumberInput.mjs +209 -0
- package/lib/labs/VNumberInput/VNumberInput.mjs.map +1 -0
- package/lib/labs/VNumberInput/VNumberInput.sass +47 -0
- package/lib/labs/VNumberInput/_variables.scss +1 -0
- package/lib/labs/VNumberInput/index.d.mts +607 -0
- package/lib/labs/VNumberInput/index.mjs +2 -0
- package/lib/labs/VNumberInput/index.mjs.map +1 -0
- package/lib/labs/VPicker/index.d.mts +8 -8
- package/lib/labs/VSparkline/index.d.mts +7 -7
- package/lib/labs/VSpeedDial/VSpeedDial.mjs +9 -5
- package/lib/labs/VSpeedDial/VSpeedDial.mjs.map +1 -1
- package/lib/labs/VSpeedDial/index.d.mts +120 -24
- package/lib/labs/VTreeview/VTreeview.mjs +154 -0
- package/lib/labs/VTreeview/VTreeview.mjs.map +1 -0
- package/lib/labs/VTreeview/VTreeviewChildren.mjs +98 -0
- package/lib/labs/VTreeview/VTreeviewChildren.mjs.map +1 -0
- package/lib/labs/VTreeview/VTreeviewGroup.mjs +48 -0
- package/lib/labs/VTreeview/VTreeviewGroup.mjs.map +1 -0
- package/lib/labs/VTreeview/VTreeviewItem.css +17 -0
- package/lib/labs/VTreeview/VTreeviewItem.mjs +86 -0
- package/lib/labs/VTreeview/VTreeviewItem.mjs.map +1 -0
- package/lib/labs/VTreeview/VTreeviewItem.sass +19 -0
- package/lib/labs/VTreeview/index.d.mts +1975 -0
- package/lib/labs/VTreeview/index.mjs +4 -0
- package/lib/labs/VTreeview/index.mjs.map +1 -0
- package/lib/labs/VTreeview/shared.mjs +4 -0
- package/lib/labs/VTreeview/shared.mjs.map +1 -0
- package/lib/labs/VTreeview/variables.scss +8 -0
- package/lib/labs/components.d.mts +4553 -1925
- package/lib/labs/components.mjs +4 -2
- package/lib/labs/components.mjs.map +1 -1
- package/lib/locale/no.mjs +1 -1
- package/lib/locale/no.mjs.map +1 -1
- package/package.json +2 -2
package/dist/vuetify.esm.js
CHANGED
|
@@ -1,81 +1,10 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Vuetify v3.5.
|
|
2
|
+
* Vuetify v3.5.10
|
|
3
3
|
* Forged by John Leider
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import { Fragment, reactive, computed, watchEffect, toRefs, capitalize, isVNode, Comment, unref, warn, ref, provide, shallowRef, inject as inject$1, defineComponent as defineComponent$1, camelize, h, getCurrentInstance as getCurrentInstance$1, onBeforeUnmount, watch, readonly, onDeactivated, onActivated, onMounted, onScopeDispose, effectScope, toRaw,
|
|
8
|
-
|
|
9
|
-
// Types
|
|
10
|
-
// eslint-disable-line vue/prefer-import-from-vue
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* Creates a factory function for props definitions.
|
|
14
|
-
* This is used to define props in a composable then override
|
|
15
|
-
* default values in an implementing component.
|
|
16
|
-
*
|
|
17
|
-
* @example Simplified signature
|
|
18
|
-
* (props: Props) => (defaults?: Record<keyof props, any>) => Props
|
|
19
|
-
*
|
|
20
|
-
* @example Usage
|
|
21
|
-
* const makeProps = propsFactory({
|
|
22
|
-
* foo: String,
|
|
23
|
-
* })
|
|
24
|
-
*
|
|
25
|
-
* defineComponent({
|
|
26
|
-
* props: {
|
|
27
|
-
* ...makeProps({
|
|
28
|
-
* foo: 'a',
|
|
29
|
-
* }),
|
|
30
|
-
* },
|
|
31
|
-
* setup (props) {
|
|
32
|
-
* // would be "string | undefined", now "string" because a default has been provided
|
|
33
|
-
* props.foo
|
|
34
|
-
* },
|
|
35
|
-
* }
|
|
36
|
-
*/
|
|
37
|
-
|
|
38
|
-
function propsFactory(props, source) {
|
|
39
|
-
return defaults => {
|
|
40
|
-
return Object.keys(props).reduce((obj, prop) => {
|
|
41
|
-
const isObjectDefinition = typeof props[prop] === 'object' && props[prop] != null && !Array.isArray(props[prop]);
|
|
42
|
-
const definition = isObjectDefinition ? props[prop] : {
|
|
43
|
-
type: props[prop]
|
|
44
|
-
};
|
|
45
|
-
if (defaults && prop in defaults) {
|
|
46
|
-
obj[prop] = {
|
|
47
|
-
...definition,
|
|
48
|
-
default: defaults[prop]
|
|
49
|
-
};
|
|
50
|
-
} else {
|
|
51
|
-
obj[prop] = definition;
|
|
52
|
-
}
|
|
53
|
-
if (source && !obj[prop].source) {
|
|
54
|
-
obj[prop].source = source;
|
|
55
|
-
}
|
|
56
|
-
return obj;
|
|
57
|
-
}, {});
|
|
58
|
-
};
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
/**
|
|
62
|
-
* Like `Partial<T>` but doesn't care what the value is
|
|
63
|
-
*/
|
|
64
|
-
|
|
65
|
-
// Copied from Vue
|
|
66
|
-
|
|
67
|
-
// Utilities
|
|
68
|
-
|
|
69
|
-
// Types
|
|
70
|
-
|
|
71
|
-
// Composables
|
|
72
|
-
const makeComponentProps = propsFactory({
|
|
73
|
-
class: [String, Array],
|
|
74
|
-
style: {
|
|
75
|
-
type: [String, Array, Object],
|
|
76
|
-
default: null
|
|
77
|
-
}
|
|
78
|
-
}, 'component');
|
|
7
|
+
import { Fragment, reactive, computed, watchEffect, toRefs, capitalize, isVNode, Comment, unref, warn, ref, provide, shallowRef, inject as inject$1, defineComponent as defineComponent$1, camelize, h, getCurrentInstance as getCurrentInstance$1, createVNode, mergeProps, onBeforeUnmount, watch, readonly, onDeactivated, onActivated, onMounted, onScopeDispose, effectScope, toRaw, TransitionGroup, Transition, isRef, toRef, onBeforeMount, nextTick, withDirectives, resolveDirective, vShow, Text, resolveDynamicComponent, Teleport, cloneVNode, createTextVNode, onUnmounted, onBeforeUpdate, withModifiers, toDisplayString, vModelText } from 'vue';
|
|
79
8
|
|
|
80
9
|
const IN_BROWSER = typeof window !== 'undefined';
|
|
81
10
|
const SUPPORTS_INTERSECTION = IN_BROWSER && 'IntersectionObserver' in window;
|
|
@@ -1227,6 +1156,77 @@ function getForeground(color) {
|
|
|
1227
1156
|
return whiteContrast > Math.min(blackContrast, 50) ? '#fff' : '#000';
|
|
1228
1157
|
}
|
|
1229
1158
|
|
|
1159
|
+
// Types
|
|
1160
|
+
// eslint-disable-line vue/prefer-import-from-vue
|
|
1161
|
+
|
|
1162
|
+
/**
|
|
1163
|
+
* Creates a factory function for props definitions.
|
|
1164
|
+
* This is used to define props in a composable then override
|
|
1165
|
+
* default values in an implementing component.
|
|
1166
|
+
*
|
|
1167
|
+
* @example Simplified signature
|
|
1168
|
+
* (props: Props) => (defaults?: Record<keyof props, any>) => Props
|
|
1169
|
+
*
|
|
1170
|
+
* @example Usage
|
|
1171
|
+
* const makeProps = propsFactory({
|
|
1172
|
+
* foo: String,
|
|
1173
|
+
* })
|
|
1174
|
+
*
|
|
1175
|
+
* defineComponent({
|
|
1176
|
+
* props: {
|
|
1177
|
+
* ...makeProps({
|
|
1178
|
+
* foo: 'a',
|
|
1179
|
+
* }),
|
|
1180
|
+
* },
|
|
1181
|
+
* setup (props) {
|
|
1182
|
+
* // would be "string | undefined", now "string" because a default has been provided
|
|
1183
|
+
* props.foo
|
|
1184
|
+
* },
|
|
1185
|
+
* }
|
|
1186
|
+
*/
|
|
1187
|
+
|
|
1188
|
+
function propsFactory(props, source) {
|
|
1189
|
+
return defaults => {
|
|
1190
|
+
return Object.keys(props).reduce((obj, prop) => {
|
|
1191
|
+
const isObjectDefinition = typeof props[prop] === 'object' && props[prop] != null && !Array.isArray(props[prop]);
|
|
1192
|
+
const definition = isObjectDefinition ? props[prop] : {
|
|
1193
|
+
type: props[prop]
|
|
1194
|
+
};
|
|
1195
|
+
if (defaults && prop in defaults) {
|
|
1196
|
+
obj[prop] = {
|
|
1197
|
+
...definition,
|
|
1198
|
+
default: defaults[prop]
|
|
1199
|
+
};
|
|
1200
|
+
} else {
|
|
1201
|
+
obj[prop] = definition;
|
|
1202
|
+
}
|
|
1203
|
+
if (source && !obj[prop].source) {
|
|
1204
|
+
obj[prop].source = source;
|
|
1205
|
+
}
|
|
1206
|
+
return obj;
|
|
1207
|
+
}, {});
|
|
1208
|
+
};
|
|
1209
|
+
}
|
|
1210
|
+
|
|
1211
|
+
/**
|
|
1212
|
+
* Like `Partial<T>` but doesn't care what the value is
|
|
1213
|
+
*/
|
|
1214
|
+
|
|
1215
|
+
// Copied from Vue
|
|
1216
|
+
|
|
1217
|
+
// Utilities
|
|
1218
|
+
|
|
1219
|
+
// Types
|
|
1220
|
+
|
|
1221
|
+
// Composables
|
|
1222
|
+
const makeComponentProps = propsFactory({
|
|
1223
|
+
class: [String, Array],
|
|
1224
|
+
style: {
|
|
1225
|
+
type: [String, Array, Object],
|
|
1226
|
+
default: null
|
|
1227
|
+
}
|
|
1228
|
+
}, 'component');
|
|
1229
|
+
|
|
1230
1230
|
// Utilities
|
|
1231
1231
|
|
|
1232
1232
|
// Types
|
|
@@ -1533,19 +1533,464 @@ function isFixedPosition(el) {
|
|
|
1533
1533
|
if (window.getComputedStyle(el).position === 'fixed') {
|
|
1534
1534
|
return true;
|
|
1535
1535
|
}
|
|
1536
|
-
el = el.offsetParent;
|
|
1536
|
+
el = el.offsetParent;
|
|
1537
|
+
}
|
|
1538
|
+
return false;
|
|
1539
|
+
}
|
|
1540
|
+
|
|
1541
|
+
// Utilities
|
|
1542
|
+
|
|
1543
|
+
// Types
|
|
1544
|
+
|
|
1545
|
+
function useRender(render) {
|
|
1546
|
+
const vm = getCurrentInstance('useRender');
|
|
1547
|
+
vm.render = render;
|
|
1548
|
+
}
|
|
1549
|
+
|
|
1550
|
+
// Types
|
|
1551
|
+
|
|
1552
|
+
const IconValue = [String, Function, Object, Array];
|
|
1553
|
+
const IconSymbol = Symbol.for('vuetify:icons');
|
|
1554
|
+
const makeIconProps = propsFactory({
|
|
1555
|
+
icon: {
|
|
1556
|
+
type: IconValue
|
|
1557
|
+
},
|
|
1558
|
+
// Could not remove this and use makeTagProps, types complained because it is not required
|
|
1559
|
+
tag: {
|
|
1560
|
+
type: String,
|
|
1561
|
+
required: true
|
|
1562
|
+
}
|
|
1563
|
+
}, 'icon');
|
|
1564
|
+
const VComponentIcon = genericComponent()({
|
|
1565
|
+
name: 'VComponentIcon',
|
|
1566
|
+
props: makeIconProps(),
|
|
1567
|
+
setup(props, _ref) {
|
|
1568
|
+
let {
|
|
1569
|
+
slots
|
|
1570
|
+
} = _ref;
|
|
1571
|
+
return () => {
|
|
1572
|
+
const Icon = props.icon;
|
|
1573
|
+
return createVNode(props.tag, null, {
|
|
1574
|
+
default: () => [props.icon ? createVNode(Icon, null, null) : slots.default?.()]
|
|
1575
|
+
});
|
|
1576
|
+
};
|
|
1577
|
+
}
|
|
1578
|
+
});
|
|
1579
|
+
const VSvgIcon = defineComponent({
|
|
1580
|
+
name: 'VSvgIcon',
|
|
1581
|
+
inheritAttrs: false,
|
|
1582
|
+
props: makeIconProps(),
|
|
1583
|
+
setup(props, _ref2) {
|
|
1584
|
+
let {
|
|
1585
|
+
attrs
|
|
1586
|
+
} = _ref2;
|
|
1587
|
+
return () => {
|
|
1588
|
+
return createVNode(props.tag, mergeProps(attrs, {
|
|
1589
|
+
"style": null
|
|
1590
|
+
}), {
|
|
1591
|
+
default: () => [createVNode("svg", {
|
|
1592
|
+
"class": "v-icon__svg",
|
|
1593
|
+
"xmlns": "http://www.w3.org/2000/svg",
|
|
1594
|
+
"viewBox": "0 0 24 24",
|
|
1595
|
+
"role": "img",
|
|
1596
|
+
"aria-hidden": "true"
|
|
1597
|
+
}, [Array.isArray(props.icon) ? props.icon.map(path => Array.isArray(path) ? createVNode("path", {
|
|
1598
|
+
"d": path[0],
|
|
1599
|
+
"fill-opacity": path[1]
|
|
1600
|
+
}, null) : createVNode("path", {
|
|
1601
|
+
"d": path
|
|
1602
|
+
}, null)) : createVNode("path", {
|
|
1603
|
+
"d": props.icon
|
|
1604
|
+
}, null)])]
|
|
1605
|
+
});
|
|
1606
|
+
};
|
|
1607
|
+
}
|
|
1608
|
+
});
|
|
1609
|
+
const VLigatureIcon = defineComponent({
|
|
1610
|
+
name: 'VLigatureIcon',
|
|
1611
|
+
props: makeIconProps(),
|
|
1612
|
+
setup(props) {
|
|
1613
|
+
return () => {
|
|
1614
|
+
return createVNode(props.tag, null, {
|
|
1615
|
+
default: () => [props.icon]
|
|
1616
|
+
});
|
|
1617
|
+
};
|
|
1618
|
+
}
|
|
1619
|
+
});
|
|
1620
|
+
const VClassIcon = defineComponent({
|
|
1621
|
+
name: 'VClassIcon',
|
|
1622
|
+
props: makeIconProps(),
|
|
1623
|
+
setup(props) {
|
|
1624
|
+
return () => {
|
|
1625
|
+
return createVNode(props.tag, {
|
|
1626
|
+
"class": props.icon
|
|
1627
|
+
}, null);
|
|
1628
|
+
};
|
|
1629
|
+
}
|
|
1630
|
+
});
|
|
1631
|
+
function genDefaults$3() {
|
|
1632
|
+
return {
|
|
1633
|
+
svg: {
|
|
1634
|
+
component: VSvgIcon
|
|
1635
|
+
},
|
|
1636
|
+
class: {
|
|
1637
|
+
component: VClassIcon
|
|
1638
|
+
}
|
|
1639
|
+
};
|
|
1640
|
+
}
|
|
1641
|
+
|
|
1642
|
+
// Composables
|
|
1643
|
+
function createIcons(options) {
|
|
1644
|
+
const sets = genDefaults$3();
|
|
1645
|
+
const defaultSet = options?.defaultSet ?? 'mdi';
|
|
1646
|
+
if (defaultSet === 'mdi' && !sets.mdi) {
|
|
1647
|
+
sets.mdi = mdi;
|
|
1648
|
+
}
|
|
1649
|
+
return mergeDeep({
|
|
1650
|
+
defaultSet,
|
|
1651
|
+
sets,
|
|
1652
|
+
aliases: {
|
|
1653
|
+
...aliases,
|
|
1654
|
+
/* eslint-disable max-len */
|
|
1655
|
+
vuetify: ['M8.2241 14.2009L12 21L22 3H14.4459L8.2241 14.2009Z', ['M7.26303 12.4733L7.00113 12L2 3H12.5261C12.5261 3 12.5261 3 12.5261 3L7.26303 12.4733Z', 0.6]],
|
|
1656
|
+
'vuetify-outline': 'svg:M7.26 12.47 12.53 3H2L7.26 12.47ZM14.45 3 8.22 14.2 12 21 22 3H14.45ZM18.6 5 12 16.88 10.51 14.2 15.62 5ZM7.26 8.35 5.4 5H9.13L7.26 8.35Z'
|
|
1657
|
+
/* eslint-enable max-len */
|
|
1658
|
+
}
|
|
1659
|
+
}, options);
|
|
1660
|
+
}
|
|
1661
|
+
const useIcon = props => {
|
|
1662
|
+
const icons = inject$1(IconSymbol);
|
|
1663
|
+
if (!icons) throw new Error('Missing Vuetify Icons provide!');
|
|
1664
|
+
const iconData = computed(() => {
|
|
1665
|
+
const iconAlias = unref(props);
|
|
1666
|
+
if (!iconAlias) return {
|
|
1667
|
+
component: VComponentIcon
|
|
1668
|
+
};
|
|
1669
|
+
let icon = iconAlias;
|
|
1670
|
+
if (typeof icon === 'string') {
|
|
1671
|
+
icon = icon.trim();
|
|
1672
|
+
if (icon.startsWith('$')) {
|
|
1673
|
+
icon = icons.aliases?.[icon.slice(1)];
|
|
1674
|
+
}
|
|
1675
|
+
}
|
|
1676
|
+
if (!icon) throw new Error(`Could not find aliased icon "${iconAlias}"`);
|
|
1677
|
+
if (Array.isArray(icon)) {
|
|
1678
|
+
return {
|
|
1679
|
+
component: VSvgIcon,
|
|
1680
|
+
icon
|
|
1681
|
+
};
|
|
1682
|
+
} else if (typeof icon !== 'string') {
|
|
1683
|
+
return {
|
|
1684
|
+
component: VComponentIcon,
|
|
1685
|
+
icon
|
|
1686
|
+
};
|
|
1687
|
+
}
|
|
1688
|
+
const iconSetName = Object.keys(icons.sets).find(setName => typeof icon === 'string' && icon.startsWith(`${setName}:`));
|
|
1689
|
+
const iconName = iconSetName ? icon.slice(iconSetName.length + 1) : icon;
|
|
1690
|
+
const iconSet = icons.sets[iconSetName ?? icons.defaultSet];
|
|
1691
|
+
return {
|
|
1692
|
+
component: iconSet.component,
|
|
1693
|
+
icon: iconName
|
|
1694
|
+
};
|
|
1695
|
+
});
|
|
1696
|
+
return {
|
|
1697
|
+
iconData
|
|
1698
|
+
};
|
|
1699
|
+
};
|
|
1700
|
+
|
|
1701
|
+
// Composables
|
|
1702
|
+
|
|
1703
|
+
// Types
|
|
1704
|
+
|
|
1705
|
+
const aliases = {
|
|
1706
|
+
collapse: 'mdi-chevron-up',
|
|
1707
|
+
complete: 'mdi-check',
|
|
1708
|
+
cancel: 'mdi-close-circle',
|
|
1709
|
+
close: 'mdi-close',
|
|
1710
|
+
delete: 'mdi-close-circle',
|
|
1711
|
+
// delete (e.g. v-chip close)
|
|
1712
|
+
clear: 'mdi-close-circle',
|
|
1713
|
+
success: 'mdi-check-circle',
|
|
1714
|
+
info: 'mdi-information',
|
|
1715
|
+
warning: 'mdi-alert-circle',
|
|
1716
|
+
error: 'mdi-close-circle',
|
|
1717
|
+
prev: 'mdi-chevron-left',
|
|
1718
|
+
next: 'mdi-chevron-right',
|
|
1719
|
+
checkboxOn: 'mdi-checkbox-marked',
|
|
1720
|
+
checkboxOff: 'mdi-checkbox-blank-outline',
|
|
1721
|
+
checkboxIndeterminate: 'mdi-minus-box',
|
|
1722
|
+
delimiter: 'mdi-circle',
|
|
1723
|
+
// for carousel
|
|
1724
|
+
sortAsc: 'mdi-arrow-up',
|
|
1725
|
+
sortDesc: 'mdi-arrow-down',
|
|
1726
|
+
expand: 'mdi-chevron-down',
|
|
1727
|
+
menu: 'mdi-menu',
|
|
1728
|
+
subgroup: 'mdi-menu-down',
|
|
1729
|
+
dropdown: 'mdi-menu-down',
|
|
1730
|
+
radioOn: 'mdi-radiobox-marked',
|
|
1731
|
+
radioOff: 'mdi-radiobox-blank',
|
|
1732
|
+
edit: 'mdi-pencil',
|
|
1733
|
+
ratingEmpty: 'mdi-star-outline',
|
|
1734
|
+
ratingFull: 'mdi-star',
|
|
1735
|
+
ratingHalf: 'mdi-star-half-full',
|
|
1736
|
+
loading: 'mdi-cached',
|
|
1737
|
+
first: 'mdi-page-first',
|
|
1738
|
+
last: 'mdi-page-last',
|
|
1739
|
+
unfold: 'mdi-unfold-more-horizontal',
|
|
1740
|
+
file: 'mdi-paperclip',
|
|
1741
|
+
plus: 'mdi-plus',
|
|
1742
|
+
minus: 'mdi-minus',
|
|
1743
|
+
calendar: 'mdi-calendar',
|
|
1744
|
+
treeviewCollapse: 'mdi-menu-down',
|
|
1745
|
+
treeviewExpand: 'mdi-menu-right',
|
|
1746
|
+
eyeDropper: 'mdi-eyedropper'
|
|
1747
|
+
};
|
|
1748
|
+
const mdi = {
|
|
1749
|
+
// Not using mergeProps here, functional components merge props by default (?)
|
|
1750
|
+
component: props => h(VClassIcon, {
|
|
1751
|
+
...props,
|
|
1752
|
+
class: 'mdi'
|
|
1753
|
+
})
|
|
1754
|
+
};
|
|
1755
|
+
|
|
1756
|
+
// Icons
|
|
1757
|
+
|
|
1758
|
+
// Types
|
|
1759
|
+
|
|
1760
|
+
const md1 = {
|
|
1761
|
+
defaults: {
|
|
1762
|
+
global: {
|
|
1763
|
+
rounded: 'sm'
|
|
1764
|
+
},
|
|
1765
|
+
VAvatar: {
|
|
1766
|
+
rounded: 'circle'
|
|
1767
|
+
},
|
|
1768
|
+
VAutocomplete: {
|
|
1769
|
+
variant: 'underlined'
|
|
1770
|
+
},
|
|
1771
|
+
VBanner: {
|
|
1772
|
+
color: 'primary'
|
|
1773
|
+
},
|
|
1774
|
+
VBtn: {
|
|
1775
|
+
color: 'primary',
|
|
1776
|
+
rounded: 0
|
|
1777
|
+
},
|
|
1778
|
+
VCheckbox: {
|
|
1779
|
+
color: 'secondary'
|
|
1780
|
+
},
|
|
1781
|
+
VCombobox: {
|
|
1782
|
+
variant: 'underlined'
|
|
1783
|
+
},
|
|
1784
|
+
VSelect: {
|
|
1785
|
+
variant: 'underlined'
|
|
1786
|
+
},
|
|
1787
|
+
VSlider: {
|
|
1788
|
+
color: 'primary'
|
|
1789
|
+
},
|
|
1790
|
+
VTabs: {
|
|
1791
|
+
color: 'primary'
|
|
1792
|
+
},
|
|
1793
|
+
VTextarea: {
|
|
1794
|
+
variant: 'underlined'
|
|
1795
|
+
},
|
|
1796
|
+
VTextField: {
|
|
1797
|
+
variant: 'underlined'
|
|
1798
|
+
},
|
|
1799
|
+
VToolbar: {
|
|
1800
|
+
VBtn: {
|
|
1801
|
+
color: null
|
|
1802
|
+
}
|
|
1803
|
+
}
|
|
1804
|
+
},
|
|
1805
|
+
icons: {
|
|
1806
|
+
defaultSet: 'mdi',
|
|
1807
|
+
sets: {
|
|
1808
|
+
mdi
|
|
1809
|
+
}
|
|
1810
|
+
},
|
|
1811
|
+
theme: {
|
|
1812
|
+
themes: {
|
|
1813
|
+
light: {
|
|
1814
|
+
colors: {
|
|
1815
|
+
primary: '#3F51B5',
|
|
1816
|
+
'primary-darken-1': '#303F9F',
|
|
1817
|
+
'primary-lighten-1': '#C5CAE9',
|
|
1818
|
+
secondary: '#FF4081',
|
|
1819
|
+
'secondary-darken-1': '#F50057',
|
|
1820
|
+
'secondary-lighten-1': '#FF80AB',
|
|
1821
|
+
accent: '#009688'
|
|
1822
|
+
}
|
|
1823
|
+
}
|
|
1824
|
+
}
|
|
1825
|
+
}
|
|
1826
|
+
};
|
|
1827
|
+
|
|
1828
|
+
// Icons
|
|
1829
|
+
|
|
1830
|
+
// Types
|
|
1831
|
+
|
|
1832
|
+
const md2 = {
|
|
1833
|
+
defaults: {
|
|
1834
|
+
global: {
|
|
1835
|
+
rounded: 'md'
|
|
1836
|
+
},
|
|
1837
|
+
VAvatar: {
|
|
1838
|
+
rounded: 'circle'
|
|
1839
|
+
},
|
|
1840
|
+
VAutocomplete: {
|
|
1841
|
+
variant: 'filled'
|
|
1842
|
+
},
|
|
1843
|
+
VBanner: {
|
|
1844
|
+
color: 'primary'
|
|
1845
|
+
},
|
|
1846
|
+
VBtn: {
|
|
1847
|
+
color: 'primary'
|
|
1848
|
+
},
|
|
1849
|
+
VCheckbox: {
|
|
1850
|
+
color: 'secondary'
|
|
1851
|
+
},
|
|
1852
|
+
VCombobox: {
|
|
1853
|
+
variant: 'filled'
|
|
1854
|
+
},
|
|
1855
|
+
VSelect: {
|
|
1856
|
+
variant: 'filled'
|
|
1857
|
+
},
|
|
1858
|
+
VSlider: {
|
|
1859
|
+
color: 'primary'
|
|
1860
|
+
},
|
|
1861
|
+
VTabs: {
|
|
1862
|
+
color: 'primary'
|
|
1863
|
+
},
|
|
1864
|
+
VTextarea: {
|
|
1865
|
+
variant: 'filled'
|
|
1866
|
+
},
|
|
1867
|
+
VTextField: {
|
|
1868
|
+
variant: 'filled'
|
|
1869
|
+
},
|
|
1870
|
+
VToolbar: {
|
|
1871
|
+
VBtn: {
|
|
1872
|
+
color: null
|
|
1873
|
+
}
|
|
1874
|
+
}
|
|
1875
|
+
},
|
|
1876
|
+
icons: {
|
|
1877
|
+
defaultSet: 'mdi',
|
|
1878
|
+
sets: {
|
|
1879
|
+
mdi
|
|
1880
|
+
}
|
|
1881
|
+
},
|
|
1882
|
+
theme: {
|
|
1883
|
+
themes: {
|
|
1884
|
+
light: {
|
|
1885
|
+
colors: {
|
|
1886
|
+
primary: '#6200EE',
|
|
1887
|
+
'primary-darken-1': '#3700B3',
|
|
1888
|
+
secondary: '#03DAC6',
|
|
1889
|
+
'secondary-darken-1': '#018786',
|
|
1890
|
+
error: '#B00020'
|
|
1891
|
+
}
|
|
1892
|
+
}
|
|
1893
|
+
}
|
|
1894
|
+
}
|
|
1895
|
+
};
|
|
1896
|
+
|
|
1897
|
+
// Icons
|
|
1898
|
+
|
|
1899
|
+
// Types
|
|
1900
|
+
|
|
1901
|
+
const md3 = {
|
|
1902
|
+
defaults: {
|
|
1903
|
+
VAppBar: {
|
|
1904
|
+
flat: true
|
|
1905
|
+
},
|
|
1906
|
+
VAutocomplete: {
|
|
1907
|
+
variant: 'filled'
|
|
1908
|
+
},
|
|
1909
|
+
VBanner: {
|
|
1910
|
+
color: 'primary'
|
|
1911
|
+
},
|
|
1912
|
+
VBottomSheet: {
|
|
1913
|
+
contentClass: 'rounded-t-xl overflow-hidden'
|
|
1914
|
+
},
|
|
1915
|
+
VBtn: {
|
|
1916
|
+
color: 'primary',
|
|
1917
|
+
rounded: 'xl'
|
|
1918
|
+
},
|
|
1919
|
+
VBtnGroup: {
|
|
1920
|
+
rounded: 'xl',
|
|
1921
|
+
VBtn: {
|
|
1922
|
+
rounded: null
|
|
1923
|
+
}
|
|
1924
|
+
},
|
|
1925
|
+
VCard: {
|
|
1926
|
+
rounded: 'lg'
|
|
1927
|
+
},
|
|
1928
|
+
VCheckbox: {
|
|
1929
|
+
color: 'secondary',
|
|
1930
|
+
inset: true
|
|
1931
|
+
},
|
|
1932
|
+
VChip: {
|
|
1933
|
+
rounded: 'sm'
|
|
1934
|
+
},
|
|
1935
|
+
VCombobox: {
|
|
1936
|
+
variant: 'filled'
|
|
1937
|
+
},
|
|
1938
|
+
VNavigationDrawer: {
|
|
1939
|
+
// VList: {
|
|
1940
|
+
// nav: true,
|
|
1941
|
+
// VListItem: {
|
|
1942
|
+
// rounded: 'xl',
|
|
1943
|
+
// },
|
|
1944
|
+
// },
|
|
1945
|
+
},
|
|
1946
|
+
VSelect: {
|
|
1947
|
+
variant: 'filled'
|
|
1948
|
+
},
|
|
1949
|
+
VSlider: {
|
|
1950
|
+
color: 'primary'
|
|
1951
|
+
},
|
|
1952
|
+
VTabs: {
|
|
1953
|
+
color: 'primary'
|
|
1954
|
+
},
|
|
1955
|
+
VTextarea: {
|
|
1956
|
+
variant: 'filled'
|
|
1957
|
+
},
|
|
1958
|
+
VTextField: {
|
|
1959
|
+
variant: 'filled'
|
|
1960
|
+
},
|
|
1961
|
+
VToolbar: {
|
|
1962
|
+
VBtn: {
|
|
1963
|
+
color: null
|
|
1964
|
+
}
|
|
1965
|
+
}
|
|
1966
|
+
},
|
|
1967
|
+
icons: {
|
|
1968
|
+
defaultSet: 'mdi',
|
|
1969
|
+
sets: {
|
|
1970
|
+
mdi
|
|
1971
|
+
}
|
|
1972
|
+
},
|
|
1973
|
+
theme: {
|
|
1974
|
+
themes: {
|
|
1975
|
+
light: {
|
|
1976
|
+
colors: {
|
|
1977
|
+
primary: '#6750a4',
|
|
1978
|
+
secondary: '#b4b0bb',
|
|
1979
|
+
tertiary: '#7d5260',
|
|
1980
|
+
error: '#b3261e',
|
|
1981
|
+
surface: '#fffbfe'
|
|
1982
|
+
}
|
|
1983
|
+
}
|
|
1984
|
+
}
|
|
1537
1985
|
}
|
|
1538
|
-
|
|
1539
|
-
}
|
|
1540
|
-
|
|
1541
|
-
// Utilities
|
|
1542
|
-
|
|
1543
|
-
// Types
|
|
1986
|
+
};
|
|
1544
1987
|
|
|
1545
|
-
|
|
1546
|
-
|
|
1547
|
-
|
|
1548
|
-
|
|
1988
|
+
var index = /*#__PURE__*/Object.freeze({
|
|
1989
|
+
__proto__: null,
|
|
1990
|
+
md1: md1,
|
|
1991
|
+
md2: md2,
|
|
1992
|
+
md3: md3
|
|
1993
|
+
});
|
|
1549
1994
|
|
|
1550
1995
|
// Utilities
|
|
1551
1996
|
|
|
@@ -2160,7 +2605,7 @@ function provideLocale(props) {
|
|
|
2160
2605
|
provide(LocaleSymbol, data);
|
|
2161
2606
|
return data;
|
|
2162
2607
|
}
|
|
2163
|
-
function genDefaults$
|
|
2608
|
+
function genDefaults$2() {
|
|
2164
2609
|
return {
|
|
2165
2610
|
af: false,
|
|
2166
2611
|
ar: true,
|
|
@@ -2207,7 +2652,7 @@ function genDefaults$3() {
|
|
|
2207
2652
|
};
|
|
2208
2653
|
}
|
|
2209
2654
|
function createRtl(i18n, options) {
|
|
2210
|
-
const rtl = ref(options?.rtl ?? genDefaults$
|
|
2655
|
+
const rtl = ref(options?.rtl ?? genDefaults$2());
|
|
2211
2656
|
const isRtl = computed(() => rtl.value[i18n.current.value] ?? false);
|
|
2212
2657
|
return {
|
|
2213
2658
|
isRtl,
|
|
@@ -2240,7 +2685,7 @@ const ThemeSymbol = Symbol.for('vuetify:theme');
|
|
|
2240
2685
|
const makeThemeProps = propsFactory({
|
|
2241
2686
|
theme: String
|
|
2242
2687
|
}, 'theme');
|
|
2243
|
-
function genDefaults$
|
|
2688
|
+
function genDefaults$1() {
|
|
2244
2689
|
return {
|
|
2245
2690
|
defaultTheme: 'light',
|
|
2246
2691
|
variations: {
|
|
@@ -2327,8 +2772,8 @@ function genDefaults$2() {
|
|
|
2327
2772
|
};
|
|
2328
2773
|
}
|
|
2329
2774
|
function parseThemeOptions() {
|
|
2330
|
-
let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : genDefaults$
|
|
2331
|
-
const defaults = genDefaults$
|
|
2775
|
+
let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : genDefaults$1();
|
|
2776
|
+
const defaults = genDefaults$1();
|
|
2332
2777
|
if (!options) return {
|
|
2333
2778
|
...defaults,
|
|
2334
2779
|
isDisabled: true
|
|
@@ -2382,7 +2827,7 @@ function createTheme(options) {
|
|
|
2382
2827
|
const current = computed(() => computedThemes.value[name.value]);
|
|
2383
2828
|
const styles = computed(() => {
|
|
2384
2829
|
const lines = [];
|
|
2385
|
-
if (current.value
|
|
2830
|
+
if (current.value?.dark) {
|
|
2386
2831
|
createCssClass(lines, ':root', ['color-scheme: dark']);
|
|
2387
2832
|
}
|
|
2388
2833
|
createCssClass(lines, ':root', genCssVariables(current.value));
|
|
@@ -4252,280 +4697,76 @@ function getItemIndex(items, value) {
|
|
|
4252
4697
|
}
|
|
4253
4698
|
function getIds(items, modelValue) {
|
|
4254
4699
|
const ids = [];
|
|
4255
|
-
modelValue.forEach(value => {
|
|
4256
|
-
const item = items.find(item => deepEqual(value, item.value));
|
|
4257
|
-
const itemByIndex = items[value];
|
|
4258
|
-
if (item?.value != null) {
|
|
4259
|
-
ids.push(item.id);
|
|
4260
|
-
} else if (itemByIndex != null) {
|
|
4261
|
-
ids.push(itemByIndex.id);
|
|
4262
|
-
}
|
|
4263
|
-
});
|
|
4264
|
-
return ids;
|
|
4265
|
-
}
|
|
4266
|
-
function getValues(items, ids) {
|
|
4267
|
-
const values = [];
|
|
4268
|
-
ids.forEach(id => {
|
|
4269
|
-
const itemIndex = items.findIndex(item => item.id === id);
|
|
4270
|
-
if (~itemIndex) {
|
|
4271
|
-
const item = items[itemIndex];
|
|
4272
|
-
values.push(item.value != null ? item.value : itemIndex);
|
|
4273
|
-
}
|
|
4274
|
-
});
|
|
4275
|
-
return values;
|
|
4276
|
-
}
|
|
4277
|
-
|
|
4278
|
-
// Types
|
|
4279
|
-
|
|
4280
|
-
const VBtnToggleSymbol = Symbol.for('vuetify:v-btn-toggle');
|
|
4281
|
-
const makeVBtnToggleProps = propsFactory({
|
|
4282
|
-
...makeVBtnGroupProps(),
|
|
4283
|
-
...makeGroupProps()
|
|
4284
|
-
}, 'VBtnToggle');
|
|
4285
|
-
const VBtnToggle = genericComponent()({
|
|
4286
|
-
name: 'VBtnToggle',
|
|
4287
|
-
props: makeVBtnToggleProps(),
|
|
4288
|
-
emits: {
|
|
4289
|
-
'update:modelValue': value => true
|
|
4290
|
-
},
|
|
4291
|
-
setup(props, _ref) {
|
|
4292
|
-
let {
|
|
4293
|
-
slots
|
|
4294
|
-
} = _ref;
|
|
4295
|
-
const {
|
|
4296
|
-
isSelected,
|
|
4297
|
-
next,
|
|
4298
|
-
prev,
|
|
4299
|
-
select,
|
|
4300
|
-
selected
|
|
4301
|
-
} = useGroup(props, VBtnToggleSymbol);
|
|
4302
|
-
useRender(() => {
|
|
4303
|
-
const btnGroupProps = VBtnGroup.filterProps(props);
|
|
4304
|
-
return createVNode(VBtnGroup, mergeProps({
|
|
4305
|
-
"class": ['v-btn-toggle', props.class]
|
|
4306
|
-
}, btnGroupProps, {
|
|
4307
|
-
"style": props.style
|
|
4308
|
-
}), {
|
|
4309
|
-
default: () => [slots.default?.({
|
|
4310
|
-
isSelected,
|
|
4311
|
-
next,
|
|
4312
|
-
prev,
|
|
4313
|
-
select,
|
|
4314
|
-
selected
|
|
4315
|
-
})]
|
|
4316
|
-
});
|
|
4317
|
-
});
|
|
4318
|
-
return {
|
|
4319
|
-
next,
|
|
4320
|
-
prev,
|
|
4321
|
-
select
|
|
4322
|
-
};
|
|
4323
|
-
}
|
|
4324
|
-
});
|
|
4325
|
-
|
|
4326
|
-
// Composables
|
|
4327
|
-
|
|
4328
|
-
// Types
|
|
4329
|
-
|
|
4330
|
-
const aliases = {
|
|
4331
|
-
collapse: 'mdi-chevron-up',
|
|
4332
|
-
complete: 'mdi-check',
|
|
4333
|
-
cancel: 'mdi-close-circle',
|
|
4334
|
-
close: 'mdi-close',
|
|
4335
|
-
delete: 'mdi-close-circle',
|
|
4336
|
-
// delete (e.g. v-chip close)
|
|
4337
|
-
clear: 'mdi-close-circle',
|
|
4338
|
-
success: 'mdi-check-circle',
|
|
4339
|
-
info: 'mdi-information',
|
|
4340
|
-
warning: 'mdi-alert-circle',
|
|
4341
|
-
error: 'mdi-close-circle',
|
|
4342
|
-
prev: 'mdi-chevron-left',
|
|
4343
|
-
next: 'mdi-chevron-right',
|
|
4344
|
-
checkboxOn: 'mdi-checkbox-marked',
|
|
4345
|
-
checkboxOff: 'mdi-checkbox-blank-outline',
|
|
4346
|
-
checkboxIndeterminate: 'mdi-minus-box',
|
|
4347
|
-
delimiter: 'mdi-circle',
|
|
4348
|
-
// for carousel
|
|
4349
|
-
sortAsc: 'mdi-arrow-up',
|
|
4350
|
-
sortDesc: 'mdi-arrow-down',
|
|
4351
|
-
expand: 'mdi-chevron-down',
|
|
4352
|
-
menu: 'mdi-menu',
|
|
4353
|
-
subgroup: 'mdi-menu-down',
|
|
4354
|
-
dropdown: 'mdi-menu-down',
|
|
4355
|
-
radioOn: 'mdi-radiobox-marked',
|
|
4356
|
-
radioOff: 'mdi-radiobox-blank',
|
|
4357
|
-
edit: 'mdi-pencil',
|
|
4358
|
-
ratingEmpty: 'mdi-star-outline',
|
|
4359
|
-
ratingFull: 'mdi-star',
|
|
4360
|
-
ratingHalf: 'mdi-star-half-full',
|
|
4361
|
-
loading: 'mdi-cached',
|
|
4362
|
-
first: 'mdi-page-first',
|
|
4363
|
-
last: 'mdi-page-last',
|
|
4364
|
-
unfold: 'mdi-unfold-more-horizontal',
|
|
4365
|
-
file: 'mdi-paperclip',
|
|
4366
|
-
plus: 'mdi-plus',
|
|
4367
|
-
minus: 'mdi-minus',
|
|
4368
|
-
calendar: 'mdi-calendar',
|
|
4369
|
-
eyeDropper: 'mdi-eyedropper'
|
|
4370
|
-
};
|
|
4371
|
-
const mdi = {
|
|
4372
|
-
// Not using mergeProps here, functional components merge props by default (?)
|
|
4373
|
-
component: props => h(VClassIcon, {
|
|
4374
|
-
...props,
|
|
4375
|
-
class: 'mdi'
|
|
4376
|
-
})
|
|
4377
|
-
};
|
|
4378
|
-
|
|
4379
|
-
// Types
|
|
4380
|
-
|
|
4381
|
-
const IconValue = [String, Function, Object, Array];
|
|
4382
|
-
const IconSymbol = Symbol.for('vuetify:icons');
|
|
4383
|
-
const makeIconProps = propsFactory({
|
|
4384
|
-
icon: {
|
|
4385
|
-
type: IconValue
|
|
4386
|
-
},
|
|
4387
|
-
// Could not remove this and use makeTagProps, types complained because it is not required
|
|
4388
|
-
tag: {
|
|
4389
|
-
type: String,
|
|
4390
|
-
required: true
|
|
4391
|
-
}
|
|
4392
|
-
}, 'icon');
|
|
4393
|
-
const VComponentIcon = genericComponent()({
|
|
4394
|
-
name: 'VComponentIcon',
|
|
4395
|
-
props: makeIconProps(),
|
|
4396
|
-
setup(props, _ref) {
|
|
4397
|
-
let {
|
|
4398
|
-
slots
|
|
4399
|
-
} = _ref;
|
|
4400
|
-
return () => {
|
|
4401
|
-
const Icon = props.icon;
|
|
4402
|
-
return createVNode(props.tag, null, {
|
|
4403
|
-
default: () => [props.icon ? createVNode(Icon, null, null) : slots.default?.()]
|
|
4404
|
-
});
|
|
4405
|
-
};
|
|
4406
|
-
}
|
|
4407
|
-
});
|
|
4408
|
-
const VSvgIcon = defineComponent({
|
|
4409
|
-
name: 'VSvgIcon',
|
|
4410
|
-
inheritAttrs: false,
|
|
4411
|
-
props: makeIconProps(),
|
|
4412
|
-
setup(props, _ref2) {
|
|
4413
|
-
let {
|
|
4414
|
-
attrs
|
|
4415
|
-
} = _ref2;
|
|
4416
|
-
return () => {
|
|
4417
|
-
return createVNode(props.tag, mergeProps(attrs, {
|
|
4418
|
-
"style": null
|
|
4419
|
-
}), {
|
|
4420
|
-
default: () => [createVNode("svg", {
|
|
4421
|
-
"class": "v-icon__svg",
|
|
4422
|
-
"xmlns": "http://www.w3.org/2000/svg",
|
|
4423
|
-
"viewBox": "0 0 24 24",
|
|
4424
|
-
"role": "img",
|
|
4425
|
-
"aria-hidden": "true"
|
|
4426
|
-
}, [Array.isArray(props.icon) ? props.icon.map(path => Array.isArray(path) ? createVNode("path", {
|
|
4427
|
-
"d": path[0],
|
|
4428
|
-
"fill-opacity": path[1]
|
|
4429
|
-
}, null) : createVNode("path", {
|
|
4430
|
-
"d": path
|
|
4431
|
-
}, null)) : createVNode("path", {
|
|
4432
|
-
"d": props.icon
|
|
4433
|
-
}, null)])]
|
|
4434
|
-
});
|
|
4435
|
-
};
|
|
4436
|
-
}
|
|
4437
|
-
});
|
|
4438
|
-
const VLigatureIcon = defineComponent({
|
|
4439
|
-
name: 'VLigatureIcon',
|
|
4440
|
-
props: makeIconProps(),
|
|
4441
|
-
setup(props) {
|
|
4442
|
-
return () => {
|
|
4443
|
-
return createVNode(props.tag, null, {
|
|
4444
|
-
default: () => [props.icon]
|
|
4445
|
-
});
|
|
4446
|
-
};
|
|
4447
|
-
}
|
|
4448
|
-
});
|
|
4449
|
-
const VClassIcon = defineComponent({
|
|
4450
|
-
name: 'VClassIcon',
|
|
4451
|
-
props: makeIconProps(),
|
|
4452
|
-
setup(props) {
|
|
4453
|
-
return () => {
|
|
4454
|
-
return createVNode(props.tag, {
|
|
4455
|
-
"class": props.icon
|
|
4456
|
-
}, null);
|
|
4457
|
-
};
|
|
4458
|
-
}
|
|
4459
|
-
});
|
|
4460
|
-
function genDefaults$1() {
|
|
4461
|
-
return {
|
|
4462
|
-
svg: {
|
|
4463
|
-
component: VSvgIcon
|
|
4464
|
-
},
|
|
4465
|
-
class: {
|
|
4466
|
-
component: VClassIcon
|
|
4467
|
-
}
|
|
4468
|
-
};
|
|
4469
|
-
}
|
|
4470
|
-
|
|
4471
|
-
// Composables
|
|
4472
|
-
function createIcons(options) {
|
|
4473
|
-
const sets = genDefaults$1();
|
|
4474
|
-
const defaultSet = options?.defaultSet ?? 'mdi';
|
|
4475
|
-
if (defaultSet === 'mdi' && !sets.mdi) {
|
|
4476
|
-
sets.mdi = mdi;
|
|
4477
|
-
}
|
|
4478
|
-
return mergeDeep({
|
|
4479
|
-
defaultSet,
|
|
4480
|
-
sets,
|
|
4481
|
-
aliases: {
|
|
4482
|
-
...aliases,
|
|
4483
|
-
/* eslint-disable max-len */
|
|
4484
|
-
vuetify: ['M8.2241 14.2009L12 21L22 3H14.4459L8.2241 14.2009Z', ['M7.26303 12.4733L7.00113 12L2 3H12.5261C12.5261 3 12.5261 3 12.5261 3L7.26303 12.4733Z', 0.6]],
|
|
4485
|
-
'vuetify-outline': 'svg:M7.26 12.47 12.53 3H2L7.26 12.47ZM14.45 3 8.22 14.2 12 21 22 3H14.45ZM18.6 5 12 16.88 10.51 14.2 15.62 5ZM7.26 8.35 5.4 5H9.13L7.26 8.35Z'
|
|
4486
|
-
/* eslint-enable max-len */
|
|
4700
|
+
modelValue.forEach(value => {
|
|
4701
|
+
const item = items.find(item => deepEqual(value, item.value));
|
|
4702
|
+
const itemByIndex = items[value];
|
|
4703
|
+
if (item?.value != null) {
|
|
4704
|
+
ids.push(item.id);
|
|
4705
|
+
} else if (itemByIndex != null) {
|
|
4706
|
+
ids.push(itemByIndex.id);
|
|
4487
4707
|
}
|
|
4488
|
-
}
|
|
4708
|
+
});
|
|
4709
|
+
return ids;
|
|
4489
4710
|
}
|
|
4490
|
-
|
|
4491
|
-
const
|
|
4492
|
-
|
|
4493
|
-
|
|
4494
|
-
|
|
4495
|
-
|
|
4496
|
-
|
|
4497
|
-
};
|
|
4498
|
-
let icon = iconAlias;
|
|
4499
|
-
if (typeof icon === 'string') {
|
|
4500
|
-
icon = icon.trim();
|
|
4501
|
-
if (icon.startsWith('$')) {
|
|
4502
|
-
icon = icons.aliases?.[icon.slice(1)];
|
|
4503
|
-
}
|
|
4504
|
-
}
|
|
4505
|
-
if (!icon) throw new Error(`Could not find aliased icon "${iconAlias}"`);
|
|
4506
|
-
if (Array.isArray(icon)) {
|
|
4507
|
-
return {
|
|
4508
|
-
component: VSvgIcon,
|
|
4509
|
-
icon
|
|
4510
|
-
};
|
|
4511
|
-
} else if (typeof icon !== 'string') {
|
|
4512
|
-
return {
|
|
4513
|
-
component: VComponentIcon,
|
|
4514
|
-
icon
|
|
4515
|
-
};
|
|
4711
|
+
function getValues(items, ids) {
|
|
4712
|
+
const values = [];
|
|
4713
|
+
ids.forEach(id => {
|
|
4714
|
+
const itemIndex = items.findIndex(item => item.id === id);
|
|
4715
|
+
if (~itemIndex) {
|
|
4716
|
+
const item = items[itemIndex];
|
|
4717
|
+
values.push(item.value != null ? item.value : itemIndex);
|
|
4516
4718
|
}
|
|
4517
|
-
|
|
4518
|
-
|
|
4519
|
-
|
|
4719
|
+
});
|
|
4720
|
+
return values;
|
|
4721
|
+
}
|
|
4722
|
+
|
|
4723
|
+
// Types
|
|
4724
|
+
|
|
4725
|
+
const VBtnToggleSymbol = Symbol.for('vuetify:v-btn-toggle');
|
|
4726
|
+
const makeVBtnToggleProps = propsFactory({
|
|
4727
|
+
...makeVBtnGroupProps(),
|
|
4728
|
+
...makeGroupProps()
|
|
4729
|
+
}, 'VBtnToggle');
|
|
4730
|
+
const VBtnToggle = genericComponent()({
|
|
4731
|
+
name: 'VBtnToggle',
|
|
4732
|
+
props: makeVBtnToggleProps(),
|
|
4733
|
+
emits: {
|
|
4734
|
+
'update:modelValue': value => true
|
|
4735
|
+
},
|
|
4736
|
+
setup(props, _ref) {
|
|
4737
|
+
let {
|
|
4738
|
+
slots
|
|
4739
|
+
} = _ref;
|
|
4740
|
+
const {
|
|
4741
|
+
isSelected,
|
|
4742
|
+
next,
|
|
4743
|
+
prev,
|
|
4744
|
+
select,
|
|
4745
|
+
selected
|
|
4746
|
+
} = useGroup(props, VBtnToggleSymbol);
|
|
4747
|
+
useRender(() => {
|
|
4748
|
+
const btnGroupProps = VBtnGroup.filterProps(props);
|
|
4749
|
+
return createVNode(VBtnGroup, mergeProps({
|
|
4750
|
+
"class": ['v-btn-toggle', props.class]
|
|
4751
|
+
}, btnGroupProps, {
|
|
4752
|
+
"style": props.style
|
|
4753
|
+
}), {
|
|
4754
|
+
default: () => [slots.default?.({
|
|
4755
|
+
isSelected,
|
|
4756
|
+
next,
|
|
4757
|
+
prev,
|
|
4758
|
+
select,
|
|
4759
|
+
selected
|
|
4760
|
+
})]
|
|
4761
|
+
});
|
|
4762
|
+
});
|
|
4520
4763
|
return {
|
|
4521
|
-
|
|
4522
|
-
|
|
4764
|
+
next,
|
|
4765
|
+
prev,
|
|
4766
|
+
select
|
|
4523
4767
|
};
|
|
4524
|
-
}
|
|
4525
|
-
|
|
4526
|
-
iconData
|
|
4527
|
-
};
|
|
4528
|
-
};
|
|
4768
|
+
}
|
|
4769
|
+
});
|
|
4529
4770
|
|
|
4530
4771
|
// Utilities
|
|
4531
4772
|
|
|
@@ -4560,6 +4801,7 @@ function useSize(props) {
|
|
|
4560
4801
|
|
|
4561
4802
|
const makeVIconProps = propsFactory({
|
|
4562
4803
|
color: String,
|
|
4804
|
+
disabled: Boolean,
|
|
4563
4805
|
start: Boolean,
|
|
4564
4806
|
end: Boolean,
|
|
4565
4807
|
icon: IconValue,
|
|
@@ -4597,11 +4839,13 @@ const VIcon = genericComponent()({
|
|
|
4597
4839
|
if (slotValue) {
|
|
4598
4840
|
slotIcon.value = flattenFragments(slotValue).filter(node => node.type === Text && node.children && typeof node.children === 'string')[0]?.children;
|
|
4599
4841
|
}
|
|
4842
|
+
const hasClick = !!(attrs.onClick || attrs.onClickOnce);
|
|
4600
4843
|
return createVNode(iconData.value.component, {
|
|
4601
4844
|
"tag": props.tag,
|
|
4602
4845
|
"icon": iconData.value.icon,
|
|
4603
4846
|
"class": ['v-icon', 'notranslate', themeClasses.value, sizeClasses.value, textColorClasses.value, {
|
|
4604
|
-
'v-icon--clickable':
|
|
4847
|
+
'v-icon--clickable': hasClick,
|
|
4848
|
+
'v-icon--disabled': props.disabled,
|
|
4605
4849
|
'v-icon--start': props.start,
|
|
4606
4850
|
'v-icon--end': props.end
|
|
4607
4851
|
}, props.class],
|
|
@@ -4610,8 +4854,9 @@ const VIcon = genericComponent()({
|
|
|
4610
4854
|
height: convertToUnit(props.size),
|
|
4611
4855
|
width: convertToUnit(props.size)
|
|
4612
4856
|
} : undefined, textColorStyles.value, props.style],
|
|
4613
|
-
"role":
|
|
4614
|
-
"aria-hidden": !
|
|
4857
|
+
"role": hasClick ? 'button' : undefined,
|
|
4858
|
+
"aria-hidden": !hasClick,
|
|
4859
|
+
"tabindex": hasClick ? props.disabled ? -1 : 0 : undefined
|
|
4615
4860
|
}, {
|
|
4616
4861
|
default: () => [slotValue]
|
|
4617
4862
|
});
|
|
@@ -7752,6 +7997,126 @@ function useList() {
|
|
|
7752
7997
|
return inject$1(ListKey, null);
|
|
7753
7998
|
}
|
|
7754
7999
|
|
|
8000
|
+
/* eslint-disable sonarjs/no-identical-functions */
|
|
8001
|
+
// Utilities
|
|
8002
|
+
const independentActiveStrategy = mandatory => {
|
|
8003
|
+
const strategy = {
|
|
8004
|
+
activate: _ref => {
|
|
8005
|
+
let {
|
|
8006
|
+
id,
|
|
8007
|
+
value,
|
|
8008
|
+
activated
|
|
8009
|
+
} = _ref;
|
|
8010
|
+
id = toRaw(id);
|
|
8011
|
+
|
|
8012
|
+
// When mandatory and we're trying to deselect when id
|
|
8013
|
+
// is the only currently selected item then do nothing
|
|
8014
|
+
if (mandatory && !value && activated.size === 1 && activated.has(id)) return activated;
|
|
8015
|
+
if (value) {
|
|
8016
|
+
activated.add(id);
|
|
8017
|
+
} else {
|
|
8018
|
+
activated.delete(id);
|
|
8019
|
+
}
|
|
8020
|
+
return activated;
|
|
8021
|
+
},
|
|
8022
|
+
in: (v, children, parents) => {
|
|
8023
|
+
let set = new Set();
|
|
8024
|
+
for (const id of v || []) {
|
|
8025
|
+
set = strategy.activate({
|
|
8026
|
+
id,
|
|
8027
|
+
value: true,
|
|
8028
|
+
activated: new Set(set),
|
|
8029
|
+
children,
|
|
8030
|
+
parents
|
|
8031
|
+
});
|
|
8032
|
+
}
|
|
8033
|
+
return set;
|
|
8034
|
+
},
|
|
8035
|
+
out: v => {
|
|
8036
|
+
return Array.from(v);
|
|
8037
|
+
}
|
|
8038
|
+
};
|
|
8039
|
+
return strategy;
|
|
8040
|
+
};
|
|
8041
|
+
const independentSingleActiveStrategy = mandatory => {
|
|
8042
|
+
const parentStrategy = independentActiveStrategy(mandatory);
|
|
8043
|
+
const strategy = {
|
|
8044
|
+
activate: _ref2 => {
|
|
8045
|
+
let {
|
|
8046
|
+
activated,
|
|
8047
|
+
id,
|
|
8048
|
+
...rest
|
|
8049
|
+
} = _ref2;
|
|
8050
|
+
id = toRaw(id);
|
|
8051
|
+
const singleSelected = activated.has(id) ? new Set([id]) : new Set();
|
|
8052
|
+
return parentStrategy.activate({
|
|
8053
|
+
...rest,
|
|
8054
|
+
id,
|
|
8055
|
+
activated: singleSelected
|
|
8056
|
+
});
|
|
8057
|
+
},
|
|
8058
|
+
in: (v, children, parents) => {
|
|
8059
|
+
let set = new Set();
|
|
8060
|
+
if (v?.length) {
|
|
8061
|
+
set = parentStrategy.in(v.slice(0, 1), children, parents);
|
|
8062
|
+
}
|
|
8063
|
+
return set;
|
|
8064
|
+
},
|
|
8065
|
+
out: (v, children, parents) => {
|
|
8066
|
+
return parentStrategy.out(v, children, parents);
|
|
8067
|
+
}
|
|
8068
|
+
};
|
|
8069
|
+
return strategy;
|
|
8070
|
+
};
|
|
8071
|
+
const leafActiveStrategy = mandatory => {
|
|
8072
|
+
const parentStrategy = independentActiveStrategy(mandatory);
|
|
8073
|
+
const strategy = {
|
|
8074
|
+
activate: _ref3 => {
|
|
8075
|
+
let {
|
|
8076
|
+
id,
|
|
8077
|
+
activated,
|
|
8078
|
+
children,
|
|
8079
|
+
...rest
|
|
8080
|
+
} = _ref3;
|
|
8081
|
+
id = toRaw(id);
|
|
8082
|
+
if (children.has(id)) return activated;
|
|
8083
|
+
return parentStrategy.activate({
|
|
8084
|
+
id,
|
|
8085
|
+
activated,
|
|
8086
|
+
children,
|
|
8087
|
+
...rest
|
|
8088
|
+
});
|
|
8089
|
+
},
|
|
8090
|
+
in: parentStrategy.in,
|
|
8091
|
+
out: parentStrategy.out
|
|
8092
|
+
};
|
|
8093
|
+
return strategy;
|
|
8094
|
+
};
|
|
8095
|
+
const leafSingleActiveStrategy = mandatory => {
|
|
8096
|
+
const parentStrategy = independentSingleActiveStrategy(mandatory);
|
|
8097
|
+
const strategy = {
|
|
8098
|
+
activate: _ref4 => {
|
|
8099
|
+
let {
|
|
8100
|
+
id,
|
|
8101
|
+
activated,
|
|
8102
|
+
children,
|
|
8103
|
+
...rest
|
|
8104
|
+
} = _ref4;
|
|
8105
|
+
id = toRaw(id);
|
|
8106
|
+
if (children.has(id)) return activated;
|
|
8107
|
+
return parentStrategy.activate({
|
|
8108
|
+
id,
|
|
8109
|
+
activated,
|
|
8110
|
+
children,
|
|
8111
|
+
...rest
|
|
8112
|
+
});
|
|
8113
|
+
},
|
|
8114
|
+
in: parentStrategy.in,
|
|
8115
|
+
out: parentStrategy.out
|
|
8116
|
+
};
|
|
8117
|
+
return strategy;
|
|
8118
|
+
};
|
|
8119
|
+
|
|
7755
8120
|
const singleOpenStrategy = {
|
|
7756
8121
|
open: _ref => {
|
|
7757
8122
|
let {
|
|
@@ -7836,7 +8201,8 @@ const independentSelectStrategy = mandatory => {
|
|
|
7836
8201
|
if (mandatory && !value) {
|
|
7837
8202
|
const on = Array.from(selected.entries()).reduce((arr, _ref2) => {
|
|
7838
8203
|
let [key, value] = _ref2;
|
|
7839
|
-
|
|
8204
|
+
if (value === 'on') arr.push(key);
|
|
8205
|
+
return arr;
|
|
7840
8206
|
}, []);
|
|
7841
8207
|
if (on.length === 1 && on[0] === id) return selected;
|
|
7842
8208
|
}
|
|
@@ -7978,7 +8344,8 @@ const classicSelectStrategy = mandatory => {
|
|
|
7978
8344
|
if (mandatory && !value) {
|
|
7979
8345
|
const on = Array.from(selected.entries()).reduce((arr, _ref7) => {
|
|
7980
8346
|
let [key, value] = _ref7;
|
|
7981
|
-
|
|
8347
|
+
if (value === 'on') arr.push(key);
|
|
8348
|
+
return arr;
|
|
7982
8349
|
}, []);
|
|
7983
8350
|
if (on.length === 0) return original;
|
|
7984
8351
|
}
|
|
@@ -8022,16 +8389,24 @@ const emptyNested = {
|
|
|
8022
8389
|
children: ref(new Map()),
|
|
8023
8390
|
open: () => null,
|
|
8024
8391
|
openOnSelect: () => null,
|
|
8392
|
+
activate: () => null,
|
|
8025
8393
|
select: () => null,
|
|
8394
|
+
activatable: ref(false),
|
|
8395
|
+
selectable: ref(false),
|
|
8026
8396
|
opened: ref(new Set()),
|
|
8397
|
+
activated: ref(new Set()),
|
|
8027
8398
|
selected: ref(new Map()),
|
|
8028
8399
|
selectedValues: ref([])
|
|
8029
8400
|
}
|
|
8030
8401
|
};
|
|
8031
8402
|
const makeNestedProps = propsFactory({
|
|
8403
|
+
activatable: Boolean,
|
|
8404
|
+
selectable: Boolean,
|
|
8405
|
+
activeStrategy: [String, Function],
|
|
8032
8406
|
selectStrategy: [String, Function],
|
|
8033
8407
|
openStrategy: [String, Object],
|
|
8034
8408
|
opened: Array,
|
|
8409
|
+
activated: Array,
|
|
8035
8410
|
selected: Array,
|
|
8036
8411
|
mandatory: Boolean
|
|
8037
8412
|
}, 'nested');
|
|
@@ -8040,6 +8415,20 @@ const useNested = props => {
|
|
|
8040
8415
|
const children = ref(new Map());
|
|
8041
8416
|
const parents = ref(new Map());
|
|
8042
8417
|
const opened = useProxiedModel(props, 'opened', props.opened, v => new Set(v), v => [...v.values()]);
|
|
8418
|
+
const activeStrategy = computed(() => {
|
|
8419
|
+
if (typeof props.activeStrategy === 'object') return props.activeStrategy;
|
|
8420
|
+
switch (props.activeStrategy) {
|
|
8421
|
+
case 'leaf':
|
|
8422
|
+
return leafActiveStrategy(props.mandatory);
|
|
8423
|
+
case 'single-leaf':
|
|
8424
|
+
return leafSingleActiveStrategy(props.mandatory);
|
|
8425
|
+
case 'independent':
|
|
8426
|
+
return independentActiveStrategy(props.mandatory);
|
|
8427
|
+
case 'single-independent':
|
|
8428
|
+
default:
|
|
8429
|
+
return independentSingleActiveStrategy(props.mandatory);
|
|
8430
|
+
}
|
|
8431
|
+
});
|
|
8043
8432
|
const selectStrategy = computed(() => {
|
|
8044
8433
|
if (typeof props.selectStrategy === 'object') return props.selectStrategy;
|
|
8045
8434
|
switch (props.selectStrategy) {
|
|
@@ -8068,6 +8457,7 @@ const useNested = props => {
|
|
|
8068
8457
|
return multipleOpenStrategy;
|
|
8069
8458
|
}
|
|
8070
8459
|
});
|
|
8460
|
+
const activated = useProxiedModel(props, 'activated', props.activated, v => activeStrategy.value.in(v, children.value, parents.value), v => activeStrategy.value.out(v, children.value, parents.value));
|
|
8071
8461
|
const selected = useProxiedModel(props, 'selected', props.selected, v => selectStrategy.value.in(v, children.value, parents.value), v => selectStrategy.value.out(v, children.value, parents.value));
|
|
8072
8462
|
onBeforeUnmount(() => {
|
|
8073
8463
|
isUnmounted = true;
|
|
@@ -8086,6 +8476,9 @@ const useNested = props => {
|
|
|
8086
8476
|
id: shallowRef(),
|
|
8087
8477
|
root: {
|
|
8088
8478
|
opened,
|
|
8479
|
+
activatable: toRef(props, 'activatable'),
|
|
8480
|
+
selectable: toRef(props, 'selectable'),
|
|
8481
|
+
activated,
|
|
8089
8482
|
selected,
|
|
8090
8483
|
selectedValues: computed(() => {
|
|
8091
8484
|
const arr = [];
|
|
@@ -8159,6 +8552,26 @@ const useNested = props => {
|
|
|
8159
8552
|
newSelected && (selected.value = newSelected);
|
|
8160
8553
|
nested.root.openOnSelect(id, value, event);
|
|
8161
8554
|
},
|
|
8555
|
+
activate: (id, value, event) => {
|
|
8556
|
+
if (!props.activatable) {
|
|
8557
|
+
return nested.root.select(id, true, event);
|
|
8558
|
+
}
|
|
8559
|
+
vm.emit('click:activate', {
|
|
8560
|
+
id,
|
|
8561
|
+
value,
|
|
8562
|
+
path: getPath(id),
|
|
8563
|
+
event
|
|
8564
|
+
});
|
|
8565
|
+
const newActivated = activeStrategy.value.activate({
|
|
8566
|
+
id,
|
|
8567
|
+
value,
|
|
8568
|
+
activated: new Set(activated.value),
|
|
8569
|
+
children: children.value,
|
|
8570
|
+
parents: parents.value,
|
|
8571
|
+
event
|
|
8572
|
+
});
|
|
8573
|
+
newActivated && (activated.value = newActivated);
|
|
8574
|
+
},
|
|
8162
8575
|
children,
|
|
8163
8576
|
parents
|
|
8164
8577
|
}
|
|
@@ -8177,6 +8590,8 @@ const useNestedItem = (id, isGroup) => {
|
|
|
8177
8590
|
openOnSelect: (open, e) => parent.root.openOnSelect(computedId.value, open, e),
|
|
8178
8591
|
isOpen: computed(() => parent.root.opened.value.has(computedId.value)),
|
|
8179
8592
|
parent: computed(() => parent.root.parents.value.get(computedId.value)),
|
|
8593
|
+
activate: (activated, e) => parent.root.activate(computedId.value, activated, e),
|
|
8594
|
+
isActivated: computed(() => parent.root.activated.value.has(toRaw(computedId.value))),
|
|
8180
8595
|
select: (selected, e) => parent.root.select(computedId.value, selected, e),
|
|
8181
8596
|
isSelected: computed(() => parent.root.selected.value.get(toRaw(computedId.value)) === 'on'),
|
|
8182
8597
|
isIndeterminate: computed(() => parent.root.selected.value.get(computedId.value) === 'indeterminate'),
|
|
@@ -8299,7 +8714,9 @@ const VListGroup = genericComponent()({
|
|
|
8299
8714
|
}, [slots.default?.()]), [[vShow, isOpen.value]])]
|
|
8300
8715
|
})]
|
|
8301
8716
|
}));
|
|
8302
|
-
return {
|
|
8717
|
+
return {
|
|
8718
|
+
isOpen
|
|
8719
|
+
};
|
|
8303
8720
|
}
|
|
8304
8721
|
});
|
|
8305
8722
|
|
|
@@ -8372,6 +8789,8 @@ const VListItem = genericComponent()({
|
|
|
8372
8789
|
const link = useLink(props, attrs);
|
|
8373
8790
|
const id = computed(() => props.value === undefined ? link.href.value : props.value);
|
|
8374
8791
|
const {
|
|
8792
|
+
activate,
|
|
8793
|
+
isActivated,
|
|
8375
8794
|
select,
|
|
8376
8795
|
isSelected,
|
|
8377
8796
|
isIndeterminate,
|
|
@@ -8381,9 +8800,9 @@ const VListItem = genericComponent()({
|
|
|
8381
8800
|
openOnSelect
|
|
8382
8801
|
} = useNestedItem(id, false);
|
|
8383
8802
|
const list = useList();
|
|
8384
|
-
const isActive = computed(() => props.active !== false && (props.active || link.isActive?.value || isSelected.value));
|
|
8803
|
+
const isActive = computed(() => props.active !== false && (props.active || link.isActive?.value || (root.activatable.value ? isActivated.value : isSelected.value)));
|
|
8385
8804
|
const isLink = computed(() => props.link !== false && link.isLink.value);
|
|
8386
|
-
const isClickable = computed(() => !props.disabled && props.link !== false && (props.link || link.isClickable.value || props.value != null
|
|
8805
|
+
const isClickable = computed(() => !props.disabled && props.link !== false && (props.link || link.isClickable.value || !!list && (root.selectable.value || root.activatable.value || props.value != null)));
|
|
8387
8806
|
const roundedProps = computed(() => props.rounded || props.nav);
|
|
8388
8807
|
const color = computed(() => props.color ?? props.activeColor);
|
|
8389
8808
|
const variantProps = computed(() => ({
|
|
@@ -8434,7 +8853,13 @@ const VListItem = genericComponent()({
|
|
|
8434
8853
|
emit('click', e);
|
|
8435
8854
|
if (isGroupActivator || !isClickable.value) return;
|
|
8436
8855
|
link.navigate?.(e);
|
|
8437
|
-
|
|
8856
|
+
if (root.activatable.value) {
|
|
8857
|
+
activate(!isActivated.value, e);
|
|
8858
|
+
} else if (root.selectable.value) {
|
|
8859
|
+
select(!isSelected.value, e);
|
|
8860
|
+
} else if (props.value != null) {
|
|
8861
|
+
select(!isSelected.value, e);
|
|
8862
|
+
}
|
|
8438
8863
|
}
|
|
8439
8864
|
function onKeyDown(e) {
|
|
8440
8865
|
if (e.key === 'Enter' || e.key === ' ') {
|
|
@@ -8550,7 +8975,12 @@ const VListItem = genericComponent()({
|
|
|
8550
8975
|
}, null)])]
|
|
8551
8976
|
}), [[resolveDirective("ripple"), isClickable.value && props.ripple]]);
|
|
8552
8977
|
});
|
|
8553
|
-
return {
|
|
8978
|
+
return {
|
|
8979
|
+
isGroupActivator,
|
|
8980
|
+
isSelected,
|
|
8981
|
+
list,
|
|
8982
|
+
select
|
|
8983
|
+
};
|
|
8554
8984
|
}
|
|
8555
8985
|
});
|
|
8556
8986
|
|
|
@@ -8892,8 +9322,10 @@ const VList = genericComponent()({
|
|
|
8892
9322
|
props: makeVListProps(),
|
|
8893
9323
|
emits: {
|
|
8894
9324
|
'update:selected': value => true,
|
|
9325
|
+
'update:activated': value => true,
|
|
8895
9326
|
'update:opened': value => true,
|
|
8896
9327
|
'click:open': value => true,
|
|
9328
|
+
'click:activate': value => true,
|
|
8897
9329
|
'click:select': value => true
|
|
8898
9330
|
},
|
|
8899
9331
|
setup(props, _ref) {
|
|
@@ -8926,7 +9358,9 @@ const VList = genericComponent()({
|
|
|
8926
9358
|
roundedClasses
|
|
8927
9359
|
} = useRounded(props);
|
|
8928
9360
|
const {
|
|
9361
|
+
children,
|
|
8929
9362
|
open,
|
|
9363
|
+
parents,
|
|
8930
9364
|
select
|
|
8931
9365
|
} = useNested(props);
|
|
8932
9366
|
const lineClasses = computed(() => props.lines ? `v-list--${props.lines}-line` : undefined);
|
|
@@ -9016,7 +9450,9 @@ const VList = genericComponent()({
|
|
|
9016
9450
|
return {
|
|
9017
9451
|
open,
|
|
9018
9452
|
select,
|
|
9019
|
-
focus
|
|
9453
|
+
focus,
|
|
9454
|
+
children,
|
|
9455
|
+
parents
|
|
9020
9456
|
};
|
|
9021
9457
|
}
|
|
9022
9458
|
});
|
|
@@ -9558,7 +9994,7 @@ function useScrollStrategies(props, data) {
|
|
|
9558
9994
|
scope?.stop();
|
|
9559
9995
|
if (!(data.isActive.value && props.scrollStrategy)) return;
|
|
9560
9996
|
scope = effectScope();
|
|
9561
|
-
await
|
|
9997
|
+
await new Promise(resolve => setTimeout(resolve));
|
|
9562
9998
|
scope.active && scope.run(() => {
|
|
9563
9999
|
if (typeof props.scrollStrategy === 'function') {
|
|
9564
10000
|
props.scrollStrategy(data, props, scope);
|
|
@@ -10307,6 +10743,7 @@ const VOverlay = genericComponent()({
|
|
|
10307
10743
|
if (v) isActive.value = false;
|
|
10308
10744
|
});
|
|
10309
10745
|
const root = ref();
|
|
10746
|
+
const scrimEl = ref();
|
|
10310
10747
|
const contentEl = ref();
|
|
10311
10748
|
const {
|
|
10312
10749
|
contentStyles,
|
|
@@ -10328,8 +10765,10 @@ const VOverlay = genericComponent()({
|
|
|
10328
10765
|
emit('click:outside', e);
|
|
10329
10766
|
if (!props.persistent) isActive.value = false;else animateClick();
|
|
10330
10767
|
}
|
|
10331
|
-
function closeConditional() {
|
|
10332
|
-
return isActive.value && globalTop.value
|
|
10768
|
+
function closeConditional(e) {
|
|
10769
|
+
return isActive.value && globalTop.value && (
|
|
10770
|
+
// If using scrim, only close if clicking on it rather than anything opened on top
|
|
10771
|
+
!props.scrim || e.target === scrimEl.value);
|
|
10333
10772
|
}
|
|
10334
10773
|
IN_BROWSER && watch(isActive, val => {
|
|
10335
10774
|
if (val) {
|
|
@@ -10416,7 +10855,8 @@ const VOverlay = genericComponent()({
|
|
|
10416
10855
|
"ref": root
|
|
10417
10856
|
}, scopeId, attrs), [createVNode(Scrim, mergeProps({
|
|
10418
10857
|
"color": scrimColor,
|
|
10419
|
-
"modelValue": isActive.value && !!props.scrim
|
|
10858
|
+
"modelValue": isActive.value && !!props.scrim,
|
|
10859
|
+
"ref": scrimEl
|
|
10420
10860
|
}, scrimEvents.value), null), createVNode(MaybeTransition, {
|
|
10421
10861
|
"appear": true,
|
|
10422
10862
|
"persisted": true,
|
|
@@ -10439,6 +10879,7 @@ const VOverlay = genericComponent()({
|
|
|
10439
10879
|
})]));
|
|
10440
10880
|
return {
|
|
10441
10881
|
activatorEl,
|
|
10882
|
+
scrimEl,
|
|
10442
10883
|
target,
|
|
10443
10884
|
animateClick,
|
|
10444
10885
|
contentEl,
|
|
@@ -10634,6 +11075,9 @@ const VMenu = genericComponent()({
|
|
|
10634
11075
|
isActive.value = false;
|
|
10635
11076
|
overlay.value?.activatorEl?.focus();
|
|
10636
11077
|
}
|
|
11078
|
+
} else if (['Enter', ' '].includes(e.key) && props.closeOnContentClick) {
|
|
11079
|
+
isActive.value = false;
|
|
11080
|
+
parent?.closeParents();
|
|
10637
11081
|
}
|
|
10638
11082
|
}
|
|
10639
11083
|
function onActivatorKeydown(e) {
|
|
@@ -10911,7 +11355,7 @@ const VField = genericComponent()({
|
|
|
10911
11355
|
}
|
|
10912
11356
|
useRender(() => {
|
|
10913
11357
|
const isOutlined = props.variant === 'outlined';
|
|
10914
|
-
const hasPrepend = slots['prepend-inner'] || props.prependInnerIcon;
|
|
11358
|
+
const hasPrepend = !!(slots['prepend-inner'] || props.prependInnerIcon);
|
|
10915
11359
|
const hasClear = !!(props.clearable || slots.clear);
|
|
10916
11360
|
const hasAppend = !!(slots['append-inner'] || props.appendInnerIcon || hasClear);
|
|
10917
11361
|
const label = () => slots.label ? slots.label({
|
|
@@ -11896,9 +12340,11 @@ const VSelect = genericComponent()({
|
|
|
11896
12340
|
});
|
|
11897
12341
|
}
|
|
11898
12342
|
});
|
|
11899
|
-
watch(() => props.items,
|
|
11900
|
-
if (
|
|
11901
|
-
|
|
12343
|
+
watch(() => props.items, (newVal, oldVal) => {
|
|
12344
|
+
if (menu.value) return;
|
|
12345
|
+
if (isFocused.value && !oldVal.length && newVal.length) {
|
|
12346
|
+
menu.value = true;
|
|
12347
|
+
}
|
|
11902
12348
|
});
|
|
11903
12349
|
useRender(() => {
|
|
11904
12350
|
const hasChips = !!(props.chips || slots.chip);
|
|
@@ -12333,8 +12779,8 @@ const VAutocomplete = genericComponent()({
|
|
|
12333
12779
|
if (e.key === 'ArrowDown' && highlightFirst.value) {
|
|
12334
12780
|
listRef.value?.focus('next');
|
|
12335
12781
|
}
|
|
12336
|
-
if (!props.multiple) return;
|
|
12337
12782
|
if (['Backspace', 'Delete'].includes(e.key)) {
|
|
12783
|
+
if (!props.multiple && hasSelectionSlot.value && model.value.length > 0) return select(model.value[0], false);
|
|
12338
12784
|
if (selectionIndex.value < 0) {
|
|
12339
12785
|
if (e.key === 'Backspace' && !search.value) {
|
|
12340
12786
|
selectionIndex.value = length - 1;
|
|
@@ -12342,10 +12788,10 @@ const VAutocomplete = genericComponent()({
|
|
|
12342
12788
|
return;
|
|
12343
12789
|
}
|
|
12344
12790
|
const originalSelectionIndex = selectionIndex.value;
|
|
12345
|
-
|
|
12346
|
-
if (selectedItem && !selectedItem.props.disabled) select(selectedItem, false);
|
|
12791
|
+
select(model.value[selectionIndex.value], false);
|
|
12347
12792
|
selectionIndex.value = originalSelectionIndex >= length - 1 ? length - 2 : originalSelectionIndex;
|
|
12348
12793
|
}
|
|
12794
|
+
if (!props.multiple) return;
|
|
12349
12795
|
if (e.key === 'ArrowLeft') {
|
|
12350
12796
|
if (selectionIndex.value < 0 && selectionStart > 0) return;
|
|
12351
12797
|
const prev = selectionIndex.value > -1 ? selectionIndex.value - 1 : length - 1;
|
|
@@ -12398,7 +12844,7 @@ const VAutocomplete = genericComponent()({
|
|
|
12398
12844
|
/** @param set - null means toggle */
|
|
12399
12845
|
function select(item) {
|
|
12400
12846
|
let set = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
12401
|
-
if (item.props.disabled) return;
|
|
12847
|
+
if (!item || item.props.disabled) return;
|
|
12402
12848
|
if (props.multiple) {
|
|
12403
12849
|
const index = model.value.findIndex(selection => props.valueComparator(selection.value, item.value));
|
|
12404
12850
|
const add = set == null ? !~index : set;
|
|
@@ -12458,9 +12904,11 @@ const VAutocomplete = genericComponent()({
|
|
|
12458
12904
|
});
|
|
12459
12905
|
}
|
|
12460
12906
|
});
|
|
12461
|
-
watch(() => props.items,
|
|
12462
|
-
if (
|
|
12463
|
-
|
|
12907
|
+
watch(() => props.items, (newVal, oldVal) => {
|
|
12908
|
+
if (menu.value) return;
|
|
12909
|
+
if (isFocused.value && !oldVal.length && newVal.length) {
|
|
12910
|
+
menu.value = true;
|
|
12911
|
+
}
|
|
12464
12912
|
});
|
|
12465
12913
|
useRender(() => {
|
|
12466
12914
|
const hasList = !!(!props.hideNoData || displayItems.value.length || slots['prepend-item'] || slots['append-item'] || slots['no-data']);
|
|
@@ -16117,6 +16565,7 @@ const VCombobox = genericComponent()({
|
|
|
16117
16565
|
}
|
|
16118
16566
|
menu.value = !menu.value;
|
|
16119
16567
|
}
|
|
16568
|
+
// eslint-disable-next-line complexity
|
|
16120
16569
|
function onKeydown(e) {
|
|
16121
16570
|
if (isComposingIgnoreKey(e) || props.readonly || form?.isReadonly.value) return;
|
|
16122
16571
|
const selectionStart = vTextFieldRef.value.selectionStart;
|
|
@@ -16143,8 +16592,8 @@ const VCombobox = genericComponent()({
|
|
|
16143
16592
|
select(transformItem$3(props, search.value));
|
|
16144
16593
|
if (hasSelectionSlot.value) _search.value = '';
|
|
16145
16594
|
}
|
|
16146
|
-
if (!props.multiple) return;
|
|
16147
16595
|
if (['Backspace', 'Delete'].includes(e.key)) {
|
|
16596
|
+
if (!props.multiple && hasSelectionSlot.value && model.value.length > 0) return select(model.value[0], false);
|
|
16148
16597
|
if (selectionIndex.value < 0) {
|
|
16149
16598
|
if (e.key === 'Backspace' && !search.value) {
|
|
16150
16599
|
selectionIndex.value = length - 1;
|
|
@@ -16152,10 +16601,10 @@ const VCombobox = genericComponent()({
|
|
|
16152
16601
|
return;
|
|
16153
16602
|
}
|
|
16154
16603
|
const originalSelectionIndex = selectionIndex.value;
|
|
16155
|
-
|
|
16156
|
-
if (selectedItem && !selectedItem.props.disabled) select(selectedItem, false);
|
|
16604
|
+
select(model.value[selectionIndex.value], false);
|
|
16157
16605
|
selectionIndex.value = originalSelectionIndex >= length - 1 ? length - 2 : originalSelectionIndex;
|
|
16158
16606
|
}
|
|
16607
|
+
if (!props.multiple) return;
|
|
16159
16608
|
if (e.key === 'ArrowLeft') {
|
|
16160
16609
|
if (selectionIndex.value < 0 && selectionStart > 0) return;
|
|
16161
16610
|
const prev = selectionIndex.value > -1 ? selectionIndex.value - 1 : length - 1;
|
|
@@ -16186,7 +16635,7 @@ const VCombobox = genericComponent()({
|
|
|
16186
16635
|
/** @param set - null means toggle */
|
|
16187
16636
|
function select(item) {
|
|
16188
16637
|
let set = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
16189
|
-
if (item.props.disabled) return;
|
|
16638
|
+
if (!item || item.props.disabled) return;
|
|
16190
16639
|
if (props.multiple) {
|
|
16191
16640
|
const index = model.value.findIndex(selection => props.valueComparator(selection.value, item.value));
|
|
16192
16641
|
const add = set == null ? !~index : set;
|
|
@@ -16263,9 +16712,11 @@ const VCombobox = genericComponent()({
|
|
|
16263
16712
|
});
|
|
16264
16713
|
}
|
|
16265
16714
|
});
|
|
16266
|
-
watch(() => props.items,
|
|
16267
|
-
if (
|
|
16268
|
-
|
|
16715
|
+
watch(() => props.items, (newVal, oldVal) => {
|
|
16716
|
+
if (menu.value) return;
|
|
16717
|
+
if (isFocused.value && !oldVal.length && newVal.length) {
|
|
16718
|
+
menu.value = true;
|
|
16719
|
+
}
|
|
16269
16720
|
});
|
|
16270
16721
|
useRender(() => {
|
|
16271
16722
|
const hasList = !!(!props.hideNoData || displayItems.value.length || slots['prepend-item'] || slots['append-item'] || slots['no-data']);
|
|
@@ -17412,7 +17863,7 @@ function setYear(date, year) {
|
|
|
17412
17863
|
return d;
|
|
17413
17864
|
}
|
|
17414
17865
|
function startOfDay(date) {
|
|
17415
|
-
return new Date(date.getFullYear(), date.getMonth(), date.getDate());
|
|
17866
|
+
return new Date(date.getFullYear(), date.getMonth(), date.getDate(), 0, 0, 0, 0);
|
|
17416
17867
|
}
|
|
17417
17868
|
function endOfDay(date) {
|
|
17418
17869
|
return new Date(date.getFullYear(), date.getMonth(), date.getDate(), 23, 59, 59, 999);
|
|
@@ -20286,6 +20737,7 @@ const VDatePickerControls = genericComponent()({
|
|
|
20286
20737
|
emit('click:month');
|
|
20287
20738
|
}
|
|
20288
20739
|
useRender(() => {
|
|
20740
|
+
// TODO: add slot support and scope defaults
|
|
20289
20741
|
return createVNode("div", {
|
|
20290
20742
|
"class": ['v-date-picker-controls']
|
|
20291
20743
|
}, [createVNode(VBtn, {
|
|
@@ -20564,6 +21016,12 @@ const VDatePickerMonth = genericComponent()({
|
|
|
20564
21016
|
const adapter = useDate();
|
|
20565
21017
|
const rangeStart = shallowRef();
|
|
20566
21018
|
const rangeStop = shallowRef();
|
|
21019
|
+
if (props.multiple === 'range' && model.value.length > 0) {
|
|
21020
|
+
rangeStart.value = model.value[0];
|
|
21021
|
+
if (model.value.length > 1) {
|
|
21022
|
+
rangeStop.value = model.value[model.value.length - 1];
|
|
21023
|
+
}
|
|
21024
|
+
}
|
|
20567
21025
|
const atMax = computed(() => {
|
|
20568
21026
|
const max = ['number', 'string'].includes(typeof props.multiple) ? Number(props.multiple) : Infinity;
|
|
20569
21027
|
return model.value.length >= max;
|
|
@@ -20574,15 +21032,15 @@ const VDatePickerMonth = genericComponent()({
|
|
|
20574
21032
|
rangeStart.value = _value;
|
|
20575
21033
|
model.value = [rangeStart.value];
|
|
20576
21034
|
} else if (!rangeStop.value) {
|
|
20577
|
-
if (adapter.isSameDay(
|
|
21035
|
+
if (adapter.isSameDay(_value, rangeStart.value)) {
|
|
20578
21036
|
rangeStart.value = undefined;
|
|
20579
21037
|
model.value = [];
|
|
20580
21038
|
return;
|
|
20581
|
-
} else if (adapter.isBefore(
|
|
20582
|
-
rangeStop.value = rangeStart.value;
|
|
21039
|
+
} else if (adapter.isBefore(_value, rangeStart.value)) {
|
|
21040
|
+
rangeStop.value = adapter.endOfDay(rangeStart.value);
|
|
20583
21041
|
rangeStart.value = _value;
|
|
20584
21042
|
} else {
|
|
20585
|
-
rangeStop.value = _value;
|
|
21043
|
+
rangeStop.value = adapter.endOfDay(_value);
|
|
20586
21044
|
}
|
|
20587
21045
|
const diff = adapter.getDiff(rangeStop.value, rangeStart.value, 'days');
|
|
20588
21046
|
const datesInRange = [rangeStart.value];
|
|
@@ -22749,12 +23207,24 @@ const VNavigationDrawer = genericComponent()({
|
|
|
22749
23207
|
default: () => [hasImage && createVNode("div", {
|
|
22750
23208
|
"key": "image",
|
|
22751
23209
|
"class": "v-navigation-drawer__img"
|
|
22752
|
-
}, [slots.image ?
|
|
22753
|
-
|
|
22754
|
-
|
|
22755
|
-
"
|
|
22756
|
-
"
|
|
22757
|
-
|
|
23210
|
+
}, [!slots.image ? createVNode(VImg, {
|
|
23211
|
+
"key": "image-img",
|
|
23212
|
+
"alt": "",
|
|
23213
|
+
"cover": true,
|
|
23214
|
+
"height": "inherit",
|
|
23215
|
+
"src": props.image
|
|
23216
|
+
}, null) : createVNode(VDefaultsProvider, {
|
|
23217
|
+
"key": "image-defaults",
|
|
23218
|
+
"disabled": !props.image,
|
|
23219
|
+
"defaults": {
|
|
23220
|
+
VImg: {
|
|
23221
|
+
alt: '',
|
|
23222
|
+
cover: true,
|
|
23223
|
+
height: 'inherit',
|
|
23224
|
+
src: props.image
|
|
23225
|
+
}
|
|
23226
|
+
}
|
|
23227
|
+
}, slots.image)]), slots.prepend && createVNode("div", {
|
|
22758
23228
|
"class": "v-navigation-drawer__prepend"
|
|
22759
23229
|
}, [slots.prepend?.()]), createVNode("div", {
|
|
22760
23230
|
"class": "v-navigation-drawer__content"
|
|
@@ -22855,7 +23325,7 @@ const VOtpInput = genericComponent()({
|
|
|
22855
23325
|
function onInput() {
|
|
22856
23326
|
// The maxlength attribute doesn't work for the number type input, so the text type is used.
|
|
22857
23327
|
// The following logic simulates the behavior of a number input.
|
|
22858
|
-
if (
|
|
23328
|
+
if (isValidNumber(current.value.value)) {
|
|
22859
23329
|
current.value.value = '';
|
|
22860
23330
|
return;
|
|
22861
23331
|
}
|
|
@@ -22901,7 +23371,9 @@ const VOtpInput = genericComponent()({
|
|
|
22901
23371
|
function onPaste(index, e) {
|
|
22902
23372
|
e.preventDefault();
|
|
22903
23373
|
e.stopPropagation();
|
|
22904
|
-
|
|
23374
|
+
const clipboardText = e?.clipboardData?.getData('Text') ?? '';
|
|
23375
|
+
if (!isValidNumber(clipboardText)) return;
|
|
23376
|
+
model.value = clipboardText.split('');
|
|
22905
23377
|
inputRef.value?.[index].blur();
|
|
22906
23378
|
}
|
|
22907
23379
|
function reset() {
|
|
@@ -22915,6 +23387,9 @@ const VOtpInput = genericComponent()({
|
|
|
22915
23387
|
blur();
|
|
22916
23388
|
focusIndex.value = -1;
|
|
22917
23389
|
}
|
|
23390
|
+
function isValidNumber(value) {
|
|
23391
|
+
return props.type === 'number' && !isNaN(Number(value));
|
|
23392
|
+
}
|
|
22918
23393
|
provideDefaults({
|
|
22919
23394
|
VField: {
|
|
22920
23395
|
color: computed(() => props.color),
|
|
@@ -25773,7 +26248,7 @@ function createVuetify$1() {
|
|
|
25773
26248
|
goTo
|
|
25774
26249
|
};
|
|
25775
26250
|
}
|
|
25776
|
-
const version$1 = "3.5.
|
|
26251
|
+
const version$1 = "3.5.10";
|
|
25777
26252
|
createVuetify$1.version = version$1;
|
|
25778
26253
|
|
|
25779
26254
|
// Vue's inject() can only be used in setup
|
|
@@ -25798,8 +26273,8 @@ const createVuetify = function () {
|
|
|
25798
26273
|
...options
|
|
25799
26274
|
});
|
|
25800
26275
|
};
|
|
25801
|
-
const version = "3.5.
|
|
26276
|
+
const version = "3.5.10";
|
|
25802
26277
|
createVuetify.version = version;
|
|
25803
26278
|
|
|
25804
|
-
export { components, createVuetify, directives, useDate, useDefaults, useDisplay, useGoTo, useLayout, useLocale, useRtl, useTheme, version };
|
|
26279
|
+
export { index as blueprints, components, createVuetify, directives, useDate, useDefaults, useDisplay, useGoTo, useLayout, useLocale, useRtl, useTheme, version };
|
|
25805
26280
|
//# sourceMappingURL=vuetify.esm.js.map
|