vuetify 3.4.9 → 3.4.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/json/attributes.json +12 -4
- package/dist/json/importMap-labs.json +8 -8
- package/dist/json/importMap.json +132 -132
- package/dist/json/tags.json +2 -0
- package/dist/json/web-types.json +34 -14
- package/dist/vuetify-labs.css +2864 -2838
- package/dist/vuetify-labs.d.ts +163 -81
- package/dist/vuetify-labs.esm.js +192 -145
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +192 -145
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +865 -862
- package/dist/vuetify.d.ts +195 -113
- package/dist/vuetify.esm.js +189 -134
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +189 -134
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +108 -107
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAlert/VAlert.css +2 -2
- package/lib/components/VAppBar/VAppBar.css +1 -1
- package/lib/components/VAppBar/VAppBar.mjs +0 -1
- package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.css +2 -2
- package/lib/components/VAutocomplete/VAutocomplete.mjs +15 -2
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.sass +1 -1
- package/lib/components/VAutocomplete/_variables.scss +1 -0
- package/lib/components/VAvatar/VAvatar.css +2 -2
- package/lib/components/VBanner/VBanner.css +1 -1
- package/lib/components/VBottomNavigation/VBottomNavigation.css +1 -1
- package/lib/components/VBottomSheet/VBottomSheet.css +1 -1
- package/lib/components/VBtn/VBtn.css +4 -4
- package/lib/components/VBtnGroup/VBtnGroup.css +1 -1
- package/lib/components/VCard/VCard.css +5 -5
- package/lib/components/VChip/VChip.css +2 -2
- package/lib/components/VChip/VChip.mjs +2 -1
- package/lib/components/VChip/VChip.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPicker.css +3 -3
- package/lib/components/VCombobox/VCombobox.css +2 -2
- package/lib/components/VCombobox/VCombobox.mjs +15 -5
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VCombobox/VCombobox.sass +2 -2
- package/lib/components/VCombobox/_variables.scss +2 -0
- package/lib/components/VDataIterator/index.d.mts +1 -1
- package/lib/components/VDataTable/VDataTable.css +1 -1
- package/lib/components/VDataTable/VDataTable.sass +1 -1
- package/lib/components/VDataTable/VDataTableFooter.mjs +33 -30
- package/lib/components/VDataTable/VDataTableFooter.mjs.map +1 -1
- package/lib/components/VDataTable/VDataTableHeaders.mjs +2 -1
- package/lib/components/VDataTable/VDataTableHeaders.mjs.map +1 -1
- package/lib/components/VDataTable/index.d.mts +1 -1
- package/lib/components/VDatePicker/index.d.mts +82 -0
- package/lib/components/VDialog/VDialog.css +1 -1
- package/lib/components/VDialog/index.d.mts +3 -3
- package/lib/components/VExpansionPanel/VExpansionPanel.css +1 -1
- package/lib/components/VField/VField.css +2 -2
- package/lib/components/VFileInput/index.d.mts +3 -3
- package/lib/components/VFooter/VFooter.css +1 -1
- package/lib/components/VForm/index.d.mts +21 -21
- package/lib/components/VImg/index.d.mts +6 -6
- package/lib/components/VKbd/VKbd.css +1 -1
- package/lib/components/VList/VList.css +1 -1
- package/lib/components/VList/VList.mjs +7 -2
- package/lib/components/VList/VList.mjs.map +1 -1
- package/lib/components/VList/VListItem.css +5 -2
- package/lib/components/VList/VListItem.sass +3 -0
- package/lib/components/VList/_variables.scss +1 -0
- package/lib/components/VMenu/VMenu.css +1 -1
- package/lib/components/VMenu/index.d.mts +6 -6
- package/lib/components/VNavigationDrawer/VNavigationDrawer.css +2 -2
- package/lib/components/VNavigationDrawer/index.d.mts +3 -3
- package/lib/components/VOverflowBtn/VOverflowBtn.mjs +0 -1
- package/lib/components/VOverflowBtn/VOverflowBtn.mjs.map +1 -1
- package/lib/components/VOverlay/VOverlay.mjs +2 -2
- package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
- package/lib/components/VOverlay/locationStrategies.mjs +0 -1
- package/lib/components/VOverlay/locationStrategies.mjs.map +1 -1
- package/lib/components/VSelect/VSelect.css +1 -1
- package/lib/components/VSelect/VSelect.mjs +15 -3
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VSelectionControl/index.d.mts +3 -3
- package/lib/components/VSheet/VSheet.css +1 -1
- package/lib/components/VSlideGroup/index.d.mts +3 -3
- package/lib/components/VSnackbar/VSnackbar.css +2 -2
- package/lib/components/VSnackbar/index.d.mts +3 -3
- package/lib/components/VStepper/VStepper.css +3 -3
- package/lib/components/VSwitch/VSwitch.css +2 -2
- package/lib/components/VSystemBar/VSystemBar.css +1 -1
- package/lib/components/VTabs/VTab.css +2 -2
- package/lib/components/VTabs/VTab.sass +2 -2
- package/lib/components/VTextField/index.d.mts +6 -6
- package/lib/components/VTextarea/index.d.mts +3 -3
- package/lib/components/VTimeline/VTimeline.css +1 -1
- package/lib/components/VToolbar/VToolbar.css +2 -2
- package/lib/components/VTooltip/index.d.mts +3 -3
- package/lib/components/VTreeview/VTreeview.mjs +0 -1
- package/lib/components/VTreeview/VTreeview.mjs.map +1 -1
- package/lib/components/VTreeview/VTreeviewNode.mjs +0 -1
- package/lib/components/VTreeview/VTreeviewNode.mjs.map +1 -1
- package/lib/components/VValidation/index.d.mts +6 -6
- package/lib/components/VWindow/VWindowItem.mjs +0 -1
- package/lib/components/VWindow/VWindowItem.mjs.map +1 -1
- package/lib/components/index.d.mts +152 -70
- package/lib/composables/calendar.mjs +10 -4
- package/lib/composables/calendar.mjs.map +1 -1
- package/lib/composables/date/date.mjs +0 -4
- package/lib/composables/date/date.mjs.map +1 -1
- package/lib/composables/delay.mjs +19 -18
- package/lib/composables/delay.mjs.map +1 -1
- package/lib/composables/density.mjs +1 -0
- package/lib/composables/density.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- 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 +43 -43
- package/lib/labs/VCalendar/VCalendar.mjs +4 -8
- package/lib/labs/VCalendar/VCalendar.mjs.map +1 -1
- package/lib/labs/VCalendar/VCalendarDay.css +23 -0
- package/lib/labs/VCalendar/VCalendarDay.sass +24 -1
- package/lib/labs/VCalendar/index.d.mts +11 -11
- package/lib/labs/VPicker/VPicker.css +1 -1
- package/lib/labs/components.d.mts +11 -11
- package/lib/locale/cs.mjs +1 -1
- package/lib/locale/cs.mjs.map +1 -1
- package/lib/locale/nl.mjs +2 -2
- package/lib/locale/nl.mjs.map +1 -1
- package/lib/locale/pt.mjs +17 -17
- package/lib/locale/pt.mjs.map +1 -1
- package/lib/styles/main.css +25 -25
- package/lib/styles/settings/_elevations.scss +1 -1
- package/lib/util/helpers.mjs +8 -0
- package/lib/util/helpers.mjs.map +1 -1
- package/package.json +12 -12
package/dist/vuetify-labs.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Vuetify v3.4.
|
|
2
|
+
* Vuetify v3.4.10
|
|
3
3
|
* Forged by John Leider
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
@@ -541,6 +541,14 @@
|
|
|
541
541
|
return child.type !== vue.Fragment || ensureValidVNode(child.children);
|
|
542
542
|
}) ? vnodes : null;
|
|
543
543
|
}
|
|
544
|
+
function defer(timeout, cb) {
|
|
545
|
+
if (!IN_BROWSER || timeout === 0) {
|
|
546
|
+
cb();
|
|
547
|
+
return () => {};
|
|
548
|
+
}
|
|
549
|
+
const timeoutId = window.setTimeout(cb, timeout);
|
|
550
|
+
return () => window.clearTimeout(timeoutId);
|
|
551
|
+
}
|
|
544
552
|
|
|
545
553
|
// Utilities
|
|
546
554
|
const block = ['top', 'bottom'];
|
|
@@ -3838,7 +3846,6 @@
|
|
|
3838
3846
|
// shrink: behavior.has('shrink'),
|
|
3839
3847
|
};
|
|
3840
3848
|
});
|
|
3841
|
-
|
|
3842
3849
|
const canScroll = vue.computed(() => {
|
|
3843
3850
|
const behavior = scrollBehavior.value;
|
|
3844
3851
|
return behavior.hide ||
|
|
@@ -3921,6 +3928,7 @@
|
|
|
3921
3928
|
|
|
3922
3929
|
// typeof allowedDensities[number] evalutes to any
|
|
3923
3930
|
// when generating api types for whatever reason.
|
|
3931
|
+
|
|
3924
3932
|
// Composables
|
|
3925
3933
|
const makeDensityProps = propsFactory({
|
|
3926
3934
|
density: {
|
|
@@ -5816,6 +5824,68 @@
|
|
|
5816
5824
|
}
|
|
5817
5825
|
});
|
|
5818
5826
|
|
|
5827
|
+
const makeVAvatarProps = propsFactory({
|
|
5828
|
+
start: Boolean,
|
|
5829
|
+
end: Boolean,
|
|
5830
|
+
icon: IconValue,
|
|
5831
|
+
image: String,
|
|
5832
|
+
text: String,
|
|
5833
|
+
...makeComponentProps(),
|
|
5834
|
+
...makeDensityProps(),
|
|
5835
|
+
...makeRoundedProps(),
|
|
5836
|
+
...makeSizeProps(),
|
|
5837
|
+
...makeTagProps(),
|
|
5838
|
+
...makeThemeProps(),
|
|
5839
|
+
...makeVariantProps({
|
|
5840
|
+
variant: 'flat'
|
|
5841
|
+
})
|
|
5842
|
+
}, 'VAvatar');
|
|
5843
|
+
const VAvatar = genericComponent()({
|
|
5844
|
+
name: 'VAvatar',
|
|
5845
|
+
props: makeVAvatarProps(),
|
|
5846
|
+
setup(props, _ref) {
|
|
5847
|
+
let {
|
|
5848
|
+
slots
|
|
5849
|
+
} = _ref;
|
|
5850
|
+
const {
|
|
5851
|
+
themeClasses
|
|
5852
|
+
} = provideTheme(props);
|
|
5853
|
+
const {
|
|
5854
|
+
colorClasses,
|
|
5855
|
+
colorStyles,
|
|
5856
|
+
variantClasses
|
|
5857
|
+
} = useVariant(props);
|
|
5858
|
+
const {
|
|
5859
|
+
densityClasses
|
|
5860
|
+
} = useDensity(props);
|
|
5861
|
+
const {
|
|
5862
|
+
roundedClasses
|
|
5863
|
+
} = useRounded(props);
|
|
5864
|
+
const {
|
|
5865
|
+
sizeClasses,
|
|
5866
|
+
sizeStyles
|
|
5867
|
+
} = useSize(props);
|
|
5868
|
+
useRender(() => vue.createVNode(props.tag, {
|
|
5869
|
+
"class": ['v-avatar', {
|
|
5870
|
+
'v-avatar--start': props.start,
|
|
5871
|
+
'v-avatar--end': props.end
|
|
5872
|
+
}, themeClasses.value, colorClasses.value, densityClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value, props.class],
|
|
5873
|
+
"style": [colorStyles.value, sizeStyles.value, props.style]
|
|
5874
|
+
}, {
|
|
5875
|
+
default: () => [props.image ? vue.createVNode(VImg, {
|
|
5876
|
+
"key": "image",
|
|
5877
|
+
"src": props.image,
|
|
5878
|
+
"alt": "",
|
|
5879
|
+
"cover": true
|
|
5880
|
+
}, null) : props.icon ? vue.createVNode(VIcon, {
|
|
5881
|
+
"key": "icon",
|
|
5882
|
+
"icon": props.icon
|
|
5883
|
+
}, null) : slots.default?.() ?? props.text, genOverlays(false, 'v-avatar')]
|
|
5884
|
+
}));
|
|
5885
|
+
return {};
|
|
5886
|
+
}
|
|
5887
|
+
});
|
|
5888
|
+
|
|
5819
5889
|
const makeVLabelProps = propsFactory({
|
|
5820
5890
|
text: String,
|
|
5821
5891
|
clickable: Boolean,
|
|
@@ -6783,68 +6853,6 @@
|
|
|
6783
6853
|
}
|
|
6784
6854
|
});
|
|
6785
6855
|
|
|
6786
|
-
const makeVAvatarProps = propsFactory({
|
|
6787
|
-
start: Boolean,
|
|
6788
|
-
end: Boolean,
|
|
6789
|
-
icon: IconValue,
|
|
6790
|
-
image: String,
|
|
6791
|
-
text: String,
|
|
6792
|
-
...makeComponentProps(),
|
|
6793
|
-
...makeDensityProps(),
|
|
6794
|
-
...makeRoundedProps(),
|
|
6795
|
-
...makeSizeProps(),
|
|
6796
|
-
...makeTagProps(),
|
|
6797
|
-
...makeThemeProps(),
|
|
6798
|
-
...makeVariantProps({
|
|
6799
|
-
variant: 'flat'
|
|
6800
|
-
})
|
|
6801
|
-
}, 'VAvatar');
|
|
6802
|
-
const VAvatar = genericComponent()({
|
|
6803
|
-
name: 'VAvatar',
|
|
6804
|
-
props: makeVAvatarProps(),
|
|
6805
|
-
setup(props, _ref) {
|
|
6806
|
-
let {
|
|
6807
|
-
slots
|
|
6808
|
-
} = _ref;
|
|
6809
|
-
const {
|
|
6810
|
-
themeClasses
|
|
6811
|
-
} = provideTheme(props);
|
|
6812
|
-
const {
|
|
6813
|
-
colorClasses,
|
|
6814
|
-
colorStyles,
|
|
6815
|
-
variantClasses
|
|
6816
|
-
} = useVariant(props);
|
|
6817
|
-
const {
|
|
6818
|
-
densityClasses
|
|
6819
|
-
} = useDensity(props);
|
|
6820
|
-
const {
|
|
6821
|
-
roundedClasses
|
|
6822
|
-
} = useRounded(props);
|
|
6823
|
-
const {
|
|
6824
|
-
sizeClasses,
|
|
6825
|
-
sizeStyles
|
|
6826
|
-
} = useSize(props);
|
|
6827
|
-
useRender(() => vue.createVNode(props.tag, {
|
|
6828
|
-
"class": ['v-avatar', {
|
|
6829
|
-
'v-avatar--start': props.start,
|
|
6830
|
-
'v-avatar--end': props.end
|
|
6831
|
-
}, themeClasses.value, colorClasses.value, densityClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value, props.class],
|
|
6832
|
-
"style": [colorStyles.value, sizeStyles.value, props.style]
|
|
6833
|
-
}, {
|
|
6834
|
-
default: () => [props.image ? vue.createVNode(VImg, {
|
|
6835
|
-
"key": "image",
|
|
6836
|
-
"src": props.image,
|
|
6837
|
-
"alt": "",
|
|
6838
|
-
"cover": true
|
|
6839
|
-
}, null) : props.icon ? vue.createVNode(VIcon, {
|
|
6840
|
-
"key": "icon",
|
|
6841
|
-
"icon": props.icon
|
|
6842
|
-
}, null) : slots.default?.() ?? props.text, genOverlays(false, 'v-avatar')]
|
|
6843
|
-
}));
|
|
6844
|
-
return {};
|
|
6845
|
-
}
|
|
6846
|
-
});
|
|
6847
|
-
|
|
6848
6856
|
// Types
|
|
6849
6857
|
|
|
6850
6858
|
const VChipGroupSymbol = Symbol.for('vuetify:v-chip-group');
|
|
@@ -7137,7 +7145,8 @@
|
|
|
7137
7145
|
}
|
|
7138
7146
|
}, slots.append)]), hasClose && vue.createVNode("button", vue.mergeProps({
|
|
7139
7147
|
"key": "close",
|
|
7140
|
-
"class": "v-chip__close"
|
|
7148
|
+
"class": "v-chip__close",
|
|
7149
|
+
"type": "button"
|
|
7141
7150
|
}, closeProps.value), [!slots.close ? vue.createVNode(VIcon, {
|
|
7142
7151
|
"key": "close-icon",
|
|
7143
7152
|
"icon": props.closeIcon,
|
|
@@ -8403,6 +8412,9 @@
|
|
|
8403
8412
|
}
|
|
8404
8413
|
e.preventDefault();
|
|
8405
8414
|
}
|
|
8415
|
+
function onMousedown(e) {
|
|
8416
|
+
isFocused.value = true;
|
|
8417
|
+
}
|
|
8406
8418
|
function focus(location) {
|
|
8407
8419
|
if (contentRef.value) {
|
|
8408
8420
|
return focusChild(contentRef.value, location);
|
|
@@ -8413,7 +8425,8 @@
|
|
|
8413
8425
|
"ref": contentRef,
|
|
8414
8426
|
"class": ['v-list', {
|
|
8415
8427
|
'v-list--disabled': props.disabled,
|
|
8416
|
-
'v-list--nav': props.nav
|
|
8428
|
+
'v-list--nav': props.nav,
|
|
8429
|
+
'v-list--slim': props.slim
|
|
8417
8430
|
}, themeClasses.value, backgroundColorClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, lineClasses.value, roundedClasses.value, props.class],
|
|
8418
8431
|
"style": [backgroundColorStyles.value, dimensionStyles.value, props.style],
|
|
8419
8432
|
"tabindex": props.disabled || isFocused.value ? -1 : 0,
|
|
@@ -8422,7 +8435,8 @@
|
|
|
8422
8435
|
"onFocusin": onFocusin,
|
|
8423
8436
|
"onFocusout": onFocusout,
|
|
8424
8437
|
"onFocus": onFocus,
|
|
8425
|
-
"onKeydown": onKeydown
|
|
8438
|
+
"onKeydown": onKeydown,
|
|
8439
|
+
"onMousedown": onMousedown
|
|
8426
8440
|
}, {
|
|
8427
8441
|
default: () => [vue.createVNode(VListChildren, {
|
|
8428
8442
|
"items": items.value,
|
|
@@ -8549,7 +8563,6 @@
|
|
|
8549
8563
|
// specific viewport position, usually centered
|
|
8550
8564
|
connected: connectedLocationStrategy // connected to a certain element
|
|
8551
8565
|
};
|
|
8552
|
-
|
|
8553
8566
|
const makeLocationStrategyProps = propsFactory({
|
|
8554
8567
|
locationStrategy: {
|
|
8555
8568
|
type: [String, Function],
|
|
@@ -9096,26 +9109,27 @@
|
|
|
9096
9109
|
openDelay: [Number, String]
|
|
9097
9110
|
}, 'delay');
|
|
9098
9111
|
function useDelay(props, cb) {
|
|
9099
|
-
|
|
9100
|
-
|
|
9101
|
-
|
|
9102
|
-
|
|
9103
|
-
const active = prop === 'openDelay';
|
|
9104
|
-
delays.closeDelay && window.clearTimeout(delays.closeDelay);
|
|
9105
|
-
delete delays.closeDelay;
|
|
9106
|
-
delays.openDelay && window.clearTimeout(delays.openDelay);
|
|
9107
|
-
delete delays.openDelay;
|
|
9112
|
+
let clearDelay = () => {};
|
|
9113
|
+
function runDelay(isOpening) {
|
|
9114
|
+
clearDelay?.();
|
|
9115
|
+
const delay = Number(isOpening ? props.openDelay : props.closeDelay);
|
|
9108
9116
|
return new Promise(resolve => {
|
|
9109
|
-
|
|
9110
|
-
|
|
9111
|
-
|
|
9112
|
-
|
|
9113
|
-
}, delay);
|
|
9117
|
+
clearDelay = defer(delay, () => {
|
|
9118
|
+
cb?.(isOpening);
|
|
9119
|
+
resolve(isOpening);
|
|
9120
|
+
});
|
|
9114
9121
|
});
|
|
9115
|
-
}
|
|
9122
|
+
}
|
|
9123
|
+
function runOpenDelay() {
|
|
9124
|
+
return runDelay(true);
|
|
9125
|
+
}
|
|
9126
|
+
function runCloseDelay() {
|
|
9127
|
+
return runDelay(false);
|
|
9128
|
+
}
|
|
9116
9129
|
return {
|
|
9117
|
-
|
|
9118
|
-
runOpenDelay
|
|
9130
|
+
clearDelay,
|
|
9131
|
+
runOpenDelay,
|
|
9132
|
+
runCloseDelay
|
|
9119
9133
|
};
|
|
9120
9134
|
}
|
|
9121
9135
|
|
|
@@ -9962,7 +9976,7 @@
|
|
|
9962
9976
|
ref: activatorRef,
|
|
9963
9977
|
targetRef
|
|
9964
9978
|
}, activatorEvents.value, props.activatorProps)
|
|
9965
|
-
}), isMounted.value && hasContent.value && vue.createVNode(vue.Teleport, {
|
|
9979
|
+
}), !props.disabled && isMounted.value && hasContent.value && vue.createVNode(vue.Teleport, {
|
|
9966
9980
|
"disabled": !teleportTarget.value,
|
|
9967
9981
|
"to": teleportTarget.value
|
|
9968
9982
|
}, {
|
|
@@ -9978,7 +9992,7 @@
|
|
|
9978
9992
|
"ref": root
|
|
9979
9993
|
}, scopeId, attrs), [vue.createVNode(Scrim, vue.mergeProps({
|
|
9980
9994
|
"color": scrimColor,
|
|
9981
|
-
"modelValue":
|
|
9995
|
+
"modelValue": !!props.scrim && isActive.value
|
|
9982
9996
|
}, scrimEvents.value), null), vue.createVNode(MaybeTransition, {
|
|
9983
9997
|
"appear": true,
|
|
9984
9998
|
"persisted": true,
|
|
@@ -11331,7 +11345,7 @@
|
|
|
11331
11345
|
}
|
|
11332
11346
|
return items.value;
|
|
11333
11347
|
});
|
|
11334
|
-
const menuDisabled = vue.computed(() => props.hideNoData && !
|
|
11348
|
+
const menuDisabled = vue.computed(() => props.hideNoData && !displayItems.value.length || props.readonly || form?.isReadonly.value);
|
|
11335
11349
|
const computedMenuProps = vue.computed(() => {
|
|
11336
11350
|
return {
|
|
11337
11351
|
...props.menuProps,
|
|
@@ -11341,7 +11355,6 @@
|
|
|
11341
11355
|
}
|
|
11342
11356
|
};
|
|
11343
11357
|
});
|
|
11344
|
-
|
|
11345
11358
|
const listRef = vue.ref();
|
|
11346
11359
|
const {
|
|
11347
11360
|
onListScroll,
|
|
@@ -11439,6 +11452,15 @@
|
|
|
11439
11452
|
});
|
|
11440
11453
|
}
|
|
11441
11454
|
});
|
|
11455
|
+
vue.watch(displayItems, (val, oldVal) => {
|
|
11456
|
+
if (!isFocused.value) return;
|
|
11457
|
+
if (!val.length && props.hideNoData) {
|
|
11458
|
+
menu.value = false;
|
|
11459
|
+
}
|
|
11460
|
+
if (!oldVal.length && val.length) {
|
|
11461
|
+
menu.value = true;
|
|
11462
|
+
}
|
|
11463
|
+
});
|
|
11442
11464
|
useRender(() => {
|
|
11443
11465
|
const hasChips = !!(props.chips || slots.chip);
|
|
11444
11466
|
const hasList = !!(!props.hideNoData || displayItems.value.length || slots['prepend-item'] || slots['append-item'] || slots['no-data']);
|
|
@@ -11496,6 +11518,7 @@
|
|
|
11496
11518
|
"onFocusin": onFocusin,
|
|
11497
11519
|
"onScrollPassive": onListScroll,
|
|
11498
11520
|
"tabindex": "-1",
|
|
11521
|
+
"aria-live": "polite",
|
|
11499
11522
|
"color": props.itemColor ?? props.color
|
|
11500
11523
|
}, {
|
|
11501
11524
|
default: () => [slots['prepend-item']?.(), !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? vue.createVNode(VListItem, {
|
|
@@ -11532,7 +11555,9 @@
|
|
|
11532
11555
|
"modelValue": isSelected,
|
|
11533
11556
|
"ripple": false,
|
|
11534
11557
|
"tabindex": "-1"
|
|
11535
|
-
}, null) : undefined, item.props.
|
|
11558
|
+
}, null) : undefined, item.props.prependAvatar && vue.createVNode(VAvatar, {
|
|
11559
|
+
"image": item.props.prependAvatar
|
|
11560
|
+
}, null), item.props.prependIcon && vue.createVNode(VIcon, {
|
|
11536
11561
|
"icon": item.props.prependIcon
|
|
11537
11562
|
}, null)]);
|
|
11538
11563
|
}
|
|
@@ -11823,7 +11848,7 @@
|
|
|
11823
11848
|
const selectFirst = props.autoSelectFirst === true || props.autoSelectFirst === 'exact' && search.value === displayItems.value[0]?.title;
|
|
11824
11849
|
return selectFirst && displayItems.value.length > 0 && !isPristine.value && !listHasFocus.value;
|
|
11825
11850
|
});
|
|
11826
|
-
const menuDisabled = vue.computed(() => props.hideNoData && !
|
|
11851
|
+
const menuDisabled = vue.computed(() => props.hideNoData && !displayItems.value.length || props.readonly || form?.isReadonly.value);
|
|
11827
11852
|
const listRef = vue.ref();
|
|
11828
11853
|
const {
|
|
11829
11854
|
onListScroll,
|
|
@@ -11982,6 +12007,15 @@
|
|
|
11982
12007
|
});
|
|
11983
12008
|
}
|
|
11984
12009
|
});
|
|
12010
|
+
vue.watch(displayItems, (val, oldVal) => {
|
|
12011
|
+
if (!isFocused.value) return;
|
|
12012
|
+
if (!val.length && props.hideNoData) {
|
|
12013
|
+
menu.value = false;
|
|
12014
|
+
}
|
|
12015
|
+
if (!oldVal.length && val.length) {
|
|
12016
|
+
menu.value = true;
|
|
12017
|
+
}
|
|
12018
|
+
});
|
|
11985
12019
|
useRender(() => {
|
|
11986
12020
|
const hasChips = !!(props.chips || slots.chip);
|
|
11987
12021
|
const hasList = !!(!props.hideNoData || displayItems.value.length || slots['prepend-item'] || slots['append-item'] || slots['no-data']);
|
|
@@ -12036,6 +12070,7 @@
|
|
|
12036
12070
|
"onFocusout": onFocusout,
|
|
12037
12071
|
"onScrollPassive": onListScroll,
|
|
12038
12072
|
"tabindex": "-1",
|
|
12073
|
+
"aria-live": "polite",
|
|
12039
12074
|
"color": props.itemColor ?? props.color
|
|
12040
12075
|
}, {
|
|
12041
12076
|
default: () => [slots['prepend-item']?.(), !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? vue.createVNode(VListItem, {
|
|
@@ -12071,7 +12106,9 @@
|
|
|
12071
12106
|
"modelValue": isSelected,
|
|
12072
12107
|
"ripple": false,
|
|
12073
12108
|
"tabindex": "-1"
|
|
12074
|
-
}, null) : undefined, item.props.
|
|
12109
|
+
}, null) : undefined, item.props.prependAvatar && vue.createVNode(VAvatar, {
|
|
12110
|
+
"image": item.props.prependAvatar
|
|
12111
|
+
}, null), item.props.prependIcon && vue.createVNode(VIcon, {
|
|
12075
12112
|
"icon": item.props.prependIcon
|
|
12076
12113
|
}, null)]);
|
|
12077
12114
|
},
|
|
@@ -13580,7 +13617,6 @@
|
|
|
13580
13617
|
function onTransitionCancelled() {
|
|
13581
13618
|
onAfterTransition(); // This should have the same path as normal transition end.
|
|
13582
13619
|
}
|
|
13583
|
-
|
|
13584
13620
|
function onEnterTransition(el) {
|
|
13585
13621
|
if (!isTransitioning.value) {
|
|
13586
13622
|
return;
|
|
@@ -15579,7 +15615,7 @@
|
|
|
15579
15615
|
const selectFirst = props.autoSelectFirst === true || props.autoSelectFirst === 'exact' && search.value === displayItems.value[0]?.title;
|
|
15580
15616
|
return selectFirst && displayItems.value.length > 0 && !isPristine.value && !listHasFocus.value;
|
|
15581
15617
|
});
|
|
15582
|
-
const menuDisabled = vue.computed(() => props.hideNoData && !
|
|
15618
|
+
const menuDisabled = vue.computed(() => props.hideNoData && !displayItems.value.length || props.readonly || form?.isReadonly.value);
|
|
15583
15619
|
const listRef = vue.ref();
|
|
15584
15620
|
const {
|
|
15585
15621
|
onListScroll,
|
|
@@ -15707,9 +15743,6 @@
|
|
|
15707
15743
|
function onUpdateModelValue(v) {
|
|
15708
15744
|
if (v == null || v === '' && !props.multiple) model.value = [];
|
|
15709
15745
|
}
|
|
15710
|
-
vue.watch(filteredItems, val => {
|
|
15711
|
-
if (!val.length && props.hideNoData) menu.value = false;
|
|
15712
|
-
});
|
|
15713
15746
|
vue.watch(isFocused, (val, oldVal) => {
|
|
15714
15747
|
if (val || val === oldVal) return;
|
|
15715
15748
|
selectionIndex.value = -1;
|
|
@@ -15733,6 +15766,15 @@
|
|
|
15733
15766
|
});
|
|
15734
15767
|
}
|
|
15735
15768
|
});
|
|
15769
|
+
vue.watch(displayItems, (val, oldVal) => {
|
|
15770
|
+
if (!isFocused.value) return;
|
|
15771
|
+
if (!val.length && props.hideNoData) {
|
|
15772
|
+
menu.value = false;
|
|
15773
|
+
}
|
|
15774
|
+
if (!oldVal.length && val.length) {
|
|
15775
|
+
menu.value = true;
|
|
15776
|
+
}
|
|
15777
|
+
});
|
|
15736
15778
|
useRender(() => {
|
|
15737
15779
|
const hasChips = !!(props.chips || slots.chip);
|
|
15738
15780
|
const hasList = !!(!props.hideNoData || displayItems.value.length || slots['prepend-item'] || slots['append-item'] || slots['no-data']);
|
|
@@ -15787,6 +15829,7 @@
|
|
|
15787
15829
|
"onFocusout": onFocusout,
|
|
15788
15830
|
"onScrollPassive": onListScroll,
|
|
15789
15831
|
"tabindex": "-1",
|
|
15832
|
+
"aria-live": "polite",
|
|
15790
15833
|
"color": props.itemColor ?? props.color
|
|
15791
15834
|
}, {
|
|
15792
15835
|
default: () => [slots['prepend-item']?.(), !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? vue.createVNode(VListItem, {
|
|
@@ -15822,7 +15865,9 @@
|
|
|
15822
15865
|
"modelValue": isSelected,
|
|
15823
15866
|
"ripple": false,
|
|
15824
15867
|
"tabindex": "-1"
|
|
15825
|
-
}, null) : undefined, item.props.
|
|
15868
|
+
}, null) : undefined, item.props.prependAvatar && vue.createVNode(VAvatar, {
|
|
15869
|
+
"image": item.props.prependAvatar
|
|
15870
|
+
}, null), item.props.prependIcon && vue.createVNode(VIcon, {
|
|
15826
15871
|
"icon": item.props.prependIcon
|
|
15827
15872
|
}, null)]);
|
|
15828
15873
|
},
|
|
@@ -17078,10 +17123,6 @@
|
|
|
17078
17123
|
const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));
|
|
17079
17124
|
return Math.floor(diffDays / 7) + 1;
|
|
17080
17125
|
}
|
|
17081
|
-
function getDay(adapter, value) {
|
|
17082
|
-
const date = adapter.toJsDate(value);
|
|
17083
|
-
return date.getDay();
|
|
17084
|
-
}
|
|
17085
17126
|
|
|
17086
17127
|
// Composables
|
|
17087
17128
|
|
|
@@ -17830,35 +17871,38 @@
|
|
|
17830
17871
|
title: t(option.title)
|
|
17831
17872
|
};
|
|
17832
17873
|
}));
|
|
17833
|
-
useRender(() =>
|
|
17834
|
-
|
|
17835
|
-
|
|
17836
|
-
|
|
17837
|
-
|
|
17838
|
-
|
|
17839
|
-
"
|
|
17840
|
-
|
|
17841
|
-
|
|
17842
|
-
|
|
17843
|
-
|
|
17844
|
-
|
|
17845
|
-
|
|
17846
|
-
|
|
17847
|
-
|
|
17848
|
-
|
|
17849
|
-
|
|
17850
|
-
|
|
17851
|
-
|
|
17852
|
-
|
|
17853
|
-
|
|
17854
|
-
|
|
17855
|
-
|
|
17856
|
-
|
|
17857
|
-
|
|
17858
|
-
|
|
17859
|
-
|
|
17860
|
-
|
|
17861
|
-
|
|
17874
|
+
useRender(() => {
|
|
17875
|
+
const paginationProps = VPagination.filterProps(props);
|
|
17876
|
+
return vue.createVNode("div", {
|
|
17877
|
+
"class": "v-data-table-footer"
|
|
17878
|
+
}, [slots.prepend?.(), vue.createVNode("div", {
|
|
17879
|
+
"class": "v-data-table-footer__items-per-page"
|
|
17880
|
+
}, [vue.createVNode("span", null, [t(props.itemsPerPageText)]), vue.createVNode(VSelect, {
|
|
17881
|
+
"items": itemsPerPageOptions.value,
|
|
17882
|
+
"modelValue": itemsPerPage.value,
|
|
17883
|
+
"onUpdate:modelValue": v => setItemsPerPage(Number(v)),
|
|
17884
|
+
"density": "compact",
|
|
17885
|
+
"variant": "outlined",
|
|
17886
|
+
"hide-details": true
|
|
17887
|
+
}, null)]), vue.createVNode("div", {
|
|
17888
|
+
"class": "v-data-table-footer__info"
|
|
17889
|
+
}, [vue.createVNode("div", null, [t(props.pageText, !itemsLength.value ? 0 : startIndex.value + 1, stopIndex.value, itemsLength.value)])]), vue.createVNode("div", {
|
|
17890
|
+
"class": "v-data-table-footer__pagination"
|
|
17891
|
+
}, [vue.createVNode(VPagination, vue.mergeProps({
|
|
17892
|
+
"modelValue": page.value,
|
|
17893
|
+
"onUpdate:modelValue": $event => page.value = $event,
|
|
17894
|
+
"density": "comfortable",
|
|
17895
|
+
"first-aria-label": props.firstPageLabel,
|
|
17896
|
+
"last-aria-label": props.lastPageLabel,
|
|
17897
|
+
"length": pageCount.value,
|
|
17898
|
+
"next-aria-label": props.nextPageLabel,
|
|
17899
|
+
"previous-aria-label": props.prevPageLabel,
|
|
17900
|
+
"rounded": true,
|
|
17901
|
+
"show-first-last-page": true,
|
|
17902
|
+
"total-visible": props.showCurrentPage ? 1 : 0,
|
|
17903
|
+
"variant": "plain"
|
|
17904
|
+
}, paginationProps), null)])]);
|
|
17905
|
+
});
|
|
17862
17906
|
return {};
|
|
17863
17907
|
}
|
|
17864
17908
|
});
|
|
@@ -18242,7 +18286,8 @@
|
|
|
18242
18286
|
"class": ['v-data-table__th', {
|
|
18243
18287
|
'v-data-table__th--sortable': column.sortable,
|
|
18244
18288
|
'v-data-table__th--sorted': isSorted(column),
|
|
18245
|
-
'v-data-table__th--fixed': column.fixed
|
|
18289
|
+
'v-data-table__th--fixed': column.fixed,
|
|
18290
|
+
'v-data-table__th--sticky': props.sticky
|
|
18246
18291
|
}, loaderClasses.value],
|
|
18247
18292
|
"style": {
|
|
18248
18293
|
width: convertToUnit(column.width),
|
|
@@ -19736,7 +19781,11 @@
|
|
|
19736
19781
|
max: null,
|
|
19737
19782
|
min: null,
|
|
19738
19783
|
showAdjacentMonths: Boolean,
|
|
19739
|
-
year: [Number, String]
|
|
19784
|
+
year: [Number, String],
|
|
19785
|
+
weekdays: {
|
|
19786
|
+
type: Array,
|
|
19787
|
+
default: () => [0, 1, 2, 3, 4, 5, 6]
|
|
19788
|
+
}
|
|
19740
19789
|
}, 'calendar');
|
|
19741
19790
|
function useCalendar(props) {
|
|
19742
19791
|
const adapter = useDate();
|
|
@@ -19777,8 +19826,10 @@
|
|
|
19777
19826
|
}
|
|
19778
19827
|
return weeks;
|
|
19779
19828
|
});
|
|
19780
|
-
|
|
19781
|
-
return days.
|
|
19829
|
+
function genDays(days, today) {
|
|
19830
|
+
return days.filter(date => {
|
|
19831
|
+
return props.weekdays.includes(date.getDay());
|
|
19832
|
+
}).map((date, index) => {
|
|
19782
19833
|
const isoDate = adapter.toISO(date);
|
|
19783
19834
|
const isAdjacent = !adapter.isSameMonth(date, month.value);
|
|
19784
19835
|
const isStart = adapter.isSameDay(date, adapter.startOfMonth(month.value));
|
|
@@ -19803,7 +19854,7 @@
|
|
|
19803
19854
|
localized: adapter.format(date, 'dayOfMonth')
|
|
19804
19855
|
};
|
|
19805
19856
|
});
|
|
19806
|
-
}
|
|
19857
|
+
}
|
|
19807
19858
|
const daysInWeek = vue.computed(() => {
|
|
19808
19859
|
const lastDay = adapter.startOfWeek(model.value);
|
|
19809
19860
|
const week = [];
|
|
@@ -25407,10 +25458,6 @@
|
|
|
25407
25458
|
const makeVCalendarProps = propsFactory({
|
|
25408
25459
|
hideHeader: Boolean,
|
|
25409
25460
|
hideWeekNumber: Boolean,
|
|
25410
|
-
weekdays: {
|
|
25411
|
-
type: Array,
|
|
25412
|
-
default: () => [0, 1, 2, 3, 4, 5, 6]
|
|
25413
|
-
},
|
|
25414
25461
|
...makeCalendarProps(),
|
|
25415
25462
|
...makeVCalendarDayProps(),
|
|
25416
25463
|
...makeVCalendarHeaderProps()
|
|
@@ -25484,7 +25531,7 @@
|
|
|
25484
25531
|
}), null) : slots.header({
|
|
25485
25532
|
title: title.value
|
|
25486
25533
|
}))]), vue.createVNode("div", {
|
|
25487
|
-
"class":
|
|
25534
|
+
"class": ['v-calendar__container', `days__${props.weekdays.length}`]
|
|
25488
25535
|
}, [props.viewMode === 'month' && !props.hideDayHeader && vue.createVNode("div", {
|
|
25489
25536
|
"class": ['v-calendar-weekly__head', `days__${props.weekdays.length}`, ...(!props.hideWeekNumber ? ['v-calendar-weekly__head-weeknumbers'] : [])],
|
|
25490
25537
|
"key": "calenderWeeklyHead"
|
|
@@ -25496,9 +25543,9 @@
|
|
|
25496
25543
|
}, [dayNames[weekday]]))]), props.viewMode === 'month' && vue.createVNode("div", {
|
|
25497
25544
|
"key": "VCalendarMonth",
|
|
25498
25545
|
"class": ['v-calendar-month__days', `days${!props.hideWeekNumber ? '-with-weeknumbers' : ''}__${props.weekdays.length}`, ...(!props.hideWeekNumber ? ['v-calendar-month__weeknumbers'] : [])]
|
|
25499
|
-
}, [chunkArray(daysInMonth.value
|
|
25546
|
+
}, [chunkArray(daysInMonth.value, props.weekdays.length).map((week, wi) => [!props.hideWeekNumber ? vue.createVNode("div", {
|
|
25500
25547
|
"class": "v-calendar-month__weeknumber"
|
|
25501
|
-
}, [weekNumbers.value[wi]]) : '', week.
|
|
25548
|
+
}, [weekNumbers.value[wi]]) : '', week.map(day => vue.createVNode(VCalendarMonthDay, {
|
|
25502
25549
|
"color": adapter.isSameDay(new Date(), day.date) ? 'primary' : undefined,
|
|
25503
25550
|
"day": day,
|
|
25504
25551
|
"title": day ? adapter.format(day.date, 'dayOfMonth') : 'NaN',
|
|
@@ -25906,7 +25953,7 @@
|
|
|
25906
25953
|
date
|
|
25907
25954
|
};
|
|
25908
25955
|
}
|
|
25909
|
-
const version$1 = "3.4.
|
|
25956
|
+
const version$1 = "3.4.10";
|
|
25910
25957
|
createVuetify$1.version = version$1;
|
|
25911
25958
|
|
|
25912
25959
|
// Vue's inject() can only be used in setup
|
|
@@ -25920,7 +25967,7 @@
|
|
|
25920
25967
|
|
|
25921
25968
|
/* eslint-disable local-rules/sort-imports */
|
|
25922
25969
|
|
|
25923
|
-
const version = "3.4.
|
|
25970
|
+
const version = "3.4.10";
|
|
25924
25971
|
|
|
25925
25972
|
/* eslint-disable local-rules/sort-imports */
|
|
25926
25973
|
|