vuetify 3.6.9 → 3.6.11
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 +2 -2
- package/dist/json/importMap-labs.json +16 -16
- package/dist/json/importMap.json +140 -140
- package/dist/json/web-types.json +6 -6
- package/dist/vuetify-labs.css +2443 -2443
- package/dist/vuetify-labs.d.ts +18 -30
- package/dist/vuetify-labs.esm.js +94 -85
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +94 -85
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +1862 -1862
- package/dist/vuetify.d.ts +48 -48
- package/dist/vuetify.esm.js +41 -20
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +41 -20
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +11 -9
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VDatePicker/VDatePicker.mjs +5 -2
- package/lib/components/VDatePicker/VDatePicker.mjs.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanel.mjs +23 -11
- package/lib/components/VExpansionPanel/VExpansionPanel.mjs.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs +13 -5
- package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs.map +1 -1
- package/lib/components/VOverlay/VOverlay.mjs +1 -1
- package/lib/components/VOverlay/VOverlay.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 +48 -48
- package/lib/labs/VNumberInput/VNumberInput.mjs +48 -55
- package/lib/labs/VNumberInput/VNumberInput.mjs.map +1 -1
- package/lib/labs/VStepperVertical/VStepperVertical.mjs +2 -0
- package/lib/labs/VStepperVertical/VStepperVertical.mjs.map +1 -1
- package/lib/labs/VTreeview/VTreeview.mjs +5 -12
- package/lib/labs/VTreeview/VTreeview.mjs.map +1 -1
- package/lib/labs/VTreeview/index.d.mts +18 -30
- package/lib/labs/components.d.mts +18 -30
- package/package.json +2 -2
package/lib/index.d.mts
CHANGED
|
@@ -492,38 +492,42 @@ declare module '@vue/runtime-core' {
|
|
|
492
492
|
}
|
|
493
493
|
|
|
494
494
|
export interface GlobalComponents {
|
|
495
|
+
VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
|
|
495
496
|
VApp: typeof import('vuetify/components')['VApp']
|
|
497
|
+
VAlert: typeof import('vuetify/components')['VAlert']
|
|
498
|
+
VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
|
|
496
499
|
VAppBar: typeof import('vuetify/components')['VAppBar']
|
|
497
500
|
VAppBarNavIcon: typeof import('vuetify/components')['VAppBarNavIcon']
|
|
498
501
|
VAppBarTitle: typeof import('vuetify/components')['VAppBarTitle']
|
|
499
|
-
|
|
500
|
-
VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
|
|
501
|
-
VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
|
|
502
|
+
VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
|
|
502
503
|
VAvatar: typeof import('vuetify/components')['VAvatar']
|
|
504
|
+
VBreadcrumbs: typeof import('vuetify/components')['VBreadcrumbs']
|
|
505
|
+
VBreadcrumbsItem: typeof import('vuetify/components')['VBreadcrumbsItem']
|
|
506
|
+
VBreadcrumbsDivider: typeof import('vuetify/components')['VBreadcrumbsDivider']
|
|
503
507
|
VBadge: typeof import('vuetify/components')['VBadge']
|
|
504
|
-
VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
|
|
505
|
-
VBtn: typeof import('vuetify/components')['VBtn']
|
|
506
508
|
VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
|
|
509
|
+
VBtn: typeof import('vuetify/components')['VBtn']
|
|
507
510
|
VBanner: typeof import('vuetify/components')['VBanner']
|
|
508
511
|
VBannerActions: typeof import('vuetify/components')['VBannerActions']
|
|
509
512
|
VBannerText: typeof import('vuetify/components')['VBannerText']
|
|
510
|
-
|
|
511
|
-
VBreadcrumbsItem: typeof import('vuetify/components')['VBreadcrumbsItem']
|
|
512
|
-
VBreadcrumbsDivider: typeof import('vuetify/components')['VBreadcrumbsDivider']
|
|
513
|
-
VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
|
|
513
|
+
VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
|
|
514
514
|
VCarousel: typeof import('vuetify/components')['VCarousel']
|
|
515
515
|
VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
|
|
516
|
+
VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
|
|
516
517
|
VCheckbox: typeof import('vuetify/components')['VCheckbox']
|
|
517
518
|
VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
|
|
518
|
-
VChip: typeof import('vuetify/components')['VChip']
|
|
519
519
|
VCard: typeof import('vuetify/components')['VCard']
|
|
520
520
|
VCardActions: typeof import('vuetify/components')['VCardActions']
|
|
521
521
|
VCardItem: typeof import('vuetify/components')['VCardItem']
|
|
522
522
|
VCardSubtitle: typeof import('vuetify/components')['VCardSubtitle']
|
|
523
523
|
VCardText: typeof import('vuetify/components')['VCardText']
|
|
524
524
|
VCardTitle: typeof import('vuetify/components')['VCardTitle']
|
|
525
|
+
VChip: typeof import('vuetify/components')['VChip']
|
|
526
|
+
VColorPicker: typeof import('vuetify/components')['VColorPicker']
|
|
527
|
+
VCounter: typeof import('vuetify/components')['VCounter']
|
|
528
|
+
VCode: typeof import('vuetify/components')['VCode']
|
|
525
529
|
VChipGroup: typeof import('vuetify/components')['VChipGroup']
|
|
526
|
-
|
|
530
|
+
VCombobox: typeof import('vuetify/components')['VCombobox']
|
|
527
531
|
VDataTable: typeof import('vuetify/components')['VDataTable']
|
|
528
532
|
VDataTableHeaders: typeof import('vuetify/components')['VDataTableHeaders']
|
|
529
533
|
VDataTableFooter: typeof import('vuetify/components')['VDataTableFooter']
|
|
@@ -531,10 +535,6 @@ declare module '@vue/runtime-core' {
|
|
|
531
535
|
VDataTableRow: typeof import('vuetify/components')['VDataTableRow']
|
|
532
536
|
VDataTableVirtual: typeof import('vuetify/components')['VDataTableVirtual']
|
|
533
537
|
VDataTableServer: typeof import('vuetify/components')['VDataTableServer']
|
|
534
|
-
VCode: typeof import('vuetify/components')['VCode']
|
|
535
|
-
VColorPicker: typeof import('vuetify/components')['VColorPicker']
|
|
536
|
-
VCombobox: typeof import('vuetify/components')['VCombobox']
|
|
537
|
-
VCounter: typeof import('vuetify/components')['VCounter']
|
|
538
538
|
VDatePicker: typeof import('vuetify/components')['VDatePicker']
|
|
539
539
|
VDatePickerControls: typeof import('vuetify/components')['VDatePickerControls']
|
|
540
540
|
VDatePickerHeader: typeof import('vuetify/components')['VDatePickerHeader']
|
|
@@ -542,28 +542,30 @@ declare module '@vue/runtime-core' {
|
|
|
542
542
|
VDatePickerMonths: typeof import('vuetify/components')['VDatePickerMonths']
|
|
543
543
|
VDatePickerYears: typeof import('vuetify/components')['VDatePickerYears']
|
|
544
544
|
VEmptyState: typeof import('vuetify/components')['VEmptyState']
|
|
545
|
+
VDialog: typeof import('vuetify/components')['VDialog']
|
|
546
|
+
VFab: typeof import('vuetify/components')['VFab']
|
|
547
|
+
VField: typeof import('vuetify/components')['VField']
|
|
548
|
+
VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
|
|
545
549
|
VExpansionPanels: typeof import('vuetify/components')['VExpansionPanels']
|
|
546
550
|
VExpansionPanel: typeof import('vuetify/components')['VExpansionPanel']
|
|
547
551
|
VExpansionPanelText: typeof import('vuetify/components')['VExpansionPanelText']
|
|
548
552
|
VExpansionPanelTitle: typeof import('vuetify/components')['VExpansionPanelTitle']
|
|
549
|
-
VDialog: typeof import('vuetify/components')['VDialog']
|
|
550
|
-
VField: typeof import('vuetify/components')['VField']
|
|
551
|
-
VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
|
|
552
553
|
VDivider: typeof import('vuetify/components')['VDivider']
|
|
553
|
-
VFab: typeof import('vuetify/components')['VFab']
|
|
554
554
|
VFileInput: typeof import('vuetify/components')['VFileInput']
|
|
555
|
-
|
|
555
|
+
VImg: typeof import('vuetify/components')['VImg']
|
|
556
556
|
VFooter: typeof import('vuetify/components')['VFooter']
|
|
557
557
|
VIcon: typeof import('vuetify/components')['VIcon']
|
|
558
558
|
VComponentIcon: typeof import('vuetify/components')['VComponentIcon']
|
|
559
559
|
VSvgIcon: typeof import('vuetify/components')['VSvgIcon']
|
|
560
560
|
VLigatureIcon: typeof import('vuetify/components')['VLigatureIcon']
|
|
561
561
|
VClassIcon: typeof import('vuetify/components')['VClassIcon']
|
|
562
|
-
VItemGroup: typeof import('vuetify/components')['VItemGroup']
|
|
563
|
-
VItem: typeof import('vuetify/components')['VItem']
|
|
564
|
-
VImg: typeof import('vuetify/components')['VImg']
|
|
565
562
|
VKbd: typeof import('vuetify/components')['VKbd']
|
|
566
563
|
VInput: typeof import('vuetify/components')['VInput']
|
|
564
|
+
VLabel: typeof import('vuetify/components')['VLabel']
|
|
565
|
+
VItemGroup: typeof import('vuetify/components')['VItemGroup']
|
|
566
|
+
VItem: typeof import('vuetify/components')['VItem']
|
|
567
|
+
VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
|
|
568
|
+
VMessages: typeof import('vuetify/components')['VMessages']
|
|
567
569
|
VList: typeof import('vuetify/components')['VList']
|
|
568
570
|
VListGroup: typeof import('vuetify/components')['VListGroup']
|
|
569
571
|
VListImg: typeof import('vuetify/components')['VListImg']
|
|
@@ -573,73 +575,69 @@ declare module '@vue/runtime-core' {
|
|
|
573
575
|
VListItemSubtitle: typeof import('vuetify/components')['VListItemSubtitle']
|
|
574
576
|
VListItemTitle: typeof import('vuetify/components')['VListItemTitle']
|
|
575
577
|
VListSubheader: typeof import('vuetify/components')['VListSubheader']
|
|
576
|
-
VLabel: typeof import('vuetify/components')['VLabel']
|
|
577
578
|
VMain: typeof import('vuetify/components')['VMain']
|
|
578
579
|
VMenu: typeof import('vuetify/components')['VMenu']
|
|
579
|
-
|
|
580
|
-
VMessages: typeof import('vuetify/components')['VMessages']
|
|
580
|
+
VOtpInput: typeof import('vuetify/components')['VOtpInput']
|
|
581
581
|
VOverlay: typeof import('vuetify/components')['VOverlay']
|
|
582
|
+
VNavigationDrawer: typeof import('vuetify/components')['VNavigationDrawer']
|
|
583
|
+
VProgressLinear: typeof import('vuetify/components')['VProgressLinear']
|
|
582
584
|
VPagination: typeof import('vuetify/components')['VPagination']
|
|
583
585
|
VProgressCircular: typeof import('vuetify/components')['VProgressCircular']
|
|
584
|
-
VOtpInput: typeof import('vuetify/components')['VOtpInput']
|
|
585
|
-
VProgressLinear: typeof import('vuetify/components')['VProgressLinear']
|
|
586
586
|
VRadioGroup: typeof import('vuetify/components')['VRadioGroup']
|
|
587
587
|
VRating: typeof import('vuetify/components')['VRating']
|
|
588
|
-
VSelectionControl: typeof import('vuetify/components')['VSelectionControl']
|
|
589
588
|
VSelect: typeof import('vuetify/components')['VSelect']
|
|
589
|
+
VSelectionControl: typeof import('vuetify/components')['VSelectionControl']
|
|
590
590
|
VSelectionControlGroup: typeof import('vuetify/components')['VSelectionControlGroup']
|
|
591
591
|
VSheet: typeof import('vuetify/components')['VSheet']
|
|
592
|
-
VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
|
|
593
592
|
VSlider: typeof import('vuetify/components')['VSlider']
|
|
594
|
-
|
|
593
|
+
VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
|
|
595
594
|
VSlideGroup: typeof import('vuetify/components')['VSlideGroup']
|
|
596
595
|
VSlideGroupItem: typeof import('vuetify/components')['VSlideGroupItem']
|
|
596
|
+
VSnackbar: typeof import('vuetify/components')['VSnackbar']
|
|
597
597
|
VStepper: typeof import('vuetify/components')['VStepper']
|
|
598
598
|
VStepperActions: typeof import('vuetify/components')['VStepperActions']
|
|
599
599
|
VStepperHeader: typeof import('vuetify/components')['VStepperHeader']
|
|
600
600
|
VStepperItem: typeof import('vuetify/components')['VStepperItem']
|
|
601
601
|
VStepperWindow: typeof import('vuetify/components')['VStepperWindow']
|
|
602
602
|
VStepperWindowItem: typeof import('vuetify/components')['VStepperWindowItem']
|
|
603
|
-
VSwitch: typeof import('vuetify/components')['VSwitch']
|
|
604
603
|
VTab: typeof import('vuetify/components')['VTab']
|
|
605
604
|
VTabs: typeof import('vuetify/components')['VTabs']
|
|
606
605
|
VTabsWindow: typeof import('vuetify/components')['VTabsWindow']
|
|
607
606
|
VTabsWindowItem: typeof import('vuetify/components')['VTabsWindowItem']
|
|
608
|
-
VTextField: typeof import('vuetify/components')['VTextField']
|
|
609
607
|
VSystemBar: typeof import('vuetify/components')['VSystemBar']
|
|
608
|
+
VSwitch: typeof import('vuetify/components')['VSwitch']
|
|
609
|
+
VTable: typeof import('vuetify/components')['VTable']
|
|
610
|
+
VTextarea: typeof import('vuetify/components')['VTextarea']
|
|
611
|
+
VTextField: typeof import('vuetify/components')['VTextField']
|
|
610
612
|
VToolbar: typeof import('vuetify/components')['VToolbar']
|
|
611
613
|
VToolbarTitle: typeof import('vuetify/components')['VToolbarTitle']
|
|
612
614
|
VToolbarItems: typeof import('vuetify/components')['VToolbarItems']
|
|
613
|
-
|
|
614
|
-
|
|
615
|
+
VTimeline: typeof import('vuetify/components')['VTimeline']
|
|
616
|
+
VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
|
|
615
617
|
VTooltip: typeof import('vuetify/components')['VTooltip']
|
|
616
618
|
VWindow: typeof import('vuetify/components')['VWindow']
|
|
617
619
|
VWindowItem: typeof import('vuetify/components')['VWindowItem']
|
|
618
|
-
VTimeline: typeof import('vuetify/components')['VTimeline']
|
|
619
|
-
VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
|
|
620
620
|
VConfirmEdit: typeof import('vuetify/components')['VConfirmEdit']
|
|
621
621
|
VDataIterator: typeof import('vuetify/components')['VDataIterator']
|
|
622
622
|
VDefaultsProvider: typeof import('vuetify/components')['VDefaultsProvider']
|
|
623
|
+
VForm: typeof import('vuetify/components')['VForm']
|
|
623
624
|
VContainer: typeof import('vuetify/components')['VContainer']
|
|
624
625
|
VCol: typeof import('vuetify/components')['VCol']
|
|
625
626
|
VRow: typeof import('vuetify/components')['VRow']
|
|
626
627
|
VSpacer: typeof import('vuetify/components')['VSpacer']
|
|
627
|
-
VForm: typeof import('vuetify/components')['VForm']
|
|
628
628
|
VHover: typeof import('vuetify/components')['VHover']
|
|
629
629
|
VLayout: typeof import('vuetify/components')['VLayout']
|
|
630
630
|
VLayoutItem: typeof import('vuetify/components')['VLayoutItem']
|
|
631
631
|
VLazy: typeof import('vuetify/components')['VLazy']
|
|
632
632
|
VLocaleProvider: typeof import('vuetify/components')['VLocaleProvider']
|
|
633
633
|
VNoSsr: typeof import('vuetify/components')['VNoSsr']
|
|
634
|
-
VRadio: typeof import('vuetify/components')['VRadio']
|
|
635
634
|
VParallax: typeof import('vuetify/components')['VParallax']
|
|
635
|
+
VRadio: typeof import('vuetify/components')['VRadio']
|
|
636
636
|
VRangeSlider: typeof import('vuetify/components')['VRangeSlider']
|
|
637
637
|
VResponsive: typeof import('vuetify/components')['VResponsive']
|
|
638
638
|
VSparkline: typeof import('vuetify/components')['VSparkline']
|
|
639
639
|
VSpeedDial: typeof import('vuetify/components')['VSpeedDial']
|
|
640
640
|
VThemeProvider: typeof import('vuetify/components')['VThemeProvider']
|
|
641
|
-
VValidation: typeof import('vuetify/components')['VValidation']
|
|
642
|
-
VVirtualScroll: typeof import('vuetify/components')['VVirtualScroll']
|
|
643
641
|
VFabTransition: typeof import('vuetify/components')['VFabTransition']
|
|
644
642
|
VDialogBottomTransition: typeof import('vuetify/components')['VDialogBottomTransition']
|
|
645
643
|
VDialogTopTransition: typeof import('vuetify/components')['VDialogTopTransition']
|
|
@@ -656,6 +654,8 @@ declare module '@vue/runtime-core' {
|
|
|
656
654
|
VExpandTransition: typeof import('vuetify/components')['VExpandTransition']
|
|
657
655
|
VExpandXTransition: typeof import('vuetify/components')['VExpandXTransition']
|
|
658
656
|
VDialogTransition: typeof import('vuetify/components')['VDialogTransition']
|
|
657
|
+
VValidation: typeof import('vuetify/components')['VValidation']
|
|
658
|
+
VVirtualScroll: typeof import('vuetify/components')['VVirtualScroll']
|
|
659
659
|
VCalendar: typeof import('vuetify/labs/components')['VCalendar']
|
|
660
660
|
VCalendarDay: typeof import('vuetify/labs/components')['VCalendarDay']
|
|
661
661
|
VCalendarHeader: typeof import('vuetify/labs/components')['VCalendarHeader']
|
|
@@ -663,19 +663,19 @@ declare module '@vue/runtime-core' {
|
|
|
663
663
|
VCalendarIntervalEvent: typeof import('vuetify/labs/components')['VCalendarIntervalEvent']
|
|
664
664
|
VCalendarMonthDay: typeof import('vuetify/labs/components')['VCalendarMonthDay']
|
|
665
665
|
VNumberInput: typeof import('vuetify/labs/components')['VNumberInput']
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
666
|
+
VStepperVertical: typeof import('vuetify/labs/components')['VStepperVertical']
|
|
667
|
+
VStepperVerticalItem: typeof import('vuetify/labs/components')['VStepperVerticalItem']
|
|
668
|
+
VStepperVerticalActions: typeof import('vuetify/labs/components')['VStepperVerticalActions']
|
|
669
669
|
VPicker: typeof import('vuetify/labs/components')['VPicker']
|
|
670
670
|
VPickerTitle: typeof import('vuetify/labs/components')['VPickerTitle']
|
|
671
671
|
VTreeview: typeof import('vuetify/labs/components')['VTreeview']
|
|
672
672
|
VTreeviewItem: typeof import('vuetify/labs/components')['VTreeviewItem']
|
|
673
673
|
VTreeviewGroup: typeof import('vuetify/labs/components')['VTreeviewGroup']
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
674
|
+
VTimePicker: typeof import('vuetify/labs/components')['VTimePicker']
|
|
675
|
+
VTimePickerClock: typeof import('vuetify/labs/components')['VTimePickerClock']
|
|
676
|
+
VTimePickerControls: typeof import('vuetify/labs/components')['VTimePickerControls']
|
|
677
677
|
VDateInput: typeof import('vuetify/labs/components')['VDateInput']
|
|
678
|
-
VSnackbarQueue: typeof import('vuetify/labs/components')['VSnackbarQueue']
|
|
679
678
|
VPullToRefresh: typeof import('vuetify/labs/components')['VPullToRefresh']
|
|
679
|
+
VSnackbarQueue: typeof import('vuetify/labs/components')['VSnackbarQueue']
|
|
680
680
|
}
|
|
681
681
|
}
|
|
@@ -70,6 +70,10 @@ export const VNumberInput = genericComponent()({
|
|
|
70
70
|
const controlVariant = computed(() => {
|
|
71
71
|
return props.hideInput ? 'stacked' : props.controlVariant;
|
|
72
72
|
});
|
|
73
|
+
const incrementIcon = computed(() => controlVariant.value === 'split' ? '$plus' : '$collapse');
|
|
74
|
+
const decrementIcon = computed(() => controlVariant.value === 'split' ? '$minus' : '$expand');
|
|
75
|
+
const controlNodeSize = computed(() => controlVariant.value === 'split' ? 'default' : 'small');
|
|
76
|
+
const controlNodeDefaultHeight = computed(() => controlVariant.value === 'stacked' ? 'auto' : '100%');
|
|
73
77
|
const incrementSlotProps = computed(() => ({
|
|
74
78
|
click: onClickUp
|
|
75
79
|
}));
|
|
@@ -127,18 +131,42 @@ export const VNumberInput = genericComponent()({
|
|
|
127
131
|
modelValue: _,
|
|
128
132
|
...textFieldProps
|
|
129
133
|
} = VTextField.filterProps(props);
|
|
130
|
-
function
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
"
|
|
134
|
-
|
|
134
|
+
function incrementControlNode() {
|
|
135
|
+
return !slots.increment ? _createVNode(VBtn, {
|
|
136
|
+
"disabled": !canIncrease.value,
|
|
137
|
+
"flat": true,
|
|
138
|
+
"key": "increment-btn",
|
|
139
|
+
"height": controlNodeDefaultHeight.value,
|
|
140
|
+
"name": "increment-btn",
|
|
141
|
+
"icon": incrementIcon.value,
|
|
142
|
+
"onClick": onClickUp,
|
|
143
|
+
"onMousedown": onControlMousedown,
|
|
144
|
+
"size": controlNodeSize.value,
|
|
145
|
+
"tabindex": "-1"
|
|
146
|
+
}, null) : _createVNode(VDefaultsProvider, {
|
|
147
|
+
"key": "increment-defaults",
|
|
148
|
+
"defaults": {
|
|
149
|
+
VBtn: {
|
|
150
|
+
disabled: !canIncrease.value,
|
|
151
|
+
flat: true,
|
|
152
|
+
height: controlNodeDefaultHeight.value,
|
|
153
|
+
size: controlNodeSize.value,
|
|
154
|
+
icon: incrementIcon.value
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}, {
|
|
158
|
+
default: () => [slots.increment(incrementSlotProps.value)]
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
function decrementControlNode() {
|
|
162
|
+
return !slots.decrement ? _createVNode(VBtn, {
|
|
135
163
|
"disabled": !canDecrease.value,
|
|
136
164
|
"flat": true,
|
|
137
165
|
"key": "decrement-btn",
|
|
138
|
-
"height":
|
|
166
|
+
"height": controlNodeDefaultHeight.value,
|
|
139
167
|
"name": "decrement-btn",
|
|
140
|
-
"icon":
|
|
141
|
-
"size":
|
|
168
|
+
"icon": decrementIcon.value,
|
|
169
|
+
"size": controlNodeSize.value,
|
|
142
170
|
"tabindex": "-1",
|
|
143
171
|
"onClick": onClickDown,
|
|
144
172
|
"onMousedown": onControlMousedown
|
|
@@ -148,40 +176,21 @@ export const VNumberInput = genericComponent()({
|
|
|
148
176
|
VBtn: {
|
|
149
177
|
disabled: !canDecrease.value,
|
|
150
178
|
flat: true,
|
|
151
|
-
height:
|
|
152
|
-
size:
|
|
153
|
-
icon:
|
|
179
|
+
height: controlNodeDefaultHeight.value,
|
|
180
|
+
size: controlNodeSize.value,
|
|
181
|
+
icon: decrementIcon.value
|
|
154
182
|
}
|
|
155
183
|
}
|
|
156
184
|
}, {
|
|
157
185
|
default: () => [slots.decrement(decrementSlotProps.value)]
|
|
158
|
-
})
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
function controlNode() {
|
|
189
|
+
return _createVNode("div", {
|
|
190
|
+
"class": "v-number-input__control"
|
|
191
|
+
}, [decrementControlNode(), _createVNode(VDivider, {
|
|
159
192
|
"vertical": controlVariant.value !== 'stacked'
|
|
160
|
-
}, null),
|
|
161
|
-
"disabled": !canIncrease.value,
|
|
162
|
-
"flat": true,
|
|
163
|
-
"key": "increment-btn",
|
|
164
|
-
"height": defaultHeight,
|
|
165
|
-
"name": "increment-btn",
|
|
166
|
-
"icon": "$collapse",
|
|
167
|
-
"onClick": onClickUp,
|
|
168
|
-
"onMousedown": onControlMousedown,
|
|
169
|
-
"size": "small",
|
|
170
|
-
"tabindex": "-1"
|
|
171
|
-
}, null) : _createVNode(VDefaultsProvider, {
|
|
172
|
-
"key": "increment-defaults",
|
|
173
|
-
"defaults": {
|
|
174
|
-
VBtn: {
|
|
175
|
-
disabled: !canIncrease.value,
|
|
176
|
-
flat: true,
|
|
177
|
-
height: defaultHeight,
|
|
178
|
-
size: 'small',
|
|
179
|
-
icon: '$collapse'
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
}, {
|
|
183
|
-
default: () => [slots.increment(incrementSlotProps.value)]
|
|
184
|
-
})]);
|
|
193
|
+
}, null), incrementControlNode()]);
|
|
185
194
|
}
|
|
186
195
|
function dividerNode() {
|
|
187
196
|
return !props.hideInput && !props.inset ? _createVNode(VDivider, {
|
|
@@ -192,27 +201,11 @@ export const VNumberInput = genericComponent()({
|
|
|
192
201
|
"class": "v-number-input__control"
|
|
193
202
|
}, [_createVNode(VDivider, {
|
|
194
203
|
"vertical": true
|
|
195
|
-
}, null), _createVNode(
|
|
196
|
-
"flat": true,
|
|
197
|
-
"height": "100%",
|
|
198
|
-
"icon": "$plus",
|
|
199
|
-
"tile": true,
|
|
200
|
-
"tabindex": "-1",
|
|
201
|
-
"onClick": onClickUp,
|
|
202
|
-
"onMousedown": onControlMousedown
|
|
203
|
-
}, null)]) : !props.reverse ? _createVNode(_Fragment, null, [dividerNode(), controlNode()]) : undefined;
|
|
204
|
+
}, null), incrementControlNode()]) : !props.reverse ? _createVNode(_Fragment, null, [dividerNode(), controlNode()]) : undefined;
|
|
204
205
|
const hasAppendInner = slots['append-inner'] || appendInnerControl;
|
|
205
206
|
const prependInnerControl = controlVariant.value === 'split' ? _createVNode("div", {
|
|
206
207
|
"class": "v-number-input__control"
|
|
207
|
-
}, [_createVNode(
|
|
208
|
-
"flat": true,
|
|
209
|
-
"height": "100%",
|
|
210
|
-
"icon": "$minus",
|
|
211
|
-
"tile": true,
|
|
212
|
-
"tabindex": "-1",
|
|
213
|
-
"onClick": onClickDown,
|
|
214
|
-
"onMousedown": onControlMousedown
|
|
215
|
-
}, null), _createVNode(VDivider, {
|
|
208
|
+
}, [decrementControlNode(), _createVNode(VDivider, {
|
|
216
209
|
"vertical": true
|
|
217
210
|
}, null)]) : props.reverse ? _createVNode(_Fragment, null, [controlNode(), dividerNode()]) : undefined;
|
|
218
211
|
const hasPrependInner = slots['prepend-inner'] || prependInnerControl;
|
|
@@ -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","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","controlNode","defaultHeight","_createVNode","decrement","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 { 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 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', '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 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 onMousedown={ onControlMousedown }\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 onMousedown={ onControlMousedown }\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 onMousedown={ onControlMousedown }\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 onMousedown={ onControlMousedown }\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 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","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', '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":[]}
|
|
@@ -35,6 +35,7 @@ export const VStepperVertical = genericComponent()({
|
|
|
35
35
|
const vExpansionPanelsRef = ref();
|
|
36
36
|
const {
|
|
37
37
|
color,
|
|
38
|
+
eager,
|
|
38
39
|
editable,
|
|
39
40
|
prevText,
|
|
40
41
|
nextText,
|
|
@@ -53,6 +54,7 @@ export const VStepperVertical = genericComponent()({
|
|
|
53
54
|
provideDefaults({
|
|
54
55
|
VStepperVerticalItem: {
|
|
55
56
|
color,
|
|
57
|
+
eager,
|
|
56
58
|
editable,
|
|
57
59
|
prevText,
|
|
58
60
|
nextText,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VStepperVertical.mjs","names":["VStepperVerticalItem","makeVExpansionPanelsProps","VExpansionPanels","makeStepperProps","provideDefaults","useProxiedModel","computed","ref","toRefs","genericComponent","getPropertyFromItem","omit","propsFactory","useRender","makeVStepperVerticalProps","prevText","type","String","default","nextText","mandatory","variant","VStepperVertical","name","props","emits","val","setup","_ref","slots","vExpansionPanelsRef","color","editable","hideActions","model","items","map","item","index","title","itemTitle","value","itemValue","raw","static","VStepperActions","expansionPanelProps","filterProps","_createVNode","_mergeProps","$event","altLabels","flat","nonLinear","mobile","class","style","_ref2","prev","next","_Fragment","_ref3","step"],"sources":["../../../src/labs/VStepperVertical/VStepperVertical.tsx"],"sourcesContent":["// Components\nimport { VStepperVerticalItem } from './VStepperVerticalItem'\nimport { makeVExpansionPanelsProps, VExpansionPanels } from '@/components/VExpansionPanel/VExpansionPanels'\nimport { makeStepperProps } from '@/components/VStepper/VStepper'\n\n// Composables\nimport { provideDefaults } from '@/composables/defaults'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, ref, toRefs } from 'vue'\nimport { genericComponent, getPropertyFromItem, omit, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { VStepperSlot } from '@/components/VStepper/VStepper'\nimport type { StepperItem, StepperItemSlot } from '@/components/VStepper/VStepperItem'\n\nexport type VStepperVerticalSlots = {\n actions: StepperItemSlot\n default: VStepperSlot & { step: unknown }\n icon: StepperItemSlot\n title: StepperItemSlot\n subtitle: StepperItemSlot\n item: StepperItem\n prev: StepperItemSlot\n next: StepperItemSlot\n} & {\n [key: `header-item.${string}`]: StepperItemSlot\n [key: `item.${string}`]: StepperItem\n}\n\nexport const makeVStepperVerticalProps = propsFactory({\n prevText: {\n type: String,\n default: '$vuetify.stepper.prev',\n },\n nextText: {\n type: String,\n default: '$vuetify.stepper.next',\n },\n\n ...makeStepperProps(),\n ...omit(makeVExpansionPanelsProps({\n mandatory: 'force' as const,\n variant: 'accordion' as const,\n }), ['static']),\n}, 'VStepperVertical')\n\nexport const VStepperVertical = genericComponent<VStepperVerticalSlots>()({\n name: 'VStepperVertical',\n\n props: makeVStepperVerticalProps(),\n\n emits: {\n 'update:modelValue': (val: any) => true,\n },\n\n setup (props, { slots }) {\n const vExpansionPanelsRef = ref<typeof VExpansionPanels>()\n const { color, editable, prevText, nextText, hideActions } = toRefs(props)\n\n const model = useProxiedModel(props, 'modelValue')\n const items = computed(() => props.items.map((item, index) => {\n const title = getPropertyFromItem(item, props.itemTitle, item)\n const value = getPropertyFromItem(item, props.itemValue, index + 1)\n\n return {\n title,\n value,\n raw: item,\n }\n }))\n\n provideDefaults({\n VStepperVerticalItem: {\n color,\n editable,\n prevText,\n nextText,\n hideActions,\n static: true,\n },\n VStepperActions: {\n color,\n },\n })\n\n useRender(() => {\n const expansionPanelProps = VExpansionPanels.filterProps(props)\n\n return (\n <VExpansionPanels\n { ...expansionPanelProps }\n v-model={ model.value }\n ref={ vExpansionPanelsRef }\n class={[\n 'v-stepper',\n {\n 'v-stepper--alt-labels': props.altLabels,\n 'v-stepper--flat': props.flat,\n 'v-stepper--non-linear': props.nonLinear,\n 'v-stepper--mobile': props.mobile,\n },\n props.class,\n ]}\n style={ props.style }\n >\n {{\n ...slots,\n default: ({\n prev,\n next,\n }) => {\n return (\n <>\n { items.value.map(({ raw, ...item }) => (\n <VStepperVerticalItem { ...item }>\n {{\n ...slots,\n default: slots[`item.${item.value}`],\n }}\n </VStepperVerticalItem>\n ))}\n\n { slots.default?.({ prev, next, step: model.value }) }\n </>\n )\n },\n }}\n </VExpansionPanels>\n )\n })\n\n return {}\n },\n})\n\nexport type VStepperVertical = InstanceType<typeof VStepperVertical>\n"],"mappings":";AAAA;AAAA,SACSA,oBAAoB;AAAA,SACpBC,yBAAyB,EAAEC,gBAAgB;AAAA,SAC3CC,gBAAgB,kDAEzB;AAAA,SACSC,eAAe;AAAA,SACfC,eAAe,8CAExB;AACA,SAASC,QAAQ,EAAEC,GAAG,EAAEC,MAAM,QAAQ,KAAK;AAAA,SAClCC,gBAAgB,EAAEC,mBAAmB,EAAEC,IAAI,EAAEC,YAAY,EAAEC,SAAS,gCAE7E;AAkBA,OAAO,MAAMC,yBAAyB,GAAGF,YAAY,CAAC;EACpDG,QAAQ,EAAE;IACRC,IAAI,EAAEC,MAAM;IACZC,OAAO,EAAE;EACX,CAAC;EACDC,QAAQ,EAAE;IACRH,IAAI,EAAEC,MAAM;IACZC,OAAO,EAAE;EACX,CAAC;EAED,GAAGf,gBAAgB,CAAC,CAAC;EACrB,GAAGQ,IAAI,CAACV,yBAAyB,CAAC;IAChCmB,SAAS,EAAE,OAAgB;IAC3BC,OAAO,EAAE;EACX,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC;AAChB,CAAC,EAAE,kBAAkB,CAAC;AAEtB,OAAO,MAAMC,gBAAgB,GAAGb,gBAAgB,CAAwB,CAAC,CAAC;EACxEc,IAAI,EAAE,kBAAkB;EAExBC,KAAK,EAAEV,yBAAyB,CAAC,CAAC;EAElCW,KAAK,EAAE;IACL,mBAAmB,EAAGC,GAAQ,IAAK;EACrC,CAAC;EAEDC,KAAKA,CAAEH,KAAK,EAAAI,IAAA,EAAa;IAAA,IAAX;MAAEC;IAAM,CAAC,GAAAD,IAAA;IACrB,MAAME,mBAAmB,GAAGvB,GAAG,CAA0B,CAAC;IAC1D,MAAM;MAAEwB,KAAK;MAAEC,QAAQ;
|
|
1
|
+
{"version":3,"file":"VStepperVertical.mjs","names":["VStepperVerticalItem","makeVExpansionPanelsProps","VExpansionPanels","makeStepperProps","provideDefaults","useProxiedModel","computed","ref","toRefs","genericComponent","getPropertyFromItem","omit","propsFactory","useRender","makeVStepperVerticalProps","prevText","type","String","default","nextText","mandatory","variant","VStepperVertical","name","props","emits","val","setup","_ref","slots","vExpansionPanelsRef","color","eager","editable","hideActions","model","items","map","item","index","title","itemTitle","value","itemValue","raw","static","VStepperActions","expansionPanelProps","filterProps","_createVNode","_mergeProps","$event","altLabels","flat","nonLinear","mobile","class","style","_ref2","prev","next","_Fragment","_ref3","step"],"sources":["../../../src/labs/VStepperVertical/VStepperVertical.tsx"],"sourcesContent":["// Components\nimport { VStepperVerticalItem } from './VStepperVerticalItem'\nimport { makeVExpansionPanelsProps, VExpansionPanels } from '@/components/VExpansionPanel/VExpansionPanels'\nimport { makeStepperProps } from '@/components/VStepper/VStepper'\n\n// Composables\nimport { provideDefaults } from '@/composables/defaults'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, ref, toRefs } from 'vue'\nimport { genericComponent, getPropertyFromItem, omit, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { VStepperSlot } from '@/components/VStepper/VStepper'\nimport type { StepperItem, StepperItemSlot } from '@/components/VStepper/VStepperItem'\n\nexport type VStepperVerticalSlots = {\n actions: StepperItemSlot\n default: VStepperSlot & { step: unknown }\n icon: StepperItemSlot\n title: StepperItemSlot\n subtitle: StepperItemSlot\n item: StepperItem\n prev: StepperItemSlot\n next: StepperItemSlot\n} & {\n [key: `header-item.${string}`]: StepperItemSlot\n [key: `item.${string}`]: StepperItem\n}\n\nexport const makeVStepperVerticalProps = propsFactory({\n prevText: {\n type: String,\n default: '$vuetify.stepper.prev',\n },\n nextText: {\n type: String,\n default: '$vuetify.stepper.next',\n },\n\n ...makeStepperProps(),\n ...omit(makeVExpansionPanelsProps({\n mandatory: 'force' as const,\n variant: 'accordion' as const,\n }), ['static']),\n}, 'VStepperVertical')\n\nexport const VStepperVertical = genericComponent<VStepperVerticalSlots>()({\n name: 'VStepperVertical',\n\n props: makeVStepperVerticalProps(),\n\n emits: {\n 'update:modelValue': (val: any) => true,\n },\n\n setup (props, { slots }) {\n const vExpansionPanelsRef = ref<typeof VExpansionPanels>()\n const { color, eager, editable, prevText, nextText, hideActions } = toRefs(props)\n\n const model = useProxiedModel(props, 'modelValue')\n const items = computed(() => props.items.map((item, index) => {\n const title = getPropertyFromItem(item, props.itemTitle, item)\n const value = getPropertyFromItem(item, props.itemValue, index + 1)\n\n return {\n title,\n value,\n raw: item,\n }\n }))\n\n provideDefaults({\n VStepperVerticalItem: {\n color,\n eager,\n editable,\n prevText,\n nextText,\n hideActions,\n static: true,\n },\n VStepperActions: {\n color,\n },\n })\n\n useRender(() => {\n const expansionPanelProps = VExpansionPanels.filterProps(props)\n\n return (\n <VExpansionPanels\n { ...expansionPanelProps }\n v-model={ model.value }\n ref={ vExpansionPanelsRef }\n class={[\n 'v-stepper',\n {\n 'v-stepper--alt-labels': props.altLabels,\n 'v-stepper--flat': props.flat,\n 'v-stepper--non-linear': props.nonLinear,\n 'v-stepper--mobile': props.mobile,\n },\n props.class,\n ]}\n style={ props.style }\n >\n {{\n ...slots,\n default: ({\n prev,\n next,\n }) => {\n return (\n <>\n { items.value.map(({ raw, ...item }) => (\n <VStepperVerticalItem { ...item }>\n {{\n ...slots,\n default: slots[`item.${item.value}`],\n }}\n </VStepperVerticalItem>\n ))}\n\n { slots.default?.({ prev, next, step: model.value }) }\n </>\n )\n },\n }}\n </VExpansionPanels>\n )\n })\n\n return {}\n },\n})\n\nexport type VStepperVertical = InstanceType<typeof VStepperVertical>\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -5,8 +5,8 @@ import { makeVListProps, useListItems, VList } from "../../components/VList/VLis
|
|
|
5
5
|
import { provideDefaults } from "../../composables/defaults.mjs";
|
|
6
6
|
import { makeFilterProps, useFilter } from "../../composables/filter.mjs";
|
|
7
7
|
import { useProxiedModel } from "../../composables/proxiedModel.mjs"; // Utilities
|
|
8
|
-
import { computed, provide, ref, toRef
|
|
9
|
-
import { genericComponent,
|
|
8
|
+
import { computed, provide, ref, toRef } from 'vue';
|
|
9
|
+
import { genericComponent, omit, propsFactory, useRender } from "../../util/index.mjs"; // Types
|
|
10
10
|
import { VTreeviewSymbol } from "./shared.mjs";
|
|
11
11
|
function flatten(items) {
|
|
12
12
|
let flat = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
@@ -26,8 +26,6 @@ export const makeVTreeviewProps = propsFactory({
|
|
|
26
26
|
...omit(makeVListProps({
|
|
27
27
|
collapseIcon: '$treeviewCollapse',
|
|
28
28
|
expandIcon: '$treeviewExpand',
|
|
29
|
-
selectStrategy: 'classic',
|
|
30
|
-
openStrategy: 'multiple',
|
|
31
29
|
slim: true
|
|
32
30
|
}), ['nav'])
|
|
33
31
|
}, 'VTreeview');
|
|
@@ -45,17 +43,16 @@ export const VTreeview = genericComponent()({
|
|
|
45
43
|
let {
|
|
46
44
|
slots
|
|
47
45
|
} = _ref;
|
|
48
|
-
const vm = getCurrentInstance('VTreeview');
|
|
49
46
|
const {
|
|
50
47
|
items
|
|
51
48
|
} = useListItems(props);
|
|
52
49
|
const activeColor = toRef(props, 'activeColor');
|
|
53
50
|
const baseColor = toRef(props, 'baseColor');
|
|
54
51
|
const color = toRef(props, 'color');
|
|
55
|
-
const opened = useProxiedModel(props, 'opened');
|
|
56
52
|
const activated = useProxiedModel(props, 'activated');
|
|
57
53
|
const selected = useProxiedModel(props, 'selected');
|
|
58
54
|
const vListRef = ref();
|
|
55
|
+
const opened = computed(() => props.openAll ? openAll(items.value) : props.opened);
|
|
59
56
|
const flatItems = computed(() => flatten(items.value));
|
|
60
57
|
const search = toRef(props, 'search');
|
|
61
58
|
const {
|
|
@@ -89,11 +86,6 @@ export const VTreeview = genericComponent()({
|
|
|
89
86
|
}
|
|
90
87
|
return arr;
|
|
91
88
|
}
|
|
92
|
-
watch(() => props.openAll, val => {
|
|
93
|
-
opened.value = val ? openAll(items.value) : [];
|
|
94
|
-
}, {
|
|
95
|
-
immediate: true
|
|
96
|
-
});
|
|
97
89
|
function openAll(item) {
|
|
98
90
|
let ids = [];
|
|
99
91
|
for (const i of item) {
|
|
@@ -128,13 +120,14 @@ export const VTreeview = genericComponent()({
|
|
|
128
120
|
}
|
|
129
121
|
});
|
|
130
122
|
useRender(() => {
|
|
131
|
-
const listProps = VList.filterProps(
|
|
123
|
+
const listProps = VList.filterProps(props);
|
|
132
124
|
const treeviewChildrenProps = VTreeviewChildren.filterProps(props);
|
|
133
125
|
return _createVNode(VList, _mergeProps({
|
|
134
126
|
"ref": vListRef
|
|
135
127
|
}, listProps, {
|
|
136
128
|
"class": ['v-treeview', props.class],
|
|
137
129
|
"style": props.style,
|
|
130
|
+
"opened": opened.value,
|
|
138
131
|
"activated": activated.value,
|
|
139
132
|
"onUpdate:activated": $event => activated.value = $event,
|
|
140
133
|
"selected": selected.value,
|