vuetify 3.10.8 → 3.10.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 +1543 -1543
- package/dist/json/importMap-labs.json +18 -18
- package/dist/json/importMap.json +174 -174
- package/dist/json/web-types.json +2937 -2937
- package/dist/vuetify-labs.cjs +205 -216
- package/dist/vuetify-labs.css +4754 -4730
- package/dist/vuetify-labs.d.ts +72 -72
- package/dist/vuetify-labs.esm.js +205 -216
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +205 -216
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.cjs +137 -99
- package/dist/vuetify.cjs.map +1 -1
- package/dist/vuetify.css +2766 -2730
- package/dist/vuetify.d.ts +56 -56
- package/dist/vuetify.esm.js +137 -99
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +137 -99
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +334 -330
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAvatar/VAvatar.css +1 -1
- package/lib/components/VAvatar/_variables.scss +1 -1
- package/lib/components/VBtnToggle/VBtnToggle.css +21 -0
- package/lib/components/VBtnToggle/VBtnToggle.sass +22 -0
- package/lib/components/VCard/VCard.js +8 -1
- package/lib/components/VCard/VCard.js.map +1 -1
- package/lib/components/VDatePicker/VDatePicker.js +7 -16
- package/lib/components/VDatePicker/VDatePicker.js.map +1 -1
- package/lib/components/VList/VList.css +6 -0
- package/lib/components/VList/VList.sass +6 -0
- package/lib/components/VList/VListItem.css +0 -3
- package/lib/components/VList/VListItem.sass +0 -4
- package/lib/components/VOverlay/useActivator.js +2 -1
- package/lib/components/VOverlay/useActivator.js.map +1 -1
- package/lib/components/VTabs/VTab.css +8 -0
- package/lib/components/VTabs/VTab.sass +7 -0
- package/lib/components/VTextField/VTextField.js +17 -7
- package/lib/components/VTextField/VTextField.js.map +1 -1
- package/lib/components/VTextarea/VTextarea.js +17 -7
- package/lib/components/VTextarea/VTextarea.js.map +1 -1
- package/lib/composables/calendar.d.ts +6 -0
- package/lib/composables/calendar.js +37 -2
- package/lib/composables/calendar.js.map +1 -1
- package/lib/composables/delay.js +3 -2
- package/lib/composables/delay.js.map +1 -1
- package/lib/composables/hotkey/hotkey.js +42 -53
- package/lib/composables/hotkey/hotkey.js.map +1 -1
- package/lib/entry-bundler.js +1 -1
- package/lib/entry-bundler.js.map +1 -1
- package/lib/framework.d.ts +56 -56
- package/lib/framework.js +1 -1
- package/lib/framework.js.map +1 -1
- package/lib/labs/VDateInput/VDateInput.js +8 -12
- package/lib/labs/VDateInput/VDateInput.js.map +1 -1
- package/lib/labs/VHotkey/VHotkey.css +4 -16
- package/lib/labs/VHotkey/VHotkey.d.ts +29 -29
- package/lib/labs/VHotkey/VHotkey.js +62 -106
- package/lib/labs/VHotkey/VHotkey.js.map +1 -1
- package/lib/labs/VHotkey/VHotkey.scss +8 -25
- package/lib/styles/main.css +4 -0
- package/lib/styles/settings/_variables.scss +1 -0
- package/lib/util/box.js +3 -8
- package/lib/util/box.js.map +1 -1
- package/lib/util/throttle.js +2 -2
- package/lib/util/throttle.js.map +1 -1
- package/package.json +1 -1
package/dist/vuetify.d.ts
CHANGED
|
@@ -105770,24 +105770,26 @@ declare module 'vue' {
|
|
|
105770
105770
|
$children?: VNodeChild
|
|
105771
105771
|
}
|
|
105772
105772
|
export interface GlobalComponents {
|
|
105773
|
-
VApp: VApp
|
|
105774
|
-
VAlert: VAlert
|
|
105775
|
-
VAlertTitle: VAlertTitle
|
|
105776
|
-
VAutocomplete: VAutocomplete
|
|
105777
105773
|
VAppBar: VAppBar
|
|
105778
105774
|
VAppBarNavIcon: VAppBarNavIcon
|
|
105779
105775
|
VAppBarTitle: VAppBarTitle
|
|
105780
|
-
|
|
105781
|
-
VBannerActions: VBannerActions
|
|
105782
|
-
VBannerText: VBannerText
|
|
105776
|
+
VApp: VApp
|
|
105783
105777
|
VBadge: VBadge
|
|
105784
|
-
VAvatar: VAvatar
|
|
105785
105778
|
VBottomSheet: VBottomSheet
|
|
105786
|
-
|
|
105779
|
+
VAutocomplete: VAutocomplete
|
|
105780
|
+
VAlert: VAlert
|
|
105781
|
+
VAlertTitle: VAlertTitle
|
|
105782
|
+
VBottomNavigation: VBottomNavigation
|
|
105783
|
+
VAvatar: VAvatar
|
|
105787
105784
|
VBreadcrumbs: VBreadcrumbs
|
|
105788
105785
|
VBreadcrumbsItem: VBreadcrumbsItem
|
|
105789
105786
|
VBreadcrumbsDivider: VBreadcrumbsDivider
|
|
105790
|
-
|
|
105787
|
+
VBtnGroup: VBtnGroup
|
|
105788
|
+
VBanner: VBanner
|
|
105789
|
+
VBannerActions: VBannerActions
|
|
105790
|
+
VBannerText: VBannerText
|
|
105791
|
+
VBtn: VBtn
|
|
105792
|
+
VCode: VCode
|
|
105791
105793
|
VBtnToggle: VBtnToggle
|
|
105792
105794
|
VCard: VCard
|
|
105793
105795
|
VCardActions: VCardActions
|
|
@@ -105797,11 +105799,13 @@ declare module 'vue' {
|
|
|
105797
105799
|
VCardTitle: VCardTitle
|
|
105798
105800
|
VCarousel: VCarousel
|
|
105799
105801
|
VCarouselItem: VCarouselItem
|
|
105802
|
+
VChip: VChip
|
|
105800
105803
|
VChipGroup: VChipGroup
|
|
105801
|
-
VBtnGroup: VBtnGroup
|
|
105802
105804
|
VCheckbox: VCheckbox
|
|
105803
105805
|
VCheckboxBtn: VCheckboxBtn
|
|
105804
|
-
|
|
105806
|
+
VCombobox: VCombobox
|
|
105807
|
+
VFab: VFab
|
|
105808
|
+
VCounter: VCounter
|
|
105805
105809
|
VDataTable: VDataTable
|
|
105806
105810
|
VDataTableHeaders: VDataTableHeaders
|
|
105807
105811
|
VDataTableFooter: VDataTableFooter
|
|
@@ -105810,40 +105814,40 @@ declare module 'vue' {
|
|
|
105810
105814
|
VDataTableVirtual: VDataTableVirtual
|
|
105811
105815
|
VDataTableServer: VDataTableServer
|
|
105812
105816
|
VColorPicker: VColorPicker
|
|
105813
|
-
|
|
105814
|
-
|
|
105815
|
-
|
|
105817
|
+
VDialog: VDialog
|
|
105818
|
+
VDivider: VDivider
|
|
105819
|
+
VFooter: VFooter
|
|
105820
|
+
VExpansionPanels: VExpansionPanels
|
|
105821
|
+
VExpansionPanel: VExpansionPanel
|
|
105822
|
+
VExpansionPanelText: VExpansionPanelText
|
|
105823
|
+
VExpansionPanelTitle: VExpansionPanelTitle
|
|
105816
105824
|
VDatePicker: VDatePicker
|
|
105817
105825
|
VDatePickerControls: VDatePickerControls
|
|
105818
105826
|
VDatePickerHeader: VDatePickerHeader
|
|
105819
105827
|
VDatePickerMonth: VDatePickerMonth
|
|
105820
105828
|
VDatePickerMonths: VDatePickerMonths
|
|
105821
105829
|
VDatePickerYears: VDatePickerYears
|
|
105822
|
-
VDialog: VDialog
|
|
105823
|
-
VEmptyState: VEmptyState
|
|
105824
105830
|
VField: VField
|
|
105825
105831
|
VFieldLabel: VFieldLabel
|
|
105826
|
-
|
|
105827
|
-
VExpansionPanels: VExpansionPanels
|
|
105828
|
-
VExpansionPanel: VExpansionPanel
|
|
105829
|
-
VExpansionPanelText: VExpansionPanelText
|
|
105830
|
-
VExpansionPanelTitle: VExpansionPanelTitle
|
|
105831
|
-
VFooter: VFooter
|
|
105832
|
-
VFab: VFab
|
|
105832
|
+
VEmptyState: VEmptyState
|
|
105833
105833
|
VFileInput: VFileInput
|
|
105834
|
+
VImg: VImg
|
|
105834
105835
|
VIcon: VIcon
|
|
105835
105836
|
VComponentIcon: VComponentIcon
|
|
105836
105837
|
VSvgIcon: VSvgIcon
|
|
105837
105838
|
VLigatureIcon: VLigatureIcon
|
|
105838
105839
|
VClassIcon: VClassIcon
|
|
105839
|
-
VImg: VImg
|
|
105840
|
-
VInfiniteScroll: VInfiniteScroll
|
|
105841
105840
|
VItemGroup: VItemGroup
|
|
105842
105841
|
VItem: VItem
|
|
105843
105842
|
VKbd: VKbd
|
|
105843
|
+
VLabel: VLabel
|
|
105844
|
+
VInfiniteScroll: VInfiniteScroll
|
|
105845
|
+
VMain: VMain
|
|
105844
105846
|
VInput: VInput
|
|
105847
|
+
VMenu: VMenu
|
|
105845
105848
|
VNavigationDrawer: VNavigationDrawer
|
|
105846
|
-
|
|
105849
|
+
VOverlay: VOverlay
|
|
105850
|
+
VMessages: VMessages
|
|
105847
105851
|
VList: VList
|
|
105848
105852
|
VListGroup: VListGroup
|
|
105849
105853
|
VListImg: VListImg
|
|
@@ -105853,28 +105857,22 @@ declare module 'vue' {
|
|
|
105853
105857
|
VListItemSubtitle: VListItemSubtitle
|
|
105854
105858
|
VListItemTitle: VListItemTitle
|
|
105855
105859
|
VListSubheader: VListSubheader
|
|
105856
|
-
VMenu: VMenu
|
|
105857
|
-
VNumberInput: VNumberInput
|
|
105858
|
-
VMessages: VMessages
|
|
105859
105860
|
VOtpInput: VOtpInput
|
|
105860
|
-
|
|
105861
|
+
VNumberInput: VNumberInput
|
|
105861
105862
|
VPagination: VPagination
|
|
105862
|
-
VProgressLinear: VProgressLinear
|
|
105863
|
-
VOverlay: VOverlay
|
|
105864
|
-
VRadioGroup: VRadioGroup
|
|
105865
|
-
VRating: VRating
|
|
105866
105863
|
VProgressCircular: VProgressCircular
|
|
105867
|
-
|
|
105864
|
+
VRadioGroup: VRadioGroup
|
|
105865
|
+
VProgressLinear: VProgressLinear
|
|
105868
105866
|
VSelect: VSelect
|
|
105867
|
+
VRating: VRating
|
|
105869
105868
|
VSelectionControl: VSelectionControl
|
|
105869
|
+
VSlideGroup: VSlideGroup
|
|
105870
|
+
VSlideGroupItem: VSlideGroupItem
|
|
105871
|
+
VSelectionControlGroup: VSelectionControlGroup
|
|
105872
|
+
VSheet: VSheet
|
|
105870
105873
|
VSlider: VSlider
|
|
105871
105874
|
VSkeletonLoader: VSkeletonLoader
|
|
105872
|
-
VSheet: VSheet
|
|
105873
105875
|
VSnackbar: VSnackbar
|
|
105874
|
-
VSlideGroup: VSlideGroup
|
|
105875
|
-
VSlideGroupItem: VSlideGroupItem
|
|
105876
|
-
VSystemBar: VSystemBar
|
|
105877
|
-
VSwitch: VSwitch
|
|
105878
105876
|
VStepper: VStepper
|
|
105879
105877
|
VStepperActions: VStepperActions
|
|
105880
105878
|
VStepperHeader: VStepperHeader
|
|
@@ -105885,46 +105883,49 @@ declare module 'vue' {
|
|
|
105885
105883
|
VTabs: VTabs
|
|
105886
105884
|
VTabsWindow: VTabsWindow
|
|
105887
105885
|
VTabsWindowItem: VTabsWindowItem
|
|
105886
|
+
VSwitch: VSwitch
|
|
105887
|
+
VSystemBar: VSystemBar
|
|
105888
105888
|
VTable: VTable
|
|
105889
105889
|
VTextarea: VTextarea
|
|
105890
|
-
VTextField: VTextField
|
|
105891
105890
|
VTimePicker: VTimePicker
|
|
105892
105891
|
VTimePickerClock: VTimePickerClock
|
|
105893
105892
|
VTimePickerControls: VTimePickerControls
|
|
105893
|
+
VTextField: VTextField
|
|
105894
|
+
VToolbar: VToolbar
|
|
105895
|
+
VToolbarTitle: VToolbarTitle
|
|
105896
|
+
VToolbarItems: VToolbarItems
|
|
105894
105897
|
VTimeline: VTimeline
|
|
105895
105898
|
VTimelineItem: VTimelineItem
|
|
105899
|
+
VTooltip: VTooltip
|
|
105896
105900
|
VTreeview: VTreeview
|
|
105897
105901
|
VTreeviewItem: VTreeviewItem
|
|
105898
105902
|
VTreeviewGroup: VTreeviewGroup
|
|
105899
|
-
VTooltip: VTooltip
|
|
105900
|
-
VToolbar: VToolbar
|
|
105901
|
-
VToolbarTitle: VToolbarTitle
|
|
105902
|
-
VToolbarItems: VToolbarItems
|
|
105903
105903
|
VWindow: VWindow
|
|
105904
105904
|
VWindowItem: VWindowItem
|
|
105905
105905
|
VConfirmEdit: VConfirmEdit
|
|
105906
105906
|
VDataIterator: VDataIterator
|
|
105907
105907
|
VDefaultsProvider: VDefaultsProvider
|
|
105908
105908
|
VForm: VForm
|
|
105909
|
-
VHover: VHover
|
|
105910
105909
|
VContainer: VContainer
|
|
105911
105910
|
VCol: VCol
|
|
105912
105911
|
VRow: VRow
|
|
105913
105912
|
VSpacer: VSpacer
|
|
105914
|
-
VLazy: VLazy
|
|
105915
105913
|
VLayout: VLayout
|
|
105916
105914
|
VLayoutItem: VLayoutItem
|
|
105915
|
+
VHover: VHover
|
|
105916
|
+
VLazy: VLazy
|
|
105917
105917
|
VLocaleProvider: VLocaleProvider
|
|
105918
105918
|
VNoSsr: VNoSsr
|
|
105919
105919
|
VParallax: VParallax
|
|
105920
105920
|
VRadio: VRadio
|
|
105921
105921
|
VRangeSlider: VRangeSlider
|
|
105922
105922
|
VResponsive: VResponsive
|
|
105923
|
-
VSparkline: VSparkline
|
|
105924
105923
|
VSnackbarQueue: VSnackbarQueue
|
|
105924
|
+
VSparkline: VSparkline
|
|
105925
105925
|
VSpeedDial: VSpeedDial
|
|
105926
|
-
VValidation: VValidation
|
|
105927
105926
|
VThemeProvider: VThemeProvider
|
|
105927
|
+
VVirtualScroll: VVirtualScroll
|
|
105928
|
+
VValidation: VValidation
|
|
105928
105929
|
VFabTransition: VFabTransition
|
|
105929
105930
|
VDialogBottomTransition: VDialogBottomTransition
|
|
105930
105931
|
VDialogTopTransition: VDialogTopTransition
|
|
@@ -105941,21 +105942,20 @@ declare module 'vue' {
|
|
|
105941
105942
|
VExpandTransition: VExpandTransition
|
|
105942
105943
|
VExpandXTransition: VExpandXTransition
|
|
105943
105944
|
VDialogTransition: VDialogTransition
|
|
105944
|
-
VVirtualScroll: VVirtualScroll
|
|
105945
105945
|
VCalendar: VCalendar
|
|
105946
|
+
VIconBtn: VIconBtn
|
|
105946
105947
|
VFileUpload: VFileUpload
|
|
105947
105948
|
VFileUploadItem: VFileUploadItem
|
|
105948
|
-
VColorInput: VColorInput
|
|
105949
105949
|
VStepperVertical: VStepperVertical
|
|
105950
105950
|
VStepperVerticalItem: VStepperVerticalItem
|
|
105951
105951
|
VStepperVerticalActions: VStepperVerticalActions
|
|
105952
|
+
VColorInput: VColorInput
|
|
105953
|
+
VHotkey: VHotkey
|
|
105954
|
+
VPicker: VPicker
|
|
105955
|
+
VPickerTitle: VPickerTitle
|
|
105952
105956
|
VPie: VPie
|
|
105953
105957
|
VPieSegment: VPieSegment
|
|
105954
105958
|
VPieTooltip: VPieTooltip
|
|
105955
|
-
VIconBtn: VIconBtn
|
|
105956
|
-
VPicker: VPicker
|
|
105957
|
-
VPickerTitle: VPickerTitle
|
|
105958
|
-
VHotkey: VHotkey
|
|
105959
105959
|
VVideo: VVideo
|
|
105960
105960
|
VVideoControls: VVideoControls
|
|
105961
105961
|
VVideoVolume: VVideoVolume
|
package/dist/vuetify.esm.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Vuetify v3.10.
|
|
2
|
+
* Vuetify v3.10.10
|
|
3
3
|
* Forged by John Leider
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
@@ -609,7 +609,8 @@ function getAxis(anchor) {
|
|
|
609
609
|
class Box {
|
|
610
610
|
constructor(args) {
|
|
611
611
|
const pageScale = document.body.currentCSSZoom ?? 1;
|
|
612
|
-
const
|
|
612
|
+
const ignoreZoom = args.top === undefined; // detect DOMRect without breaking in jsdom
|
|
613
|
+
const factor = ignoreZoom ? 1 : 1 + (1 - pageScale) / pageScale;
|
|
613
614
|
const {
|
|
614
615
|
x,
|
|
615
616
|
y,
|
|
@@ -679,13 +680,7 @@ function getElementBox(el) {
|
|
|
679
680
|
});
|
|
680
681
|
}
|
|
681
682
|
} else {
|
|
682
|
-
|
|
683
|
-
return new Box({
|
|
684
|
-
x: rect.x,
|
|
685
|
-
y: rect.y,
|
|
686
|
-
width: el.clientWidth,
|
|
687
|
-
height: el.clientHeight
|
|
688
|
-
});
|
|
683
|
+
return new Box(el.getBoundingClientRect());
|
|
689
684
|
}
|
|
690
685
|
}
|
|
691
686
|
|
|
@@ -1756,7 +1751,7 @@ function throttle(fn, delay) {
|
|
|
1756
1751
|
const elapsed = now - Math.max(start, lastExec);
|
|
1757
1752
|
function invoke() {
|
|
1758
1753
|
lastExec = Date.now();
|
|
1759
|
-
timeoutId =
|
|
1754
|
+
timeoutId = setTimeout(clear, delay);
|
|
1760
1755
|
fn(...args);
|
|
1761
1756
|
}
|
|
1762
1757
|
if (!throttling) {
|
|
@@ -1767,7 +1762,7 @@ function throttle(fn, delay) {
|
|
|
1767
1762
|
} else if (elapsed >= delay) {
|
|
1768
1763
|
invoke();
|
|
1769
1764
|
} else if (options.trailing) {
|
|
1770
|
-
timeoutId =
|
|
1765
|
+
timeoutId = setTimeout(invoke, delay - elapsed);
|
|
1771
1766
|
}
|
|
1772
1767
|
};
|
|
1773
1768
|
wrap.clear = clear;
|
|
@@ -11571,9 +11566,10 @@ function useDelay(props, cb) {
|
|
|
11571
11566
|
let clearDelay = () => {};
|
|
11572
11567
|
function runDelay(isOpening, options) {
|
|
11573
11568
|
clearDelay?.();
|
|
11574
|
-
const delay =
|
|
11569
|
+
const delay = isOpening ? props.openDelay : props.closeDelay;
|
|
11570
|
+
const normalizedDelay = Math.max(options?.minDelay ?? 0, Number(delay ?? 0));
|
|
11575
11571
|
return new Promise(resolve => {
|
|
11576
|
-
clearDelay = defer(
|
|
11572
|
+
clearDelay = defer(normalizedDelay, () => {
|
|
11577
11573
|
cb?.(isOpening);
|
|
11578
11574
|
resolve(isOpening);
|
|
11579
11575
|
});
|
|
@@ -11701,7 +11697,8 @@ function useActivator(props, _ref) {
|
|
|
11701
11697
|
};
|
|
11702
11698
|
}
|
|
11703
11699
|
if (openOnFocus.value) {
|
|
11704
|
-
events.onFocusin =
|
|
11700
|
+
events.onFocusin = e => {
|
|
11701
|
+
if (!e.target.matches(':focus-visible')) return;
|
|
11705
11702
|
isFocused = true;
|
|
11706
11703
|
runOpenDelay();
|
|
11707
11704
|
};
|
|
@@ -13079,14 +13076,24 @@ const VTextField = genericComponent()({
|
|
|
13079
13076
|
}
|
|
13080
13077
|
function onInput(e) {
|
|
13081
13078
|
const el = e.target;
|
|
13082
|
-
|
|
13083
|
-
|
|
13084
|
-
|
|
13085
|
-
nextTick(() => {
|
|
13086
|
-
el.selectionStart = caretPosition[0];
|
|
13087
|
-
el.selectionEnd = caretPosition[1];
|
|
13088
|
-
});
|
|
13079
|
+
if (!(props.modelModifiers?.trim && ['text', 'search', 'password', 'tel', 'url'].includes(props.type))) {
|
|
13080
|
+
model.value = el.value;
|
|
13081
|
+
return;
|
|
13089
13082
|
}
|
|
13083
|
+
const value = el.value;
|
|
13084
|
+
const start = el.selectionStart;
|
|
13085
|
+
const end = el.selectionEnd;
|
|
13086
|
+
model.value = value;
|
|
13087
|
+
nextTick(() => {
|
|
13088
|
+
let offset = 0;
|
|
13089
|
+
if (value.trimStart().length === el.value.length) {
|
|
13090
|
+
// #22307 - Whitespace has been removed from the
|
|
13091
|
+
// start, offset the caret position to compensate
|
|
13092
|
+
offset = value.length - el.value.length;
|
|
13093
|
+
}
|
|
13094
|
+
if (start != null) el.selectionStart = start - offset;
|
|
13095
|
+
if (end != null) el.selectionEnd = end - offset;
|
|
13096
|
+
});
|
|
13090
13097
|
}
|
|
13091
13098
|
useRender(() => {
|
|
13092
13099
|
const hasCounter = !!(slots.counter || props.counter !== false && props.counter != null);
|
|
@@ -15813,6 +15820,12 @@ const VCard = genericComponent()({
|
|
|
15813
15820
|
roundedClasses
|
|
15814
15821
|
} = useRounded(props);
|
|
15815
15822
|
const link = useLink(props, attrs);
|
|
15823
|
+
const loadingColor = shallowRef(undefined);
|
|
15824
|
+
watch(() => props.loading, (val, old) => {
|
|
15825
|
+
loadingColor.value = !val && typeof old === 'string' ? old : typeof val === 'boolean' ? undefined : val;
|
|
15826
|
+
}, {
|
|
15827
|
+
immediate: true
|
|
15828
|
+
});
|
|
15816
15829
|
useRender(() => {
|
|
15817
15830
|
const isLink = props.link !== false && link.isLink.value;
|
|
15818
15831
|
const isClickable = !props.disabled && props.link !== false && (props.link || link.isClickable.value);
|
|
@@ -15855,7 +15868,7 @@ const VCard = genericComponent()({
|
|
|
15855
15868
|
}, slots.image)]), createVNode(LoaderSlot, {
|
|
15856
15869
|
"name": "v-card",
|
|
15857
15870
|
"active": !!props.loading,
|
|
15858
|
-
"color":
|
|
15871
|
+
"color": loadingColor.value
|
|
15859
15872
|
}, {
|
|
15860
15873
|
default: slots.loader
|
|
15861
15874
|
}), hasCardItem && createVNode(VCardItem, {
|
|
@@ -19278,11 +19291,6 @@ function useHotkey(keys, callback) {
|
|
|
19278
19291
|
let keyGroups;
|
|
19279
19292
|
let isSequence = false;
|
|
19280
19293
|
let groupIndex = 0;
|
|
19281
|
-
function clearTimer() {
|
|
19282
|
-
if (!timeout) return;
|
|
19283
|
-
clearTimeout(timeout);
|
|
19284
|
-
timeout = 0;
|
|
19285
|
-
}
|
|
19286
19294
|
function isInputFocused() {
|
|
19287
19295
|
if (toValue(inputs)) return false;
|
|
19288
19296
|
const activeElement = document.activeElement;
|
|
@@ -19290,12 +19298,12 @@ function useHotkey(keys, callback) {
|
|
|
19290
19298
|
}
|
|
19291
19299
|
function resetSequence() {
|
|
19292
19300
|
groupIndex = 0;
|
|
19293
|
-
|
|
19301
|
+
clearTimeout(timeout);
|
|
19294
19302
|
}
|
|
19295
19303
|
function handler(e) {
|
|
19296
19304
|
const group = keyGroups[groupIndex];
|
|
19297
19305
|
if (!group || isInputFocused()) return;
|
|
19298
|
-
if (!matchesKeyGroup(e, group)) {
|
|
19306
|
+
if (!matchesKeyGroup(e, group, isMac)) {
|
|
19299
19307
|
if (isSequence) resetSequence();
|
|
19300
19308
|
return;
|
|
19301
19309
|
}
|
|
@@ -19304,7 +19312,7 @@ function useHotkey(keys, callback) {
|
|
|
19304
19312
|
callback(e);
|
|
19305
19313
|
return;
|
|
19306
19314
|
}
|
|
19307
|
-
|
|
19315
|
+
clearTimeout(timeout);
|
|
19308
19316
|
groupIndex++;
|
|
19309
19317
|
if (groupIndex === keyGroups.length) {
|
|
19310
19318
|
callback(e);
|
|
@@ -19315,12 +19323,12 @@ function useHotkey(keys, callback) {
|
|
|
19315
19323
|
}
|
|
19316
19324
|
function cleanup() {
|
|
19317
19325
|
window.removeEventListener(toValue(event), handler);
|
|
19318
|
-
|
|
19326
|
+
clearTimeout(timeout);
|
|
19319
19327
|
}
|
|
19320
|
-
watch(() => toValue(keys),
|
|
19328
|
+
watch(() => toValue(keys), newKeys => {
|
|
19321
19329
|
cleanup();
|
|
19322
|
-
if (
|
|
19323
|
-
const groups = splitKeySequence(
|
|
19330
|
+
if (newKeys) {
|
|
19331
|
+
const groups = splitKeySequence(newKeys.toLowerCase());
|
|
19324
19332
|
isSequence = groups.length > 1;
|
|
19325
19333
|
keyGroups = groups;
|
|
19326
19334
|
resetSequence();
|
|
@@ -19331,55 +19339,50 @@ function useHotkey(keys, callback) {
|
|
|
19331
19339
|
});
|
|
19332
19340
|
|
|
19333
19341
|
// Watch for changes in the event type to re-register the listener
|
|
19334
|
-
watch(() => toValue(event),
|
|
19342
|
+
watch(() => toValue(event), (newEvent, oldEvent) => {
|
|
19335
19343
|
if (oldEvent && keyGroups && keyGroups.length > 0) {
|
|
19336
19344
|
window.removeEventListener(oldEvent, handler);
|
|
19337
19345
|
window.addEventListener(newEvent, handler);
|
|
19338
19346
|
}
|
|
19339
19347
|
});
|
|
19340
|
-
|
|
19341
|
-
|
|
19342
|
-
|
|
19343
|
-
|
|
19344
|
-
|
|
19345
|
-
|
|
19346
|
-
|
|
19347
|
-
|
|
19348
|
+
onScopeDispose(cleanup, true);
|
|
19349
|
+
return cleanup;
|
|
19350
|
+
}
|
|
19351
|
+
function matchesKeyGroup(e, group, isMac) {
|
|
19352
|
+
const {
|
|
19353
|
+
modifiers,
|
|
19354
|
+
actualKey
|
|
19355
|
+
} = parseKeyGroup(group);
|
|
19356
|
+
const expectCtrl = modifiers.ctrl || !isMac && (modifiers.cmd || modifiers.meta);
|
|
19357
|
+
const expectMeta = isMac && (modifiers.cmd || modifiers.meta);
|
|
19358
|
+
return e.ctrlKey === expectCtrl && e.metaKey === expectMeta && e.shiftKey === modifiers.shift && e.altKey === modifiers.alt && e.key.toLowerCase() === actualKey?.toLowerCase();
|
|
19359
|
+
}
|
|
19360
|
+
function parseKeyGroup(group) {
|
|
19361
|
+
const MODIFIERS = ['ctrl', 'shift', 'alt', 'meta', 'cmd'];
|
|
19348
19362
|
|
|
19349
|
-
|
|
19350
|
-
|
|
19363
|
+
// Use the shared combination splitting logic
|
|
19364
|
+
const parts = splitKeyCombination(group.toLowerCase());
|
|
19351
19365
|
|
|
19352
|
-
|
|
19353
|
-
|
|
19354
|
-
return {
|
|
19355
|
-
modifiers: Object.fromEntries(MODIFIERS.map(m => [m, false])),
|
|
19356
|
-
actualKey: undefined
|
|
19357
|
-
};
|
|
19358
|
-
}
|
|
19359
|
-
const modifiers = Object.fromEntries(MODIFIERS.map(m => [m, false]));
|
|
19360
|
-
let actualKey;
|
|
19361
|
-
for (const part of parts) {
|
|
19362
|
-
if (MODIFIERS.includes(part)) {
|
|
19363
|
-
modifiers[part] = true;
|
|
19364
|
-
} else {
|
|
19365
|
-
actualKey = part;
|
|
19366
|
-
}
|
|
19367
|
-
}
|
|
19366
|
+
// If the combination is invalid, return empty result
|
|
19367
|
+
if (parts.length === 0) {
|
|
19368
19368
|
return {
|
|
19369
|
-
modifiers,
|
|
19370
|
-
actualKey
|
|
19369
|
+
modifiers: Object.fromEntries(MODIFIERS.map(m => [m, false])),
|
|
19370
|
+
actualKey: undefined
|
|
19371
19371
|
};
|
|
19372
19372
|
}
|
|
19373
|
-
|
|
19374
|
-
|
|
19375
|
-
|
|
19376
|
-
|
|
19377
|
-
|
|
19378
|
-
|
|
19379
|
-
|
|
19380
|
-
|
|
19373
|
+
const modifiers = Object.fromEntries(MODIFIERS.map(m => [m, false]));
|
|
19374
|
+
let actualKey;
|
|
19375
|
+
for (const part of parts) {
|
|
19376
|
+
if (MODIFIERS.includes(part)) {
|
|
19377
|
+
modifiers[part] = true;
|
|
19378
|
+
} else {
|
|
19379
|
+
actualKey = part;
|
|
19380
|
+
}
|
|
19381
19381
|
}
|
|
19382
|
-
return
|
|
19382
|
+
return {
|
|
19383
|
+
modifiers,
|
|
19384
|
+
actualKey
|
|
19385
|
+
};
|
|
19383
19386
|
}
|
|
19384
19387
|
|
|
19385
19388
|
// Utilities
|
|
@@ -24000,11 +24003,15 @@ function useCalendar(props) {
|
|
|
24000
24003
|
return week.length ? adapter.getWeek(week[0], props.firstDayOfWeek, props.firstDayOfYear) : null;
|
|
24001
24004
|
});
|
|
24002
24005
|
});
|
|
24006
|
+
const {
|
|
24007
|
+
minDate,
|
|
24008
|
+
maxDate
|
|
24009
|
+
} = useCalendarRange(props);
|
|
24003
24010
|
function isDisabled(value) {
|
|
24004
24011
|
if (props.disabled) return true;
|
|
24005
24012
|
const date = adapter.date(value);
|
|
24006
|
-
if (
|
|
24007
|
-
if (
|
|
24013
|
+
if (minDate.value && adapter.isBefore(adapter.endOfDay(date), minDate.value)) return true;
|
|
24014
|
+
if (maxDate.value && adapter.isAfter(date, maxDate.value)) return true;
|
|
24008
24015
|
if (Array.isArray(props.allowedDates) && props.allowedDates.length > 0) {
|
|
24009
24016
|
return !props.allowedDates.some(d => adapter.isSameDay(adapter.date(d), date));
|
|
24010
24017
|
}
|
|
@@ -24024,6 +24031,37 @@ function useCalendar(props) {
|
|
|
24024
24031
|
weekNumbers
|
|
24025
24032
|
};
|
|
24026
24033
|
}
|
|
24034
|
+
function useCalendarRange(props) {
|
|
24035
|
+
const adapter = useDate();
|
|
24036
|
+
const minDate = computed(() => {
|
|
24037
|
+
if (!props.min) return null;
|
|
24038
|
+
const date = adapter.date(props.min);
|
|
24039
|
+
return adapter.isValid(date) ? date : null;
|
|
24040
|
+
});
|
|
24041
|
+
const maxDate = computed(() => {
|
|
24042
|
+
if (!props.max) return null;
|
|
24043
|
+
const date = adapter.date(props.max);
|
|
24044
|
+
return adapter.isValid(date) ? date : null;
|
|
24045
|
+
});
|
|
24046
|
+
function clampDate(date) {
|
|
24047
|
+
if (minDate.value && adapter.isBefore(date, minDate.value)) {
|
|
24048
|
+
return minDate.value;
|
|
24049
|
+
}
|
|
24050
|
+
if (maxDate.value && adapter.isAfter(date, maxDate.value)) {
|
|
24051
|
+
return maxDate.value;
|
|
24052
|
+
}
|
|
24053
|
+
return date;
|
|
24054
|
+
}
|
|
24055
|
+
function isInAllowedRange(date) {
|
|
24056
|
+
return (!minDate.value || adapter.isAfter(date, minDate.value)) && (!maxDate.value || adapter.isBefore(date, maxDate.value));
|
|
24057
|
+
}
|
|
24058
|
+
return {
|
|
24059
|
+
minDate,
|
|
24060
|
+
maxDate,
|
|
24061
|
+
clampDate,
|
|
24062
|
+
isInAllowedRange
|
|
24063
|
+
};
|
|
24064
|
+
}
|
|
24027
24065
|
|
|
24028
24066
|
// Types
|
|
24029
24067
|
|
|
@@ -24464,24 +24502,14 @@ const VDatePicker = genericComponent()({
|
|
|
24464
24502
|
const viewMode = useProxiedModel(props, 'viewMode');
|
|
24465
24503
|
// const inputMode = useProxiedModel(props, 'inputMode')
|
|
24466
24504
|
|
|
24467
|
-
const
|
|
24468
|
-
|
|
24469
|
-
|
|
24470
|
-
|
|
24471
|
-
|
|
24472
|
-
const date = adapter.date(props.max);
|
|
24473
|
-
return props.max && adapter.isValid(date) ? date : null;
|
|
24474
|
-
});
|
|
24505
|
+
const {
|
|
24506
|
+
minDate,
|
|
24507
|
+
maxDate,
|
|
24508
|
+
clampDate
|
|
24509
|
+
} = useCalendarRange(props);
|
|
24475
24510
|
const internal = computed(() => {
|
|
24476
24511
|
const today = adapter.date();
|
|
24477
|
-
|
|
24478
|
-
if (model.value?.[0]) {
|
|
24479
|
-
value = adapter.date(model.value[0]);
|
|
24480
|
-
} else if (minDate.value && adapter.isBefore(today, minDate.value)) {
|
|
24481
|
-
value = minDate.value;
|
|
24482
|
-
} else if (maxDate.value && adapter.isAfter(today, maxDate.value)) {
|
|
24483
|
-
value = maxDate.value;
|
|
24484
|
-
}
|
|
24512
|
+
const value = model.value?.[0] ? adapter.date(model.value[0]) : clampDate(today);
|
|
24485
24513
|
return value && adapter.isValid(value) ? value : today;
|
|
24486
24514
|
});
|
|
24487
24515
|
const headerColor = toRef(() => props.headerColor ?? props.color);
|
|
@@ -30268,14 +30296,24 @@ const VTextarea = genericComponent()({
|
|
|
30268
30296
|
}
|
|
30269
30297
|
function onInput(e) {
|
|
30270
30298
|
const el = e.target;
|
|
30271
|
-
|
|
30272
|
-
|
|
30273
|
-
|
|
30274
|
-
nextTick(() => {
|
|
30275
|
-
el.selectionStart = caretPosition[0];
|
|
30276
|
-
el.selectionEnd = caretPosition[1];
|
|
30277
|
-
});
|
|
30299
|
+
if (!props.modelModifiers?.trim) {
|
|
30300
|
+
model.value = el.value;
|
|
30301
|
+
return;
|
|
30278
30302
|
}
|
|
30303
|
+
const value = el.value;
|
|
30304
|
+
const start = el.selectionStart;
|
|
30305
|
+
const end = el.selectionEnd;
|
|
30306
|
+
model.value = value;
|
|
30307
|
+
nextTick(() => {
|
|
30308
|
+
let offset = 0;
|
|
30309
|
+
if (value.trimStart().length === el.value.length) {
|
|
30310
|
+
// #22307 - Whitespace has been removed from the
|
|
30311
|
+
// start, offset the caret position to compensate
|
|
30312
|
+
offset = value.length - el.value.length;
|
|
30313
|
+
}
|
|
30314
|
+
if (start != null) el.selectionStart = start - offset;
|
|
30315
|
+
if (end != null) el.selectionEnd = end - offset;
|
|
30316
|
+
});
|
|
30279
30317
|
}
|
|
30280
30318
|
const sizerRef = ref();
|
|
30281
30319
|
const rows = ref(Number(props.rows));
|
|
@@ -32514,7 +32552,7 @@ function createVuetify$1() {
|
|
|
32514
32552
|
};
|
|
32515
32553
|
});
|
|
32516
32554
|
}
|
|
32517
|
-
const version$1 = "3.10.
|
|
32555
|
+
const version$1 = "3.10.10";
|
|
32518
32556
|
createVuetify$1.version = version$1;
|
|
32519
32557
|
|
|
32520
32558
|
// Vue's inject() can only be used in setup
|
|
@@ -32539,7 +32577,7 @@ const createVuetify = function () {
|
|
|
32539
32577
|
...options
|
|
32540
32578
|
});
|
|
32541
32579
|
};
|
|
32542
|
-
const version = "3.10.
|
|
32580
|
+
const version = "3.10.10";
|
|
32543
32581
|
createVuetify.version = version;
|
|
32544
32582
|
|
|
32545
32583
|
export { index as blueprints, components, createVuetify, directives, useDate, useDefaults, useDisplay, useGoTo, useHotkey, useLayout, useLocale, useMask, useRtl, useTheme, version };
|