vuetify 3.7.14 → 3.7.16

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 (198) hide show
  1. package/dist/json/attributes.json +3550 -3550
  2. package/dist/json/importMap-labs.json +28 -28
  3. package/dist/json/importMap.json +162 -162
  4. package/dist/json/tags.json +3 -3
  5. package/dist/json/web-types.json +6475 -6452
  6. package/dist/vuetify-labs.css +5395 -5391
  7. package/dist/vuetify-labs.d.ts +453 -215
  8. package/dist/vuetify-labs.esm.js +254 -151
  9. package/dist/vuetify-labs.esm.js.map +1 -1
  10. package/dist/vuetify-labs.js +253 -150
  11. package/dist/vuetify-labs.min.css +2 -2
  12. package/dist/vuetify.css +3635 -3635
  13. package/dist/vuetify.d.ts +389 -209
  14. package/dist/vuetify.esm.js +105 -70
  15. package/dist/vuetify.esm.js.map +1 -1
  16. package/dist/vuetify.js +104 -69
  17. package/dist/vuetify.js.map +1 -1
  18. package/dist/vuetify.min.css +2 -2
  19. package/dist/vuetify.min.js +229 -227
  20. package/dist/vuetify.min.js.map +1 -1
  21. package/lib/components/VAppBar/index.d.mts +15 -6
  22. package/lib/components/VAutocomplete/index.d.mts +23 -8
  23. package/lib/components/VBadge/VBadge.mjs +2 -2
  24. package/lib/components/VBadge/VBadge.mjs.map +1 -1
  25. package/lib/components/VBtn/VBtn.mjs +6 -3
  26. package/lib/components/VBtn/VBtn.mjs.map +1 -1
  27. package/lib/components/VBtn/index.d.mts +15 -6
  28. package/lib/components/VCard/VCard.mjs +12 -3
  29. package/lib/components/VCard/VCard.mjs.map +1 -1
  30. package/lib/components/VCard/VCardItem.mjs +11 -4
  31. package/lib/components/VCard/VCardItem.mjs.map +1 -1
  32. package/lib/components/VCard/index.d.mts +75 -30
  33. package/lib/components/VCarousel/VCarousel.mjs +1 -1
  34. package/lib/components/VCarousel/VCarousel.mjs.map +1 -1
  35. package/lib/components/VChip/VChip.mjs +6 -3
  36. package/lib/components/VChip/VChip.mjs.map +1 -1
  37. package/lib/components/VChip/index.d.mts +15 -6
  38. package/lib/components/VCombobox/index.d.mts +23 -8
  39. package/lib/components/VDataIterator/index.d.mts +2 -2
  40. package/lib/components/VDataTable/composables/headers.mjs +3 -1
  41. package/lib/components/VDataTable/composables/headers.mjs.map +1 -1
  42. package/lib/components/VDataTable/composables/paginate.mjs +2 -2
  43. package/lib/components/VDataTable/composables/paginate.mjs.map +1 -1
  44. package/lib/components/VDataTable/index.d.mts +34 -34
  45. package/lib/components/VDataTable/types.mjs.map +1 -1
  46. package/lib/components/VDatePicker/VDatePickerMonth.mjs +12 -21
  47. package/lib/components/VDatePicker/VDatePickerMonth.mjs.map +1 -1
  48. package/lib/components/VDatePicker/index.d.mts +3 -3
  49. package/lib/components/VDialog/index.d.mts +21 -6
  50. package/lib/components/VFab/index.d.mts +15 -6
  51. package/lib/components/VList/VListItem.mjs +13 -5
  52. package/lib/components/VList/VListItem.mjs.map +1 -1
  53. package/lib/components/VList/index.d.mts +32 -14
  54. package/lib/components/VMenu/index.d.mts +21 -6
  55. package/lib/components/VOtpInput/VOtpInput.mjs +1 -1
  56. package/lib/components/VOtpInput/VOtpInput.mjs.map +1 -1
  57. package/lib/components/VOverlay/VOverlay.mjs +10 -1
  58. package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
  59. package/lib/components/VOverlay/index.d.mts +6 -0
  60. package/lib/components/VPagination/VPagination.mjs +3 -3
  61. package/lib/components/VPagination/VPagination.mjs.map +1 -1
  62. package/lib/components/VParallax/VParallax.mjs +1 -1
  63. package/lib/components/VParallax/VParallax.mjs.map +1 -1
  64. package/lib/components/VRating/VRating.mjs +1 -1
  65. package/lib/components/VRating/VRating.mjs.map +1 -1
  66. package/lib/components/VSelect/index.d.mts +23 -8
  67. package/lib/components/VSlider/slider.mjs +2 -1
  68. package/lib/components/VSlider/slider.mjs.map +1 -1
  69. package/lib/components/VSnackbar/index.d.mts +21 -6
  70. package/lib/components/VSparkline/VBarline.mjs +1 -1
  71. package/lib/components/VSparkline/VBarline.mjs.map +1 -1
  72. package/lib/components/VTabs/index.d.mts +39 -24
  73. package/lib/components/VTextarea/VTextarea.mjs +2 -2
  74. package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
  75. package/lib/components/VTooltip/index.d.mts +21 -6
  76. package/lib/components/index.d.mts +333 -153
  77. package/lib/composables/stack.mjs +2 -2
  78. package/lib/composables/stack.mjs.map +1 -1
  79. package/lib/composables/validation.mjs +2 -2
  80. package/lib/composables/validation.mjs.map +1 -1
  81. package/lib/entry-bundler.mjs +1 -1
  82. package/lib/framework.mjs +1 -1
  83. package/lib/index.d.mts +56 -56
  84. package/lib/labs/VDateInput/VDateInput.mjs +5 -4
  85. package/lib/labs/VDateInput/VDateInput.mjs.map +1 -1
  86. package/lib/labs/VDateInput/index.d.mts +10 -10
  87. package/lib/labs/VFileUpload/VFileUpload.css +5 -1
  88. package/lib/labs/VFileUpload/VFileUpload.mjs +3 -2
  89. package/lib/labs/VFileUpload/VFileUpload.mjs.map +1 -1
  90. package/lib/labs/VFileUpload/VFileUpload.sass +4 -0
  91. package/lib/labs/VFileUpload/_variables.scss +1 -1
  92. package/lib/labs/VFileUpload/index.d.mts +32 -14
  93. package/lib/labs/VNumberInput/VNumberInput.mjs +60 -24
  94. package/lib/labs/VNumberInput/VNumberInput.mjs.map +1 -1
  95. package/lib/labs/VNumberInput/hold.mjs +31 -0
  96. package/lib/labs/VNumberInput/hold.mjs.map +1 -0
  97. package/lib/labs/VNumberInput/index.d.mts +1 -7
  98. package/lib/labs/VSnackbarQueue/index.d.mts +21 -6
  99. package/lib/labs/VTimePicker/VTimePicker.mjs +30 -31
  100. package/lib/labs/VTimePicker/VTimePicker.mjs.map +1 -1
  101. package/lib/labs/VTimePicker/VTimePickerControls.mjs +14 -13
  102. package/lib/labs/VTimePicker/VTimePickerControls.mjs.map +1 -1
  103. package/lib/labs/VTimePicker/index.d.mts +35 -13
  104. package/lib/labs/VTimePicker/shared.mjs +2 -0
  105. package/lib/labs/VTimePicker/shared.mjs.map +1 -0
  106. package/lib/labs/VTreeview/VTreeviewItem.mjs +11 -4
  107. package/lib/labs/VTreeview/VTreeviewItem.mjs.map +1 -1
  108. package/lib/labs/VTreeview/index.d.mts +46 -22
  109. package/lib/labs/components.d.mts +143 -70
  110. package/lib/locale/adapters/vuetify.mjs +1 -1
  111. package/lib/locale/adapters/vuetify.mjs.map +1 -1
  112. package/lib/locale/af.mjs +42 -42
  113. package/lib/locale/af.mjs.map +1 -1
  114. package/lib/locale/az.mjs +7 -7
  115. package/lib/locale/az.mjs.map +1 -1
  116. package/lib/locale/bg.mjs +7 -7
  117. package/lib/locale/bg.mjs.map +1 -1
  118. package/lib/locale/ca.mjs +25 -25
  119. package/lib/locale/ca.mjs.map +1 -1
  120. package/lib/locale/ckb.mjs +29 -29
  121. package/lib/locale/ckb.mjs.map +1 -1
  122. package/lib/locale/cs.mjs +13 -13
  123. package/lib/locale/cs.mjs.map +1 -1
  124. package/lib/locale/da.mjs +22 -22
  125. package/lib/locale/da.mjs.map +1 -1
  126. package/lib/locale/el.mjs +41 -41
  127. package/lib/locale/el.mjs.map +1 -1
  128. package/lib/locale/es.mjs +26 -26
  129. package/lib/locale/es.mjs.map +1 -1
  130. package/lib/locale/et.mjs +29 -29
  131. package/lib/locale/et.mjs.map +1 -1
  132. package/lib/locale/fa.mjs +5 -5
  133. package/lib/locale/fa.mjs.map +1 -1
  134. package/lib/locale/fi.mjs +22 -22
  135. package/lib/locale/fi.mjs.map +1 -1
  136. package/lib/locale/fr.mjs +6 -6
  137. package/lib/locale/fr.mjs.map +1 -1
  138. package/lib/locale/he.mjs +29 -29
  139. package/lib/locale/he.mjs.map +1 -1
  140. package/lib/locale/hr.mjs +28 -28
  141. package/lib/locale/hr.mjs.map +1 -1
  142. package/lib/locale/hu.mjs +10 -10
  143. package/lib/locale/hu.mjs.map +1 -1
  144. package/lib/locale/id.mjs +30 -30
  145. package/lib/locale/id.mjs.map +1 -1
  146. package/lib/locale/it.mjs +7 -7
  147. package/lib/locale/it.mjs.map +1 -1
  148. package/lib/locale/ja.mjs +9 -9
  149. package/lib/locale/ja.mjs.map +1 -1
  150. package/lib/locale/km.mjs +6 -6
  151. package/lib/locale/km.mjs.map +1 -1
  152. package/lib/locale/ko.mjs +27 -27
  153. package/lib/locale/ko.mjs.map +1 -1
  154. package/lib/locale/lt.mjs +5 -5
  155. package/lib/locale/lt.mjs.map +1 -1
  156. package/lib/locale/lv.mjs +33 -33
  157. package/lib/locale/lv.mjs.map +1 -1
  158. package/lib/locale/nl.mjs +10 -10
  159. package/lib/locale/nl.mjs.map +1 -1
  160. package/lib/locale/no.mjs +11 -11
  161. package/lib/locale/no.mjs.map +1 -1
  162. package/lib/locale/pl.mjs +7 -7
  163. package/lib/locale/pl.mjs.map +1 -1
  164. package/lib/locale/pt.mjs +11 -11
  165. package/lib/locale/pt.mjs.map +1 -1
  166. package/lib/locale/ro.mjs +9 -9
  167. package/lib/locale/ro.mjs.map +1 -1
  168. package/lib/locale/ru.mjs +6 -6
  169. package/lib/locale/ru.mjs.map +1 -1
  170. package/lib/locale/sk.mjs +5 -5
  171. package/lib/locale/sk.mjs.map +1 -1
  172. package/lib/locale/sl.mjs +4 -4
  173. package/lib/locale/sl.mjs.map +1 -1
  174. package/lib/locale/sr-Cyrl.mjs +30 -30
  175. package/lib/locale/sr-Cyrl.mjs.map +1 -1
  176. package/lib/locale/sr-Latn.mjs +28 -28
  177. package/lib/locale/sr-Latn.mjs.map +1 -1
  178. package/lib/locale/sv.mjs +17 -17
  179. package/lib/locale/sv.mjs.map +1 -1
  180. package/lib/locale/th.mjs +30 -30
  181. package/lib/locale/th.mjs.map +1 -1
  182. package/lib/locale/tr.mjs +31 -31
  183. package/lib/locale/tr.mjs.map +1 -1
  184. package/lib/locale/uk.mjs +29 -29
  185. package/lib/locale/uk.mjs.map +1 -1
  186. package/lib/locale/vi.mjs +28 -28
  187. package/lib/locale/vi.mjs.map +1 -1
  188. package/lib/locale/zh-Hans.mjs +31 -31
  189. package/lib/locale/zh-Hans.mjs.map +1 -1
  190. package/lib/locale/zh-Hant.mjs +31 -31
  191. package/lib/locale/zh-Hant.mjs.map +1 -1
  192. package/lib/util/animation.mjs +8 -8
  193. package/lib/util/animation.mjs.map +1 -1
  194. package/lib/util/helpers.mjs +6 -4
  195. package/lib/util/helpers.mjs.map +1 -1
  196. package/package.json +7 -2
  197. package/lib/labs/VTimePicker/SelectingTimes.mjs +0 -10
  198. package/lib/labs/VTimePicker/SelectingTimes.mjs.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hold.mjs","names":["onScopeDispose","HOLD_REPEAT","HOLD_DELAY","useHold","_ref","toggleUpDown","timeout","interval","holdStop","holdStart","value","tick","window","setTimeout","setInterval","clearTimeout","clearInterval"],"sources":["../../../src/labs/VNumberInput/hold.ts"],"sourcesContent":["// Utilities\nimport { onScopeDispose } from 'vue'\n\nconst HOLD_REPEAT = 50\nconst HOLD_DELAY = 500\n\nexport function useHold ({ toggleUpDown }: { toggleUpDown: (increment: boolean) => void }) {\n let timeout = -1\n let interval = -1\n\n onScopeDispose(holdStop)\n\n function holdStart (value: 'up' | 'down') {\n holdStop()\n tick(value)\n timeout = window.setTimeout(() => {\n interval = window.setInterval(() => tick(value), HOLD_REPEAT)\n }, HOLD_DELAY)\n }\n\n function holdStop () {\n window.clearTimeout(timeout)\n window.clearInterval(interval)\n }\n\n function tick (value: 'up' | 'down') {\n toggleUpDown(value === 'up')\n }\n\n return { holdStart, holdStop }\n}\n"],"mappings":"AAAA;AACA,SAASA,cAAc,QAAQ,KAAK;AAEpC,MAAMC,WAAW,GAAG,EAAE;AACtB,MAAMC,UAAU,GAAG,GAAG;AAEtB,OAAO,SAASC,OAAOA,CAAAC,IAAA,EAAoE;EAAA,IAAlE;IAAEC;EAA6D,CAAC,GAAAD,IAAA;EACvF,IAAIE,OAAO,GAAG,CAAC,CAAC;EAChB,IAAIC,QAAQ,GAAG,CAAC,CAAC;EAEjBP,cAAc,CAACQ,QAAQ,CAAC;EAExB,SAASC,SAASA,CAAEC,KAAoB,EAAE;IACxCF,QAAQ,CAAC,CAAC;IACVG,IAAI,CAACD,KAAK,CAAC;IACXJ,OAAO,GAAGM,MAAM,CAACC,UAAU,CAAC,MAAM;MAChCN,QAAQ,GAAGK,MAAM,CAACE,WAAW,CAAC,MAAMH,IAAI,CAACD,KAAK,CAAC,EAAET,WAAW,CAAC;IAC/D,CAAC,EAAEC,UAAU,CAAC;EAChB;EAEA,SAASM,QAAQA,CAAA,EAAI;IACnBI,MAAM,CAACG,YAAY,CAACT,OAAO,CAAC;IAC5BM,MAAM,CAACI,aAAa,CAACT,QAAQ,CAAC;EAChC;EAEA,SAASI,IAAIA,CAAED,KAAoB,EAAE;IACnCL,YAAY,CAACK,KAAK,KAAK,IAAI,CAAC;EAC9B;EAEA,OAAO;IAAED,SAAS;IAAED;EAAS,CAAC;AAChC","ignoreList":[]}
