vuetify 3.10.9 → 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 +3507 -3507
- package/dist/json/importMap-labs.json +22 -22
- package/dist/json/importMap.json +170 -170
- package/dist/json/web-types.json +6186 -6186
- package/dist/vuetify-labs.cjs +201 -213
- package/dist/vuetify-labs.css +5293 -5301
- package/dist/vuetify-labs.d.ts +79 -79
- package/dist/vuetify-labs.esm.js +201 -213
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +201 -213
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.cjs +133 -96
- package/dist/vuetify.cjs.map +1 -1
- package/dist/vuetify.css +3094 -3090
- package/dist/vuetify.d.ts +63 -63
- package/dist/vuetify.esm.js +133 -96
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +133 -96
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +332 -328
- 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.sass +1 -1
- 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/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 +63 -63
- 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/package.json +1 -1
package/dist/vuetify.d.ts
CHANGED
|
@@ -105773,38 +105773,39 @@ declare module 'vue' {
|
|
|
105773
105773
|
VAppBar: VAppBar
|
|
105774
105774
|
VAppBarNavIcon: VAppBarNavIcon
|
|
105775
105775
|
VAppBarTitle: VAppBarTitle
|
|
105776
|
+
VApp: VApp
|
|
105777
|
+
VBadge: VBadge
|
|
105778
|
+
VBottomSheet: VBottomSheet
|
|
105779
|
+
VAutocomplete: VAutocomplete
|
|
105776
105780
|
VAlert: VAlert
|
|
105777
105781
|
VAlertTitle: VAlertTitle
|
|
105778
|
-
VAvatar: VAvatar
|
|
105779
|
-
VAutocomplete: VAutocomplete
|
|
105780
|
-
VBadge: VBadge
|
|
105781
|
-
VApp: VApp
|
|
105782
|
-
VBanner: VBanner
|
|
105783
|
-
VBannerActions: VBannerActions
|
|
105784
|
-
VBannerText: VBannerText
|
|
105785
105782
|
VBottomNavigation: VBottomNavigation
|
|
105786
|
-
|
|
105787
|
-
VBtn: VBtn
|
|
105783
|
+
VAvatar: VAvatar
|
|
105788
105784
|
VBreadcrumbs: VBreadcrumbs
|
|
105789
105785
|
VBreadcrumbsItem: VBreadcrumbsItem
|
|
105790
105786
|
VBreadcrumbsDivider: VBreadcrumbsDivider
|
|
105791
|
-
VBtnToggle: VBtnToggle
|
|
105792
105787
|
VBtnGroup: VBtnGroup
|
|
105788
|
+
VBanner: VBanner
|
|
105789
|
+
VBannerActions: VBannerActions
|
|
105790
|
+
VBannerText: VBannerText
|
|
105791
|
+
VBtn: VBtn
|
|
105793
105792
|
VCode: VCode
|
|
105794
|
-
|
|
105795
|
-
VCheckboxBtn: VCheckboxBtn
|
|
105796
|
-
VChip: VChip
|
|
105797
|
-
VCarousel: VCarousel
|
|
105798
|
-
VCarouselItem: VCarouselItem
|
|
105799
|
-
VColorPicker: VColorPicker
|
|
105793
|
+
VBtnToggle: VBtnToggle
|
|
105800
105794
|
VCard: VCard
|
|
105801
105795
|
VCardActions: VCardActions
|
|
105802
105796
|
VCardItem: VCardItem
|
|
105803
105797
|
VCardSubtitle: VCardSubtitle
|
|
105804
105798
|
VCardText: VCardText
|
|
105805
105799
|
VCardTitle: VCardTitle
|
|
105806
|
-
|
|
105800
|
+
VCarousel: VCarousel
|
|
105801
|
+
VCarouselItem: VCarouselItem
|
|
105802
|
+
VChip: VChip
|
|
105807
105803
|
VChipGroup: VChipGroup
|
|
105804
|
+
VCheckbox: VCheckbox
|
|
105805
|
+
VCheckboxBtn: VCheckboxBtn
|
|
105806
|
+
VCombobox: VCombobox
|
|
105807
|
+
VFab: VFab
|
|
105808
|
+
VCounter: VCounter
|
|
105808
105809
|
VDataTable: VDataTable
|
|
105809
105810
|
VDataTableHeaders: VDataTableHeaders
|
|
105810
105811
|
VDataTableFooter: VDataTableFooter
|
|
@@ -105812,38 +105813,41 @@ declare module 'vue' {
|
|
|
105812
105813
|
VDataTableRow: VDataTableRow
|
|
105813
105814
|
VDataTableVirtual: VDataTableVirtual
|
|
105814
105815
|
VDataTableServer: VDataTableServer
|
|
105815
|
-
|
|
105816
|
+
VColorPicker: VColorPicker
|
|
105817
|
+
VDialog: VDialog
|
|
105816
105818
|
VDivider: VDivider
|
|
105819
|
+
VFooter: VFooter
|
|
105820
|
+
VExpansionPanels: VExpansionPanels
|
|
105821
|
+
VExpansionPanel: VExpansionPanel
|
|
105822
|
+
VExpansionPanelText: VExpansionPanelText
|
|
105823
|
+
VExpansionPanelTitle: VExpansionPanelTitle
|
|
105817
105824
|
VDatePicker: VDatePicker
|
|
105818
105825
|
VDatePickerControls: VDatePickerControls
|
|
105819
105826
|
VDatePickerHeader: VDatePickerHeader
|
|
105820
105827
|
VDatePickerMonth: VDatePickerMonth
|
|
105821
105828
|
VDatePickerMonths: VDatePickerMonths
|
|
105822
105829
|
VDatePickerYears: VDatePickerYears
|
|
105823
|
-
VExpansionPanels: VExpansionPanels
|
|
105824
|
-
VExpansionPanel: VExpansionPanel
|
|
105825
|
-
VExpansionPanelText: VExpansionPanelText
|
|
105826
|
-
VExpansionPanelTitle: VExpansionPanelTitle
|
|
105827
|
-
VEmptyState: VEmptyState
|
|
105828
|
-
VFileInput: VFileInput
|
|
105829
|
-
VFab: VFab
|
|
105830
105830
|
VField: VField
|
|
105831
105831
|
VFieldLabel: VFieldLabel
|
|
105832
|
+
VEmptyState: VEmptyState
|
|
105833
|
+
VFileInput: VFileInput
|
|
105834
|
+
VImg: VImg
|
|
105832
105835
|
VIcon: VIcon
|
|
105833
105836
|
VComponentIcon: VComponentIcon
|
|
105834
105837
|
VSvgIcon: VSvgIcon
|
|
105835
105838
|
VLigatureIcon: VLigatureIcon
|
|
105836
105839
|
VClassIcon: VClassIcon
|
|
105837
|
-
|
|
105840
|
+
VItemGroup: VItemGroup
|
|
105841
|
+
VItem: VItem
|
|
105842
|
+
VKbd: VKbd
|
|
105838
105843
|
VLabel: VLabel
|
|
105839
|
-
VImg: VImg
|
|
105840
105844
|
VInfiniteScroll: VInfiniteScroll
|
|
105841
|
-
VInput: VInput
|
|
105842
|
-
VKbd: VKbd
|
|
105843
105845
|
VMain: VMain
|
|
105844
|
-
|
|
105845
|
-
|
|
105846
|
-
|
|
105846
|
+
VInput: VInput
|
|
105847
|
+
VMenu: VMenu
|
|
105848
|
+
VNavigationDrawer: VNavigationDrawer
|
|
105849
|
+
VOverlay: VOverlay
|
|
105850
|
+
VMessages: VMessages
|
|
105847
105851
|
VList: VList
|
|
105848
105852
|
VListGroup: VListGroup
|
|
105849
105853
|
VListImg: VListImg
|
|
@@ -105853,53 +105857,49 @@ declare module 'vue' {
|
|
|
105853
105857
|
VListItemSubtitle: VListItemSubtitle
|
|
105854
105858
|
VListItemTitle: VListItemTitle
|
|
105855
105859
|
VListSubheader: VListSubheader
|
|
105856
|
-
VMenu: VMenu
|
|
105857
|
-
VMessages: VMessages
|
|
105858
|
-
VNavigationDrawer: VNavigationDrawer
|
|
105859
|
-
VNumberInput: VNumberInput
|
|
105860
105860
|
VOtpInput: VOtpInput
|
|
105861
|
+
VNumberInput: VNumberInput
|
|
105861
105862
|
VPagination: VPagination
|
|
105862
|
-
VRadioGroup: VRadioGroup
|
|
105863
|
-
VOverlay: VOverlay
|
|
105864
105863
|
VProgressCircular: VProgressCircular
|
|
105864
|
+
VRadioGroup: VRadioGroup
|
|
105865
105865
|
VProgressLinear: VProgressLinear
|
|
105866
|
-
VSelectionControlGroup: VSelectionControlGroup
|
|
105867
|
-
VRating: VRating
|
|
105868
105866
|
VSelect: VSelect
|
|
105867
|
+
VRating: VRating
|
|
105869
105868
|
VSelectionControl: VSelectionControl
|
|
105870
|
-
VSkeletonLoader: VSkeletonLoader
|
|
105871
|
-
VSheet: VSheet
|
|
105872
105869
|
VSlideGroup: VSlideGroup
|
|
105873
105870
|
VSlideGroupItem: VSlideGroupItem
|
|
105871
|
+
VSelectionControlGroup: VSelectionControlGroup
|
|
105872
|
+
VSheet: VSheet
|
|
105873
|
+
VSlider: VSlider
|
|
105874
|
+
VSkeletonLoader: VSkeletonLoader
|
|
105875
|
+
VSnackbar: VSnackbar
|
|
105874
105876
|
VStepper: VStepper
|
|
105875
105877
|
VStepperActions: VStepperActions
|
|
105876
105878
|
VStepperHeader: VStepperHeader
|
|
105877
105879
|
VStepperItem: VStepperItem
|
|
105878
105880
|
VStepperWindow: VStepperWindow
|
|
105879
105881
|
VStepperWindowItem: VStepperWindowItem
|
|
105880
|
-
VSnackbar: VSnackbar
|
|
105881
|
-
VSlider: VSlider
|
|
105882
|
-
VSwitch: VSwitch
|
|
105883
105882
|
VTab: VTab
|
|
105884
105883
|
VTabs: VTabs
|
|
105885
105884
|
VTabsWindow: VTabsWindow
|
|
105886
105885
|
VTabsWindowItem: VTabsWindowItem
|
|
105886
|
+
VSwitch: VSwitch
|
|
105887
105887
|
VSystemBar: VSystemBar
|
|
105888
|
-
VTextField: VTextField
|
|
105889
|
-
VTextarea: VTextarea
|
|
105890
105888
|
VTable: VTable
|
|
105891
|
-
|
|
105892
|
-
VTimelineItem: VTimelineItem
|
|
105893
|
-
VToolbar: VToolbar
|
|
105894
|
-
VToolbarTitle: VToolbarTitle
|
|
105895
|
-
VToolbarItems: VToolbarItems
|
|
105889
|
+
VTextarea: VTextarea
|
|
105896
105890
|
VTimePicker: VTimePicker
|
|
105897
105891
|
VTimePickerClock: VTimePickerClock
|
|
105898
105892
|
VTimePickerControls: VTimePickerControls
|
|
105893
|
+
VTextField: VTextField
|
|
105894
|
+
VToolbar: VToolbar
|
|
105895
|
+
VToolbarTitle: VToolbarTitle
|
|
105896
|
+
VToolbarItems: VToolbarItems
|
|
105897
|
+
VTimeline: VTimeline
|
|
105898
|
+
VTimelineItem: VTimelineItem
|
|
105899
|
+
VTooltip: VTooltip
|
|
105899
105900
|
VTreeview: VTreeview
|
|
105900
105901
|
VTreeviewItem: VTreeviewItem
|
|
105901
105902
|
VTreeviewGroup: VTreeviewGroup
|
|
105902
|
-
VTooltip: VTooltip
|
|
105903
105903
|
VWindow: VWindow
|
|
105904
105904
|
VWindowItem: VWindowItem
|
|
105905
105905
|
VConfirmEdit: VConfirmEdit
|
|
@@ -105910,18 +105910,18 @@ declare module 'vue' {
|
|
|
105910
105910
|
VCol: VCol
|
|
105911
105911
|
VRow: VRow
|
|
105912
105912
|
VSpacer: VSpacer
|
|
105913
|
-
VLazy: VLazy
|
|
105914
|
-
VHover: VHover
|
|
105915
|
-
VLocaleProvider: VLocaleProvider
|
|
105916
105913
|
VLayout: VLayout
|
|
105917
105914
|
VLayoutItem: VLayoutItem
|
|
105915
|
+
VHover: VHover
|
|
105916
|
+
VLazy: VLazy
|
|
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
105926
|
VThemeProvider: VThemeProvider
|
|
105927
105927
|
VVirtualScroll: VVirtualScroll
|
|
@@ -105942,23 +105942,23 @@ declare module 'vue' {
|
|
|
105942
105942
|
VExpandTransition: VExpandTransition
|
|
105943
105943
|
VExpandXTransition: VExpandXTransition
|
|
105944
105944
|
VDialogTransition: VDialogTransition
|
|
105945
|
+
VCalendar: VCalendar
|
|
105946
|
+
VIconBtn: VIconBtn
|
|
105945
105947
|
VFileUpload: VFileUpload
|
|
105946
105948
|
VFileUploadItem: VFileUploadItem
|
|
105949
|
+
VStepperVertical: VStepperVertical
|
|
105950
|
+
VStepperVerticalItem: VStepperVerticalItem
|
|
105951
|
+
VStepperVerticalActions: VStepperVerticalActions
|
|
105947
105952
|
VColorInput: VColorInput
|
|
105948
|
-
|
|
105949
|
-
VCalendar: VCalendar
|
|
105953
|
+
VHotkey: VHotkey
|
|
105950
105954
|
VPicker: VPicker
|
|
105951
105955
|
VPickerTitle: VPickerTitle
|
|
105952
105956
|
VPie: VPie
|
|
105953
105957
|
VPieSegment: VPieSegment
|
|
105954
105958
|
VPieTooltip: VPieTooltip
|
|
105955
|
-
VStepperVertical: VStepperVertical
|
|
105956
|
-
VStepperVerticalItem: VStepperVerticalItem
|
|
105957
|
-
VStepperVerticalActions: VStepperVerticalActions
|
|
105958
105959
|
VVideo: VVideo
|
|
105959
105960
|
VVideoControls: VVideoControls
|
|
105960
105961
|
VVideoVolume: VVideoVolume
|
|
105961
|
-
VHotkey: VHotkey
|
|
105962
105962
|
VDateInput: VDateInput
|
|
105963
105963
|
VMaskInput: VMaskInput
|
|
105964
105964
|
VPullToRefresh: VPullToRefresh
|
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
|
|
|
@@ -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
|
});
|
|
@@ -13080,14 +13076,24 @@ const VTextField = genericComponent()({
|
|
|
13080
13076
|
}
|
|
13081
13077
|
function onInput(e) {
|
|
13082
13078
|
const el = e.target;
|
|
13083
|
-
|
|
13084
|
-
|
|
13085
|
-
|
|
13086
|
-
nextTick(() => {
|
|
13087
|
-
el.selectionStart = caretPosition[0];
|
|
13088
|
-
el.selectionEnd = caretPosition[1];
|
|
13089
|
-
});
|
|
13079
|
+
if (!(props.modelModifiers?.trim && ['text', 'search', 'password', 'tel', 'url'].includes(props.type))) {
|
|
13080
|
+
model.value = el.value;
|
|
13081
|
+
return;
|
|
13090
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
|
+
});
|
|
13091
13097
|
}
|
|
13092
13098
|
useRender(() => {
|
|
13093
13099
|
const hasCounter = !!(slots.counter || props.counter !== false && props.counter != null);
|
|
@@ -15814,6 +15820,12 @@ const VCard = genericComponent()({
|
|
|
15814
15820
|
roundedClasses
|
|
15815
15821
|
} = useRounded(props);
|
|
15816
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
|
+
});
|
|
15817
15829
|
useRender(() => {
|
|
15818
15830
|
const isLink = props.link !== false && link.isLink.value;
|
|
15819
15831
|
const isClickable = !props.disabled && props.link !== false && (props.link || link.isClickable.value);
|
|
@@ -15856,7 +15868,7 @@ const VCard = genericComponent()({
|
|
|
15856
15868
|
}, slots.image)]), createVNode(LoaderSlot, {
|
|
15857
15869
|
"name": "v-card",
|
|
15858
15870
|
"active": !!props.loading,
|
|
15859
|
-
"color":
|
|
15871
|
+
"color": loadingColor.value
|
|
15860
15872
|
}, {
|
|
15861
15873
|
default: slots.loader
|
|
15862
15874
|
}), hasCardItem && createVNode(VCardItem, {
|
|
@@ -19279,11 +19291,6 @@ function useHotkey(keys, callback) {
|
|
|
19279
19291
|
let keyGroups;
|
|
19280
19292
|
let isSequence = false;
|
|
19281
19293
|
let groupIndex = 0;
|
|
19282
|
-
function clearTimer() {
|
|
19283
|
-
if (!timeout) return;
|
|
19284
|
-
clearTimeout(timeout);
|
|
19285
|
-
timeout = 0;
|
|
19286
|
-
}
|
|
19287
19294
|
function isInputFocused() {
|
|
19288
19295
|
if (toValue(inputs)) return false;
|
|
19289
19296
|
const activeElement = document.activeElement;
|
|
@@ -19291,12 +19298,12 @@ function useHotkey(keys, callback) {
|
|
|
19291
19298
|
}
|
|
19292
19299
|
function resetSequence() {
|
|
19293
19300
|
groupIndex = 0;
|
|
19294
|
-
|
|
19301
|
+
clearTimeout(timeout);
|
|
19295
19302
|
}
|
|
19296
19303
|
function handler(e) {
|
|
19297
19304
|
const group = keyGroups[groupIndex];
|
|
19298
19305
|
if (!group || isInputFocused()) return;
|
|
19299
|
-
if (!matchesKeyGroup(e, group)) {
|
|
19306
|
+
if (!matchesKeyGroup(e, group, isMac)) {
|
|
19300
19307
|
if (isSequence) resetSequence();
|
|
19301
19308
|
return;
|
|
19302
19309
|
}
|
|
@@ -19305,7 +19312,7 @@ function useHotkey(keys, callback) {
|
|
|
19305
19312
|
callback(e);
|
|
19306
19313
|
return;
|
|
19307
19314
|
}
|
|
19308
|
-
|
|
19315
|
+
clearTimeout(timeout);
|
|
19309
19316
|
groupIndex++;
|
|
19310
19317
|
if (groupIndex === keyGroups.length) {
|
|
19311
19318
|
callback(e);
|
|
@@ -19316,12 +19323,12 @@ function useHotkey(keys, callback) {
|
|
|
19316
19323
|
}
|
|
19317
19324
|
function cleanup() {
|
|
19318
19325
|
window.removeEventListener(toValue(event), handler);
|
|
19319
|
-
|
|
19326
|
+
clearTimeout(timeout);
|
|
19320
19327
|
}
|
|
19321
|
-
watch(() => toValue(keys),
|
|
19328
|
+
watch(() => toValue(keys), newKeys => {
|
|
19322
19329
|
cleanup();
|
|
19323
|
-
if (
|
|
19324
|
-
const groups = splitKeySequence(
|
|
19330
|
+
if (newKeys) {
|
|
19331
|
+
const groups = splitKeySequence(newKeys.toLowerCase());
|
|
19325
19332
|
isSequence = groups.length > 1;
|
|
19326
19333
|
keyGroups = groups;
|
|
19327
19334
|
resetSequence();
|
|
@@ -19332,55 +19339,50 @@ function useHotkey(keys, callback) {
|
|
|
19332
19339
|
});
|
|
19333
19340
|
|
|
19334
19341
|
// Watch for changes in the event type to re-register the listener
|
|
19335
|
-
watch(() => toValue(event),
|
|
19342
|
+
watch(() => toValue(event), (newEvent, oldEvent) => {
|
|
19336
19343
|
if (oldEvent && keyGroups && keyGroups.length > 0) {
|
|
19337
19344
|
window.removeEventListener(oldEvent, handler);
|
|
19338
19345
|
window.addEventListener(newEvent, handler);
|
|
19339
19346
|
}
|
|
19340
19347
|
});
|
|
19341
|
-
|
|
19342
|
-
|
|
19343
|
-
|
|
19344
|
-
|
|
19345
|
-
|
|
19346
|
-
|
|
19347
|
-
|
|
19348
|
-
|
|
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'];
|
|
19349
19362
|
|
|
19350
|
-
|
|
19351
|
-
|
|
19363
|
+
// Use the shared combination splitting logic
|
|
19364
|
+
const parts = splitKeyCombination(group.toLowerCase());
|
|
19352
19365
|
|
|
19353
|
-
|
|
19354
|
-
|
|
19355
|
-
return {
|
|
19356
|
-
modifiers: Object.fromEntries(MODIFIERS.map(m => [m, false])),
|
|
19357
|
-
actualKey: undefined
|
|
19358
|
-
};
|
|
19359
|
-
}
|
|
19360
|
-
const modifiers = Object.fromEntries(MODIFIERS.map(m => [m, false]));
|
|
19361
|
-
let actualKey;
|
|
19362
|
-
for (const part of parts) {
|
|
19363
|
-
if (MODIFIERS.includes(part)) {
|
|
19364
|
-
modifiers[part] = true;
|
|
19365
|
-
} else {
|
|
19366
|
-
actualKey = part;
|
|
19367
|
-
}
|
|
19368
|
-
}
|
|
19366
|
+
// If the combination is invalid, return empty result
|
|
19367
|
+
if (parts.length === 0) {
|
|
19369
19368
|
return {
|
|
19370
|
-
modifiers,
|
|
19371
|
-
actualKey
|
|
19369
|
+
modifiers: Object.fromEntries(MODIFIERS.map(m => [m, false])),
|
|
19370
|
+
actualKey: undefined
|
|
19372
19371
|
};
|
|
19373
19372
|
}
|
|
19374
|
-
|
|
19375
|
-
|
|
19376
|
-
|
|
19377
|
-
|
|
19378
|
-
|
|
19379
|
-
|
|
19380
|
-
|
|
19381
|
-
|
|
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
|
+
}
|
|
19382
19381
|
}
|
|
19383
|
-
return
|
|
19382
|
+
return {
|
|
19383
|
+
modifiers,
|
|
19384
|
+
actualKey
|
|
19385
|
+
};
|
|
19384
19386
|
}
|
|
19385
19387
|
|
|
19386
19388
|
// Utilities
|
|
@@ -24001,11 +24003,15 @@ function useCalendar(props) {
|
|
|
24001
24003
|
return week.length ? adapter.getWeek(week[0], props.firstDayOfWeek, props.firstDayOfYear) : null;
|
|
24002
24004
|
});
|
|
24003
24005
|
});
|
|
24006
|
+
const {
|
|
24007
|
+
minDate,
|
|
24008
|
+
maxDate
|
|
24009
|
+
} = useCalendarRange(props);
|
|
24004
24010
|
function isDisabled(value) {
|
|
24005
24011
|
if (props.disabled) return true;
|
|
24006
24012
|
const date = adapter.date(value);
|
|
24007
|
-
if (
|
|
24008
|
-
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;
|
|
24009
24015
|
if (Array.isArray(props.allowedDates) && props.allowedDates.length > 0) {
|
|
24010
24016
|
return !props.allowedDates.some(d => adapter.isSameDay(adapter.date(d), date));
|
|
24011
24017
|
}
|
|
@@ -24025,6 +24031,37 @@ function useCalendar(props) {
|
|
|
24025
24031
|
weekNumbers
|
|
24026
24032
|
};
|
|
24027
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
|
+
}
|
|
24028
24065
|
|
|
24029
24066
|
// Types
|
|
24030
24067
|
|
|
@@ -24465,24 +24502,14 @@ const VDatePicker = genericComponent()({
|
|
|
24465
24502
|
const viewMode = useProxiedModel(props, 'viewMode');
|
|
24466
24503
|
// const inputMode = useProxiedModel(props, 'inputMode')
|
|
24467
24504
|
|
|
24468
|
-
const
|
|
24469
|
-
|
|
24470
|
-
|
|
24471
|
-
|
|
24472
|
-
|
|
24473
|
-
const date = adapter.date(props.max);
|
|
24474
|
-
return props.max && adapter.isValid(date) ? date : null;
|
|
24475
|
-
});
|
|
24505
|
+
const {
|
|
24506
|
+
minDate,
|
|
24507
|
+
maxDate,
|
|
24508
|
+
clampDate
|
|
24509
|
+
} = useCalendarRange(props);
|
|
24476
24510
|
const internal = computed(() => {
|
|
24477
24511
|
const today = adapter.date();
|
|
24478
|
-
|
|
24479
|
-
if (model.value?.[0]) {
|
|
24480
|
-
value = adapter.date(model.value[0]);
|
|
24481
|
-
} else if (minDate.value && adapter.isBefore(today, minDate.value)) {
|
|
24482
|
-
value = minDate.value;
|
|
24483
|
-
} else if (maxDate.value && adapter.isAfter(today, maxDate.value)) {
|
|
24484
|
-
value = maxDate.value;
|
|
24485
|
-
}
|
|
24512
|
+
const value = model.value?.[0] ? adapter.date(model.value[0]) : clampDate(today);
|
|
24486
24513
|
return value && adapter.isValid(value) ? value : today;
|
|
24487
24514
|
});
|
|
24488
24515
|
const headerColor = toRef(() => props.headerColor ?? props.color);
|
|
@@ -30269,14 +30296,24 @@ const VTextarea = genericComponent()({
|
|
|
30269
30296
|
}
|
|
30270
30297
|
function onInput(e) {
|
|
30271
30298
|
const el = e.target;
|
|
30272
|
-
|
|
30273
|
-
|
|
30274
|
-
|
|
30275
|
-
nextTick(() => {
|
|
30276
|
-
el.selectionStart = caretPosition[0];
|
|
30277
|
-
el.selectionEnd = caretPosition[1];
|
|
30278
|
-
});
|
|
30299
|
+
if (!props.modelModifiers?.trim) {
|
|
30300
|
+
model.value = el.value;
|
|
30301
|
+
return;
|
|
30279
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
|
+
});
|
|
30280
30317
|
}
|
|
30281
30318
|
const sizerRef = ref();
|
|
30282
30319
|
const rows = ref(Number(props.rows));
|
|
@@ -32515,7 +32552,7 @@ function createVuetify$1() {
|
|
|
32515
32552
|
};
|
|
32516
32553
|
});
|
|
32517
32554
|
}
|
|
32518
|
-
const version$1 = "3.10.
|
|
32555
|
+
const version$1 = "3.10.10";
|
|
32519
32556
|
createVuetify$1.version = version$1;
|
|
32520
32557
|
|
|
32521
32558
|
// Vue's inject() can only be used in setup
|
|
@@ -32540,7 +32577,7 @@ const createVuetify = function () {
|
|
|
32540
32577
|
...options
|
|
32541
32578
|
});
|
|
32542
32579
|
};
|
|
32543
|
-
const version = "3.10.
|
|
32580
|
+
const version = "3.10.10";
|
|
32544
32581
|
createVuetify.version = version;
|
|
32545
32582
|
|
|
32546
32583
|
export { index as blueprints, components, createVuetify, directives, useDate, useDefaults, useDisplay, useGoTo, useHotkey, useLayout, useLocale, useMask, useRtl, useTheme, version };
|