@vuetify/nightly 3.8.9-master.2025-06-12 → 3.8.9-master.2025-06-13

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.
Files changed (43) hide show
  1. package/CHANGELOG.md +9 -3
  2. package/dist/json/attributes.json +3537 -3537
  3. package/dist/json/importMap-labs.json +28 -28
  4. package/dist/json/importMap.json +164 -164
  5. package/dist/json/web-types.json +6485 -6485
  6. package/dist/vuetify-labs.cjs +43 -22
  7. package/dist/vuetify-labs.css +4940 -4940
  8. package/dist/vuetify-labs.d.ts +61 -61
  9. package/dist/vuetify-labs.esm.js +43 -22
  10. package/dist/vuetify-labs.esm.js.map +1 -1
  11. package/dist/vuetify-labs.js +43 -22
  12. package/dist/vuetify-labs.min.css +2 -2
  13. package/dist/vuetify.cjs +41 -22
  14. package/dist/vuetify.cjs.map +1 -1
  15. package/dist/vuetify.css +3520 -3520
  16. package/dist/vuetify.d.ts +61 -61
  17. package/dist/vuetify.esm.js +41 -22
  18. package/dist/vuetify.esm.js.map +1 -1
  19. package/dist/vuetify.js +41 -22
  20. package/dist/vuetify.js.map +1 -1
  21. package/dist/vuetify.min.css +2 -2
  22. package/dist/vuetify.min.js +19 -17
  23. package/dist/vuetify.min.js.map +1 -1
  24. package/lib/components/VDatePicker/VDatePicker.js +19 -13
  25. package/lib/components/VDatePicker/VDatePicker.js.map +1 -1
  26. package/lib/components/VDatePicker/VDatePickerYears.js +1 -3
  27. package/lib/components/VDatePicker/VDatePickerYears.js.map +1 -1
  28. package/lib/components/VField/VField.js +10 -2
  29. package/lib/components/VField/VField.js.map +1 -1
  30. package/lib/composables/hotkey.d.ts +9 -0
  31. package/lib/composables/hotkey.js +131 -0
  32. package/lib/composables/hotkey.js.map +1 -0
  33. package/lib/composables/transition.js +3 -3
  34. package/lib/composables/transition.js.map +1 -1
  35. package/lib/entry-bundler.js +1 -1
  36. package/lib/framework.d.ts +61 -61
  37. package/lib/framework.js +1 -1
  38. package/lib/labs/VTimePicker/VTimePickerClock.js +3 -1
  39. package/lib/labs/VTimePicker/VTimePickerClock.js.map +1 -1
  40. package/lib/util/helpers.d.ts +3 -0
  41. package/lib/util/helpers.js +7 -0
  42. package/lib/util/helpers.js.map +1 -1
  43. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
1
  // Utilities
2
2
  import { h, mergeProps, Transition, TransitionGroup } from 'vue';