@@ -124,7 +124,7 @@ type VFieldSlots = {
124
124
  };
125
125
 
126
126
  type ControlSlot = {
127
- click: (e: MouseEvent) => void;
127
+ props: Record<string, unknown>;
128
128
  };
129
129
  type ControlVariant = 'default' | 'stacked' | 'split' | 'hidden';
130
130
  declare const VNumberInput: {
@@ -181,7 +181,6 @@ declare const VNumberInput: {
181
181
  counter?: string | number | boolean | undefined;
182
182
  'onUpdate:focused'?: ((args_0: boolean) => void) | undefined;
183
183
  validateOn?: ("eager" | "lazy" | ("input" | "blur" | "submit" | "invalid-input") | "input lazy" | "blur lazy" | "submit lazy" | "invalid-input lazy" | "input eager" | "blur eager" | "submit eager" | "invalid-input eager" | "lazy input" | "lazy blur" | "lazy submit" | "lazy invalid-input" | "eager input" | "eager blur" | "eager submit" | "eager invalid-input") | undefined;
184
- validationValue?: any;
185
184
  rounded?: string | number | boolean | undefined;
186
185
  baseColor?: string | undefined;
187
186
  bgColor?: string | undefined;
@@ -2354,7 +2353,6 @@ declare const VNumberInput: {
2354
2353
  counter?: string | number | boolean | undefined;
2355
2354
  'onUpdate:focused'?: ((args_0: boolean) => void) | undefined;
2356
2355
  validateOn?: ("eager" | "lazy" | ("input" | "blur" | "submit" | "invalid-input") | "input lazy" | "blur lazy" | "submit lazy" | "invalid-input lazy" | "input eager" | "blur eager" | "submit eager" | "invalid-input eager" | "lazy input" | "lazy blur" | "lazy submit" | "lazy invalid-input" | "eager input" | "eager blur" | "eager submit" | "eager invalid-input") | undefined;
2357
- validationValue?: any;
2358
2356
  rounded?: string | number | boolean | undefined;
2359
2357
  baseColor?: string | undefined;
2360
2358
  bgColor?: string | undefined;
@@ -2548,7 +2546,6 @@ declare const VNumberInput: {
2548
2546
  counter?: string | number | boolean | undefined;
2549
2547
  'onUpdate:focused'?: ((args_0: boolean) => void) | undefined;
2550
2548
  validateOn?: ("eager" | "lazy" | ("input" | "blur" | "submit" | "invalid-input") | "input lazy" | "blur lazy" | "submit lazy" | "invalid-input lazy" | "input eager" | "blur eager" | "submit eager" | "invalid-input eager" | "lazy input" | "lazy blur" | "lazy submit" | "lazy invalid-input" | "eager input" | "eager blur" | "eager submit" | "eager invalid-input") | undefined;
2551
- validationValue?: any;
2552
2549
  rounded?: string | number | boolean | undefined;
2553
2550
  baseColor?: string | undefined;
2554
2551
  bgColor?: string | undefined;
@@ -4761,7 +4758,6 @@ declare const VNumberInput: {
4761
4758
  counter?: string | number | boolean | undefined;
4762
4759
  'onUpdate:focused'?: ((args_0: boolean) => void) | undefined;
4763
4760
  validateOn?: ("eager" | "lazy" | ("input" | "blur" | "submit" | "invalid-input") | "input lazy" | "blur lazy" | "submit lazy" | "invalid-input lazy" | "input eager" | "blur eager" | "submit eager" | "invalid-input eager" | "lazy input" | "lazy blur" | "lazy submit" | "lazy invalid-input" | "eager input" | "eager blur" | "eager submit" | "eager invalid-input") | undefined;
4764
- validationValue?: any;
4765
4761
  rounded?: string | number | boolean | undefined;
4766
4762
  baseColor?: string | undefined;
4767
4763
  bgColor?: string | undefined;
@@ -7002,7 +6998,6 @@ declare const VNumberInput: {
7002
6998
  default: () => never[];
7003
6999
  };
7004
7000
  validateOn: PropType<ValidationProps["validateOn"]>;
7005
- validationValue: null;
7006
7001
  rounded: {
7007
7002
  type: (StringConstructor | BooleanConstructor | NumberConstructor)[];
7008
7003
  default: undefined;
@@ -7136,7 +7131,6 @@ declare const VNumberInput: {
7136
7131
  default: () => never[];
7137
7132
  };
7138
7133
  validateOn: PropType<ValidationProps["validateOn"]>;
7139
- validationValue: null;
7140
7134
  rounded: {
7141
7135
  type: (StringConstructor | BooleanConstructor | NumberConstructor)[];
7142
7136
  default: undefined;
@@ -312,6 +312,7 @@ declare const VSnackbar: {
312
312
  }) => vue.VNodeChild) | undefined;
313
313
  onAfterEnter?: (() => any) | undefined;
314
314
  onAfterLeave?: (() => any) | undefined;
315
+ onKeydown?: ((e: KeyboardEvent) => any) | undefined;
315
316
  "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
316
317
  "onClick:outside"?: ((e: MouseEvent) => any) | undefined;
317
318
  } & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & {
@@ -394,6 +395,7 @@ declare const VSnackbar: {
394
395
  } & {
395
396
  onAfterEnter?: (() => any) | undefined;
396
397
  onAfterLeave?: (() => any) | undefined;
398
+ onKeydown?: ((e: KeyboardEvent) => any) | undefined;
397
399
  "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
398
400
  "onClick:outside"?: ((e: MouseEvent) => any) | undefined;
399
401
  }, "absolute" | "location" | "origin" | "transition" | "zIndex" | "style" | "eager" | "disabled" | "persistent" | "modelValue" | "locationStrategy" | "scrollStrategy" | "activatorProps" | "openOnClick" | "openOnHover" | "openOnFocus" | "closeOnContentClick" | "closeOnBack" | "contained" | "noClickAnimation" | "scrim" | "_disableGlobalStack">;
@@ -415,7 +417,7 @@ declare const VSnackbar: {
415
417
  }>;
416
418
  $root: vue.ComponentPublicInstance | null;
417
419
  $parent: vue.ComponentPublicInstance | null;
418
- $emit: ((event: "update:modelValue", value: boolean) => void) & ((event: "click:outside", e: MouseEvent) => void) & ((event: "afterEnter") => void) & ((event: "afterLeave") => void);
420
+ $emit: ((event: "keydown", e: KeyboardEvent) => void) & ((event: "update:modelValue", value: boolean) => void) & ((event: "click:outside", e: MouseEvent) => void) & ((event: "afterEnter") => void) & ((event: "afterLeave") => void);
419
421
  $el: any;
420
422
  $options: vue.ComponentOptionsBase<{
421
423
  absolute: boolean;
@@ -497,6 +499,7 @@ declare const VSnackbar: {
497
499
  } & {
498
500
  onAfterEnter?: (() => any) | undefined;
499
501
  onAfterLeave?: (() => any) | undefined;
502
+ onKeydown?: ((e: KeyboardEvent) => any) | undefined;
500
503
  "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
501
504
  "onClick:outside"?: ((e: MouseEvent) => any) | undefined;
502
505
  }, {
@@ -511,6 +514,7 @@ declare const VSnackbar: {
511
514
  }, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
512
515
  'click:outside': (e: MouseEvent) => true;
513
516
  'update:modelValue': (value: boolean) => true;
517
+ keydown: (e: KeyboardEvent) => true;
514
518
  afterEnter: () => true;
515
519
  afterLeave: () => true;
516
520
  }, string, {
@@ -649,6 +653,7 @@ declare const VSnackbar: {
649
653
  } & {
650
654
  onAfterEnter?: (() => any) | undefined;
651
655
  onAfterLeave?: (() => any) | undefined;
656
+ onKeydown?: ((e: KeyboardEvent) => any) | undefined;
652
657
  "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
653
658
  "onClick:outside"?: ((e: MouseEvent) => any) | undefined;
654
659
  }, "target" | "contentEl" | "activatorEl" | "scrimEl" | "animateClick" | "globalTop" | "localTop" | "updateLocation"> & vue.ShallowUnwrapRef<{
@@ -660,7 +665,7 @@ declare const VSnackbar: {
660
665
  globalTop: Readonly<Ref<boolean>>;
661
666
  localTop: vue.ComputedRef<boolean>;
662
667
  updateLocation: Ref<((e: Event) => void) | undefined>;
663
- }> & {} & vue.ComponentCustomProperties & {}, "offset" | "key" | "height" | "width" | "maxHeight" | "maxWidth" | "minHeight" | "minWidth" | "opacity" | "target" | "class" | "theme" | "ref" | "onAfterEnter" | "onAfterLeave" | "$children" | "v-slots" | "v-slot:default" | "ref_for" | "ref_key" | "onVnodeBeforeMount" | "onVnodeMounted" | "onVnodeBeforeUpdate" | "onVnodeUpdated" | "onVnodeBeforeUnmount" | "onVnodeUnmounted" | "onUpdate:modelValue" | "contentClass" | "activator" | "v-slot:activator" | "closeDelay" | "openDelay" | "contentProps" | "attach" | "onClick:outside" | ("absolute" | "location" | "origin" | "transition" | "zIndex" | "style" | "eager" | "disabled" | "persistent" | "modelValue" | "locationStrategy" | "scrollStrategy" | "activatorProps" | "openOnClick" | "openOnHover" | "openOnFocus" | "closeOnContentClick" | "closeOnBack" | "contained" | "noClickAnimation" | "scrim" | "_disableGlobalStack")>, `$${any}`> & {
668
+ }> & {} & vue.ComponentCustomProperties & {}, "offset" | "key" | "height" | "width" | "maxHeight" | "maxWidth" | "minHeight" | "minWidth" | "opacity" | "target" | "class" | "theme" | "ref" | "onAfterEnter" | "onAfterLeave" | "onKeydown" | "$children" | "v-slots" | "v-slot:default" | "ref_for" | "ref_key" | "onVnodeBeforeMount" | "onVnodeMounted" | "onVnodeBeforeUpdate" | "onVnodeUpdated" | "onVnodeBeforeUnmount" | "onVnodeUnmounted" | "onUpdate:modelValue" | "contentClass" | "activator" | "v-slot:activator" | "closeDelay" | "openDelay" | "contentProps" | "attach" | "onClick:outside" | ("absolute" | "location" | "origin" | "transition" | "zIndex" | "style" | "eager" | "disabled" | "persistent" | "modelValue" | "locationStrategy" | "scrollStrategy" | "activatorProps" | "openOnClick" | "openOnHover" | "openOnFocus" | "closeOnContentClick" | "closeOnBack" | "contained" | "noClickAnimation" | "scrim" | "_disableGlobalStack")>, `$${any}`> & {
664
669
  _allExposed: {
665
670
  activatorEl: Ref<HTMLElement | undefined>;
666
671
  scrimEl: Ref<HTMLElement | undefined>;
@@ -994,6 +999,7 @@ declare const VSnackbar: {
994
999
  }) => vue.VNodeChild) | undefined;
995
1000
  onAfterEnter?: (() => any) | undefined;
996
1001
  onAfterLeave?: (() => any) | undefined;
1002
+ onKeydown?: ((e: KeyboardEvent) => any) | undefined;
997
1003
  "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
998
1004
  "onClick:outside"?: ((e: MouseEvent) => any) | undefined;
999
1005
  } & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & {
@@ -1076,6 +1082,7 @@ declare const VSnackbar: {
1076
1082
  } & {
1077
1083
  onAfterEnter?: (() => any) | undefined;
1078
1084
  onAfterLeave?: (() => any) | undefined;
1085
+ onKeydown?: ((e: KeyboardEvent) => any) | undefined;
1079
1086
  "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
1080
1087
  "onClick:outside"?: ((e: MouseEvent) => any) | undefined;
1081
1088
  }, "absolute" | "location" | "origin" | "transition" | "zIndex" | "style" | "eager" | "disabled" | "persistent" | "modelValue" | "locationStrategy" | "scrollStrategy" | "activatorProps" | "openOnClick" | "openOnHover" | "openOnFocus" | "closeOnContentClick" | "closeOnBack" | "contained" | "noClickAnimation" | "scrim" | "_disableGlobalStack">;
@@ -1097,7 +1104,7 @@ declare const VSnackbar: {
1097
1104
  }>;
1098
1105
  $root: vue.ComponentPublicInstance | null;
1099
1106
  $parent: vue.ComponentPublicInstance | null;
1100
- $emit: ((event: "update:modelValue", value: boolean) => void) & ((event: "click:outside", e: MouseEvent) => void) & ((event: "afterEnter") => void) & ((event: "afterLeave") => void);
1107
+ $emit: ((event: "keydown", e: KeyboardEvent) => void) & ((event: "update:modelValue", value: boolean) => void) & ((event: "click:outside", e: MouseEvent) => void) & ((event: "afterEnter") => void) & ((event: "afterLeave") => void);
1101
1108
  $el: any;
1102
1109
  $options: vue.ComponentOptionsBase<{
1103
1110
  absolute: boolean;
@@ -1179,6 +1186,7 @@ declare const VSnackbar: {
1179
1186
  } & {
1180
1187
  onAfterEnter?: (() => any) | undefined;
1181
1188
  onAfterLeave?: (() => any) | undefined;
1189
+ onKeydown?: ((e: KeyboardEvent) => any) | undefined;
1182
1190
  "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
1183
1191
  "onClick:outside"?: ((e: MouseEvent) => any) | undefined;
1184
1192
  }, {
@@ -1193,6 +1201,7 @@ declare const VSnackbar: {
1193
1201
  }, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
1194
1202
  'click:outside': (e: MouseEvent) => true;
1195
1203
  'update:modelValue': (value: boolean) => true;
1204
+ keydown: (e: KeyboardEvent) => true;
1196
1205
  afterEnter: () => true;
1197
1206
  afterLeave: () => true;
1198
1207
  }, string, {
@@ -1331,6 +1340,7 @@ declare const VSnackbar: {
1331
1340
  } & {
1332
1341
  onAfterEnter?: (() => any) | undefined;
1333
1342
  onAfterLeave?: (() => any) | undefined;
1343
+ onKeydown?: ((e: KeyboardEvent) => any) | undefined;
1334
1344
  "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
1335
1345
  "onClick:outside"?: ((e: MouseEvent) => any) | undefined;
1336
1346
  }, "target" | "contentEl" | "activatorEl" | "scrimEl" | "animateClick" | "globalTop" | "localTop" | "updateLocation"> & vue.ShallowUnwrapRef<{
@@ -1342,7 +1352,7 @@ declare const VSnackbar: {
1342
1352
  globalTop: Readonly<Ref<boolean>>;
1343
1353
  localTop: vue.ComputedRef<boolean>;
1344
1354
  updateLocation: Ref<((e: Event) => void) | undefined>;
1345
- }> & {} & vue.ComponentCustomProperties & {}, "offset" | "key" | "height" | "width" | "maxHeight" | "maxWidth" | "minHeight" | "minWidth" | "opacity" | "target" | "class" | "theme" | "ref" | "onAfterEnter" | "onAfterLeave" | "$children" | "v-slots" | "v-slot:default" | "ref_for" | "ref_key" | "onVnodeBeforeMount" | "onVnodeMounted" | "onVnodeBeforeUpdate" | "onVnodeUpdated" | "onVnodeBeforeUnmount" | "onVnodeUnmounted" | "onUpdate:modelValue" | "contentClass" | "activator" | "v-slot:activator" | "closeDelay" | "openDelay" | "contentProps" | "attach" | "onClick:outside" | ("absolute" | "location" | "origin" | "transition" | "zIndex" | "style" | "eager" | "disabled" | "persistent" | "modelValue" | "locationStrategy" | "scrollStrategy" | "activatorProps" | "openOnClick" | "openOnHover" | "openOnFocus" | "closeOnContentClick" | "closeOnBack" | "contained" | "noClickAnimation" | "scrim" | "_disableGlobalStack")>, `$${any}`> & {
1355
+ }> & {} & vue.ComponentCustomProperties & {}, "offset" | "key" | "height" | "width" | "maxHeight" | "maxWidth" | "minHeight" | "minWidth" | "opacity" | "target" | "class" | "theme" | "ref" | "onAfterEnter" | "onAfterLeave" | "onKeydown" | "$children" | "v-slots" | "v-slot:default" | "ref_for" | "ref_key" | "onVnodeBeforeMount" | "onVnodeMounted" | "onVnodeBeforeUpdate" | "onVnodeUpdated" | "onVnodeBeforeUnmount" | "onVnodeUnmounted" | "onUpdate:modelValue" | "contentClass" | "activator" | "v-slot:activator" | "closeDelay" | "openDelay" | "contentProps" | "attach" | "onClick:outside" | ("absolute" | "location" | "origin" | "transition" | "zIndex" | "style" | "eager" | "disabled" | "persistent" | "modelValue" | "locationStrategy" | "scrollStrategy" | "activatorProps" | "openOnClick" | "openOnHover" | "openOnFocus" | "closeOnContentClick" | "closeOnBack" | "contained" | "noClickAnimation" | "scrim" | "_disableGlobalStack")>, `$${any}`> & {
1346
1356
  _allExposed: {
1347
1357
  activatorEl: Ref<HTMLElement | undefined>;
1348
1358
  scrimEl: Ref<HTMLElement | undefined>;
@@ -1576,6 +1586,7 @@ declare const VSnackbar: {
1576
1586
  }) => vue.VNodeChild) | undefined;
1577
1587
  onAfterEnter?: (() => any) | undefined;
1578
1588
  onAfterLeave?: (() => any) | undefined;
1589
+ onKeydown?: ((e: KeyboardEvent) => any) | undefined;
1579
1590
  "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
1580
1591
  "onClick:outside"?: ((e: MouseEvent) => any) | undefined;
1581
1592
  } & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & {
@@ -1658,6 +1669,7 @@ declare const VSnackbar: {
1658
1669
  } & {
1659
1670
  onAfterEnter?: (() => any) | undefined;
1660
1671
  onAfterLeave?: (() => any) | undefined;
1672
+ onKeydown?: ((e: KeyboardEvent) => any) | undefined;
1661
1673
  "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
1662
1674
  "onClick:outside"?: ((e: MouseEvent) => any) | undefined;
1663
1675
  }, "absolute" | "location" | "origin" | "transition" | "zIndex" | "style" | "eager" | "disabled" | "persistent" | "modelValue" | "locationStrategy" | "scrollStrategy" | "activatorProps" | "openOnClick" | "openOnHover" | "openOnFocus" | "closeOnContentClick" | "closeOnBack" | "contained" | "noClickAnimation" | "scrim" | "_disableGlobalStack">;
@@ -1679,7 +1691,7 @@ declare const VSnackbar: {
1679
1691
  }>;
1680
1692
  $root: vue.ComponentPublicInstance | null;
1681
1693
  $parent: vue.ComponentPublicInstance | null;
1682
- $emit: ((event: "update:modelValue", value: boolean) => void) & ((event: "click:outside", e: MouseEvent) => void) & ((event: "afterEnter") => void) & ((event: "afterLeave") => void);
1694
+ $emit: ((event: "keydown", e: KeyboardEvent) => void) & ((event: "update:modelValue", value: boolean) => void) & ((event: "click:outside", e: MouseEvent) => void) & ((event: "afterEnter") => void) & ((event: "afterLeave") => void);
1683
1695
  $el: any;
1684
1696
  $options: vue.ComponentOptionsBase<{
1685
1697
  absolute: boolean;
@@ -1761,6 +1773,7 @@ declare const VSnackbar: {
1761
1773
  } & {
1762
1774
  onAfterEnter?: (() => any) | undefined;
1763
1775
  onAfterLeave?: (() => any) | undefined;
1776
+ onKeydown?: ((e: KeyboardEvent) => any) | undefined;
1764
1777
  "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
1765
1778
  "onClick:outside"?: ((e: MouseEvent) => any) | undefined;
1766
1779
  }, {
@@ -1775,6 +1788,7 @@ declare const VSnackbar: {
1775
1788
  }, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
1776
1789
  'click:outside': (e: MouseEvent) => true;
1777
1790
  'update:modelValue': (value: boolean) => true;
1791
+ keydown: (e: KeyboardEvent) => true;
1778
1792
  afterEnter: () => true;
1779
1793
  afterLeave: () => true;
1780
1794
  }, string, {
@@ -1913,6 +1927,7 @@ declare const VSnackbar: {
1913
1927
  } & {
1914
1928
  onAfterEnter?: (() => any) | undefined;
1915
1929
  onAfterLeave?: (() => any) | undefined;
1930
+ onKeydown?: ((e: KeyboardEvent) => any) | undefined;
1916
1931
  "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
1917
1932
  "onClick:outside"?: ((e: MouseEvent) => any) | undefined;
1918
1933
  }, "target" | "contentEl" | "activatorEl" | "scrimEl" | "animateClick" | "globalTop" | "localTop" | "updateLocation"> & vue.ShallowUnwrapRef<{
@@ -1924,7 +1939,7 @@ declare const VSnackbar: {
1924
1939
  globalTop: Readonly<Ref<boolean>>;
1925
1940
  localTop: vue.ComputedRef<boolean>;
1926
1941
  updateLocation: Ref<((e: Event) => void) | undefined>;
1927
- }> & {} & vue.ComponentCustomProperties & {}, "offset" | "key" | "height" | "width" | "maxHeight" | "maxWidth" | "minHeight" | "minWidth" | "opacity" | "target" | "class" | "theme" | "ref" | "onAfterEnter" | "onAfterLeave" | "$children" | "v-slots" | "v-slot:default" | "ref_for" | "ref_key" | "onVnodeBeforeMount" | "onVnodeMounted" | "onVnodeBeforeUpdate" | "onVnodeUpdated" | "onVnodeBeforeUnmount" | "onVnodeUnmounted" | "onUpdate:modelValue" | "contentClass" | "activator" | "v-slot:activator" | "closeDelay" | "openDelay" | "contentProps" | "attach" | "onClick:outside" | ("absolute" | "location" | "origin" | "transition" | "zIndex" | "style" | "eager" | "disabled" | "persistent" | "modelValue" | "locationStrategy" | "scrollStrategy" | "activatorProps" | "openOnClick" | "openOnHover" | "openOnFocus" | "closeOnContentClick" | "closeOnBack" | "contained" | "noClickAnimation" | "scrim" | "_disableGlobalStack")>, `$${any}`> & {
1942
+ }> & {} & vue.ComponentCustomProperties & {}, "offset" | "key" | "height" | "width" | "maxHeight" | "maxWidth" | "minHeight" | "minWidth" | "opacity" | "target" | "class" | "theme" | "ref" | "onAfterEnter" | "onAfterLeave" | "onKeydown" | "$children" | "v-slots" | "v-slot:default" | "ref_for" | "ref_key" | "onVnodeBeforeMount" | "onVnodeMounted" | "onVnodeBeforeUpdate" | "onVnodeUpdated" | "onVnodeBeforeUnmount" | "onVnodeUnmounted" | "onUpdate:modelValue" | "contentClass" | "activator" | "v-slot:activator" | "closeDelay" | "openDelay" | "contentProps" | "attach" | "onClick:outside" | ("absolute" | "location" | "origin" | "transition" | "zIndex" | "style" | "eager" | "disabled" | "persistent" | "modelValue" | "locationStrategy" | "scrollStrategy" | "activatorProps" | "openOnClick" | "openOnHover" | "openOnFocus" | "closeOnContentClick" | "closeOnBack" | "contained" | "noClickAnimation" | "scrim" | "_disableGlobalStack")>, `$${any}`> & {
1928
1943
  _allExposed: {
1929
1944
  activatorEl: Ref<HTMLElement | undefined>;
1930
1945
  scrimEl: Ref<HTMLElement | undefined>;
@@ -7,20 +7,14 @@ import { pad } from "./util.mjs";
7
7
  import { VTimePickerClock } from "./VTimePickerClock.mjs";
8
8
  import { VTimePickerControls } from "./VTimePickerControls.mjs";
9
9
  import { makeVPickerProps, VPicker } from "../VPicker/VPicker.mjs"; // Composables
10
- import { useLocale } from "../../composables/locale.mjs"; // Utilities
10
+ import { useLocale } from "../../composables/locale.mjs";
11
+ import { useProxiedModel } from "../../composables/proxiedModel.mjs"; // Utilities
11
12
  import { computed, onMounted, ref, watch } from 'vue';
12
- import { SelectingTimes } from "./SelectingTimes.mjs";
13
13
  import { createRange, genericComponent, omit, propsFactory, useRender } from "../../util/index.mjs"; // Types
14
14
  const rangeHours24 = createRange(24);
15
15
  const rangeHours12am = createRange(12);
16
16
  const rangeHours12pm = rangeHours12am.map(v => v + 12);
17
17
  const range60 = createRange(60);
18
- const selectingNames = {
19
- 1: 'hour',
20
- 2: 'minute',
21
- 3: 'second'
22
- };
23
- export { SelectingTimes };
24
18
  export const makeVTimePickerProps = propsFactory({
25
19
  allowedHours: [Function, Array],
26
20
  allowedMinutes: [Function, Array],
@@ -33,6 +27,10 @@ export const makeVTimePickerProps = propsFactory({
33
27
  },
34
28
  max: String,
35
29
  min: String,
30
+ viewMode: {
31
+ type: String,
32
+ default: 'hour'
33
+ },
36
34
  modelValue: null,
37
35
  readonly: Boolean,
38
36
  scrollable: Boolean,
@@ -49,7 +47,8 @@ export const VTimePicker = genericComponent()({
49
47
  'update:minute': val => true,
50
48
  'update:period': val => true,
51
49
  'update:second': val => true,
52
- 'update:modelValue': val => true
50
+ 'update:modelValue': val => true,
51
+ 'update:viewMode': val => true
53
52
  },
54
53
  setup(props, _ref) {
55
54
  let {
@@ -66,7 +65,7 @@ export const VTimePicker = genericComponent()({
66
65
  const lazyInputMinute = ref(null);
67
66
  const lazyInputSecond = ref(null);
68
67
  const period = ref('am');
69
- const selecting = ref(SelectingTimes.Hour);
68
+ const viewMode = useProxiedModel(props, 'viewMode', 'hour');
70
69
  const controlsRef = ref(null);
71
70
  const clockRef = ref(null);
72
71
  const isAllowedHourCb = computed(() => {
@@ -80,7 +79,7 @@ export const VTimePicker = genericComponent()({
80
79
  const minHour = props.min ? Number(props.min.split(':')[0]) : 0;
81
80
  const maxHour = props.max ? Number(props.max.split(':')[0]) : 23;
82
81
  return val => {
83
- return val >= minHour * 1 && val <= maxHour * 1 && (!cb || cb(val));
82
+ return val >= Number(minHour) && val <= Number(maxHour) && (!cb || cb(val));
84
83
  };
85
84
  });
86
85
  const isAllowedMinuteCb = computed(() => {
@@ -96,8 +95,8 @@ export const VTimePicker = genericComponent()({
96
95
  }
97
96
  const [minHour, minMinute] = props.min ? props.min.split(':').map(Number) : [0, 0];
98
97
  const [maxHour, maxMinute] = props.max ? props.max.split(':').map(Number) : [23, 59];
99
- const minTime = minHour * 60 + minMinute * 1;
100
- const maxTime = maxHour * 60 + maxMinute * 1;
98
+ const minTime = minHour * 60 + Number(minMinute);
99
+ const maxTime = maxHour * 60 + Number(maxMinute);
101
100
  return val => {
102
101
  const time = 60 * inputHour.value + val;
103
102
  return time >= minTime && time <= maxTime && isHourAllowed && (!cb || cb(val));
@@ -117,8 +116,8 @@ export const VTimePicker = genericComponent()({
117
116
  }
118
117
  const [minHour, minMinute, minSecond] = props.min ? props.min.split(':').map(Number) : [0, 0, 0];
119
118
  const [maxHour, maxMinute, maxSecond] = props.max ? props.max.split(':').map(Number) : [23, 59, 59];
120
- const minTime = minHour * 3600 + minMinute * 60 + (minSecond || 0) * 1;
121
- const maxTime = maxHour * 3600 + maxMinute * 60 + (maxSecond || 0) * 1;
119
+ const minTime = minHour * 3600 + minMinute * 60 + Number(minSecond || 0);
120
+ const maxTime = maxHour * 3600 + maxMinute * 60 + Number(maxSecond || 0);
122
121
  return val => {
123
122
  const time = 3600 * inputHour.value + 60 * inputMinute.value + val;
124
123
  return time >= minTime && time <= maxTime && isMinuteAllowed && (!cb || cb(val));
@@ -184,16 +183,16 @@ export const VTimePicker = genericComponent()({
184
183
  return true;
185
184
  }
186
185
  function onInput(value) {
187
- if (selecting.value === SelectingTimes.Hour) {
186
+ if (viewMode.value === 'hour') {
188
187
  inputHour.value = isAmPm.value ? convert12to24(value, period.value) : value;
189
- } else if (selecting.value === SelectingTimes.Minute) {
188
+ } else if (viewMode.value === 'minute') {
190
189
  inputMinute.value = value;
191
190
  } else {
192
191
  inputSecond.value = value;
193
192
  }
194
193
  }
195
194
  function onChange(value) {
196
- switch (selectingNames[selecting.value]) {
195
+ switch (viewMode.value || 'hour') {
197
196
  case 'hour':
198
197
  emit('update:hour', value);
199
198
  break;
@@ -207,10 +206,10 @@ export const VTimePicker = genericComponent()({
207
206
  break;
208
207
  }
209
208
  const emitChange = inputHour.value !== null && inputMinute.value !== null && (props.useSeconds ? inputSecond.value !== null : true);
210
- if (selecting.value === SelectingTimes.Hour) {
211
- selecting.value = SelectingTimes.Minute;
212
- } else if (props.useSeconds && selecting.value === SelectingTimes.Minute) {
213
- selecting.value = SelectingTimes.Second;
209
+ if (viewMode.value === 'hour') {
210
+ viewMode.value = 'minute';
211
+ } else if (props.useSeconds && viewMode.value === 'minute') {
212
+ viewMode.value = 'second';
214
213
  }
215
214
  if (inputHour.value === lazyInputHour.value && inputMinute.value === lazyInputMinute.value && (!props.useSeconds || inputSecond.value === lazyInputSecond.value)) return;
216
215
  const time = genValue();
@@ -239,20 +238,20 @@ export const VTimePicker = genericComponent()({
239
238
  "minute": inputMinute.value,
240
239
  "period": period.value,
241
240
  "second": inputSecond.value,
242
- "selecting": selecting.value,
241
+ "viewMode": viewMode.value,
243
242
  "onUpdate:period": val => setPeriod(val),
244
- "onUpdate:selecting": value => selecting.value = value,
243
+ "onUpdate:viewMode": value => viewMode.value = value,
245
244
  "ref": controlsRef
246
245
  }), null),
247
246
  default: () => _createVNode(VTimePickerClock, _mergeProps(timePickerClockProps, {
248
- "allowedValues": selecting.value === SelectingTimes.Hour ? isAllowedHourCb.value : selecting.value === SelectingTimes.Minute ? isAllowedMinuteCb.value : isAllowedSecondCb.value,
249
- "double": selecting.value === SelectingTimes.Hour && !isAmPm.value,
250
- "format": selecting.value === SelectingTimes.Hour ? isAmPm.value ? convert24to12 : val => val : val => pad(val, 2),
251
- "max": selecting.value === SelectingTimes.Hour ? isAmPm.value && period.value === 'am' ? 11 : 23 : 59,
252
- "min": selecting.value === SelectingTimes.Hour && isAmPm.value && period.value === 'pm' ? 12 : 0,
247
+ "allowedValues": viewMode.value === 'hour' ? isAllowedHourCb.value : viewMode.value === 'minute' ? isAllowedMinuteCb.value : isAllowedSecondCb.value,
248
+ "double": viewMode.value === 'hour' && !isAmPm.value,
249
+ "format": viewMode.value === 'hour' ? isAmPm.value ? convert24to12 : val => val : val => pad(val, 2),
250
+ "max": viewMode.value === 'hour' ? isAmPm.value && period.value === 'am' ? 11 : 23 : 59,
251
+ "min": viewMode.value === 'hour' && isAmPm.value && period.value === 'pm' ? 12 : 0,
253
252
  "size": 20,
254
- "step": selecting.value === SelectingTimes.Hour ? 1 : 5,
255
- "modelValue": selecting.value === SelectingTimes.Hour ? inputHour.value : selecting.value === SelectingTimes.Minute ? inputMinute.value : inputSecond.value,
253
+ "step": viewMode.value === 'hour' ? 1 : 5,
254
+ "modelValue": viewMode.value === 'hour' ? inputHour.value : viewMode.value === 'minute' ? inputMinute.value : inputSecond.value,
256
255
  "onChange": onChange,
257
256
  "onInput": onInput,
258
257
  "ref": clockRef
@@ -1 +1 @@
1
- {"version":3,"file":"VTimePicker.mjs","names":["pad","VTimePickerClock","VTimePickerControls","makeVPickerProps","VPicker","useLocale","computed","onMounted","ref","watch","SelectingTimes","createRange","genericComponent","omit","propsFactory","useRender","rangeHours24","rangeHours12am","rangeHours12pm","map","v","range60","selectingNames","makeVTimePickerProps","allowedHours","Function","Array","allowedMinutes","allowedSeconds","ampmInTitle","Boolean","disabled","format","type","String","default","max","min","modelValue","readonly","scrollable","useSeconds","title","VTimePicker","name","props","emits","val","setup","_ref","emit","slots","t","inputHour","inputMinute","inputSecond","lazyInputHour","lazyInputMinute","lazyInputSecond","period","selecting","Hour","controlsRef","clockRef","isAllowedHourCb","cb","includes","minHour","Number","split","maxHour","isAllowedMinuteCb","isHourAllowed","value","minMinute","maxMinute","minTime","maxTime","time","isAllowedSecondCb","isMinuteAllowed","minSecond","maxSecond","isAmPm","setInputData","genValue","emitValue","convert24to12","hour","convert12to24","Date","getHours","getMinutes","getSeconds","minute","second","trim","toLowerCase","match","parseInt","firstAllowed","allowedFn","range","first","find","length","setPeriod","newHour","onInput","Minute","onChange","emitChange","Second","pickerProps","filterProps","timePickerControlsProps","timePickerClockProps","_createVNode","_mergeProps","undefined","class","style","header","actions"],"sources":["../../../src/labs/VTimePicker/VTimePicker.tsx"],"sourcesContent":["// Styles\nimport './VTimePicker.sass'\n\n// Components\nimport { pad } from './util'\nimport { VTimePickerClock } from './VTimePickerClock'\nimport { VTimePickerControls } from './VTimePickerControls'\nimport { makeVPickerProps, VPicker } from '@/labs/VPicker/VPicker'\n\n// Composables\nimport { useLocale } from '@/composables/locale'\n\n// Utilities\nimport { computed, onMounted, ref, watch } from 'vue'\nimport { SelectingTimes } from './SelectingTimes'\nimport { createRange, genericComponent, omit, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VPickerSlots } from '@/labs/VPicker/VPicker'\ntype Period = 'am' | 'pm'\ntype AllowFunction = (val: number) => boolean\n\nconst rangeHours24 = createRange(24)\nconst rangeHours12am = createRange(12)\nconst rangeHours12pm = rangeHours12am.map(v => v + 12)\nconst range60 = createRange(60)\nconst selectingNames = { 1: 'hour', 2: 'minute', 3: 'second' }\n\nexport { SelectingTimes }\n\nexport type VTimePickerSlots = Omit<VPickerSlots, 'header'>\n\nexport const makeVTimePickerProps = propsFactory({\n allowedHours: [Function, Array] as PropType<AllowFunction | number[]>,\n allowedMinutes: [Function, Array] as PropType<AllowFunction | number[]>,\n allowedSeconds: [Function, Array] as PropType<AllowFunction | number[]>,\n ampmInTitle: Boolean,\n disabled: Boolean,\n format: {\n type: String as PropType<'ampm' | '24hr'>,\n default: 'ampm',\n },\n max: String,\n min: String,\n modelValue: null as any as PropType<any>,\n readonly: Boolean,\n scrollable: Boolean,\n useSeconds: Boolean,\n ...omit(makeVPickerProps({ title: '$vuetify.timePicker.title' }), ['landscape']),\n}, 'VTimePicker')\n\nexport const VTimePicker = genericComponent<VTimePickerSlots>()({\n name: 'VTimePicker',\n\n props: makeVTimePickerProps(),\n\n emits: {\n 'update:hour': (val: number) => true,\n 'update:minute': (val: number) => true,\n 'update:period': (val: Period) => true,\n 'update:second': (val: number) => true,\n 'update:modelValue': (val: string) => true,\n },\n\n setup (props, { emit, slots }) {\n const { t } = useLocale()\n const inputHour = ref(null as number | null)\n const inputMinute = ref(null as number | null)\n const inputSecond = ref(null as number | null)\n const lazyInputHour = ref(null as number | null)\n const lazyInputMinute = ref(null as number | null)\n const lazyInputSecond = ref(null as number | null)\n const period = ref('am' as Period)\n const selecting = ref(SelectingTimes.Hour)\n const controlsRef = ref<VTimePickerControls | null>(null)\n const clockRef = ref<VTimePickerClock | null>(null)\n\n const isAllowedHourCb = computed((): AllowFunction => {\n let cb: AllowFunction\n\n if (props.allowedHours instanceof Array) {\n cb = (val: number) => (props.allowedHours as number[]).includes(val)\n } else {\n cb = props.allowedHours as AllowFunction\n }\n\n if (!props.min && !props.max) return cb\n\n const minHour = props.min ? Number(props.min.split(':')[0]) : 0\n const maxHour = props.max ? Number(props.max.split(':')[0]) : 23\n\n return (val: number) => {\n return val >= minHour * 1 &&\n val <= maxHour * 1 &&\n (!cb || cb(val))\n }\n })\n\n const isAllowedMinuteCb = computed((): AllowFunction => {\n let cb: AllowFunction\n\n const isHourAllowed = !isAllowedHourCb.value || inputHour.value === null || isAllowedHourCb.value(inputHour.value)\n if (props.allowedMinutes instanceof Array) {\n cb = (val: number) => (props.allowedMinutes as number[]).includes(val)\n } else {\n cb = props.allowedMinutes as AllowFunction\n }\n\n if (!props.min && !props.max) {\n return isHourAllowed ? cb : () => false\n }\n\n const [minHour, minMinute] = props.min ? props.min.split(':').map(Number) : [0, 0]\n const [maxHour, maxMinute] = props.max ? props.max.split(':').map(Number) : [23, 59]\n const minTime = minHour * 60 + minMinute * 1\n const maxTime = maxHour * 60 + maxMinute * 1\n\n return (val: number) => {\n const time = 60 * inputHour.value! + val\n return time >= minTime &&\n time <= maxTime &&\n isHourAllowed &&\n (!cb || cb(val))\n }\n })\n\n const isAllowedSecondCb = computed((): AllowFunction => {\n let cb: AllowFunction\n\n const isHourAllowed = !isAllowedHourCb.value || inputHour.value === null || isAllowedHourCb.value(inputHour.value)\n const isMinuteAllowed = isHourAllowed &&\n (!isAllowedMinuteCb.value ||\n inputMinute.value === null ||\n isAllowedMinuteCb.value(inputMinute.value)\n )\n\n if (props.allowedSeconds instanceof Array) {\n cb = (val: number) => (props.allowedSeconds as number[]).includes(val)\n } else {\n cb = props.allowedSeconds as AllowFunction\n }\n\n if (!props.min && !props.max) {\n return isMinuteAllowed ? cb : () => false\n }\n\n const [minHour, minMinute, minSecond] = props.min ? props.min.split(':').map(Number) : [0, 0, 0]\n const [maxHour, maxMinute, maxSecond] = props.max ? props.max.split(':').map(Number) : [23, 59, 59]\n const minTime = minHour * 3600 + minMinute * 60 + (minSecond || 0) * 1\n const maxTime = maxHour * 3600 + maxMinute * 60 + (maxSecond || 0) * 1\n\n return (val: number) => {\n const time = 3600 * inputHour.value! + 60 * inputMinute.value! + val\n return time >= minTime &&\n time <= maxTime &&\n isMinuteAllowed &&\n (!cb || cb(val))\n }\n })\n\n const isAmPm = computed((): boolean => {\n return props.format === 'ampm'\n })\n\n watch(() => props.modelValue, val => setInputData(val))\n\n onMounted(() => {\n setInputData(props.modelValue)\n })\n\n function genValue () {\n if (inputHour.value != null && inputMinute.value != null && (!props.useSeconds || inputSecond.value != null)) {\n return `${pad(inputHour.value)}:${pad(inputMinute.value)}` + (props.useSeconds ? `:${pad(inputSecond.value!)}` : '')\n }\n\n return null\n }\n\n function emitValue () {\n const value = genValue()\n if (value !== null) emit('update:modelValue', value)\n }\n\n function convert24to12 (hour: number) {\n return hour ? ((hour - 1) % 12 + 1) : 12\n }\n\n function convert12to24 (hour: number, period: Period) {\n return hour % 12 + (period === 'pm' ? 12 : 0)\n }\n\n function setInputData (value: string | null | Date) {\n if (value == null || value === '') {\n inputHour.value = null\n inputMinute.value = null\n inputSecond.value = null\n } else if (value instanceof Date) {\n inputHour.value = value.getHours()\n inputMinute.value = value.getMinutes()\n inputSecond.value = value.getSeconds()\n } else {\n const [hour, , minute, , second, period] = value.trim().toLowerCase().match(/^(\\d+):(\\d+)(:(\\d+))?([ap]m)?$/) || new Array(6)\n\n inputHour.value = period ? convert12to24(parseInt(hour, 10), period as Period) : parseInt(hour, 10)\n inputMinute.value = parseInt(minute, 10)\n inputSecond.value = parseInt(second || 0, 10)\n }\n\n period.value = (inputHour.value == null || inputHour.value < 12) ? 'am' : 'pm'\n }\n\n function firstAllowed (type: 'hour' | 'minute' | 'second', value: number) {\n const allowedFn = type === 'hour' ? isAllowedHourCb.value : (type === 'minute' ? isAllowedMinuteCb.value : isAllowedSecondCb.value)\n if (!allowedFn) return value\n\n // TODO: clean up (Note from V2 code)\n const range = type === 'minute'\n ? range60\n : (type === 'second'\n ? range60\n : (isAmPm.value\n ? (value < 12\n ? rangeHours12am\n : rangeHours12pm)\n : rangeHours24))\n const first = range.find(v => allowedFn((v + value) % range.length + range[0]))\n return ((first || 0) + value) % range.length + range[0]\n }\n\n function setPeriod (val: Period) {\n period.value = val\n if (inputHour.value != null) {\n const newHour = inputHour.value! + (period.value === 'am' ? -12 : 12)\n inputHour.value = firstAllowed('hour', newHour)\n }\n emit('update:period', val)\n emitValue()\n return true\n }\n\n function onInput (value: number) {\n if (selecting.value === SelectingTimes.Hour) {\n inputHour.value = isAmPm.value ? convert12to24(value, period.value) : value\n } else if (selecting.value === SelectingTimes.Minute) {\n inputMinute.value = value\n } else {\n inputSecond.value = value\n }\n }\n\n function onChange (value: number) {\n switch (selectingNames[selecting.value]) {\n case 'hour':\n emit('update:hour', value)\n break\n case 'minute':\n emit('update:minute', value)\n break\n case 'second':\n emit('update:second', value)\n break\n default:\n break\n }\n\n const emitChange = inputHour.value !== null && inputMinute.value !== null && (props.useSeconds ? inputSecond.value !== null : true)\n if (selecting.value === SelectingTimes.Hour) {\n selecting.value = SelectingTimes.Minute\n } else if (props.useSeconds && selecting.value === SelectingTimes.Minute) {\n selecting.value = SelectingTimes.Second\n }\n\n if (inputHour.value === lazyInputHour.value &&\n inputMinute.value === lazyInputMinute.value &&\n (!props.useSeconds || inputSecond.value === lazyInputSecond.value)\n ) return\n\n const time = genValue()\n if (time === null) return\n\n lazyInputHour.value = inputHour.value\n lazyInputMinute.value = inputMinute.value\n props.useSeconds && (lazyInputSecond.value = inputSecond.value)\n\n emitChange && emitValue()\n }\n\n useRender(() => {\n const pickerProps = VPicker.filterProps(props)\n const timePickerControlsProps = VTimePickerControls.filterProps(props)\n const timePickerClockProps = VTimePickerClock.filterProps(omit(props, ['format', 'modelValue', 'min', 'max']))\n\n return (\n <VPicker\n { ...pickerProps }\n color={ undefined }\n class={[\n 'v-time-picker',\n props.class,\n ]}\n style={ props.style }\n v-slots={{\n title: () => slots.title?.() ?? (\n <div class=\"v-time-picker__title\">\n { t(props.title) }\n </div>\n ),\n header: () => (\n <VTimePickerControls\n { ...timePickerControlsProps }\n ampm={ isAmPm.value || props.ampmInTitle }\n ampmReadonly={ isAmPm.value && !props.ampmInTitle }\n hour={ inputHour.value as number }\n minute={ inputMinute.value as number }\n period={ period.value }\n second={ inputSecond.value as number }\n selecting={ selecting.value }\n onUpdate:period={ (val: Period) => setPeriod(val) }\n onUpdate:selecting={ (value: 1 | 2 | 3) => (selecting.value = value) }\n ref={ controlsRef }\n />\n ),\n default: () => (\n <VTimePickerClock\n { ...timePickerClockProps }\n allowedValues={\n selecting.value === SelectingTimes.Hour\n ? isAllowedHourCb.value\n : (selecting.value === SelectingTimes.Minute\n ? isAllowedMinuteCb.value\n : isAllowedSecondCb.value)\n }\n double={ selecting.value === SelectingTimes.Hour && !isAmPm.value }\n format={ selecting.value === SelectingTimes.Hour\n ? (isAmPm.value ? convert24to12 : (val: number) => val)\n : (val: number) => pad(val, 2)\n }\n max={ selecting.value === SelectingTimes.Hour ? (isAmPm.value && period.value === 'am' ? 11 : 23) : 59 }\n min={ selecting.value === SelectingTimes.Hour && isAmPm.value && period.value === 'pm' ? 12 : 0 }\n size={ 20 }\n step={ selecting.value === SelectingTimes.Hour ? 1 : 5 }\n modelValue={ selecting.value === SelectingTimes.Hour\n ? inputHour.value as number\n : (selecting.value === SelectingTimes.Minute\n ? inputMinute.value as number\n : inputSecond.value as number)\n }\n onChange={ onChange }\n onInput={ onInput }\n ref={ clockRef }\n />\n ),\n actions: slots.actions,\n }}\n />\n )\n })\n },\n})\n\nexport type VTimePicker = InstanceType<typeof VTimePicker>\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"VTimePicker.mjs","names":["pad","VTimePickerClock","VTimePickerControls","makeVPickerProps","VPicker","useLocale","useProxiedModel","computed","onMounted","ref","watch","createRange","genericComponent","omit","propsFactory","useRender","rangeHours24","rangeHours12am","rangeHours12pm","map","v","range60","makeVTimePickerProps","allowedHours","Function","Array","allowedMinutes","allowedSeconds","ampmInTitle","Boolean","disabled","format","type","String","default","max","min","viewMode","modelValue","readonly","scrollable","useSeconds","title","VTimePicker","name","props","emits","val","setup","_ref","emit","slots","t","inputHour","inputMinute","inputSecond","lazyInputHour","lazyInputMinute","lazyInputSecond","period","controlsRef","clockRef","isAllowedHourCb","cb","includes","minHour","Number","split","maxHour","isAllowedMinuteCb","isHourAllowed","value","minMinute","maxMinute","minTime","maxTime","time","isAllowedSecondCb","isMinuteAllowed","minSecond","maxSecond","isAmPm","setInputData","genValue","emitValue","convert24to12","hour","convert12to24","Date","getHours","getMinutes","getSeconds","minute","second","trim","toLowerCase","match","parseInt","firstAllowed","allowedFn","range","first","find","length","setPeriod","newHour","onInput","onChange","emitChange","pickerProps","filterProps","timePickerControlsProps","timePickerClockProps","_createVNode","_mergeProps","undefined","class","style","header","actions"],"sources":["../../../src/labs/VTimePicker/VTimePicker.tsx"],"sourcesContent":["// Styles\nimport './VTimePicker.sass'\n\n// Components\nimport { pad } from './util'\nimport { VTimePickerClock } from './VTimePickerClock'\nimport { VTimePickerControls } from './VTimePickerControls'\nimport { makeVPickerProps, VPicker } from '@/labs/VPicker/VPicker'\n\n// Composables\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, onMounted, ref, watch } from 'vue'\nimport { createRange, genericComponent, omit, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VTimePickerViewMode } from './shared'\nimport type { VPickerSlots } from '@/labs/VPicker/VPicker'\n\ntype Period = 'am' | 'pm'\ntype AllowFunction = (val: number) => boolean\n\nconst rangeHours24 = createRange(24)\nconst rangeHours12am = createRange(12)\nconst rangeHours12pm = rangeHours12am.map(v => v + 12)\nconst range60 = createRange(60)\n\nexport type VTimePickerSlots = Omit<VPickerSlots, 'header'>\n\nexport const makeVTimePickerProps = propsFactory({\n allowedHours: [Function, Array] as PropType<AllowFunction | number[]>,\n allowedMinutes: [Function, Array] as PropType<AllowFunction | number[]>,\n allowedSeconds: [Function, Array] as PropType<AllowFunction | number[]>,\n ampmInTitle: Boolean,\n disabled: Boolean,\n format: {\n type: String as PropType<'ampm' | '24hr'>,\n default: 'ampm',\n },\n max: String,\n min: String,\n viewMode: {\n type: String as PropType<VTimePickerViewMode>,\n default: 'hour',\n },\n modelValue: null as any as PropType<any>,\n readonly: Boolean,\n scrollable: Boolean,\n useSeconds: Boolean,\n ...omit(makeVPickerProps({ title: '$vuetify.timePicker.title' }), ['landscape']),\n}, 'VTimePicker')\n\nexport const VTimePicker = genericComponent<VTimePickerSlots>()({\n name: 'VTimePicker',\n\n props: makeVTimePickerProps(),\n\n emits: {\n 'update:hour': (val: number) => true,\n 'update:minute': (val: number) => true,\n 'update:period': (val: Period) => true,\n 'update:second': (val: number) => true,\n 'update:modelValue': (val: string) => true,\n 'update:viewMode': (val: VTimePickerViewMode) => true,\n },\n\n setup (props, { emit, slots }) {\n const { t } = useLocale()\n const inputHour = ref(null as number | null)\n const inputMinute = ref(null as number | null)\n const inputSecond = ref(null as number | null)\n const lazyInputHour = ref(null as number | null)\n const lazyInputMinute = ref(null as number | null)\n const lazyInputSecond = ref(null as number | null)\n const period = ref('am' as Period)\n const viewMode = useProxiedModel(props, 'viewMode', 'hour')\n const controlsRef = ref<VTimePickerControls | null>(null)\n const clockRef = ref<VTimePickerClock | null>(null)\n\n const isAllowedHourCb = computed((): AllowFunction => {\n let cb: AllowFunction\n\n if (props.allowedHours instanceof Array) {\n cb = (val: number) => (props.allowedHours as number[]).includes(val)\n } else {\n cb = props.allowedHours as AllowFunction\n }\n\n if (!props.min && !props.max) return cb\n\n const minHour = props.min ? Number(props.min.split(':')[0]) : 0\n const maxHour = props.max ? Number(props.max.split(':')[0]) : 23\n\n return (val: number) => {\n return val >= Number(minHour) &&\n val <= Number(maxHour) &&\n (!cb || cb(val))\n }\n })\n\n const isAllowedMinuteCb = computed((): AllowFunction => {\n let cb: AllowFunction\n\n const isHourAllowed = !isAllowedHourCb.value || inputHour.value === null || isAllowedHourCb.value(inputHour.value)\n if (props.allowedMinutes instanceof Array) {\n cb = (val: number) => (props.allowedMinutes as number[]).includes(val)\n } else {\n cb = props.allowedMinutes as AllowFunction\n }\n\n if (!props.min && !props.max) {\n return isHourAllowed ? cb : () => false\n }\n\n const [minHour, minMinute] = props.min ? props.min.split(':').map(Number) : [0, 0]\n const [maxHour, maxMinute] = props.max ? props.max.split(':').map(Number) : [23, 59]\n const minTime = minHour * 60 + Number(minMinute)\n const maxTime = maxHour * 60 + Number(maxMinute)\n\n return (val: number) => {\n const time = 60 * inputHour.value! + val\n return time >= minTime &&\n time <= maxTime &&\n isHourAllowed &&\n (!cb || cb(val))\n }\n })\n\n const isAllowedSecondCb = computed((): AllowFunction => {\n let cb: AllowFunction\n\n const isHourAllowed = !isAllowedHourCb.value || inputHour.value === null || isAllowedHourCb.value(inputHour.value)\n const isMinuteAllowed = isHourAllowed &&\n (!isAllowedMinuteCb.value ||\n inputMinute.value === null ||\n isAllowedMinuteCb.value(inputMinute.value)\n )\n\n if (props.allowedSeconds instanceof Array) {\n cb = (val: number) => (props.allowedSeconds as number[]).includes(val)\n } else {\n cb = props.allowedSeconds as AllowFunction\n }\n\n if (!props.min && !props.max) {\n return isMinuteAllowed ? cb : () => false\n }\n\n const [minHour, minMinute, minSecond] = props.min ? props.min.split(':').map(Number) : [0, 0, 0]\n const [maxHour, maxMinute, maxSecond] = props.max ? props.max.split(':').map(Number) : [23, 59, 59]\n const minTime = minHour * 3600 + minMinute * 60 + Number(minSecond || 0)\n const maxTime = maxHour * 3600 + maxMinute * 60 + Number(maxSecond || 0)\n\n return (val: number) => {\n const time = 3600 * inputHour.value! + 60 * inputMinute.value! + val\n return time >= minTime &&\n time <= maxTime &&\n isMinuteAllowed &&\n (!cb || cb(val))\n }\n })\n\n const isAmPm = computed((): boolean => {\n return props.format === 'ampm'\n })\n\n watch(() => props.modelValue, val => setInputData(val))\n\n onMounted(() => {\n setInputData(props.modelValue)\n })\n\n function genValue () {\n if (inputHour.value != null && inputMinute.value != null && (!props.useSeconds || inputSecond.value != null)) {\n return `${pad(inputHour.value)}:${pad(inputMinute.value)}` + (props.useSeconds ? `:${pad(inputSecond.value!)}` : '')\n }\n\n return null\n }\n\n function emitValue () {\n const value = genValue()\n if (value !== null) emit('update:modelValue', value)\n }\n\n function convert24to12 (hour: number) {\n return hour ? ((hour - 1) % 12 + 1) : 12\n }\n\n function convert12to24 (hour: number, period: Period) {\n return hour % 12 + (period === 'pm' ? 12 : 0)\n }\n\n function setInputData (value: string | null | Date) {\n if (value == null || value === '') {\n inputHour.value = null\n inputMinute.value = null\n inputSecond.value = null\n } else if (value instanceof Date) {\n inputHour.value = value.getHours()\n inputMinute.value = value.getMinutes()\n inputSecond.value = value.getSeconds()\n } else {\n const [hour, , minute, , second, period] = value.trim().toLowerCase().match(/^(\\d+):(\\d+)(:(\\d+))?([ap]m)?$/) || new Array(6)\n\n inputHour.value = period ? convert12to24(parseInt(hour, 10), period as Period) : parseInt(hour, 10)\n inputMinute.value = parseInt(minute, 10)\n inputSecond.value = parseInt(second || 0, 10)\n }\n\n period.value = (inputHour.value == null || inputHour.value < 12) ? 'am' : 'pm'\n }\n\n function firstAllowed (type: VTimePickerViewMode, value: number) {\n const allowedFn = type === 'hour' ? isAllowedHourCb.value : (type === 'minute' ? isAllowedMinuteCb.value : isAllowedSecondCb.value)\n if (!allowedFn) return value\n\n // TODO: clean up (Note from V2 code)\n const range = type === 'minute'\n ? range60\n : (type === 'second'\n ? range60\n : (isAmPm.value\n ? (value < 12\n ? rangeHours12am\n : rangeHours12pm)\n : rangeHours24))\n const first = range.find(v => allowedFn((v + value) % range.length + range[0]))\n return ((first || 0) + value) % range.length + range[0]\n }\n\n function setPeriod (val: Period) {\n period.value = val\n if (inputHour.value != null) {\n const newHour = inputHour.value! + (period.value === 'am' ? -12 : 12)\n inputHour.value = firstAllowed('hour', newHour)\n }\n emit('update:period', val)\n emitValue()\n return true\n }\n\n function onInput (value: number) {\n if (viewMode.value === 'hour') {\n inputHour.value = isAmPm.value ? convert12to24(value, period.value) : value\n } else if (viewMode.value === 'minute') {\n inputMinute.value = value\n } else {\n inputSecond.value = value\n }\n }\n\n function onChange (value: number) {\n switch (viewMode.value || 'hour') {\n case 'hour':\n emit('update:hour', value)\n break\n case 'minute':\n emit('update:minute', value)\n break\n case 'second':\n emit('update:second', value)\n break\n default:\n break\n }\n\n const emitChange = inputHour.value !== null && inputMinute.value !== null && (props.useSeconds ? inputSecond.value !== null : true)\n if (viewMode.value === 'hour') {\n viewMode.value = 'minute'\n } else if (props.useSeconds && viewMode.value === 'minute') {\n viewMode.value = 'second'\n }\n\n if (inputHour.value === lazyInputHour.value &&\n inputMinute.value === lazyInputMinute.value &&\n (!props.useSeconds || inputSecond.value === lazyInputSecond.value)\n ) return\n\n const time = genValue()\n if (time === null) return\n\n lazyInputHour.value = inputHour.value\n lazyInputMinute.value = inputMinute.value\n props.useSeconds && (lazyInputSecond.value = inputSecond.value)\n\n emitChange && emitValue()\n }\n\n useRender(() => {\n const pickerProps = VPicker.filterProps(props)\n const timePickerControlsProps = VTimePickerControls.filterProps(props)\n const timePickerClockProps = VTimePickerClock.filterProps(omit(props, ['format', 'modelValue', 'min', 'max']))\n\n return (\n <VPicker\n { ...pickerProps }\n color={ undefined }\n class={[\n 'v-time-picker',\n props.class,\n ]}\n style={ props.style }\n v-slots={{\n title: () => slots.title?.() ?? (\n <div class=\"v-time-picker__title\">\n { t(props.title) }\n </div>\n ),\n header: () => (\n <VTimePickerControls\n { ...timePickerControlsProps }\n ampm={ isAmPm.value || props.ampmInTitle }\n ampmReadonly={ isAmPm.value && !props.ampmInTitle }\n hour={ inputHour.value as number }\n minute={ inputMinute.value as number }\n period={ period.value }\n second={ inputSecond.value as number }\n viewMode={ viewMode.value }\n onUpdate:period={ (val: Period) => setPeriod(val) }\n onUpdate:viewMode={ (value: VTimePickerViewMode) => (viewMode.value = value) }\n ref={ controlsRef }\n />\n ),\n default: () => (\n <VTimePickerClock\n { ...timePickerClockProps }\n allowedValues={\n viewMode.value === 'hour'\n ? isAllowedHourCb.value\n : (viewMode.value === 'minute'\n ? isAllowedMinuteCb.value\n : isAllowedSecondCb.value)\n }\n double={ viewMode.value === 'hour' && !isAmPm.value }\n format={ viewMode.value === 'hour'\n ? (isAmPm.value ? convert24to12 : (val: number) => val)\n : (val: number) => pad(val, 2)\n }\n max={ viewMode.value === 'hour' ? (isAmPm.value && period.value === 'am' ? 11 : 23) : 59 }\n min={ viewMode.value === 'hour' && isAmPm.value && period.value === 'pm' ? 12 : 0 }\n size={ 20 }\n step={ viewMode.value === 'hour' ? 1 : 5 }\n modelValue={ viewMode.value === 'hour'\n ? inputHour.value as number\n : (viewMode.value === 'minute'\n ? inputMinute.value as number\n : inputSecond.value as number)\n }\n onChange={ onChange }\n onInput={ onInput }\n ref={ clockRef }\n />\n ),\n actions: slots.actions,\n }}\n />\n )\n })\n },\n})\n\nexport type VTimePicker = InstanceType<typeof VTimePicker>\n"],"mappings":"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","ignoreList":[]}
@@ -7,7 +7,6 @@ import { pad } from "./util.mjs";
7
7
  import { VBtn } from "../../components/VBtn/index.mjs"; // Composables
8
8
  import { useLocale } from "../../composables/locale.mjs"; // Utilities
9
9
  import { genericComponent, propsFactory, useRender } from "../../util/index.mjs"; // Types
10
- import { SelectingTimes } from "./SelectingTimes.mjs";
11
10
  export const makeVTimePickerControlsProps = propsFactory({
12
11
  ampm: Boolean,
13
12
  ampmInTitle: Boolean,
@@ -20,15 +19,15 @@ export const makeVTimePickerControlsProps = propsFactory({
20
19
  period: String,
21
20
  readonly: Boolean,
22
21
  useSeconds: Boolean,
23
- selecting: Number,
24
- value: Number
22
+ value: Number,
23
+ viewMode: String
25
24
  }, 'VTimePickerControls');
26
25
  export const VTimePickerControls = genericComponent()({
27
26
  name: 'VTimePickerControls',
28
27
  props: makeVTimePickerControlsProps(),
29
28
  emits: {
30
29
  'update:period': data => true,
31
- 'update:selecting': data => true
30
+ 'update:viewMode': data => true
32
31
  },
33
32
  setup(props, _ref) {
34
33
  let {
@@ -51,8 +50,8 @@ export const VTimePickerControls = genericComponent()({
51
50
  'v-time-picker-controls__time--with-seconds': props.useSeconds
52
51
  }
53
52
  }, [_createVNode(VBtn, {
54
- "active": props.selecting === 1,
55
- "color": props.selecting === 1 ? props.color : undefined,
53
+ "active": props.viewMode === 'hour',
54
+ "color": props.viewMode === 'hour' ? props.color : undefined,
56
55
  "disabled": props.disabled,
57
56
  "variant": "tonal",
58
57
  "class": {
@@ -61,24 +60,24 @@ export const VTimePickerControls = genericComponent()({
61
60
  'v-time-picker-controls__time--with-seconds__btn': props.useSeconds
62
61
  },
63
62
  "text": props.hour == null ? '--' : pad(`${hour}`),
64
- "onClick": () => emit('update:selecting', SelectingTimes.Hour)
63
+ "onClick": () => emit('update:viewMode', 'hour')
65
64
  }, null), _createVNode("span", {
66
65
  "class": ['v-time-picker-controls__time__separator', {
67
66
  'v-time-picker-controls--with-seconds__time__separator': props.useSeconds
68
67
  }]
69
68
  }, [_createTextVNode(":")]), _createVNode(VBtn, {
70
- "active": props.selecting === 2,
71
- "color": props.selecting === 2 ? props.color : undefined,
69
+ "active": props.viewMode === 'minute',
70
+ "color": props.viewMode === 'minute' ? props.color : undefined,
72
71
  "class": {
73
72
  'v-time-picker-controls__time__btn': true,
74
- 'v-time-picker-controls__time__btn__active': props.selecting === 2,
73
+ 'v-time-picker-controls__time__btn__active': props.viewMode === 'minute',
75
74
  'v-time-picker-controls__time--with-ampm__btn': props.ampm,
76
75
  'v-time-picker-controls__time--with-seconds__btn': props.useSeconds
77
76
  },
78
77
  "disabled": props.disabled,
79
78
  "variant": "tonal",
80
79
  "text": props.minute == null ? '--' : pad(props.minute),
81
- "onClick": () => emit('update:selecting', SelectingTimes.Minute)
80
+ "onClick": () => emit('update:viewMode', 'minute')
82
81
  }, null), props.useSeconds && _createVNode("span", {
83
82
  "class": ['v-time-picker-controls__time__separator', {
84
83
  'v-time-picker-controls--with-seconds__time__separator': props.useSeconds
@@ -86,11 +85,13 @@ export const VTimePickerControls = genericComponent()({
86
85
  "key": "secondsDivider"
87
86
  }, [_createTextVNode(":")]), props.useSeconds && _createVNode(VBtn, {
88
87
  "key": "secondsVal",
88
+ "active": props.viewMode === 'second',
89
+ "color": props.viewMode === 'second' ? props.color : undefined,
89
90
  "variant": "tonal",
90
- "onClick": () => emit('update:selecting', SelectingTimes.Second),
91
+ "onClick": () => emit('update:viewMode', 'second'),
91
92
  "class": {
92
93
  'v-time-picker-controls__time__btn': true,
93
- 'v-time-picker-controls__time__btn__active': props.selecting === 3,
94
+ 'v-time-picker-controls__time__btn__active': props.viewMode === 'second',
94
95
  'v-time-picker-controls__time--with-seconds__btn': props.useSeconds
95
96
  },
96
97
  "disabled": props.disabled,