@vuetify/nightly 3.6.13-3.7.0-beta.0.0-pr-20092.a834b18 → 3.6.13-pr-20185.5bf1ff4
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 +125 -273
- package/dist/json/importMap-labs.json +16 -16
- package/dist/json/importMap.json +118 -118
- package/dist/json/tags.json +5 -42
- package/dist/json/web-types.json +239 -610
- package/dist/vuetify-labs.css +3046 -2341
- package/dist/vuetify-labs.d.ts +368 -697
- package/dist/vuetify-labs.esm.js +239 -241
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +239 -241
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +1273 -568
- package/dist/vuetify.d.ts +342 -605
- package/dist/vuetify.esm.js +100 -160
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +100 -160
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +1038 -1037
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAlert/VAlert.css +5 -1
- package/lib/components/VAppBar/index.d.mts +0 -6
- package/lib/components/VAutocomplete/VAutocomplete.css +4 -0
- package/lib/components/VAutocomplete/VAutocomplete.mjs +8 -15
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VAutocomplete/index.d.mts +42 -61
- package/lib/components/VAvatar/VAvatar.css +2 -7
- package/lib/components/VAvatar/VAvatar.mjs +2 -7
- package/lib/components/VAvatar/VAvatar.mjs.map +1 -1
- package/lib/components/VAvatar/VAvatar.sass +0 -1
- package/lib/components/VAvatar/_variables.scss +0 -13
- package/lib/components/VAvatar/index.d.mts +0 -6
- package/lib/components/VBadge/VBadge.css +2 -0
- package/lib/components/VBanner/VBanner.css +12 -4
- package/lib/components/VBottomNavigation/VBottomNavigation.css +11 -3
- package/lib/components/VBottomSheet/VBottomSheet.css +2 -0
- package/lib/components/VBreadcrumbs/index.d.mts +8 -8
- package/lib/components/VBtn/VBtn.css +16 -9
- package/lib/components/VBtn/VBtn.mjs +2 -4
- package/lib/components/VBtn/VBtn.mjs.map +1 -1
- package/lib/components/VBtn/VBtn.sass +4 -4
- package/lib/components/VBtn/index.d.mts +0 -6
- package/lib/components/VBtnGroup/VBtnGroup.css +12 -4
- package/lib/components/VCard/VCard.css +9 -1
- package/lib/components/VCarousel/VCarousel.css +2 -0
- package/lib/components/VCarousel/index.d.mts +0 -9
- package/lib/components/VCheckbox/index.d.mts +6 -6
- package/lib/components/VChip/VChip.css +15 -9
- package/lib/components/VChip/VChip.sass +1 -1
- package/lib/components/VColorPicker/VColorPicker.css +2 -0
- package/lib/components/VColorPicker/VColorPicker.sass +4 -4
- package/lib/components/VColorPicker/VColorPickerPreview.sass +4 -4
- package/lib/components/VCombobox/VCombobox.css +4 -0
- package/lib/components/VCombobox/VCombobox.mjs +8 -15
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VCombobox/index.d.mts +42 -61
- package/lib/components/VDataTable/composables/options.mjs +1 -1
- package/lib/components/VDataTable/composables/options.mjs.map +1 -1
- package/lib/components/VDialog/VDialog.css +5 -0
- package/lib/components/VDialog/index.d.mts +3 -3
- package/lib/components/VDivider/VDivider.css +2 -0
- package/lib/components/VExpansionPanel/VExpansionPanel.css +11 -5
- package/lib/components/VExpansionPanel/VExpansionPanel.sass +3 -3
- package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs +2 -7
- package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs.map +1 -1
- package/lib/components/VExpansionPanel/index.d.mts +0 -72
- package/lib/components/VFab/index.d.mts +0 -6
- package/lib/components/VField/VField.css +13 -1
- package/lib/components/VField/VField.sass +5 -8
- package/lib/components/VFileInput/index.d.mts +18 -18
- package/lib/components/VFooter/VFooter.css +12 -4
- package/lib/components/VFooter/VFooter.mjs +20 -14
- package/lib/components/VFooter/VFooter.mjs.map +1 -1
- package/lib/components/VFooter/index.d.mts +3 -3
- package/lib/components/VForm/index.d.mts +9 -9
- package/lib/components/VGrid/VContainer.mjs +1 -6
- package/lib/components/VGrid/VContainer.mjs.map +1 -1
- package/lib/components/VGrid/VGrid.sass +1 -1
- package/lib/components/VGrid/_mixins.sass +4 -4
- package/lib/components/VGrid/index.d.mts +0 -36
- package/lib/components/VImg/VImg.css +6 -9
- package/lib/components/VImg/VImg.mjs +0 -2
- package/lib/components/VImg/VImg.mjs.map +1 -1
- package/lib/components/VImg/VImg.sass +0 -9
- package/lib/components/VImg/index.d.mts +0 -9
- package/lib/components/VInput/index.d.mts +6 -6
- package/lib/components/VKbd/VKbd.css +2 -0
- package/lib/components/VList/VList.css +12 -4
- package/lib/components/VList/VListItem.css +23 -13
- package/lib/components/VList/VListItem.mjs +1 -3
- package/lib/components/VList/VListItem.mjs.map +1 -1
- package/lib/components/VList/VListItem.sass +2 -2
- package/lib/components/VList/index.d.mts +18 -19
- package/lib/components/VMain/VMain.css +2 -0
- package/lib/components/VMenu/VMenu.css +6 -0
- package/lib/components/VMenu/VMenu.mjs +8 -26
- package/lib/components/VMenu/VMenu.mjs.map +1 -1
- package/lib/components/VMenu/index.d.mts +15 -30
- package/lib/components/VNavigationDrawer/VNavigationDrawer.css +9 -3
- package/lib/components/VOtpInput/VOtpInput.css +3 -1
- package/lib/components/VOtpInput/VOtpInput.sass +1 -2
- package/lib/components/VOverflowBtn/VOverflowBtn.sass +1 -1
- package/lib/components/VOverlay/VOverlay.mjs +4 -5
- package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
- package/lib/components/VOverlay/useActivator.mjs +2 -3
- package/lib/components/VOverlay/useActivator.mjs.map +1 -1
- package/lib/components/VRadioGroup/index.d.mts +6 -6
- package/lib/components/VRangeSlider/index.d.mts +6 -6
- package/lib/components/VSelect/VSelect.css +4 -0
- package/lib/components/VSelect/VSelect.mjs +13 -15
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VSelect/index.d.mts +42 -61
- package/lib/components/VSelect/useScrolling.mjs +3 -3
- package/lib/components/VSelect/useScrolling.mjs.map +1 -1
- package/lib/components/VSelectionControl/VSelectionControl.css +6 -4
- package/lib/components/VSelectionControl/VSelectionControl.sass +1 -1
- package/lib/components/VSheet/VSheet.css +12 -4
- package/lib/components/VSkeletonLoader/VSkeletonLoader.css +6 -4
- package/lib/components/VSkeletonLoader/VSkeletonLoader.mjs +9 -8
- package/lib/components/VSkeletonLoader/VSkeletonLoader.mjs.map +1 -1
- package/lib/components/VSkeletonLoader/VSkeletonLoader.sass +1 -2
- package/lib/components/VSlideGroup/VSlideGroup.mjs +1 -3
- package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
- package/lib/components/VSlideGroup/index.d.mts +0 -6
- package/lib/components/VSlider/VSliderThumb.sass +2 -2
- package/lib/components/VSlider/index.d.mts +6 -6
- package/lib/components/VSnackbar/VSnackbar.css +2 -0
- package/lib/components/VSnackbar/VSnackbar.mjs +4 -4
- package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
- package/lib/components/VSnackbar/index.d.mts +3 -3
- package/lib/components/VSpeedDial/index.d.mts +13 -28
- package/lib/components/VStepper/VStepper.css +8 -2
- package/lib/components/VStepper/VStepper.sass +2 -4
- package/lib/components/VStepper/VStepperItem.css +4 -1
- package/lib/components/VStepper/VStepperItem.sass +1 -1
- package/lib/components/VSwitch/VSwitch.css +2 -0
- package/lib/components/VSwitch/VSwitch.sass +10 -10
- package/lib/components/VSwitch/index.d.mts +6 -6
- package/lib/components/VSystemBar/VSystemBar.css +14 -8
- package/lib/components/VTable/VTable.css +8 -4
- package/lib/components/VTable/VTable.sass +2 -3
- package/lib/components/VTabs/index.d.mts +3 -21
- package/lib/components/VTextField/index.d.mts +18 -18
- package/lib/components/VTextarea/index.d.mts +18 -18
- package/lib/components/VTimeline/VTimeline.css +2 -0
- package/lib/components/VToolbar/VToolbar.css +21 -7
- package/lib/components/VToolbar/VToolbar.sass +1 -2
- package/lib/components/VTooltip/index.d.mts +3 -3
- package/lib/components/VTreeview/VTreeview.sass +9 -9
- package/lib/components/VValidation/index.d.mts +8 -9
- package/lib/components/VVirtualScroll/VVirtualScroll.mjs +0 -2
- package/lib/components/VVirtualScroll/VVirtualScroll.mjs.map +1 -1
- package/lib/components/VVirtualScroll/index.d.mts +0 -3
- package/lib/components/index.d.mts +302 -565
- package/lib/composables/nested/nested.mjs +3 -3
- package/lib/composables/nested/nested.mjs.map +1 -1
- package/lib/composables/nested/openStrategies.mjs +2 -4
- package/lib/composables/nested/openStrategies.mjs.map +1 -1
- package/lib/composables/nested/selectStrategies.mjs +5 -5
- package/lib/composables/nested/selectStrategies.mjs.map +1 -1
- package/lib/composables/validation.mjs +6 -8
- package/lib/composables/validation.mjs.map +1 -1
- package/lib/composables/virtual.mjs +0 -1
- package/lib/composables/virtual.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/entry-bundler.mjs.map +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/framework.mjs.map +1 -1
- package/lib/index.d.mts +40 -40
- package/lib/labs/VDateInput/index.d.mts +6 -6
- package/lib/labs/VNumberInput/VNumberInput.mjs +60 -36
- package/lib/labs/VNumberInput/VNumberInput.mjs.map +1 -1
- package/lib/labs/VNumberInput/index.d.mts +23 -14
- package/lib/labs/VPicker/VPicker.css +6 -2
- package/lib/labs/VPicker/VPicker.sass +2 -3
- package/lib/labs/VSnackbarQueue/index.d.mts +3 -3
- package/lib/labs/VStepperVertical/index.d.mts +0 -36
- package/lib/labs/VTreeview/VTreeview.mjs +5 -7
- package/lib/labs/VTreeview/VTreeview.mjs.map +1 -1
- package/lib/labs/VTreeview/VTreeviewChildren.mjs +10 -33
- package/lib/labs/VTreeview/VTreeviewChildren.mjs.map +1 -1
- package/lib/labs/VTreeview/VTreeviewItem.css +1 -1
- package/lib/labs/VTreeview/VTreeviewItem.mjs +74 -14
- package/lib/labs/VTreeview/VTreeviewItem.mjs.map +1 -1
- package/lib/labs/VTreeview/VTreeviewItem.sass +5 -2
- package/lib/labs/VTreeview/index.d.mts +60 -77
- package/lib/labs/components.d.mts +92 -136
- package/lib/styles/generic/_colors.scss +9 -3
- package/lib/styles/main.css +520 -0
- package/lib/styles/tools/_absolute.sass +8 -7
- package/lib/styles/tools/_border.sass +4 -3
- package/lib/styles/tools/_display.sass +8 -7
- package/lib/styles/tools/_elevation.sass +4 -2
- package/lib/styles/tools/_index.sass +0 -1
- package/lib/styles/tools/_radius.sass +6 -5
- package/lib/styles/tools/_rounded.sass +2 -1
- package/lib/styles/tools/_theme.sass +3 -2
- package/lib/styles/tools/_typography.sass +6 -5
- package/lib/styles/tools/_utilities.sass +5 -5
- package/lib/styles/utilities/_index.sass +7 -7
- package/lib/util/helpers.mjs +0 -5
- package/lib/util/helpers.mjs.map +1 -1
- package/package.json +1 -1
- package/lib/styles/tools/_sheet.sass +0 -14
package/lib/index.d.mts
CHANGED
@@ -469,35 +469,35 @@ interface _GlobalComponents {
|
|
469
469
|
VAppBarTitle: typeof import('vuetify/components')['VAppBarTitle']
|
470
470
|
VApp: typeof import('vuetify/components')['VApp']
|
471
471
|
VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
|
472
|
+
VBadge: typeof import('vuetify/components')['VBadge']
|
473
|
+
VAvatar: typeof import('vuetify/components')['VAvatar']
|
474
|
+
VBanner: typeof import('vuetify/components')['VBanner']
|
475
|
+
VBannerActions: typeof import('vuetify/components')['VBannerActions']
|
476
|
+
VBannerText: typeof import('vuetify/components')['VBannerText']
|
472
477
|
VAlert: typeof import('vuetify/components')['VAlert']
|
473
478
|
VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
|
474
|
-
VAvatar: typeof import('vuetify/components')['VAvatar']
|
475
|
-
VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
|
476
|
-
VBadge: typeof import('vuetify/components')['VBadge']
|
477
479
|
VBreadcrumbs: typeof import('vuetify/components')['VBreadcrumbs']
|
478
480
|
VBreadcrumbsItem: typeof import('vuetify/components')['VBreadcrumbsItem']
|
479
481
|
VBreadcrumbsDivider: typeof import('vuetify/components')['VBreadcrumbsDivider']
|
480
|
-
|
481
|
-
VBannerActions: typeof import('vuetify/components')['VBannerActions']
|
482
|
-
VBannerText: typeof import('vuetify/components')['VBannerText']
|
483
|
-
VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
|
482
|
+
VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
|
484
483
|
VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
|
485
484
|
VBtn: typeof import('vuetify/components')['VBtn']
|
485
|
+
VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
|
486
|
+
VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
|
486
487
|
VCard: typeof import('vuetify/components')['VCard']
|
487
488
|
VCardActions: typeof import('vuetify/components')['VCardActions']
|
488
489
|
VCardItem: typeof import('vuetify/components')['VCardItem']
|
489
490
|
VCardSubtitle: typeof import('vuetify/components')['VCardSubtitle']
|
490
491
|
VCardText: typeof import('vuetify/components')['VCardText']
|
491
492
|
VCardTitle: typeof import('vuetify/components')['VCardTitle']
|
492
|
-
VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
|
493
493
|
VCarousel: typeof import('vuetify/components')['VCarousel']
|
494
494
|
VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
|
495
|
-
|
495
|
+
VChip: typeof import('vuetify/components')['VChip']
|
496
496
|
VCheckbox: typeof import('vuetify/components')['VCheckbox']
|
497
497
|
VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
|
498
|
-
VColorPicker: typeof import('vuetify/components')['VColorPicker']
|
499
498
|
VCode: typeof import('vuetify/components')['VCode']
|
500
|
-
|
499
|
+
VChipGroup: typeof import('vuetify/components')['VChipGroup']
|
500
|
+
VColorPicker: typeof import('vuetify/components')['VColorPicker']
|
501
501
|
VCombobox: typeof import('vuetify/components')['VCombobox']
|
502
502
|
VCounter: typeof import('vuetify/components')['VCounter']
|
503
503
|
VDataTable: typeof import('vuetify/components')['VDataTable']
|
@@ -507,36 +507,33 @@ interface _GlobalComponents {
|
|
507
507
|
VDataTableRow: typeof import('vuetify/components')['VDataTableRow']
|
508
508
|
VDataTableVirtual: typeof import('vuetify/components')['VDataTableVirtual']
|
509
509
|
VDataTableServer: typeof import('vuetify/components')['VDataTableServer']
|
510
|
-
VEmptyState: typeof import('vuetify/components')['VEmptyState']
|
511
|
-
VDivider: typeof import('vuetify/components')['VDivider']
|
512
|
-
VDialog: typeof import('vuetify/components')['VDialog']
|
513
510
|
VDatePicker: typeof import('vuetify/components')['VDatePicker']
|
514
511
|
VDatePickerControls: typeof import('vuetify/components')['VDatePickerControls']
|
515
512
|
VDatePickerHeader: typeof import('vuetify/components')['VDatePickerHeader']
|
516
513
|
VDatePickerMonth: typeof import('vuetify/components')['VDatePickerMonth']
|
517
514
|
VDatePickerMonths: typeof import('vuetify/components')['VDatePickerMonths']
|
518
515
|
VDatePickerYears: typeof import('vuetify/components')['VDatePickerYears']
|
516
|
+
VDivider: typeof import('vuetify/components')['VDivider']
|
517
|
+
VDialog: typeof import('vuetify/components')['VDialog']
|
518
|
+
VEmptyState: typeof import('vuetify/components')['VEmptyState']
|
519
|
+
VFab: typeof import('vuetify/components')['VFab']
|
519
520
|
VExpansionPanels: typeof import('vuetify/components')['VExpansionPanels']
|
520
521
|
VExpansionPanel: typeof import('vuetify/components')['VExpansionPanel']
|
521
522
|
VExpansionPanelText: typeof import('vuetify/components')['VExpansionPanelText']
|
522
523
|
VExpansionPanelTitle: typeof import('vuetify/components')['VExpansionPanelTitle']
|
523
|
-
|
524
|
+
VFileInput: typeof import('vuetify/components')['VFileInput']
|
524
525
|
VField: typeof import('vuetify/components')['VField']
|
525
526
|
VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
|
526
527
|
VFooter: typeof import('vuetify/components')['VFooter']
|
527
|
-
VImg: typeof import('vuetify/components')['VImg']
|
528
|
-
VFileInput: typeof import('vuetify/components')['VFileInput']
|
529
|
-
VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
|
530
|
-
VItemGroup: typeof import('vuetify/components')['VItemGroup']
|
531
|
-
VItem: typeof import('vuetify/components')['VItem']
|
532
|
-
VKbd: typeof import('vuetify/components')['VKbd']
|
533
|
-
VInput: typeof import('vuetify/components')['VInput']
|
534
528
|
VIcon: typeof import('vuetify/components')['VIcon']
|
535
529
|
VComponentIcon: typeof import('vuetify/components')['VComponentIcon']
|
536
530
|
VSvgIcon: typeof import('vuetify/components')['VSvgIcon']
|
537
531
|
VLigatureIcon: typeof import('vuetify/components')['VLigatureIcon']
|
538
532
|
VClassIcon: typeof import('vuetify/components')['VClassIcon']
|
539
|
-
|
533
|
+
VInput: typeof import('vuetify/components')['VInput']
|
534
|
+
VImg: typeof import('vuetify/components')['VImg']
|
535
|
+
VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
|
536
|
+
VKbd: typeof import('vuetify/components')['VKbd']
|
540
537
|
VList: typeof import('vuetify/components')['VList']
|
541
538
|
VListGroup: typeof import('vuetify/components')['VListGroup']
|
542
539
|
VListImg: typeof import('vuetify/components')['VListImg']
|
@@ -546,24 +543,27 @@ interface _GlobalComponents {
|
|
546
543
|
VListItemSubtitle: typeof import('vuetify/components')['VListItemSubtitle']
|
547
544
|
VListItemTitle: typeof import('vuetify/components')['VListItemTitle']
|
548
545
|
VListSubheader: typeof import('vuetify/components')['VListSubheader']
|
546
|
+
VLabel: typeof import('vuetify/components')['VLabel']
|
547
|
+
VItemGroup: typeof import('vuetify/components')['VItemGroup']
|
548
|
+
VItem: typeof import('vuetify/components')['VItem']
|
549
549
|
VMain: typeof import('vuetify/components')['VMain']
|
550
550
|
VMessages: typeof import('vuetify/components')['VMessages']
|
551
551
|
VMenu: typeof import('vuetify/components')['VMenu']
|
552
552
|
VNavigationDrawer: typeof import('vuetify/components')['VNavigationDrawer']
|
553
|
-
VProgressLinear: typeof import('vuetify/components')['VProgressLinear']
|
554
|
-
VOtpInput: typeof import('vuetify/components')['VOtpInput']
|
555
553
|
VOverlay: typeof import('vuetify/components')['VOverlay']
|
554
|
+
VOtpInput: typeof import('vuetify/components')['VOtpInput']
|
556
555
|
VPagination: typeof import('vuetify/components')['VPagination']
|
557
|
-
|
558
|
-
VRating: typeof import('vuetify/components')['VRating']
|
556
|
+
VProgressLinear: typeof import('vuetify/components')['VProgressLinear']
|
559
557
|
VProgressCircular: typeof import('vuetify/components')['VProgressCircular']
|
558
|
+
VRating: typeof import('vuetify/components')['VRating']
|
559
|
+
VRadioGroup: typeof import('vuetify/components')['VRadioGroup']
|
560
560
|
VSelect: typeof import('vuetify/components')['VSelect']
|
561
561
|
VSelectionControl: typeof import('vuetify/components')['VSelectionControl']
|
562
562
|
VSelectionControlGroup: typeof import('vuetify/components')['VSelectionControlGroup']
|
563
|
-
VSheet: typeof import('vuetify/components')['VSheet']
|
564
563
|
VSlideGroup: typeof import('vuetify/components')['VSlideGroup']
|
565
564
|
VSlideGroupItem: typeof import('vuetify/components')['VSlideGroupItem']
|
566
565
|
VSlider: typeof import('vuetify/components')['VSlider']
|
566
|
+
VSheet: typeof import('vuetify/components')['VSheet']
|
567
567
|
VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
|
568
568
|
VSnackbar: typeof import('vuetify/components')['VSnackbar']
|
569
569
|
VSwitch: typeof import('vuetify/components')['VSwitch']
|
@@ -573,31 +573,31 @@ interface _GlobalComponents {
|
|
573
573
|
VStepperItem: typeof import('vuetify/components')['VStepperItem']
|
574
574
|
VStepperWindow: typeof import('vuetify/components')['VStepperWindow']
|
575
575
|
VStepperWindowItem: typeof import('vuetify/components')['VStepperWindowItem']
|
576
|
+
VSystemBar: typeof import('vuetify/components')['VSystemBar']
|
576
577
|
VTab: typeof import('vuetify/components')['VTab']
|
577
578
|
VTabs: typeof import('vuetify/components')['VTabs']
|
578
579
|
VTabsWindow: typeof import('vuetify/components')['VTabsWindow']
|
579
580
|
VTabsWindowItem: typeof import('vuetify/components')['VTabsWindowItem']
|
580
|
-
VSystemBar: typeof import('vuetify/components')['VSystemBar']
|
581
|
-
VTextarea: typeof import('vuetify/components')['VTextarea']
|
582
581
|
VTable: typeof import('vuetify/components')['VTable']
|
583
|
-
|
584
|
-
VTooltip: typeof import('vuetify/components')['VTooltip']
|
582
|
+
VTextarea: typeof import('vuetify/components')['VTextarea']
|
585
583
|
VTimeline: typeof import('vuetify/components')['VTimeline']
|
586
584
|
VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
|
585
|
+
VTooltip: typeof import('vuetify/components')['VTooltip']
|
587
586
|
VToolbar: typeof import('vuetify/components')['VToolbar']
|
588
587
|
VToolbarTitle: typeof import('vuetify/components')['VToolbarTitle']
|
589
588
|
VToolbarItems: typeof import('vuetify/components')['VToolbarItems']
|
589
|
+
VTextField: typeof import('vuetify/components')['VTextField']
|
590
590
|
VWindow: typeof import('vuetify/components')['VWindow']
|
591
591
|
VWindowItem: typeof import('vuetify/components')['VWindowItem']
|
592
592
|
VConfirmEdit: typeof import('vuetify/components')['VConfirmEdit']
|
593
593
|
VDataIterator: typeof import('vuetify/components')['VDataIterator']
|
594
594
|
VDefaultsProvider: typeof import('vuetify/components')['VDefaultsProvider']
|
595
|
+
VForm: typeof import('vuetify/components')['VForm']
|
596
|
+
VHover: typeof import('vuetify/components')['VHover']
|
595
597
|
VContainer: typeof import('vuetify/components')['VContainer']
|
596
598
|
VCol: typeof import('vuetify/components')['VCol']
|
597
599
|
VRow: typeof import('vuetify/components')['VRow']
|
598
600
|
VSpacer: typeof import('vuetify/components')['VSpacer']
|
599
|
-
VForm: typeof import('vuetify/components')['VForm']
|
600
|
-
VHover: typeof import('vuetify/components')['VHover']
|
601
601
|
VLayout: typeof import('vuetify/components')['VLayout']
|
602
602
|
VLayoutItem: typeof import('vuetify/components')['VLayoutItem']
|
603
603
|
VLazy: typeof import('vuetify/components')['VLazy']
|
@@ -605,8 +605,8 @@ interface _GlobalComponents {
|
|
605
605
|
VNoSsr: typeof import('vuetify/components')['VNoSsr']
|
606
606
|
VParallax: typeof import('vuetify/components')['VParallax']
|
607
607
|
VRadio: typeof import('vuetify/components')['VRadio']
|
608
|
-
VRangeSlider: typeof import('vuetify/components')['VRangeSlider']
|
609
608
|
VResponsive: typeof import('vuetify/components')['VResponsive']
|
609
|
+
VRangeSlider: typeof import('vuetify/components')['VRangeSlider']
|
610
610
|
VSparkline: typeof import('vuetify/components')['VSparkline']
|
611
611
|
VSpeedDial: typeof import('vuetify/components')['VSpeedDial']
|
612
612
|
VThemeProvider: typeof import('vuetify/components')['VThemeProvider']
|
@@ -634,21 +634,21 @@ interface _GlobalComponents {
|
|
634
634
|
VCalendarInterval: typeof import('vuetify/labs/components')['VCalendarInterval']
|
635
635
|
VCalendarIntervalEvent: typeof import('vuetify/labs/components')['VCalendarIntervalEvent']
|
636
636
|
VCalendarMonthDay: typeof import('vuetify/labs/components')['VCalendarMonthDay']
|
637
|
+
VNumberInput: typeof import('vuetify/labs/components')['VNumberInput']
|
637
638
|
VPicker: typeof import('vuetify/labs/components')['VPicker']
|
638
639
|
VPickerTitle: typeof import('vuetify/labs/components')['VPickerTitle']
|
639
640
|
VStepperVertical: typeof import('vuetify/labs/components')['VStepperVertical']
|
640
641
|
VStepperVerticalItem: typeof import('vuetify/labs/components')['VStepperVerticalItem']
|
641
642
|
VStepperVerticalActions: typeof import('vuetify/labs/components')['VStepperVerticalActions']
|
642
|
-
VNumberInput: typeof import('vuetify/labs/components')['VNumberInput']
|
643
|
-
VTreeview: typeof import('vuetify/labs/components')['VTreeview']
|
644
|
-
VTreeviewItem: typeof import('vuetify/labs/components')['VTreeviewItem']
|
645
|
-
VTreeviewGroup: typeof import('vuetify/labs/components')['VTreeviewGroup']
|
646
643
|
VTimePicker: typeof import('vuetify/labs/components')['VTimePicker']
|
647
644
|
VTimePickerClock: typeof import('vuetify/labs/components')['VTimePickerClock']
|
648
645
|
VTimePickerControls: typeof import('vuetify/labs/components')['VTimePickerControls']
|
646
|
+
VTreeview: typeof import('vuetify/labs/components')['VTreeview']
|
647
|
+
VTreeviewItem: typeof import('vuetify/labs/components')['VTreeviewItem']
|
648
|
+
VTreeviewGroup: typeof import('vuetify/labs/components')['VTreeviewGroup']
|
649
|
+
VDateInput: typeof import('vuetify/labs/components')['VDateInput']
|
649
650
|
VPullToRefresh: typeof import('vuetify/labs/components')['VPullToRefresh']
|
650
651
|
VSnackbarQueue: typeof import('vuetify/labs/components')['VSnackbarQueue']
|
651
|
-
VDateInput: typeof import('vuetify/labs/components')['VDateInput']
|
652
652
|
}
|
653
653
|
declare module 'vue' {
|
654
654
|
export type JSXComponent<Props = any> = { new (): ComponentPublicInstance<Props> } | FunctionalComponent<Props>
|
@@ -98,7 +98,7 @@ declare const VDateInput: {
|
|
98
98
|
counter?: string | number | boolean | undefined;
|
99
99
|
'onUpdate:focused'?: ((args_0: boolean) => void) | undefined;
|
100
100
|
modelValue?: any;
|
101
|
-
validateOn?:
|
101
|
+
validateOn?: "lazy" | ("input" | "blur" | "submit") | "input lazy" | "blur lazy" | "submit lazy" | "lazy input" | "lazy blur" | "lazy submit" | undefined;
|
102
102
|
validationValue?: any;
|
103
103
|
rounded?: string | number | boolean | undefined;
|
104
104
|
baseColor?: string | undefined;
|
@@ -211,7 +211,7 @@ declare const VDateInput: {
|
|
211
211
|
counter?: string | number | boolean | undefined;
|
212
212
|
'onUpdate:focused'?: ((args_0: boolean) => void) | undefined;
|
213
213
|
modelValue?: any;
|
214
|
-
validateOn?:
|
214
|
+
validateOn?: "lazy" | ("input" | "blur" | "submit") | "input lazy" | "blur lazy" | "submit lazy" | "lazy input" | "lazy blur" | "lazy submit" | undefined;
|
215
215
|
validationValue?: any;
|
216
216
|
rounded?: string | number | boolean | undefined;
|
217
217
|
baseColor?: string | undefined;
|
@@ -384,7 +384,7 @@ declare const VDateInput: {
|
|
384
384
|
counter?: string | number | boolean | undefined;
|
385
385
|
'onUpdate:focused'?: ((args_0: boolean) => void) | undefined;
|
386
386
|
modelValue?: any;
|
387
|
-
validateOn?:
|
387
|
+
validateOn?: "lazy" | ("input" | "blur" | "submit") | "input lazy" | "blur lazy" | "submit lazy" | "lazy input" | "lazy blur" | "lazy submit" | undefined;
|
388
388
|
validationValue?: any;
|
389
389
|
rounded?: string | number | boolean | undefined;
|
390
390
|
baseColor?: string | undefined;
|
@@ -550,7 +550,7 @@ declare const VDateInput: {
|
|
550
550
|
counter?: string | number | boolean | undefined;
|
551
551
|
'onUpdate:focused'?: ((args_0: boolean) => void) | undefined;
|
552
552
|
modelValue?: any;
|
553
|
-
validateOn?:
|
553
|
+
validateOn?: "lazy" | ("input" | "blur" | "submit") | "input lazy" | "blur lazy" | "submit lazy" | "lazy input" | "lazy blur" | "lazy submit" | undefined;
|
554
554
|
validationValue?: any;
|
555
555
|
rounded?: string | number | boolean | undefined;
|
556
556
|
baseColor?: string | undefined;
|
@@ -800,7 +800,7 @@ declare const VDateInput: {
|
|
800
800
|
type: vue.PropType<readonly ValidationRule[]>;
|
801
801
|
default: () => never[];
|
802
802
|
};
|
803
|
-
validateOn: vue.PropType<
|
803
|
+
validateOn: vue.PropType<"lazy" | ("input" | "blur" | "submit") | "input lazy" | "blur lazy" | "submit lazy" | "lazy input" | "lazy blur" | "lazy submit" | undefined>;
|
804
804
|
validationValue: null;
|
805
805
|
density: {
|
806
806
|
type: vue.PropType<Density>;
|
@@ -1014,7 +1014,7 @@ declare const VDateInput: {
|
|
1014
1014
|
type: vue.PropType<readonly ValidationRule[]>;
|
1015
1015
|
default: () => never[];
|
1016
1016
|
};
|
1017
|
-
validateOn: vue.PropType<
|
1017
|
+
validateOn: vue.PropType<"lazy" | ("input" | "blur" | "submit") | "input lazy" | "blur lazy" | "submit lazy" | "lazy input" | "lazy blur" | "lazy submit" | undefined>;
|
1018
1018
|
validationValue: null;
|
1019
1019
|
density: {
|
1020
1020
|
type: vue.PropType<Density>;
|
@@ -9,7 +9,7 @@ import { VDivider } from "../../components/VDivider/index.mjs";
|
|
9
9
|
import { makeVTextFieldProps, VTextField } from "../../components/VTextField/VTextField.mjs"; // Composables
|
10
10
|
import { useForm } from "../../composables/form.mjs";
|
11
11
|
import { useProxiedModel } from "../../composables/proxiedModel.mjs"; // Utilities
|
12
|
-
import { computed,
|
12
|
+
import { computed, nextTick, onMounted, ref } from 'vue';
|
13
13
|
import { clamp, genericComponent, getDecimals, omit, propsFactory, useRender } from "../../util/index.mjs"; // Types
|
14
14
|
const makeVNumberInputProps = propsFactory({
|
15
15
|
controlVariant: {
|
@@ -18,19 +18,23 @@ const makeVNumberInputProps = propsFactory({
|
|
18
18
|
},
|
19
19
|
inset: Boolean,
|
20
20
|
hideInput: Boolean,
|
21
|
+
modelValue: {
|
22
|
+
type: Number,
|
23
|
+
default: null
|
24
|
+
},
|
21
25
|
min: {
|
22
26
|
type: Number,
|
23
|
-
default:
|
27
|
+
default: Number.MIN_SAFE_INTEGER
|
24
28
|
},
|
25
29
|
max: {
|
26
30
|
type: Number,
|
27
|
-
default:
|
31
|
+
default: Number.MAX_SAFE_INTEGER
|
28
32
|
},
|
29
33
|
step: {
|
30
34
|
type: Number,
|
31
35
|
default: 1
|
32
36
|
},
|
33
|
-
...omit(makeVTextFieldProps(), ['appendInnerIcon', 'prependInnerIcon'])
|
37
|
+
...omit(makeVTextFieldProps({}), ['appendInnerIcon', 'modelValue', 'prependInnerIcon'])
|
34
38
|
}, 'VNumberInput');
|
35
39
|
export const VNumberInput = genericComponent()({
|
36
40
|
name: 'VNumberInput',
|
@@ -42,30 +46,27 @@ export const VNumberInput = genericComponent()({
|
|
42
46
|
},
|
43
47
|
setup(props, _ref) {
|
44
48
|
let {
|
45
|
-
attrs,
|
46
|
-
emit,
|
47
49
|
slots
|
48
50
|
} = _ref;
|
49
|
-
const
|
51
|
+
const _model = useProxiedModel(props, 'modelValue');
|
52
|
+
const model = computed({
|
53
|
+
get: () => _model.value,
|
54
|
+
set(val) {
|
55
|
+
if (typeof val !== 'string') _model.value = val;
|
56
|
+
}
|
57
|
+
});
|
58
|
+
const vTextFieldRef = ref();
|
50
59
|
const stepDecimals = computed(() => getDecimals(props.step));
|
51
|
-
const modelDecimals = computed(() => model.value
|
60
|
+
const modelDecimals = computed(() => typeof model.value === 'number' ? getDecimals(model.value) : 0);
|
52
61
|
const form = useForm();
|
53
62
|
const controlsDisabled = computed(() => props.disabled || props.readonly || form?.isReadonly.value);
|
54
63
|
const canIncrease = computed(() => {
|
55
64
|
if (controlsDisabled.value) return false;
|
56
|
-
|
57
|
-
return model.value + props.step <= props.max;
|
65
|
+
return (model.value ?? 0) + props.step <= props.max;
|
58
66
|
});
|
59
67
|
const canDecrease = computed(() => {
|
60
68
|
if (controlsDisabled.value) return false;
|
61
|
-
|
62
|
-
return model.value - props.step >= props.min;
|
63
|
-
});
|
64
|
-
watchEffect(() => {
|
65
|
-
if (controlsDisabled.value) return;
|
66
|
-
if (model.value != null && (model.value < props.min || model.value > props.max)) {
|
67
|
-
model.value = clamp(model.value, props.min, props.max);
|
68
|
-
}
|
69
|
+
return (model.value ?? 0) - props.step >= props.min;
|
69
70
|
});
|
70
71
|
const controlVariant = computed(() => {
|
71
72
|
return props.hideInput ? 'stacked' : props.controlVariant;
|
@@ -80,11 +81,16 @@ export const VNumberInput = genericComponent()({
|
|
80
81
|
const decrementSlotProps = computed(() => ({
|
81
82
|
click: onClickDown
|
82
83
|
}));
|
84
|
+
onMounted(() => {
|
85
|
+
if (!props.readonly && !props.disabled) {
|
86
|
+
clampModel();
|
87
|
+
}
|
88
|
+
});
|
83
89
|
function toggleUpDown() {
|
84
90
|
let increment = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
|
85
91
|
if (controlsDisabled.value) return;
|
86
92
|
if (model.value == null) {
|
87
|
-
model.value = 0;
|
93
|
+
model.value = clamp(0, props.min, props.max);
|
88
94
|
return;
|
89
95
|
}
|
90
96
|
const decimals = Math.max(modelDecimals.value, stepDecimals.value);
|
@@ -102,30 +108,45 @@ export const VNumberInput = genericComponent()({
|
|
102
108
|
e.stopPropagation();
|
103
109
|
toggleUpDown(false);
|
104
110
|
}
|
105
|
-
function
|
106
|
-
if (
|
107
|
-
|
111
|
+
function onBeforeinput(e) {
|
112
|
+
if (!e.data) return;
|
113
|
+
const existingTxt = e.target?.value;
|
114
|
+
const selectionStart = e.target?.selectionStart;
|
115
|
+
const selectionEnd = e.target?.selectionEnd;
|
116
|
+
const potentialNewInputVal = existingTxt ? existingTxt.slice(0, selectionStart) + e.data + existingTxt.slice(selectionEnd) : e.data;
|
117
|
+
// Only numbers, "-", "." are allowed
|
118
|
+
// AND "-", "." are allowed only once
|
119
|
+
// AND "-" is only allowed at the start
|
120
|
+
if (!/^-?(\d+(\.\d*)?|(\.\d+)|\d*|\.)$/.test(potentialNewInputVal)) {
|
108
121
|
e.preventDefault();
|
109
|
-
toggleUpDown(false);
|
110
|
-
return;
|
111
122
|
}
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
}
|
117
|
-
|
118
|
-
// Only numbers, +, - & . are allowed
|
119
|
-
if (!/^[0-9\-+.]+$/.test(e.key)) {
|
123
|
+
}
|
124
|
+
async function onKeydown(e) {
|
125
|
+
if (['Enter', 'ArrowLeft', 'ArrowRight', 'Backspace', 'Delete', 'Tab'].includes(e.key) || e.ctrlKey) return;
|
126
|
+
if (['ArrowDown', 'ArrowUp'].includes(e.key)) {
|
120
127
|
e.preventDefault();
|
128
|
+
clampModel();
|
129
|
+
// _model is controlled, so need to wait until props['modelValue'] is updated
|
130
|
+
await nextTick();
|
131
|
+
if (e.key === 'ArrowDown') {
|
132
|
+
toggleUpDown(false);
|
133
|
+
} else {
|
134
|
+
toggleUpDown();
|
135
|
+
}
|
121
136
|
}
|
122
137
|
}
|
123
|
-
function onModelUpdate(v) {
|
124
|
-
model.value = v ? +v : undefined;
|
125
|
-
}
|
126
138
|
function onControlMousedown(e) {
|
127
139
|
e.stopPropagation();
|
128
140
|
}
|
141
|
+
function clampModel() {
|
142
|
+
if (!vTextFieldRef.value) return;
|
143
|
+
const inputText = vTextFieldRef.value.value;
|
144
|
+
if (inputText && !isNaN(+inputText)) {
|
145
|
+
model.value = clamp(+inputText, props.min, props.max);
|
146
|
+
} else {
|
147
|
+
model.value = null;
|
148
|
+
}
|
149
|
+
}
|
129
150
|
useRender(() => {
|
130
151
|
const {
|
131
152
|
modelValue: _,
|
@@ -210,8 +231,11 @@ export const VNumberInput = genericComponent()({
|
|
210
231
|
}, null)]) : props.reverse ? _createVNode(_Fragment, null, [controlNode(), dividerNode()]) : undefined;
|
211
232
|
const hasPrependInner = slots['prepend-inner'] || prependInnerControl;
|
212
233
|
return _createVNode(VTextField, _mergeProps({
|
234
|
+
"ref": vTextFieldRef,
|
213
235
|
"modelValue": model.value,
|
214
|
-
"onUpdate:modelValue":
|
236
|
+
"onUpdate:modelValue": $event => model.value = $event,
|
237
|
+
"onBeforeinput": onBeforeinput,
|
238
|
+
"onChange": clampModel,
|
215
239
|
"onKeydown": onKeydown,
|
216
240
|
"class": ['v-number-input', {
|
217
241
|
'v-number-input--default': controlVariant.value === 'default',
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"VNumberInput.mjs","names":["VBtn","VDefaultsProvider","VDivider","makeVTextFieldProps","VTextField","useForm","useProxiedModel","computed","watchEffect","clamp","genericComponent","getDecimals","omit","propsFactory","useRender","makeVNumberInputProps","controlVariant","type","String","default","inset","Boolean","hideInput","min","Number","Infinity","max","step","VNumberInput","name","props","emits","val","setup","_ref","attrs","emit","slots","model","stepDecimals","modelDecimals","value","form","controlsDisabled","disabled","readonly","isReadonly","canIncrease","canDecrease","incrementIcon","decrementIcon","controlNodeSize","controlNodeDefaultHeight","incrementSlotProps","click","onClickUp","decrementSlotProps","onClickDown","toggleUpDown","increment","arguments","length","undefined","decimals","Math","toFixed","e","stopPropagation","onKeydown","includes","key","ctrlKey","preventDefault","test","onModelUpdate","v","onControlMousedown","modelValue","_","textFieldProps","filterProps","incrementControlNode","_createVNode","flat","height","size","icon","decrementControlNode","decrement","controlNode","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 { useForm } from '@/composables/form'\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: (e: MouseEvent) => 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 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 form = useForm()\n const controlsDisabled = computed(() => (\n props.disabled || props.readonly || form?.isReadonly.value\n ))\n\n const canIncrease = computed(() => {\n if (controlsDisabled.value) return false\n if (model.value == null) return true\n return model.value + props.step <= props.max\n })\n const canDecrease = computed(() => {\n if (controlsDisabled.value) return false\n if (model.value == null) return true\n return model.value - props.step >= props.min\n })\n\n watchEffect(() => {\n if (controlsDisabled.value) return\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 incrementIcon = computed(() => controlVariant.value === 'split' ? '$plus' : '$collapse')\n const decrementIcon = computed(() => controlVariant.value === 'split' ? '$minus' : '$expand')\n const controlNodeSize = computed(() => controlVariant.value === 'split' ? 'default' : 'small')\n const controlNodeDefaultHeight = computed(() => controlVariant.value === 'stacked' ? 'auto' : '100%')\n\n const incrementSlotProps = computed(() => ({ click: onClickUp }))\n\n const decrementSlotProps = computed(() => ({ click: onClickDown }))\n\n function toggleUpDown (increment = true) {\n if (controlsDisabled.value) return\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 (e: MouseEvent) {\n e.stopPropagation()\n toggleUpDown()\n }\n\n function onClickDown (e: MouseEvent) {\n e.stopPropagation()\n toggleUpDown(false)\n }\n\n function onKeydown (e: KeyboardEvent) {\n if (\n ['Enter', 'ArrowLeft', 'ArrowRight', 'Backspace', 'Delete', '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 function onControlMousedown (e: MouseEvent) {\n e.stopPropagation()\n }\n\n useRender(() => {\n const { modelValue: _, ...textFieldProps } = VTextField.filterProps(props)\n\n function incrementControlNode () {\n return !slots.increment ? (\n <VBtn\n disabled={ !canIncrease.value }\n flat\n key=\"increment-btn\"\n height={ controlNodeDefaultHeight.value }\n name=\"increment-btn\"\n icon={ incrementIcon.value }\n onClick={ onClickUp }\n onMousedown={ onControlMousedown }\n size={ controlNodeSize.value }\n tabindex=\"-1\"\n />\n ) : (\n <VDefaultsProvider\n key=\"increment-defaults\"\n defaults={{\n VBtn: {\n disabled: !canIncrease.value,\n flat: true,\n height: controlNodeDefaultHeight.value,\n size: controlNodeSize.value,\n icon: incrementIcon.value,\n },\n }}\n >\n { slots.increment(incrementSlotProps.value) }\n </VDefaultsProvider>\n )\n }\n\n function decrementControlNode () {\n return !slots.decrement ? (\n <VBtn\n disabled={ !canDecrease.value }\n flat\n key=\"decrement-btn\"\n height={ controlNodeDefaultHeight.value }\n name=\"decrement-btn\"\n icon={ decrementIcon.value }\n size={ controlNodeSize.value }\n tabindex=\"-1\"\n onClick={ onClickDown }\n onMousedown={ onControlMousedown }\n />\n ) : (\n <VDefaultsProvider\n key=\"decrement-defaults\"\n defaults={{\n VBtn: {\n disabled: !canDecrease.value,\n flat: true,\n height: controlNodeDefaultHeight.value,\n size: controlNodeSize.value,\n icon: decrementIcon.value,\n },\n }}\n >\n { slots.decrement(decrementSlotProps.value) }\n </VDefaultsProvider>\n )\n }\n\n function controlNode () {\n return (\n <div class=\"v-number-input__control\">\n { decrementControlNode() }\n\n <VDivider\n vertical={ controlVariant.value !== 'stacked' }\n />\n\n { incrementControlNode() }\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 { incrementControlNode() }\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 { decrementControlNode() }\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 inputmode=\"decimal\"\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":[]}
|
1
|
+
{"version":3,"file":"VNumberInput.mjs","names":["VBtn","VDefaultsProvider","VDivider","makeVTextFieldProps","VTextField","useForm","useProxiedModel","computed","nextTick","onMounted","ref","clamp","genericComponent","getDecimals","omit","propsFactory","useRender","makeVNumberInputProps","controlVariant","type","String","default","inset","Boolean","hideInput","modelValue","Number","min","MIN_SAFE_INTEGER","max","MAX_SAFE_INTEGER","step","VNumberInput","name","props","emits","val","setup","_ref","slots","_model","model","get","value","set","vTextFieldRef","stepDecimals","modelDecimals","form","controlsDisabled","disabled","readonly","isReadonly","canIncrease","canDecrease","incrementIcon","decrementIcon","controlNodeSize","controlNodeDefaultHeight","incrementSlotProps","click","onClickUp","decrementSlotProps","onClickDown","clampModel","toggleUpDown","increment","arguments","length","undefined","decimals","Math","toFixed","e","stopPropagation","onBeforeinput","data","existingTxt","target","selectionStart","selectionEnd","potentialNewInputVal","slice","test","preventDefault","onKeydown","includes","key","ctrlKey","onControlMousedown","inputText","isNaN","_","textFieldProps","filterProps","incrementControlNode","_createVNode","flat","height","size","icon","decrementControlNode","decrement","controlNode","dividerNode","appendInnerControl","reverse","_Fragment","hasAppendInner","prependInnerControl","hasPrependInner","_mergeProps","$event","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 { useForm } from '@/composables/form'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, nextTick, onMounted, ref } 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: (e: MouseEvent) => 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 modelValue: {\n type: Number as PropType<Number | null>,\n default: null,\n },\n min: {\n type: Number,\n default: Number.MIN_SAFE_INTEGER,\n },\n max: {\n type: Number,\n default: Number.MAX_SAFE_INTEGER,\n },\n step: {\n type: Number,\n default: 1,\n },\n\n ...omit(makeVTextFieldProps({}), ['appendInnerIcon', 'modelValue', 'prependInnerIcon']),\n}, 'VNumberInput')\n\nexport const VNumberInput = genericComponent<VNumberInputSlots>()({\n name: 'VNumberInput',\n\n props: {\n ...makeVNumberInputProps(),\n },\n\n emits: {\n 'update:modelValue': (val: number) => true,\n },\n\n setup (props, { slots }) {\n const _model = useProxiedModel(props, 'modelValue')\n\n const model = computed({\n get: () => _model.value,\n set (val) {\n if (typeof val !== 'string') _model.value = val\n },\n })\n\n const vTextFieldRef = ref<VTextField | undefined>()\n\n const stepDecimals = computed(() => getDecimals(props.step))\n const modelDecimals = computed(() => typeof model.value === 'number' ? getDecimals(model.value) : 0)\n\n const form = useForm()\n const controlsDisabled = computed(() => (\n props.disabled || props.readonly || form?.isReadonly.value\n ))\n\n const canIncrease = computed(() => {\n if (controlsDisabled.value) return false\n return (model.value ?? 0) as number + props.step <= props.max\n })\n const canDecrease = computed(() => {\n if (controlsDisabled.value) return false\n return (model.value ?? 0) as number - props.step >= props.min\n })\n\n const controlVariant = computed(() => {\n return props.hideInput ? 'stacked' : props.controlVariant\n })\n\n const incrementIcon = computed(() => controlVariant.value === 'split' ? '$plus' : '$collapse')\n const decrementIcon = computed(() => controlVariant.value === 'split' ? '$minus' : '$expand')\n const controlNodeSize = computed(() => controlVariant.value === 'split' ? 'default' : 'small')\n const controlNodeDefaultHeight = computed(() => controlVariant.value === 'stacked' ? 'auto' : '100%')\n\n const incrementSlotProps = computed(() => ({ click: onClickUp }))\n\n const decrementSlotProps = computed(() => ({ click: onClickDown }))\n\n onMounted(() => {\n if (!props.readonly && !props.disabled) {\n clampModel()\n }\n })\n\n function toggleUpDown (increment = true) {\n if (controlsDisabled.value) return\n if (model.value == null) {\n model.value = clamp(0, props.min, props.max)\n return\n }\n\n const decimals = Math.max(modelDecimals.value, stepDecimals.value)\n if (increment) {\n if (canIncrease.value) model.value = +((((model.value as number) + props.step).toFixed(decimals)))\n } else {\n if (canDecrease.value) model.value = +((((model.value as number) - props.step).toFixed(decimals)))\n }\n }\n\n function onClickUp (e: MouseEvent) {\n e.stopPropagation()\n toggleUpDown()\n }\n\n function onClickDown (e: MouseEvent) {\n e.stopPropagation()\n toggleUpDown(false)\n }\n\n function onBeforeinput (e: InputEvent) {\n if (!e.data) return\n const existingTxt = (e.target as HTMLInputElement)?.value\n const selectionStart = (e.target as HTMLInputElement)?.selectionStart\n const selectionEnd = (e.target as HTMLInputElement)?.selectionEnd\n const potentialNewInputVal =\n existingTxt\n ? existingTxt.slice(0, selectionStart as number | undefined) + e.data + existingTxt.slice(selectionEnd as number | undefined)\n : e.data\n // Only numbers, \"-\", \".\" are allowed\n // AND \"-\", \".\" are allowed only once\n // AND \"-\" is only allowed at the start\n if (!/^-?(\\d+(\\.\\d*)?|(\\.\\d+)|\\d*|\\.)$/.test(potentialNewInputVal)) {\n e.preventDefault()\n }\n }\n\n async function onKeydown (e: KeyboardEvent) {\n if (\n ['Enter', 'ArrowLeft', 'ArrowRight', 'Backspace', 'Delete', 'Tab'].includes(e.key) ||\n e.ctrlKey\n ) return\n\n if (['ArrowDown', 'ArrowUp'].includes(e.key)) {\n e.preventDefault()\n clampModel()\n // _model is controlled, so need to wait until props['modelValue'] is updated\n await nextTick()\n if (e.key === 'ArrowDown') {\n toggleUpDown(false)\n } else {\n toggleUpDown()\n }\n }\n }\n\n function onControlMousedown (e: MouseEvent) {\n e.stopPropagation()\n }\n\n function clampModel () {\n if (!vTextFieldRef.value) return\n const inputText = vTextFieldRef.value.value\n if (inputText && !isNaN(+inputText)) {\n model.value = clamp(+(inputText), props.min, props.max)\n } else {\n model.value = null\n }\n }\n\n useRender(() => {\n const { modelValue: _, ...textFieldProps } = VTextField.filterProps(props)\n\n function incrementControlNode () {\n return !slots.increment ? (\n <VBtn\n disabled={ !canIncrease.value }\n flat\n key=\"increment-btn\"\n height={ controlNodeDefaultHeight.value }\n name=\"increment-btn\"\n icon={ incrementIcon.value }\n onClick={ onClickUp }\n onMousedown={ onControlMousedown }\n size={ controlNodeSize.value }\n tabindex=\"-1\"\n />\n ) : (\n <VDefaultsProvider\n key=\"increment-defaults\"\n defaults={{\n VBtn: {\n disabled: !canIncrease.value,\n flat: true,\n height: controlNodeDefaultHeight.value,\n size: controlNodeSize.value,\n icon: incrementIcon.value,\n },\n }}\n >\n { slots.increment(incrementSlotProps.value) }\n </VDefaultsProvider>\n )\n }\n\n function decrementControlNode () {\n return !slots.decrement ? (\n <VBtn\n disabled={ !canDecrease.value }\n flat\n key=\"decrement-btn\"\n height={ controlNodeDefaultHeight.value }\n name=\"decrement-btn\"\n icon={ decrementIcon.value }\n size={ controlNodeSize.value }\n tabindex=\"-1\"\n onClick={ onClickDown }\n onMousedown={ onControlMousedown }\n />\n ) : (\n <VDefaultsProvider\n key=\"decrement-defaults\"\n defaults={{\n VBtn: {\n disabled: !canDecrease.value,\n flat: true,\n height: controlNodeDefaultHeight.value,\n size: controlNodeSize.value,\n icon: decrementIcon.value,\n },\n }}\n >\n { slots.decrement(decrementSlotProps.value) }\n </VDefaultsProvider>\n )\n }\n\n function controlNode () {\n return (\n <div class=\"v-number-input__control\">\n { decrementControlNode() }\n\n <VDivider\n vertical={ controlVariant.value !== 'stacked' }\n />\n\n { incrementControlNode() }\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 { incrementControlNode() }\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 { decrementControlNode() }\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 ref={ vTextFieldRef }\n v-model={ model.value }\n onBeforeinput={ onBeforeinput }\n onChange={ clampModel }\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 inputmode=\"decimal\"\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":[]}
|