@vuetify/nightly 3.6.7-master.2024-05-27 → 3.6.7-master.2024-05-29
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/CHANGELOG.md +8 -2
- package/dist/json/attributes.json +39 -7
- package/dist/json/importMap-labs.json +12 -12
- package/dist/json/importMap.json +146 -146
- package/dist/json/tags.json +8 -0
- package/dist/json/web-types.json +84 -12
- package/dist/vuetify-labs.css +2617 -2614
- package/dist/vuetify-labs.d.ts +78 -18
- package/dist/vuetify-labs.esm.js +27 -8
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +27 -8
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +723 -720
- package/dist/vuetify.d.ts +85 -55
- package/dist/vuetify.esm.js +21 -8
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +21 -8
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +9 -9
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VDivider/VDivider.mjs +1 -1
- package/lib/components/VDivider/VDivider.mjs.map +1 -1
- package/lib/components/VSnackbar/VSnackbar.css +1 -1
- package/lib/components/VSnackbar/VSnackbar.sass +1 -1
- package/lib/components/VStepper/VStepper.mjs +18 -4
- package/lib/components/VStepper/VStepper.mjs.map +1 -1
- package/lib/components/VStepper/VStepperItem.css +3 -0
- package/lib/components/VStepper/VStepperItem.sass +3 -0
- package/lib/components/VStepper/index.d.mts +43 -9
- package/lib/components/index.d.mts +39 -9
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/index.d.mts +46 -46
- package/lib/labs/VNumberInput/VNumberInput.mjs +7 -0
- package/lib/labs/VNumberInput/VNumberInput.mjs.map +1 -1
- package/lib/labs/VStepperVertical/index.d.mts +43 -9
- package/lib/labs/components.d.mts +3752 -3718
- package/package.json +1 -1
package/lib/index.d.mts
CHANGED
@@ -493,48 +493,39 @@ declare module '@vue/runtime-core' {
|
|
493
493
|
}
|
494
494
|
|
495
495
|
export interface GlobalComponents {
|
496
|
-
VApp: typeof import('vuetify/components')['VApp']
|
497
|
-
VAlert: typeof import('vuetify/components')['VAlert']
|
498
|
-
VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
|
499
496
|
VAppBar: typeof import('vuetify/components')['VAppBar']
|
500
497
|
VAppBarNavIcon: typeof import('vuetify/components')['VAppBarNavIcon']
|
501
498
|
VAppBarTitle: typeof import('vuetify/components')['VAppBarTitle']
|
499
|
+
VAlert: typeof import('vuetify/components')['VAlert']
|
500
|
+
VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
|
501
|
+
VAvatar: typeof import('vuetify/components')['VAvatar']
|
502
|
+
VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
|
502
503
|
VBanner: typeof import('vuetify/components')['VBanner']
|
503
504
|
VBannerActions: typeof import('vuetify/components')['VBannerActions']
|
504
505
|
VBannerText: typeof import('vuetify/components')['VBannerText']
|
505
|
-
VAvatar: typeof import('vuetify/components')['VAvatar']
|
506
|
-
VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
|
507
|
-
VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
|
508
506
|
VBadge: typeof import('vuetify/components')['VBadge']
|
509
|
-
VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
|
510
507
|
VBreadcrumbs: typeof import('vuetify/components')['VBreadcrumbs']
|
511
508
|
VBreadcrumbsItem: typeof import('vuetify/components')['VBreadcrumbsItem']
|
512
509
|
VBreadcrumbsDivider: typeof import('vuetify/components')['VBreadcrumbsDivider']
|
510
|
+
VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
|
511
|
+
VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
|
512
|
+
VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
|
513
513
|
VBtn: typeof import('vuetify/components')['VBtn']
|
514
|
+
VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
|
514
515
|
VCard: typeof import('vuetify/components')['VCard']
|
515
516
|
VCardActions: typeof import('vuetify/components')['VCardActions']
|
516
517
|
VCardItem: typeof import('vuetify/components')['VCardItem']
|
517
518
|
VCardSubtitle: typeof import('vuetify/components')['VCardSubtitle']
|
518
519
|
VCardText: typeof import('vuetify/components')['VCardText']
|
519
520
|
VCardTitle: typeof import('vuetify/components')['VCardTitle']
|
520
|
-
VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
|
521
|
-
VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
|
522
|
-
VCheckbox: typeof import('vuetify/components')['VCheckbox']
|
523
|
-
VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
|
524
521
|
VCarousel: typeof import('vuetify/components')['VCarousel']
|
525
522
|
VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
|
526
523
|
VChip: typeof import('vuetify/components')['VChip']
|
527
524
|
VCode: typeof import('vuetify/components')['VCode']
|
528
|
-
VCombobox: typeof import('vuetify/components')['VCombobox']
|
529
525
|
VChipGroup: typeof import('vuetify/components')['VChipGroup']
|
530
|
-
|
531
|
-
|
532
|
-
VDatePickerHeader: typeof import('vuetify/components')['VDatePickerHeader']
|
533
|
-
VDatePickerMonth: typeof import('vuetify/components')['VDatePickerMonth']
|
534
|
-
VDatePickerMonths: typeof import('vuetify/components')['VDatePickerMonths']
|
535
|
-
VDatePickerYears: typeof import('vuetify/components')['VDatePickerYears']
|
526
|
+
VCheckbox: typeof import('vuetify/components')['VCheckbox']
|
527
|
+
VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
|
536
528
|
VCounter: typeof import('vuetify/components')['VCounter']
|
537
|
-
VDialog: typeof import('vuetify/components')['VDialog']
|
538
529
|
VColorPicker: typeof import('vuetify/components')['VColorPicker']
|
539
530
|
VDataTable: typeof import('vuetify/components')['VDataTable']
|
540
531
|
VDataTableHeaders: typeof import('vuetify/components')['VDataTableHeaders']
|
@@ -543,29 +534,33 @@ declare module '@vue/runtime-core' {
|
|
543
534
|
VDataTableRow: typeof import('vuetify/components')['VDataTableRow']
|
544
535
|
VDataTableVirtual: typeof import('vuetify/components')['VDataTableVirtual']
|
545
536
|
VDataTableServer: typeof import('vuetify/components')['VDataTableServer']
|
537
|
+
VDatePicker: typeof import('vuetify/components')['VDatePicker']
|
538
|
+
VDatePickerControls: typeof import('vuetify/components')['VDatePickerControls']
|
539
|
+
VDatePickerHeader: typeof import('vuetify/components')['VDatePickerHeader']
|
540
|
+
VDatePickerMonth: typeof import('vuetify/components')['VDatePickerMonth']
|
541
|
+
VDatePickerMonths: typeof import('vuetify/components')['VDatePickerMonths']
|
542
|
+
VDatePickerYears: typeof import('vuetify/components')['VDatePickerYears']
|
546
543
|
VDivider: typeof import('vuetify/components')['VDivider']
|
544
|
+
VCombobox: typeof import('vuetify/components')['VCombobox']
|
545
|
+
VEmptyState: typeof import('vuetify/components')['VEmptyState']
|
546
|
+
VDialog: typeof import('vuetify/components')['VDialog']
|
547
|
+
VFileInput: typeof import('vuetify/components')['VFileInput']
|
547
548
|
VExpansionPanels: typeof import('vuetify/components')['VExpansionPanels']
|
548
549
|
VExpansionPanel: typeof import('vuetify/components')['VExpansionPanel']
|
549
550
|
VExpansionPanelText: typeof import('vuetify/components')['VExpansionPanelText']
|
550
551
|
VExpansionPanelTitle: typeof import('vuetify/components')['VExpansionPanelTitle']
|
551
552
|
VField: typeof import('vuetify/components')['VField']
|
552
553
|
VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
|
553
|
-
VEmptyState: typeof import('vuetify/components')['VEmptyState']
|
554
|
-
VFileInput: typeof import('vuetify/components')['VFileInput']
|
555
|
-
VFab: typeof import('vuetify/components')['VFab']
|
556
554
|
VFooter: typeof import('vuetify/components')['VFooter']
|
557
|
-
|
558
|
-
VInput: typeof import('vuetify/components')['VInput']
|
559
|
-
VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
|
555
|
+
VFab: typeof import('vuetify/components')['VFab']
|
560
556
|
VIcon: typeof import('vuetify/components')['VIcon']
|
561
557
|
VComponentIcon: typeof import('vuetify/components')['VComponentIcon']
|
562
558
|
VSvgIcon: typeof import('vuetify/components')['VSvgIcon']
|
563
559
|
VLigatureIcon: typeof import('vuetify/components')['VLigatureIcon']
|
564
560
|
VClassIcon: typeof import('vuetify/components')['VClassIcon']
|
565
|
-
|
566
|
-
|
567
|
-
|
568
|
-
VKbd: typeof import('vuetify/components')['VKbd']
|
561
|
+
VInput: typeof import('vuetify/components')['VInput']
|
562
|
+
VImg: typeof import('vuetify/components')['VImg']
|
563
|
+
VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
|
569
564
|
VList: typeof import('vuetify/components')['VList']
|
570
565
|
VListGroup: typeof import('vuetify/components')['VListGroup']
|
571
566
|
VListImg: typeof import('vuetify/components')['VListImg']
|
@@ -575,27 +570,32 @@ declare module '@vue/runtime-core' {
|
|
575
570
|
VListItemSubtitle: typeof import('vuetify/components')['VListItemSubtitle']
|
576
571
|
VListItemTitle: typeof import('vuetify/components')['VListItemTitle']
|
577
572
|
VListSubheader: typeof import('vuetify/components')['VListSubheader']
|
578
|
-
|
579
|
-
|
573
|
+
VLabel: typeof import('vuetify/components')['VLabel']
|
574
|
+
VItemGroup: typeof import('vuetify/components')['VItemGroup']
|
575
|
+
VItem: typeof import('vuetify/components')['VItem']
|
576
|
+
VKbd: typeof import('vuetify/components')['VKbd']
|
580
577
|
VMessages: typeof import('vuetify/components')['VMessages']
|
581
|
-
|
578
|
+
VMain: typeof import('vuetify/components')['VMain']
|
579
|
+
VMenu: typeof import('vuetify/components')['VMenu']
|
582
580
|
VOtpInput: typeof import('vuetify/components')['VOtpInput']
|
583
581
|
VPagination: typeof import('vuetify/components')['VPagination']
|
584
582
|
VOverlay: typeof import('vuetify/components')['VOverlay']
|
583
|
+
VNavigationDrawer: typeof import('vuetify/components')['VNavigationDrawer']
|
585
584
|
VProgressCircular: typeof import('vuetify/components')['VProgressCircular']
|
586
|
-
VRadioGroup: typeof import('vuetify/components')['VRadioGroup']
|
587
585
|
VProgressLinear: typeof import('vuetify/components')['VProgressLinear']
|
586
|
+
VRadioGroup: typeof import('vuetify/components')['VRadioGroup']
|
588
587
|
VRating: typeof import('vuetify/components')['VRating']
|
589
588
|
VSelect: typeof import('vuetify/components')['VSelect']
|
590
|
-
VSelectionControl: typeof import('vuetify/components')['VSelectionControl']
|
591
589
|
VSheet: typeof import('vuetify/components')['VSheet']
|
590
|
+
VSelectionControl: typeof import('vuetify/components')['VSelectionControl']
|
592
591
|
VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
|
593
|
-
VSnackbar: typeof import('vuetify/components')['VSnackbar']
|
594
592
|
VSelectionControlGroup: typeof import('vuetify/components')['VSelectionControlGroup']
|
595
593
|
VSlideGroup: typeof import('vuetify/components')['VSlideGroup']
|
596
594
|
VSlideGroupItem: typeof import('vuetify/components')['VSlideGroupItem']
|
597
595
|
VSlider: typeof import('vuetify/components')['VSlider']
|
596
|
+
VSnackbar: typeof import('vuetify/components')['VSnackbar']
|
598
597
|
VSystemBar: typeof import('vuetify/components')['VSystemBar']
|
598
|
+
VSwitch: typeof import('vuetify/components')['VSwitch']
|
599
599
|
VTab: typeof import('vuetify/components')['VTab']
|
600
600
|
VTabs: typeof import('vuetify/components')['VTabs']
|
601
601
|
VTabsWindow: typeof import('vuetify/components')['VTabsWindow']
|
@@ -606,18 +606,18 @@ declare module '@vue/runtime-core' {
|
|
606
606
|
VStepperItem: typeof import('vuetify/components')['VStepperItem']
|
607
607
|
VStepperWindow: typeof import('vuetify/components')['VStepperWindow']
|
608
608
|
VStepperWindowItem: typeof import('vuetify/components')['VStepperWindowItem']
|
609
|
-
VTextarea: typeof import('vuetify/components')['VTextarea']
|
610
|
-
VSwitch: typeof import('vuetify/components')['VSwitch']
|
611
|
-
VTimeline: typeof import('vuetify/components')['VTimeline']
|
612
|
-
VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
|
613
|
-
VTextField: typeof import('vuetify/components')['VTextField']
|
614
|
-
VTable: typeof import('vuetify/components')['VTable']
|
615
609
|
VToolbar: typeof import('vuetify/components')['VToolbar']
|
616
610
|
VToolbarTitle: typeof import('vuetify/components')['VToolbarTitle']
|
617
611
|
VToolbarItems: typeof import('vuetify/components')['VToolbarItems']
|
612
|
+
VTable: typeof import('vuetify/components')['VTable']
|
613
|
+
VTextField: typeof import('vuetify/components')['VTextField']
|
614
|
+
VTimeline: typeof import('vuetify/components')['VTimeline']
|
615
|
+
VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
|
616
|
+
VTextarea: typeof import('vuetify/components')['VTextarea']
|
618
617
|
VTooltip: typeof import('vuetify/components')['VTooltip']
|
619
618
|
VWindow: typeof import('vuetify/components')['VWindow']
|
620
619
|
VWindowItem: typeof import('vuetify/components')['VWindowItem']
|
620
|
+
VApp: typeof import('vuetify/components')['VApp']
|
621
621
|
VConfirmEdit: typeof import('vuetify/components')['VConfirmEdit']
|
622
622
|
VDataIterator: typeof import('vuetify/components')['VDataIterator']
|
623
623
|
VDefaultsProvider: typeof import('vuetify/components')['VDefaultsProvider']
|
@@ -627,17 +627,17 @@ declare module '@vue/runtime-core' {
|
|
627
627
|
VSpacer: typeof import('vuetify/components')['VSpacer']
|
628
628
|
VForm: typeof import('vuetify/components')['VForm']
|
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']
|
636
636
|
VRadio: typeof import('vuetify/components')['VRadio']
|
637
637
|
VRangeSlider: typeof import('vuetify/components')['VRangeSlider']
|
638
638
|
VResponsive: typeof import('vuetify/components')['VResponsive']
|
639
|
-
VSpeedDial: typeof import('vuetify/components')['VSpeedDial']
|
640
639
|
VSparkline: typeof import('vuetify/components')['VSparkline']
|
640
|
+
VSpeedDial: typeof import('vuetify/components')['VSpeedDial']
|
641
641
|
VThemeProvider: typeof import('vuetify/components')['VThemeProvider']
|
642
642
|
VValidation: typeof import('vuetify/components')['VValidation']
|
643
643
|
VVirtualScroll: typeof import('vuetify/components')['VVirtualScroll']
|
@@ -664,14 +664,14 @@ declare module '@vue/runtime-core' {
|
|
664
664
|
VCalendarIntervalEvent: typeof import('vuetify/labs/components')['VCalendarIntervalEvent']
|
665
665
|
VCalendarMonthDay: typeof import('vuetify/labs/components')['VCalendarMonthDay']
|
666
666
|
VNumberInput: typeof import('vuetify/labs/components')['VNumberInput']
|
667
|
+
VTreeview: typeof import('vuetify/labs/components')['VTreeview']
|
668
|
+
VTreeviewItem: typeof import('vuetify/labs/components')['VTreeviewItem']
|
669
|
+
VTreeviewGroup: typeof import('vuetify/labs/components')['VTreeviewGroup']
|
667
670
|
VStepperVertical: typeof import('vuetify/labs/components')['VStepperVertical']
|
668
671
|
VStepperVerticalItem: typeof import('vuetify/labs/components')['VStepperVerticalItem']
|
669
672
|
VStepperVerticalActions: typeof import('vuetify/labs/components')['VStepperVerticalActions']
|
670
673
|
VPicker: typeof import('vuetify/labs/components')['VPicker']
|
671
674
|
VPickerTitle: typeof import('vuetify/labs/components')['VPickerTitle']
|
672
|
-
VTreeview: typeof import('vuetify/labs/components')['VTreeview']
|
673
|
-
VTreeviewItem: typeof import('vuetify/labs/components')['VTreeviewItem']
|
674
|
-
VTreeviewGroup: typeof import('vuetify/labs/components')['VTreeviewGroup']
|
675
675
|
VTimePicker: typeof import('vuetify/labs/components')['VTimePicker']
|
676
676
|
VTimePickerClock: typeof import('vuetify/labs/components')['VTimePickerClock']
|
677
677
|
VTimePickerControls: typeof import('vuetify/labs/components')['VTimePickerControls']
|
@@ -7,6 +7,7 @@ import { VBtn } from "../../components/VBtn/index.mjs";
|
|
7
7
|
import { VDefaultsProvider } from "../../components/VDefaultsProvider/index.mjs";
|
8
8
|
import { VDivider } from "../../components/VDivider/index.mjs";
|
9
9
|
import { makeVTextFieldProps, VTextField } from "../../components/VTextField/VTextField.mjs"; // Composables
|
10
|
+
import { useForm } from "../../composables/form.mjs";
|
10
11
|
import { useProxiedModel } from "../../composables/proxiedModel.mjs"; // Utilities
|
11
12
|
import { computed, watchEffect } from 'vue';
|
12
13
|
import { clamp, genericComponent, getDecimals, omit, propsFactory, useRender } from "../../util/index.mjs"; // Types
|
@@ -49,15 +50,20 @@ export const VNumberInput = genericComponent()({
|
|
49
50
|
const model = useProxiedModel(props, 'modelValue');
|
50
51
|
const stepDecimals = computed(() => getDecimals(props.step));
|
51
52
|
const modelDecimals = computed(() => model.value != null ? getDecimals(model.value) : 0);
|
53
|
+
const form = useForm();
|
54
|
+
const controlsDisabled = computed(() => props.disabled || props.readonly || form?.isReadonly.value);
|
52
55
|
const canIncrease = computed(() => {
|
56
|
+
if (controlsDisabled.value) return false;
|
53
57
|
if (model.value == null) return true;
|
54
58
|
return model.value + props.step <= props.max;
|
55
59
|
});
|
56
60
|
const canDecrease = computed(() => {
|
61
|
+
if (controlsDisabled.value) return false;
|
57
62
|
if (model.value == null) return true;
|
58
63
|
return model.value - props.step >= props.min;
|
59
64
|
});
|
60
65
|
watchEffect(() => {
|
66
|
+
if (controlsDisabled.value) return;
|
61
67
|
if (model.value != null && (model.value < props.min || model.value > props.max)) {
|
62
68
|
model.value = clamp(model.value, props.min, props.max);
|
63
69
|
}
|
@@ -73,6 +79,7 @@ export const VNumberInput = genericComponent()({
|
|
73
79
|
}));
|
74
80
|
function toggleUpDown() {
|
75
81
|
let increment = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
|
82
|
+
if (controlsDisabled.value) return;
|
76
83
|
if (model.value == null) {
|
77
84
|
model.value = 0;
|
78
85
|
return;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"VNumberInput.mjs","names":["VBtn","VDefaultsProvider","VDivider","makeVTextFieldProps","VTextField","useProxiedModel","computed","watchEffect","clamp","genericComponent","getDecimals","omit","propsFactory","useRender","makeVNumberInputProps","controlVariant","type","String","default","inset","Boolean","hideInput","min","Number","Infinity","max","step","VNumberInput","name","inheritAttrs","props","emits","val","setup","_ref","attrs","emit","slots","model","stepDecimals","modelDecimals","value","canIncrease","canDecrease","incrementSlotProps","click","onClickUp","decrementSlotProps","onClickDown","toggleUpDown","increment","arguments","length","undefined","decimals","Math","toFixed","e","stopPropagation","onKeydown","includes","key","ctrlKey","preventDefault","test","onModelUpdate","v","onControlMousedown","modelValue","_","textFieldProps","filterProps","controlNode","defaultHeight","_createVNode","decrement","disabled","flat","height","size","icon","dividerNode","appendInnerControl","reverse","_Fragment","hasAppendInner","prependInnerControl","hasPrependInner","_mergeProps","class","style","_len","args","Array","_key","_len2","_key2"],"sources":["../../../src/labs/VNumberInput/VNumberInput.tsx"],"sourcesContent":["// Styles\nimport './VNumberInput.sass'\n\n// Components\nimport { VBtn } from '../../components/VBtn'\nimport { VDefaultsProvider } from '../../components/VDefaultsProvider'\nimport { VDivider } from '../../components/VDivider'\nimport { makeVTextFieldProps, VTextField } from '@/components/VTextField/VTextField'\n\n// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, watchEffect } from 'vue'\nimport { clamp, genericComponent, getDecimals, omit, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VTextFieldSlots } from '@/components/VTextField/VTextField'\n\ntype ControlSlot = {\n click: (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 inheritAttrs: false,\n\n props: {\n ...makeVNumberInputProps(),\n },\n\n emits: {\n 'update:modelValue': (val: number) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const model = useProxiedModel(props, 'modelValue')\n\n const stepDecimals = computed(() => getDecimals(props.step))\n const modelDecimals = computed(() => model.value != null ? getDecimals(model.value) : 0)\n\n const canIncrease = computed(() => {\n if (model.value == null) return true\n return model.value + props.step <= props.max\n })\n const canDecrease = computed(() => {\n if (model.value == null) return true\n return model.value - props.step >= props.min\n })\n\n watchEffect(() => {\n if (model.value != null && (model.value < props.min || model.value > props.max)) {\n model.value = clamp(model.value, props.min, props.max)\n }\n })\n\n const controlVariant = computed(() => {\n return props.hideInput ? 'stacked' : props.controlVariant\n })\n\n const incrementSlotProps = computed(() => ({ click: onClickUp }))\n\n const decrementSlotProps = computed(() => ({ click: onClickDown }))\n\n function toggleUpDown (increment = true) {\n if (model.value == null) {\n model.value = 0\n return\n }\n\n const decimals = Math.max(modelDecimals.value, stepDecimals.value)\n if (increment) {\n if (canIncrease.value) model.value = +(((model.value + props.step).toFixed(decimals)))\n } else {\n if (canDecrease.value) model.value = +(((model.value - props.step).toFixed(decimals)))\n }\n }\n\n function onClickUp (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","inheritAttrs","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 inheritAttrs: false,\n\n props: {\n ...makeVNumberInputProps(),\n },\n\n emits: {\n 'update:modelValue': (val: number) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const model = useProxiedModel(props, 'modelValue')\n\n const stepDecimals = computed(() => getDecimals(props.step))\n const modelDecimals = computed(() => model.value != null ? getDecimals(model.value) : 0)\n\n const 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":";AAAA;AACA;;AAEA;AAAA,SACSA,IAAI;AAAA,SACJC,iBAAiB;AAAA,SACjBC,QAAQ;AAAA,SACRC,mBAAmB,EAAEC,UAAU,sDAExC;AAAA,SACSC,OAAO;AAAA,SACPC,eAAe,8CAExB;AACA,SAASC,QAAQ,EAAEC,WAAW,QAAQ,KAAK;AAAA,SAClCC,KAAK,EAAEC,gBAAgB,EAAEC,WAAW,EAAEC,IAAI,EAAEC,YAAY,EAAEC,SAAS,gCAE5E;AAeA,MAAMC,qBAAqB,GAAGF,YAAY,CAAC;EACzCG,cAAc,EAAE;IACdC,IAAI,EAAEC,MAAkC;IACxCC,OAAO,EAAE;EACX,CAAC;EACDC,KAAK,EAAEC,OAAO;EACdC,SAAS,EAAED,OAAO;EAClBE,GAAG,EAAE;IACHN,IAAI,EAAEO,MAAM;IACZL,OAAO,EAAE,CAACM;EACZ,CAAC;EACDC,GAAG,EAAE;IACHT,IAAI,EAAEO,MAAM;IACZL,OAAO,EAAEM;EACX,CAAC;EACDE,IAAI,EAAE;IACJV,IAAI,EAAEO,MAAM;IACZL,OAAO,EAAE;EACX,CAAC;EAED,GAAGP,IAAI,CAACT,mBAAmB,CAAC,CAAC,EAAE,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;AACxE,CAAC,EAAE,cAAc,CAAC;AAElB,OAAO,MAAMyB,YAAY,GAAGlB,gBAAgB,CAAoB,CAAC,CAAC;EAChEmB,IAAI,EAAE,cAAc;EAEpBC,YAAY,EAAE,KAAK;EAEnBC,KAAK,EAAE;IACL,GAAGhB,qBAAqB,CAAC;EAC3B,CAAC;EAEDiB,KAAK,EAAE;IACL,mBAAmB,EAAGC,GAAW,IAAK;EACxC,CAAC;EAEDC,KAAKA,CAAEH,KAAK,EAAAI,IAAA,EAA0B;IAAA,IAAxB;MAAEC,KAAK;MAAEC,IAAI;MAAEC;IAAM,CAAC,GAAAH,IAAA;IAClC,MAAMI,KAAK,GAAGjC,eAAe,CAACyB,KAAK,EAAE,YAAY,CAAC;IAElD,MAAMS,YAAY,GAAGjC,QAAQ,CAAC,MAAMI,WAAW,CAACoB,KAAK,CAACJ,IAAI,CAAC,CAAC;IAC5D,MAAMc,aAAa,GAAGlC,QAAQ,CAAC,MAAMgC,KAAK,CAACG,KAAK,IAAI,IAAI,GAAG/B,WAAW,CAAC4B,KAAK,CAACG,KAAK,CAAC,GAAG,CAAC,CAAC;IAExF,MAAMC,IAAI,GAAGtC,OAAO,CAAC,CAAC;IACtB,MAAMuC,gBAAgB,GAAGrC,QAAQ,CAAC,MAChCwB,KAAK,CAACc,QAAQ,IAAId,KAAK,CAACe,QAAQ,IAAIH,IAAI,EAAEI,UAAU,CAACL,KACtD,CAAC;IAEF,MAAMM,WAAW,GAAGzC,QAAQ,CAAC,MAAM;MACjC,IAAIqC,gBAAgB,CAACF,KAAK,EAAE,OAAO,KAAK;MACxC,IAAIH,KAAK,CAACG,KAAK,IAAI,IAAI,EAAE,OAAO,IAAI;MACpC,OAAOH,KAAK,CAACG,KAAK,GAAGX,KAAK,CAACJ,IAAI,IAAII,KAAK,CAACL,GAAG;IAC9C,CAAC,CAAC;IACF,MAAMuB,WAAW,GAAG1C,QAAQ,CAAC,MAAM;MACjC,IAAIqC,gBAAgB,CAACF,KAAK,EAAE,OAAO,KAAK;MACxC,IAAIH,KAAK,CAACG,KAAK,IAAI,IAAI,EAAE,OAAO,IAAI;MACpC,OAAOH,KAAK,CAACG,KAAK,GAAGX,KAAK,CAACJ,IAAI,IAAII,KAAK,CAACR,GAAG;IAC9C,CAAC,CAAC;IAEFf,WAAW,CAAC,MAAM;MAChB,IAAIoC,gBAAgB,CAACF,KAAK,EAAE;MAC5B,IAAIH,KAAK,CAACG,KAAK,IAAI,IAAI,KAAKH,KAAK,CAACG,KAAK,GAAGX,KAAK,CAACR,GAAG,IAAIgB,KAAK,CAACG,KAAK,GAAGX,KAAK,CAACL,GAAG,CAAC,EAAE;QAC/Ea,KAAK,CAACG,KAAK,GAAGjC,KAAK,CAAC8B,KAAK,CAACG,KAAK,EAAEX,KAAK,CAACR,GAAG,EAAEQ,KAAK,CAACL,GAAG,CAAC;MACxD;IACF,CAAC,CAAC;IAEF,MAAMV,cAAc,GAAGT,QAAQ,CAAC,MAAM;MACpC,OAAOwB,KAAK,CAACT,SAAS,GAAG,SAAS,GAAGS,KAAK,CAACf,cAAc;IAC3D,CAAC,CAAC;IAEF,MAAMkC,kBAAkB,GAAG3C,QAAQ,CAAC,OAAO;MAAE4C,KAAK,EAAEC;IAAU,CAAC,CAAC,CAAC;IAEjE,MAAMC,kBAAkB,GAAG9C,QAAQ,CAAC,OAAO;MAAE4C,KAAK,EAAEG;IAAY,CAAC,CAAC,CAAC;IAEnE,SAASC,YAAYA,CAAA,EAAoB;MAAA,IAAlBC,SAAS,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,IAAI;MACrC,IAAIb,gBAAgB,CAACF,KAAK,EAAE;MAC5B,IAAIH,KAAK,CAACG,KAAK,IAAI,IAAI,EAAE;QACvBH,KAAK,CAACG,KAAK,GAAG,CAAC;QACf;MACF;MAEA,MAAMkB,QAAQ,GAAGC,IAAI,CAACnC,GAAG,CAACe,aAAa,CAACC,KAAK,EAAEF,YAAY,CAACE,KAAK,CAAC;MAClE,IAAIc,SAAS,EAAE;QACb,IAAIR,WAAW,CAACN,KAAK,EAAEH,KAAK,CAACG,KAAK,GAAG,CAAG,CAACH,KAAK,CAACG,KAAK,GAAGX,KAAK,CAACJ,IAAI,EAAEmC,OAAO,CAACF,QAAQ,CAAG;MACxF,CAAC,MAAM;QACL,IAAIX,WAAW,CAACP,KAAK,EAAEH,KAAK,CAACG,KAAK,GAAG,CAAG,CAACH,KAAK,CAACG,KAAK,GAAGX,KAAK,CAACJ,IAAI,EAAEmC,OAAO,CAACF,QAAQ,CAAG;MACxF;IACF;IAEA,SAASR,SAASA,CAAEW,CAAa,EAAE;MACjCA,CAAC,CAACC,eAAe,CAAC,CAAC;MACnBT,YAAY,CAAC,CAAC;IAChB;IAEA,SAASD,WAAWA,CAAES,CAAa,EAAE;MACnCA,CAAC,CAACC,eAAe,CAAC,CAAC;MACnBT,YAAY,CAAC,KAAK,CAAC;IACrB;IAEA,SAASU,SAASA,CAAEF,CAAgB,EAAE;MACpC,IACE,CAAC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,KAAK,CAAC,CAACG,QAAQ,CAACH,CAAC,CAACI,GAAG,CAAC,IACxEJ,CAAC,CAACK,OAAO,EACT;MAEF,IAAI,CAAC,WAAW,CAAC,CAACF,QAAQ,CAACH,CAAC,CAACI,GAAG,CAAC,EAAE;QACjCJ,CAAC,CAACM,cAAc,CAAC,CAAC;QAClBd,YAAY,CAAC,KAAK,CAAC;QACnB;MACF;MACA,IAAI,CAAC,SAAS,CAAC,CAACW,QAAQ,CAACH,CAAC,CAACI,GAAG,CAAC,EAAE;QAC/BJ,CAAC,CAACM,cAAc,CAAC,CAAC;QAClBd,YAAY,CAAC,CAAC;QACd;MACF;;MAEA;MACA,IAAI,CAAC,cAAc,CAACe,IAAI,CAACP,CAAC,CAACI,GAAG,CAAC,EAAE;QAC/BJ,CAAC,CAACM,cAAc,CAAC,CAAC;MACpB;IACF;IAEA,SAASE,aAAaA,CAAEC,CAAS,EAAE;MACjCjC,KAAK,CAACG,KAAK,GAAG8B,CAAC,GAAG,CAAEA,CAAE,GAAGb,SAAS;IACpC;IAEA,SAASc,kBAAkBA,CAAEV,CAAa,EAAE;MAC1CA,CAAC,CAACC,eAAe,CAAC,CAAC;IACrB;IAEAlD,SAAS,CAAC,MAAM;MACd,MAAM;QAAE4D,UAAU,EAAEC,CAAC;QAAE,GAAGC;MAAe,CAAC,GAAGxE,UAAU,CAACyE,WAAW,CAAC9C,KAAK,CAAC;MAE1E,SAAS+C,WAAWA,CAAA,EAAI;QACtB,MAAMC,aAAa,GAAG/D,cAAc,CAAC0B,KAAK,KAAK,SAAS,GAAG,MAAM,GAAG,MAAM;QAC1E,OAAAsC,YAAA;UAAA;QAAA,IAGM,CAAC1C,KAAK,CAAC2C,SAAS,GAAAD,YAAA,CAAAhF,IAAA;UAAA,YAED,CAACiD,WAAW,CAACP,KAAK;UAAA;UAAA;UAAA,UAGpBqC,aAAa;UAAA;UAAA;UAAA;UAAA;UAAA,WAKZzB,WAAW;UAAA,eACPmB;QAAkB,WAAAO,YAAA,CAAA/E,iBAAA;UAAA;UAAA,YAKtB;YACRD,IAAI,EAAE;cACJ6C,QAAQ,EAAE,CAACI,WAAW,CAACP,KAAK;cAC5BwC,IAAI,EAAE,IAAI;cACVC,MAAM,EAAEJ,aAAa;cACrBK,IAAI,EAAE,OAAO;cACbC,IAAI,EAAE;YACR;UACF;QAAC;UAAAlE,OAAA,EAAAA,CAAA,MAECmB,KAAK,CAAC2C,SAAS,CAAC5B,kBAAkB,CAACX,KAAK,CAAC;QAAA,EAE9C,EAAAsC,YAAA,CAAA9E,QAAA;UAAA,YAIUc,cAAc,CAAC0B,KAAK,KAAK;QAAS,UAI7C,CAACJ,KAAK,CAACkB,SAAS,GAAAwB,YAAA,CAAAhF,IAAA;UAAA,YAED,CAACgD,WAAW,CAACN,KAAK;UAAA;UAAA;UAAA,UAGpBqC,aAAa;UAAA;UAAA;UAAA,WAGZ3B,SAAS;UAAA,eACLqB,kBAAkB;UAAA;UAAA;QAAA,WAAAO,YAAA,CAAA/E,iBAAA;UAAA;UAAA,YAOtB;YACRD,IAAI,EAAE;cACJ6C,QAAQ,EAAE,CAACG,WAAW,CAACN,KAAK;cAC5BwC,IAAI,EAAE,IAAI;cACVC,MAAM,EAAEJ,aAAa;cACrBK,IAAI,EAAE,OAAO;cACbC,IAAI,EAAE;YACR;UACF;QAAC;UAAAlE,OAAA,EAAAA,CAAA,MAECmB,KAAK,CAACkB,SAAS,CAACN,kBAAkB,CAACR,KAAK,CAAC;QAAA,EAE9C;MAIT;MAEA,SAAS4C,WAAWA,CAAA,EAAI;QACtB,OAAO,CAACvD,KAAK,CAACT,SAAS,IAAI,CAACS,KAAK,CAACX,KAAK,GAAA4D,YAAA,CAAA9E,QAAA;UAAA;QAAA,WAA2ByD,SAAS;MAC7E;MAEA,MAAM4B,kBAAkB,GACtBvE,cAAc,CAAC0B,KAAK,KAAK,OAAO,GAAAsC,YAAA;QAAA;MAAA,IAAAA,YAAA,CAAA9E,QAAA;QAAA;MAAA,UAAA8E,YAAA,CAAAhF,IAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA,WAWdoD,SAAS;QAAA,eACLqB;MAAkB,aAGjC,CAAC1C,KAAK,CAACyD,OAAO,GAAAR,YAAA,CAAAS,SAAA,SACXH,WAAW,CAAC,CAAC,EAAIR,WAAW,CAAC,CAAC,KAClCnB,SAAU;MAElB,MAAM+B,cAAc,GAAGpD,KAAK,CAAC,cAAc,CAAC,IAAIiD,kBAAkB;MAElE,MAAMI,mBAAmB,GACvB3E,cAAc,CAAC0B,KAAK,KAAK,OAAO,GAAAsC,YAAA;QAAA;MAAA,IAAAA,YAAA,CAAAhF,IAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA,WASdsD,WAAW;QAAA,eACPmB;MAAkB,UAAAO,YAAA,CAAA9E,QAAA;QAAA;MAAA,aAKjC6B,KAAK,CAACyD,OAAO,GAAAR,YAAA,CAAAS,SAAA,SACVX,WAAW,CAAC,CAAC,EAAIQ,WAAW,CAAC,CAAC,KAClC3B,SAAU;MAElB,MAAMiC,eAAe,GAAGtD,KAAK,CAAC,eAAe,CAAC,IAAIqD,mBAAmB;MAErE,OAAAX,YAAA,CAAA5E,UAAA,EAAAyF,WAAA;QAAA,cAEiBtD,KAAK,CAACG,KAAK;QAAA,uBACF6B,aAAa;QAAA,aACvBN,SAAS;QAAA,SACd,CACL,gBAAgB,EAChB;UACE,yBAAyB,EAAEjD,cAAc,CAAC0B,KAAK,KAAK,SAAS;UAC7D,4BAA4B,EAAEX,KAAK,CAACT,SAAS;UAC7C,uBAAuB,EAAES,KAAK,CAACX,KAAK;UACpC,yBAAyB,EAAEW,KAAK,CAACyD,OAAO;UACxC,uBAAuB,EAAExE,cAAc,CAAC0B,KAAK,KAAK,OAAO;UACzD,yBAAyB,EAAE1B,cAAc,CAAC0B,KAAK,KAAK;QACtD,CAAC,EACDX,KAAK,CAAC+D,KAAK;MACZ,GACIlB,cAAc;QAAA,SACX7C,KAAK,CAACgE,KAAK;QAAA;MAAA;QAIjB,GAAGzD,KAAK;QACR,cAAc,EAAEoD,cAAc,GAAG;UAAA,SAAAM,IAAA,GAAAvC,SAAA,CAAAC,MAAA,EAAIuC,IAAI,OAAAC,KAAA,CAAAF,IAAA,GAAAG,IAAA,MAAAA,IAAA,GAAAH,IAAA,EAAAG,IAAA;YAAJF,IAAI,CAAAE,IAAA,IAAA1C,SAAA,CAAA0C,IAAA;UAAA;UAAA,OAAAnB,YAAA,CAAAS,SAAA,SAEnCnD,KAAK,CAAC,cAAc,CAAC,GAAG,GAAG2D,IAAI,CAAC,EAChCV,kBAAkB;QAAA,CAEvB,GAAG5B,SAAS;QACb,eAAe,EAAEiC,eAAe,GAAG;UAAA,SAAAQ,KAAA,GAAA3C,SAAA,CAAAC,MAAA,EAAIuC,IAAI,OAAAC,KAAA,CAAAE,KAAA,GAAAC,KAAA,MAAAA,KAAA,GAAAD,KAAA,EAAAC,KAAA;YAAJJ,IAAI,CAAAI,KAAA,IAAA5C,SAAA,CAAA4C,KAAA;UAAA;UAAA,OAAArB,YAAA,CAAAS,SAAA,SAErCE,mBAAmB,EACnBrD,KAAK,CAAC,eAAe,CAAC,GAAG,GAAG2D,IAAI,CAAC;QAAA,CAEtC,GAAGtC;MAAS;IAIrB,CAAC,CAAC;EACJ;AACF,CAAC,CAAC","ignoreList":[]}
|
@@ -5,6 +5,10 @@ interface FilterPropsOptions<PropsOptions extends Readonly<ComponentPropsOptions
|
|
5
5
|
filterProps<T extends Partial<Props>, U extends Exclude<keyof Props, Exclude<keyof Props, keyof T>>>(props: T): Partial<Pick<T, U>>;
|
6
6
|
}
|
7
7
|
|
8
|
+
declare const breakpoints: readonly ["sm", "md", "lg", "xl", "xxl"];
|
9
|
+
type Breakpoint = typeof breakpoints[number];
|
10
|
+
type DisplayBreakpoint = 'xs' | Breakpoint;
|
11
|
+
|
8
12
|
type IconValue = string | (string | [path: string, opacity: number])[] | JSXComponent;
|
9
13
|
declare const IconValue: PropType<IconValue>;
|
10
14
|
|
@@ -30,7 +34,7 @@ declare const VStepperVertical: {
|
|
30
34
|
style: vue.StyleValue;
|
31
35
|
disabled: boolean;
|
32
36
|
tag: string;
|
33
|
-
mobile: boolean;
|
37
|
+
mobile: boolean | null;
|
34
38
|
readonly: boolean;
|
35
39
|
variant: NonNullable<"default" | "inset" | "accordion" | "popout">;
|
36
40
|
items: readonly StepperItem[];
|
@@ -59,12 +63,16 @@ declare const VStepperVertical: {
|
|
59
63
|
value?: any;
|
60
64
|
theme?: string | undefined;
|
61
65
|
color?: string | undefined;
|
66
|
+
mobileBreakpoint?: number | DisplayBreakpoint | undefined;
|
62
67
|
modelValue?: any;
|
63
68
|
rounded?: string | number | boolean | undefined;
|
64
69
|
elevation?: string | number | undefined;
|
65
70
|
max?: number | undefined;
|
66
71
|
selectedClass?: string | undefined;
|
67
72
|
bgColor?: string | undefined;
|
73
|
+
completeIcon?: string | undefined;
|
74
|
+
editIcon?: string | undefined;
|
75
|
+
errorIcon?: string | undefined;
|
68
76
|
} & {
|
69
77
|
$children?: vue.VNodeChild | {
|
70
78
|
[x: `header-item.${string}`]: ((arg: StepperItemSlot) => vue.VNodeChild) | undefined;
|
@@ -118,7 +126,7 @@ declare const VStepperVertical: {
|
|
118
126
|
style: vue.StyleValue;
|
119
127
|
disabled: boolean;
|
120
128
|
tag: string;
|
121
|
-
mobile: boolean;
|
129
|
+
mobile: boolean | null;
|
122
130
|
readonly: boolean;
|
123
131
|
variant: NonNullable<"default" | "inset" | "accordion" | "popout">;
|
124
132
|
items: readonly StepperItem[];
|
@@ -147,12 +155,16 @@ declare const VStepperVertical: {
|
|
147
155
|
value?: any;
|
148
156
|
theme?: string | undefined;
|
149
157
|
color?: string | undefined;
|
158
|
+
mobileBreakpoint?: number | DisplayBreakpoint | undefined;
|
150
159
|
modelValue?: any;
|
151
160
|
rounded?: string | number | boolean | undefined;
|
152
161
|
elevation?: string | number | undefined;
|
153
162
|
max?: number | undefined;
|
154
163
|
selectedClass?: string | undefined;
|
155
164
|
bgColor?: string | undefined;
|
165
|
+
completeIcon?: string | undefined;
|
166
|
+
editIcon?: string | undefined;
|
167
|
+
errorIcon?: string | undefined;
|
156
168
|
} & {
|
157
169
|
$children?: vue.VNodeChild | {
|
158
170
|
[x: `header-item.${string}`]: ((arg: StepperItemSlot) => vue.VNodeChild) | undefined;
|
@@ -204,7 +216,7 @@ declare const VStepperVertical: {
|
|
204
216
|
style: vue.StyleValue;
|
205
217
|
disabled: boolean;
|
206
218
|
tag: string;
|
207
|
-
mobile: boolean;
|
219
|
+
mobile: boolean | null;
|
208
220
|
readonly: boolean;
|
209
221
|
modelValue: any;
|
210
222
|
rounded: string | number | boolean;
|
@@ -273,7 +285,7 @@ declare const VStepperVertical: {
|
|
273
285
|
style: vue.StyleValue;
|
274
286
|
disabled: boolean;
|
275
287
|
tag: string;
|
276
|
-
mobile: boolean;
|
288
|
+
mobile: boolean | null;
|
277
289
|
readonly: boolean;
|
278
290
|
variant: NonNullable<"default" | "inset" | "accordion" | "popout">;
|
279
291
|
items: readonly StepperItem[];
|
@@ -302,12 +314,16 @@ declare const VStepperVertical: {
|
|
302
314
|
value?: any;
|
303
315
|
theme?: string | undefined;
|
304
316
|
color?: string | undefined;
|
317
|
+
mobileBreakpoint?: number | DisplayBreakpoint | undefined;
|
305
318
|
modelValue?: any;
|
306
319
|
rounded?: string | number | boolean | undefined;
|
307
320
|
elevation?: string | number | undefined;
|
308
321
|
max?: number | undefined;
|
309
322
|
selectedClass?: string | undefined;
|
310
323
|
bgColor?: string | undefined;
|
324
|
+
completeIcon?: string | undefined;
|
325
|
+
editIcon?: string | undefined;
|
326
|
+
errorIcon?: string | undefined;
|
311
327
|
} & {
|
312
328
|
$children?: vue.VNodeChild | {
|
313
329
|
[x: `header-item.${string}`]: ((arg: StepperItemSlot) => vue.VNodeChild) | undefined;
|
@@ -359,7 +375,7 @@ declare const VStepperVertical: {
|
|
359
375
|
style: vue.StyleValue;
|
360
376
|
disabled: boolean;
|
361
377
|
tag: string;
|
362
|
-
mobile: boolean;
|
378
|
+
mobile: boolean | null;
|
363
379
|
readonly: boolean;
|
364
380
|
modelValue: any;
|
365
381
|
rounded: string | number | boolean;
|
@@ -392,7 +408,7 @@ declare const VStepperVertical: {
|
|
392
408
|
style: vue.StyleValue;
|
393
409
|
disabled: boolean;
|
394
410
|
tag: string;
|
395
|
-
mobile: boolean;
|
411
|
+
mobile: boolean | null;
|
396
412
|
readonly: boolean;
|
397
413
|
variant: NonNullable<"default" | "inset" | "accordion" | "popout">;
|
398
414
|
items: readonly StepperItem[];
|
@@ -421,12 +437,16 @@ declare const VStepperVertical: {
|
|
421
437
|
value?: any;
|
422
438
|
theme?: string | undefined;
|
423
439
|
color?: string | undefined;
|
440
|
+
mobileBreakpoint?: number | DisplayBreakpoint | undefined;
|
424
441
|
modelValue?: any;
|
425
442
|
rounded?: string | number | boolean | undefined;
|
426
443
|
elevation?: string | number | undefined;
|
427
444
|
max?: number | undefined;
|
428
445
|
selectedClass?: string | undefined;
|
429
446
|
bgColor?: string | undefined;
|
447
|
+
completeIcon?: string | undefined;
|
448
|
+
editIcon?: string | undefined;
|
449
|
+
errorIcon?: string | undefined;
|
430
450
|
} & {
|
431
451
|
$children?: vue.VNodeChild | {
|
432
452
|
[x: `header-item.${string}`]: ((arg: StepperItemSlot) => vue.VNodeChild) | undefined;
|
@@ -480,7 +500,7 @@ declare const VStepperVertical: {
|
|
480
500
|
style: vue.StyleValue;
|
481
501
|
disabled: boolean;
|
482
502
|
tag: string;
|
483
|
-
mobile: boolean;
|
503
|
+
mobile: boolean | null;
|
484
504
|
readonly: boolean;
|
485
505
|
modelValue: any;
|
486
506
|
rounded: string | number | boolean;
|
@@ -601,8 +621,16 @@ declare const VStepperVertical: {
|
|
601
621
|
};
|
602
622
|
hideActions: BooleanConstructor;
|
603
623
|
focusable: BooleanConstructor;
|
624
|
+
mobile: {
|
625
|
+
type: vue.PropType<boolean | null>;
|
626
|
+
default: boolean;
|
627
|
+
};
|
628
|
+
mobileBreakpoint: vue.PropType<number | DisplayBreakpoint>;
|
604
629
|
altLabels: BooleanConstructor;
|
630
|
+
completeIcon: StringConstructor;
|
631
|
+
editIcon: StringConstructor;
|
605
632
|
editable: BooleanConstructor;
|
633
|
+
errorIcon: StringConstructor;
|
606
634
|
items: {
|
607
635
|
type: vue.PropType<readonly StepperItem[]>;
|
608
636
|
default: () => never[];
|
@@ -615,7 +643,6 @@ declare const VStepperVertical: {
|
|
615
643
|
type: StringConstructor;
|
616
644
|
default: string;
|
617
645
|
};
|
618
|
-
mobile: BooleanConstructor;
|
619
646
|
nonLinear: BooleanConstructor;
|
620
647
|
prevText: {
|
621
648
|
type: StringConstructor;
|
@@ -689,8 +716,16 @@ declare const VStepperVertical: {
|
|
689
716
|
};
|
690
717
|
hideActions: BooleanConstructor;
|
691
718
|
focusable: BooleanConstructor;
|
719
|
+
mobile: {
|
720
|
+
type: vue.PropType<boolean | null>;
|
721
|
+
default: boolean;
|
722
|
+
};
|
723
|
+
mobileBreakpoint: vue.PropType<number | DisplayBreakpoint>;
|
692
724
|
altLabels: BooleanConstructor;
|
725
|
+
completeIcon: StringConstructor;
|
726
|
+
editIcon: StringConstructor;
|
693
727
|
editable: BooleanConstructor;
|
728
|
+
errorIcon: StringConstructor;
|
694
729
|
items: {
|
695
730
|
type: vue.PropType<readonly StepperItem[]>;
|
696
731
|
default: () => never[];
|
@@ -703,7 +738,6 @@ declare const VStepperVertical: {
|
|
703
738
|
type: StringConstructor;
|
704
739
|
default: string;
|
705
740
|
};
|
706
|
-
mobile: BooleanConstructor;
|
707
741
|
nonLinear: BooleanConstructor;
|
708
742
|
prevText: {
|
709
743
|
type: StringConstructor;
|