vuetify 3.6.4 → 3.6.5
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/_component-variables-labs.sass +1 -0
- package/dist/json/attributes.json +292 -4
- package/dist/json/importMap-labs.json +30 -18
- package/dist/json/importMap.json +134 -134
- package/dist/json/tags.json +87 -0
- package/dist/json/web-types.json +1313 -6
- package/dist/vuetify-labs.css +2150 -2035
- package/dist/vuetify-labs.d.ts +1669 -28
- package/dist/vuetify-labs.esm.js +326 -25
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +326 -25
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +812 -765
- package/dist/vuetify.d.ts +153 -75
- package/dist/vuetify.esm.js +66 -25
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +66 -25
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +54 -54
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VBtn/index.d.mts +2 -0
- package/lib/components/VDataTable/VDataTable.mjs +6 -2
- package/lib/components/VDataTable/VDataTable.mjs.map +1 -1
- package/lib/components/VDataTable/VDataTableServer.mjs +3 -2
- package/lib/components/VDataTable/VDataTableServer.mjs.map +1 -1
- package/lib/components/VDataTable/VDataTableVirtual.mjs +3 -1
- package/lib/components/VDataTable/VDataTableVirtual.mjs.map +1 -1
- package/lib/components/VDataTable/index.d.mts +54 -0
- package/lib/components/VExpansionPanel/VExpansionPanel.mjs +3 -1
- package/lib/components/VExpansionPanel/VExpansionPanel.mjs.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanels.mjs +15 -4
- package/lib/components/VExpansionPanel/VExpansionPanels.mjs.map +1 -1
- package/lib/components/VExpansionPanel/index.d.mts +82 -27
- package/lib/components/VFileInput/VFileInput.mjs +1 -1
- package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
- package/lib/components/VSlideGroup/index.d.mts +2 -0
- package/lib/components/VStepper/VStepper.mjs +17 -8
- package/lib/components/VStepper/VStepper.mjs.map +1 -1
- package/lib/components/VStepper/VStepperItem.css +47 -0
- package/lib/components/VStepper/VStepperItem.mjs +10 -5
- package/lib/components/VStepper/VStepperItem.mjs.map +1 -1
- package/lib/components/VStepper/VStepperItem.sass +18 -0
- package/lib/components/VStepper/index.d.mts +1 -1
- package/lib/components/VTabs/index.d.mts +2 -0
- package/lib/components/VWindow/index.d.mts +2 -0
- package/lib/components/index.d.mts +102 -27
- package/lib/composables/group.mjs +8 -0
- package/lib/composables/group.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/index.d.mts +51 -48
- package/lib/labs/VStepperVertical/VStepperVertical.mjs +106 -0
- package/lib/labs/VStepperVertical/VStepperVertical.mjs.map +1 -0
- package/lib/labs/VStepperVertical/VStepperVerticalActions.mjs +38 -0
- package/lib/labs/VStepperVertical/VStepperVerticalActions.mjs.map +1 -0
- package/lib/labs/VStepperVertical/VStepperVerticalItem.css +69 -0
- package/lib/labs/VStepperVertical/VStepperVerticalItem.mjs +134 -0
- package/lib/labs/VStepperVertical/VStepperVerticalItem.mjs.map +1 -0
- package/lib/labs/VStepperVertical/VStepperVerticalItem.sass +74 -0
- package/lib/labs/VStepperVertical/_variables.scss +3 -0
- package/lib/labs/VStepperVertical/index.d.mts +1590 -0
- package/lib/labs/VStepperVertical/index.mjs +4 -0
- package/lib/labs/VStepperVertical/index.mjs.map +1 -0
- package/lib/labs/components.d.mts +1599 -20
- package/lib/labs/components.mjs +1 -0
- package/lib/labs/components.mjs.map +1 -1
- package/package.json +2 -2
package/lib/entry-bundler.mjs
CHANGED
|
@@ -16,7 +16,7 @@ export const createVuetify = function () {
|
|
|
16
16
|
...options
|
|
17
17
|
});
|
|
18
18
|
};
|
|
19
|
-
export const version = "3.6.
|
|
19
|
+
export const version = "3.6.5";
|
|
20
20
|
createVuetify.version = version;
|
|
21
21
|
export { blueprints, components, directives };
|
|
22
22
|
export * from "./composables/index.mjs";
|
package/lib/framework.mjs
CHANGED
package/lib/index.d.mts
CHANGED
|
@@ -493,42 +493,42 @@ declare module '@vue/runtime-core' {
|
|
|
493
493
|
}
|
|
494
494
|
|
|
495
495
|
export interface GlobalComponents {
|
|
496
|
-
VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
|
|
497
|
-
VApp: typeof import('vuetify/components')['VApp']
|
|
498
496
|
VAppBar: typeof import('vuetify/components')['VAppBar']
|
|
499
497
|
VAppBarNavIcon: typeof import('vuetify/components')['VAppBarNavIcon']
|
|
500
498
|
VAppBarTitle: typeof import('vuetify/components')['VAppBarTitle']
|
|
499
|
+
VApp: typeof import('vuetify/components')['VApp']
|
|
500
|
+
VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
|
|
501
501
|
VAvatar: typeof import('vuetify/components')['VAvatar']
|
|
502
502
|
VAlert: typeof import('vuetify/components')['VAlert']
|
|
503
503
|
VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
|
|
504
|
+
VBadge: typeof import('vuetify/components')['VBadge']
|
|
505
|
+
VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
|
|
504
506
|
VBanner: typeof import('vuetify/components')['VBanner']
|
|
505
507
|
VBannerActions: typeof import('vuetify/components')['VBannerActions']
|
|
506
508
|
VBannerText: typeof import('vuetify/components')['VBannerText']
|
|
507
|
-
VBadge: typeof import('vuetify/components')['VBadge']
|
|
508
509
|
VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
|
|
509
|
-
VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
|
|
510
510
|
VBtn: typeof import('vuetify/components')['VBtn']
|
|
511
|
-
VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
|
|
512
|
-
VBreadcrumbs: typeof import('vuetify/components')['VBreadcrumbs']
|
|
513
|
-
VBreadcrumbsItem: typeof import('vuetify/components')['VBreadcrumbsItem']
|
|
514
|
-
VBreadcrumbsDivider: typeof import('vuetify/components')['VBreadcrumbsDivider']
|
|
515
|
-
VCarousel: typeof import('vuetify/components')['VCarousel']
|
|
516
|
-
VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
|
|
517
511
|
VCard: typeof import('vuetify/components')['VCard']
|
|
518
512
|
VCardActions: typeof import('vuetify/components')['VCardActions']
|
|
519
513
|
VCardItem: typeof import('vuetify/components')['VCardItem']
|
|
520
514
|
VCardSubtitle: typeof import('vuetify/components')['VCardSubtitle']
|
|
521
515
|
VCardText: typeof import('vuetify/components')['VCardText']
|
|
522
516
|
VCardTitle: typeof import('vuetify/components')['VCardTitle']
|
|
517
|
+
VBreadcrumbs: typeof import('vuetify/components')['VBreadcrumbs']
|
|
518
|
+
VBreadcrumbsItem: typeof import('vuetify/components')['VBreadcrumbsItem']
|
|
519
|
+
VBreadcrumbsDivider: typeof import('vuetify/components')['VBreadcrumbsDivider']
|
|
523
520
|
VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
|
|
521
|
+
VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
|
|
524
522
|
VCheckbox: typeof import('vuetify/components')['VCheckbox']
|
|
525
523
|
VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
|
|
526
|
-
|
|
524
|
+
VCarousel: typeof import('vuetify/components')['VCarousel']
|
|
525
|
+
VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
|
|
527
526
|
VChipGroup: typeof import('vuetify/components')['VChipGroup']
|
|
527
|
+
VChip: typeof import('vuetify/components')['VChip']
|
|
528
|
+
VColorPicker: typeof import('vuetify/components')['VColorPicker']
|
|
528
529
|
VCode: typeof import('vuetify/components')['VCode']
|
|
529
|
-
VCombobox: typeof import('vuetify/components')['VCombobox']
|
|
530
530
|
VCounter: typeof import('vuetify/components')['VCounter']
|
|
531
|
-
|
|
531
|
+
VCombobox: typeof import('vuetify/components')['VCombobox']
|
|
532
532
|
VDataTable: typeof import('vuetify/components')['VDataTable']
|
|
533
533
|
VDataTableHeaders: typeof import('vuetify/components')['VDataTableHeaders']
|
|
534
534
|
VDataTableFooter: typeof import('vuetify/components')['VDataTableFooter']
|
|
@@ -536,35 +536,33 @@ declare module '@vue/runtime-core' {
|
|
|
536
536
|
VDataTableRow: typeof import('vuetify/components')['VDataTableRow']
|
|
537
537
|
VDataTableVirtual: typeof import('vuetify/components')['VDataTableVirtual']
|
|
538
538
|
VDataTableServer: typeof import('vuetify/components')['VDataTableServer']
|
|
539
|
+
VDialog: typeof import('vuetify/components')['VDialog']
|
|
539
540
|
VDatePicker: typeof import('vuetify/components')['VDatePicker']
|
|
540
541
|
VDatePickerControls: typeof import('vuetify/components')['VDatePickerControls']
|
|
541
542
|
VDatePickerHeader: typeof import('vuetify/components')['VDatePickerHeader']
|
|
542
543
|
VDatePickerMonth: typeof import('vuetify/components')['VDatePickerMonth']
|
|
543
544
|
VDatePickerMonths: typeof import('vuetify/components')['VDatePickerMonths']
|
|
544
545
|
VDatePickerYears: typeof import('vuetify/components')['VDatePickerYears']
|
|
545
|
-
VDialog: typeof import('vuetify/components')['VDialog']
|
|
546
|
-
VEmptyState: typeof import('vuetify/components')['VEmptyState']
|
|
547
546
|
VDivider: typeof import('vuetify/components')['VDivider']
|
|
547
|
+
VEmptyState: typeof import('vuetify/components')['VEmptyState']
|
|
548
|
+
VFooter: typeof import('vuetify/components')['VFooter']
|
|
549
|
+
VFab: typeof import('vuetify/components')['VFab']
|
|
548
550
|
VExpansionPanels: typeof import('vuetify/components')['VExpansionPanels']
|
|
549
551
|
VExpansionPanel: typeof import('vuetify/components')['VExpansionPanel']
|
|
550
552
|
VExpansionPanelText: typeof import('vuetify/components')['VExpansionPanelText']
|
|
551
553
|
VExpansionPanelTitle: typeof import('vuetify/components')['VExpansionPanelTitle']
|
|
554
|
+
VFileInput: typeof import('vuetify/components')['VFileInput']
|
|
552
555
|
VField: typeof import('vuetify/components')['VField']
|
|
553
556
|
VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
|
|
554
|
-
|
|
555
|
-
VFab: typeof import('vuetify/components')['VFab']
|
|
556
|
-
VFileInput: typeof import('vuetify/components')['VFileInput']
|
|
557
|
+
VImg: typeof import('vuetify/components')['VImg']
|
|
557
558
|
VIcon: typeof import('vuetify/components')['VIcon']
|
|
558
559
|
VComponentIcon: typeof import('vuetify/components')['VComponentIcon']
|
|
559
560
|
VSvgIcon: typeof import('vuetify/components')['VSvgIcon']
|
|
560
561
|
VLigatureIcon: typeof import('vuetify/components')['VLigatureIcon']
|
|
561
562
|
VClassIcon: typeof import('vuetify/components')['VClassIcon']
|
|
562
|
-
VImg: typeof import('vuetify/components')['VImg']
|
|
563
|
-
VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
|
|
564
563
|
VInput: typeof import('vuetify/components')['VInput']
|
|
564
|
+
VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
|
|
565
565
|
VKbd: typeof import('vuetify/components')['VKbd']
|
|
566
|
-
VItemGroup: typeof import('vuetify/components')['VItemGroup']
|
|
567
|
-
VItem: typeof import('vuetify/components')['VItem']
|
|
568
566
|
VLabel: typeof import('vuetify/components')['VLabel']
|
|
569
567
|
VList: typeof import('vuetify/components')['VList']
|
|
570
568
|
VListGroup: typeof import('vuetify/components')['VListGroup']
|
|
@@ -575,27 +573,34 @@ declare module '@vue/runtime-core' {
|
|
|
575
573
|
VListItemSubtitle: typeof import('vuetify/components')['VListItemSubtitle']
|
|
576
574
|
VListItemTitle: typeof import('vuetify/components')['VListItemTitle']
|
|
577
575
|
VListSubheader: typeof import('vuetify/components')['VListSubheader']
|
|
578
|
-
|
|
576
|
+
VItemGroup: typeof import('vuetify/components')['VItemGroup']
|
|
577
|
+
VItem: typeof import('vuetify/components')['VItem']
|
|
579
578
|
VMenu: typeof import('vuetify/components')['VMenu']
|
|
580
|
-
|
|
581
|
-
VMessages: typeof import('vuetify/components')['VMessages']
|
|
579
|
+
VMain: typeof import('vuetify/components')['VMain']
|
|
582
580
|
VNavigationDrawer: typeof import('vuetify/components')['VNavigationDrawer']
|
|
583
581
|
VOtpInput: typeof import('vuetify/components')['VOtpInput']
|
|
584
|
-
|
|
582
|
+
VMessages: typeof import('vuetify/components')['VMessages']
|
|
585
583
|
VPagination: typeof import('vuetify/components')['VPagination']
|
|
584
|
+
VOverlay: typeof import('vuetify/components')['VOverlay']
|
|
585
|
+
VProgressLinear: typeof import('vuetify/components')['VProgressLinear']
|
|
586
586
|
VProgressCircular: typeof import('vuetify/components')['VProgressCircular']
|
|
587
|
-
VRadioGroup: typeof import('vuetify/components')['VRadioGroup']
|
|
588
|
-
VRating: typeof import('vuetify/components')['VRating']
|
|
589
587
|
VSelect: typeof import('vuetify/components')['VSelect']
|
|
590
|
-
|
|
588
|
+
VRating: typeof import('vuetify/components')['VRating']
|
|
589
|
+
VRadioGroup: typeof import('vuetify/components')['VRadioGroup']
|
|
591
590
|
VSelectionControlGroup: typeof import('vuetify/components')['VSelectionControlGroup']
|
|
592
|
-
|
|
591
|
+
VSelectionControl: typeof import('vuetify/components')['VSelectionControl']
|
|
593
592
|
VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
|
|
594
|
-
|
|
595
|
-
VSnackbar: typeof import('vuetify/components')['VSnackbar']
|
|
593
|
+
VSheet: typeof import('vuetify/components')['VSheet']
|
|
596
594
|
VSlideGroup: typeof import('vuetify/components')['VSlideGroup']
|
|
597
595
|
VSlideGroupItem: typeof import('vuetify/components')['VSlideGroupItem']
|
|
596
|
+
VSlider: typeof import('vuetify/components')['VSlider']
|
|
597
|
+
VSnackbar: typeof import('vuetify/components')['VSnackbar']
|
|
598
|
+
VTab: typeof import('vuetify/components')['VTab']
|
|
599
|
+
VTabs: typeof import('vuetify/components')['VTabs']
|
|
600
|
+
VTabsWindow: typeof import('vuetify/components')['VTabsWindow']
|
|
601
|
+
VTabsWindowItem: typeof import('vuetify/components')['VTabsWindowItem']
|
|
598
602
|
VSwitch: typeof import('vuetify/components')['VSwitch']
|
|
603
|
+
VTable: typeof import('vuetify/components')['VTable']
|
|
599
604
|
VStepper: typeof import('vuetify/components')['VStepper']
|
|
600
605
|
VStepperActions: typeof import('vuetify/components')['VStepperActions']
|
|
601
606
|
VStepperHeader: typeof import('vuetify/components')['VStepperHeader']
|
|
@@ -603,23 +608,18 @@ declare module '@vue/runtime-core' {
|
|
|
603
608
|
VStepperWindow: typeof import('vuetify/components')['VStepperWindow']
|
|
604
609
|
VStepperWindowItem: typeof import('vuetify/components')['VStepperWindowItem']
|
|
605
610
|
VSystemBar: typeof import('vuetify/components')['VSystemBar']
|
|
606
|
-
VTable: typeof import('vuetify/components')['VTable']
|
|
607
|
-
VTab: typeof import('vuetify/components')['VTab']
|
|
608
|
-
VTabs: typeof import('vuetify/components')['VTabs']
|
|
609
|
-
VTabsWindow: typeof import('vuetify/components')['VTabsWindow']
|
|
610
|
-
VTabsWindowItem: typeof import('vuetify/components')['VTabsWindowItem']
|
|
611
611
|
VTextarea: typeof import('vuetify/components')['VTextarea']
|
|
612
612
|
VTextField: typeof import('vuetify/components')['VTextField']
|
|
613
|
+
VTimeline: typeof import('vuetify/components')['VTimeline']
|
|
614
|
+
VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
|
|
613
615
|
VToolbar: typeof import('vuetify/components')['VToolbar']
|
|
614
616
|
VToolbarTitle: typeof import('vuetify/components')['VToolbarTitle']
|
|
615
617
|
VToolbarItems: typeof import('vuetify/components')['VToolbarItems']
|
|
616
|
-
VTimeline: typeof import('vuetify/components')['VTimeline']
|
|
617
|
-
VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
|
|
618
618
|
VTooltip: typeof import('vuetify/components')['VTooltip']
|
|
619
619
|
VWindow: typeof import('vuetify/components')['VWindow']
|
|
620
620
|
VWindowItem: typeof import('vuetify/components')['VWindowItem']
|
|
621
|
-
VConfirmEdit: typeof import('vuetify/components')['VConfirmEdit']
|
|
622
621
|
VDataIterator: typeof import('vuetify/components')['VDataIterator']
|
|
622
|
+
VConfirmEdit: typeof import('vuetify/components')['VConfirmEdit']
|
|
623
623
|
VDefaultsProvider: typeof import('vuetify/components')['VDefaultsProvider']
|
|
624
624
|
VForm: typeof import('vuetify/components')['VForm']
|
|
625
625
|
VContainer: typeof import('vuetify/components')['VContainer']
|
|
@@ -627,9 +627,9 @@ declare module '@vue/runtime-core' {
|
|
|
627
627
|
VRow: typeof import('vuetify/components')['VRow']
|
|
628
628
|
VSpacer: typeof import('vuetify/components')['VSpacer']
|
|
629
629
|
VHover: typeof import('vuetify/components')['VHover']
|
|
630
|
+
VLazy: typeof import('vuetify/components')['VLazy']
|
|
630
631
|
VLayout: typeof import('vuetify/components')['VLayout']
|
|
631
632
|
VLayoutItem: typeof import('vuetify/components')['VLayoutItem']
|
|
632
|
-
VLazy: typeof import('vuetify/components')['VLazy']
|
|
633
633
|
VLocaleProvider: typeof import('vuetify/components')['VLocaleProvider']
|
|
634
634
|
VNoSsr: typeof import('vuetify/components')['VNoSsr']
|
|
635
635
|
VParallax: typeof import('vuetify/components')['VParallax']
|
|
@@ -657,23 +657,26 @@ declare module '@vue/runtime-core' {
|
|
|
657
657
|
VExpandTransition: typeof import('vuetify/components')['VExpandTransition']
|
|
658
658
|
VExpandXTransition: typeof import('vuetify/components')['VExpandXTransition']
|
|
659
659
|
VDialogTransition: typeof import('vuetify/components')['VDialogTransition']
|
|
660
|
-
|
|
660
|
+
VPicker: typeof import('vuetify/labs/components')['VPicker']
|
|
661
|
+
VPickerTitle: typeof import('vuetify/labs/components')['VPickerTitle']
|
|
661
662
|
VCalendar: typeof import('vuetify/labs/components')['VCalendar']
|
|
662
663
|
VCalendarDay: typeof import('vuetify/labs/components')['VCalendarDay']
|
|
663
664
|
VCalendarHeader: typeof import('vuetify/labs/components')['VCalendarHeader']
|
|
664
665
|
VCalendarInterval: typeof import('vuetify/labs/components')['VCalendarInterval']
|
|
665
666
|
VCalendarIntervalEvent: typeof import('vuetify/labs/components')['VCalendarIntervalEvent']
|
|
666
667
|
VCalendarMonthDay: typeof import('vuetify/labs/components')['VCalendarMonthDay']
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
VTimePickerControls: typeof import('vuetify/labs/components')['VTimePickerControls']
|
|
668
|
+
VNumberInput: typeof import('vuetify/labs/components')['VNumberInput']
|
|
669
|
+
VStepperVertical: typeof import('vuetify/labs/components')['VStepperVertical']
|
|
670
|
+
VStepperVerticalItem: typeof import('vuetify/labs/components')['VStepperVerticalItem']
|
|
671
|
+
VStepperVerticalActions: typeof import('vuetify/labs/components')['VStepperVerticalActions']
|
|
672
672
|
VTreeview: typeof import('vuetify/labs/components')['VTreeview']
|
|
673
673
|
VTreeviewItem: typeof import('vuetify/labs/components')['VTreeviewItem']
|
|
674
674
|
VTreeviewGroup: typeof import('vuetify/labs/components')['VTreeviewGroup']
|
|
675
|
+
VTimePicker: typeof import('vuetify/labs/components')['VTimePicker']
|
|
676
|
+
VTimePickerClock: typeof import('vuetify/labs/components')['VTimePickerClock']
|
|
677
|
+
VTimePickerControls: typeof import('vuetify/labs/components')['VTimePickerControls']
|
|
675
678
|
VDateInput: typeof import('vuetify/labs/components')['VDateInput']
|
|
676
|
-
VSnackbarQueue: typeof import('vuetify/labs/components')['VSnackbarQueue']
|
|
677
679
|
VPullToRefresh: typeof import('vuetify/labs/components')['VPullToRefresh']
|
|
680
|
+
VSnackbarQueue: typeof import('vuetify/labs/components')['VSnackbarQueue']
|
|
678
681
|
}
|
|
679
682
|
}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { mergeProps as _mergeProps, createVNode as _createVNode, Fragment as _Fragment } from "vue";
|
|
2
|
+
// Components
|
|
3
|
+
import { VStepperVerticalItem } from "./VStepperVerticalItem.mjs";
|
|
4
|
+
import { makeVExpansionPanelsProps, VExpansionPanels } from "../../components/VExpansionPanel/VExpansionPanels.mjs";
|
|
5
|
+
import { makeStepperProps } from "../../components/VStepper/VStepper.mjs"; // Composables
|
|
6
|
+
import { provideDefaults } from "../../composables/defaults.mjs";
|
|
7
|
+
import { useProxiedModel } from "../../composables/proxiedModel.mjs"; // Utilities
|
|
8
|
+
import { computed, ref, toRefs } from 'vue';
|
|
9
|
+
import { genericComponent, getPropertyFromItem, omit, propsFactory, useRender } from "../../util/index.mjs"; // Types
|
|
10
|
+
export const makeVStepperVerticalProps = propsFactory({
|
|
11
|
+
prevText: {
|
|
12
|
+
type: String,
|
|
13
|
+
default: '$vuetify.stepper.prev'
|
|
14
|
+
},
|
|
15
|
+
nextText: {
|
|
16
|
+
type: String,
|
|
17
|
+
default: '$vuetify.stepper.next'
|
|
18
|
+
},
|
|
19
|
+
...makeStepperProps(),
|
|
20
|
+
...omit(makeVExpansionPanelsProps({
|
|
21
|
+
mandatory: 'force',
|
|
22
|
+
variant: 'accordion'
|
|
23
|
+
}), ['static'])
|
|
24
|
+
}, 'VStepperVertical');
|
|
25
|
+
export const VStepperVertical = genericComponent()({
|
|
26
|
+
name: 'VStepperVertical',
|
|
27
|
+
props: makeVStepperVerticalProps(),
|
|
28
|
+
emits: {
|
|
29
|
+
'update:modelValue': val => true
|
|
30
|
+
},
|
|
31
|
+
setup(props, _ref) {
|
|
32
|
+
let {
|
|
33
|
+
slots
|
|
34
|
+
} = _ref;
|
|
35
|
+
const vExpansionPanelsRef = ref();
|
|
36
|
+
const {
|
|
37
|
+
color,
|
|
38
|
+
editable,
|
|
39
|
+
prevText,
|
|
40
|
+
nextText,
|
|
41
|
+
hideActions
|
|
42
|
+
} = toRefs(props);
|
|
43
|
+
const model = useProxiedModel(props, 'modelValue');
|
|
44
|
+
const items = computed(() => props.items.map((item, index) => {
|
|
45
|
+
const title = getPropertyFromItem(item, props.itemTitle, item);
|
|
46
|
+
const value = getPropertyFromItem(item, props.itemValue, index + 1);
|
|
47
|
+
return {
|
|
48
|
+
title,
|
|
49
|
+
value,
|
|
50
|
+
raw: item
|
|
51
|
+
};
|
|
52
|
+
}));
|
|
53
|
+
provideDefaults({
|
|
54
|
+
VStepperVerticalItem: {
|
|
55
|
+
color,
|
|
56
|
+
editable,
|
|
57
|
+
prevText,
|
|
58
|
+
nextText,
|
|
59
|
+
hideActions,
|
|
60
|
+
static: true
|
|
61
|
+
},
|
|
62
|
+
VStepperActions: {
|
|
63
|
+
color
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
useRender(() => {
|
|
67
|
+
const expansionPanelProps = VExpansionPanels.filterProps(props);
|
|
68
|
+
return _createVNode(VExpansionPanels, _mergeProps(expansionPanelProps, {
|
|
69
|
+
"modelValue": model.value,
|
|
70
|
+
"onUpdate:modelValue": $event => model.value = $event,
|
|
71
|
+
"ref": vExpansionPanelsRef,
|
|
72
|
+
"class": ['v-stepper', {
|
|
73
|
+
'v-stepper--alt-labels': props.altLabels,
|
|
74
|
+
'v-stepper--flat': props.flat,
|
|
75
|
+
'v-stepper--non-linear': props.nonLinear,
|
|
76
|
+
'v-stepper--mobile': props.mobile
|
|
77
|
+
}, props.class],
|
|
78
|
+
"style": props.style
|
|
79
|
+
}), {
|
|
80
|
+
...slots,
|
|
81
|
+
default: _ref2 => {
|
|
82
|
+
let {
|
|
83
|
+
prev,
|
|
84
|
+
next
|
|
85
|
+
} = _ref2;
|
|
86
|
+
return _createVNode(_Fragment, null, [items.value.map(_ref3 => {
|
|
87
|
+
let {
|
|
88
|
+
raw,
|
|
89
|
+
...item
|
|
90
|
+
} = _ref3;
|
|
91
|
+
return _createVNode(VStepperVerticalItem, item, {
|
|
92
|
+
...slots,
|
|
93
|
+
default: slots[`item.${item.value}`]
|
|
94
|
+
});
|
|
95
|
+
}), slots.default?.({
|
|
96
|
+
prev,
|
|
97
|
+
next,
|
|
98
|
+
step: model.value
|
|
99
|
+
})]);
|
|
100
|
+
}
|
|
101
|
+
});
|
|
102
|
+
});
|
|
103
|
+
return {};
|
|
104
|
+
}
|
|
105
|
+
});
|
|
106
|
+
//# sourceMappingURL=VStepperVertical.mjs.map
|
|
@@ -0,0 +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":"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","ignoreList":[]}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { createVNode as _createVNode, mergeProps as _mergeProps, resolveDirective as _resolveDirective } from "vue";
|
|
2
|
+
// Components
|
|
3
|
+
import { makeVStepperActionsProps, VStepperActions } from "../../components/VStepper/VStepperActions.mjs"; // Utilities
|
|
4
|
+
import { genericComponent, propsFactory, useRender } from "../../util/index.mjs"; // Types
|
|
5
|
+
export const makeVStepperVerticalActionsProps = propsFactory({
|
|
6
|
+
...makeVStepperActionsProps()
|
|
7
|
+
}, 'VStepperActions');
|
|
8
|
+
export const VStepperVerticalActions = genericComponent()({
|
|
9
|
+
name: 'VStepperVerticalActions',
|
|
10
|
+
props: makeVStepperVerticalActionsProps(),
|
|
11
|
+
emits: {
|
|
12
|
+
'click:prev': () => true,
|
|
13
|
+
'click:next': () => true
|
|
14
|
+
},
|
|
15
|
+
setup(props, _ref) {
|
|
16
|
+
let {
|
|
17
|
+
emit,
|
|
18
|
+
slots
|
|
19
|
+
} = _ref;
|
|
20
|
+
function onClickPrev() {
|
|
21
|
+
emit('click:prev');
|
|
22
|
+
}
|
|
23
|
+
function onClickNext() {
|
|
24
|
+
emit('click:next');
|
|
25
|
+
}
|
|
26
|
+
useRender(() => {
|
|
27
|
+
const stepperActionsProps = VStepperActions.filterProps(props);
|
|
28
|
+
return _createVNode(VStepperActions, _mergeProps({
|
|
29
|
+
"class": "v-stepper-vertical-actions"
|
|
30
|
+
}, stepperActionsProps, {
|
|
31
|
+
"onClick:prev": onClickPrev,
|
|
32
|
+
"onClick:next": onClickNext
|
|
33
|
+
}), slots);
|
|
34
|
+
});
|
|
35
|
+
return {};
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
//# sourceMappingURL=VStepperVerticalActions.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VStepperVerticalActions.mjs","names":["makeVStepperActionsProps","VStepperActions","genericComponent","propsFactory","useRender","makeVStepperVerticalActionsProps","VStepperVerticalActions","name","props","emits","click:prev","click:next","setup","_ref","emit","slots","onClickPrev","onClickNext","stepperActionsProps","filterProps","_createVNode","_mergeProps"],"sources":["../../../src/labs/VStepperVertical/VStepperVerticalActions.tsx"],"sourcesContent":["// Components\nimport { makeVStepperActionsProps, VStepperActions } from '@/components/VStepper/VStepperActions'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { VStepperActionsSlots } from '@/components/VStepper/VStepperActions'\n\nexport const makeVStepperVerticalActionsProps = propsFactory({\n ...makeVStepperActionsProps(),\n}, 'VStepperActions')\n\nexport const VStepperVerticalActions = genericComponent<VStepperActionsSlots>()({\n name: 'VStepperVerticalActions',\n\n props: makeVStepperVerticalActionsProps(),\n\n emits: {\n 'click:prev': () => true,\n 'click:next': () => true,\n },\n\n setup (props, { emit, slots }) {\n function onClickPrev () {\n emit('click:prev')\n }\n\n function onClickNext () {\n emit('click:next')\n }\n\n useRender(() => {\n const stepperActionsProps = VStepperActions.filterProps(props)\n\n return (\n <VStepperActions\n class=\"v-stepper-vertical-actions\"\n { ...stepperActionsProps }\n onClick:prev={ onClickPrev }\n onClick:next={ onClickNext }\n v-slots={ slots }\n />\n )\n })\n\n return {}\n },\n})\n\nexport type VStepperVerticalActions = InstanceType<typeof VStepperVerticalActions>\n"],"mappings":";AAAA;AAAA,SACSA,wBAAwB,EAAEC,eAAe,yDAElD;AAAA,SACSC,gBAAgB,EAAEC,YAAY,EAAEC,SAAS,gCAElD;AAGA,OAAO,MAAMC,gCAAgC,GAAGF,YAAY,CAAC;EAC3D,GAAGH,wBAAwB,CAAC;AAC9B,CAAC,EAAE,iBAAiB,CAAC;AAErB,OAAO,MAAMM,uBAAuB,GAAGJ,gBAAgB,CAAuB,CAAC,CAAC;EAC9EK,IAAI,EAAE,yBAAyB;EAE/BC,KAAK,EAAEH,gCAAgC,CAAC,CAAC;EAEzCI,KAAK,EAAE;IACL,YAAY,EAAEC,CAAA,KAAM,IAAI;IACxB,YAAY,EAAEC,CAAA,KAAM;EACtB,CAAC;EAEDC,KAAKA,CAAEJ,KAAK,EAAAK,IAAA,EAAmB;IAAA,IAAjB;MAAEC,IAAI;MAAEC;IAAM,CAAC,GAAAF,IAAA;IAC3B,SAASG,WAAWA,CAAA,EAAI;MACtBF,IAAI,CAAC,YAAY,CAAC;IACpB;IAEA,SAASG,WAAWA,CAAA,EAAI;MACtBH,IAAI,CAAC,YAAY,CAAC;IACpB;IAEAV,SAAS,CAAC,MAAM;MACd,MAAMc,mBAAmB,GAAGjB,eAAe,CAACkB,WAAW,CAACX,KAAK,CAAC;MAE9D,OAAAY,YAAA,CAAAnB,eAAA,EAAAoB,WAAA;QAAA;MAAA,GAGSH,mBAAmB;QAAA,gBACTF,WAAW;QAAA,gBACXC;MAAW,IAChBF,KAAK;IAGrB,CAAC,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
.v-stepper-vertical-item {
|
|
2
|
+
position: relative;
|
|
3
|
+
transition-duration: 0.2s;
|
|
4
|
+
transition-property: opacity;
|
|
5
|
+
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
|
|
6
|
+
}
|
|
7
|
+
.v-stepper-vertical-item__title {
|
|
8
|
+
font-size: 1rem;
|
|
9
|
+
}
|
|
10
|
+
.v-stepper-vertical-item__subtitle {
|
|
11
|
+
font-size: 0.75rem;
|
|
12
|
+
}
|
|
13
|
+
.v-stepper-vertical-item .v-expansion-panel-text {
|
|
14
|
+
padding-inline-start: 32px;
|
|
15
|
+
}
|
|
16
|
+
.v-stepper-vertical-item:not(:last-child):before {
|
|
17
|
+
content: "";
|
|
18
|
+
position: absolute;
|
|
19
|
+
width: 2px;
|
|
20
|
+
height: calc(100% - 30px);
|
|
21
|
+
background: rgba(var(--v-border-color), var(--v-border-opacity));
|
|
22
|
+
left: 35px;
|
|
23
|
+
top: 44px;
|
|
24
|
+
z-index: 1;
|
|
25
|
+
transition-duration: 300ms;
|
|
26
|
+
transition-property: height;
|
|
27
|
+
}
|
|
28
|
+
.v-stepper-vertical-item:after {
|
|
29
|
+
display: none;
|
|
30
|
+
}
|
|
31
|
+
.v-stepper-vertical-item.v-expansion-panel--disabled .v-expansion-panel-title, .v-stepper-vertical-item:not(.v-stepper-vertical-item--editable) .v-expansion-panel-title {
|
|
32
|
+
pointer-events: none;
|
|
33
|
+
}
|
|
34
|
+
.v-stepper-vertical-item.v-expansion-panel--disabled .v-expansion-panel-title .v-expansion-panel-title__overlay, .v-stepper-vertical-item:not(.v-stepper-vertical-item--editable) .v-expansion-panel-title .v-expansion-panel-title__overlay {
|
|
35
|
+
opacity: 0;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.v-stepper-vertical-item__avatar.v-avatar {
|
|
39
|
+
background: rgba(var(--v-theme-surface-variant), var(--v-medium-emphasis-opacity));
|
|
40
|
+
color: rgb(var(--v-theme-on-surface-variant));
|
|
41
|
+
transition-property: background;
|
|
42
|
+
}
|
|
43
|
+
.v-stepper-vertical-item__avatar.v-avatar .v-icon {
|
|
44
|
+
font-size: 0.875rem;
|
|
45
|
+
}
|
|
46
|
+
.v-expansion-panel--active .v-stepper-vertical-item__avatar.v-avatar {
|
|
47
|
+
background: rgb(var(--v-theme-surface-variant));
|
|
48
|
+
}
|
|
49
|
+
.v-stepper-vertical-item--error .v-stepper-vertical-item__avatar.v-avatar {
|
|
50
|
+
background: rgb(var(--v-theme-error));
|
|
51
|
+
color: rgb(var(--v-theme-on-error));
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
.v-stepper-vertical-item--error .v-stepper-vertical-item__title {
|
|
55
|
+
color: rgb(var(--v-theme-error));
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
.v-stepper-vertical-item--error .v-stepper-vertical-item__subtitle {
|
|
59
|
+
color: rgb(var(--v-theme-error));
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
.v-stepper-vertical-actions.v-stepper-actions .v-btn {
|
|
63
|
+
margin-inline-end: 8px;
|
|
64
|
+
}
|
|
65
|
+
.v-stepper .v-stepper-vertical-actions.v-stepper-actions {
|
|
66
|
+
justify-content: flex-end;
|
|
67
|
+
padding: 24px 0 0;
|
|
68
|
+
flex-direction: row-reverse;
|
|
69
|
+
}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import { mergeProps as _mergeProps, resolveDirective as _resolveDirective, createVNode as _createVNode, Fragment as _Fragment } from "vue";
|
|
2
|
+
// Styles
|
|
3
|
+
import "./VStepperVerticalItem.css";
|
|
4
|
+
|
|
5
|
+
// Components
|
|
6
|
+
import { VStepperVerticalActions } from "./VStepperVerticalActions.mjs";
|
|
7
|
+
import { VAvatar } from "../../components/VAvatar/VAvatar.mjs";
|
|
8
|
+
import { VDefaultsProvider } from "../../components/VDefaultsProvider/VDefaultsProvider.mjs";
|
|
9
|
+
import { VExpansionPanel } from "../../components/VExpansionPanel/index.mjs";
|
|
10
|
+
import { makeVExpansionPanelProps } from "../../components/VExpansionPanel/VExpansionPanel.mjs";
|
|
11
|
+
import { VIcon } from "../../components/VIcon/VIcon.mjs";
|
|
12
|
+
import { makeStepperItemProps } from "../../components/VStepper/VStepperItem.mjs"; // Utilities
|
|
13
|
+
import { computed, ref } from 'vue';
|
|
14
|
+
import { genericComponent, omit, propsFactory, useRender } from "../../util/index.mjs"; // Types
|
|
15
|
+
export const makeVStepperVerticalItemProps = propsFactory({
|
|
16
|
+
hideActions: Boolean,
|
|
17
|
+
...makeStepperItemProps(),
|
|
18
|
+
...omit(makeVExpansionPanelProps({
|
|
19
|
+
expandIcon: '',
|
|
20
|
+
collapseIcon: ''
|
|
21
|
+
}), ['hideActions'])
|
|
22
|
+
}, 'VStepperVerticalItem');
|
|
23
|
+
export const VStepperVerticalItem = genericComponent()({
|
|
24
|
+
name: 'VStepperVerticalItem',
|
|
25
|
+
props: makeVStepperVerticalItemProps(),
|
|
26
|
+
emits: {
|
|
27
|
+
'click:next': () => true,
|
|
28
|
+
'click:prev': () => true,
|
|
29
|
+
'click:finish': () => true
|
|
30
|
+
},
|
|
31
|
+
setup(props, _ref) {
|
|
32
|
+
let {
|
|
33
|
+
emit,
|
|
34
|
+
slots
|
|
35
|
+
} = _ref;
|
|
36
|
+
const vExpansionPanelRef = ref();
|
|
37
|
+
const step = computed(() => !isNaN(parseInt(props.value)) ? Number(props.value) : props.value);
|
|
38
|
+
const groupItem = computed(() => vExpansionPanelRef.value?.groupItem);
|
|
39
|
+
const isSelected = computed(() => groupItem.value?.isSelected.value ?? false);
|
|
40
|
+
const isValid = computed(() => isSelected.value ? props.rules.every(handler => handler() === true) : null);
|
|
41
|
+
const canEdit = computed(() => !props.disabled && props.editable);
|
|
42
|
+
const hasError = computed(() => props.error || isSelected.value && !isValid.value);
|
|
43
|
+
const hasCompleted = computed(() => props.complete || props.rules.length > 0 && isValid.value === true);
|
|
44
|
+
const disabled = computed(() => {
|
|
45
|
+
if (props.disabled) return props.disabled;
|
|
46
|
+
if (groupItem.value?.isFirst.value) return 'prev';
|
|
47
|
+
return false;
|
|
48
|
+
});
|
|
49
|
+
const icon = computed(() => {
|
|
50
|
+
if (hasError.value) return props.errorIcon;
|
|
51
|
+
if (hasCompleted.value) return props.completeIcon;
|
|
52
|
+
if (groupItem.value?.isSelected.value && props.editable) return props.editIcon;
|
|
53
|
+
return props.icon;
|
|
54
|
+
});
|
|
55
|
+
const slotProps = computed(() => ({
|
|
56
|
+
canEdit: canEdit.value,
|
|
57
|
+
hasError: hasError.value,
|
|
58
|
+
hasCompleted: hasCompleted.value,
|
|
59
|
+
title: props.title,
|
|
60
|
+
subtitle: props.subtitle,
|
|
61
|
+
step: step.value,
|
|
62
|
+
value: props.value
|
|
63
|
+
}));
|
|
64
|
+
const actionProps = computed(() => ({
|
|
65
|
+
...slotProps.value,
|
|
66
|
+
prev: onClickPrev,
|
|
67
|
+
next: onClickNext
|
|
68
|
+
}));
|
|
69
|
+
function onClickNext() {
|
|
70
|
+
emit('click:next');
|
|
71
|
+
if (groupItem.value?.isLast.value) return;
|
|
72
|
+
groupItem.value.group.next();
|
|
73
|
+
}
|
|
74
|
+
function onClickPrev() {
|
|
75
|
+
emit('click:prev');
|
|
76
|
+
groupItem.value.group.prev();
|
|
77
|
+
}
|
|
78
|
+
useRender(() => {
|
|
79
|
+
const hasColor = (hasCompleted.value || groupItem.value?.isSelected.value) && !hasError.value && !props.disabled;
|
|
80
|
+
const hasActions = !props.hideActions || !!slots.actions;
|
|
81
|
+
const expansionPanelProps = VExpansionPanel.filterProps(props);
|
|
82
|
+
return _createVNode(VExpansionPanel, _mergeProps({
|
|
83
|
+
"_as": "VStepperVerticalItem",
|
|
84
|
+
"ref": vExpansionPanelRef
|
|
85
|
+
}, expansionPanelProps, {
|
|
86
|
+
"class": ['v-stepper-vertical-item', {
|
|
87
|
+
'v-stepper-vertical-item--complete': hasCompleted.value,
|
|
88
|
+
'v-stepper-vertical-item--disabled': props.disabled,
|
|
89
|
+
'v-stepper-vertical-item--editable': canEdit.value,
|
|
90
|
+
'v-stepper-vertical-item--error': hasError.value
|
|
91
|
+
}, props.class],
|
|
92
|
+
"readonly": !props.editable,
|
|
93
|
+
"style": props.style,
|
|
94
|
+
"color": "",
|
|
95
|
+
"hide-actions": false,
|
|
96
|
+
"value": step.value
|
|
97
|
+
}), {
|
|
98
|
+
title: () => _createVNode(_Fragment, null, [_createVNode(VAvatar, {
|
|
99
|
+
"key": "stepper-avatar",
|
|
100
|
+
"class": "v-stepper-vertical-item__avatar",
|
|
101
|
+
"color": hasColor ? props.color : undefined,
|
|
102
|
+
"size": 24,
|
|
103
|
+
"start": true
|
|
104
|
+
}, {
|
|
105
|
+
default: () => [slots.icon?.(slotProps.value) ?? (icon.value ? _createVNode(VIcon, {
|
|
106
|
+
"icon": icon.value
|
|
107
|
+
}, null) : step.value)]
|
|
108
|
+
}), _createVNode("div", null, [_createVNode("div", {
|
|
109
|
+
"class": "v-stepper-vertical-item__title"
|
|
110
|
+
}, [slots.title?.(slotProps.value) ?? props.title]), _createVNode("div", {
|
|
111
|
+
"class": "v-stepper-vertical-item__subtitle"
|
|
112
|
+
}, [slots.subtitle?.(slotProps.value) ?? props.subtitle])])]),
|
|
113
|
+
text: () => _createVNode(_Fragment, null, [slots.default?.(slotProps.value) ?? props.text, hasActions && _createVNode(VDefaultsProvider, {
|
|
114
|
+
"defaults": {
|
|
115
|
+
VStepperVerticalActions: {
|
|
116
|
+
disabled: disabled.value,
|
|
117
|
+
finish: groupItem.value?.isLast.value
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}, {
|
|
121
|
+
default: () => [slots.actions?.(actionProps.value) ?? _createVNode(VStepperVerticalActions, {
|
|
122
|
+
"onClick:next": onClickNext,
|
|
123
|
+
"onClick:prev": onClickPrev
|
|
124
|
+
}, {
|
|
125
|
+
prev: slots.prev ? () => slots.prev?.(actionProps.value) : undefined,
|
|
126
|
+
next: slots.next ? () => slots.next?.(actionProps.value) : undefined
|
|
127
|
+
})]
|
|
128
|
+
})])
|
|
129
|
+
});
|
|
130
|
+
});
|
|
131
|
+
return {};
|
|
132
|
+
}
|
|
133
|
+
});
|
|
134
|
+
//# sourceMappingURL=VStepperVerticalItem.mjs.map
|