@vuetify/nightly 3.7.13-master.2025-02-22 → 3.7.13-master.2025-02-25
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 +14 -3
- package/dist/json/attributes.json +3178 -3174
- package/dist/json/importMap-labs.json +12 -12
- package/dist/json/importMap.json +192 -192
- package/dist/json/tags.json +1 -0
- package/dist/json/web-types.json +5800 -5790
- package/dist/vuetify-labs.css +4259 -4253
- package/dist/vuetify-labs.d.ts +9 -0
- package/dist/vuetify-labs.esm.js +18 -10
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +18 -10
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +3279 -3279
- package/dist/vuetify.d.ts +64 -64
- package/dist/vuetify.esm.js +4 -4
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +4 -4
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +3 -3
- package/dist/vuetify.min.js.map +1 -1
- package/lib/composables/density.mjs +1 -1
- package/lib/composables/density.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/index.d.mts +64 -64
- package/lib/labs/VNumberInput/VNumberInput.mjs +2 -2
- package/lib/labs/VNumberInput/VNumberInput.mjs.map +1 -1
- package/lib/labs/VTimePicker/VTimePickerControls.sass +16 -16
- package/lib/labs/VTimePicker/_variables.scss +12 -12
- package/lib/labs/VTreeview/VTreeview.mjs +5 -1
- package/lib/labs/VTreeview/VTreeview.mjs.map +1 -1
- package/lib/labs/VTreeview/VTreeviewChildren.mjs +4 -1
- package/lib/labs/VTreeview/VTreeviewChildren.mjs.map +1 -1
- package/lib/labs/VTreeview/VTreeviewItem.css +15 -9
- package/lib/labs/VTreeview/VTreeviewItem.mjs +4 -2
- package/lib/labs/VTreeview/VTreeviewItem.mjs.map +1 -1
- package/lib/labs/VTreeview/VTreeviewItem.sass +16 -10
- package/lib/labs/VTreeview/_variables.scss +2 -5
- package/lib/labs/VTreeview/index.d.mts +9 -0
- package/lib/labs/components.d.mts +9 -0
- package/lib/locale/ja.mjs +19 -19
- package/lib/locale/ja.mjs.map +1 -1
- package/lib/styles/tools/_functions.sass +1 -1
- package/package.json +1 -1
@@ -3,7 +3,7 @@ import { computed } from 'vue';
|
|
3
3
|
import { getCurrentInstanceName, propsFactory } from "../util/index.mjs"; // Types
|
4
4
|
const allowedDensities = [null, 'default', 'comfortable', 'compact'];
|
5
5
|
|
6
|
-
// typeof allowedDensities[number]
|
6
|
+
// typeof allowedDensities[number] evaluates to any
|
7
7
|
// when generating api types for whatever reason.
|
8
8
|
|
9
9
|
// Composables
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"density.mjs","names":["computed","getCurrentInstanceName","propsFactory","allowedDensities","makeDensityProps","density","type","String","default","validator","v","includes","useDensity","props","name","arguments","length","undefined","densityClasses"],"sources":["../../src/composables/density.ts"],"sourcesContent":["// Utilities\nimport { computed } from 'vue'\nimport { getCurrentInstanceName, propsFactory } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nconst allowedDensities = [null, 'default', 'comfortable', 'compact'] as const\n\n// typeof allowedDensities[number]
|
1
|
+
{"version":3,"file":"density.mjs","names":["computed","getCurrentInstanceName","propsFactory","allowedDensities","makeDensityProps","density","type","String","default","validator","v","includes","useDensity","props","name","arguments","length","undefined","densityClasses"],"sources":["../../src/composables/density.ts"],"sourcesContent":["// Utilities\nimport { computed } from 'vue'\nimport { getCurrentInstanceName, propsFactory } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nconst allowedDensities = [null, 'default', 'comfortable', 'compact'] as const\n\n// typeof allowedDensities[number] evaluates to any\n// when generating api types for whatever reason.\nexport type Density = null | 'default' | 'comfortable' | 'compact'\n\nexport interface DensityProps {\n density?: Density\n}\n\n// Composables\nexport const makeDensityProps = propsFactory({\n density: {\n type: String as PropType<Density>,\n default: 'default',\n validator: (v: any) => allowedDensities.includes(v),\n },\n}, 'density')\n\nexport function useDensity (\n props: DensityProps,\n name = getCurrentInstanceName(),\n) {\n const densityClasses = computed(() => {\n return `${name}--density-${props.density}`\n })\n\n return { densityClasses }\n}\n"],"mappings":"AAAA;AACA,SAASA,QAAQ,QAAQ,KAAK;AAAA,SACrBC,sBAAsB,EAAEC,YAAY,6BAE7C;AAGA,MAAMC,gBAAgB,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,CAAU;;AAE7E;AACA;;AAOA;AACA,OAAO,MAAMC,gBAAgB,GAAGF,YAAY,CAAC;EAC3CG,OAAO,EAAE;IACPC,IAAI,EAAEC,MAA2B;IACjCC,OAAO,EAAE,SAAS;IAClBC,SAAS,EAAGC,CAAM,IAAKP,gBAAgB,CAACQ,QAAQ,CAACD,CAAC;EACpD;AACF,CAAC,EAAE,SAAS,CAAC;AAEb,OAAO,SAASE,UAAUA,CACxBC,KAAmB,EAEnB;EAAA,IADAC,IAAI,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAGd,sBAAsB,CAAC,CAAC;EAE/B,MAAMiB,cAAc,GAAGlB,QAAQ,CAAC,MAAM;IACpC,OAAO,GAAGc,IAAI,aAAaD,KAAK,CAACR,OAAO,EAAE;EAC5C,CAAC,CAAC;EAEF,OAAO;IAAEa;EAAe,CAAC;AAC3B","ignoreList":[]}
|
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.7.13-master.2025-02-
|
19
|
+
export const version = "3.7.13-master.2025-02-25";
|
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
@@ -486,41 +486,33 @@ declare module 'vue' {
|
|
486
486
|
$children?: VNodeChild
|
487
487
|
}
|
488
488
|
export interface GlobalComponents {
|
489
|
-
VApp: typeof import('vuetify/components')['VApp']
|
490
|
-
VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
|
491
|
-
VAvatar: typeof import('vuetify/components')['VAvatar']
|
492
489
|
VAlert: typeof import('vuetify/components')['VAlert']
|
493
490
|
VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
|
491
|
+
VApp: typeof import('vuetify/components')['VApp']
|
492
|
+
VAvatar: typeof import('vuetify/components')['VAvatar']
|
493
|
+
VBadge: typeof import('vuetify/components')['VBadge']
|
494
494
|
VBanner: typeof import('vuetify/components')['VBanner']
|
495
495
|
VBannerActions: typeof import('vuetify/components')['VBannerActions']
|
496
496
|
VBannerText: typeof import('vuetify/components')['VBannerText']
|
497
|
+
VAppBar: typeof import('vuetify/components')['VAppBar']
|
498
|
+
VAppBarNavIcon: typeof import('vuetify/components')['VAppBarNavIcon']
|
499
|
+
VAppBarTitle: typeof import('vuetify/components')['VAppBarTitle']
|
497
500
|
VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
|
498
|
-
|
501
|
+
VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
|
499
502
|
VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
|
500
503
|
VBreadcrumbs: typeof import('vuetify/components')['VBreadcrumbs']
|
501
504
|
VBreadcrumbsItem: typeof import('vuetify/components')['VBreadcrumbsItem']
|
502
505
|
VBreadcrumbsDivider: typeof import('vuetify/components')['VBreadcrumbsDivider']
|
503
|
-
VBtn: typeof import('vuetify/components')['VBtn']
|
504
|
-
VCheckbox: typeof import('vuetify/components')['VCheckbox']
|
505
|
-
VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
|
506
|
-
VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
|
507
506
|
VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
|
508
|
-
|
509
|
-
VCard: typeof import('vuetify/components')['VCard']
|
510
|
-
VCardActions: typeof import('vuetify/components')['VCardActions']
|
511
|
-
VCardItem: typeof import('vuetify/components')['VCardItem']
|
512
|
-
VCardSubtitle: typeof import('vuetify/components')['VCardSubtitle']
|
513
|
-
VCardText: typeof import('vuetify/components')['VCardText']
|
514
|
-
VCardTitle: typeof import('vuetify/components')['VCardTitle']
|
515
|
-
VCode: typeof import('vuetify/components')['VCode']
|
507
|
+
VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
|
516
508
|
VCarousel: typeof import('vuetify/components')['VCarousel']
|
517
509
|
VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
|
518
|
-
|
519
|
-
|
520
|
-
VAppBarNavIcon: typeof import('vuetify/components')['VAppBarNavIcon']
|
521
|
-
VAppBarTitle: typeof import('vuetify/components')['VAppBarTitle']
|
522
|
-
VColorPicker: typeof import('vuetify/components')['VColorPicker']
|
510
|
+
VBtn: typeof import('vuetify/components')['VBtn']
|
511
|
+
VChipGroup: typeof import('vuetify/components')['VChipGroup']
|
523
512
|
VCounter: typeof import('vuetify/components')['VCounter']
|
513
|
+
VColorPicker: typeof import('vuetify/components')['VColorPicker']
|
514
|
+
VCode: typeof import('vuetify/components')['VCode']
|
515
|
+
VCombobox: typeof import('vuetify/components')['VCombobox']
|
524
516
|
VDataTable: typeof import('vuetify/components')['VDataTable']
|
525
517
|
VDataTableHeaders: typeof import('vuetify/components')['VDataTableHeaders']
|
526
518
|
VDataTableFooter: typeof import('vuetify/components')['VDataTableFooter']
|
@@ -534,28 +526,29 @@ declare module 'vue' {
|
|
534
526
|
VDatePickerMonth: typeof import('vuetify/components')['VDatePickerMonth']
|
535
527
|
VDatePickerMonths: typeof import('vuetify/components')['VDatePickerMonths']
|
536
528
|
VDatePickerYears: typeof import('vuetify/components')['VDatePickerYears']
|
537
|
-
|
538
|
-
|
529
|
+
VExpansionPanels: typeof import('vuetify/components')['VExpansionPanels']
|
530
|
+
VExpansionPanel: typeof import('vuetify/components')['VExpansionPanel']
|
531
|
+
VExpansionPanelText: typeof import('vuetify/components')['VExpansionPanelText']
|
532
|
+
VExpansionPanelTitle: typeof import('vuetify/components')['VExpansionPanelTitle']
|
533
|
+
VCheckbox: typeof import('vuetify/components')['VCheckbox']
|
534
|
+
VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
|
535
|
+
VChip: typeof import('vuetify/components')['VChip']
|
539
536
|
VDialog: typeof import('vuetify/components')['VDialog']
|
537
|
+
VDivider: typeof import('vuetify/components')['VDivider']
|
538
|
+
VEmptyState: typeof import('vuetify/components')['VEmptyState']
|
540
539
|
VField: typeof import('vuetify/components')['VField']
|
541
540
|
VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
|
542
541
|
VFab: typeof import('vuetify/components')['VFab']
|
543
|
-
VEmptyState: typeof import('vuetify/components')['VEmptyState']
|
544
|
-
VFooter: typeof import('vuetify/components')['VFooter']
|
545
|
-
VImg: typeof import('vuetify/components')['VImg']
|
546
542
|
VFileInput: typeof import('vuetify/components')['VFileInput']
|
543
|
+
VFooter: typeof import('vuetify/components')['VFooter']
|
547
544
|
VIcon: typeof import('vuetify/components')['VIcon']
|
548
545
|
VComponentIcon: typeof import('vuetify/components')['VComponentIcon']
|
549
546
|
VSvgIcon: typeof import('vuetify/components')['VSvgIcon']
|
550
547
|
VLigatureIcon: typeof import('vuetify/components')['VLigatureIcon']
|
551
548
|
VClassIcon: typeof import('vuetify/components')['VClassIcon']
|
552
|
-
|
553
|
-
VExpansionPanel: typeof import('vuetify/components')['VExpansionPanel']
|
554
|
-
VExpansionPanelText: typeof import('vuetify/components')['VExpansionPanelText']
|
555
|
-
VExpansionPanelTitle: typeof import('vuetify/components')['VExpansionPanelTitle']
|
556
|
-
VInput: typeof import('vuetify/components')['VInput']
|
557
|
-
VKbd: typeof import('vuetify/components')['VKbd']
|
549
|
+
VImg: typeof import('vuetify/components')['VImg']
|
558
550
|
VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
|
551
|
+
VInput: typeof import('vuetify/components')['VInput']
|
559
552
|
VItemGroup: typeof import('vuetify/components')['VItemGroup']
|
560
553
|
VItem: typeof import('vuetify/components')['VItem']
|
561
554
|
VLabel: typeof import('vuetify/components')['VLabel']
|
@@ -568,70 +561,77 @@ declare module 'vue' {
|
|
568
561
|
VListItemSubtitle: typeof import('vuetify/components')['VListItemSubtitle']
|
569
562
|
VListItemTitle: typeof import('vuetify/components')['VListItemTitle']
|
570
563
|
VListSubheader: typeof import('vuetify/components')['VListSubheader']
|
564
|
+
VKbd: typeof import('vuetify/components')['VKbd']
|
571
565
|
VMain: typeof import('vuetify/components')['VMain']
|
566
|
+
VNavigationDrawer: typeof import('vuetify/components')['VNavigationDrawer']
|
572
567
|
VOtpInput: typeof import('vuetify/components')['VOtpInput']
|
573
568
|
VMessages: typeof import('vuetify/components')['VMessages']
|
574
|
-
VMenu: typeof import('vuetify/components')['VMenu']
|
575
|
-
VOverlay: typeof import('vuetify/components')['VOverlay']
|
576
|
-
VNavigationDrawer: typeof import('vuetify/components')['VNavigationDrawer']
|
577
569
|
VProgressCircular: typeof import('vuetify/components')['VProgressCircular']
|
578
|
-
|
570
|
+
VOverlay: typeof import('vuetify/components')['VOverlay']
|
571
|
+
VMenu: typeof import('vuetify/components')['VMenu']
|
579
572
|
VProgressLinear: typeof import('vuetify/components')['VProgressLinear']
|
580
573
|
VRadioGroup: typeof import('vuetify/components')['VRadioGroup']
|
581
574
|
VSelect: typeof import('vuetify/components')['VSelect']
|
582
|
-
VSheet: typeof import('vuetify/components')['VSheet']
|
583
|
-
VRating: typeof import('vuetify/components')['VRating']
|
584
575
|
VSelectionControl: typeof import('vuetify/components')['VSelectionControl']
|
576
|
+
VRating: typeof import('vuetify/components')['VRating']
|
577
|
+
VSelectionControlGroup: typeof import('vuetify/components')['VSelectionControlGroup']
|
578
|
+
VPagination: typeof import('vuetify/components')['VPagination']
|
579
|
+
VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
|
585
580
|
VSlideGroup: typeof import('vuetify/components')['VSlideGroup']
|
586
581
|
VSlideGroupItem: typeof import('vuetify/components')['VSlideGroupItem']
|
587
|
-
|
588
|
-
|
582
|
+
VSheet: typeof import('vuetify/components')['VSheet']
|
583
|
+
VSystemBar: typeof import('vuetify/components')['VSystemBar']
|
589
584
|
VSnackbar: typeof import('vuetify/components')['VSnackbar']
|
585
|
+
VTab: typeof import('vuetify/components')['VTab']
|
586
|
+
VTabs: typeof import('vuetify/components')['VTabs']
|
587
|
+
VTabsWindow: typeof import('vuetify/components')['VTabsWindow']
|
588
|
+
VTabsWindowItem: typeof import('vuetify/components')['VTabsWindowItem']
|
589
|
+
VTable: typeof import('vuetify/components')['VTable']
|
590
590
|
VStepper: typeof import('vuetify/components')['VStepper']
|
591
591
|
VStepperActions: typeof import('vuetify/components')['VStepperActions']
|
592
592
|
VStepperHeader: typeof import('vuetify/components')['VStepperHeader']
|
593
593
|
VStepperItem: typeof import('vuetify/components')['VStepperItem']
|
594
594
|
VStepperWindow: typeof import('vuetify/components')['VStepperWindow']
|
595
595
|
VStepperWindowItem: typeof import('vuetify/components')['VStepperWindowItem']
|
596
|
-
VSlider: typeof import('vuetify/components')['VSlider']
|
597
|
-
VTab: typeof import('vuetify/components')['VTab']
|
598
|
-
VTabs: typeof import('vuetify/components')['VTabs']
|
599
|
-
VTabsWindow: typeof import('vuetify/components')['VTabsWindow']
|
600
|
-
VTabsWindowItem: typeof import('vuetify/components')['VTabsWindowItem']
|
601
|
-
VTextField: typeof import('vuetify/components')['VTextField']
|
602
|
-
VSwitch: typeof import('vuetify/components')['VSwitch']
|
603
|
-
VTable: typeof import('vuetify/components')['VTable']
|
604
|
-
VSystemBar: typeof import('vuetify/components')['VSystemBar']
|
605
596
|
VTextarea: typeof import('vuetify/components')['VTextarea']
|
606
597
|
VTimeline: typeof import('vuetify/components')['VTimeline']
|
607
598
|
VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
|
608
|
-
|
609
|
-
VWindowItem: typeof import('vuetify/components')['VWindowItem']
|
599
|
+
VTooltip: typeof import('vuetify/components')['VTooltip']
|
610
600
|
VToolbar: typeof import('vuetify/components')['VToolbar']
|
611
601
|
VToolbarTitle: typeof import('vuetify/components')['VToolbarTitle']
|
612
602
|
VToolbarItems: typeof import('vuetify/components')['VToolbarItems']
|
613
|
-
|
614
|
-
|
603
|
+
VSwitch: typeof import('vuetify/components')['VSwitch']
|
604
|
+
VTextField: typeof import('vuetify/components')['VTextField']
|
605
|
+
VWindow: typeof import('vuetify/components')['VWindow']
|
606
|
+
VWindowItem: typeof import('vuetify/components')['VWindowItem']
|
607
|
+
VCard: typeof import('vuetify/components')['VCard']
|
608
|
+
VCardActions: typeof import('vuetify/components')['VCardActions']
|
609
|
+
VCardItem: typeof import('vuetify/components')['VCardItem']
|
610
|
+
VCardSubtitle: typeof import('vuetify/components')['VCardSubtitle']
|
611
|
+
VCardText: typeof import('vuetify/components')['VCardText']
|
612
|
+
VCardTitle: typeof import('vuetify/components')['VCardTitle']
|
615
613
|
VConfirmEdit: typeof import('vuetify/components')['VConfirmEdit']
|
614
|
+
VDataIterator: typeof import('vuetify/components')['VDataIterator']
|
615
|
+
VForm: typeof import('vuetify/components')['VForm']
|
616
616
|
VDefaultsProvider: typeof import('vuetify/components')['VDefaultsProvider']
|
617
617
|
VHover: typeof import('vuetify/components')['VHover']
|
618
|
-
VForm: typeof import('vuetify/components')['VForm']
|
619
|
-
VContainer: typeof import('vuetify/components')['VContainer']
|
620
|
-
VCol: typeof import('vuetify/components')['VCol']
|
621
|
-
VRow: typeof import('vuetify/components')['VRow']
|
622
|
-
VSpacer: typeof import('vuetify/components')['VSpacer']
|
623
618
|
VLayout: typeof import('vuetify/components')['VLayout']
|
624
619
|
VLayoutItem: typeof import('vuetify/components')['VLayoutItem']
|
625
|
-
VLazy: typeof import('vuetify/components')['VLazy']
|
626
620
|
VLocaleProvider: typeof import('vuetify/components')['VLocaleProvider']
|
627
|
-
|
628
|
-
VRadio: typeof import('vuetify/components')['VRadio']
|
621
|
+
VLazy: typeof import('vuetify/components')['VLazy']
|
629
622
|
VParallax: typeof import('vuetify/components')['VParallax']
|
623
|
+
VRadio: typeof import('vuetify/components')['VRadio']
|
630
624
|
VRangeSlider: typeof import('vuetify/components')['VRangeSlider']
|
631
625
|
VResponsive: typeof import('vuetify/components')['VResponsive']
|
626
|
+
VNoSsr: typeof import('vuetify/components')['VNoSsr']
|
632
627
|
VSparkline: typeof import('vuetify/components')['VSparkline']
|
628
|
+
VSlider: typeof import('vuetify/components')['VSlider']
|
633
629
|
VSpeedDial: typeof import('vuetify/components')['VSpeedDial']
|
634
630
|
VThemeProvider: typeof import('vuetify/components')['VThemeProvider']
|
631
|
+
VContainer: typeof import('vuetify/components')['VContainer']
|
632
|
+
VCol: typeof import('vuetify/components')['VCol']
|
633
|
+
VRow: typeof import('vuetify/components')['VRow']
|
634
|
+
VSpacer: typeof import('vuetify/components')['VSpacer']
|
635
635
|
VValidation: typeof import('vuetify/components')['VValidation']
|
636
636
|
VFabTransition: typeof import('vuetify/components')['VFabTransition']
|
637
637
|
VDialogBottomTransition: typeof import('vuetify/components')['VDialogBottomTransition']
|
@@ -650,23 +650,23 @@ declare module 'vue' {
|
|
650
650
|
VExpandXTransition: typeof import('vuetify/components')['VExpandXTransition']
|
651
651
|
VDialogTransition: typeof import('vuetify/components')['VDialogTransition']
|
652
652
|
VVirtualScroll: typeof import('vuetify/components')['VVirtualScroll']
|
653
|
+
VFileUpload: typeof import('vuetify/labs/components')['VFileUpload']
|
654
|
+
VFileUploadItem: typeof import('vuetify/labs/components')['VFileUploadItem']
|
653
655
|
VCalendar: typeof import('vuetify/labs/components')['VCalendar']
|
654
656
|
VCalendarDay: typeof import('vuetify/labs/components')['VCalendarDay']
|
655
657
|
VCalendarHeader: typeof import('vuetify/labs/components')['VCalendarHeader']
|
656
658
|
VCalendarInterval: typeof import('vuetify/labs/components')['VCalendarInterval']
|
657
659
|
VCalendarIntervalEvent: typeof import('vuetify/labs/components')['VCalendarIntervalEvent']
|
658
660
|
VCalendarMonthDay: typeof import('vuetify/labs/components')['VCalendarMonthDay']
|
661
|
+
VNumberInput: typeof import('vuetify/labs/components')['VNumberInput']
|
659
662
|
VPicker: typeof import('vuetify/labs/components')['VPicker']
|
660
663
|
VPickerTitle: typeof import('vuetify/labs/components')['VPickerTitle']
|
661
|
-
VFileUpload: typeof import('vuetify/labs/components')['VFileUpload']
|
662
|
-
VFileUploadItem: typeof import('vuetify/labs/components')['VFileUploadItem']
|
663
664
|
VStepperVertical: typeof import('vuetify/labs/components')['VStepperVertical']
|
664
665
|
VStepperVerticalItem: typeof import('vuetify/labs/components')['VStepperVerticalItem']
|
665
666
|
VStepperVerticalActions: typeof import('vuetify/labs/components')['VStepperVerticalActions']
|
666
667
|
VTimePicker: typeof import('vuetify/labs/components')['VTimePicker']
|
667
668
|
VTimePickerClock: typeof import('vuetify/labs/components')['VTimePickerClock']
|
668
669
|
VTimePickerControls: typeof import('vuetify/labs/components')['VTimePickerControls']
|
669
|
-
VNumberInput: typeof import('vuetify/labs/components')['VNumberInput']
|
670
670
|
VTreeview: typeof import('vuetify/labs/components')['VTreeview']
|
671
671
|
VTreeviewItem: typeof import('vuetify/labs/components')['VTreeviewItem']
|
672
672
|
VTreeviewGroup: typeof import('vuetify/labs/components')['VTreeviewGroup']
|
@@ -68,8 +68,8 @@ export const VNumberInput = genericComponent()({
|
|
68
68
|
watchEffect(() => {
|
69
69
|
if (isFocused.value && !controlsDisabled.value) {
|
70
70
|
// ignore external changes
|
71
|
-
} else if (model.value == null
|
72
|
-
_inputText.value =
|
71
|
+
} else if (model.value == null) {
|
72
|
+
_inputText.value = null;
|
73
73
|
} else if (!isNaN(model.value)) {
|
74
74
|
_inputText.value = correctPrecision(model.value);
|
75
75
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"VNumberInput.mjs","names":["VBtn","VDefaultsProvider","VDivider","makeVTextFieldProps","VTextField","useForm","forwardRefs","useProxiedModel","computed","nextTick","onMounted","ref","shallowRef","watch","watchEffect","clamp","genericComponent","omit","propsFactory","useRender","makeVNumberInputProps","controlVariant","type","String","default","inset","Boolean","hideInput","modelValue","Number","min","MIN_SAFE_INTEGER","max","MAX_SAFE_INTEGER","step","precision","VNumberInput","name","props","emits","val","setup","_ref","slots","vTextFieldRef","form","controlsDisabled","isDisabled","value","isReadonly","isFocused","correctPrecision","arguments","length","undefined","fixed","toFixed","toString","model","_inputText","isNaN","inputText","get","set","canIncrease","canDecrease","incrementIcon","decrementIcon","controlNodeSize","controlNodeDefaultHeight","incrementSlotProps","click","onClickUp","decrementSlotProps","onClickDown","formatInputValue","clampModel","inferPrecision","str","idx","indexOf","toggleUpDown","increment","inferredPrecision","Math","e","stopPropagation","onBeforeinput","data","existingTxt","target","selectionStart","selectionEnd","potentialNewInputVal","slice","test","preventDefault","split","includes","onKeydown","key","ctrlKey","onControlMousedown","actualText","trimDecimalZeros","onFocus","onBlur","_","textFieldProps","filterProps","incrementControlNode","_createVNode","disabled","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, shallowRef, watch, watchEffect } from 'vue'\nimport { clamp, genericComponent, 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' | 'hidden'\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 precision: {\n type: Number as PropType<number | null>,\n default: 0,\n },\n\n ...omit(makeVTextFieldProps({}), ['modelValue']),\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 vTextFieldRef = ref<VTextField | undefined>()\n\n const form = useForm(props)\n const controlsDisabled = computed(() => (\n form.isDisabled.value || form.isReadonly.value\n ))\n\n const isFocused = ref(false)\n\n function correctPrecision (val: number, precision = props.precision) {\n const fixed = precision == null\n ? String(val)\n : val.toFixed(precision)\n return isFocused.value\n ? Number(fixed).toString() // trim zeros\n : fixed\n }\n\n const model = useProxiedModel(props, 'modelValue', null,\n val => val ?? null,\n val => val == null\n ? val ?? null\n : clamp(+val, props.min, props.max)\n )\n\n const _inputText = shallowRef<string | null>(null)\n watchEffect(() => {\n if (isFocused.value && !controlsDisabled.value) {\n // ignore external changes\n } else if (model.value == null || controlsDisabled.value) {\n _inputText.value = model.value && !isNaN(model.value) ? String(model.value) : null\n } else if (!isNaN(model.value)) {\n _inputText.value = correctPrecision(model.value)\n }\n })\n const inputText = computed<string | null>({\n get: () => _inputText.value,\n set (val) {\n if (val === null || val === '') {\n model.value = null\n _inputText.value = null\n } else if (!isNaN(+val) && +val <= props.max && +val >= props.min) {\n model.value = +val\n _inputText.value = val\n }\n },\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 const decrementSlotProps = computed(() => ({ click: onClickDown }))\n\n watch(() => props.precision, () => formatInputValue())\n\n onMounted(() => {\n clampModel()\n })\n\n function inferPrecision (value: number | null) {\n if (value == null) return 0\n const str = value.toString()\n const idx = str.indexOf('.')\n return ~idx ? str.length - idx : 0\n }\n\n function toggleUpDown (increment = true) {\n if (controlsDisabled.value) return\n if (model.value == null) {\n inputText.value = correctPrecision(clamp(0, props.min, props.max))\n return\n }\n\n let inferredPrecision = Math.max(inferPrecision(model.value), inferPrecision(props.step))\n if (props.precision != null) inferredPrecision = Math.max(inferredPrecision, props.precision)\n if (increment) {\n if (canIncrease.value) inputText.value = correctPrecision(model.value + props.step, inferredPrecision)\n } else {\n if (canDecrease.value) inputText.value = correctPrecision(model.value - props.step, inferredPrecision)\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 if (props.precision == null) return\n\n // Ignore decimal digits above precision limit\n if (potentialNewInputVal.split('.')[1]?.length > props.precision) {\n e.preventDefault()\n }\n // Ignore decimal separator when precision = 0\n if (props.precision === 0 && potentialNewInputVal.includes('.')) {\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 (controlsDisabled.value) return\n if (!vTextFieldRef.value) return\n const actualText = vTextFieldRef.value.value\n if (actualText && !isNaN(+actualText)) {\n inputText.value = correctPrecision(clamp(+actualText, props.min, props.max))\n } else {\n inputText.value = null\n }\n }\n\n function formatInputValue () {\n if (controlsDisabled.value) return\n if (model.value === null || isNaN(model.value)) {\n inputText.value = null\n return\n }\n inputText.value = props.precision == null\n ? String(model.value)\n : model.value.toFixed(props.precision)\n }\n\n function trimDecimalZeros () {\n if (controlsDisabled.value) return\n if (model.value === null || isNaN(model.value)) {\n inputText.value = null\n return\n }\n inputText.value = model.value.toString()\n }\n\n function onFocus () {\n isFocused.value = true\n trimDecimalZeros()\n }\n\n function onBlur () {\n isFocused.value = false\n clampModel()\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 data-testid=\"increment\"\n aria-hidden=\"true\"\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 data-testid=\"decrement\"\n aria-hidden=\"true\"\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 || controlVariant.value === 'hidden'\n ? undefined\n : <>{ dividerNode() }{ controlNode() }</>)\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 && controlVariant.value !== 'hidden'\n ? <>{ controlNode() }{ dividerNode() }</>\n : undefined)\n\n const hasPrependInner = slots['prepend-inner'] || prependInnerControl\n\n return (\n <VTextField\n ref={ vTextFieldRef }\n v-model={ inputText.value }\n onBeforeinput={ onBeforeinput }\n onFocus={ onFocus }\n onBlur={ onBlur }\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":[]}
|
1
|
+
{"version":3,"file":"VNumberInput.mjs","names":["VBtn","VDefaultsProvider","VDivider","makeVTextFieldProps","VTextField","useForm","forwardRefs","useProxiedModel","computed","nextTick","onMounted","ref","shallowRef","watch","watchEffect","clamp","genericComponent","omit","propsFactory","useRender","makeVNumberInputProps","controlVariant","type","String","default","inset","Boolean","hideInput","modelValue","Number","min","MIN_SAFE_INTEGER","max","MAX_SAFE_INTEGER","step","precision","VNumberInput","name","props","emits","val","setup","_ref","slots","vTextFieldRef","form","controlsDisabled","isDisabled","value","isReadonly","isFocused","correctPrecision","arguments","length","undefined","fixed","toFixed","toString","model","_inputText","isNaN","inputText","get","set","canIncrease","canDecrease","incrementIcon","decrementIcon","controlNodeSize","controlNodeDefaultHeight","incrementSlotProps","click","onClickUp","decrementSlotProps","onClickDown","formatInputValue","clampModel","inferPrecision","str","idx","indexOf","toggleUpDown","increment","inferredPrecision","Math","e","stopPropagation","onBeforeinput","data","existingTxt","target","selectionStart","selectionEnd","potentialNewInputVal","slice","test","preventDefault","split","includes","onKeydown","key","ctrlKey","onControlMousedown","actualText","trimDecimalZeros","onFocus","onBlur","_","textFieldProps","filterProps","incrementControlNode","_createVNode","disabled","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, shallowRef, watch, watchEffect } from 'vue'\nimport { clamp, genericComponent, 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' | 'hidden'\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 precision: {\n type: Number as PropType<number | null>,\n default: 0,\n },\n\n ...omit(makeVTextFieldProps({}), ['modelValue']),\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 vTextFieldRef = ref<VTextField | undefined>()\n\n const form = useForm(props)\n const controlsDisabled = computed(() => (\n form.isDisabled.value || form.isReadonly.value\n ))\n\n const isFocused = ref(false)\n\n function correctPrecision (val: number, precision = props.precision) {\n const fixed = precision == null\n ? String(val)\n : val.toFixed(precision)\n return isFocused.value\n ? Number(fixed).toString() // trim zeros\n : fixed\n }\n\n const model = useProxiedModel(props, 'modelValue', null,\n val => val ?? null,\n val => val == null\n ? val ?? null\n : clamp(+val, props.min, props.max)\n )\n\n const _inputText = shallowRef<string | null>(null)\n watchEffect(() => {\n if (isFocused.value && !controlsDisabled.value) {\n // ignore external changes\n } else if (model.value == null) {\n _inputText.value = null\n } else if (!isNaN(model.value)) {\n _inputText.value = correctPrecision(model.value)\n }\n })\n const inputText = computed<string | null>({\n get: () => _inputText.value,\n set (val) {\n if (val === null || val === '') {\n model.value = null\n _inputText.value = null\n } else if (!isNaN(+val) && +val <= props.max && +val >= props.min) {\n model.value = +val\n _inputText.value = val\n }\n },\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 const decrementSlotProps = computed(() => ({ click: onClickDown }))\n\n watch(() => props.precision, () => formatInputValue())\n\n onMounted(() => {\n clampModel()\n })\n\n function inferPrecision (value: number | null) {\n if (value == null) return 0\n const str = value.toString()\n const idx = str.indexOf('.')\n return ~idx ? str.length - idx : 0\n }\n\n function toggleUpDown (increment = true) {\n if (controlsDisabled.value) return\n if (model.value == null) {\n inputText.value = correctPrecision(clamp(0, props.min, props.max))\n return\n }\n\n let inferredPrecision = Math.max(inferPrecision(model.value), inferPrecision(props.step))\n if (props.precision != null) inferredPrecision = Math.max(inferredPrecision, props.precision)\n if (increment) {\n if (canIncrease.value) inputText.value = correctPrecision(model.value + props.step, inferredPrecision)\n } else {\n if (canDecrease.value) inputText.value = correctPrecision(model.value - props.step, inferredPrecision)\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 if (props.precision == null) return\n\n // Ignore decimal digits above precision limit\n if (potentialNewInputVal.split('.')[1]?.length > props.precision) {\n e.preventDefault()\n }\n // Ignore decimal separator when precision = 0\n if (props.precision === 0 && potentialNewInputVal.includes('.')) {\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 (controlsDisabled.value) return\n if (!vTextFieldRef.value) return\n const actualText = vTextFieldRef.value.value\n if (actualText && !isNaN(+actualText)) {\n inputText.value = correctPrecision(clamp(+actualText, props.min, props.max))\n } else {\n inputText.value = null\n }\n }\n\n function formatInputValue () {\n if (controlsDisabled.value) return\n if (model.value === null || isNaN(model.value)) {\n inputText.value = null\n return\n }\n inputText.value = props.precision == null\n ? String(model.value)\n : model.value.toFixed(props.precision)\n }\n\n function trimDecimalZeros () {\n if (controlsDisabled.value) return\n if (model.value === null || isNaN(model.value)) {\n inputText.value = null\n return\n }\n inputText.value = model.value.toString()\n }\n\n function onFocus () {\n isFocused.value = true\n trimDecimalZeros()\n }\n\n function onBlur () {\n isFocused.value = false\n clampModel()\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 data-testid=\"increment\"\n aria-hidden=\"true\"\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 data-testid=\"decrement\"\n aria-hidden=\"true\"\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 || controlVariant.value === 'hidden'\n ? undefined\n : <>{ dividerNode() }{ controlNode() }</>)\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 && controlVariant.value !== 'hidden'\n ? <>{ controlNode() }{ dividerNode() }</>\n : undefined)\n\n const hasPrependInner = slots['prepend-inner'] || prependInnerControl\n\n return (\n <VTextField\n ref={ vTextFieldRef }\n v-model={ inputText.value }\n onBeforeinput={ onBeforeinput }\n onFocus={ onFocus }\n onBlur={ onBlur }\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":[]}
|
@@ -23,28 +23,28 @@
|
|
23
23
|
justify-content: center
|
24
24
|
|
25
25
|
&__btn.v-btn--density-default.v-btn
|
26
|
-
width: $time-picker-
|
27
|
-
height: $time-picker-
|
28
|
-
font-size: $time-picker-
|
26
|
+
width: $time-picker-controls-btn-width
|
27
|
+
height: $time-picker-controls-btn-height
|
28
|
+
font-size: $time-picker-controls-btn-font
|
29
29
|
|
30
30
|
&__active
|
31
31
|
background: rgb(var(--v-theme-primary))
|
32
32
|
&.v-time-picker-controls__time--with-ampm__btn
|
33
|
-
width: $time-picker-
|
34
|
-
height: $time-picker-
|
33
|
+
width: $time-picker-controls-ampm-btn-width
|
34
|
+
height: $time-picker-controls-ampm-btn-height
|
35
35
|
&.v-time-picker-controls__time--with-seconds__btn
|
36
36
|
// overridden
|
37
|
-
width: $time-picker-
|
38
|
-
height: $time-picker-
|
39
|
-
font-size: $time-picker-
|
37
|
+
width: $time-picker-controls-seconds-btn-width
|
38
|
+
height: $time-picker-controls-seconds-btn-height
|
39
|
+
font-size: $time-picker-controls-seconds-btn-font
|
40
40
|
&__separator
|
41
|
-
font-size: $time-picker-
|
42
|
-
height: $time-picker-
|
43
|
-
width: $time-picker-
|
41
|
+
font-size: $time-picker-controls-btn-font
|
42
|
+
height: $time-picker-controls-btn-height
|
43
|
+
width: $time-picker-controls-separator-width
|
44
44
|
text-align: center
|
45
45
|
&__separator.v-time-picker-controls--with-seconds__time__separator
|
46
|
-
height: $time-picker-
|
47
|
-
font-size: $time-picker-
|
46
|
+
height: $time-picker-controls-seconds-btn-height
|
47
|
+
font-size: $time-picker-controls-btn-font
|
48
48
|
|
49
49
|
.v-time-picker-controls__ampm
|
50
50
|
margin-left: 12px
|
@@ -65,12 +65,12 @@
|
|
65
65
|
font-size: $time-picker-ampm-title-font-size
|
66
66
|
padding: 0 8px
|
67
67
|
min-width: 52px
|
68
|
-
height: $time-picker-
|
68
|
+
height: $time-picker-controls-ampm-height
|
69
69
|
&.v-time-picker-controls__ampm__am
|
70
|
-
border-radius: $time-picker-
|
70
|
+
border-radius: $time-picker-controls-ampm-am-border-radius
|
71
71
|
border: 1px solid
|
72
72
|
&.v-time-picker-controls__ampm__pm
|
73
|
-
border-radius: $time-picker-
|
73
|
+
border-radius: $time-picker-controls-ampm-pm-border-radius
|
74
74
|
border: 1px solid
|
75
75
|
border-top: none
|
76
76
|
&__active
|
@@ -1,18 +1,18 @@
|
|
1
1
|
@forward '../VPicker/variables';
|
2
2
|
|
3
3
|
$time-picker-padding: 24px !default;
|
4
|
-
$time-picker-
|
5
|
-
$time-picker-
|
6
|
-
$time-picker-
|
7
|
-
$time-picker-
|
8
|
-
$time-picker-
|
9
|
-
$time-picker-
|
10
|
-
$time-picker-
|
11
|
-
$time-picker-
|
12
|
-
$time-picker-
|
13
|
-
$time-picker-
|
14
|
-
$time-picker-
|
15
|
-
$time-picker-
|
4
|
+
$time-picker-controls-btn-font: 56px !default;
|
5
|
+
$time-picker-controls-btn-height: 80px !default;
|
6
|
+
$time-picker-controls-btn-width: 96px !default;
|
7
|
+
$time-picker-controls-seconds-btn-width: 64px !default;
|
8
|
+
$time-picker-controls-seconds-btn-height: 80px !default;
|
9
|
+
$time-picker-controls-seconds-btn-font: 40px !default;
|
10
|
+
$time-picker-controls-separator-width: 24px !default;
|
11
|
+
$time-picker-controls-ampm-btn-width: 96px !default;
|
12
|
+
$time-picker-controls-ampm-btn-height: 80px !default;
|
13
|
+
$time-picker-controls-ampm-height: 40px !default;
|
14
|
+
$time-picker-controls-ampm-am-border-radius: 4px 4px 0 0 !default;
|
15
|
+
$time-picker-controls-ampm-pm-border-radius: 0 0 4px 4px !default;
|
16
16
|
$time-picker-ampm-title-font-size: 18px !default;
|
17
17
|
$time-picker-number-font-size: 16px !default;
|
18
18
|
$time-picker-indicator-size: 40px !default;
|
@@ -17,6 +17,7 @@ function flatten(items) {
|
|
17
17
|
return flat;
|
18
18
|
}
|
19
19
|
export const makeVTreeviewProps = propsFactory({
|
20
|
+
fluid: Boolean,
|
20
21
|
openAll: Boolean,
|
21
22
|
search: String,
|
22
23
|
...makeFilterProps({
|
@@ -130,7 +131,9 @@ export const VTreeview = genericComponent()({
|
|
130
131
|
return _createVNode(VList, _mergeProps({
|
131
132
|
"ref": vListRef
|
132
133
|
}, listProps, {
|
133
|
-
"class": ['v-treeview',
|
134
|
+
"class": ['v-treeview', {
|
135
|
+
'v-treeview--fluid': props.fluid
|
136
|
+
}, props.class],
|
134
137
|
"open-strategy": "multiple",
|
135
138
|
"style": props.style,
|
136
139
|
"opened": opened.value,
|
@@ -140,6 +143,7 @@ export const VTreeview = genericComponent()({
|
|
140
143
|
"onUpdate:selected": $event => selected.value = $event
|
141
144
|
}), {
|
142
145
|
default: () => [_createVNode(VTreeviewChildren, _mergeProps(treeviewChildrenProps, {
|
146
|
+
"density": props.density,
|
143
147
|
"returnObject": props.returnObject,
|
144
148
|
"items": items.value
|
145
149
|
}), slots)]
|