vuetify 3.6.3 → 3.6.4
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 +197 -57
- package/dist/json/importMap-labs.json +8 -8
- package/dist/json/importMap.json +128 -128
- package/dist/json/tags.json +36 -1
- package/dist/json/web-types.json +527 -117
- package/dist/vuetify-labs.css +2640 -2342
- package/dist/vuetify-labs.d.ts +1891 -1542
- package/dist/vuetify-labs.esm.js +161 -152
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +160 -151
- package/dist/vuetify-labs.min.css +3 -3
- package/dist/vuetify.css +871 -577
- package/dist/vuetify.d.ts +1331 -1338
- package/dist/vuetify.esm.js +108 -77
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +107 -76
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +3 -3
- package/dist/vuetify.min.js +981 -977
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAlert/VAlert.css +3 -1
- package/lib/components/VAutocomplete/VAutocomplete.mjs +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VAutocomplete/index.d.mts +187 -158
- package/lib/components/VAvatar/VAvatar.css +3 -1
- package/lib/components/VBanner/index.d.mts +11 -11
- package/lib/components/VBottomSheet/index.d.mts +42 -42
- package/lib/components/VBtn/VBtn.css +3 -1
- package/lib/components/VCard/VCard.css +3 -1
- package/lib/components/VCarousel/index.d.mts +6 -6
- package/lib/components/VChip/VChip.css +3 -1
- package/lib/components/VChipGroup/index.d.mts +11 -11
- package/lib/components/VColorPicker/VColorPickerCanvas.mjs +1 -1
- package/lib/components/VColorPicker/VColorPickerCanvas.mjs.map +1 -1
- package/lib/components/VCombobox/index.d.mts +187 -158
- package/lib/components/VDataIterator/index.d.mts +1 -1
- package/lib/components/VDataTable/VDataTable.css +1 -1
- package/lib/components/VDataTable/VDataTable.sass +2 -1
- package/lib/components/VDataTable/VDataTableHeaders.mjs +1 -1
- package/lib/components/VDataTable/VDataTableHeaders.mjs.map +1 -1
- package/lib/components/VDataTable/VDataTableVirtual.mjs.map +1 -1
- package/lib/components/VDataTable/composables/select.mjs +2 -1
- package/lib/components/VDataTable/composables/select.mjs.map +1 -1
- package/lib/components/VDataTable/index.d.mts +76 -71
- package/lib/components/VDatePicker/VDatePickerYears.mjs +4 -4
- package/lib/components/VDatePicker/VDatePickerYears.mjs.map +1 -1
- package/lib/components/VDialog/index.d.mts +126 -126
- package/lib/components/VFileInput/VFileInput.mjs +1 -1
- package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
- package/lib/components/VFileInput/index.d.mts +9 -9
- package/lib/components/VImg/index.d.mts +6 -6
- package/lib/components/VInfiniteScroll/VInfiniteScroll.mjs +1 -1
- package/lib/components/VInfiniteScroll/VInfiniteScroll.mjs.map +1 -1
- package/lib/components/VList/VList.mjs.map +1 -1
- package/lib/components/VList/VListItem.css +3 -1
- package/lib/components/VList/VListItem.mjs +3 -2
- package/lib/components/VList/VListItem.mjs.map +1 -1
- package/lib/components/VList/index.d.mts +76 -52
- package/lib/components/VMenu/index.d.mts +126 -126
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +3 -1
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
- package/lib/components/VNavigationDrawer/index.d.mts +19 -13
- package/lib/components/VOverlay/VOverlay.mjs +2 -5
- package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
- package/lib/components/VOverlay/index.d.mts +42 -42
- package/lib/components/VOverlay/useActivator.mjs +5 -5
- package/lib/components/VOverlay/useActivator.mjs.map +1 -1
- package/lib/components/VResponsive/VResponsive.mjs +1 -1
- package/lib/components/VResponsive/VResponsive.mjs.map +1 -1
- package/lib/components/VResponsive/index.d.mts +6 -6
- package/lib/components/VSelect/index.d.mts +187 -158
- package/lib/components/VSheet/VSheet.css +1 -1
- package/lib/components/VSheet/_variables.scss +1 -1
- package/lib/components/VSlideGroup/VSlideGroup.mjs +25 -25
- package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
- package/lib/components/VSlideGroup/index.d.mts +11 -11
- package/lib/components/VSlider/VSliderThumb.css +5 -0
- package/lib/components/VSlider/VSliderThumb.sass +3 -0
- package/lib/components/VSlider/VSliderTrack.css +15 -0
- package/lib/components/VSlider/VSliderTrack.sass +9 -0
- package/lib/components/VSnackbar/VSnackbar.css +3 -1
- package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
- package/lib/components/VSnackbar/index.d.mts +126 -126
- package/lib/components/VSpeedDial/index.d.mts +42 -42
- package/lib/components/VStepper/VStepperWindow.mjs +2 -1
- package/lib/components/VStepper/VStepperWindow.mjs.map +1 -1
- package/lib/components/VStepper/VStepperWindowItem.mjs +2 -1
- package/lib/components/VStepper/VStepperWindowItem.mjs.map +1 -1
- package/lib/components/VTabs/VTabs.mjs +8 -3
- package/lib/components/VTabs/VTabs.mjs.map +1 -1
- package/lib/components/VTabs/VTabsWindow.mjs +2 -1
- package/lib/components/VTabs/VTabsWindow.mjs.map +1 -1
- package/lib/components/VTabs/index.d.mts +11 -11
- package/lib/components/VToolbar/VToolbar.css +5 -5
- package/lib/components/VToolbar/_variables.scss +3 -3
- package/lib/components/VTooltip/index.d.mts +126 -126
- package/lib/components/VVirtualScroll/VVirtualScrollItem.mjs.map +1 -1
- package/lib/components/index.d.mts +1291 -1298
- package/lib/composables/component.mjs +1 -1
- package/lib/composables/component.mjs.map +1 -1
- package/lib/composables/display.mjs +1 -1
- package/lib/composables/display.mjs.map +1 -1
- package/lib/composables/nested/activeStrategies.mjs +16 -10
- package/lib/composables/nested/activeStrategies.mjs.map +1 -1
- package/lib/composables/nested/nested.mjs +7 -5
- package/lib/composables/nested/nested.mjs.map +1 -1
- package/lib/composables/resizeObserver.mjs +5 -5
- package/lib/composables/resizeObserver.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/index.d.mts +40 -40
- package/lib/labs/VCalendar/VCalendar.css +5 -1
- package/lib/labs/VCalendar/VCalendar.sass +3 -2
- package/lib/labs/VCalendar/_variables.scss +8 -0
- package/lib/labs/VNumberInput/VNumberInput.mjs +57 -81
- package/lib/labs/VNumberInput/VNumberInput.mjs.map +1 -1
- package/lib/labs/VNumberInput/index.d.mts +402 -34
- package/lib/labs/VSnackbarQueue/index.d.mts +138 -138
- package/lib/labs/VTreeview/VTreeview.mjs.map +1 -1
- package/lib/labs/VTreeview/index.d.mts +88 -64
- package/lib/labs/components.d.mts +620 -235
- package/lib/styles/generic/_colors.scss +1 -0
- package/lib/styles/main.css +260 -0
- package/lib/styles/tools/_variant.sass +3 -1
- package/lib/util/helpers.mjs +16 -0
- package/lib/util/helpers.mjs.map +1 -1
- package/package.json +3 -3
package/lib/index.d.mts
CHANGED
|
@@ -493,27 +493,25 @@ declare module '@vue/runtime-core' {
|
|
|
493
493
|
}
|
|
494
494
|
|
|
495
495
|
export interface GlobalComponents {
|
|
496
|
+
VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
|
|
496
497
|
VApp: typeof import('vuetify/components')['VApp']
|
|
497
498
|
VAppBar: typeof import('vuetify/components')['VAppBar']
|
|
498
499
|
VAppBarNavIcon: typeof import('vuetify/components')['VAppBarNavIcon']
|
|
499
500
|
VAppBarTitle: typeof import('vuetify/components')['VAppBarTitle']
|
|
501
|
+
VAvatar: typeof import('vuetify/components')['VAvatar']
|
|
500
502
|
VAlert: typeof import('vuetify/components')['VAlert']
|
|
501
503
|
VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
|
|
502
|
-
VAvatar: typeof import('vuetify/components')['VAvatar']
|
|
503
|
-
VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
|
|
504
504
|
VBanner: typeof import('vuetify/components')['VBanner']
|
|
505
505
|
VBannerActions: typeof import('vuetify/components')['VBannerActions']
|
|
506
506
|
VBannerText: typeof import('vuetify/components')['VBannerText']
|
|
507
|
-
VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
|
|
508
507
|
VBadge: typeof import('vuetify/components')['VBadge']
|
|
508
|
+
VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
|
|
509
509
|
VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
|
|
510
|
+
VBtn: typeof import('vuetify/components')['VBtn']
|
|
511
|
+
VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
|
|
510
512
|
VBreadcrumbs: typeof import('vuetify/components')['VBreadcrumbs']
|
|
511
513
|
VBreadcrumbsItem: typeof import('vuetify/components')['VBreadcrumbsItem']
|
|
512
514
|
VBreadcrumbsDivider: typeof import('vuetify/components')['VBreadcrumbsDivider']
|
|
513
|
-
VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
|
|
514
|
-
VBtn: typeof import('vuetify/components')['VBtn']
|
|
515
|
-
VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
|
|
516
|
-
VChip: typeof import('vuetify/components')['VChip']
|
|
517
515
|
VCarousel: typeof import('vuetify/components')['VCarousel']
|
|
518
516
|
VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
|
|
519
517
|
VCard: typeof import('vuetify/components')['VCard']
|
|
@@ -522,19 +520,15 @@ declare module '@vue/runtime-core' {
|
|
|
522
520
|
VCardSubtitle: typeof import('vuetify/components')['VCardSubtitle']
|
|
523
521
|
VCardText: typeof import('vuetify/components')['VCardText']
|
|
524
522
|
VCardTitle: typeof import('vuetify/components')['VCardTitle']
|
|
523
|
+
VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
|
|
525
524
|
VCheckbox: typeof import('vuetify/components')['VCheckbox']
|
|
526
525
|
VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
|
|
527
|
-
|
|
526
|
+
VChip: typeof import('vuetify/components')['VChip']
|
|
528
527
|
VChipGroup: typeof import('vuetify/components')['VChipGroup']
|
|
529
|
-
|
|
528
|
+
VCode: typeof import('vuetify/components')['VCode']
|
|
530
529
|
VCombobox: typeof import('vuetify/components')['VCombobox']
|
|
531
530
|
VCounter: typeof import('vuetify/components')['VCounter']
|
|
532
|
-
|
|
533
|
-
VDatePickerControls: typeof import('vuetify/components')['VDatePickerControls']
|
|
534
|
-
VDatePickerHeader: typeof import('vuetify/components')['VDatePickerHeader']
|
|
535
|
-
VDatePickerMonth: typeof import('vuetify/components')['VDatePickerMonth']
|
|
536
|
-
VDatePickerMonths: typeof import('vuetify/components')['VDatePickerMonths']
|
|
537
|
-
VDatePickerYears: typeof import('vuetify/components')['VDatePickerYears']
|
|
531
|
+
VColorPicker: typeof import('vuetify/components')['VColorPicker']
|
|
538
532
|
VDataTable: typeof import('vuetify/components')['VDataTable']
|
|
539
533
|
VDataTableHeaders: typeof import('vuetify/components')['VDataTableHeaders']
|
|
540
534
|
VDataTableFooter: typeof import('vuetify/components')['VDataTableFooter']
|
|
@@ -542,31 +536,36 @@ declare module '@vue/runtime-core' {
|
|
|
542
536
|
VDataTableRow: typeof import('vuetify/components')['VDataTableRow']
|
|
543
537
|
VDataTableVirtual: typeof import('vuetify/components')['VDataTableVirtual']
|
|
544
538
|
VDataTableServer: typeof import('vuetify/components')['VDataTableServer']
|
|
539
|
+
VDatePicker: typeof import('vuetify/components')['VDatePicker']
|
|
540
|
+
VDatePickerControls: typeof import('vuetify/components')['VDatePickerControls']
|
|
541
|
+
VDatePickerHeader: typeof import('vuetify/components')['VDatePickerHeader']
|
|
542
|
+
VDatePickerMonth: typeof import('vuetify/components')['VDatePickerMonth']
|
|
543
|
+
VDatePickerMonths: typeof import('vuetify/components')['VDatePickerMonths']
|
|
544
|
+
VDatePickerYears: typeof import('vuetify/components')['VDatePickerYears']
|
|
545
545
|
VDialog: typeof import('vuetify/components')['VDialog']
|
|
546
|
+
VEmptyState: typeof import('vuetify/components')['VEmptyState']
|
|
546
547
|
VDivider: typeof import('vuetify/components')['VDivider']
|
|
547
548
|
VExpansionPanels: typeof import('vuetify/components')['VExpansionPanels']
|
|
548
549
|
VExpansionPanel: typeof import('vuetify/components')['VExpansionPanel']
|
|
549
550
|
VExpansionPanelText: typeof import('vuetify/components')['VExpansionPanelText']
|
|
550
551
|
VExpansionPanelTitle: typeof import('vuetify/components')['VExpansionPanelTitle']
|
|
551
|
-
VFab: typeof import('vuetify/components')['VFab']
|
|
552
552
|
VField: typeof import('vuetify/components')['VField']
|
|
553
553
|
VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
|
|
554
|
-
VEmptyState: typeof import('vuetify/components')['VEmptyState']
|
|
555
554
|
VFooter: typeof import('vuetify/components')['VFooter']
|
|
555
|
+
VFab: typeof import('vuetify/components')['VFab']
|
|
556
|
+
VFileInput: typeof import('vuetify/components')['VFileInput']
|
|
556
557
|
VIcon: typeof import('vuetify/components')['VIcon']
|
|
557
558
|
VComponentIcon: typeof import('vuetify/components')['VComponentIcon']
|
|
558
559
|
VSvgIcon: typeof import('vuetify/components')['VSvgIcon']
|
|
559
560
|
VLigatureIcon: typeof import('vuetify/components')['VLigatureIcon']
|
|
560
561
|
VClassIcon: typeof import('vuetify/components')['VClassIcon']
|
|
561
|
-
VFileInput: typeof import('vuetify/components')['VFileInput']
|
|
562
|
-
VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
|
|
563
562
|
VImg: typeof import('vuetify/components')['VImg']
|
|
564
|
-
|
|
563
|
+
VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
|
|
565
564
|
VInput: typeof import('vuetify/components')['VInput']
|
|
566
|
-
|
|
565
|
+
VKbd: typeof import('vuetify/components')['VKbd']
|
|
567
566
|
VItemGroup: typeof import('vuetify/components')['VItemGroup']
|
|
568
567
|
VItem: typeof import('vuetify/components')['VItem']
|
|
569
|
-
|
|
568
|
+
VLabel: typeof import('vuetify/components')['VLabel']
|
|
570
569
|
VList: typeof import('vuetify/components')['VList']
|
|
571
570
|
VListGroup: typeof import('vuetify/components')['VListGroup']
|
|
572
571
|
VListImg: typeof import('vuetify/components')['VListImg']
|
|
@@ -576,46 +575,47 @@ declare module '@vue/runtime-core' {
|
|
|
576
575
|
VListItemSubtitle: typeof import('vuetify/components')['VListItemSubtitle']
|
|
577
576
|
VListItemTitle: typeof import('vuetify/components')['VListItemTitle']
|
|
578
577
|
VListSubheader: typeof import('vuetify/components')['VListSubheader']
|
|
579
|
-
|
|
578
|
+
VMain: typeof import('vuetify/components')['VMain']
|
|
580
579
|
VMenu: typeof import('vuetify/components')['VMenu']
|
|
581
|
-
|
|
580
|
+
VOverlay: typeof import('vuetify/components')['VOverlay']
|
|
581
|
+
VMessages: typeof import('vuetify/components')['VMessages']
|
|
582
582
|
VNavigationDrawer: typeof import('vuetify/components')['VNavigationDrawer']
|
|
583
|
+
VOtpInput: typeof import('vuetify/components')['VOtpInput']
|
|
584
|
+
VProgressLinear: typeof import('vuetify/components')['VProgressLinear']
|
|
583
585
|
VPagination: typeof import('vuetify/components')['VPagination']
|
|
584
|
-
VOverlay: typeof import('vuetify/components')['VOverlay']
|
|
585
586
|
VProgressCircular: typeof import('vuetify/components')['VProgressCircular']
|
|
586
|
-
VProgressLinear: typeof import('vuetify/components')['VProgressLinear']
|
|
587
587
|
VRadioGroup: typeof import('vuetify/components')['VRadioGroup']
|
|
588
|
-
VSelect: typeof import('vuetify/components')['VSelect']
|
|
589
|
-
VSelectionControlGroup: typeof import('vuetify/components')['VSelectionControlGroup']
|
|
590
588
|
VRating: typeof import('vuetify/components')['VRating']
|
|
589
|
+
VSelect: typeof import('vuetify/components')['VSelect']
|
|
591
590
|
VSelectionControl: typeof import('vuetify/components')['VSelectionControl']
|
|
591
|
+
VSelectionControlGroup: typeof import('vuetify/components')['VSelectionControlGroup']
|
|
592
592
|
VSheet: typeof import('vuetify/components')['VSheet']
|
|
593
|
+
VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
|
|
594
|
+
VSlider: typeof import('vuetify/components')['VSlider']
|
|
595
|
+
VSnackbar: typeof import('vuetify/components')['VSnackbar']
|
|
593
596
|
VSlideGroup: typeof import('vuetify/components')['VSlideGroup']
|
|
594
597
|
VSlideGroupItem: typeof import('vuetify/components')['VSlideGroupItem']
|
|
595
|
-
|
|
596
|
-
VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
|
|
598
|
+
VSwitch: typeof import('vuetify/components')['VSwitch']
|
|
597
599
|
VStepper: typeof import('vuetify/components')['VStepper']
|
|
598
600
|
VStepperActions: typeof import('vuetify/components')['VStepperActions']
|
|
599
601
|
VStepperHeader: typeof import('vuetify/components')['VStepperHeader']
|
|
600
602
|
VStepperItem: typeof import('vuetify/components')['VStepperItem']
|
|
601
603
|
VStepperWindow: typeof import('vuetify/components')['VStepperWindow']
|
|
602
604
|
VStepperWindowItem: typeof import('vuetify/components')['VStepperWindowItem']
|
|
603
|
-
VSnackbar: typeof import('vuetify/components')['VSnackbar']
|
|
604
|
-
VSwitch: typeof import('vuetify/components')['VSwitch']
|
|
605
605
|
VSystemBar: typeof import('vuetify/components')['VSystemBar']
|
|
606
606
|
VTable: typeof import('vuetify/components')['VTable']
|
|
607
607
|
VTab: typeof import('vuetify/components')['VTab']
|
|
608
608
|
VTabs: typeof import('vuetify/components')['VTabs']
|
|
609
609
|
VTabsWindow: typeof import('vuetify/components')['VTabsWindow']
|
|
610
610
|
VTabsWindowItem: typeof import('vuetify/components')['VTabsWindowItem']
|
|
611
|
-
VTimeline: typeof import('vuetify/components')['VTimeline']
|
|
612
|
-
VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
|
|
613
611
|
VTextarea: typeof import('vuetify/components')['VTextarea']
|
|
612
|
+
VTextField: typeof import('vuetify/components')['VTextField']
|
|
614
613
|
VToolbar: typeof import('vuetify/components')['VToolbar']
|
|
615
614
|
VToolbarTitle: typeof import('vuetify/components')['VToolbarTitle']
|
|
616
615
|
VToolbarItems: typeof import('vuetify/components')['VToolbarItems']
|
|
616
|
+
VTimeline: typeof import('vuetify/components')['VTimeline']
|
|
617
|
+
VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
|
|
617
618
|
VTooltip: typeof import('vuetify/components')['VTooltip']
|
|
618
|
-
VTextField: typeof import('vuetify/components')['VTextField']
|
|
619
619
|
VWindow: typeof import('vuetify/components')['VWindow']
|
|
620
620
|
VWindowItem: typeof import('vuetify/components')['VWindowItem']
|
|
621
621
|
VConfirmEdit: typeof import('vuetify/components')['VConfirmEdit']
|
|
@@ -633,14 +633,14 @@ declare module '@vue/runtime-core' {
|
|
|
633
633
|
VLocaleProvider: typeof import('vuetify/components')['VLocaleProvider']
|
|
634
634
|
VNoSsr: typeof import('vuetify/components')['VNoSsr']
|
|
635
635
|
VParallax: typeof import('vuetify/components')['VParallax']
|
|
636
|
-
VRangeSlider: typeof import('vuetify/components')['VRangeSlider']
|
|
637
636
|
VRadio: typeof import('vuetify/components')['VRadio']
|
|
637
|
+
VRangeSlider: typeof import('vuetify/components')['VRangeSlider']
|
|
638
638
|
VResponsive: typeof import('vuetify/components')['VResponsive']
|
|
639
639
|
VSparkline: typeof import('vuetify/components')['VSparkline']
|
|
640
640
|
VSpeedDial: typeof import('vuetify/components')['VSpeedDial']
|
|
641
641
|
VThemeProvider: typeof import('vuetify/components')['VThemeProvider']
|
|
642
|
-
VVirtualScroll: typeof import('vuetify/components')['VVirtualScroll']
|
|
643
642
|
VValidation: typeof import('vuetify/components')['VValidation']
|
|
643
|
+
VVirtualScroll: typeof import('vuetify/components')['VVirtualScroll']
|
|
644
644
|
VFabTransition: typeof import('vuetify/components')['VFabTransition']
|
|
645
645
|
VDialogBottomTransition: typeof import('vuetify/components')['VDialogBottomTransition']
|
|
646
646
|
VDialogTopTransition: typeof import('vuetify/components')['VDialogTopTransition']
|
|
@@ -657,6 +657,7 @@ declare module '@vue/runtime-core' {
|
|
|
657
657
|
VExpandTransition: typeof import('vuetify/components')['VExpandTransition']
|
|
658
658
|
VExpandXTransition: typeof import('vuetify/components')['VExpandXTransition']
|
|
659
659
|
VDialogTransition: typeof import('vuetify/components')['VDialogTransition']
|
|
660
|
+
VNumberInput: typeof import('vuetify/labs/components')['VNumberInput']
|
|
660
661
|
VCalendar: typeof import('vuetify/labs/components')['VCalendar']
|
|
661
662
|
VCalendarDay: typeof import('vuetify/labs/components')['VCalendarDay']
|
|
662
663
|
VCalendarHeader: typeof import('vuetify/labs/components')['VCalendarHeader']
|
|
@@ -665,15 +666,14 @@ declare module '@vue/runtime-core' {
|
|
|
665
666
|
VCalendarMonthDay: typeof import('vuetify/labs/components')['VCalendarMonthDay']
|
|
666
667
|
VPicker: typeof import('vuetify/labs/components')['VPicker']
|
|
667
668
|
VPickerTitle: typeof import('vuetify/labs/components')['VPickerTitle']
|
|
668
|
-
VNumberInput: typeof import('vuetify/labs/components')['VNumberInput']
|
|
669
669
|
VTimePicker: typeof import('vuetify/labs/components')['VTimePicker']
|
|
670
670
|
VTimePickerClock: typeof import('vuetify/labs/components')['VTimePickerClock']
|
|
671
671
|
VTimePickerControls: typeof import('vuetify/labs/components')['VTimePickerControls']
|
|
672
672
|
VTreeview: typeof import('vuetify/labs/components')['VTreeview']
|
|
673
673
|
VTreeviewItem: typeof import('vuetify/labs/components')['VTreeviewItem']
|
|
674
674
|
VTreeviewGroup: typeof import('vuetify/labs/components')['VTreeviewGroup']
|
|
675
|
-
VPullToRefresh: typeof import('vuetify/labs/components')['VPullToRefresh']
|
|
676
|
-
VSnackbarQueue: typeof import('vuetify/labs/components')['VSnackbarQueue']
|
|
677
675
|
VDateInput: typeof import('vuetify/labs/components')['VDateInput']
|
|
676
|
+
VSnackbarQueue: typeof import('vuetify/labs/components')['VSnackbarQueue']
|
|
677
|
+
VPullToRefresh: typeof import('vuetify/labs/components')['VPullToRefresh']
|
|
678
678
|
}
|
|
679
679
|
}
|
|
@@ -1,10 +1,14 @@
|
|
|
1
|
+
.v-calendar {
|
|
2
|
+
background: rgb(var(--v-theme-background));
|
|
3
|
+
color: rgba(var(--v-theme-on-background), var(--v-high-emphasis-opacity));
|
|
4
|
+
}
|
|
5
|
+
|
|
1
6
|
.v-calendar-weekly {
|
|
2
7
|
width: 100%;
|
|
3
8
|
height: 100%;
|
|
4
9
|
display: flex;
|
|
5
10
|
flex-direction: column;
|
|
6
11
|
min-height: 0;
|
|
7
|
-
background-color: #fff;
|
|
8
12
|
}
|
|
9
13
|
|
|
10
14
|
.v-calendar__container {
|
|
@@ -2,6 +2,9 @@
|
|
|
2
2
|
@use './variables' as *
|
|
3
3
|
|
|
4
4
|
@include tools.layer('components')
|
|
5
|
+
.v-calendar
|
|
6
|
+
@include tools.theme($calendar-theme...)
|
|
7
|
+
|
|
5
8
|
.v-calendar-weekly
|
|
6
9
|
width: 100%
|
|
7
10
|
height: 100%
|
|
@@ -9,8 +12,6 @@
|
|
|
9
12
|
flex-direction: column
|
|
10
13
|
// https://github.com/vuetifyjs/vuetify/issues/8319
|
|
11
14
|
min-height: 0
|
|
12
|
-
// Themed
|
|
13
|
-
background-color: #fff
|
|
14
15
|
|
|
15
16
|
.v-calendar__container
|
|
16
17
|
border-top: $calendar-line-width solid $calendar-line-color
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
$calendar-color: rgba(var(--v-theme-on-background), var(--v-high-emphasis-opacity)) !default;
|
|
2
|
+
$calendar-background: rgb(var(--v-theme-background)) !default;
|
|
3
|
+
|
|
1
4
|
$calendar-line-width: thin !default;
|
|
2
5
|
$calendar-line-color: #e0e0e0 !default;
|
|
3
6
|
|
|
@@ -45,3 +48,8 @@ $calendar-event-border-width: 1px !default;
|
|
|
45
48
|
$calendar-event-font-size: 12px !default;
|
|
46
49
|
$calendar-event-line-height: 20px !default;
|
|
47
50
|
$calendar-event-right-empty: 10px !default;
|
|
51
|
+
|
|
52
|
+
$calendar-theme: (
|
|
53
|
+
$calendar-background,
|
|
54
|
+
$calendar-color
|
|
55
|
+
) !default;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { mergeProps as _mergeProps, Fragment as _Fragment, createVNode as _createVNode } from "vue";
|
|
2
2
|
// Styles
|
|
3
3
|
import "./VNumberInput.css";
|
|
4
4
|
|
|
@@ -6,12 +6,10 @@ import "./VNumberInput.css";
|
|
|
6
6
|
import { VBtn } from "../../components/VBtn/index.mjs";
|
|
7
7
|
import { VDefaultsProvider } from "../../components/VDefaultsProvider/index.mjs";
|
|
8
8
|
import { VDivider } from "../../components/VDivider/index.mjs";
|
|
9
|
-
import {
|
|
10
|
-
import { makeVInputProps, VInput } from "../../components/VInput/VInput.mjs"; // Composables
|
|
11
|
-
import { makeFocusProps, useFocus } from "../../composables/focus.mjs";
|
|
9
|
+
import { makeVTextFieldProps, VTextField } from "../../components/VTextField/VTextField.mjs"; // Composables
|
|
12
10
|
import { useProxiedModel } from "../../composables/proxiedModel.mjs"; // Utilities
|
|
13
|
-
import { computed,
|
|
14
|
-
import { clamp,
|
|
11
|
+
import { computed, watchEffect } from 'vue';
|
|
12
|
+
import { clamp, genericComponent, getDecimals, omit, propsFactory, useRender } from "../../util/index.mjs"; // Types
|
|
15
13
|
const makeVNumberInputProps = propsFactory({
|
|
16
14
|
controlVariant: {
|
|
17
15
|
type: String,
|
|
@@ -31,19 +29,13 @@ const makeVNumberInputProps = propsFactory({
|
|
|
31
29
|
type: Number,
|
|
32
30
|
default: 1
|
|
33
31
|
},
|
|
34
|
-
...
|
|
35
|
-
...only(makeVFieldProps(), ['baseColor', 'bgColor', 'class', 'color', 'disabled', 'error', 'loading', 'reverse', 'rounded', 'style', 'theme', 'variant']),
|
|
36
|
-
...makeFocusProps()
|
|
32
|
+
...omit(makeVTextFieldProps(), ['appendInnerIcon', 'prependInnerIcon'])
|
|
37
33
|
}, 'VNumberInput');
|
|
38
34
|
export const VNumberInput = genericComponent()({
|
|
39
35
|
name: 'VNumberInput',
|
|
40
36
|
inheritAttrs: false,
|
|
41
37
|
props: {
|
|
42
|
-
...makeVNumberInputProps()
|
|
43
|
-
modelValue: {
|
|
44
|
-
type: Number,
|
|
45
|
-
default: undefined
|
|
46
|
-
}
|
|
38
|
+
...makeVNumberInputProps()
|
|
47
39
|
},
|
|
48
40
|
emits: {
|
|
49
41
|
'update:modelValue': val => true
|
|
@@ -55,12 +47,6 @@ export const VNumberInput = genericComponent()({
|
|
|
55
47
|
slots
|
|
56
48
|
} = _ref;
|
|
57
49
|
const model = useProxiedModel(props, 'modelValue');
|
|
58
|
-
const {
|
|
59
|
-
isFocused,
|
|
60
|
-
focus,
|
|
61
|
-
blur
|
|
62
|
-
} = useFocus(props);
|
|
63
|
-
const inputRef = ref();
|
|
64
50
|
const stepDecimals = computed(() => getDecimals(props.step));
|
|
65
51
|
const modelDecimals = computed(() => model.value != null ? getDecimals(model.value) : 0);
|
|
66
52
|
const canIncrease = computed(() => {
|
|
@@ -76,9 +62,6 @@ export const VNumberInput = genericComponent()({
|
|
|
76
62
|
model.value = clamp(model.value, props.min, props.max);
|
|
77
63
|
}
|
|
78
64
|
});
|
|
79
|
-
function onFocus() {
|
|
80
|
-
if (!isFocused.value) focus();
|
|
81
|
-
}
|
|
82
65
|
const controlVariant = computed(() => {
|
|
83
66
|
return props.hideInput ? 'stacked' : props.controlVariant;
|
|
84
67
|
});
|
|
@@ -108,7 +91,7 @@ export const VNumberInput = genericComponent()({
|
|
|
108
91
|
toggleUpDown(false);
|
|
109
92
|
}
|
|
110
93
|
function onKeydown(e) {
|
|
111
|
-
if (['Enter', 'ArrowLeft', 'ArrowRight', 'Backspace'].includes(e.key) || e.ctrlKey) return;
|
|
94
|
+
if (['Enter', 'ArrowLeft', 'ArrowRight', 'Backspace', 'Tab'].includes(e.key) || e.ctrlKey) return;
|
|
112
95
|
if (['ArrowDown'].includes(e.key)) {
|
|
113
96
|
e.preventDefault();
|
|
114
97
|
toggleUpDown(false);
|
|
@@ -125,17 +108,14 @@ export const VNumberInput = genericComponent()({
|
|
|
125
108
|
e.preventDefault();
|
|
126
109
|
}
|
|
127
110
|
}
|
|
128
|
-
function
|
|
129
|
-
|
|
130
|
-
model.value = el.value ? +el.value : undefined;
|
|
111
|
+
function onModelUpdate(v) {
|
|
112
|
+
model.value = v ? +v : undefined;
|
|
131
113
|
}
|
|
132
114
|
useRender(() => {
|
|
133
|
-
const fieldProps = filterFieldProps(props);
|
|
134
|
-
const [rootAttrs, inputAttrs] = filterInputAttrs(attrs);
|
|
135
115
|
const {
|
|
136
116
|
modelValue: _,
|
|
137
|
-
...
|
|
138
|
-
} =
|
|
117
|
+
...textFieldProps
|
|
118
|
+
} = VTextField.filterProps(props);
|
|
139
119
|
function controlNode() {
|
|
140
120
|
const defaultHeight = controlVariant.value === 'stacked' ? 'auto' : '100%';
|
|
141
121
|
return _createVNode("div", {
|
|
@@ -148,6 +128,7 @@ export const VNumberInput = genericComponent()({
|
|
|
148
128
|
"name": "decrement-btn",
|
|
149
129
|
"icon": "$expand",
|
|
150
130
|
"size": "small",
|
|
131
|
+
"tabindex": "-1",
|
|
151
132
|
"onClick": onClickDown
|
|
152
133
|
}, null) : _createVNode(VDefaultsProvider, {
|
|
153
134
|
"key": "decrement-defaults",
|
|
@@ -172,7 +153,8 @@ export const VNumberInput = genericComponent()({
|
|
|
172
153
|
"name": "increment-btn",
|
|
173
154
|
"icon": "$collapse",
|
|
174
155
|
"onClick": onClickUp,
|
|
175
|
-
"size": "small"
|
|
156
|
+
"size": "small",
|
|
157
|
+
"tabindex": "-1"
|
|
176
158
|
}, null) : _createVNode(VDefaultsProvider, {
|
|
177
159
|
"key": "increment-defaults",
|
|
178
160
|
"defaults": {
|
|
@@ -193,7 +175,36 @@ export const VNumberInput = genericComponent()({
|
|
|
193
175
|
"vertical": true
|
|
194
176
|
}, null) : undefined;
|
|
195
177
|
}
|
|
196
|
-
|
|
178
|
+
const appendInnerControl = controlVariant.value === 'split' ? _createVNode("div", {
|
|
179
|
+
"class": "v-number-input__control"
|
|
180
|
+
}, [_createVNode(VDivider, {
|
|
181
|
+
"vertical": true
|
|
182
|
+
}, null), _createVNode(VBtn, {
|
|
183
|
+
"flat": true,
|
|
184
|
+
"height": "100%",
|
|
185
|
+
"icon": "$plus",
|
|
186
|
+
"tile": true,
|
|
187
|
+
"tabindex": "-1",
|
|
188
|
+
"onClick": onClickUp
|
|
189
|
+
}, null)]) : !props.reverse ? _createVNode(_Fragment, null, [dividerNode(), controlNode()]) : undefined;
|
|
190
|
+
const hasAppendInner = slots['append-inner'] || appendInnerControl;
|
|
191
|
+
const prependInnerControl = controlVariant.value === 'split' ? _createVNode("div", {
|
|
192
|
+
"class": "v-number-input__control"
|
|
193
|
+
}, [_createVNode(VBtn, {
|
|
194
|
+
"flat": true,
|
|
195
|
+
"height": "100%",
|
|
196
|
+
"icon": "$minus",
|
|
197
|
+
"tile": true,
|
|
198
|
+
"tabindex": "-1",
|
|
199
|
+
"onClick": onClickDown
|
|
200
|
+
}, null), _createVNode(VDivider, {
|
|
201
|
+
"vertical": true
|
|
202
|
+
}, null)]) : props.reverse ? _createVNode(_Fragment, null, [controlNode(), dividerNode()]) : undefined;
|
|
203
|
+
const hasPrependInner = slots['prepend-inner'] || prependInnerControl;
|
|
204
|
+
return _createVNode(VTextField, _mergeProps({
|
|
205
|
+
"modelValue": model.value,
|
|
206
|
+
"onUpdate:modelValue": onModelUpdate,
|
|
207
|
+
"onKeydown": onKeydown,
|
|
197
208
|
"class": ['v-number-input', {
|
|
198
209
|
'v-number-input--default': controlVariant.value === 'default',
|
|
199
210
|
'v-number-input--hide-input': props.hideInput,
|
|
@@ -202,57 +213,22 @@ export const VNumberInput = genericComponent()({
|
|
|
202
213
|
'v-number-input--split': controlVariant.value === 'split',
|
|
203
214
|
'v-number-input--stacked': controlVariant.value === 'stacked'
|
|
204
215
|
}, props.class]
|
|
205
|
-
},
|
|
206
|
-
"focused": isFocused.value,
|
|
216
|
+
}, textFieldProps, {
|
|
207
217
|
"style": props.style
|
|
208
218
|
}), {
|
|
209
219
|
...slots,
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
...
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
return _createVNode("input", _mergeProps({
|
|
223
|
-
"ref": inputRef,
|
|
224
|
-
"type": "text",
|
|
225
|
-
"value": model.value,
|
|
226
|
-
"onInput": onInput,
|
|
227
|
-
"onKeydown": onKeydown,
|
|
228
|
-
"class": fieldClass,
|
|
229
|
-
"onFocus": onFocus,
|
|
230
|
-
"onBlur": blur
|
|
231
|
-
}, inputAttrs), null);
|
|
232
|
-
},
|
|
233
|
-
'append-inner': controlVariant.value === 'split' ? () => _createVNode("div", {
|
|
234
|
-
"class": "v-number-input__control"
|
|
235
|
-
}, [_createVNode(VDivider, {
|
|
236
|
-
"vertical": true
|
|
237
|
-
}, null), _createVNode(VBtn, {
|
|
238
|
-
"flat": true,
|
|
239
|
-
"height": "100%",
|
|
240
|
-
"icon": "$plus",
|
|
241
|
-
"tile": true,
|
|
242
|
-
"onClick": onClickUp
|
|
243
|
-
}, null)]) : !props.reverse ? () => _createVNode(_Fragment, null, [dividerNode(), controlNode()]) : undefined,
|
|
244
|
-
'prepend-inner': controlVariant.value === 'split' ? () => _createVNode("div", {
|
|
245
|
-
"class": "v-number-input__control"
|
|
246
|
-
}, [_createVNode(VBtn, {
|
|
247
|
-
"flat": true,
|
|
248
|
-
"height": "100%",
|
|
249
|
-
"icon": "$minus",
|
|
250
|
-
"tile": true,
|
|
251
|
-
"onClick": onClickDown
|
|
252
|
-
}, null), _createVNode(VDivider, {
|
|
253
|
-
"vertical": true
|
|
254
|
-
}, null)]) : props.reverse ? () => _createVNode(_Fragment, null, [controlNode(), dividerNode()]) : undefined
|
|
255
|
-
})
|
|
220
|
+
'append-inner': hasAppendInner ? function () {
|
|
221
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
222
|
+
args[_key] = arguments[_key];
|
|
223
|
+
}
|
|
224
|
+
return _createVNode(_Fragment, null, [slots['append-inner']?.(...args), appendInnerControl]);
|
|
225
|
+
} : undefined,
|
|
226
|
+
'prepend-inner': hasPrependInner ? function () {
|
|
227
|
+
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
|
228
|
+
args[_key2] = arguments[_key2];
|
|
229
|
+
}
|
|
230
|
+
return _createVNode(_Fragment, null, [prependInnerControl, slots['prepend-inner']?.(...args)]);
|
|
231
|
+
} : undefined
|
|
256
232
|
});
|
|
257
233
|
});
|
|
258
234
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VNumberInput.mjs","names":["VBtn","VDefaultsProvider","VDivider","filterFieldProps","makeVFieldProps","VField","makeVInputProps","VInput","makeFocusProps","useFocus","useProxiedModel","computed","ref","watchEffect","clamp","filterInputAttrs","genericComponent","getDecimals","only","propsFactory","useRender","makeVNumberInputProps","controlVariant","type","String","default","inset","Boolean","hideInput","min","Number","Infinity","max","step","VNumberInput","name","inheritAttrs","props","modelValue","undefined","emits","val","setup","_ref","attrs","emit","slots","model","isFocused","focus","blur","inputRef","stepDecimals","modelDecimals","value","canIncrease","canDecrease","onFocus","incrementSlotProps","click","onClickUp","decrementSlotProps","onClickDown","toggleUpDown","increment","arguments","length","decimals","Math","toFixed","onKeydown","e","includes","key","ctrlKey","preventDefault","test","onInput","el","target","fieldProps","rootAttrs","inputAttrs","_","inputProps","filterProps","controlNode","defaultHeight","_createVNode","decrement","disabled","flat","height","size","icon","dividerNode","_mergeProps","reverse","class","style","_ref2","fieldClass","slotProps","_Fragment"],"sources":["../../../src/labs/VNumberInput/VNumberInput.tsx"],"sourcesContent":["// Styles\nimport './VNumberInput.sass'\n\n// Components\nimport { VBtn } from '../../components/VBtn'\nimport { VDefaultsProvider } from '../../components/VDefaultsProvider'\nimport { VDivider } from '../../components/VDivider'\nimport { filterFieldProps, makeVFieldProps, VField } from '@/components/VField/VField'\nimport { makeVInputProps, VInput } from '@/components/VInput/VInput'\n\n// Composables\nimport { makeFocusProps, useFocus } from '@/composables/focus'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, ref, watchEffect } from 'vue'\nimport { clamp, filterInputAttrs, genericComponent, getDecimals, only, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VFieldSlots } from '@/components/VField/VField'\nimport type { VInputSlots } from '@/components/VInput/VInput'\n\ntype ControlSlot = {\n click: () => void\n}\n\ntype VNumberInputSlots = Omit<VInputSlots & VFieldSlots, 'default'> & {\n increment: ControlSlot\n decrement: ControlSlot\n}\n\ntype ControlVariant = 'default' | 'stacked' | 'split'\n\nconst makeVNumberInputProps = propsFactory({\n controlVariant: {\n type: String as PropType<ControlVariant>,\n default: 'default',\n },\n inset: Boolean,\n hideInput: Boolean,\n min: {\n type: Number,\n default: -Infinity,\n },\n max: {\n type: Number,\n default: Infinity,\n },\n step: {\n type: Number,\n default: 1,\n },\n\n ...only(makeVInputProps(), [\n 'density',\n 'disabled',\n 'focused',\n 'hideDetails',\n 'hint',\n 'label',\n 'persistentHint',\n 'readonly',\n ]),\n ...only(makeVFieldProps(), [\n 'baseColor',\n 'bgColor',\n 'class',\n 'color',\n 'disabled',\n 'error',\n 'loading',\n 'reverse',\n 'rounded',\n 'style',\n 'theme',\n 'variant',\n ]),\n ...makeFocusProps(),\n}, 'VNumberInput')\n\nexport const VNumberInput = genericComponent<VNumberInputSlots>()({\n name: 'VNumberInput',\n\n inheritAttrs: false,\n\n props: {\n ...makeVNumberInputProps(),\n\n modelValue: {\n type: Number,\n default: undefined,\n },\n },\n\n emits: {\n 'update:modelValue': (val: number) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const model = useProxiedModel(props, 'modelValue')\n const { isFocused, focus, blur } = useFocus(props)\n const inputRef = ref<HTMLInputElement>()\n\n const stepDecimals = computed(() => getDecimals(props.step))\n const modelDecimals = computed(() => model.value != null ? getDecimals(model.value) : 0)\n\n const canIncrease = computed(() => {\n if (model.value == null) return true\n return model.value + props.step <= props.max\n })\n const canDecrease = computed(() => {\n if (model.value == null) return true\n return model.value - props.step >= props.min\n })\n\n watchEffect(() => {\n if (model.value != null && (model.value < props.min || model.value > props.max)) {\n model.value = clamp(model.value, props.min, props.max)\n }\n })\n\n function onFocus () {\n if (!isFocused.value) focus()\n }\n\n const controlVariant = computed(() => {\n return props.hideInput ? 'stacked' : props.controlVariant\n })\n\n const incrementSlotProps = computed(() => ({ click: onClickUp }))\n\n const decrementSlotProps = computed(() => ({ click: onClickDown }))\n\n function toggleUpDown (increment = true) {\n if (model.value == null) {\n model.value = 0\n return\n }\n\n const decimals = Math.max(modelDecimals.value, stepDecimals.value)\n if (increment) {\n if (canIncrease.value) model.value = +(((model.value + props.step).toFixed(decimals)))\n } else {\n if (canDecrease.value) model.value = +(((model.value - props.step).toFixed(decimals)))\n }\n }\n\n function onClickUp () {\n toggleUpDown()\n }\n\n function onClickDown () {\n toggleUpDown(false)\n }\n\n function onKeydown (e: KeyboardEvent) {\n if (\n ['Enter', 'ArrowLeft', 'ArrowRight', 'Backspace'].includes(e.key) ||\n e.ctrlKey\n ) return\n\n if (['ArrowDown'].includes(e.key)) {\n e.preventDefault()\n toggleUpDown(false)\n return\n }\n if (['ArrowUp'].includes(e.key)) {\n e.preventDefault()\n toggleUpDown()\n return\n }\n\n // Only numbers, +, - & . are allowed\n if (!/^[0-9\\-+.]+$/.test(e.key)) {\n e.preventDefault()\n }\n }\n\n function onInput (e: Event) {\n const el = e.target as HTMLInputElement\n model.value = el.value ? +(el.value) : undefined\n }\n\n useRender(() => {\n const fieldProps = filterFieldProps(props)\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs)\n const { modelValue: _, ...inputProps } = VInput.filterProps(props)\n\n function controlNode () {\n const defaultHeight = controlVariant.value === 'stacked' ? 'auto' : '100%'\n return (\n <div class=\"v-number-input__control\">\n {\n !slots.decrement ? (\n <VBtn\n disabled={ !canDecrease.value }\n flat\n key=\"decrement-btn\"\n height={ defaultHeight }\n name=\"decrement-btn\"\n icon=\"$expand\"\n size=\"small\"\n onClick={ onClickDown }\n />\n ) : (\n <VDefaultsProvider\n key=\"decrement-defaults\"\n defaults={{\n VBtn: {\n disabled: !canDecrease.value,\n flat: true,\n height: defaultHeight,\n size: 'small',\n icon: '$expand',\n },\n }}\n >\n { slots.decrement(decrementSlotProps.value) }\n </VDefaultsProvider>\n )\n }\n\n <VDivider\n vertical={ controlVariant.value !== 'stacked' }\n />\n\n {\n !slots.increment ? (\n <VBtn\n disabled={ !canIncrease.value }\n flat\n key=\"increment-btn\"\n height={ defaultHeight }\n name=\"increment-btn\"\n icon=\"$collapse\"\n onClick={ onClickUp }\n size=\"small\"\n />\n ) : (\n <VDefaultsProvider\n key=\"increment-defaults\"\n defaults={{\n VBtn: {\n disabled: !canIncrease.value,\n flat: true,\n height: defaultHeight,\n size: 'small',\n icon: '$collapse',\n },\n }}\n >\n { slots.increment(incrementSlotProps.value) }\n </VDefaultsProvider>\n )\n }\n </div>\n )\n }\n\n function dividerNode () {\n return !props.hideInput && !props.inset ? <VDivider vertical /> : undefined\n }\n\n return (\n <VInput\n class={[\n 'v-number-input',\n {\n 'v-number-input--default': controlVariant.value === 'default',\n 'v-number-input--hide-input': props.hideInput,\n 'v-number-input--inset': props.inset,\n 'v-number-input--reverse': props.reverse,\n 'v-number-input--split': controlVariant.value === 'split',\n 'v-number-input--stacked': controlVariant.value === 'stacked',\n },\n props.class,\n ]}\n { ...rootAttrs }\n { ...inputProps }\n focused={ isFocused.value }\n style={ props.style }\n >\n {{\n ...slots,\n default: () => (\n <VField\n { ...fieldProps }\n active\n focused={ isFocused.value }\n >\n {{\n ...slots,\n default: ({\n props: { class: fieldClass, ...slotProps },\n }) => (\n <input\n ref={ inputRef }\n type=\"text\"\n value={ model.value }\n onInput={ onInput }\n onKeydown={ onKeydown }\n class={ fieldClass }\n onFocus={ onFocus }\n onBlur={ blur }\n { ...inputAttrs }\n />\n ),\n 'append-inner': controlVariant.value === 'split' ? () => (\n <div class=\"v-number-input__control\">\n <VDivider vertical />\n\n <VBtn\n flat\n height=\"100%\"\n icon=\"$plus\"\n tile\n onClick={ onClickUp }\n />\n </div>\n ) : (!props.reverse\n ? () => <>{ dividerNode() }{ controlNode() }</>\n : undefined),\n 'prepend-inner': controlVariant.value === 'split' ? () => (\n <div class=\"v-number-input__control\">\n <VBtn\n flat\n height=\"100%\"\n icon=\"$minus\"\n tile\n onClick={ onClickDown }\n />\n\n <VDivider vertical />\n </div>\n ) : (props.reverse\n ? () => <>{ controlNode() }{ dividerNode() }</>\n : undefined),\n }}\n </VField>\n ),\n }}\n </VInput>\n )\n })\n },\n})\n\nexport type VNumberInput = InstanceType<typeof VNumberInput>\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"VNumberInput.mjs","names":["VBtn","VDefaultsProvider","VDivider","makeVTextFieldProps","VTextField","useProxiedModel","computed","watchEffect","clamp","genericComponent","getDecimals","omit","propsFactory","useRender","makeVNumberInputProps","controlVariant","type","String","default","inset","Boolean","hideInput","min","Number","Infinity","max","step","VNumberInput","name","inheritAttrs","props","emits","val","setup","_ref","attrs","emit","slots","model","stepDecimals","modelDecimals","value","canIncrease","canDecrease","incrementSlotProps","click","onClickUp","decrementSlotProps","onClickDown","toggleUpDown","increment","arguments","length","undefined","decimals","Math","toFixed","onKeydown","e","includes","key","ctrlKey","preventDefault","test","onModelUpdate","v","modelValue","_","textFieldProps","filterProps","controlNode","defaultHeight","_createVNode","decrement","disabled","flat","height","size","icon","dividerNode","appendInnerControl","reverse","_Fragment","hasAppendInner","prependInnerControl","hasPrependInner","_mergeProps","class","style","_len","args","Array","_key","_len2","_key2"],"sources":["../../../src/labs/VNumberInput/VNumberInput.tsx"],"sourcesContent":["// Styles\nimport './VNumberInput.sass'\n\n// Components\nimport { VBtn } from '../../components/VBtn'\nimport { VDefaultsProvider } from '../../components/VDefaultsProvider'\nimport { VDivider } from '../../components/VDivider'\nimport { makeVTextFieldProps, VTextField } from '@/components/VTextField/VTextField'\n\n// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, watchEffect } from 'vue'\nimport { clamp, genericComponent, getDecimals, omit, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VTextFieldSlots } from '@/components/VTextField/VTextField'\n\ntype ControlSlot = {\n click: () => void\n}\n\ntype VNumberInputSlots = Omit<VTextFieldSlots, 'default'> & {\n increment: ControlSlot\n decrement: ControlSlot\n}\n\ntype ControlVariant = 'default' | 'stacked' | 'split'\n\nconst makeVNumberInputProps = propsFactory({\n controlVariant: {\n type: String as PropType<ControlVariant>,\n default: 'default',\n },\n inset: Boolean,\n hideInput: Boolean,\n min: {\n type: Number,\n default: -Infinity,\n },\n max: {\n type: Number,\n default: Infinity,\n },\n step: {\n type: Number,\n default: 1,\n },\n\n ...omit(makeVTextFieldProps(), ['appendInnerIcon', 'prependInnerIcon']),\n}, 'VNumberInput')\n\nexport const VNumberInput = genericComponent<VNumberInputSlots>()({\n name: 'VNumberInput',\n\n inheritAttrs: false,\n\n props: {\n ...makeVNumberInputProps(),\n },\n\n emits: {\n 'update:modelValue': (val: number) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const model = useProxiedModel(props, 'modelValue')\n\n const stepDecimals = computed(() => getDecimals(props.step))\n const modelDecimals = computed(() => model.value != null ? getDecimals(model.value) : 0)\n\n const canIncrease = computed(() => {\n if (model.value == null) return true\n return model.value + props.step <= props.max\n })\n const canDecrease = computed(() => {\n if (model.value == null) return true\n return model.value - props.step >= props.min\n })\n\n watchEffect(() => {\n if (model.value != null && (model.value < props.min || model.value > props.max)) {\n model.value = clamp(model.value, props.min, props.max)\n }\n })\n\n const controlVariant = computed(() => {\n return props.hideInput ? 'stacked' : props.controlVariant\n })\n\n const incrementSlotProps = computed(() => ({ click: onClickUp }))\n\n const decrementSlotProps = computed(() => ({ click: onClickDown }))\n\n function toggleUpDown (increment = true) {\n if (model.value == null) {\n model.value = 0\n return\n }\n\n const decimals = Math.max(modelDecimals.value, stepDecimals.value)\n if (increment) {\n if (canIncrease.value) model.value = +(((model.value + props.step).toFixed(decimals)))\n } else {\n if (canDecrease.value) model.value = +(((model.value - props.step).toFixed(decimals)))\n }\n }\n\n function onClickUp () {\n toggleUpDown()\n }\n\n function onClickDown () {\n toggleUpDown(false)\n }\n\n function onKeydown (e: KeyboardEvent) {\n if (\n ['Enter', 'ArrowLeft', 'ArrowRight', 'Backspace', 'Tab'].includes(e.key) ||\n e.ctrlKey\n ) return\n\n if (['ArrowDown'].includes(e.key)) {\n e.preventDefault()\n toggleUpDown(false)\n return\n }\n if (['ArrowUp'].includes(e.key)) {\n e.preventDefault()\n toggleUpDown()\n return\n }\n\n // Only numbers, +, - & . are allowed\n if (!/^[0-9\\-+.]+$/.test(e.key)) {\n e.preventDefault()\n }\n }\n\n function onModelUpdate (v: string) {\n model.value = v ? +(v) : undefined\n }\n\n useRender(() => {\n const { modelValue: _, ...textFieldProps } = VTextField.filterProps(props)\n\n function controlNode () {\n const defaultHeight = controlVariant.value === 'stacked' ? 'auto' : '100%'\n return (\n <div class=\"v-number-input__control\">\n {\n !slots.decrement ? (\n <VBtn\n disabled={ !canDecrease.value }\n flat\n key=\"decrement-btn\"\n height={ defaultHeight }\n name=\"decrement-btn\"\n icon=\"$expand\"\n size=\"small\"\n tabindex=\"-1\"\n onClick={ onClickDown }\n />\n ) : (\n <VDefaultsProvider\n key=\"decrement-defaults\"\n defaults={{\n VBtn: {\n disabled: !canDecrease.value,\n flat: true,\n height: defaultHeight,\n size: 'small',\n icon: '$expand',\n },\n }}\n >\n { slots.decrement(decrementSlotProps.value) }\n </VDefaultsProvider>\n )\n }\n\n <VDivider\n vertical={ controlVariant.value !== 'stacked' }\n />\n\n {\n !slots.increment ? (\n <VBtn\n disabled={ !canIncrease.value }\n flat\n key=\"increment-btn\"\n height={ defaultHeight }\n name=\"increment-btn\"\n icon=\"$collapse\"\n onClick={ onClickUp }\n size=\"small\"\n tabindex=\"-1\"\n />\n ) : (\n <VDefaultsProvider\n key=\"increment-defaults\"\n defaults={{\n VBtn: {\n disabled: !canIncrease.value,\n flat: true,\n height: defaultHeight,\n size: 'small',\n icon: '$collapse',\n },\n }}\n >\n { slots.increment(incrementSlotProps.value) }\n </VDefaultsProvider>\n )\n }\n </div>\n )\n }\n\n function dividerNode () {\n return !props.hideInput && !props.inset ? <VDivider vertical /> : undefined\n }\n\n const appendInnerControl =\n controlVariant.value === 'split'\n ? (\n <div class=\"v-number-input__control\">\n <VDivider vertical />\n\n <VBtn\n flat\n height=\"100%\"\n icon=\"$plus\"\n tile\n tabindex=\"-1\"\n onClick={ onClickUp }\n />\n </div>\n ) : (!props.reverse\n ? <>{ dividerNode() }{ controlNode() }</>\n : undefined)\n\n const hasAppendInner = slots['append-inner'] || appendInnerControl\n\n const prependInnerControl =\n controlVariant.value === 'split'\n ? (\n <div class=\"v-number-input__control\">\n <VBtn\n flat\n height=\"100%\"\n icon=\"$minus\"\n tile\n tabindex=\"-1\"\n onClick={ onClickDown }\n />\n\n <VDivider vertical />\n </div>\n ) : (props.reverse\n ? <>{ controlNode() }{ dividerNode() }</>\n : undefined)\n\n const hasPrependInner = slots['prepend-inner'] || prependInnerControl\n\n return (\n <VTextField\n modelValue={ model.value }\n onUpdate:modelValue={ onModelUpdate }\n onKeydown={ onKeydown }\n class={[\n 'v-number-input',\n {\n 'v-number-input--default': controlVariant.value === 'default',\n 'v-number-input--hide-input': props.hideInput,\n 'v-number-input--inset': props.inset,\n 'v-number-input--reverse': props.reverse,\n 'v-number-input--split': controlVariant.value === 'split',\n 'v-number-input--stacked': controlVariant.value === 'stacked',\n },\n props.class,\n ]}\n { ...textFieldProps }\n style={ props.style }\n >\n {{\n ...slots,\n 'append-inner': hasAppendInner ? (...args) => (\n <>\n { slots['append-inner']?.(...args) }\n { appendInnerControl }\n </>\n ) : undefined,\n 'prepend-inner': hasPrependInner ? (...args) => (\n <>\n { prependInnerControl }\n { slots['prepend-inner']?.(...args) }\n </>\n ) : undefined,\n }}\n </VTextField>\n )\n })\n },\n})\n\nexport type VNumberInput = InstanceType<typeof VNumberInput>\n"],"mappings":"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","ignoreList":[]}
|