vuetify 3.5.9 → 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 +106 -6
- package/dist/json/importMap-labs.json +8 -4
- package/dist/json/importMap.json +122 -122
- package/dist/json/tags.json +30 -0
- package/dist/json/web-types.json +582 -15
- package/dist/vuetify-labs.css +2456 -2414
- package/dist/vuetify-labs.d.ts +2711 -1996
- package/dist/vuetify-labs.esm.js +518 -40
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +518 -39
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +681 -676
- package/dist/vuetify.d.ts +2356 -2303
- package/dist/vuetify.esm.js +605 -330
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +604 -328
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +1106 -1098
- 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 +4 -4
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VAutocomplete/index.d.mts +94 -94
- 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/VCombobox/VCombobox.mjs +5 -4
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VCombobox/index.d.mts +94 -94
- package/lib/components/VDataTable/index.d.mts +6 -6
- 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/VListItem.mjs +2 -2
- package/lib/components/VList/VListItem.mjs.map +1 -1
- package/lib/components/VList/index.d.mts +48 -48
- 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/index.d.mts +94 -94
- 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 +1869 -1832
- 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/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/index.d.mts +37 -36
- 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/index.d.mts +8 -8
- package/lib/labs/components.d.mts +788 -95
- package/lib/labs/components.mjs +1 -0
- 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.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
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
|
*/
|
|
@@ -10,77 +10,6 @@
|
|
|
10
10
|
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.Vuetify = {}, global.Vue));
|
|
11
11
|
})(this, (function (exports, vue) { 'use strict';
|
|
12
12
|
|
|
13
|
-
// Types
|
|
14
|
-
// eslint-disable-line vue/prefer-import-from-vue
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* Creates a factory function for props definitions.
|
|
18
|
-
* This is used to define props in a composable then override
|
|
19
|
-
* default values in an implementing component.
|
|
20
|
-
*
|
|
21
|
-
* @example Simplified signature
|
|
22
|
-
* (props: Props) => (defaults?: Record<keyof props, any>) => Props
|
|
23
|
-
*
|
|
24
|
-
* @example Usage
|
|
25
|
-
* const makeProps = propsFactory({
|
|
26
|
-
* foo: String,
|
|
27
|
-
* })
|
|
28
|
-
*
|
|
29
|
-
* defineComponent({
|
|
30
|
-
* props: {
|
|
31
|
-
* ...makeProps({
|
|
32
|
-
* foo: 'a',
|
|
33
|
-
* }),
|
|
34
|
-
* },
|
|
35
|
-
* setup (props) {
|
|
36
|
-
* // would be "string | undefined", now "string" because a default has been provided
|
|
37
|
-
* props.foo
|
|
38
|
-
* },
|
|
39
|
-
* }
|
|
40
|
-
*/
|
|
41
|
-
|
|
42
|
-
function propsFactory(props, source) {
|
|
43
|
-
return defaults => {
|
|
44
|
-
return Object.keys(props).reduce((obj, prop) => {
|
|
45
|
-
const isObjectDefinition = typeof props[prop] === 'object' && props[prop] != null && !Array.isArray(props[prop]);
|
|
46
|
-
const definition = isObjectDefinition ? props[prop] : {
|
|
47
|
-
type: props[prop]
|
|
48
|
-
};
|
|
49
|
-
if (defaults && prop in defaults) {
|
|
50
|
-
obj[prop] = {
|
|
51
|
-
...definition,
|
|
52
|
-
default: defaults[prop]
|
|
53
|
-
};
|
|
54
|
-
} else {
|
|
55
|
-
obj[prop] = definition;
|
|
56
|
-
}
|
|
57
|
-
if (source && !obj[prop].source) {
|
|
58
|
-
obj[prop].source = source;
|
|
59
|
-
}
|
|
60
|
-
return obj;
|
|
61
|
-
}, {});
|
|
62
|
-
};
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
/**
|
|
66
|
-
* Like `Partial<T>` but doesn't care what the value is
|
|
67
|
-
*/
|
|
68
|
-
|
|
69
|
-
// Copied from Vue
|
|
70
|
-
|
|
71
|
-
// Utilities
|
|
72
|
-
|
|
73
|
-
// Types
|
|
74
|
-
|
|
75
|
-
// Composables
|
|
76
|
-
const makeComponentProps = propsFactory({
|
|
77
|
-
class: [String, Array],
|
|
78
|
-
style: {
|
|
79
|
-
type: [String, Array, Object],
|
|
80
|
-
default: null
|
|
81
|
-
}
|
|
82
|
-
}, 'component');
|
|
83
|
-
|
|
84
13
|
const IN_BROWSER = typeof window !== 'undefined';
|
|
85
14
|
const SUPPORTS_INTERSECTION = IN_BROWSER && 'IntersectionObserver' in window;
|
|
86
15
|
const SUPPORTS_TOUCH = IN_BROWSER && ('ontouchstart' in window || window.navigator.maxTouchPoints > 0);
|
|
@@ -1231,6 +1160,77 @@
|
|
|
1231
1160
|
return whiteContrast > Math.min(blackContrast, 50) ? '#fff' : '#000';
|
|
1232
1161
|
}
|
|
1233
1162
|
|
|
1163
|
+
// Types
|
|
1164
|
+
// eslint-disable-line vue/prefer-import-from-vue
|
|
1165
|
+
|
|
1166
|
+
/**
|
|
1167
|
+
* Creates a factory function for props definitions.
|
|
1168
|
+
* This is used to define props in a composable then override
|
|
1169
|
+
* default values in an implementing component.
|
|
1170
|
+
*
|
|
1171
|
+
* @example Simplified signature
|
|
1172
|
+
* (props: Props) => (defaults?: Record<keyof props, any>) => Props
|
|
1173
|
+
*
|
|
1174
|
+
* @example Usage
|
|
1175
|
+
* const makeProps = propsFactory({
|
|
1176
|
+
* foo: String,
|
|
1177
|
+
* })
|
|
1178
|
+
*
|
|
1179
|
+
* defineComponent({
|
|
1180
|
+
* props: {
|
|
1181
|
+
* ...makeProps({
|
|
1182
|
+
* foo: 'a',
|
|
1183
|
+
* }),
|
|
1184
|
+
* },
|
|
1185
|
+
* setup (props) {
|
|
1186
|
+
* // would be "string | undefined", now "string" because a default has been provided
|
|
1187
|
+
* props.foo
|
|
1188
|
+
* },
|
|
1189
|
+
* }
|
|
1190
|
+
*/
|
|
1191
|
+
|
|
1192
|
+
function propsFactory(props, source) {
|
|
1193
|
+
return defaults => {
|
|
1194
|
+
return Object.keys(props).reduce((obj, prop) => {
|
|
1195
|
+
const isObjectDefinition = typeof props[prop] === 'object' && props[prop] != null && !Array.isArray(props[prop]);
|
|
1196
|
+
const definition = isObjectDefinition ? props[prop] : {
|
|
1197
|
+
type: props[prop]
|
|
1198
|
+
};
|
|
1199
|
+
if (defaults && prop in defaults) {
|
|
1200
|
+
obj[prop] = {
|
|
1201
|
+
...definition,
|
|
1202
|
+
default: defaults[prop]
|
|
1203
|
+
};
|
|
1204
|
+
} else {
|
|
1205
|
+
obj[prop] = definition;
|
|
1206
|
+
}
|
|
1207
|
+
if (source && !obj[prop].source) {
|
|
1208
|
+
obj[prop].source = source;
|
|
1209
|
+
}
|
|
1210
|
+
return obj;
|
|
1211
|
+
}, {});
|
|
1212
|
+
};
|
|
1213
|
+
}
|
|
1214
|
+
|
|
1215
|
+
/**
|
|
1216
|
+
* Like `Partial<T>` but doesn't care what the value is
|
|
1217
|
+
*/
|
|
1218
|
+
|
|
1219
|
+
// Copied from Vue
|
|
1220
|
+
|
|
1221
|
+
// Utilities
|
|
1222
|
+
|
|
1223
|
+
// Types
|
|
1224
|
+
|
|
1225
|
+
// Composables
|
|
1226
|
+
const makeComponentProps = propsFactory({
|
|
1227
|
+
class: [String, Array],
|
|
1228
|
+
style: {
|
|
1229
|
+
type: [String, Array, Object],
|
|
1230
|
+
default: null
|
|
1231
|
+
}
|
|
1232
|
+
}, 'component');
|
|
1233
|
+
|
|
1234
1234
|
// Utilities
|
|
1235
1235
|
|
|
1236
1236
|
// Types
|
|
@@ -1537,19 +1537,464 @@
|
|
|
1537
1537
|
if (window.getComputedStyle(el).position === 'fixed') {
|
|
1538
1538
|
return true;
|
|
1539
1539
|
}
|
|
1540
|
-
el = el.offsetParent;
|
|
1540
|
+
el = el.offsetParent;
|
|
1541
|
+
}
|
|
1542
|
+
return false;
|
|
1543
|
+
}
|
|
1544
|
+
|
|
1545
|
+
// Utilities
|
|
1546
|
+
|
|
1547
|
+
// Types
|
|
1548
|
+
|
|
1549
|
+
function useRender(render) {
|
|
1550
|
+
const vm = getCurrentInstance('useRender');
|
|
1551
|
+
vm.render = render;
|
|
1552
|
+
}
|
|
1553
|
+
|
|
1554
|
+
// Types
|
|
1555
|
+
|
|
1556
|
+
const IconValue = [String, Function, Object, Array];
|
|
1557
|
+
const IconSymbol = Symbol.for('vuetify:icons');
|
|
1558
|
+
const makeIconProps = propsFactory({
|
|
1559
|
+
icon: {
|
|
1560
|
+
type: IconValue
|
|
1561
|
+
},
|
|
1562
|
+
// Could not remove this and use makeTagProps, types complained because it is not required
|
|
1563
|
+
tag: {
|
|
1564
|
+
type: String,
|
|
1565
|
+
required: true
|
|
1566
|
+
}
|
|
1567
|
+
}, 'icon');
|
|
1568
|
+
const VComponentIcon = genericComponent()({
|
|
1569
|
+
name: 'VComponentIcon',
|
|
1570
|
+
props: makeIconProps(),
|
|
1571
|
+
setup(props, _ref) {
|
|
1572
|
+
let {
|
|
1573
|
+
slots
|
|
1574
|
+
} = _ref;
|
|
1575
|
+
return () => {
|
|
1576
|
+
const Icon = props.icon;
|
|
1577
|
+
return vue.createVNode(props.tag, null, {
|
|
1578
|
+
default: () => [props.icon ? vue.createVNode(Icon, null, null) : slots.default?.()]
|
|
1579
|
+
});
|
|
1580
|
+
};
|
|
1581
|
+
}
|
|
1582
|
+
});
|
|
1583
|
+
const VSvgIcon = defineComponent({
|
|
1584
|
+
name: 'VSvgIcon',
|
|
1585
|
+
inheritAttrs: false,
|
|
1586
|
+
props: makeIconProps(),
|
|
1587
|
+
setup(props, _ref2) {
|
|
1588
|
+
let {
|
|
1589
|
+
attrs
|
|
1590
|
+
} = _ref2;
|
|
1591
|
+
return () => {
|
|
1592
|
+
return vue.createVNode(props.tag, vue.mergeProps(attrs, {
|
|
1593
|
+
"style": null
|
|
1594
|
+
}), {
|
|
1595
|
+
default: () => [vue.createVNode("svg", {
|
|
1596
|
+
"class": "v-icon__svg",
|
|
1597
|
+
"xmlns": "http://www.w3.org/2000/svg",
|
|
1598
|
+
"viewBox": "0 0 24 24",
|
|
1599
|
+
"role": "img",
|
|
1600
|
+
"aria-hidden": "true"
|
|
1601
|
+
}, [Array.isArray(props.icon) ? props.icon.map(path => Array.isArray(path) ? vue.createVNode("path", {
|
|
1602
|
+
"d": path[0],
|
|
1603
|
+
"fill-opacity": path[1]
|
|
1604
|
+
}, null) : vue.createVNode("path", {
|
|
1605
|
+
"d": path
|
|
1606
|
+
}, null)) : vue.createVNode("path", {
|
|
1607
|
+
"d": props.icon
|
|
1608
|
+
}, null)])]
|
|
1609
|
+
});
|
|
1610
|
+
};
|
|
1611
|
+
}
|
|
1612
|
+
});
|
|
1613
|
+
const VLigatureIcon = defineComponent({
|
|
1614
|
+
name: 'VLigatureIcon',
|
|
1615
|
+
props: makeIconProps(),
|
|
1616
|
+
setup(props) {
|
|
1617
|
+
return () => {
|
|
1618
|
+
return vue.createVNode(props.tag, null, {
|
|
1619
|
+
default: () => [props.icon]
|
|
1620
|
+
});
|
|
1621
|
+
};
|
|
1622
|
+
}
|
|
1623
|
+
});
|
|
1624
|
+
const VClassIcon = defineComponent({
|
|
1625
|
+
name: 'VClassIcon',
|
|
1626
|
+
props: makeIconProps(),
|
|
1627
|
+
setup(props) {
|
|
1628
|
+
return () => {
|
|
1629
|
+
return vue.createVNode(props.tag, {
|
|
1630
|
+
"class": props.icon
|
|
1631
|
+
}, null);
|
|
1632
|
+
};
|
|
1633
|
+
}
|
|
1634
|
+
});
|
|
1635
|
+
function genDefaults$3() {
|
|
1636
|
+
return {
|
|
1637
|
+
svg: {
|
|
1638
|
+
component: VSvgIcon
|
|
1639
|
+
},
|
|
1640
|
+
class: {
|
|
1641
|
+
component: VClassIcon
|
|
1642
|
+
}
|
|
1643
|
+
};
|
|
1644
|
+
}
|
|
1645
|
+
|
|
1646
|
+
// Composables
|
|
1647
|
+
function createIcons(options) {
|
|
1648
|
+
const sets = genDefaults$3();
|
|
1649
|
+
const defaultSet = options?.defaultSet ?? 'mdi';
|
|
1650
|
+
if (defaultSet === 'mdi' && !sets.mdi) {
|
|
1651
|
+
sets.mdi = mdi;
|
|
1652
|
+
}
|
|
1653
|
+
return mergeDeep({
|
|
1654
|
+
defaultSet,
|
|
1655
|
+
sets,
|
|
1656
|
+
aliases: {
|
|
1657
|
+
...aliases,
|
|
1658
|
+
/* eslint-disable max-len */
|
|
1659
|
+
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]],
|
|
1660
|
+
'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'
|
|
1661
|
+
/* eslint-enable max-len */
|
|
1662
|
+
}
|
|
1663
|
+
}, options);
|
|
1664
|
+
}
|
|
1665
|
+
const useIcon = props => {
|
|
1666
|
+
const icons = vue.inject(IconSymbol);
|
|
1667
|
+
if (!icons) throw new Error('Missing Vuetify Icons provide!');
|
|
1668
|
+
const iconData = vue.computed(() => {
|
|
1669
|
+
const iconAlias = vue.unref(props);
|
|
1670
|
+
if (!iconAlias) return {
|
|
1671
|
+
component: VComponentIcon
|
|
1672
|
+
};
|
|
1673
|
+
let icon = iconAlias;
|
|
1674
|
+
if (typeof icon === 'string') {
|
|
1675
|
+
icon = icon.trim();
|
|
1676
|
+
if (icon.startsWith('$')) {
|
|
1677
|
+
icon = icons.aliases?.[icon.slice(1)];
|
|
1678
|
+
}
|
|
1679
|
+
}
|
|
1680
|
+
if (!icon) throw new Error(`Could not find aliased icon "${iconAlias}"`);
|
|
1681
|
+
if (Array.isArray(icon)) {
|
|
1682
|
+
return {
|
|
1683
|
+
component: VSvgIcon,
|
|
1684
|
+
icon
|
|
1685
|
+
};
|
|
1686
|
+
} else if (typeof icon !== 'string') {
|
|
1687
|
+
return {
|
|
1688
|
+
component: VComponentIcon,
|
|
1689
|
+
icon
|
|
1690
|
+
};
|
|
1691
|
+
}
|
|
1692
|
+
const iconSetName = Object.keys(icons.sets).find(setName => typeof icon === 'string' && icon.startsWith(`${setName}:`));
|
|
1693
|
+
const iconName = iconSetName ? icon.slice(iconSetName.length + 1) : icon;
|
|
1694
|
+
const iconSet = icons.sets[iconSetName ?? icons.defaultSet];
|
|
1695
|
+
return {
|
|
1696
|
+
component: iconSet.component,
|
|
1697
|
+
icon: iconName
|
|
1698
|
+
};
|
|
1699
|
+
});
|
|
1700
|
+
return {
|
|
1701
|
+
iconData
|
|
1702
|
+
};
|
|
1703
|
+
};
|
|
1704
|
+
|
|
1705
|
+
// Composables
|
|
1706
|
+
|
|
1707
|
+
// Types
|
|
1708
|
+
|
|
1709
|
+
const aliases = {
|
|
1710
|
+
collapse: 'mdi-chevron-up',
|
|
1711
|
+
complete: 'mdi-check',
|
|
1712
|
+
cancel: 'mdi-close-circle',
|
|
1713
|
+
close: 'mdi-close',
|
|
1714
|
+
delete: 'mdi-close-circle',
|
|
1715
|
+
// delete (e.g. v-chip close)
|
|
1716
|
+
clear: 'mdi-close-circle',
|
|
1717
|
+
success: 'mdi-check-circle',
|
|
1718
|
+
info: 'mdi-information',
|
|
1719
|
+
warning: 'mdi-alert-circle',
|
|
1720
|
+
error: 'mdi-close-circle',
|
|
1721
|
+
prev: 'mdi-chevron-left',
|
|
1722
|
+
next: 'mdi-chevron-right',
|
|
1723
|
+
checkboxOn: 'mdi-checkbox-marked',
|
|
1724
|
+
checkboxOff: 'mdi-checkbox-blank-outline',
|
|
1725
|
+
checkboxIndeterminate: 'mdi-minus-box',
|
|
1726
|
+
delimiter: 'mdi-circle',
|
|
1727
|
+
// for carousel
|
|
1728
|
+
sortAsc: 'mdi-arrow-up',
|
|
1729
|
+
sortDesc: 'mdi-arrow-down',
|
|
1730
|
+
expand: 'mdi-chevron-down',
|
|
1731
|
+
menu: 'mdi-menu',
|
|
1732
|
+
subgroup: 'mdi-menu-down',
|
|
1733
|
+
dropdown: 'mdi-menu-down',
|
|
1734
|
+
radioOn: 'mdi-radiobox-marked',
|
|
1735
|
+
radioOff: 'mdi-radiobox-blank',
|
|
1736
|
+
edit: 'mdi-pencil',
|
|
1737
|
+
ratingEmpty: 'mdi-star-outline',
|
|
1738
|
+
ratingFull: 'mdi-star',
|
|
1739
|
+
ratingHalf: 'mdi-star-half-full',
|
|
1740
|
+
loading: 'mdi-cached',
|
|
1741
|
+
first: 'mdi-page-first',
|
|
1742
|
+
last: 'mdi-page-last',
|
|
1743
|
+
unfold: 'mdi-unfold-more-horizontal',
|
|
1744
|
+
file: 'mdi-paperclip',
|
|
1745
|
+
plus: 'mdi-plus',
|
|
1746
|
+
minus: 'mdi-minus',
|
|
1747
|
+
calendar: 'mdi-calendar',
|
|
1748
|
+
treeviewCollapse: 'mdi-menu-down',
|
|
1749
|
+
treeviewExpand: 'mdi-menu-right',
|
|
1750
|
+
eyeDropper: 'mdi-eyedropper'
|
|
1751
|
+
};
|
|
1752
|
+
const mdi = {
|
|
1753
|
+
// Not using mergeProps here, functional components merge props by default (?)
|
|
1754
|
+
component: props => vue.h(VClassIcon, {
|
|
1755
|
+
...props,
|
|
1756
|
+
class: 'mdi'
|
|
1757
|
+
})
|
|
1758
|
+
};
|
|
1759
|
+
|
|
1760
|
+
// Icons
|
|
1761
|
+
|
|
1762
|
+
// Types
|
|
1763
|
+
|
|
1764
|
+
const md1 = {
|
|
1765
|
+
defaults: {
|
|
1766
|
+
global: {
|
|
1767
|
+
rounded: 'sm'
|
|
1768
|
+
},
|
|
1769
|
+
VAvatar: {
|
|
1770
|
+
rounded: 'circle'
|
|
1771
|
+
},
|
|
1772
|
+
VAutocomplete: {
|
|
1773
|
+
variant: 'underlined'
|
|
1774
|
+
},
|
|
1775
|
+
VBanner: {
|
|
1776
|
+
color: 'primary'
|
|
1777
|
+
},
|
|
1778
|
+
VBtn: {
|
|
1779
|
+
color: 'primary',
|
|
1780
|
+
rounded: 0
|
|
1781
|
+
},
|
|
1782
|
+
VCheckbox: {
|
|
1783
|
+
color: 'secondary'
|
|
1784
|
+
},
|
|
1785
|
+
VCombobox: {
|
|
1786
|
+
variant: 'underlined'
|
|
1787
|
+
},
|
|
1788
|
+
VSelect: {
|
|
1789
|
+
variant: 'underlined'
|
|
1790
|
+
},
|
|
1791
|
+
VSlider: {
|
|
1792
|
+
color: 'primary'
|
|
1793
|
+
},
|
|
1794
|
+
VTabs: {
|
|
1795
|
+
color: 'primary'
|
|
1796
|
+
},
|
|
1797
|
+
VTextarea: {
|
|
1798
|
+
variant: 'underlined'
|
|
1799
|
+
},
|
|
1800
|
+
VTextField: {
|
|
1801
|
+
variant: 'underlined'
|
|
1802
|
+
},
|
|
1803
|
+
VToolbar: {
|
|
1804
|
+
VBtn: {
|
|
1805
|
+
color: null
|
|
1806
|
+
}
|
|
1807
|
+
}
|
|
1808
|
+
},
|
|
1809
|
+
icons: {
|
|
1810
|
+
defaultSet: 'mdi',
|
|
1811
|
+
sets: {
|
|
1812
|
+
mdi
|
|
1813
|
+
}
|
|
1814
|
+
},
|
|
1815
|
+
theme: {
|
|
1816
|
+
themes: {
|
|
1817
|
+
light: {
|
|
1818
|
+
colors: {
|
|
1819
|
+
primary: '#3F51B5',
|
|
1820
|
+
'primary-darken-1': '#303F9F',
|
|
1821
|
+
'primary-lighten-1': '#C5CAE9',
|
|
1822
|
+
secondary: '#FF4081',
|
|
1823
|
+
'secondary-darken-1': '#F50057',
|
|
1824
|
+
'secondary-lighten-1': '#FF80AB',
|
|
1825
|
+
accent: '#009688'
|
|
1826
|
+
}
|
|
1827
|
+
}
|
|
1828
|
+
}
|
|
1829
|
+
}
|
|
1830
|
+
};
|
|
1831
|
+
|
|
1832
|
+
// Icons
|
|
1833
|
+
|
|
1834
|
+
// Types
|
|
1835
|
+
|
|
1836
|
+
const md2 = {
|
|
1837
|
+
defaults: {
|
|
1838
|
+
global: {
|
|
1839
|
+
rounded: 'md'
|
|
1840
|
+
},
|
|
1841
|
+
VAvatar: {
|
|
1842
|
+
rounded: 'circle'
|
|
1843
|
+
},
|
|
1844
|
+
VAutocomplete: {
|
|
1845
|
+
variant: 'filled'
|
|
1846
|
+
},
|
|
1847
|
+
VBanner: {
|
|
1848
|
+
color: 'primary'
|
|
1849
|
+
},
|
|
1850
|
+
VBtn: {
|
|
1851
|
+
color: 'primary'
|
|
1852
|
+
},
|
|
1853
|
+
VCheckbox: {
|
|
1854
|
+
color: 'secondary'
|
|
1855
|
+
},
|
|
1856
|
+
VCombobox: {
|
|
1857
|
+
variant: 'filled'
|
|
1858
|
+
},
|
|
1859
|
+
VSelect: {
|
|
1860
|
+
variant: 'filled'
|
|
1861
|
+
},
|
|
1862
|
+
VSlider: {
|
|
1863
|
+
color: 'primary'
|
|
1864
|
+
},
|
|
1865
|
+
VTabs: {
|
|
1866
|
+
color: 'primary'
|
|
1867
|
+
},
|
|
1868
|
+
VTextarea: {
|
|
1869
|
+
variant: 'filled'
|
|
1870
|
+
},
|
|
1871
|
+
VTextField: {
|
|
1872
|
+
variant: 'filled'
|
|
1873
|
+
},
|
|
1874
|
+
VToolbar: {
|
|
1875
|
+
VBtn: {
|
|
1876
|
+
color: null
|
|
1877
|
+
}
|
|
1878
|
+
}
|
|
1879
|
+
},
|
|
1880
|
+
icons: {
|
|
1881
|
+
defaultSet: 'mdi',
|
|
1882
|
+
sets: {
|
|
1883
|
+
mdi
|
|
1884
|
+
}
|
|
1885
|
+
},
|
|
1886
|
+
theme: {
|
|
1887
|
+
themes: {
|
|
1888
|
+
light: {
|
|
1889
|
+
colors: {
|
|
1890
|
+
primary: '#6200EE',
|
|
1891
|
+
'primary-darken-1': '#3700B3',
|
|
1892
|
+
secondary: '#03DAC6',
|
|
1893
|
+
'secondary-darken-1': '#018786',
|
|
1894
|
+
error: '#B00020'
|
|
1895
|
+
}
|
|
1896
|
+
}
|
|
1897
|
+
}
|
|
1898
|
+
}
|
|
1899
|
+
};
|
|
1900
|
+
|
|
1901
|
+
// Icons
|
|
1902
|
+
|
|
1903
|
+
// Types
|
|
1904
|
+
|
|
1905
|
+
const md3 = {
|
|
1906
|
+
defaults: {
|
|
1907
|
+
VAppBar: {
|
|
1908
|
+
flat: true
|
|
1909
|
+
},
|
|
1910
|
+
VAutocomplete: {
|
|
1911
|
+
variant: 'filled'
|
|
1912
|
+
},
|
|
1913
|
+
VBanner: {
|
|
1914
|
+
color: 'primary'
|
|
1915
|
+
},
|
|
1916
|
+
VBottomSheet: {
|
|
1917
|
+
contentClass: 'rounded-t-xl overflow-hidden'
|
|
1918
|
+
},
|
|
1919
|
+
VBtn: {
|
|
1920
|
+
color: 'primary',
|
|
1921
|
+
rounded: 'xl'
|
|
1922
|
+
},
|
|
1923
|
+
VBtnGroup: {
|
|
1924
|
+
rounded: 'xl',
|
|
1925
|
+
VBtn: {
|
|
1926
|
+
rounded: null
|
|
1927
|
+
}
|
|
1928
|
+
},
|
|
1929
|
+
VCard: {
|
|
1930
|
+
rounded: 'lg'
|
|
1931
|
+
},
|
|
1932
|
+
VCheckbox: {
|
|
1933
|
+
color: 'secondary',
|
|
1934
|
+
inset: true
|
|
1935
|
+
},
|
|
1936
|
+
VChip: {
|
|
1937
|
+
rounded: 'sm'
|
|
1938
|
+
},
|
|
1939
|
+
VCombobox: {
|
|
1940
|
+
variant: 'filled'
|
|
1941
|
+
},
|
|
1942
|
+
VNavigationDrawer: {
|
|
1943
|
+
// VList: {
|
|
1944
|
+
// nav: true,
|
|
1945
|
+
// VListItem: {
|
|
1946
|
+
// rounded: 'xl',
|
|
1947
|
+
// },
|
|
1948
|
+
// },
|
|
1949
|
+
},
|
|
1950
|
+
VSelect: {
|
|
1951
|
+
variant: 'filled'
|
|
1952
|
+
},
|
|
1953
|
+
VSlider: {
|
|
1954
|
+
color: 'primary'
|
|
1955
|
+
},
|
|
1956
|
+
VTabs: {
|
|
1957
|
+
color: 'primary'
|
|
1958
|
+
},
|
|
1959
|
+
VTextarea: {
|
|
1960
|
+
variant: 'filled'
|
|
1961
|
+
},
|
|
1962
|
+
VTextField: {
|
|
1963
|
+
variant: 'filled'
|
|
1964
|
+
},
|
|
1965
|
+
VToolbar: {
|
|
1966
|
+
VBtn: {
|
|
1967
|
+
color: null
|
|
1968
|
+
}
|
|
1969
|
+
}
|
|
1970
|
+
},
|
|
1971
|
+
icons: {
|
|
1972
|
+
defaultSet: 'mdi',
|
|
1973
|
+
sets: {
|
|
1974
|
+
mdi
|
|
1975
|
+
}
|
|
1976
|
+
},
|
|
1977
|
+
theme: {
|
|
1978
|
+
themes: {
|
|
1979
|
+
light: {
|
|
1980
|
+
colors: {
|
|
1981
|
+
primary: '#6750a4',
|
|
1982
|
+
secondary: '#b4b0bb',
|
|
1983
|
+
tertiary: '#7d5260',
|
|
1984
|
+
error: '#b3261e',
|
|
1985
|
+
surface: '#fffbfe'
|
|
1986
|
+
}
|
|
1987
|
+
}
|
|
1988
|
+
}
|
|
1541
1989
|
}
|
|
1542
|
-
|
|
1543
|
-
}
|
|
1544
|
-
|
|
1545
|
-
// Utilities
|
|
1546
|
-
|
|
1547
|
-
// Types
|
|
1990
|
+
};
|
|
1548
1991
|
|
|
1549
|
-
|
|
1550
|
-
|
|
1551
|
-
|
|
1552
|
-
|
|
1992
|
+
var index = /*#__PURE__*/Object.freeze({
|
|
1993
|
+
__proto__: null,
|
|
1994
|
+
md1: md1,
|
|
1995
|
+
md2: md2,
|
|
1996
|
+
md3: md3
|
|
1997
|
+
});
|
|
1553
1998
|
|
|
1554
1999
|
// Utilities
|
|
1555
2000
|
|
|
@@ -2164,7 +2609,7 @@
|
|
|
2164
2609
|
vue.provide(LocaleSymbol, data);
|
|
2165
2610
|
return data;
|
|
2166
2611
|
}
|
|
2167
|
-
function genDefaults$
|
|
2612
|
+
function genDefaults$2() {
|
|
2168
2613
|
return {
|
|
2169
2614
|
af: false,
|
|
2170
2615
|
ar: true,
|
|
@@ -2211,7 +2656,7 @@
|
|
|
2211
2656
|
};
|
|
2212
2657
|
}
|
|
2213
2658
|
function createRtl(i18n, options) {
|
|
2214
|
-
const rtl = vue.ref(options?.rtl ?? genDefaults$
|
|
2659
|
+
const rtl = vue.ref(options?.rtl ?? genDefaults$2());
|
|
2215
2660
|
const isRtl = vue.computed(() => rtl.value[i18n.current.value] ?? false);
|
|
2216
2661
|
return {
|
|
2217
2662
|
isRtl,
|
|
@@ -2244,7 +2689,7 @@
|
|
|
2244
2689
|
const makeThemeProps = propsFactory({
|
|
2245
2690
|
theme: String
|
|
2246
2691
|
}, 'theme');
|
|
2247
|
-
function genDefaults$
|
|
2692
|
+
function genDefaults$1() {
|
|
2248
2693
|
return {
|
|
2249
2694
|
defaultTheme: 'light',
|
|
2250
2695
|
variations: {
|
|
@@ -2331,8 +2776,8 @@
|
|
|
2331
2776
|
};
|
|
2332
2777
|
}
|
|
2333
2778
|
function parseThemeOptions() {
|
|
2334
|
-
let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : genDefaults$
|
|
2335
|
-
const defaults = genDefaults$
|
|
2779
|
+
let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : genDefaults$1();
|
|
2780
|
+
const defaults = genDefaults$1();
|
|
2336
2781
|
if (!options) return {
|
|
2337
2782
|
...defaults,
|
|
2338
2783
|
isDisabled: true
|
|
@@ -2386,7 +2831,7 @@
|
|
|
2386
2831
|
const current = vue.computed(() => computedThemes.value[name.value]);
|
|
2387
2832
|
const styles = vue.computed(() => {
|
|
2388
2833
|
const lines = [];
|
|
2389
|
-
if (current.value
|
|
2834
|
+
if (current.value?.dark) {
|
|
2390
2835
|
createCssClass(lines, ':root', ['color-scheme: dark']);
|
|
2391
2836
|
}
|
|
2392
2837
|
createCssClass(lines, ':root', genCssVariables(current.value));
|
|
@@ -4327,212 +4772,6 @@
|
|
|
4327
4772
|
}
|
|
4328
4773
|
});
|
|
4329
4774
|
|
|
4330
|
-
// Composables
|
|
4331
|
-
|
|
4332
|
-
// Types
|
|
4333
|
-
|
|
4334
|
-
const aliases = {
|
|
4335
|
-
collapse: 'mdi-chevron-up',
|
|
4336
|
-
complete: 'mdi-check',
|
|
4337
|
-
cancel: 'mdi-close-circle',
|
|
4338
|
-
close: 'mdi-close',
|
|
4339
|
-
delete: 'mdi-close-circle',
|
|
4340
|
-
// delete (e.g. v-chip close)
|
|
4341
|
-
clear: 'mdi-close-circle',
|
|
4342
|
-
success: 'mdi-check-circle',
|
|
4343
|
-
info: 'mdi-information',
|
|
4344
|
-
warning: 'mdi-alert-circle',
|
|
4345
|
-
error: 'mdi-close-circle',
|
|
4346
|
-
prev: 'mdi-chevron-left',
|
|
4347
|
-
next: 'mdi-chevron-right',
|
|
4348
|
-
checkboxOn: 'mdi-checkbox-marked',
|
|
4349
|
-
checkboxOff: 'mdi-checkbox-blank-outline',
|
|
4350
|
-
checkboxIndeterminate: 'mdi-minus-box',
|
|
4351
|
-
delimiter: 'mdi-circle',
|
|
4352
|
-
// for carousel
|
|
4353
|
-
sortAsc: 'mdi-arrow-up',
|
|
4354
|
-
sortDesc: 'mdi-arrow-down',
|
|
4355
|
-
expand: 'mdi-chevron-down',
|
|
4356
|
-
menu: 'mdi-menu',
|
|
4357
|
-
subgroup: 'mdi-menu-down',
|
|
4358
|
-
dropdown: 'mdi-menu-down',
|
|
4359
|
-
radioOn: 'mdi-radiobox-marked',
|
|
4360
|
-
radioOff: 'mdi-radiobox-blank',
|
|
4361
|
-
edit: 'mdi-pencil',
|
|
4362
|
-
ratingEmpty: 'mdi-star-outline',
|
|
4363
|
-
ratingFull: 'mdi-star',
|
|
4364
|
-
ratingHalf: 'mdi-star-half-full',
|
|
4365
|
-
loading: 'mdi-cached',
|
|
4366
|
-
first: 'mdi-page-first',
|
|
4367
|
-
last: 'mdi-page-last',
|
|
4368
|
-
unfold: 'mdi-unfold-more-horizontal',
|
|
4369
|
-
file: 'mdi-paperclip',
|
|
4370
|
-
plus: 'mdi-plus',
|
|
4371
|
-
minus: 'mdi-minus',
|
|
4372
|
-
calendar: 'mdi-calendar',
|
|
4373
|
-
treeviewCollapse: 'mdi-menu-down',
|
|
4374
|
-
treeviewExpand: 'mdi-menu-right',
|
|
4375
|
-
eyeDropper: 'mdi-eyedropper'
|
|
4376
|
-
};
|
|
4377
|
-
const mdi = {
|
|
4378
|
-
// Not using mergeProps here, functional components merge props by default (?)
|
|
4379
|
-
component: props => vue.h(VClassIcon, {
|
|
4380
|
-
...props,
|
|
4381
|
-
class: 'mdi'
|
|
4382
|
-
})
|
|
4383
|
-
};
|
|
4384
|
-
|
|
4385
|
-
// Types
|
|
4386
|
-
|
|
4387
|
-
const IconValue = [String, Function, Object, Array];
|
|
4388
|
-
const IconSymbol = Symbol.for('vuetify:icons');
|
|
4389
|
-
const makeIconProps = propsFactory({
|
|
4390
|
-
icon: {
|
|
4391
|
-
type: IconValue
|
|
4392
|
-
},
|
|
4393
|
-
// Could not remove this and use makeTagProps, types complained because it is not required
|
|
4394
|
-
tag: {
|
|
4395
|
-
type: String,
|
|
4396
|
-
required: true
|
|
4397
|
-
}
|
|
4398
|
-
}, 'icon');
|
|
4399
|
-
const VComponentIcon = genericComponent()({
|
|
4400
|
-
name: 'VComponentIcon',
|
|
4401
|
-
props: makeIconProps(),
|
|
4402
|
-
setup(props, _ref) {
|
|
4403
|
-
let {
|
|
4404
|
-
slots
|
|
4405
|
-
} = _ref;
|
|
4406
|
-
return () => {
|
|
4407
|
-
const Icon = props.icon;
|
|
4408
|
-
return vue.createVNode(props.tag, null, {
|
|
4409
|
-
default: () => [props.icon ? vue.createVNode(Icon, null, null) : slots.default?.()]
|
|
4410
|
-
});
|
|
4411
|
-
};
|
|
4412
|
-
}
|
|
4413
|
-
});
|
|
4414
|
-
const VSvgIcon = defineComponent({
|
|
4415
|
-
name: 'VSvgIcon',
|
|
4416
|
-
inheritAttrs: false,
|
|
4417
|
-
props: makeIconProps(),
|
|
4418
|
-
setup(props, _ref2) {
|
|
4419
|
-
let {
|
|
4420
|
-
attrs
|
|
4421
|
-
} = _ref2;
|
|
4422
|
-
return () => {
|
|
4423
|
-
return vue.createVNode(props.tag, vue.mergeProps(attrs, {
|
|
4424
|
-
"style": null
|
|
4425
|
-
}), {
|
|
4426
|
-
default: () => [vue.createVNode("svg", {
|
|
4427
|
-
"class": "v-icon__svg",
|
|
4428
|
-
"xmlns": "http://www.w3.org/2000/svg",
|
|
4429
|
-
"viewBox": "0 0 24 24",
|
|
4430
|
-
"role": "img",
|
|
4431
|
-
"aria-hidden": "true"
|
|
4432
|
-
}, [Array.isArray(props.icon) ? props.icon.map(path => Array.isArray(path) ? vue.createVNode("path", {
|
|
4433
|
-
"d": path[0],
|
|
4434
|
-
"fill-opacity": path[1]
|
|
4435
|
-
}, null) : vue.createVNode("path", {
|
|
4436
|
-
"d": path
|
|
4437
|
-
}, null)) : vue.createVNode("path", {
|
|
4438
|
-
"d": props.icon
|
|
4439
|
-
}, null)])]
|
|
4440
|
-
});
|
|
4441
|
-
};
|
|
4442
|
-
}
|
|
4443
|
-
});
|
|
4444
|
-
const VLigatureIcon = defineComponent({
|
|
4445
|
-
name: 'VLigatureIcon',
|
|
4446
|
-
props: makeIconProps(),
|
|
4447
|
-
setup(props) {
|
|
4448
|
-
return () => {
|
|
4449
|
-
return vue.createVNode(props.tag, null, {
|
|
4450
|
-
default: () => [props.icon]
|
|
4451
|
-
});
|
|
4452
|
-
};
|
|
4453
|
-
}
|
|
4454
|
-
});
|
|
4455
|
-
const VClassIcon = defineComponent({
|
|
4456
|
-
name: 'VClassIcon',
|
|
4457
|
-
props: makeIconProps(),
|
|
4458
|
-
setup(props) {
|
|
4459
|
-
return () => {
|
|
4460
|
-
return vue.createVNode(props.tag, {
|
|
4461
|
-
"class": props.icon
|
|
4462
|
-
}, null);
|
|
4463
|
-
};
|
|
4464
|
-
}
|
|
4465
|
-
});
|
|
4466
|
-
function genDefaults$1() {
|
|
4467
|
-
return {
|
|
4468
|
-
svg: {
|
|
4469
|
-
component: VSvgIcon
|
|
4470
|
-
},
|
|
4471
|
-
class: {
|
|
4472
|
-
component: VClassIcon
|
|
4473
|
-
}
|
|
4474
|
-
};
|
|
4475
|
-
}
|
|
4476
|
-
|
|
4477
|
-
// Composables
|
|
4478
|
-
function createIcons(options) {
|
|
4479
|
-
const sets = genDefaults$1();
|
|
4480
|
-
const defaultSet = options?.defaultSet ?? 'mdi';
|
|
4481
|
-
if (defaultSet === 'mdi' && !sets.mdi) {
|
|
4482
|
-
sets.mdi = mdi;
|
|
4483
|
-
}
|
|
4484
|
-
return mergeDeep({
|
|
4485
|
-
defaultSet,
|
|
4486
|
-
sets,
|
|
4487
|
-
aliases: {
|
|
4488
|
-
...aliases,
|
|
4489
|
-
/* eslint-disable max-len */
|
|
4490
|
-
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]],
|
|
4491
|
-
'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'
|
|
4492
|
-
/* eslint-enable max-len */
|
|
4493
|
-
}
|
|
4494
|
-
}, options);
|
|
4495
|
-
}
|
|
4496
|
-
const useIcon = props => {
|
|
4497
|
-
const icons = vue.inject(IconSymbol);
|
|
4498
|
-
if (!icons) throw new Error('Missing Vuetify Icons provide!');
|
|
4499
|
-
const iconData = vue.computed(() => {
|
|
4500
|
-
const iconAlias = vue.unref(props);
|
|
4501
|
-
if (!iconAlias) return {
|
|
4502
|
-
component: VComponentIcon
|
|
4503
|
-
};
|
|
4504
|
-
let icon = iconAlias;
|
|
4505
|
-
if (typeof icon === 'string') {
|
|
4506
|
-
icon = icon.trim();
|
|
4507
|
-
if (icon.startsWith('$')) {
|
|
4508
|
-
icon = icons.aliases?.[icon.slice(1)];
|
|
4509
|
-
}
|
|
4510
|
-
}
|
|
4511
|
-
if (!icon) throw new Error(`Could not find aliased icon "${iconAlias}"`);
|
|
4512
|
-
if (Array.isArray(icon)) {
|
|
4513
|
-
return {
|
|
4514
|
-
component: VSvgIcon,
|
|
4515
|
-
icon
|
|
4516
|
-
};
|
|
4517
|
-
} else if (typeof icon !== 'string') {
|
|
4518
|
-
return {
|
|
4519
|
-
component: VComponentIcon,
|
|
4520
|
-
icon
|
|
4521
|
-
};
|
|
4522
|
-
}
|
|
4523
|
-
const iconSetName = Object.keys(icons.sets).find(setName => typeof icon === 'string' && icon.startsWith(`${setName}:`));
|
|
4524
|
-
const iconName = iconSetName ? icon.slice(iconSetName.length + 1) : icon;
|
|
4525
|
-
const iconSet = icons.sets[iconSetName ?? icons.defaultSet];
|
|
4526
|
-
return {
|
|
4527
|
-
component: iconSet.component,
|
|
4528
|
-
icon: iconName
|
|
4529
|
-
};
|
|
4530
|
-
});
|
|
4531
|
-
return {
|
|
4532
|
-
iconData
|
|
4533
|
-
};
|
|
4534
|
-
};
|
|
4535
|
-
|
|
4536
4775
|
// Utilities
|
|
4537
4776
|
|
|
4538
4777
|
// Types
|
|
@@ -4566,6 +4805,7 @@
|
|
|
4566
4805
|
|
|
4567
4806
|
const makeVIconProps = propsFactory({
|
|
4568
4807
|
color: String,
|
|
4808
|
+
disabled: Boolean,
|
|
4569
4809
|
start: Boolean,
|
|
4570
4810
|
end: Boolean,
|
|
4571
4811
|
icon: IconValue,
|
|
@@ -4603,11 +4843,13 @@
|
|
|
4603
4843
|
if (slotValue) {
|
|
4604
4844
|
slotIcon.value = flattenFragments(slotValue).filter(node => node.type === vue.Text && node.children && typeof node.children === 'string')[0]?.children;
|
|
4605
4845
|
}
|
|
4846
|
+
const hasClick = !!(attrs.onClick || attrs.onClickOnce);
|
|
4606
4847
|
return vue.createVNode(iconData.value.component, {
|
|
4607
4848
|
"tag": props.tag,
|
|
4608
4849
|
"icon": iconData.value.icon,
|
|
4609
4850
|
"class": ['v-icon', 'notranslate', themeClasses.value, sizeClasses.value, textColorClasses.value, {
|
|
4610
|
-
'v-icon--clickable':
|
|
4851
|
+
'v-icon--clickable': hasClick,
|
|
4852
|
+
'v-icon--disabled': props.disabled,
|
|
4611
4853
|
'v-icon--start': props.start,
|
|
4612
4854
|
'v-icon--end': props.end
|
|
4613
4855
|
}, props.class],
|
|
@@ -4616,8 +4858,9 @@
|
|
|
4616
4858
|
height: convertToUnit(props.size),
|
|
4617
4859
|
width: convertToUnit(props.size)
|
|
4618
4860
|
} : undefined, textColorStyles.value, props.style],
|
|
4619
|
-
"role":
|
|
4620
|
-
"aria-hidden": !
|
|
4861
|
+
"role": hasClick ? 'button' : undefined,
|
|
4862
|
+
"aria-hidden": !hasClick,
|
|
4863
|
+
"tabindex": hasClick ? props.disabled ? -1 : 0 : undefined
|
|
4621
4864
|
}, {
|
|
4622
4865
|
default: () => [slotValue]
|
|
4623
4866
|
});
|
|
@@ -8614,9 +8857,9 @@
|
|
|
8614
8857
|
emit('click', e);
|
|
8615
8858
|
if (isGroupActivator || !isClickable.value) return;
|
|
8616
8859
|
link.navigate?.(e);
|
|
8617
|
-
if (root.activatable) {
|
|
8860
|
+
if (root.activatable.value) {
|
|
8618
8861
|
activate(!isActivated.value, e);
|
|
8619
|
-
} else if (root.selectable) {
|
|
8862
|
+
} else if (root.selectable.value) {
|
|
8620
8863
|
select(!isSelected.value, e);
|
|
8621
8864
|
} else if (props.value != null) {
|
|
8622
8865
|
select(!isSelected.value, e);
|
|
@@ -9755,7 +9998,7 @@
|
|
|
9755
9998
|
scope?.stop();
|
|
9756
9999
|
if (!(data.isActive.value && props.scrollStrategy)) return;
|
|
9757
10000
|
scope = vue.effectScope();
|
|
9758
|
-
await
|
|
10001
|
+
await new Promise(resolve => setTimeout(resolve));
|
|
9759
10002
|
scope.active && scope.run(() => {
|
|
9760
10003
|
if (typeof props.scrollStrategy === 'function') {
|
|
9761
10004
|
props.scrollStrategy(data, props, scope);
|
|
@@ -10504,6 +10747,7 @@
|
|
|
10504
10747
|
if (v) isActive.value = false;
|
|
10505
10748
|
});
|
|
10506
10749
|
const root = vue.ref();
|
|
10750
|
+
const scrimEl = vue.ref();
|
|
10507
10751
|
const contentEl = vue.ref();
|
|
10508
10752
|
const {
|
|
10509
10753
|
contentStyles,
|
|
@@ -10525,8 +10769,10 @@
|
|
|
10525
10769
|
emit('click:outside', e);
|
|
10526
10770
|
if (!props.persistent) isActive.value = false;else animateClick();
|
|
10527
10771
|
}
|
|
10528
|
-
function closeConditional() {
|
|
10529
|
-
return isActive.value && globalTop.value
|
|
10772
|
+
function closeConditional(e) {
|
|
10773
|
+
return isActive.value && globalTop.value && (
|
|
10774
|
+
// If using scrim, only close if clicking on it rather than anything opened on top
|
|
10775
|
+
!props.scrim || e.target === scrimEl.value);
|
|
10530
10776
|
}
|
|
10531
10777
|
IN_BROWSER && vue.watch(isActive, val => {
|
|
10532
10778
|
if (val) {
|
|
@@ -10613,7 +10859,8 @@
|
|
|
10613
10859
|
"ref": root
|
|
10614
10860
|
}, scopeId, attrs), [vue.createVNode(Scrim, vue.mergeProps({
|
|
10615
10861
|
"color": scrimColor,
|
|
10616
|
-
"modelValue": isActive.value && !!props.scrim
|
|
10862
|
+
"modelValue": isActive.value && !!props.scrim,
|
|
10863
|
+
"ref": scrimEl
|
|
10617
10864
|
}, scrimEvents.value), null), vue.createVNode(MaybeTransition, {
|
|
10618
10865
|
"appear": true,
|
|
10619
10866
|
"persisted": true,
|
|
@@ -10636,6 +10883,7 @@
|
|
|
10636
10883
|
})]));
|
|
10637
10884
|
return {
|
|
10638
10885
|
activatorEl,
|
|
10886
|
+
scrimEl,
|
|
10639
10887
|
target,
|
|
10640
10888
|
animateClick,
|
|
10641
10889
|
contentEl,
|
|
@@ -10831,6 +11079,9 @@
|
|
|
10831
11079
|
isActive.value = false;
|
|
10832
11080
|
overlay.value?.activatorEl?.focus();
|
|
10833
11081
|
}
|
|
11082
|
+
} else if (['Enter', ' '].includes(e.key) && props.closeOnContentClick) {
|
|
11083
|
+
isActive.value = false;
|
|
11084
|
+
parent?.closeParents();
|
|
10834
11085
|
}
|
|
10835
11086
|
}
|
|
10836
11087
|
function onActivatorKeydown(e) {
|
|
@@ -11108,7 +11359,7 @@
|
|
|
11108
11359
|
}
|
|
11109
11360
|
useRender(() => {
|
|
11110
11361
|
const isOutlined = props.variant === 'outlined';
|
|
11111
|
-
const hasPrepend = slots['prepend-inner'] || props.prependInnerIcon;
|
|
11362
|
+
const hasPrepend = !!(slots['prepend-inner'] || props.prependInnerIcon);
|
|
11112
11363
|
const hasClear = !!(props.clearable || slots.clear);
|
|
11113
11364
|
const hasAppend = !!(slots['append-inner'] || props.appendInnerIcon || hasClear);
|
|
11114
11365
|
const label = () => slots.label ? slots.label({
|
|
@@ -12532,8 +12783,8 @@
|
|
|
12532
12783
|
if (e.key === 'ArrowDown' && highlightFirst.value) {
|
|
12533
12784
|
listRef.value?.focus('next');
|
|
12534
12785
|
}
|
|
12535
|
-
if (!props.multiple) return;
|
|
12536
12786
|
if (['Backspace', 'Delete'].includes(e.key)) {
|
|
12787
|
+
if (!props.multiple && hasSelectionSlot.value && model.value.length > 0) return select(model.value[0], false);
|
|
12537
12788
|
if (selectionIndex.value < 0) {
|
|
12538
12789
|
if (e.key === 'Backspace' && !search.value) {
|
|
12539
12790
|
selectionIndex.value = length - 1;
|
|
@@ -12541,10 +12792,10 @@
|
|
|
12541
12792
|
return;
|
|
12542
12793
|
}
|
|
12543
12794
|
const originalSelectionIndex = selectionIndex.value;
|
|
12544
|
-
|
|
12545
|
-
if (selectedItem && !selectedItem.props.disabled) select(selectedItem, false);
|
|
12795
|
+
select(model.value[selectionIndex.value], false);
|
|
12546
12796
|
selectionIndex.value = originalSelectionIndex >= length - 1 ? length - 2 : originalSelectionIndex;
|
|
12547
12797
|
}
|
|
12798
|
+
if (!props.multiple) return;
|
|
12548
12799
|
if (e.key === 'ArrowLeft') {
|
|
12549
12800
|
if (selectionIndex.value < 0 && selectionStart > 0) return;
|
|
12550
12801
|
const prev = selectionIndex.value > -1 ? selectionIndex.value - 1 : length - 1;
|
|
@@ -12597,7 +12848,7 @@
|
|
|
12597
12848
|
/** @param set - null means toggle */
|
|
12598
12849
|
function select(item) {
|
|
12599
12850
|
let set = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
12600
|
-
if (item.props.disabled) return;
|
|
12851
|
+
if (!item || item.props.disabled) return;
|
|
12601
12852
|
if (props.multiple) {
|
|
12602
12853
|
const index = model.value.findIndex(selection => props.valueComparator(selection.value, item.value));
|
|
12603
12854
|
const add = set == null ? !~index : set;
|
|
@@ -16318,6 +16569,7 @@
|
|
|
16318
16569
|
}
|
|
16319
16570
|
menu.value = !menu.value;
|
|
16320
16571
|
}
|
|
16572
|
+
// eslint-disable-next-line complexity
|
|
16321
16573
|
function onKeydown(e) {
|
|
16322
16574
|
if (isComposingIgnoreKey(e) || props.readonly || form?.isReadonly.value) return;
|
|
16323
16575
|
const selectionStart = vTextFieldRef.value.selectionStart;
|
|
@@ -16344,8 +16596,8 @@
|
|
|
16344
16596
|
select(transformItem$3(props, search.value));
|
|
16345
16597
|
if (hasSelectionSlot.value) _search.value = '';
|
|
16346
16598
|
}
|
|
16347
|
-
if (!props.multiple) return;
|
|
16348
16599
|
if (['Backspace', 'Delete'].includes(e.key)) {
|
|
16600
|
+
if (!props.multiple && hasSelectionSlot.value && model.value.length > 0) return select(model.value[0], false);
|
|
16349
16601
|
if (selectionIndex.value < 0) {
|
|
16350
16602
|
if (e.key === 'Backspace' && !search.value) {
|
|
16351
16603
|
selectionIndex.value = length - 1;
|
|
@@ -16353,10 +16605,10 @@
|
|
|
16353
16605
|
return;
|
|
16354
16606
|
}
|
|
16355
16607
|
const originalSelectionIndex = selectionIndex.value;
|
|
16356
|
-
|
|
16357
|
-
if (selectedItem && !selectedItem.props.disabled) select(selectedItem, false);
|
|
16608
|
+
select(model.value[selectionIndex.value], false);
|
|
16358
16609
|
selectionIndex.value = originalSelectionIndex >= length - 1 ? length - 2 : originalSelectionIndex;
|
|
16359
16610
|
}
|
|
16611
|
+
if (!props.multiple) return;
|
|
16360
16612
|
if (e.key === 'ArrowLeft') {
|
|
16361
16613
|
if (selectionIndex.value < 0 && selectionStart > 0) return;
|
|
16362
16614
|
const prev = selectionIndex.value > -1 ? selectionIndex.value - 1 : length - 1;
|
|
@@ -16387,7 +16639,7 @@
|
|
|
16387
16639
|
/** @param set - null means toggle */
|
|
16388
16640
|
function select(item) {
|
|
16389
16641
|
let set = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
16390
|
-
if (item.props.disabled) return;
|
|
16642
|
+
if (!item || item.props.disabled) return;
|
|
16391
16643
|
if (props.multiple) {
|
|
16392
16644
|
const index = model.value.findIndex(selection => props.valueComparator(selection.value, item.value));
|
|
16393
16645
|
const add = set == null ? !~index : set;
|
|
@@ -17615,7 +17867,7 @@
|
|
|
17615
17867
|
return d;
|
|
17616
17868
|
}
|
|
17617
17869
|
function startOfDay(date) {
|
|
17618
|
-
return new Date(date.getFullYear(), date.getMonth(), date.getDate());
|
|
17870
|
+
return new Date(date.getFullYear(), date.getMonth(), date.getDate(), 0, 0, 0, 0);
|
|
17619
17871
|
}
|
|
17620
17872
|
function endOfDay(date) {
|
|
17621
17873
|
return new Date(date.getFullYear(), date.getMonth(), date.getDate(), 23, 59, 59, 999);
|
|
@@ -20768,6 +21020,12 @@
|
|
|
20768
21020
|
const adapter = useDate();
|
|
20769
21021
|
const rangeStart = vue.shallowRef();
|
|
20770
21022
|
const rangeStop = vue.shallowRef();
|
|
21023
|
+
if (props.multiple === 'range' && model.value.length > 0) {
|
|
21024
|
+
rangeStart.value = model.value[0];
|
|
21025
|
+
if (model.value.length > 1) {
|
|
21026
|
+
rangeStop.value = model.value[model.value.length - 1];
|
|
21027
|
+
}
|
|
21028
|
+
}
|
|
20771
21029
|
const atMax = vue.computed(() => {
|
|
20772
21030
|
const max = ['number', 'string'].includes(typeof props.multiple) ? Number(props.multiple) : Infinity;
|
|
20773
21031
|
return model.value.length >= max;
|
|
@@ -20778,15 +21036,15 @@
|
|
|
20778
21036
|
rangeStart.value = _value;
|
|
20779
21037
|
model.value = [rangeStart.value];
|
|
20780
21038
|
} else if (!rangeStop.value) {
|
|
20781
|
-
if (adapter.isSameDay(
|
|
21039
|
+
if (adapter.isSameDay(_value, rangeStart.value)) {
|
|
20782
21040
|
rangeStart.value = undefined;
|
|
20783
21041
|
model.value = [];
|
|
20784
21042
|
return;
|
|
20785
|
-
} else if (adapter.isBefore(
|
|
20786
|
-
rangeStop.value = rangeStart.value;
|
|
21043
|
+
} else if (adapter.isBefore(_value, rangeStart.value)) {
|
|
21044
|
+
rangeStop.value = adapter.endOfDay(rangeStart.value);
|
|
20787
21045
|
rangeStart.value = _value;
|
|
20788
21046
|
} else {
|
|
20789
|
-
rangeStop.value = _value;
|
|
21047
|
+
rangeStop.value = adapter.endOfDay(_value);
|
|
20790
21048
|
}
|
|
20791
21049
|
const diff = adapter.getDiff(rangeStop.value, rangeStart.value, 'days');
|
|
20792
21050
|
const datesInRange = [rangeStart.value];
|
|
@@ -22953,12 +23211,24 @@
|
|
|
22953
23211
|
default: () => [hasImage && vue.createVNode("div", {
|
|
22954
23212
|
"key": "image",
|
|
22955
23213
|
"class": "v-navigation-drawer__img"
|
|
22956
|
-
}, [slots.image ?
|
|
22957
|
-
|
|
22958
|
-
|
|
22959
|
-
"
|
|
22960
|
-
"
|
|
22961
|
-
|
|
23214
|
+
}, [!slots.image ? vue.createVNode(VImg, {
|
|
23215
|
+
"key": "image-img",
|
|
23216
|
+
"alt": "",
|
|
23217
|
+
"cover": true,
|
|
23218
|
+
"height": "inherit",
|
|
23219
|
+
"src": props.image
|
|
23220
|
+
}, null) : vue.createVNode(VDefaultsProvider, {
|
|
23221
|
+
"key": "image-defaults",
|
|
23222
|
+
"disabled": !props.image,
|
|
23223
|
+
"defaults": {
|
|
23224
|
+
VImg: {
|
|
23225
|
+
alt: '',
|
|
23226
|
+
cover: true,
|
|
23227
|
+
height: 'inherit',
|
|
23228
|
+
src: props.image
|
|
23229
|
+
}
|
|
23230
|
+
}
|
|
23231
|
+
}, slots.image)]), slots.prepend && vue.createVNode("div", {
|
|
22962
23232
|
"class": "v-navigation-drawer__prepend"
|
|
22963
23233
|
}, [slots.prepend?.()]), vue.createVNode("div", {
|
|
22964
23234
|
"class": "v-navigation-drawer__content"
|
|
@@ -23059,7 +23329,7 @@
|
|
|
23059
23329
|
function onInput() {
|
|
23060
23330
|
// The maxlength attribute doesn't work for the number type input, so the text type is used.
|
|
23061
23331
|
// The following logic simulates the behavior of a number input.
|
|
23062
|
-
if (
|
|
23332
|
+
if (isValidNumber(current.value.value)) {
|
|
23063
23333
|
current.value.value = '';
|
|
23064
23334
|
return;
|
|
23065
23335
|
}
|
|
@@ -23105,7 +23375,9 @@
|
|
|
23105
23375
|
function onPaste(index, e) {
|
|
23106
23376
|
e.preventDefault();
|
|
23107
23377
|
e.stopPropagation();
|
|
23108
|
-
|
|
23378
|
+
const clipboardText = e?.clipboardData?.getData('Text') ?? '';
|
|
23379
|
+
if (!isValidNumber(clipboardText)) return;
|
|
23380
|
+
model.value = clipboardText.split('');
|
|
23109
23381
|
inputRef.value?.[index].blur();
|
|
23110
23382
|
}
|
|
23111
23383
|
function reset() {
|
|
@@ -23119,6 +23391,9 @@
|
|
|
23119
23391
|
blur();
|
|
23120
23392
|
focusIndex.value = -1;
|
|
23121
23393
|
}
|
|
23394
|
+
function isValidNumber(value) {
|
|
23395
|
+
return props.type === 'number' && !isNaN(Number(value));
|
|
23396
|
+
}
|
|
23122
23397
|
provideDefaults({
|
|
23123
23398
|
VField: {
|
|
23124
23399
|
color: vue.computed(() => props.color),
|
|
@@ -25977,7 +26252,7 @@
|
|
|
25977
26252
|
goTo
|
|
25978
26253
|
};
|
|
25979
26254
|
}
|
|
25980
|
-
const version$1 = "3.5.
|
|
26255
|
+
const version$1 = "3.5.10";
|
|
25981
26256
|
createVuetify$1.version = version$1;
|
|
25982
26257
|
|
|
25983
26258
|
// Vue's inject() can only be used in setup
|
|
@@ -26002,9 +26277,10 @@
|
|
|
26002
26277
|
...options
|
|
26003
26278
|
});
|
|
26004
26279
|
};
|
|
26005
|
-
const version = "3.5.
|
|
26280
|
+
const version = "3.5.10";
|
|
26006
26281
|
createVuetify.version = version;
|
|
26007
26282
|
|
|
26283
|
+
exports.blueprints = index;
|
|
26008
26284
|
exports.components = components;
|
|
26009
26285
|
exports.createVuetify = createVuetify;
|
|
26010
26286
|
exports.directives = directives;
|