@vuetify/nightly 3.6.14-master.2024-08-13 → 3.6.14-master.2024-08-14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/json/importMap-labs.json +16 -16
- package/dist/json/importMap.json +154 -154
- package/dist/json/web-types.json +3 -3
- package/dist/vuetify-labs.css +3028 -3028
- package/dist/vuetify-labs.d.ts +5010 -369
- package/dist/vuetify-labs.esm.js +4 -3
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +4 -3
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +1123 -1123
- package/dist/vuetify.d.ts +52 -52
- package/dist/vuetify.esm.js +3 -3
- package/dist/vuetify.js +3 -3
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +3 -3
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/index.d.mts +52 -52
- package/lib/labs/VNumberInput/VNumberInput.mjs +2 -0
- package/lib/labs/VNumberInput/VNumberInput.mjs.map +1 -1
- package/lib/labs/VNumberInput/index.d.mts +4719 -30
- package/lib/labs/components.d.mts +4850 -186
- package/package.json +1 -1
package/dist/vuetify.min.js
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
/*!
|
2
|
-
* Vuetify v3.6.14-master.2024-08-
|
2
|
+
* Vuetify v3.6.14-master.2024-08-14
|
3
3
|
* Forged by John Leider
|
4
4
|
* Released under the MIT License.
|
5
5
|
*/
|
@@ -2094,8 +2094,8 @@ if(d.install(e),e.provide(kt,u),e.provide(hn,c),e.provide(Va,d),e.provide(Ot,v),
|
|
2094
2094
|
else{const{mount:a}=e
|
2095
2095
|
e.mount=function(){const l=a(...arguments)
|
2096
2096
|
return t.nextTick((()=>c.update())),e.mount=a,l}}St.reset(),("boolean"!=typeof __VUE_OPTIONS_API__||__VUE_OPTIONS_API__)&&e.mixin({computed:{$vuetify(){return t.reactive({defaults:sf.call(this,kt),display:sf.call(this,hn),theme:sf.call(this,Va),icons:sf.call(this,Ot),locale:sf.call(this,ma),date:sf.call(this,mu)})}}})},defaults:u,display:c,theme:d,icons:v,locale:p,date:f,goTo:m}}function sf(e){const t=this.$,a=t.parent?.provides??t.vnode.appContext?.provides
|
2097
|
-
if(a&&e in a)return a[e]}rf.version="3.6.14-master.2024-08-
|
2098
|
-
const uf=function(){return rf({components:Zp,directives:nf,...arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}})},cf="3.6.14-master.2024-08-
|
2097
|
+
if(a&&e in a)return a[e]}rf.version="3.6.14-master.2024-08-14"
|
2098
|
+
const uf=function(){return rf({components:Zp,directives:nf,...arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}})},cf="3.6.14-master.2024-08-14"
|
2099
2099
|
uf.version=cf,e.blueprints=Zt,e.components=Zp,e.createVuetify=uf,e.directives=nf,e.useDate=hu,e.useDefaults=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0
|
2100
2100
|
const{props:a,provideSubDefaults:l}=Ct(e,t)
|
2101
2101
|
return l(),a},e.useDisplay=xn,e.useGoTo=Bn,e.useLayout=la,e.useLocale=ha,e.useRtl=ba,e.useTheme=xa,e.version=cf}))
|
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.14-master.2024-08-
|
19
|
+
export const version = "3.6.14-master.2024-08-14";
|
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
@@ -464,48 +464,45 @@ declare global {
|
|
464
464
|
}
|
465
465
|
}
|
466
466
|
interface _GlobalComponents {
|
467
|
-
VApp: typeof import('vuetify/components')['VApp']
|
468
467
|
VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
|
469
|
-
|
470
|
-
VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
|
468
|
+
VApp: typeof import('vuetify/components')['VApp']
|
471
469
|
VAppBar: typeof import('vuetify/components')['VAppBar']
|
472
470
|
VAppBarNavIcon: typeof import('vuetify/components')['VAppBarNavIcon']
|
473
471
|
VAppBarTitle: typeof import('vuetify/components')['VAppBarTitle']
|
474
472
|
VAvatar: typeof import('vuetify/components')['VAvatar']
|
475
|
-
|
473
|
+
VAlert: typeof import('vuetify/components')['VAlert']
|
474
|
+
VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
|
476
475
|
VBanner: typeof import('vuetify/components')['VBanner']
|
477
476
|
VBannerActions: typeof import('vuetify/components')['VBannerActions']
|
478
477
|
VBannerText: typeof import('vuetify/components')['VBannerText']
|
479
478
|
VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
|
480
|
-
VBreadcrumbs: typeof import('vuetify/components')['VBreadcrumbs']
|
481
|
-
VBreadcrumbsItem: typeof import('vuetify/components')['VBreadcrumbsItem']
|
482
|
-
VBreadcrumbsDivider: typeof import('vuetify/components')['VBreadcrumbsDivider']
|
483
479
|
VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
|
484
|
-
|
480
|
+
VBadge: typeof import('vuetify/components')['VBadge']
|
485
481
|
VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
|
482
|
+
VCarousel: typeof import('vuetify/components')['VCarousel']
|
483
|
+
VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
|
486
484
|
VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
|
485
|
+
VCode: typeof import('vuetify/components')['VCode']
|
487
486
|
VChip: typeof import('vuetify/components')['VChip']
|
488
|
-
VCheckbox: typeof import('vuetify/components')['VCheckbox']
|
489
|
-
VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
|
490
487
|
VCard: typeof import('vuetify/components')['VCard']
|
491
488
|
VCardActions: typeof import('vuetify/components')['VCardActions']
|
492
489
|
VCardItem: typeof import('vuetify/components')['VCardItem']
|
493
490
|
VCardSubtitle: typeof import('vuetify/components')['VCardSubtitle']
|
494
491
|
VCardText: typeof import('vuetify/components')['VCardText']
|
495
492
|
VCardTitle: typeof import('vuetify/components')['VCardTitle']
|
496
|
-
VCarousel: typeof import('vuetify/components')['VCarousel']
|
497
|
-
VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
|
498
493
|
VColorPicker: typeof import('vuetify/components')['VColorPicker']
|
499
494
|
VChipGroup: typeof import('vuetify/components')['VChipGroup']
|
500
|
-
|
501
|
-
|
495
|
+
VCheckbox: typeof import('vuetify/components')['VCheckbox']
|
496
|
+
VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
|
502
497
|
VCombobox: typeof import('vuetify/components')['VCombobox']
|
498
|
+
VCounter: typeof import('vuetify/components')['VCounter']
|
503
499
|
VDatePicker: typeof import('vuetify/components')['VDatePicker']
|
504
500
|
VDatePickerControls: typeof import('vuetify/components')['VDatePickerControls']
|
505
501
|
VDatePickerHeader: typeof import('vuetify/components')['VDatePickerHeader']
|
506
502
|
VDatePickerMonth: typeof import('vuetify/components')['VDatePickerMonth']
|
507
503
|
VDatePickerMonths: typeof import('vuetify/components')['VDatePickerMonths']
|
508
504
|
VDatePickerYears: typeof import('vuetify/components')['VDatePickerYears']
|
505
|
+
VBtn: typeof import('vuetify/components')['VBtn']
|
509
506
|
VDataTable: typeof import('vuetify/components')['VDataTable']
|
510
507
|
VDataTableHeaders: typeof import('vuetify/components')['VDataTableHeaders']
|
511
508
|
VDataTableFooter: typeof import('vuetify/components')['VDataTableFooter']
|
@@ -513,34 +510,33 @@ interface _GlobalComponents {
|
|
513
510
|
VDataTableRow: typeof import('vuetify/components')['VDataTableRow']
|
514
511
|
VDataTableVirtual: typeof import('vuetify/components')['VDataTableVirtual']
|
515
512
|
VDataTableServer: typeof import('vuetify/components')['VDataTableServer']
|
516
|
-
VEmptyState: typeof import('vuetify/components')['VEmptyState']
|
517
513
|
VDialog: typeof import('vuetify/components')['VDialog']
|
514
|
+
VBreadcrumbs: typeof import('vuetify/components')['VBreadcrumbs']
|
515
|
+
VBreadcrumbsItem: typeof import('vuetify/components')['VBreadcrumbsItem']
|
516
|
+
VBreadcrumbsDivider: typeof import('vuetify/components')['VBreadcrumbsDivider']
|
518
517
|
VDivider: typeof import('vuetify/components')['VDivider']
|
519
|
-
|
520
|
-
VFooter: typeof import('vuetify/components')['VFooter']
|
518
|
+
VEmptyState: typeof import('vuetify/components')['VEmptyState']
|
521
519
|
VExpansionPanels: typeof import('vuetify/components')['VExpansionPanels']
|
522
520
|
VExpansionPanel: typeof import('vuetify/components')['VExpansionPanel']
|
523
521
|
VExpansionPanelText: typeof import('vuetify/components')['VExpansionPanelText']
|
524
522
|
VExpansionPanelTitle: typeof import('vuetify/components')['VExpansionPanelTitle']
|
523
|
+
VFab: typeof import('vuetify/components')['VFab']
|
525
524
|
VFileInput: typeof import('vuetify/components')['VFileInput']
|
525
|
+
VFooter: typeof import('vuetify/components')['VFooter']
|
526
526
|
VField: typeof import('vuetify/components')['VField']
|
527
527
|
VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
|
528
|
+
VImg: typeof import('vuetify/components')['VImg']
|
528
529
|
VIcon: typeof import('vuetify/components')['VIcon']
|
529
530
|
VComponentIcon: typeof import('vuetify/components')['VComponentIcon']
|
530
531
|
VSvgIcon: typeof import('vuetify/components')['VSvgIcon']
|
531
532
|
VLigatureIcon: typeof import('vuetify/components')['VLigatureIcon']
|
532
533
|
VClassIcon: typeof import('vuetify/components')['VClassIcon']
|
534
|
+
VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
|
535
|
+
VInput: typeof import('vuetify/components')['VInput']
|
533
536
|
VItemGroup: typeof import('vuetify/components')['VItemGroup']
|
534
537
|
VItem: typeof import('vuetify/components')['VItem']
|
535
|
-
VImg: typeof import('vuetify/components')['VImg']
|
536
|
-
VInput: typeof import('vuetify/components')['VInput']
|
537
|
-
VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
|
538
538
|
VKbd: typeof import('vuetify/components')['VKbd']
|
539
539
|
VLabel: typeof import('vuetify/components')['VLabel']
|
540
|
-
VMenu: typeof import('vuetify/components')['VMenu']
|
541
|
-
VMain: typeof import('vuetify/components')['VMain']
|
542
|
-
VNavigationDrawer: typeof import('vuetify/components')['VNavigationDrawer']
|
543
|
-
VMessages: typeof import('vuetify/components')['VMessages']
|
544
540
|
VList: typeof import('vuetify/components')['VList']
|
545
541
|
VListGroup: typeof import('vuetify/components')['VListGroup']
|
546
542
|
VListImg: typeof import('vuetify/components')['VListImg']
|
@@ -550,68 +546,70 @@ interface _GlobalComponents {
|
|
550
546
|
VListItemSubtitle: typeof import('vuetify/components')['VListItemSubtitle']
|
551
547
|
VListItemTitle: typeof import('vuetify/components')['VListItemTitle']
|
552
548
|
VListSubheader: typeof import('vuetify/components')['VListSubheader']
|
553
|
-
|
554
|
-
|
549
|
+
VMain: typeof import('vuetify/components')['VMain']
|
550
|
+
VMessages: typeof import('vuetify/components')['VMessages']
|
551
|
+
VMenu: typeof import('vuetify/components')['VMenu']
|
552
|
+
VNavigationDrawer: typeof import('vuetify/components')['VNavigationDrawer']
|
555
553
|
VOverlay: typeof import('vuetify/components')['VOverlay']
|
554
|
+
VRadioGroup: typeof import('vuetify/components')['VRadioGroup']
|
555
|
+
VPagination: typeof import('vuetify/components')['VPagination']
|
556
556
|
VOtpInput: typeof import('vuetify/components')['VOtpInput']
|
557
|
-
VRating: typeof import('vuetify/components')['VRating']
|
558
557
|
VProgressCircular: typeof import('vuetify/components')['VProgressCircular']
|
559
|
-
|
560
|
-
|
558
|
+
VRating: typeof import('vuetify/components')['VRating']
|
559
|
+
VSelect: typeof import('vuetify/components')['VSelect']
|
560
|
+
VProgressLinear: typeof import('vuetify/components')['VProgressLinear']
|
561
|
+
VSelectionControlGroup: typeof import('vuetify/components')['VSelectionControlGroup']
|
562
|
+
VSnackbar: typeof import('vuetify/components')['VSnackbar']
|
561
563
|
VSelectionControl: typeof import('vuetify/components')['VSelectionControl']
|
562
564
|
VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
|
563
|
-
VSelectionControlGroup: typeof import('vuetify/components')['VSelectionControlGroup']
|
564
|
-
VSelect: typeof import('vuetify/components')['VSelect']
|
565
|
-
VSlider: typeof import('vuetify/components')['VSlider']
|
566
565
|
VSlideGroup: typeof import('vuetify/components')['VSlideGroup']
|
567
566
|
VSlideGroupItem: typeof import('vuetify/components')['VSlideGroupItem']
|
568
|
-
|
567
|
+
VSheet: typeof import('vuetify/components')['VSheet']
|
568
|
+
VSlider: typeof import('vuetify/components')['VSlider']
|
569
|
+
VTab: typeof import('vuetify/components')['VTab']
|
570
|
+
VTabs: typeof import('vuetify/components')['VTabs']
|
571
|
+
VTabsWindow: typeof import('vuetify/components')['VTabsWindow']
|
572
|
+
VTabsWindowItem: typeof import('vuetify/components')['VTabsWindowItem']
|
573
|
+
VTextarea: typeof import('vuetify/components')['VTextarea']
|
569
574
|
VStepper: typeof import('vuetify/components')['VStepper']
|
570
575
|
VStepperActions: typeof import('vuetify/components')['VStepperActions']
|
571
576
|
VStepperHeader: typeof import('vuetify/components')['VStepperHeader']
|
572
577
|
VStepperItem: typeof import('vuetify/components')['VStepperItem']
|
573
578
|
VStepperWindow: typeof import('vuetify/components')['VStepperWindow']
|
574
579
|
VStepperWindowItem: typeof import('vuetify/components')['VStepperWindowItem']
|
575
|
-
|
576
|
-
|
577
|
-
|
578
|
-
VTabsWindow: typeof import('vuetify/components')['VTabsWindow']
|
579
|
-
VTabsWindowItem: typeof import('vuetify/components')['VTabsWindowItem']
|
580
|
-
VTable: typeof import('vuetify/components')['VTable']
|
580
|
+
VSwitch: typeof import('vuetify/components')['VSwitch']
|
581
|
+
VTextField: typeof import('vuetify/components')['VTextField']
|
582
|
+
VSystemBar: typeof import('vuetify/components')['VSystemBar']
|
581
583
|
VTimeline: typeof import('vuetify/components')['VTimeline']
|
582
584
|
VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
|
583
|
-
VSystemBar: typeof import('vuetify/components')['VSystemBar']
|
584
|
-
VTextarea: typeof import('vuetify/components')['VTextarea']
|
585
585
|
VToolbar: typeof import('vuetify/components')['VToolbar']
|
586
586
|
VToolbarTitle: typeof import('vuetify/components')['VToolbarTitle']
|
587
587
|
VToolbarItems: typeof import('vuetify/components')['VToolbarItems']
|
588
|
-
|
588
|
+
VTable: typeof import('vuetify/components')['VTable']
|
589
589
|
VTooltip: typeof import('vuetify/components')['VTooltip']
|
590
590
|
VWindow: typeof import('vuetify/components')['VWindow']
|
591
591
|
VWindowItem: typeof import('vuetify/components')['VWindowItem']
|
592
592
|
VConfirmEdit: typeof import('vuetify/components')['VConfirmEdit']
|
593
|
-
VDataIterator: typeof import('vuetify/components')['VDataIterator']
|
594
593
|
VDefaultsProvider: typeof import('vuetify/components')['VDefaultsProvider']
|
595
|
-
|
594
|
+
VDataIterator: typeof import('vuetify/components')['VDataIterator']
|
596
595
|
VForm: typeof import('vuetify/components')['VForm']
|
597
596
|
VContainer: typeof import('vuetify/components')['VContainer']
|
598
597
|
VCol: typeof import('vuetify/components')['VCol']
|
599
598
|
VRow: typeof import('vuetify/components')['VRow']
|
600
599
|
VSpacer: typeof import('vuetify/components')['VSpacer']
|
600
|
+
VHover: typeof import('vuetify/components')['VHover']
|
601
601
|
VLayout: typeof import('vuetify/components')['VLayout']
|
602
602
|
VLayoutItem: typeof import('vuetify/components')['VLayoutItem']
|
603
603
|
VLazy: typeof import('vuetify/components')['VLazy']
|
604
604
|
VLocaleProvider: typeof import('vuetify/components')['VLocaleProvider']
|
605
605
|
VNoSsr: typeof import('vuetify/components')['VNoSsr']
|
606
606
|
VParallax: typeof import('vuetify/components')['VParallax']
|
607
|
-
VRadio: typeof import('vuetify/components')['VRadio']
|
608
607
|
VRangeSlider: typeof import('vuetify/components')['VRangeSlider']
|
608
|
+
VRadio: typeof import('vuetify/components')['VRadio']
|
609
609
|
VResponsive: typeof import('vuetify/components')['VResponsive']
|
610
|
-
VSparkline: typeof import('vuetify/components')['VSparkline']
|
611
610
|
VSpeedDial: typeof import('vuetify/components')['VSpeedDial']
|
611
|
+
VSparkline: typeof import('vuetify/components')['VSparkline']
|
612
612
|
VThemeProvider: typeof import('vuetify/components')['VThemeProvider']
|
613
|
-
VValidation: typeof import('vuetify/components')['VValidation']
|
614
|
-
VVirtualScroll: typeof import('vuetify/components')['VVirtualScroll']
|
615
613
|
VFabTransition: typeof import('vuetify/components')['VFabTransition']
|
616
614
|
VDialogBottomTransition: typeof import('vuetify/components')['VDialogBottomTransition']
|
617
615
|
VDialogTopTransition: typeof import('vuetify/components')['VDialogTopTransition']
|
@@ -628,21 +626,23 @@ interface _GlobalComponents {
|
|
628
626
|
VExpandTransition: typeof import('vuetify/components')['VExpandTransition']
|
629
627
|
VExpandXTransition: typeof import('vuetify/components')['VExpandXTransition']
|
630
628
|
VDialogTransition: typeof import('vuetify/components')['VDialogTransition']
|
631
|
-
|
629
|
+
VValidation: typeof import('vuetify/components')['VValidation']
|
630
|
+
VVirtualScroll: typeof import('vuetify/components')['VVirtualScroll']
|
632
631
|
VPicker: typeof import('vuetify/labs/components')['VPicker']
|
633
632
|
VPickerTitle: typeof import('vuetify/labs/components')['VPickerTitle']
|
634
|
-
VStepperVertical: typeof import('vuetify/labs/components')['VStepperVertical']
|
635
|
-
VStepperVerticalItem: typeof import('vuetify/labs/components')['VStepperVerticalItem']
|
636
|
-
VStepperVerticalActions: typeof import('vuetify/labs/components')['VStepperVerticalActions']
|
637
633
|
VCalendar: typeof import('vuetify/labs/components')['VCalendar']
|
638
634
|
VCalendarDay: typeof import('vuetify/labs/components')['VCalendarDay']
|
639
635
|
VCalendarHeader: typeof import('vuetify/labs/components')['VCalendarHeader']
|
640
636
|
VCalendarInterval: typeof import('vuetify/labs/components')['VCalendarInterval']
|
641
637
|
VCalendarIntervalEvent: typeof import('vuetify/labs/components')['VCalendarIntervalEvent']
|
642
638
|
VCalendarMonthDay: typeof import('vuetify/labs/components')['VCalendarMonthDay']
|
639
|
+
VNumberInput: typeof import('vuetify/labs/components')['VNumberInput']
|
643
640
|
VTreeview: typeof import('vuetify/labs/components')['VTreeview']
|
644
641
|
VTreeviewItem: typeof import('vuetify/labs/components')['VTreeviewItem']
|
645
642
|
VTreeviewGroup: typeof import('vuetify/labs/components')['VTreeviewGroup']
|
643
|
+
VStepperVertical: typeof import('vuetify/labs/components')['VStepperVertical']
|
644
|
+
VStepperVerticalItem: typeof import('vuetify/labs/components')['VStepperVerticalItem']
|
645
|
+
VStepperVerticalActions: typeof import('vuetify/labs/components')['VStepperVerticalActions']
|
646
646
|
VTimePicker: typeof import('vuetify/labs/components')['VTimePicker']
|
647
647
|
VTimePickerClock: typeof import('vuetify/labs/components')['VTimePickerClock']
|
648
648
|
VTimePickerControls: typeof import('vuetify/labs/components')['VTimePickerControls']
|
@@ -8,6 +8,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
10
|
import { useForm } from "../../composables/form.mjs";
|
11
|
+
import { forwardRefs } from "../../composables/forwardRefs.mjs";
|
11
12
|
import { useProxiedModel } from "../../composables/proxiedModel.mjs"; // Utilities
|
12
13
|
import { computed, nextTick, onMounted, ref } from 'vue';
|
13
14
|
import { clamp, genericComponent, getDecimals, omit, propsFactory, useRender } from "../../util/index.mjs"; // Types
|
@@ -264,6 +265,7 @@ export const VNumberInput = genericComponent()({
|
|
264
265
|
} : undefined
|
265
266
|
});
|
266
267
|
});
|
268
|
+
return forwardRefs({}, vTextFieldRef);
|
267
269
|
}
|
268
270
|
});
|
269
271
|
//# sourceMappingURL=VNumberInput.mjs.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"VNumberInput.mjs","names":["VBtn","VDefaultsProvider","VDivider","makeVTextFieldProps","VTextField","useForm","useProxiedModel","computed","nextTick","onMounted","ref","clamp","genericComponent","getDecimals","omit","propsFactory","useRender","makeVNumberInputProps","controlVariant","type","String","default","inset","Boolean","hideInput","modelValue","Number","min","MIN_SAFE_INTEGER","max","MAX_SAFE_INTEGER","step","VNumberInput","name","props","emits","val","setup","_ref","slots","_model","model","get","value","set","vTextFieldRef","stepDecimals","modelDecimals","form","controlsDisabled","disabled","readonly","isReadonly","canIncrease","canDecrease","incrementIcon","decrementIcon","controlNodeSize","controlNodeDefaultHeight","incrementSlotProps","click","onClickUp","decrementSlotProps","onClickDown","clampModel","toggleUpDown","increment","arguments","length","undefined","decimals","Math","toFixed","e","stopPropagation","onBeforeinput","data","existingTxt","target","selectionStart","selectionEnd","potentialNewInputVal","slice","test","preventDefault","onKeydown","includes","key","ctrlKey","onControlMousedown","inputText","isNaN","_","textFieldProps","filterProps","incrementControlNode","_createVNode","flat","height","size","icon","decrementControlNode","decrement","controlNode","dividerNode","appendInnerControl","reverse","_Fragment","hasAppendInner","prependInnerControl","hasPrependInner","_mergeProps","$event","class","style","_len","args","Array","_key","_len2","_key2"],"sources":["../../../src/labs/VNumberInput/VNumberInput.tsx"],"sourcesContent":["// Styles\nimport './VNumberInput.sass'\n\n// Components\nimport { VBtn } from '../../components/VBtn'\nimport { VDefaultsProvider } from '../../components/VDefaultsProvider'\nimport { VDivider } from '../../components/VDivider'\nimport { makeVTextFieldProps, VTextField } from '@/components/VTextField/VTextField'\n\n// Composables\nimport { useForm } from '@/composables/form'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, nextTick, onMounted, ref } from 'vue'\nimport { clamp, genericComponent, getDecimals, omit, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VTextFieldSlots } from '@/components/VTextField/VTextField'\n\ntype ControlSlot = {\n click: (e: MouseEvent) => void\n}\n\ntype VNumberInputSlots = Omit<VTextFieldSlots, 'default'> & {\n increment: ControlSlot\n decrement: ControlSlot\n}\n\ntype ControlVariant = 'default' | 'stacked' | 'split'\n\nconst makeVNumberInputProps = propsFactory({\n controlVariant: {\n type: String as PropType<ControlVariant>,\n default: 'default',\n },\n inset: Boolean,\n hideInput: Boolean,\n modelValue: {\n type: Number as PropType<Number | null>,\n default: null,\n },\n min: {\n type: Number,\n default: Number.MIN_SAFE_INTEGER,\n },\n max: {\n type: Number,\n default: Number.MAX_SAFE_INTEGER,\n },\n step: {\n type: Number,\n default: 1,\n },\n\n ...omit(makeVTextFieldProps({}), ['appendInnerIcon', 'modelValue', 'prependInnerIcon']),\n}, 'VNumberInput')\n\nexport const VNumberInput = genericComponent<VNumberInputSlots>()({\n name: 'VNumberInput',\n\n props: {\n ...makeVNumberInputProps(),\n },\n\n emits: {\n 'update:modelValue': (val: number) => true,\n },\n\n setup (props, { slots }) {\n const _model = useProxiedModel(props, 'modelValue')\n\n const model = computed({\n get: () => _model.value,\n set (val) {\n if (typeof val !== 'string') _model.value = val\n },\n })\n\n const vTextFieldRef = ref<VTextField | undefined>()\n\n const stepDecimals = computed(() => getDecimals(props.step))\n const modelDecimals = computed(() => typeof model.value === 'number' ? getDecimals(model.value) : 0)\n\n const form = useForm()\n const controlsDisabled = computed(() => (\n props.disabled || props.readonly || form?.isReadonly.value\n ))\n\n const canIncrease = computed(() => {\n if (controlsDisabled.value) return false\n return (model.value ?? 0) as number + props.step <= props.max\n })\n const canDecrease = computed(() => {\n if (controlsDisabled.value) return false\n return (model.value ?? 0) as number - props.step >= props.min\n })\n\n const controlVariant = computed(() => {\n return props.hideInput ? 'stacked' : props.controlVariant\n })\n\n const incrementIcon = computed(() => controlVariant.value === 'split' ? '$plus' : '$collapse')\n const decrementIcon = computed(() => controlVariant.value === 'split' ? '$minus' : '$expand')\n const controlNodeSize = computed(() => controlVariant.value === 'split' ? 'default' : 'small')\n const controlNodeDefaultHeight = computed(() => controlVariant.value === 'stacked' ? 'auto' : '100%')\n\n const incrementSlotProps = computed(() => ({ click: onClickUp }))\n\n const decrementSlotProps = computed(() => ({ click: onClickDown }))\n\n onMounted(() => {\n if (!props.readonly && !props.disabled) {\n clampModel()\n }\n })\n\n function toggleUpDown (increment = true) {\n if (controlsDisabled.value) return\n if (model.value == null) {\n model.value = clamp(0, props.min, props.max)\n return\n }\n\n const decimals = Math.max(modelDecimals.value, stepDecimals.value)\n if (increment) {\n if (canIncrease.value) model.value = +((((model.value as number) + props.step).toFixed(decimals)))\n } else {\n if (canDecrease.value) model.value = +((((model.value as number) - props.step).toFixed(decimals)))\n }\n }\n\n function onClickUp (e: MouseEvent) {\n e.stopPropagation()\n toggleUpDown()\n }\n\n function onClickDown (e: MouseEvent) {\n e.stopPropagation()\n toggleUpDown(false)\n }\n\n function onBeforeinput (e: InputEvent) {\n if (!e.data) return\n const existingTxt = (e.target as HTMLInputElement)?.value\n const selectionStart = (e.target as HTMLInputElement)?.selectionStart\n const selectionEnd = (e.target as HTMLInputElement)?.selectionEnd\n const potentialNewInputVal =\n existingTxt\n ? existingTxt.slice(0, selectionStart as number | undefined) + e.data + existingTxt.slice(selectionEnd as number | undefined)\n : e.data\n // Only numbers, \"-\", \".\" are allowed\n // AND \"-\", \".\" are allowed only once\n // AND \"-\" is only allowed at the start\n if (!/^-?(\\d+(\\.\\d*)?|(\\.\\d+)|\\d*|\\.)$/.test(potentialNewInputVal)) {\n e.preventDefault()\n }\n }\n\n async function onKeydown (e: KeyboardEvent) {\n if (\n ['Enter', 'ArrowLeft', 'ArrowRight', 'Backspace', 'Delete', 'Tab'].includes(e.key) ||\n e.ctrlKey\n ) return\n\n if (['ArrowDown', 'ArrowUp'].includes(e.key)) {\n e.preventDefault()\n clampModel()\n // _model is controlled, so need to wait until props['modelValue'] is updated\n await nextTick()\n if (e.key === 'ArrowDown') {\n toggleUpDown(false)\n } else {\n toggleUpDown()\n }\n }\n }\n\n function onControlMousedown (e: MouseEvent) {\n e.stopPropagation()\n }\n\n function clampModel () {\n if (!vTextFieldRef.value) return\n const inputText = vTextFieldRef.value.value\n if (inputText && !isNaN(+inputText)) {\n model.value = clamp(+(inputText), props.min, props.max)\n } else {\n model.value = null\n }\n }\n\n useRender(() => {\n const { modelValue: _, ...textFieldProps } = VTextField.filterProps(props)\n\n function incrementControlNode () {\n return !slots.increment ? (\n <VBtn\n disabled={ !canIncrease.value }\n flat\n key=\"increment-btn\"\n height={ controlNodeDefaultHeight.value }\n name=\"increment-btn\"\n icon={ incrementIcon.value }\n onClick={ onClickUp }\n onMousedown={ onControlMousedown }\n size={ controlNodeSize.value }\n tabindex=\"-1\"\n />\n ) : (\n <VDefaultsProvider\n key=\"increment-defaults\"\n defaults={{\n VBtn: {\n disabled: !canIncrease.value,\n flat: true,\n height: controlNodeDefaultHeight.value,\n size: controlNodeSize.value,\n icon: incrementIcon.value,\n },\n }}\n >\n { slots.increment(incrementSlotProps.value) }\n </VDefaultsProvider>\n )\n }\n\n function decrementControlNode () {\n return !slots.decrement ? (\n <VBtn\n disabled={ !canDecrease.value }\n flat\n key=\"decrement-btn\"\n height={ controlNodeDefaultHeight.value }\n name=\"decrement-btn\"\n icon={ decrementIcon.value }\n size={ controlNodeSize.value }\n tabindex=\"-1\"\n onClick={ onClickDown }\n onMousedown={ onControlMousedown }\n />\n ) : (\n <VDefaultsProvider\n key=\"decrement-defaults\"\n defaults={{\n VBtn: {\n disabled: !canDecrease.value,\n flat: true,\n height: controlNodeDefaultHeight.value,\n size: controlNodeSize.value,\n icon: decrementIcon.value,\n },\n }}\n >\n { slots.decrement(decrementSlotProps.value) }\n </VDefaultsProvider>\n )\n }\n\n function controlNode () {\n return (\n <div class=\"v-number-input__control\">\n { decrementControlNode() }\n\n <VDivider\n vertical={ controlVariant.value !== 'stacked' }\n />\n\n { incrementControlNode() }\n </div>\n )\n }\n\n function dividerNode () {\n return !props.hideInput && !props.inset ? <VDivider vertical /> : undefined\n }\n\n const appendInnerControl =\n controlVariant.value === 'split'\n ? (\n <div class=\"v-number-input__control\">\n <VDivider vertical />\n\n { incrementControlNode() }\n </div>\n ) : (!props.reverse\n ? <>{ dividerNode() }{ controlNode() }</>\n : undefined)\n\n const hasAppendInner = slots['append-inner'] || appendInnerControl\n\n const prependInnerControl =\n controlVariant.value === 'split'\n ? (\n <div class=\"v-number-input__control\">\n { decrementControlNode() }\n\n <VDivider vertical />\n </div>\n ) : (props.reverse\n ? <>{ controlNode() }{ dividerNode() }</>\n : undefined)\n\n const hasPrependInner = slots['prepend-inner'] || prependInnerControl\n\n return (\n <VTextField\n ref={ vTextFieldRef }\n v-model={ model.value }\n onBeforeinput={ onBeforeinput }\n onChange={ clampModel }\n onKeydown={ onKeydown }\n class={[\n 'v-number-input',\n {\n 'v-number-input--default': controlVariant.value === 'default',\n 'v-number-input--hide-input': props.hideInput,\n 'v-number-input--inset': props.inset,\n 'v-number-input--reverse': props.reverse,\n 'v-number-input--split': controlVariant.value === 'split',\n 'v-number-input--stacked': controlVariant.value === 'stacked',\n },\n props.class,\n ]}\n { ...textFieldProps }\n style={ props.style }\n inputmode=\"decimal\"\n >\n {{\n ...slots,\n 'append-inner': hasAppendInner ? (...args) => (\n <>\n { slots['append-inner']?.(...args) }\n { appendInnerControl }\n </>\n ) : undefined,\n 'prepend-inner': hasPrependInner ? (...args) => (\n <>\n { prependInnerControl }\n { slots['prepend-inner']?.(...args) }\n </>\n ) : undefined,\n }}\n </VTextField>\n )\n })\n },\n})\n\nexport type VNumberInput = InstanceType<typeof VNumberInput>\n"],"mappings":"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","ignoreList":[]}
|
1
|
+
{"version":3,"file":"VNumberInput.mjs","names":["VBtn","VDefaultsProvider","VDivider","makeVTextFieldProps","VTextField","useForm","forwardRefs","useProxiedModel","computed","nextTick","onMounted","ref","clamp","genericComponent","getDecimals","omit","propsFactory","useRender","makeVNumberInputProps","controlVariant","type","String","default","inset","Boolean","hideInput","modelValue","Number","min","MIN_SAFE_INTEGER","max","MAX_SAFE_INTEGER","step","VNumberInput","name","props","emits","val","setup","_ref","slots","_model","model","get","value","set","vTextFieldRef","stepDecimals","modelDecimals","form","controlsDisabled","disabled","readonly","isReadonly","canIncrease","canDecrease","incrementIcon","decrementIcon","controlNodeSize","controlNodeDefaultHeight","incrementSlotProps","click","onClickUp","decrementSlotProps","onClickDown","clampModel","toggleUpDown","increment","arguments","length","undefined","decimals","Math","toFixed","e","stopPropagation","onBeforeinput","data","existingTxt","target","selectionStart","selectionEnd","potentialNewInputVal","slice","test","preventDefault","onKeydown","includes","key","ctrlKey","onControlMousedown","inputText","isNaN","_","textFieldProps","filterProps","incrementControlNode","_createVNode","flat","height","size","icon","decrementControlNode","decrement","controlNode","dividerNode","appendInnerControl","reverse","_Fragment","hasAppendInner","prependInnerControl","hasPrependInner","_mergeProps","$event","class","style","_len","args","Array","_key","_len2","_key2"],"sources":["../../../src/labs/VNumberInput/VNumberInput.tsx"],"sourcesContent":["// Styles\nimport './VNumberInput.sass'\n\n// Components\nimport { VBtn } from '../../components/VBtn'\nimport { VDefaultsProvider } from '../../components/VDefaultsProvider'\nimport { VDivider } from '../../components/VDivider'\nimport { makeVTextFieldProps, VTextField } from '@/components/VTextField/VTextField'\n\n// Composables\nimport { useForm } from '@/composables/form'\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, nextTick, onMounted, ref } from 'vue'\nimport { clamp, genericComponent, getDecimals, omit, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VTextFieldSlots } from '@/components/VTextField/VTextField'\n\ntype ControlSlot = {\n click: (e: MouseEvent) => void\n}\n\ntype VNumberInputSlots = Omit<VTextFieldSlots, 'default'> & {\n increment: ControlSlot\n decrement: ControlSlot\n}\n\ntype ControlVariant = 'default' | 'stacked' | 'split'\n\nconst makeVNumberInputProps = propsFactory({\n controlVariant: {\n type: String as PropType<ControlVariant>,\n default: 'default',\n },\n inset: Boolean,\n hideInput: Boolean,\n modelValue: {\n type: Number as PropType<Number | null>,\n default: null,\n },\n min: {\n type: Number,\n default: Number.MIN_SAFE_INTEGER,\n },\n max: {\n type: Number,\n default: Number.MAX_SAFE_INTEGER,\n },\n step: {\n type: Number,\n default: 1,\n },\n\n ...omit(makeVTextFieldProps({}), ['appendInnerIcon', 'modelValue', 'prependInnerIcon']),\n}, 'VNumberInput')\n\nexport const VNumberInput = genericComponent<VNumberInputSlots>()({\n name: 'VNumberInput',\n\n props: {\n ...makeVNumberInputProps(),\n },\n\n emits: {\n 'update:modelValue': (val: number) => true,\n },\n\n setup (props, { slots }) {\n const _model = useProxiedModel(props, 'modelValue')\n\n const model = computed({\n get: () => _model.value,\n set (val) {\n if (typeof val !== 'string') _model.value = val\n },\n })\n\n const vTextFieldRef = ref<VTextField | undefined>()\n\n const stepDecimals = computed(() => getDecimals(props.step))\n const modelDecimals = computed(() => typeof model.value === 'number' ? getDecimals(model.value) : 0)\n\n const form = useForm()\n const controlsDisabled = computed(() => (\n props.disabled || props.readonly || form?.isReadonly.value\n ))\n\n const canIncrease = computed(() => {\n if (controlsDisabled.value) return false\n return (model.value ?? 0) as number + props.step <= props.max\n })\n const canDecrease = computed(() => {\n if (controlsDisabled.value) return false\n return (model.value ?? 0) as number - props.step >= props.min\n })\n\n const controlVariant = computed(() => {\n return props.hideInput ? 'stacked' : props.controlVariant\n })\n\n const incrementIcon = computed(() => controlVariant.value === 'split' ? '$plus' : '$collapse')\n const decrementIcon = computed(() => controlVariant.value === 'split' ? '$minus' : '$expand')\n const controlNodeSize = computed(() => controlVariant.value === 'split' ? 'default' : 'small')\n const controlNodeDefaultHeight = computed(() => controlVariant.value === 'stacked' ? 'auto' : '100%')\n\n const incrementSlotProps = computed(() => ({ click: onClickUp }))\n\n const decrementSlotProps = computed(() => ({ click: onClickDown }))\n\n onMounted(() => {\n if (!props.readonly && !props.disabled) {\n clampModel()\n }\n })\n\n function toggleUpDown (increment = true) {\n if (controlsDisabled.value) return\n if (model.value == null) {\n model.value = clamp(0, props.min, props.max)\n return\n }\n\n const decimals = Math.max(modelDecimals.value, stepDecimals.value)\n if (increment) {\n if (canIncrease.value) model.value = +((((model.value as number) + props.step).toFixed(decimals)))\n } else {\n if (canDecrease.value) model.value = +((((model.value as number) - props.step).toFixed(decimals)))\n }\n }\n\n function onClickUp (e: MouseEvent) {\n e.stopPropagation()\n toggleUpDown()\n }\n\n function onClickDown (e: MouseEvent) {\n e.stopPropagation()\n toggleUpDown(false)\n }\n\n function onBeforeinput (e: InputEvent) {\n if (!e.data) return\n const existingTxt = (e.target as HTMLInputElement)?.value\n const selectionStart = (e.target as HTMLInputElement)?.selectionStart\n const selectionEnd = (e.target as HTMLInputElement)?.selectionEnd\n const potentialNewInputVal =\n existingTxt\n ? existingTxt.slice(0, selectionStart as number | undefined) + e.data + existingTxt.slice(selectionEnd as number | undefined)\n : e.data\n // Only numbers, \"-\", \".\" are allowed\n // AND \"-\", \".\" are allowed only once\n // AND \"-\" is only allowed at the start\n if (!/^-?(\\d+(\\.\\d*)?|(\\.\\d+)|\\d*|\\.)$/.test(potentialNewInputVal)) {\n e.preventDefault()\n }\n }\n\n async function onKeydown (e: KeyboardEvent) {\n if (\n ['Enter', 'ArrowLeft', 'ArrowRight', 'Backspace', 'Delete', 'Tab'].includes(e.key) ||\n e.ctrlKey\n ) return\n\n if (['ArrowDown', 'ArrowUp'].includes(e.key)) {\n e.preventDefault()\n clampModel()\n // _model is controlled, so need to wait until props['modelValue'] is updated\n await nextTick()\n if (e.key === 'ArrowDown') {\n toggleUpDown(false)\n } else {\n toggleUpDown()\n }\n }\n }\n\n function onControlMousedown (e: MouseEvent) {\n e.stopPropagation()\n }\n\n function clampModel () {\n if (!vTextFieldRef.value) return\n const inputText = vTextFieldRef.value.value\n if (inputText && !isNaN(+inputText)) {\n model.value = clamp(+(inputText), props.min, props.max)\n } else {\n model.value = null\n }\n }\n\n useRender(() => {\n const { modelValue: _, ...textFieldProps } = VTextField.filterProps(props)\n\n function incrementControlNode () {\n return !slots.increment ? (\n <VBtn\n disabled={ !canIncrease.value }\n flat\n key=\"increment-btn\"\n height={ controlNodeDefaultHeight.value }\n name=\"increment-btn\"\n icon={ incrementIcon.value }\n onClick={ onClickUp }\n onMousedown={ onControlMousedown }\n size={ controlNodeSize.value }\n tabindex=\"-1\"\n />\n ) : (\n <VDefaultsProvider\n key=\"increment-defaults\"\n defaults={{\n VBtn: {\n disabled: !canIncrease.value,\n flat: true,\n height: controlNodeDefaultHeight.value,\n size: controlNodeSize.value,\n icon: incrementIcon.value,\n },\n }}\n >\n { slots.increment(incrementSlotProps.value) }\n </VDefaultsProvider>\n )\n }\n\n function decrementControlNode () {\n return !slots.decrement ? (\n <VBtn\n disabled={ !canDecrease.value }\n flat\n key=\"decrement-btn\"\n height={ controlNodeDefaultHeight.value }\n name=\"decrement-btn\"\n icon={ decrementIcon.value }\n size={ controlNodeSize.value }\n tabindex=\"-1\"\n onClick={ onClickDown }\n onMousedown={ onControlMousedown }\n />\n ) : (\n <VDefaultsProvider\n key=\"decrement-defaults\"\n defaults={{\n VBtn: {\n disabled: !canDecrease.value,\n flat: true,\n height: controlNodeDefaultHeight.value,\n size: controlNodeSize.value,\n icon: decrementIcon.value,\n },\n }}\n >\n { slots.decrement(decrementSlotProps.value) }\n </VDefaultsProvider>\n )\n }\n\n function controlNode () {\n return (\n <div class=\"v-number-input__control\">\n { decrementControlNode() }\n\n <VDivider\n vertical={ controlVariant.value !== 'stacked' }\n />\n\n { incrementControlNode() }\n </div>\n )\n }\n\n function dividerNode () {\n return !props.hideInput && !props.inset ? <VDivider vertical /> : undefined\n }\n\n const appendInnerControl =\n controlVariant.value === 'split'\n ? (\n <div class=\"v-number-input__control\">\n <VDivider vertical />\n\n { incrementControlNode() }\n </div>\n ) : (!props.reverse\n ? <>{ dividerNode() }{ controlNode() }</>\n : undefined)\n\n const hasAppendInner = slots['append-inner'] || appendInnerControl\n\n const prependInnerControl =\n controlVariant.value === 'split'\n ? (\n <div class=\"v-number-input__control\">\n { decrementControlNode() }\n\n <VDivider vertical />\n </div>\n ) : (props.reverse\n ? <>{ controlNode() }{ dividerNode() }</>\n : undefined)\n\n const hasPrependInner = slots['prepend-inner'] || prependInnerControl\n\n return (\n <VTextField\n ref={ vTextFieldRef }\n v-model={ model.value }\n onBeforeinput={ onBeforeinput }\n onChange={ clampModel }\n onKeydown={ onKeydown }\n class={[\n 'v-number-input',\n {\n 'v-number-input--default': controlVariant.value === 'default',\n 'v-number-input--hide-input': props.hideInput,\n 'v-number-input--inset': props.inset,\n 'v-number-input--reverse': props.reverse,\n 'v-number-input--split': controlVariant.value === 'split',\n 'v-number-input--stacked': controlVariant.value === 'stacked',\n },\n props.class,\n ]}\n { ...textFieldProps }\n style={ props.style }\n inputmode=\"decimal\"\n >\n {{\n ...slots,\n 'append-inner': hasAppendInner ? (...args) => (\n <>\n { slots['append-inner']?.(...args) }\n { appendInnerControl }\n </>\n ) : undefined,\n 'prepend-inner': hasPrependInner ? (...args) => (\n <>\n { prependInnerControl }\n { slots['prepend-inner']?.(...args) }\n </>\n ) : undefined,\n }}\n </VTextField>\n )\n })\n\n return forwardRefs({}, vTextFieldRef)\n },\n})\n\nexport type VNumberInput = InstanceType<typeof VNumberInput>\n"],"mappings":"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","ignoreList":[]}
|