3
- import { isObject, propsFactory } from "../util/index.js"; // Types
3
+ import { isObject, onlyDefinedProps, propsFactory } from "../util/index.js"; // Types
4
4
  export const makeTransitionProps = propsFactory({
5
5
  transition: {
6
6
  type: null,
@@ -24,10 +24,10 @@ export const MaybeTransition = (props, _ref) => {
24
24
  } = isObject(transition) ? transition : {};
25
25
  let transitionProps;
26
26
  if (isObject(transition)) {
27
- transitionProps = mergeProps(customProps, JSON.parse(JSON.stringify({
27
+ transitionProps = mergeProps(customProps, onlyDefinedProps({
28
28
  disabled,
29
29
  group
30
- })), rest);
30
+ }), rest);
31
31
  } else {
32
32
  transitionProps = mergeProps({
33
33
  name: disabled || !transition ? '' : transition
@@ -1 +1 @@
1
- {"version":3,"file":"transition.js","names":["h","mergeProps","Transition","TransitionGroup","isObject","propsFactory","makeTransitionProps","transition","type","default","validator","val","MaybeTransition","props","_ref","slots","disabled","group","rest","component","customProps","transitionProps","JSON","parse","stringify","name"],"sources":["../../src/composables/transition.ts"],"sourcesContent":["// Utilities\nimport { h, mergeProps, Transition, TransitionGroup } from 'vue'\nimport { isObject, propsFactory } from '@/util'\n\n// Types\nimport type { Component, FunctionalComponent, Prop, TransitionProps } from 'vue'\n\nexport const makeTransitionProps = propsFactory({\n transition: {\n type: null,\n default: 'fade-transition',\n validator: val => val !== true,\n } as Prop<null | string | boolean | TransitionProps & { component?: Component }>,\n}, 'transition')\n\ninterface MaybeTransitionProps extends TransitionProps {\n transition?: null | string | boolean | TransitionProps & { component?: any }\n disabled?: boolean\n group?: boolean\n}\n\nexport const MaybeTransition: FunctionalComponent<MaybeTransitionProps> = (props, { slots }) => {\n const { transition, disabled, group, ...rest } = props\n\n const {\n component = group ? TransitionGroup : Transition,\n ...customProps\n } = isObject(transition) ? transition : {}\n\n let transitionProps\n if (isObject(transition)) {\n transitionProps = mergeProps(\n customProps,\n JSON.parse(JSON.stringify({ disabled, group })),\n rest,\n )\n } else {\n transitionProps = mergeProps(\n { name: disabled || !transition ? '' : transition },\n rest,\n )\n }\n\n return h(\n component,\n transitionProps,\n slots\n )\n}\n"],"mappings":"AAAA;AACA,SAASA,CAAC,EAAEC,UAAU,EAAEC,UAAU,EAAEC,eAAe,QAAQ,KAAK;AAAA,SACvDC,QAAQ,EAAEC,YAAY,4BAE/B;AAGA,OAAO,MAAMC,mBAAmB,GAAGD,YAAY,CAAC;EAC9CE,UAAU,EAAE;IACVC,IAAI,EAAE,IAAI;IACVC,OAAO,EAAE,iBAAiB;IAC1BC,SAAS,EAAEC,GAAG,IAAIA,GAAG,KAAK;EAC5B;AACF,CAAC,EAAE,YAAY,CAAC;AAQhB,OAAO,MAAMC,eAA0D,GAAGA,CAACC,KAAK,EAAAC,IAAA,KAAgB;EAAA,IAAd;IAAEC;EAAM,CAAC,GAAAD,IAAA;EACzF,MAAM;IAAEP,UAAU;IAAES,QAAQ;IAAEC,KAAK;IAAE,GAAGC;EAAK,CAAC,GAAGL,KAAK;EAEtD,MAAM;IACJM,SAAS,GAAGF,KAAK,GAAGd,eAAe,GAAGD,UAAU;IAChD,GAAGkB;EACL,CAAC,GAAGhB,QAAQ,CAACG,UAAU,CAAC,GAAGA,UAAU,GAAG,CAAC,CAAC;EAE1C,IAAIc,eAAe;EACnB,IAAIjB,QAAQ,CAACG,UAAU,CAAC,EAAE;IACxBc,eAAe,GAAGpB,UAAU,CAC1BmB,WAAW,EACXE,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,SAAS,CAAC;MAAER,QAAQ;MAAEC;IAAM,CAAC,CAAC,CAAC,EAC/CC,IACF,CAAC;EACH,CAAC,MAAM;IACLG,eAAe,GAAGpB,UAAU,CAC1B;MAAEwB,IAAI,EAAET,QAAQ,IAAI,CAACT,UAAU,GAAG,EAAE,GAAGA;IAAW,CAAC,EACnDW,IACF,CAAC;EACH;EAEA,OAAOlB,CAAC,CACNmB,SAAS,EACTE,eAAe,EACfN,KACF,CAAC;AACH,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"transition.js","names":["h","mergeProps","Transition","TransitionGroup","isObject","onlyDefinedProps","propsFactory","makeTransitionProps","transition","type","default","validator","val","MaybeTransition","props","_ref","slots","disabled","group","rest","component","customProps","transitionProps","name"],"sources":["../../src/composables/transition.ts"],"sourcesContent":["// Utilities\nimport { h, mergeProps, Transition, TransitionGroup } from 'vue'\nimport { isObject, onlyDefinedProps, propsFactory } from '@/util'\n\n// Types\nimport type { Component, FunctionalComponent, Prop, TransitionProps } from 'vue'\n\nexport const makeTransitionProps = propsFactory({\n transition: {\n type: null,\n default: 'fade-transition',\n validator: val => val !== true,\n } as Prop<null | string | boolean | TransitionProps & { component?: Component }>,\n}, 'transition')\n\ninterface MaybeTransitionProps extends TransitionProps {\n transition?: null | string | boolean | TransitionProps & { component?: any }\n disabled?: boolean\n group?: boolean\n}\n\nexport const MaybeTransition: FunctionalComponent<MaybeTransitionProps> = (props, { slots }) => {\n const { transition, disabled, group, ...rest } = props\n\n const {\n component = group ? TransitionGroup : Transition,\n ...customProps\n } = isObject(transition) ? transition : {}\n\n let transitionProps\n if (isObject(transition)) {\n transitionProps = mergeProps(\n customProps,\n onlyDefinedProps({ disabled, group }),\n rest,\n )\n } else {\n transitionProps = mergeProps(\n { name: disabled || !transition ? '' : transition },\n rest,\n )\n }\n\n return h(\n component,\n transitionProps,\n slots\n )\n}\n"],"mappings":"AAAA;AACA,SAASA,CAAC,EAAEC,UAAU,EAAEC,UAAU,EAAEC,eAAe,QAAQ,KAAK;AAAA,SACvDC,QAAQ,EAAEC,gBAAgB,EAAEC,YAAY,4BAEjD;AAGA,OAAO,MAAMC,mBAAmB,GAAGD,YAAY,CAAC;EAC9CE,UAAU,EAAE;IACVC,IAAI,EAAE,IAAI;IACVC,OAAO,EAAE,iBAAiB;IAC1BC,SAAS,EAAEC,GAAG,IAAIA,GAAG,KAAK;EAC5B;AACF,CAAC,EAAE,YAAY,CAAC;AAQhB,OAAO,MAAMC,eAA0D,GAAGA,CAACC,KAAK,EAAAC,IAAA,KAAgB;EAAA,IAAd;IAAEC;EAAM,CAAC,GAAAD,IAAA;EACzF,MAAM;IAAEP,UAAU;IAAES,QAAQ;IAAEC,KAAK;IAAE,GAAGC;EAAK,CAAC,GAAGL,KAAK;EAEtD,MAAM;IACJM,SAAS,GAAGF,KAAK,GAAGf,eAAe,GAAGD,UAAU;IAChD,GAAGmB;EACL,CAAC,GAAGjB,QAAQ,CAACI,UAAU,CAAC,GAAGA,UAAU,GAAG,CAAC,CAAC;EAE1C,IAAIc,eAAe;EACnB,IAAIlB,QAAQ,CAACI,UAAU,CAAC,EAAE;IACxBc,eAAe,GAAGrB,UAAU,CAC1BoB,WAAW,EACXhB,gBAAgB,CAAC;MAAEY,QAAQ;MAAEC;IAAM,CAAC,CAAC,EACrCC,IACF,CAAC;EACH,CAAC,MAAM;IACLG,eAAe,GAAGrB,UAAU,CAC1B;MAAEsB,IAAI,EAAEN,QAAQ,IAAI,CAACT,UAAU,GAAG,EAAE,GAAGA;IAAW,CAAC,EACnDW,IACF,CAAC;EACH;EAEA,OAAOnB,CAAC,CACNoB,SAAS,EACTE,eAAe,EACfN,KACF,CAAC;AACH,CAAC","ignoreList":[]}
@@ -16,7 +16,7 @@ export const createVuetify = function () {
16
16
  ...options
17
17
  });
18
18
  };
19
- export const version = "3.8.9-master.2025-06-12";
19
+ export const version = "3.8.9-master.2025-06-13";
20
20
  createVuetify.version = version;
21
21
  export { blueprints, components, directives };
22
22
  export * from "./composables/index.js";
@@ -2545,39 +2545,43 @@ declare module 'vue' {
2545
2545
  $children?: VNodeChild
2546
2546
  }
2547
2547
  export interface GlobalComponents {
2548
- VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
2548
+ VAppBar: typeof import('vuetify/components')['VAppBar']
2549
+ VAppBarNavIcon: typeof import('vuetify/components')['VAppBarNavIcon']
2550
+ VAppBarTitle: typeof import('vuetify/components')['VAppBarTitle']
2549
2551
  VApp: typeof import('vuetify/components')['VApp']
2550
2552
  VAlert: typeof import('vuetify/components')['VAlert']
2551
2553
  VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
2552
2554
  VAvatar: typeof import('vuetify/components')['VAvatar']
2555
+ VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
2556
+ VBreadcrumbs: typeof import('vuetify/components')['VBreadcrumbs']
2557
+ VBreadcrumbsItem: typeof import('vuetify/components')['VBreadcrumbsItem']
2558
+ VBreadcrumbsDivider: typeof import('vuetify/components')['VBreadcrumbsDivider']
2553
2559
  VBadge: typeof import('vuetify/components')['VBadge']
2554
2560
  VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
2555
- VBanner: typeof import('vuetify/components')['VBanner']
2556
- VBannerActions: typeof import('vuetify/components')['VBannerActions']
2557
- VBannerText: typeof import('vuetify/components')['VBannerText']
2558
2561
  VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
2562
+ VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
2559
2563
  VBtn: typeof import('vuetify/components')['VBtn']
2560
- VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
2561
- VAppBar: typeof import('vuetify/components')['VAppBar']
2562
- VAppBarNavIcon: typeof import('vuetify/components')['VAppBarNavIcon']
2563
- VAppBarTitle: typeof import('vuetify/components')['VAppBarTitle']
2564
2564
  VCard: typeof import('vuetify/components')['VCard']
2565
2565
  VCardActions: typeof import('vuetify/components')['VCardActions']
2566
2566
  VCardItem: typeof import('vuetify/components')['VCardItem']
2567
2567
  VCardSubtitle: typeof import('vuetify/components')['VCardSubtitle']
2568
2568
  VCardText: typeof import('vuetify/components')['VCardText']
2569
2569
  VCardTitle: typeof import('vuetify/components')['VCardTitle']
2570
- VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
2571
- VChipGroup: typeof import('vuetify/components')['VChipGroup']
2572
- VChip: typeof import('vuetify/components')['VChip']
2573
- VCarousel: typeof import('vuetify/components')['VCarousel']
2574
- VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
2570
+ VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
2575
2571
  VCheckbox: typeof import('vuetify/components')['VCheckbox']
2576
2572
  VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
2577
- VCounter: typeof import('vuetify/components')['VCounter']
2578
- VColorPicker: typeof import('vuetify/components')['VColorPicker']
2573
+ VChip: typeof import('vuetify/components')['VChip']
2579
2574
  VCombobox: typeof import('vuetify/components')['VCombobox']
2575
+ VChipGroup: typeof import('vuetify/components')['VChipGroup']
2580
2576
  VCode: typeof import('vuetify/components')['VCode']
2577
+ VCarousel: typeof import('vuetify/components')['VCarousel']
2578
+ VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
2579
+ VDatePicker: typeof import('vuetify/components')['VDatePicker']
2580
+ VDatePickerControls: typeof import('vuetify/components')['VDatePickerControls']
2581
+ VDatePickerHeader: typeof import('vuetify/components')['VDatePickerHeader']
2582
+ VDatePickerMonth: typeof import('vuetify/components')['VDatePickerMonth']
2583
+ VDatePickerMonths: typeof import('vuetify/components')['VDatePickerMonths']
2584
+ VDatePickerYears: typeof import('vuetify/components')['VDatePickerYears']
2581
2585
  VDataTable: typeof import('vuetify/components')['VDataTable']
2582
2586
  VDataTableHeaders: typeof import('vuetify/components')['VDataTableHeaders']
2583
2587
  VDataTableFooter: typeof import('vuetify/components')['VDataTableFooter']
@@ -2585,38 +2589,30 @@ declare module 'vue' {
2585
2589
  VDataTableRow: typeof import('vuetify/components')['VDataTableRow']
2586
2590
  VDataTableVirtual: typeof import('vuetify/components')['VDataTableVirtual']
2587
2591
  VDataTableServer: typeof import('vuetify/components')['VDataTableServer']
2588
- VDatePicker: typeof import('vuetify/components')['VDatePicker']
2589
- VDatePickerControls: typeof import('vuetify/components')['VDatePickerControls']
2590
- VDatePickerHeader: typeof import('vuetify/components')['VDatePickerHeader']
2591
- VDatePickerMonth: typeof import('vuetify/components')['VDatePickerMonth']
2592
- VDatePickerMonths: typeof import('vuetify/components')['VDatePickerMonths']
2593
- VDatePickerYears: typeof import('vuetify/components')['VDatePickerYears']
2594
- VDivider: typeof import('vuetify/components')['VDivider']
2592
+ VColorPicker: typeof import('vuetify/components')['VColorPicker']
2593
+ VCounter: typeof import('vuetify/components')['VCounter']
2595
2594
  VDialog: typeof import('vuetify/components')['VDialog']
2596
- VField: typeof import('vuetify/components')['VField']
2597
- VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
2598
- VEmptyState: typeof import('vuetify/components')['VEmptyState']
2599
- VFileInput: typeof import('vuetify/components')['VFileInput']
2600
2595
  VExpansionPanels: typeof import('vuetify/components')['VExpansionPanels']
2601
2596
  VExpansionPanel: typeof import('vuetify/components')['VExpansionPanel']
2602
2597
  VExpansionPanelText: typeof import('vuetify/components')['VExpansionPanelText']
2603
2598
  VExpansionPanelTitle: typeof import('vuetify/components')['VExpansionPanelTitle']
2604
- VFooter: typeof import('vuetify/components')['VFooter']
2605
2599
  VFab: typeof import('vuetify/components')['VFab']
2606
- VImg: typeof import('vuetify/components')['VImg']
2600
+ VEmptyState: typeof import('vuetify/components')['VEmptyState']
2601
+ VField: typeof import('vuetify/components')['VField']
2602
+ VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
2603
+ VFooter: typeof import('vuetify/components')['VFooter']
2607
2604
  VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
2605
+ VFileInput: typeof import('vuetify/components')['VFileInput']
2608
2606
  VIcon: typeof import('vuetify/components')['VIcon']
2609
2607
  VComponentIcon: typeof import('vuetify/components')['VComponentIcon']
2610
2608
  VSvgIcon: typeof import('vuetify/components')['VSvgIcon']
2611
2609
  VLigatureIcon: typeof import('vuetify/components')['VLigatureIcon']
2612
2610
  VClassIcon: typeof import('vuetify/components')['VClassIcon']
2611
+ VImg: typeof import('vuetify/components')['VImg']
2613
2612
  VKbd: typeof import('vuetify/components')['VKbd']
2614
2613
  VItemGroup: typeof import('vuetify/components')['VItemGroup']
2615
2614
  VItem: typeof import('vuetify/components')['VItem']
2616
2615
  VInput: typeof import('vuetify/components')['VInput']
2617
- VLabel: typeof import('vuetify/components')['VLabel']
2618
- VMain: typeof import('vuetify/components')['VMain']
2619
- VNavigationDrawer: typeof import('vuetify/components')['VNavigationDrawer']
2620
2616
  VList: typeof import('vuetify/components')['VList']
2621
2617
  VListGroup: typeof import('vuetify/components')['VListGroup']
2622
2618
  VListImg: typeof import('vuetify/components')['VListImg']
@@ -2626,74 +2622,78 @@ declare module 'vue' {
2626
2622
  VListItemSubtitle: typeof import('vuetify/components')['VListItemSubtitle']
2627
2623
  VListItemTitle: typeof import('vuetify/components')['VListItemTitle']
2628
2624
  VListSubheader: typeof import('vuetify/components')['VListSubheader']
2625
+ VLabel: typeof import('vuetify/components')['VLabel']
2629
2626
  VMenu: typeof import('vuetify/components')['VMenu']
2630
2627
  VMessages: typeof import('vuetify/components')['VMessages']
2631
- VNumberInput: typeof import('vuetify/components')['VNumberInput']
2632
- VOverlay: typeof import('vuetify/components')['VOverlay']
2628
+ VMain: typeof import('vuetify/components')['VMain']
2629
+ VNavigationDrawer: typeof import('vuetify/components')['VNavigationDrawer']
2633
2630
  VOtpInput: typeof import('vuetify/components')['VOtpInput']
2634
- VProgressLinear: typeof import('vuetify/components')['VProgressLinear']
2631
+ VDivider: typeof import('vuetify/components')['VDivider']
2632
+ VOverlay: typeof import('vuetify/components')['VOverlay']
2633
+ VNumberInput: typeof import('vuetify/components')['VNumberInput']
2635
2634
  VPagination: typeof import('vuetify/components')['VPagination']
2636
- VRadioGroup: typeof import('vuetify/components')['VRadioGroup']
2637
2635
  VProgressCircular: typeof import('vuetify/components')['VProgressCircular']
2636
+ VRadioGroup: typeof import('vuetify/components')['VRadioGroup']
2637
+ VProgressLinear: typeof import('vuetify/components')['VProgressLinear']
2638
+ VSelect: typeof import('vuetify/components')['VSelect']
2638
2639
  VRating: typeof import('vuetify/components')['VRating']
2639
2640
  VSelectionControl: typeof import('vuetify/components')['VSelectionControl']
2640
2641
  VSelectionControlGroup: typeof import('vuetify/components')['VSelectionControlGroup']
2641
2642
  VSlideGroup: typeof import('vuetify/components')['VSlideGroup']
2642
2643
  VSlideGroupItem: typeof import('vuetify/components')['VSlideGroupItem']
2643
- VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
2644
+ VSnackbar: typeof import('vuetify/components')['VSnackbar']
2644
2645
  VSheet: typeof import('vuetify/components')['VSheet']
2645
- VSelect: typeof import('vuetify/components')['VSelect']
2646
- VSlider: typeof import('vuetify/components')['VSlider']
2646
+ VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
2647
2647
  VStepper: typeof import('vuetify/components')['VStepper']
2648
2648
  VStepperActions: typeof import('vuetify/components')['VStepperActions']
2649
2649
  VStepperHeader: typeof import('vuetify/components')['VStepperHeader']
2650
2650
  VStepperItem: typeof import('vuetify/components')['VStepperItem']
2651
2651
  VStepperWindow: typeof import('vuetify/components')['VStepperWindow']
2652
2652
  VStepperWindowItem: typeof import('vuetify/components')['VStepperWindowItem']
2653
- VSnackbar: typeof import('vuetify/components')['VSnackbar']
2653
+ VSlider: typeof import('vuetify/components')['VSlider']
2654
2654
  VSwitch: typeof import('vuetify/components')['VSwitch']
2655
2655
  VSystemBar: typeof import('vuetify/components')['VSystemBar']
2656
- VTimeline: typeof import('vuetify/components')['VTimeline']
2657
- VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
2658
- VTextarea: typeof import('vuetify/components')['VTextarea']
2656
+ VTable: typeof import('vuetify/components')['VTable']
2659
2657
  VTab: typeof import('vuetify/components')['VTab']
2660
2658
  VTabs: typeof import('vuetify/components')['VTabs']
2661
2659
  VTabsWindow: typeof import('vuetify/components')['VTabsWindow']
2662
2660
  VTabsWindowItem: typeof import('vuetify/components')['VTabsWindowItem']
2663
- VTable: typeof import('vuetify/components')['VTable']
2661
+ VTextarea: typeof import('vuetify/components')['VTextarea']
2664
2662
  VTextField: typeof import('vuetify/components')['VTextField']
2663
+ VTimeline: typeof import('vuetify/components')['VTimeline']
2664
+ VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
2665
2665
  VToolbar: typeof import('vuetify/components')['VToolbar']
2666
2666
  VToolbarTitle: typeof import('vuetify/components')['VToolbarTitle']
2667
2667
  VToolbarItems: typeof import('vuetify/components')['VToolbarItems']
2668
- VTooltip: typeof import('vuetify/components')['VTooltip']
2669
2668
  VWindow: typeof import('vuetify/components')['VWindow']
2670
2669
  VWindowItem: typeof import('vuetify/components')['VWindowItem']
2671
- VBreadcrumbs: typeof import('vuetify/components')['VBreadcrumbs']
2672
- VBreadcrumbsItem: typeof import('vuetify/components')['VBreadcrumbsItem']
2673
- VBreadcrumbsDivider: typeof import('vuetify/components')['VBreadcrumbsDivider']
2674
- VConfirmEdit: typeof import('vuetify/components')['VConfirmEdit']
2670
+ VTooltip: typeof import('vuetify/components')['VTooltip']
2675
2671
  VDataIterator: typeof import('vuetify/components')['VDataIterator']
2672
+ VConfirmEdit: typeof import('vuetify/components')['VConfirmEdit']
2676
2673
  VDefaultsProvider: typeof import('vuetify/components')['VDefaultsProvider']
2674
+ VForm: typeof import('vuetify/components')['VForm']
2677
2675
  VContainer: typeof import('vuetify/components')['VContainer']
2678
2676
  VCol: typeof import('vuetify/components')['VCol']
2679
2677
  VRow: typeof import('vuetify/components')['VRow']
2680
2678
  VSpacer: typeof import('vuetify/components')['VSpacer']
2681
- VForm: typeof import('vuetify/components')['VForm']
2682
2679
  VHover: typeof import('vuetify/components')['VHover']
2683
- VLocaleProvider: typeof import('vuetify/components')['VLocaleProvider']
2684
2680
  VLayout: typeof import('vuetify/components')['VLayout']
2685
2681
  VLayoutItem: typeof import('vuetify/components')['VLayoutItem']
2686
2682
  VLazy: typeof import('vuetify/components')['VLazy']
2683
+ VLocaleProvider: typeof import('vuetify/components')['VLocaleProvider']
2687
2684
  VNoSsr: typeof import('vuetify/components')['VNoSsr']
2688
2685
  VParallax: typeof import('vuetify/components')['VParallax']
2689
2686
  VRadio: typeof import('vuetify/components')['VRadio']
2690
- VRangeSlider: typeof import('vuetify/components')['VRangeSlider']
2687
+ VResponsive: typeof import('vuetify/components')['VResponsive']
2691
2688
  VSnackbarQueue: typeof import('vuetify/components')['VSnackbarQueue']
2692
2689
  VSparkline: typeof import('vuetify/components')['VSparkline']
2693
2690
  VSpeedDial: typeof import('vuetify/components')['VSpeedDial']
2691
+ VBanner: typeof import('vuetify/components')['VBanner']
2692
+ VBannerActions: typeof import('vuetify/components')['VBannerActions']
2693
+ VBannerText: typeof import('vuetify/components')['VBannerText']
2694
2694
  VThemeProvider: typeof import('vuetify/components')['VThemeProvider']
2695
- VVirtualScroll: typeof import('vuetify/components')['VVirtualScroll']
2696
2695
  VValidation: typeof import('vuetify/components')['VValidation']
2696
+ VVirtualScroll: typeof import('vuetify/components')['VVirtualScroll']
2697
2697
  VFabTransition: typeof import('vuetify/components')['VFabTransition']
2698
2698
  VDialogBottomTransition: typeof import('vuetify/components')['VDialogBottomTransition']
2699
2699
  VDialogTopTransition: typeof import('vuetify/components')['VDialogTopTransition']
@@ -2710,7 +2710,7 @@ declare module 'vue' {
2710
2710
  VExpandTransition: typeof import('vuetify/components')['VExpandTransition']
2711
2711
  VExpandXTransition: typeof import('vuetify/components')['VExpandXTransition']
2712
2712
  VDialogTransition: typeof import('vuetify/components')['VDialogTransition']
2713
- VResponsive: typeof import('vuetify/components')['VResponsive']
2713
+ VRangeSlider: typeof import('vuetify/components')['VRangeSlider']
2714
2714
  VCalendar: typeof import('vuetify/labs/components')['VCalendar']
2715
2715
  VCalendarDay: typeof import('vuetify/labs/components')['VCalendarDay']
2716
2716
  VCalendarHeader: typeof import('vuetify/labs/components')['VCalendarHeader']
@@ -2718,21 +2718,21 @@ declare module 'vue' {
2718
2718
  VCalendarIntervalEvent: typeof import('vuetify/labs/components')['VCalendarIntervalEvent']
2719
2719
  VCalendarMonthDay: typeof import('vuetify/labs/components')['VCalendarMonthDay']
2720
2720
  VIconBtn: typeof import('vuetify/labs/components')['VIconBtn']
2721
- VColorInput: typeof import('vuetify/labs/components')['VColorInput']
2722
- VFileUpload: typeof import('vuetify/labs/components')['VFileUpload']
2723
- VFileUploadItem: typeof import('vuetify/labs/components')['VFileUploadItem']
2724
- VTreeview: typeof import('vuetify/labs/components')['VTreeview']
2725
- VTreeviewItem: typeof import('vuetify/labs/components')['VTreeviewItem']
2726
- VTreeviewGroup: typeof import('vuetify/labs/components')['VTreeviewGroup']
2727
2721
  VStepperVertical: typeof import('vuetify/labs/components')['VStepperVertical']
2728
2722
  VStepperVerticalItem: typeof import('vuetify/labs/components')['VStepperVerticalItem']
2729
2723
  VStepperVerticalActions: typeof import('vuetify/labs/components')['VStepperVerticalActions']
2724
+ VPicker: typeof import('vuetify/labs/components')['VPicker']
2725
+ VPickerTitle: typeof import('vuetify/labs/components')['VPickerTitle']
2730
2726
  VTimePicker: typeof import('vuetify/labs/components')['VTimePicker']
2731
2727
  VTimePickerClock: typeof import('vuetify/labs/components')['VTimePickerClock']
2732
2728
  VTimePickerControls: typeof import('vuetify/labs/components')['VTimePickerControls']
2733
- VPicker: typeof import('vuetify/labs/components')['VPicker']
2734
- VPickerTitle: typeof import('vuetify/labs/components')['VPickerTitle']
2729
+ VFileUpload: typeof import('vuetify/labs/components')['VFileUpload']
2730
+ VFileUploadItem: typeof import('vuetify/labs/components')['VFileUploadItem']
2731
+ VTreeview: typeof import('vuetify/labs/components')['VTreeview']
2732
+ VTreeviewItem: typeof import('vuetify/labs/components')['VTreeviewItem']
2733
+ VTreeviewGroup: typeof import('vuetify/labs/components')['VTreeviewGroup']
2735
2734
  VDateInput: typeof import('vuetify/labs/components')['VDateInput']
2736
2735
  VPullToRefresh: typeof import('vuetify/labs/components')['VPullToRefresh']
2736
+ VColorInput: typeof import('vuetify/labs/components')['VColorInput']
2737
2737
  }
2738
2738
  }
package/lib/framework.js CHANGED
@@ -109,7 +109,7 @@ export function createVuetify() {
109
109
  };
110
110
  });
111
111
  }
112
- export const version = "3.8.9-master.2025-06-12";
112
+ export const version = "3.8.9-master.2025-06-13";
113
113
  createVuetify.version = version;
114
114
 
115
115
  // Vue's inject() can only be used in setup
@@ -5,7 +5,7 @@ import "./VTimePickerClock.css";
5
5
  // Composables
6
6
  import { useBackgroundColor, useTextColor } from "../../composables/color.js"; // Utilities
7
7
  import { computed, ref, watch } from 'vue';
8
- import { genericComponent, propsFactory, useRender } from "../../util/index.js"; // Types
8
+ import { debounce, genericComponent, propsFactory, useRender } from "../../util/index.js"; // Types
9
9
  export const makeVTimePickerClockProps = propsFactory({
10
10
  allowedValues: Function,
11
11
  ampm: Boolean,
@@ -56,6 +56,7 @@ export const VTimePickerClock = genericComponent()({
56
56
  const isDragging = ref(false);
57
57
  const valueOnMouseDown = ref(null);
58
58
  const valueOnMouseUp = ref(null);
59
+ const emitChangeDebounced = debounce(value => emit('change', value), 750);
59
60
  const {
60
61
  textColorClasses,
61
62
  textColorStyles
@@ -101,6 +102,7 @@ export const VTimePickerClock = genericComponent()({
101
102
  if (value !== props.displayedValue) {
102
103
  update(value);
103
104
  }
105
+ emitChangeDebounced(value);
104
106
  }
105
107
  function isInner(value) {
106
108
  return props.double && value - props.min >= roundCount.value;
@@ -1 +1 @@
1
- {"version":3,"file":"VTimePickerClock.js","names":["useBackgroundColor","useTextColor","computed","ref","watch","genericComponent","propsFactory","useRender","makeVTimePickerClockProps","allowedValues","Function","ampm","Boolean","color","String","disabled","displayedValue","double","format","type","default","val","max","Number","required","min","scrollable","readonly","rotate","step","modelValue","VTimePickerClock","name","props","emits","change","input","setup","_ref","emit","clockRef","innerClockRef","inputValue","undefined","isDragging","valueOnMouseDown","valueOnMouseUp","textColorClasses","textColorStyles","backgroundColorClasses","backgroundColorStyles","count","roundCount","value","degreesPerUnit","degrees","Math","PI","innerRadiusScale","genChildren","children","push","update","isAllowed","wheel","e","preventDefault","delta","sign","deltaY","isInner","handScale","getPosition","rotateRadians","x","sin","y","cos","angleToValue","angle","insideClick","round","getTransform","i","left","top","euclidean","p0","p1","dx","dy","sqrt","center","atan2","abs","setMouseDownValue","onDragMove","width","getBoundingClientRect","innerWidth","clientX","clientY","touches","coords","handAngle","checksCount","ceil","onMouseDown","window","addEventListener","onMouseUp","stopPropagation","removeEventListener","_createElementVNode","_normalizeClass","_normalizeStyle","transform","map","isActive"],"sources":["../../../src/labs/VTimePicker/VTimePickerClock.tsx"],"sourcesContent":["// Styles\nimport './VTimePickerClock.sass'\n\n// Composables\nimport { useBackgroundColor, useTextColor } from '@/composables/color'\n\n// Utilities\nimport { computed, ref, watch } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\ninterface Point {\n x: number\n y: number\n}\n\nexport const makeVTimePickerClockProps = propsFactory({\n allowedValues: Function as PropType<(value: number) => boolean>,\n ampm: Boolean,\n color: String,\n disabled: Boolean,\n displayedValue: null,\n double: Boolean,\n format: {\n type: Function,\n default: (val: string | number) => val,\n },\n max: {\n type: Number,\n required: true,\n },\n min: {\n type: Number,\n required: true,\n },\n scrollable: Boolean,\n readonly: Boolean,\n rotate: {\n type: Number,\n default: 0,\n },\n step: {\n type: Number,\n default: 1,\n },\n modelValue: {\n type: Number,\n },\n}, 'VTimePickerClock')\n\nexport const VTimePickerClock = genericComponent()({\n name: 'VTimePickerClock',\n\n props: makeVTimePickerClockProps(),\n\n emits: {\n change: (val: number) => true,\n input: (val: number) => true,\n },\n\n setup (props, { emit }) {\n const clockRef = ref<HTMLElement | null>(null)\n const innerClockRef = ref<HTMLElement | null>(null)\n const inputValue = ref<number | undefined>(undefined)\n const isDragging = ref(false)\n const valueOnMouseDown = ref(null as number | null)\n const valueOnMouseUp = ref(null as number | null)\n\n const { textColorClasses, textColorStyles } = useTextColor(() => props.color)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(() => props.color)\n\n const count = computed(() => props.max - props.min + 1)\n const roundCount = computed(() => props.double ? (count.value / 2) : count.value)\n const degreesPerUnit = computed(() => 360 / roundCount.value)\n const degrees = computed(() => degreesPerUnit.value * Math.PI / 180)\n const displayedValue = computed(() => props.modelValue == null ? props.min : props.modelValue)\n const innerRadiusScale = computed(() => 0.62)\n\n const genChildren = computed(() => {\n const children = []\n for (let value = props.min; value <= props.max; value = value + props.step) {\n children.push(value)\n }\n return children\n })\n\n watch(() => props.modelValue, val => {\n inputValue.value = val\n })\n\n function update (value: number) {\n if (inputValue.value !== value) {\n inputValue.value = value\n }\n emit('input', value)\n }\n\n function isAllowed (value: number) {\n return !props.allowedValues || props.allowedValues(value)\n }\n\n function wheel (e: WheelEvent) {\n if (!props.scrollable || props.disabled) return\n\n e.preventDefault()\n\n const delta = Math.sign(-e.deltaY || 1)\n let value = displayedValue.value\n do {\n value = value + delta\n value = (value - props.min + count.value) % count.value + props.min\n } while (!isAllowed(value) && value !== displayedValue.value)\n\n if (value !== props.displayedValue) {\n update(value)\n }\n }\n\n function isInner (value: number) {\n return props.double && (value - props.min >= roundCount.value)\n }\n\n function handScale (value: number) {\n return isInner(value) ? innerRadiusScale.value : 1\n }\n\n function getPosition (value: number) {\n const rotateRadians = props.rotate * Math.PI / 180\n return {\n x: Math.sin((value - props.min) * degrees.value + rotateRadians) * handScale(value),\n y: -Math.cos((value - props.min) * degrees.value + rotateRadians) * handScale(value),\n }\n }\n\n function angleToValue (angle: number, insideClick: boolean): number {\n const value = (\n Math.round(angle / degreesPerUnit.value) +\n (insideClick ? roundCount.value : 0)\n ) % count.value + props.min\n\n // Necessary to fix edge case when selecting left part of the value(s) at 12 o'clock\n if (angle < (360 - degreesPerUnit.value / 2)) return value\n\n return insideClick ? props.max - roundCount.value + 1 : props.min\n }\n\n function getTransform (i: number) {\n const { x, y } = getPosition(i)\n return {\n left: `${Math.round(50 + x * 50)}%`,\n top: `${Math.round(50 + y * 50)}%`,\n }\n }\n\n function euclidean (p0: Point, p1: Point) {\n const dx = p1.x - p0.x\n const dy = p1.y - p0.y\n\n return Math.sqrt(dx * dx + dy * dy)\n }\n\n function angle (center: Point, p1: Point) {\n const value = 2 * Math.atan2(p1.y - center.y - euclidean(center, p1), p1.x - center.x)\n return Math.abs(value * 180 / Math.PI)\n }\n\n function setMouseDownValue (value: number) {\n if (valueOnMouseDown.value === null) {\n valueOnMouseDown.value = value\n }\n\n valueOnMouseUp.value = value\n update(value)\n }\n\n function onDragMove (e: MouseEvent | TouchEvent) {\n e.preventDefault()\n if ((!isDragging.value && e.type !== 'click') || !clockRef.value) return\n const { width, top, left } = clockRef.value?.getBoundingClientRect()\n const { width: innerWidth }: DOMRect = innerClockRef.value?.getBoundingClientRect() ?? { width: 0 } as DOMRect\n const { clientX, clientY } = 'touches' in e ? e.touches[0] : e\n const center = { x: width / 2, y: -width / 2 }\n const coords = { x: clientX - left, y: top - clientY }\n const handAngle = Math.round(angle(center, coords) - props.rotate + 360) % 360\n const insideClick = props.double && euclidean(center, coords) < (innerWidth as number + innerWidth * innerRadiusScale.value) / 4\n const checksCount = Math.ceil(15 / degreesPerUnit.value)\n let value\n\n for (let i = 0; i < checksCount; i++) {\n value = angleToValue(handAngle + i * degreesPerUnit.value, insideClick)\n if (isAllowed(value)) return setMouseDownValue(value)\n\n value = angleToValue(handAngle - i * degreesPerUnit.value, insideClick)\n if (isAllowed(value)) return setMouseDownValue(value)\n }\n }\n\n function onMouseDown (e: MouseEvent | TouchEvent) {\n if (props.disabled) return\n\n e.preventDefault()\n\n window.addEventListener('mousemove', onDragMove)\n window.addEventListener('touchmove', onDragMove)\n window.addEventListener('mouseup', onMouseUp)\n window.addEventListener('touchend', onMouseUp)\n valueOnMouseDown.value = null\n valueOnMouseUp.value = null\n isDragging.value = true\n onDragMove(e)\n }\n\n function onMouseUp (e: MouseEvent | TouchEvent) {\n e.stopPropagation()\n window.removeEventListener('mousemove', onDragMove)\n window.removeEventListener('touchmove', onDragMove)\n window.removeEventListener('mouseup', onMouseUp)\n window.removeEventListener('touchend', onMouseUp)\n\n isDragging.value = false\n if (valueOnMouseUp.value !== null && isAllowed(valueOnMouseUp.value)) {\n emit('change', valueOnMouseUp.value)\n }\n }\n\n useRender(() => {\n return (\n <div\n class={[\n {\n 'v-time-picker-clock': true,\n 'v-time-picker-clock--indeterminate': props.modelValue == null,\n 'v-time-picker-clock--readonly': props.readonly,\n },\n ]}\n onMousedown={ onMouseDown }\n onTouchstart={ onMouseDown }\n onWheel={ wheel }\n ref={ clockRef }\n >\n <div class=\"v-time-picker-clock__inner\" ref={ innerClockRef }>\n <div\n class={[\n {\n 'v-time-picker-clock__hand': true,\n 'v-time-picker-clock__hand--inner': isInner(props.modelValue as number),\n },\n textColorClasses.value,\n ]}\n style={[\n {\n transform: `rotate(${props.rotate + degreesPerUnit.value * (displayedValue.value - props.min)}deg) scaleY(${handScale(displayedValue.value)})`,\n },\n textColorStyles.value,\n ]}\n />\n\n {\n genChildren.value.map(value => {\n const isActive = value === displayedValue.value\n\n return (\n <div\n class={[\n {\n 'v-time-picker-clock__item': true,\n 'v-time-picker-clock__item--active': isActive,\n 'v-time-picker-clock__item--disabled': props.disabled || !isAllowed(value),\n },\n isActive && backgroundColorClasses.value,\n ]}\n style={[\n getTransform(value),\n isActive && backgroundColorStyles.value,\n ]}\n >\n <span>{ props.format(value) }</span>\n </div>\n )\n })\n }\n </div>\n </div>\n )\n })\n },\n})\n\nexport type VTimePickerClock = InstanceType<typeof VTimePickerClock>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,kBAAkB,EAAEC,YAAY,sCAEzC;AACA,SAASC,QAAQ,EAAEC,GAAG,EAAEC,KAAK,QAAQ,KAAK;AAAA,SACjCC,gBAAgB,EAAEC,YAAY,EAAEC,SAAS,+BAElD;AAOA,OAAO,MAAMC,yBAAyB,GAAGF,YAAY,CAAC;EACpDG,aAAa,EAAEC,QAAgD;EAC/DC,IAAI,EAAEC,OAAO;EACbC,KAAK,EAAEC,MAAM;EACbC,QAAQ,EAAEH,OAAO;EACjBI,cAAc,EAAE,IAAI;EACpBC,MAAM,EAAEL,OAAO;EACfM,MAAM,EAAE;IACNC,IAAI,EAAET,QAAQ;IACdU,OAAO,EAAGC,GAAoB,IAAKA;EACrC,CAAC;EACDC,GAAG,EAAE;IACHH,IAAI,EAAEI,MAAM;IACZC,QAAQ,EAAE;EACZ,CAAC;EACDC,GAAG,EAAE;IACHN,IAAI,EAAEI,MAAM;IACZC,QAAQ,EAAE;EACZ,CAAC;EACDE,UAAU,EAAEd,OAAO;EACnBe,QAAQ,EAAEf,OAAO;EACjBgB,MAAM,EAAE;IACNT,IAAI,EAAEI,MAAM;IACZH,OAAO,EAAE;EACX,CAAC;EACDS,IAAI,EAAE;IACJV,IAAI,EAAEI,MAAM;IACZH,OAAO,EAAE;EACX,CAAC;EACDU,UAAU,EAAE;IACVX,IAAI,EAAEI;EACR;AACF,CAAC,EAAE,kBAAkB,CAAC;AAEtB,OAAO,MAAMQ,gBAAgB,GAAG1B,gBAAgB,CAAC,CAAC,CAAC;EACjD2B,IAAI,EAAE,kBAAkB;EAExBC,KAAK,EAAEzB,yBAAyB,CAAC,CAAC;EAElC0B,KAAK,EAAE;IACLC,MAAM,EAAGd,GAAW,IAAK,IAAI;IAC7Be,KAAK,EAAGf,GAAW,IAAK;EAC1B,CAAC;EAEDgB,KAAKA,CAAEJ,KAAK,EAAAK,IAAA,EAAY;IAAA,IAAV;MAAEC;IAAK,CAAC,GAAAD,IAAA;IACpB,MAAME,QAAQ,GAAGrC,GAAG,CAAqB,IAAI,CAAC;IAC9C,MAAMsC,aAAa,GAAGtC,GAAG,CAAqB,IAAI,CAAC;IACnD,MAAMuC,UAAU,GAAGvC,GAAG,CAAqBwC,SAAS,CAAC;IACrD,MAAMC,UAAU,GAAGzC,GAAG,CAAC,KAAK,CAAC;IAC7B,MAAM0C,gBAAgB,GAAG1C,GAAG,CAAC,IAAqB,CAAC;IACnD,MAAM2C,cAAc,GAAG3C,GAAG,CAAC,IAAqB,CAAC;IAEjD,MAAM;MAAE4C,gBAAgB;MAAEC;IAAgB,CAAC,GAAG/C,YAAY,CAAC,MAAMgC,KAAK,CAACpB,KAAK,CAAC;IAC7E,MAAM;MAAEoC,sBAAsB;MAAEC;IAAsB,CAAC,GAAGlD,kBAAkB,CAAC,MAAMiC,KAAK,CAACpB,KAAK,CAAC;IAE/F,MAAMsC,KAAK,GAAGjD,QAAQ,CAAC,MAAM+B,KAAK,CAACX,GAAG,GAAGW,KAAK,CAACR,GAAG,GAAG,CAAC,CAAC;IACvD,MAAM2B,UAAU,GAAGlD,QAAQ,CAAC,MAAM+B,KAAK,CAAChB,MAAM,GAAIkC,KAAK,CAACE,KAAK,GAAG,CAAC,GAAIF,KAAK,CAACE,KAAK,CAAC;IACjF,MAAMC,cAAc,GAAGpD,QAAQ,CAAC,MAAM,GAAG,GAAGkD,UAAU,CAACC,KAAK,CAAC;IAC7D,MAAME,OAAO,GAAGrD,QAAQ,CAAC,MAAMoD,cAAc,CAACD,KAAK,GAAGG,IAAI,CAACC,EAAE,GAAG,GAAG,CAAC;IACpE,MAAMzC,cAAc,GAAGd,QAAQ,CAAC,MAAM+B,KAAK,CAACH,UAAU,IAAI,IAAI,GAAGG,KAAK,CAACR,GAAG,GAAGQ,KAAK,CAACH,UAAU,CAAC;IAC9F,MAAM4B,gBAAgB,GAAGxD,QAAQ,CAAC,MAAM,IAAI,CAAC;IAE7C,MAAMyD,WAAW,GAAGzD,QAAQ,CAAC,MAAM;MACjC,MAAM0D,QAAQ,GAAG,EAAE;MACnB,KAAK,IAAIP,KAAK,GAAGpB,KAAK,CAACR,GAAG,EAAE4B,KAAK,IAAIpB,KAAK,CAACX,GAAG,EAAE+B,KAAK,GAAGA,KAAK,GAAGpB,KAAK,CAACJ,IAAI,EAAE;QAC1E+B,QAAQ,CAACC,IAAI,CAACR,KAAK,CAAC;MACtB;MACA,OAAOO,QAAQ;IACjB,CAAC,CAAC;IAEFxD,KAAK,CAAC,MAAM6B,KAAK,CAACH,UAAU,EAAET,GAAG,IAAI;MACnCqB,UAAU,CAACW,KAAK,GAAGhC,GAAG;IACxB,CAAC,CAAC;IAEF,SAASyC,MAAMA,CAAET,KAAa,EAAE;MAC9B,IAAIX,UAAU,CAACW,KAAK,KAAKA,KAAK,EAAE;QAC9BX,UAAU,CAACW,KAAK,GAAGA,KAAK;MAC1B;MACAd,IAAI,CAAC,OAAO,EAAEc,KAAK,CAAC;IACtB;IAEA,SAASU,SAASA,CAAEV,KAAa,EAAE;MACjC,OAAO,CAACpB,KAAK,CAACxB,aAAa,IAAIwB,KAAK,CAACxB,aAAa,CAAC4C,KAAK,CAAC;IAC3D;IAEA,SAASW,KAAKA,CAAEC,CAAa,EAAE;MAC7B,IAAI,CAAChC,KAAK,CAACP,UAAU,IAAIO,KAAK,CAAClB,QAAQ,EAAE;MAEzCkD,CAAC,CAACC,cAAc,CAAC,CAAC;MAElB,MAAMC,KAAK,GAAGX,IAAI,CAACY,IAAI,CAAC,CAACH,CAAC,CAACI,MAAM,IAAI,CAAC,CAAC;MACvC,IAAIhB,KAAK,GAAGrC,cAAc,CAACqC,KAAK;MAChC,GAAG;QACDA,KAAK,GAAGA,KAAK,GAAGc,KAAK;QACrBd,KAAK,GAAG,CAACA,KAAK,GAAGpB,KAAK,CAACR,GAAG,GAAG0B,KAAK,CAACE,KAAK,IAAIF,KAAK,CAACE,KAAK,GAAGpB,KAAK,CAACR,GAAG;MACrE,CAAC,QAAQ,CAACsC,SAAS,CAACV,KAAK,CAAC,IAAIA,KAAK,KAAKrC,cAAc,CAACqC,KAAK;MAE5D,IAAIA,KAAK,KAAKpB,KAAK,CAACjB,cAAc,EAAE;QAClC8C,MAAM,CAACT,KAAK,CAAC;MACf;IACF;IAEA,SAASiB,OAAOA,CAAEjB,KAAa,EAAE;MAC/B,OAAOpB,KAAK,CAAChB,MAAM,IAAKoC,KAAK,GAAGpB,KAAK,CAACR,GAAG,IAAI2B,UAAU,CAACC,KAAM;IAChE;IAEA,SAASkB,SAASA,CAAElB,KAAa,EAAE;MACjC,OAAOiB,OAAO,CAACjB,KAAK,CAAC,GAAGK,gBAAgB,CAACL,KAAK,GAAG,CAAC;IACpD;IAEA,SAASmB,WAAWA,CAAEnB,KAAa,EAAE;MACnC,MAAMoB,aAAa,GAAGxC,KAAK,CAACL,MAAM,GAAG4B,IAAI,CAACC,EAAE,GAAG,GAAG;MAClD,OAAO;QACLiB,CAAC,EAAElB,IAAI,CAACmB,GAAG,CAAC,CAACtB,KAAK,GAAGpB,KAAK,CAACR,GAAG,IAAI8B,OAAO,CAACF,KAAK,GAAGoB,aAAa,CAAC,GAAGF,SAAS,CAAClB,KAAK,CAAC;QACnFuB,CAAC,EAAE,CAACpB,IAAI,CAACqB,GAAG,CAAC,CAACxB,KAAK,GAAGpB,KAAK,CAACR,GAAG,IAAI8B,OAAO,CAACF,KAAK,GAAGoB,aAAa,CAAC,GAAGF,SAAS,CAAClB,KAAK;MACrF,CAAC;IACH;IAEA,SAASyB,YAAYA,CAAEC,KAAa,EAAEC,WAAoB,EAAU;MAClE,MAAM3B,KAAK,GAAG,CACZG,IAAI,CAACyB,KAAK,CAACF,KAAK,GAAGzB,cAAc,CAACD,KAAK,CAAC,IACvC2B,WAAW,GAAG5B,UAAU,CAACC,KAAK,GAAG,CAAC,CAAC,IAClCF,KAAK,CAACE,KAAK,GAAGpB,KAAK,CAACR,GAAG;;MAE3B;MACA,IAAIsD,KAAK,GAAI,GAAG,GAAGzB,cAAc,CAACD,KAAK,GAAG,CAAE,EAAE,OAAOA,KAAK;MAE1D,OAAO2B,WAAW,GAAG/C,KAAK,CAACX,GAAG,GAAG8B,UAAU,CAACC,KAAK,GAAG,CAAC,GAAGpB,KAAK,CAACR,GAAG;IACnE;IAEA,SAASyD,YAAYA,CAAEC,CAAS,EAAE;MAChC,MAAM;QAAET,CAAC;QAAEE;MAAE,CAAC,GAAGJ,WAAW,CAACW,CAAC,CAAC;MAC/B,OAAO;QACLC,IAAI,EAAE,GAAG5B,IAAI,CAACyB,KAAK,CAAC,EAAE,GAAGP,CAAC,GAAG,EAAE,CAAC,GAAG;QACnCW,GAAG,EAAE,GAAG7B,IAAI,CAACyB,KAAK,CAAC,EAAE,GAAGL,CAAC,GAAG,EAAE,CAAC;MACjC,CAAC;IACH;IAEA,SAASU,SAASA,CAAEC,EAAS,EAAEC,EAAS,EAAE;MACxC,MAAMC,EAAE,GAAGD,EAAE,CAACd,CAAC,GAAGa,EAAE,CAACb,CAAC;MACtB,MAAMgB,EAAE,GAAGF,EAAE,CAACZ,CAAC,GAAGW,EAAE,CAACX,CAAC;MAEtB,OAAOpB,IAAI,CAACmC,IAAI,CAACF,EAAE,GAAGA,EAAE,GAAGC,EAAE,GAAGA,EAAE,CAAC;IACrC;IAEA,SAASX,KAAKA,CAAEa,MAAa,EAAEJ,EAAS,EAAE;MACxC,MAAMnC,KAAK,GAAG,CAAC,GAAGG,IAAI,CAACqC,KAAK,CAACL,EAAE,CAACZ,CAAC,GAAGgB,MAAM,CAAChB,CAAC,GAAGU,SAAS,CAACM,MAAM,EAAEJ,EAAE,CAAC,EAAEA,EAAE,CAACd,CAAC,GAAGkB,MAAM,CAAClB,CAAC,CAAC;MACtF,OAAOlB,IAAI,CAACsC,GAAG,CAACzC,KAAK,GAAG,GAAG,GAAGG,IAAI,CAACC,EAAE,CAAC;IACxC;IAEA,SAASsC,iBAAiBA,CAAE1C,KAAa,EAAE;MACzC,IAAIR,gBAAgB,CAACQ,KAAK,KAAK,IAAI,EAAE;QACnCR,gBAAgB,CAACQ,KAAK,GAAGA,KAAK;MAChC;MAEAP,cAAc,CAACO,KAAK,GAAGA,KAAK;MAC5BS,MAAM,CAACT,KAAK,CAAC;IACf;IAEA,SAAS2C,UAAUA,CAAE/B,CAA0B,EAAE;MAC/CA,CAAC,CAACC,cAAc,CAAC,CAAC;MAClB,IAAK,CAACtB,UAAU,CAACS,KAAK,IAAIY,CAAC,CAAC9C,IAAI,KAAK,OAAO,IAAK,CAACqB,QAAQ,CAACa,KAAK,EAAE;MAClE,MAAM;QAAE4C,KAAK;QAAEZ,GAAG;QAAED;MAAK,CAAC,GAAG5C,QAAQ,CAACa,KAAK,EAAE6C,qBAAqB,CAAC,CAAC;MACpE,MAAM;QAAED,KAAK,EAAEE;MAAoB,CAAC,GAAG1D,aAAa,CAACY,KAAK,EAAE6C,qBAAqB,CAAC,CAAC,IAAI;QAAED,KAAK,EAAE;MAAE,CAAY;MAC9G,MAAM;QAAEG,OAAO;QAAEC;MAAQ,CAAC,GAAG,SAAS,IAAIpC,CAAC,GAAGA,CAAC,CAACqC,OAAO,CAAC,CAAC,CAAC,GAAGrC,CAAC;MAC9D,MAAM2B,MAAM,GAAG;QAAElB,CAAC,EAAEuB,KAAK,GAAG,CAAC;QAAErB,CAAC,EAAE,CAACqB,KAAK,GAAG;MAAE,CAAC;MAC9C,MAAMM,MAAM,GAAG;QAAE7B,CAAC,EAAE0B,OAAO,GAAGhB,IAAI;QAAER,CAAC,EAAES,GAAG,GAAGgB;MAAQ,CAAC;MACtD,MAAMG,SAAS,GAAGhD,IAAI,CAACyB,KAAK,CAACF,KAAK,CAACa,MAAM,EAAEW,MAAM,CAAC,GAAGtE,KAAK,CAACL,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG;MAC9E,MAAMoD,WAAW,GAAG/C,KAAK,CAAChB,MAAM,IAAIqE,SAAS,CAACM,MAAM,EAAEW,MAAM,CAAC,GAAG,CAACJ,UAAU,GAAaA,UAAU,GAAGzC,gBAAgB,CAACL,KAAK,IAAI,CAAC;MAChI,MAAMoD,WAAW,GAAGjD,IAAI,CAACkD,IAAI,CAAC,EAAE,GAAGpD,cAAc,CAACD,KAAK,CAAC;MACxD,IAAIA,KAAK;MAET,KAAK,IAAI8B,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGsB,WAAW,EAAEtB,CAAC,EAAE,EAAE;QACpC9B,KAAK,GAAGyB,YAAY,CAAC0B,SAAS,GAAGrB,CAAC,GAAG7B,cAAc,CAACD,KAAK,EAAE2B,WAAW,CAAC;QACvE,IAAIjB,SAAS,CAACV,KAAK,CAAC,EAAE,OAAO0C,iBAAiB,CAAC1C,KAAK,CAAC;QAErDA,KAAK,GAAGyB,YAAY,CAAC0B,SAAS,GAAGrB,CAAC,GAAG7B,cAAc,CAACD,KAAK,EAAE2B,WAAW,CAAC;QACvE,IAAIjB,SAAS,CAACV,KAAK,CAAC,EAAE,OAAO0C,iBAAiB,CAAC1C,KAAK,CAAC;MACvD;IACF;IAEA,SAASsD,WAAWA,CAAE1C,CAA0B,EAAE;MAChD,IAAIhC,KAAK,CAAClB,QAAQ,EAAE;MAEpBkD,CAAC,CAACC,cAAc,CAAC,CAAC;MAElB0C,MAAM,CAACC,gBAAgB,CAAC,WAAW,EAAEb,UAAU,CAAC;MAChDY,MAAM,CAACC,gBAAgB,CAAC,WAAW,EAAEb,UAAU,CAAC;MAChDY,MAAM,CAACC,gBAAgB,CAAC,SAAS,EAAEC,SAAS,CAAC;MAC7CF,MAAM,CAACC,gBAAgB,CAAC,UAAU,EAAEC,SAAS,CAAC;MAC9CjE,gBAAgB,CAACQ,KAAK,GAAG,IAAI;MAC7BP,cAAc,CAACO,KAAK,GAAG,IAAI;MAC3BT,UAAU,CAACS,KAAK,GAAG,IAAI;MACvB2C,UAAU,CAAC/B,CAAC,CAAC;IACf;IAEA,SAAS6C,SAASA,CAAE7C,CAA0B,EAAE;MAC9CA,CAAC,CAAC8C,eAAe,CAAC,CAAC;MACnBH,MAAM,CAACI,mBAAmB,CAAC,WAAW,EAAEhB,UAAU,CAAC;MACnDY,MAAM,CAACI,mBAAmB,CAAC,WAAW,EAAEhB,UAAU,CAAC;MACnDY,MAAM,CAACI,mBAAmB,CAAC,SAAS,EAAEF,SAAS,CAAC;MAChDF,MAAM,CAACI,mBAAmB,CAAC,UAAU,EAAEF,SAAS,CAAC;MAEjDlE,UAAU,CAACS,KAAK,GAAG,KAAK;MACxB,IAAIP,cAAc,CAACO,KAAK,KAAK,IAAI,IAAIU,SAAS,CAACjB,cAAc,CAACO,KAAK,CAAC,EAAE;QACpEd,IAAI,CAAC,QAAQ,EAAEO,cAAc,CAACO,KAAK,CAAC;MACtC;IACF;IAEA9C,SAAS,CAAC,MAAM;MACd,OAAA0G,mBAAA;QAAA,SAAAC,eAAA,CAEW,CACL;UACE,qBAAqB,EAAE,IAAI;UAC3B,oCAAoC,EAAEjF,KAAK,CAACH,UAAU,IAAI,IAAI;UAC9D,+BAA+B,EAAEG,KAAK,CAACN;QACzC,CAAC,CACF;QAAA,eACagF,WAAW;QAAA,gBACVA,WAAW;QAAA,WAChB3C,KAAK;QAAA,OACTxB;MAAQ,IAAAyE,mBAAA;QAAA;QAAA,OAEgCxE;MAAa,IAAAwE,mBAAA;QAAA,SAAAC,eAAA,CAEhD,CACL;UACE,2BAA2B,EAAE,IAAI;UACjC,kCAAkC,EAAE5C,OAAO,CAACrC,KAAK,CAACH,UAAoB;QACxE,CAAC,EACDiB,gBAAgB,CAACM,KAAK,CACvB;QAAA,SAAA8D,eAAA,CACM,CACL;UACEC,SAAS,EAAE,UAAUnF,KAAK,CAACL,MAAM,GAAG0B,cAAc,CAACD,KAAK,IAAIrC,cAAc,CAACqC,KAAK,GAAGpB,KAAK,CAACR,GAAG,CAAC,eAAe8C,SAAS,CAACvD,cAAc,CAACqC,KAAK,CAAC;QAC7I,CAAC,EACDL,eAAe,CAACK,KAAK,CACtB;MAAA,UAIDM,WAAW,CAACN,KAAK,CAACgE,GAAG,CAAChE,KAAK,IAAI;QAC7B,MAAMiE,QAAQ,GAAGjE,KAAK,KAAKrC,cAAc,CAACqC,KAAK;QAE/C,OAAA4D,mBAAA;UAAA,SAAAC,eAAA,CAEW,CACL;YACE,2BAA2B,EAAE,IAAI;YACjC,mCAAmC,EAAEI,QAAQ;YAC7C,qCAAqC,EAAErF,KAAK,CAAClB,QAAQ,IAAI,CAACgD,SAAS,CAACV,KAAK;UAC3E,CAAC,EACDiE,QAAQ,IAAIrE,sBAAsB,CAACI,KAAK,CACzC;UAAA,SAAA8D,eAAA,CACM,CACLjC,YAAY,CAAC7B,KAAK,CAAC,EACnBiE,QAAQ,IAAIpE,qBAAqB,CAACG,KAAK,CACxC;QAAA,IAAA4D,mBAAA,gBAEOhF,KAAK,CAACf,MAAM,CAACmC,KAAK,CAAC;MAGjC,CAAC,CAAC;IAKZ,CAAC,CAAC;EACJ;AACF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"VTimePickerClock.js","names":["useBackgroundColor","useTextColor","computed","ref","watch","debounce","genericComponent","propsFactory","useRender","makeVTimePickerClockProps","allowedValues","Function","ampm","Boolean","color","String","disabled","displayedValue","double","format","type","default","val","max","Number","required","min","scrollable","readonly","rotate","step","modelValue","VTimePickerClock","name","props","emits","change","input","setup","_ref","emit","clockRef","innerClockRef","inputValue","undefined","isDragging","valueOnMouseDown","valueOnMouseUp","emitChangeDebounced","value","textColorClasses","textColorStyles","backgroundColorClasses","backgroundColorStyles","count","roundCount","degreesPerUnit","degrees","Math","PI","innerRadiusScale","genChildren","children","push","update","isAllowed","wheel","e","preventDefault","delta","sign","deltaY","isInner","handScale","getPosition","rotateRadians","x","sin","y","cos","angleToValue","angle","insideClick","round","getTransform","i","left","top","euclidean","p0","p1","dx","dy","sqrt","center","atan2","abs","setMouseDownValue","onDragMove","width","getBoundingClientRect","innerWidth","clientX","clientY","touches","coords","handAngle","checksCount","ceil","onMouseDown","window","addEventListener","onMouseUp","stopPropagation","removeEventListener","_createElementVNode","_normalizeClass","_normalizeStyle","transform","map","isActive"],"sources":["../../../src/labs/VTimePicker/VTimePickerClock.tsx"],"sourcesContent":["// Styles\nimport './VTimePickerClock.sass'\n\n// Composables\nimport { useBackgroundColor, useTextColor } from '@/composables/color'\n\n// Utilities\nimport { computed, ref, watch } from 'vue'\nimport { debounce, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\ninterface Point {\n x: number\n y: number\n}\n\nexport const makeVTimePickerClockProps = propsFactory({\n allowedValues: Function as PropType<(value: number) => boolean>,\n ampm: Boolean,\n color: String,\n disabled: Boolean,\n displayedValue: null,\n double: Boolean,\n format: {\n type: Function,\n default: (val: string | number) => val,\n },\n max: {\n type: Number,\n required: true,\n },\n min: {\n type: Number,\n required: true,\n },\n scrollable: Boolean,\n readonly: Boolean,\n rotate: {\n type: Number,\n default: 0,\n },\n step: {\n type: Number,\n default: 1,\n },\n modelValue: {\n type: Number,\n },\n}, 'VTimePickerClock')\n\nexport const VTimePickerClock = genericComponent()({\n name: 'VTimePickerClock',\n\n props: makeVTimePickerClockProps(),\n\n emits: {\n change: (val: number) => true,\n input: (val: number) => true,\n },\n\n setup (props, { emit }) {\n const clockRef = ref<HTMLElement | null>(null)\n const innerClockRef = ref<HTMLElement | null>(null)\n const inputValue = ref<number | undefined>(undefined)\n const isDragging = ref(false)\n const valueOnMouseDown = ref(null as number | null)\n const valueOnMouseUp = ref(null as number | null)\n const emitChangeDebounced = debounce((value: number) => emit('change', value), 750)\n\n const { textColorClasses, textColorStyles } = useTextColor(() => props.color)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(() => props.color)\n\n const count = computed(() => props.max - props.min + 1)\n const roundCount = computed(() => props.double ? (count.value / 2) : count.value)\n const degreesPerUnit = computed(() => 360 / roundCount.value)\n const degrees = computed(() => degreesPerUnit.value * Math.PI / 180)\n const displayedValue = computed(() => props.modelValue == null ? props.min : props.modelValue)\n const innerRadiusScale = computed(() => 0.62)\n\n const genChildren = computed(() => {\n const children = []\n for (let value = props.min; value <= props.max; value = value + props.step) {\n children.push(value)\n }\n return children\n })\n\n watch(() => props.modelValue, val => {\n inputValue.value = val\n })\n\n function update (value: number) {\n if (inputValue.value !== value) {\n inputValue.value = value\n }\n emit('input', value)\n }\n\n function isAllowed (value: number) {\n return !props.allowedValues || props.allowedValues(value)\n }\n\n function wheel (e: WheelEvent) {\n if (!props.scrollable || props.disabled) return\n\n e.preventDefault()\n\n const delta = Math.sign(-e.deltaY || 1)\n let value = displayedValue.value\n do {\n value = value + delta\n value = (value - props.min + count.value) % count.value + props.min\n } while (!isAllowed(value) && value !== displayedValue.value)\n\n if (value !== props.displayedValue) {\n update(value)\n }\n\n emitChangeDebounced(value)\n }\n\n function isInner (value: number) {\n return props.double && (value - props.min >= roundCount.value)\n }\n\n function handScale (value: number) {\n return isInner(value) ? innerRadiusScale.value : 1\n }\n\n function getPosition (value: number) {\n const rotateRadians = props.rotate * Math.PI / 180\n return {\n x: Math.sin((value - props.min) * degrees.value + rotateRadians) * handScale(value),\n y: -Math.cos((value - props.min) * degrees.value + rotateRadians) * handScale(value),\n }\n }\n\n function angleToValue (angle: number, insideClick: boolean): number {\n const value = (\n Math.round(angle / degreesPerUnit.value) +\n (insideClick ? roundCount.value : 0)\n ) % count.value + props.min\n\n // Necessary to fix edge case when selecting left part of the value(s) at 12 o'clock\n if (angle < (360 - degreesPerUnit.value / 2)) return value\n\n return insideClick ? props.max - roundCount.value + 1 : props.min\n }\n\n function getTransform (i: number) {\n const { x, y } = getPosition(i)\n return {\n left: `${Math.round(50 + x * 50)}%`,\n top: `${Math.round(50 + y * 50)}%`,\n }\n }\n\n function euclidean (p0: Point, p1: Point) {\n const dx = p1.x - p0.x\n const dy = p1.y - p0.y\n\n return Math.sqrt(dx * dx + dy * dy)\n }\n\n function angle (center: Point, p1: Point) {\n const value = 2 * Math.atan2(p1.y - center.y - euclidean(center, p1), p1.x - center.x)\n return Math.abs(value * 180 / Math.PI)\n }\n\n function setMouseDownValue (value: number) {\n if (valueOnMouseDown.value === null) {\n valueOnMouseDown.value = value\n }\n\n valueOnMouseUp.value = value\n update(value)\n }\n\n function onDragMove (e: MouseEvent | TouchEvent) {\n e.preventDefault()\n if ((!isDragging.value && e.type !== 'click') || !clockRef.value) return\n const { width, top, left } = clockRef.value?.getBoundingClientRect()\n const { width: innerWidth }: DOMRect = innerClockRef.value?.getBoundingClientRect() ?? { width: 0 } as DOMRect\n const { clientX, clientY } = 'touches' in e ? e.touches[0] : e\n const center = { x: width / 2, y: -width / 2 }\n const coords = { x: clientX - left, y: top - clientY }\n const handAngle = Math.round(angle(center, coords) - props.rotate + 360) % 360\n const insideClick = props.double && euclidean(center, coords) < (innerWidth as number + innerWidth * innerRadiusScale.value) / 4\n const checksCount = Math.ceil(15 / degreesPerUnit.value)\n let value\n\n for (let i = 0; i < checksCount; i++) {\n value = angleToValue(handAngle + i * degreesPerUnit.value, insideClick)\n if (isAllowed(value)) return setMouseDownValue(value)\n\n value = angleToValue(handAngle - i * degreesPerUnit.value, insideClick)\n if (isAllowed(value)) return setMouseDownValue(value)\n }\n }\n\n function onMouseDown (e: MouseEvent | TouchEvent) {\n if (props.disabled) return\n\n e.preventDefault()\n\n window.addEventListener('mousemove', onDragMove)\n window.addEventListener('touchmove', onDragMove)\n window.addEventListener('mouseup', onMouseUp)\n window.addEventListener('touchend', onMouseUp)\n valueOnMouseDown.value = null\n valueOnMouseUp.value = null\n isDragging.value = true\n onDragMove(e)\n }\n\n function onMouseUp (e: MouseEvent | TouchEvent) {\n e.stopPropagation()\n window.removeEventListener('mousemove', onDragMove)\n window.removeEventListener('touchmove', onDragMove)\n window.removeEventListener('mouseup', onMouseUp)\n window.removeEventListener('touchend', onMouseUp)\n\n isDragging.value = false\n if (valueOnMouseUp.value !== null && isAllowed(valueOnMouseUp.value)) {\n emit('change', valueOnMouseUp.value)\n }\n }\n\n useRender(() => {\n return (\n <div\n class={[\n {\n 'v-time-picker-clock': true,\n 'v-time-picker-clock--indeterminate': props.modelValue == null,\n 'v-time-picker-clock--readonly': props.readonly,\n },\n ]}\n onMousedown={ onMouseDown }\n onTouchstart={ onMouseDown }\n onWheel={ wheel }\n ref={ clockRef }\n >\n <div class=\"v-time-picker-clock__inner\" ref={ innerClockRef }>\n <div\n class={[\n {\n 'v-time-picker-clock__hand': true,\n 'v-time-picker-clock__hand--inner': isInner(props.modelValue as number),\n },\n textColorClasses.value,\n ]}\n style={[\n {\n transform: `rotate(${props.rotate + degreesPerUnit.value * (displayedValue.value - props.min)}deg) scaleY(${handScale(displayedValue.value)})`,\n },\n textColorStyles.value,\n ]}\n />\n\n {\n genChildren.value.map(value => {\n const isActive = value === displayedValue.value\n\n return (\n <div\n class={[\n {\n 'v-time-picker-clock__item': true,\n 'v-time-picker-clock__item--active': isActive,\n 'v-time-picker-clock__item--disabled': props.disabled || !isAllowed(value),\n },\n isActive && backgroundColorClasses.value,\n ]}\n style={[\n getTransform(value),\n isActive && backgroundColorStyles.value,\n ]}\n >\n <span>{ props.format(value) }</span>\n </div>\n )\n })\n }\n </div>\n </div>\n )\n })\n },\n})\n\nexport type VTimePickerClock = InstanceType<typeof VTimePickerClock>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,kBAAkB,EAAEC,YAAY,sCAEzC;AACA,SAASC,QAAQ,EAAEC,GAAG,EAAEC,KAAK,QAAQ,KAAK;AAAA,SACjCC,QAAQ,EAAEC,gBAAgB,EAAEC,YAAY,EAAEC,SAAS,+BAE5D;AAOA,OAAO,MAAMC,yBAAyB,GAAGF,YAAY,CAAC;EACpDG,aAAa,EAAEC,QAAgD;EAC/DC,IAAI,EAAEC,OAAO;EACbC,KAAK,EAAEC,MAAM;EACbC,QAAQ,EAAEH,OAAO;EACjBI,cAAc,EAAE,IAAI;EACpBC,MAAM,EAAEL,OAAO;EACfM,MAAM,EAAE;IACNC,IAAI,EAAET,QAAQ;IACdU,OAAO,EAAGC,GAAoB,IAAKA;EACrC,CAAC;EACDC,GAAG,EAAE;IACHH,IAAI,EAAEI,MAAM;IACZC,QAAQ,EAAE;EACZ,CAAC;EACDC,GAAG,EAAE;IACHN,IAAI,EAAEI,MAAM;IACZC,QAAQ,EAAE;EACZ,CAAC;EACDE,UAAU,EAAEd,OAAO;EACnBe,QAAQ,EAAEf,OAAO;EACjBgB,MAAM,EAAE;IACNT,IAAI,EAAEI,MAAM;IACZH,OAAO,EAAE;EACX,CAAC;EACDS,IAAI,EAAE;IACJV,IAAI,EAAEI,MAAM;IACZH,OAAO,EAAE;EACX,CAAC;EACDU,UAAU,EAAE;IACVX,IAAI,EAAEI;EACR;AACF,CAAC,EAAE,kBAAkB,CAAC;AAEtB,OAAO,MAAMQ,gBAAgB,GAAG1B,gBAAgB,CAAC,CAAC,CAAC;EACjD2B,IAAI,EAAE,kBAAkB;EAExBC,KAAK,EAAEzB,yBAAyB,CAAC,CAAC;EAElC0B,KAAK,EAAE;IACLC,MAAM,EAAGd,GAAW,IAAK,IAAI;IAC7Be,KAAK,EAAGf,GAAW,IAAK;EAC1B,CAAC;EAEDgB,KAAKA,CAAEJ,KAAK,EAAAK,IAAA,EAAY;IAAA,IAAV;MAAEC;IAAK,CAAC,GAAAD,IAAA;IACpB,MAAME,QAAQ,GAAGtC,GAAG,CAAqB,IAAI,CAAC;IAC9C,MAAMuC,aAAa,GAAGvC,GAAG,CAAqB,IAAI,CAAC;IACnD,MAAMwC,UAAU,GAAGxC,GAAG,CAAqByC,SAAS,CAAC;IACrD,MAAMC,UAAU,GAAG1C,GAAG,CAAC,KAAK,CAAC;IAC7B,MAAM2C,gBAAgB,GAAG3C,GAAG,CAAC,IAAqB,CAAC;IACnD,MAAM4C,cAAc,GAAG5C,GAAG,CAAC,IAAqB,CAAC;IACjD,MAAM6C,mBAAmB,GAAG3C,QAAQ,CAAE4C,KAAa,IAAKT,IAAI,CAAC,QAAQ,EAAES,KAAK,CAAC,EAAE,GAAG,CAAC;IAEnF,MAAM;MAAEC,gBAAgB;MAAEC;IAAgB,CAAC,GAAGlD,YAAY,CAAC,MAAMiC,KAAK,CAACpB,KAAK,CAAC;IAC7E,MAAM;MAAEsC,sBAAsB;MAAEC;IAAsB,CAAC,GAAGrD,kBAAkB,CAAC,MAAMkC,KAAK,CAACpB,KAAK,CAAC;IAE/F,MAAMwC,KAAK,GAAGpD,QAAQ,CAAC,MAAMgC,KAAK,CAACX,GAAG,GAAGW,KAAK,CAACR,GAAG,GAAG,CAAC,CAAC;IACvD,MAAM6B,UAAU,GAAGrD,QAAQ,CAAC,MAAMgC,KAAK,CAAChB,MAAM,GAAIoC,KAAK,CAACL,KAAK,GAAG,CAAC,GAAIK,KAAK,CAACL,KAAK,CAAC;IACjF,MAAMO,cAAc,GAAGtD,QAAQ,CAAC,MAAM,GAAG,GAAGqD,UAAU,CAACN,KAAK,CAAC;IAC7D,MAAMQ,OAAO,GAAGvD,QAAQ,CAAC,MAAMsD,cAAc,CAACP,KAAK,GAAGS,IAAI,CAACC,EAAE,GAAG,GAAG,CAAC;IACpE,MAAM1C,cAAc,GAAGf,QAAQ,CAAC,MAAMgC,KAAK,CAACH,UAAU,IAAI,IAAI,GAAGG,KAAK,CAACR,GAAG,GAAGQ,KAAK,CAACH,UAAU,CAAC;IAC9F,MAAM6B,gBAAgB,GAAG1D,QAAQ,CAAC,MAAM,IAAI,CAAC;IAE7C,MAAM2D,WAAW,GAAG3D,QAAQ,CAAC,MAAM;MACjC,MAAM4D,QAAQ,GAAG,EAAE;MACnB,KAAK,IAAIb,KAAK,GAAGf,KAAK,CAACR,GAAG,EAAEuB,KAAK,IAAIf,KAAK,CAACX,GAAG,EAAE0B,KAAK,GAAGA,KAAK,GAAGf,KAAK,CAACJ,IAAI,EAAE;QAC1EgC,QAAQ,CAACC,IAAI,CAACd,KAAK,CAAC;MACtB;MACA,OAAOa,QAAQ;IACjB,CAAC,CAAC;IAEF1D,KAAK,CAAC,MAAM8B,KAAK,CAACH,UAAU,EAAET,GAAG,IAAI;MACnCqB,UAAU,CAACM,KAAK,GAAG3B,GAAG;IACxB,CAAC,CAAC;IAEF,SAAS0C,MAAMA,CAAEf,KAAa,EAAE;MAC9B,IAAIN,UAAU,CAACM,KAAK,KAAKA,KAAK,EAAE;QAC9BN,UAAU,CAACM,KAAK,GAAGA,KAAK;MAC1B;MACAT,IAAI,CAAC,OAAO,EAAES,KAAK,CAAC;IACtB;IAEA,SAASgB,SAASA,CAAEhB,KAAa,EAAE;MACjC,OAAO,CAACf,KAAK,CAACxB,aAAa,IAAIwB,KAAK,CAACxB,aAAa,CAACuC,KAAK,CAAC;IAC3D;IAEA,SAASiB,KAAKA,CAAEC,CAAa,EAAE;MAC7B,IAAI,CAACjC,KAAK,CAACP,UAAU,IAAIO,KAAK,CAAClB,QAAQ,EAAE;MAEzCmD,CAAC,CAACC,cAAc,CAAC,CAAC;MAElB,MAAMC,KAAK,GAAGX,IAAI,CAACY,IAAI,CAAC,CAACH,CAAC,CAACI,MAAM,IAAI,CAAC,CAAC;MACvC,IAAItB,KAAK,GAAGhC,cAAc,CAACgC,KAAK;MAChC,GAAG;QACDA,KAAK,GAAGA,KAAK,GAAGoB,KAAK;QACrBpB,KAAK,GAAG,CAACA,KAAK,GAAGf,KAAK,CAACR,GAAG,GAAG4B,KAAK,CAACL,KAAK,IAAIK,KAAK,CAACL,KAAK,GAAGf,KAAK,CAACR,GAAG;MACrE,CAAC,QAAQ,CAACuC,SAAS,CAAChB,KAAK,CAAC,IAAIA,KAAK,KAAKhC,cAAc,CAACgC,KAAK;MAE5D,IAAIA,KAAK,KAAKf,KAAK,CAACjB,cAAc,EAAE;QAClC+C,MAAM,CAACf,KAAK,CAAC;MACf;MAEAD,mBAAmB,CAACC,KAAK,CAAC;IAC5B;IAEA,SAASuB,OAAOA,CAAEvB,KAAa,EAAE;MAC/B,OAAOf,KAAK,CAAChB,MAAM,IAAK+B,KAAK,GAAGf,KAAK,CAACR,GAAG,IAAI6B,UAAU,CAACN,KAAM;IAChE;IAEA,SAASwB,SAASA,CAAExB,KAAa,EAAE;MACjC,OAAOuB,OAAO,CAACvB,KAAK,CAAC,GAAGW,gBAAgB,CAACX,KAAK,GAAG,CAAC;IACpD;IAEA,SAASyB,WAAWA,CAAEzB,KAAa,EAAE;MACnC,MAAM0B,aAAa,GAAGzC,KAAK,CAACL,MAAM,GAAG6B,IAAI,CAACC,EAAE,GAAG,GAAG;MAClD,OAAO;QACLiB,CAAC,EAAElB,IAAI,CAACmB,GAAG,CAAC,CAAC5B,KAAK,GAAGf,KAAK,CAACR,GAAG,IAAI+B,OAAO,CAACR,KAAK,GAAG0B,aAAa,CAAC,GAAGF,SAAS,CAACxB,KAAK,CAAC;QACnF6B,CAAC,EAAE,CAACpB,IAAI,CAACqB,GAAG,CAAC,CAAC9B,KAAK,GAAGf,KAAK,CAACR,GAAG,IAAI+B,OAAO,CAACR,KAAK,GAAG0B,aAAa,CAAC,GAAGF,SAAS,CAACxB,KAAK;MACrF,CAAC;IACH;IAEA,SAAS+B,YAAYA,CAAEC,KAAa,EAAEC,WAAoB,EAAU;MAClE,MAAMjC,KAAK,GAAG,CACZS,IAAI,CAACyB,KAAK,CAACF,KAAK,GAAGzB,cAAc,CAACP,KAAK,CAAC,IACvCiC,WAAW,GAAG3B,UAAU,CAACN,KAAK,GAAG,CAAC,CAAC,IAClCK,KAAK,CAACL,KAAK,GAAGf,KAAK,CAACR,GAAG;;MAE3B;MACA,IAAIuD,KAAK,GAAI,GAAG,GAAGzB,cAAc,CAACP,KAAK,GAAG,CAAE,EAAE,OAAOA,KAAK;MAE1D,OAAOiC,WAAW,GAAGhD,KAAK,CAACX,GAAG,GAAGgC,UAAU,CAACN,KAAK,GAAG,CAAC,GAAGf,KAAK,CAACR,GAAG;IACnE;IAEA,SAAS0D,YAAYA,CAAEC,CAAS,EAAE;MAChC,MAAM;QAAET,CAAC;QAAEE;MAAE,CAAC,GAAGJ,WAAW,CAACW,CAAC,CAAC;MAC/B,OAAO;QACLC,IAAI,EAAE,GAAG5B,IAAI,CAACyB,KAAK,CAAC,EAAE,GAAGP,CAAC,GAAG,EAAE,CAAC,GAAG;QACnCW,GAAG,EAAE,GAAG7B,IAAI,CAACyB,KAAK,CAAC,EAAE,GAAGL,CAAC,GAAG,EAAE,CAAC;MACjC,CAAC;IACH;IAEA,SAASU,SAASA,CAAEC,EAAS,EAAEC,EAAS,EAAE;MACxC,MAAMC,EAAE,GAAGD,EAAE,CAACd,CAAC,GAAGa,EAAE,CAACb,CAAC;MACtB,MAAMgB,EAAE,GAAGF,EAAE,CAACZ,CAAC,GAAGW,EAAE,CAACX,CAAC;MAEtB,OAAOpB,IAAI,CAACmC,IAAI,CAACF,EAAE,GAAGA,EAAE,GAAGC,EAAE,GAAGA,EAAE,CAAC;IACrC;IAEA,SAASX,KAAKA,CAAEa,MAAa,EAAEJ,EAAS,EAAE;MACxC,MAAMzC,KAAK,GAAG,CAAC,GAAGS,IAAI,CAACqC,KAAK,CAACL,EAAE,CAACZ,CAAC,GAAGgB,MAAM,CAAChB,CAAC,GAAGU,SAAS,CAACM,MAAM,EAAEJ,EAAE,CAAC,EAAEA,EAAE,CAACd,CAAC,GAAGkB,MAAM,CAAClB,CAAC,CAAC;MACtF,OAAOlB,IAAI,CAACsC,GAAG,CAAC/C,KAAK,GAAG,GAAG,GAAGS,IAAI,CAACC,EAAE,CAAC;IACxC;IAEA,SAASsC,iBAAiBA,CAAEhD,KAAa,EAAE;MACzC,IAAIH,gBAAgB,CAACG,KAAK,KAAK,IAAI,EAAE;QACnCH,gBAAgB,CAACG,KAAK,GAAGA,KAAK;MAChC;MAEAF,cAAc,CAACE,KAAK,GAAGA,KAAK;MAC5Be,MAAM,CAACf,KAAK,CAAC;IACf;IAEA,SAASiD,UAAUA,CAAE/B,CAA0B,EAAE;MAC/CA,CAAC,CAACC,cAAc,CAAC,CAAC;MAClB,IAAK,CAACvB,UAAU,CAACI,KAAK,IAAIkB,CAAC,CAAC/C,IAAI,KAAK,OAAO,IAAK,CAACqB,QAAQ,CAACQ,KAAK,EAAE;MAClE,MAAM;QAAEkD,KAAK;QAAEZ,GAAG;QAAED;MAAK,CAAC,GAAG7C,QAAQ,CAACQ,KAAK,EAAEmD,qBAAqB,CAAC,CAAC;MACpE,MAAM;QAAED,KAAK,EAAEE;MAAoB,CAAC,GAAG3D,aAAa,CAACO,KAAK,EAAEmD,qBAAqB,CAAC,CAAC,IAAI;QAAED,KAAK,EAAE;MAAE,CAAY;MAC9G,MAAM;QAAEG,OAAO;QAAEC;MAAQ,CAAC,GAAG,SAAS,IAAIpC,CAAC,GAAGA,CAAC,CAACqC,OAAO,CAAC,CAAC,CAAC,GAAGrC,CAAC;MAC9D,MAAM2B,MAAM,GAAG;QAAElB,CAAC,EAAEuB,KAAK,GAAG,CAAC;QAAErB,CAAC,EAAE,CAACqB,KAAK,GAAG;MAAE,CAAC;MAC9C,MAAMM,MAAM,GAAG;QAAE7B,CAAC,EAAE0B,OAAO,GAAGhB,IAAI;QAAER,CAAC,EAAES,GAAG,GAAGgB;MAAQ,CAAC;MACtD,MAAMG,SAAS,GAAGhD,IAAI,CAACyB,KAAK,CAACF,KAAK,CAACa,MAAM,EAAEW,MAAM,CAAC,GAAGvE,KAAK,CAACL,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG;MAC9E,MAAMqD,WAAW,GAAGhD,KAAK,CAAChB,MAAM,IAAIsE,SAAS,CAACM,MAAM,EAAEW,MAAM,CAAC,GAAG,CAACJ,UAAU,GAAaA,UAAU,GAAGzC,gBAAgB,CAACX,KAAK,IAAI,CAAC;MAChI,MAAM0D,WAAW,GAAGjD,IAAI,CAACkD,IAAI,CAAC,EAAE,GAAGpD,cAAc,CAACP,KAAK,CAAC;MACxD,IAAIA,KAAK;MAET,KAAK,IAAIoC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGsB,WAAW,EAAEtB,CAAC,EAAE,EAAE;QACpCpC,KAAK,GAAG+B,YAAY,CAAC0B,SAAS,GAAGrB,CAAC,GAAG7B,cAAc,CAACP,KAAK,EAAEiC,WAAW,CAAC;QACvE,IAAIjB,SAAS,CAAChB,KAAK,CAAC,EAAE,OAAOgD,iBAAiB,CAAChD,KAAK,CAAC;QAErDA,KAAK,GAAG+B,YAAY,CAAC0B,SAAS,GAAGrB,CAAC,GAAG7B,cAAc,CAACP,KAAK,EAAEiC,WAAW,CAAC;QACvE,IAAIjB,SAAS,CAAChB,KAAK,CAAC,EAAE,OAAOgD,iBAAiB,CAAChD,KAAK,CAAC;MACvD;IACF;IAEA,SAAS4D,WAAWA,CAAE1C,CAA0B,EAAE;MAChD,IAAIjC,KAAK,CAAClB,QAAQ,EAAE;MAEpBmD,CAAC,CAACC,cAAc,CAAC,CAAC;MAElB0C,MAAM,CAACC,gBAAgB,CAAC,WAAW,EAAEb,UAAU,CAAC;MAChDY,MAAM,CAACC,gBAAgB,CAAC,WAAW,EAAEb,UAAU,CAAC;MAChDY,MAAM,CAACC,gBAAgB,CAAC,SAAS,EAAEC,SAAS,CAAC;MAC7CF,MAAM,CAACC,gBAAgB,CAAC,UAAU,EAAEC,SAAS,CAAC;MAC9ClE,gBAAgB,CAACG,KAAK,GAAG,IAAI;MAC7BF,cAAc,CAACE,KAAK,GAAG,IAAI;MAC3BJ,UAAU,CAACI,KAAK,GAAG,IAAI;MACvBiD,UAAU,CAAC/B,CAAC,CAAC;IACf;IAEA,SAAS6C,SAASA,CAAE7C,CAA0B,EAAE;MAC9CA,CAAC,CAAC8C,eAAe,CAAC,CAAC;MACnBH,MAAM,CAACI,mBAAmB,CAAC,WAAW,EAAEhB,UAAU,CAAC;MACnDY,MAAM,CAACI,mBAAmB,CAAC,WAAW,EAAEhB,UAAU,CAAC;MACnDY,MAAM,CAACI,mBAAmB,CAAC,SAAS,EAAEF,SAAS,CAAC;MAChDF,MAAM,CAACI,mBAAmB,CAAC,UAAU,EAAEF,SAAS,CAAC;MAEjDnE,UAAU,CAACI,KAAK,GAAG,KAAK;MACxB,IAAIF,cAAc,CAACE,KAAK,KAAK,IAAI,IAAIgB,SAAS,CAAClB,cAAc,CAACE,KAAK,CAAC,EAAE;QACpET,IAAI,CAAC,QAAQ,EAAEO,cAAc,CAACE,KAAK,CAAC;MACtC;IACF;IAEAzC,SAAS,CAAC,MAAM;MACd,OAAA2G,mBAAA;QAAA,SAAAC,eAAA,CAEW,CACL;UACE,qBAAqB,EAAE,IAAI;UAC3B,oCAAoC,EAAElF,KAAK,CAACH,UAAU,IAAI,IAAI;UAC9D,+BAA+B,EAAEG,KAAK,CAACN;QACzC,CAAC,CACF;QAAA,eACaiF,WAAW;QAAA,gBACVA,WAAW;QAAA,WAChB3C,KAAK;QAAA,OACTzB;MAAQ,IAAA0E,mBAAA;QAAA;QAAA,OAEgCzE;MAAa,IAAAyE,mBAAA;QAAA,SAAAC,eAAA,CAEhD,CACL;UACE,2BAA2B,EAAE,IAAI;UACjC,kCAAkC,EAAE5C,OAAO,CAACtC,KAAK,CAACH,UAAoB;QACxE,CAAC,EACDmB,gBAAgB,CAACD,KAAK,CACvB;QAAA,SAAAoE,eAAA,CACM,CACL;UACEC,SAAS,EAAE,UAAUpF,KAAK,CAACL,MAAM,GAAG2B,cAAc,CAACP,KAAK,IAAIhC,cAAc,CAACgC,KAAK,GAAGf,KAAK,CAACR,GAAG,CAAC,eAAe+C,SAAS,CAACxD,cAAc,CAACgC,KAAK,CAAC;QAC7I,CAAC,EACDE,eAAe,CAACF,KAAK,CACtB;MAAA,UAIDY,WAAW,CAACZ,KAAK,CAACsE,GAAG,CAACtE,KAAK,IAAI;QAC7B,MAAMuE,QAAQ,GAAGvE,KAAK,KAAKhC,cAAc,CAACgC,KAAK;QAE/C,OAAAkE,mBAAA;UAAA,SAAAC,eAAA,CAEW,CACL;YACE,2BAA2B,EAAE,IAAI;YACjC,mCAAmC,EAAEI,QAAQ;YAC7C,qCAAqC,EAAEtF,KAAK,CAAClB,QAAQ,IAAI,CAACiD,SAAS,CAAChB,KAAK;UAC3E,CAAC,EACDuE,QAAQ,IAAIpE,sBAAsB,CAACH,KAAK,CACzC;UAAA,SAAAoE,eAAA,CACM,CACLjC,YAAY,CAACnC,KAAK,CAAC,EACnBuE,QAAQ,IAAInE,qBAAqB,CAACJ,KAAK,CACxC;QAAA,IAAAkE,mBAAA,gBAEOjF,KAAK,CAACf,MAAM,CAAC8B,KAAK,CAAC;MAGjC,CAAC,CAAC;IAKZ,CAAC,CAAC;EACJ;AACF,CAAC,CAAC","ignoreList":[]}
@@ -126,4 +126,7 @@ export type Primitive = string | number | boolean | symbol | bigint;
126
126
  export declare function isPrimitive(value: unknown): value is Primitive;
127
127
  export declare function extractNumber(text: string, decimalDigitsLimit: number | null): string;
128
128
  export declare function camelizeProps<T extends Record<string, unknown>>(props: T | null): T;
129
+ export declare function onlyDefinedProps(props: Record<string, any>): {
130
+ [k: string]: any;
131
+ };
129
132
 
@@ -555,4 +555,11 @@ export function camelizeProps(props) {
555
555
  }
556
556
  return out;
557
557
  }
558
+ export function onlyDefinedProps(props) {
559
+ const booleanAttributes = ['checked', 'disabled'];
560
+ return Object.fromEntries(Object.entries(props).filter(_ref => {
561
+ let [key, v] = _ref;
562
+ return booleanAttributes.includes(key) ? !!v : v !== undefined;
563
+ }));
564
+ }
558
565
  //# sourceMappingURL=helpers.js.map