vuetify 3.5.11 → 3.5.12

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 (182) hide show
  1. package/dist/_component-variables-labs.sass +2 -1
  2. package/dist/json/attributes.json +243 -19
  3. package/dist/json/importMap-labs.json +22 -10
  4. package/dist/json/importMap.json +124 -124
  5. package/dist/json/tags.json +71 -0
  6. package/dist/json/web-types.json +747 -38
  7. package/dist/vuetify-labs.css +2339 -2089
  8. package/dist/vuetify-labs.d.ts +1117 -154
  9. package/dist/vuetify-labs.esm.js +675 -25
  10. package/dist/vuetify-labs.esm.js.map +1 -1
  11. package/dist/vuetify-labs.js +675 -25
  12. package/dist/vuetify-labs.min.css +2 -2
  13. package/dist/vuetify.css +1661 -1652
  14. package/dist/vuetify.d.ts +321 -192
  15. package/dist/vuetify.esm.js +33 -19
  16. package/dist/vuetify.esm.js.map +1 -1
  17. package/dist/vuetify.js +33 -19
  18. package/dist/vuetify.js.map +1 -1
  19. package/dist/vuetify.min.css +2 -2
  20. package/dist/vuetify.min.js +93 -92
  21. package/dist/vuetify.min.js.map +1 -1
  22. package/lib/components/VAvatar/VAvatar.css +6 -0
  23. package/lib/components/VAvatar/VAvatar.sass +6 -0
  24. package/lib/components/VAvatar/_variables.scss +2 -0
  25. package/lib/components/VCheckbox/index.d.mts +54 -18
  26. package/lib/components/VChip/VChip.css +5 -2
  27. package/lib/components/VChip/VChip.sass +3 -0
  28. package/lib/components/VChip/_variables.scss +2 -2
  29. package/lib/components/VDivider/VDivider.css +1 -1
  30. package/lib/components/VDivider/VDivider.sass +1 -1
  31. package/lib/components/VExpansionPanel/VExpansionPanel.css +3 -3
  32. package/lib/components/VExpansionPanel/VExpansionPanel.sass +2 -2
  33. package/lib/components/VField/VField.css +1 -1
  34. package/lib/components/VField/_variables.scss +1 -1
  35. package/lib/components/VFileInput/index.d.mts +12 -12
  36. package/lib/components/VForm/index.d.mts +42 -42
  37. package/lib/components/VInput/index.d.mts +6 -6
  38. package/lib/components/VRadio/index.d.mts +27 -9
  39. package/lib/components/VRadioGroup/index.d.mts +27 -9
  40. package/lib/components/VSelectionControl/VSelectionControl.mjs +1 -0
  41. package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
  42. package/lib/components/VSelectionControl/index.d.mts +27 -9
  43. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs +1 -1
  44. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs.map +1 -1
  45. package/lib/components/VSelectionControlGroup/index.d.mts +27 -9
  46. package/lib/components/VSwitch/index.d.mts +27 -9
  47. package/lib/components/VTextField/index.d.mts +12 -12
  48. package/lib/components/VTextarea/index.d.mts +12 -12
  49. package/lib/components/VValidation/index.d.mts +6 -6
  50. package/lib/components/index.d.mts +279 -153
  51. package/lib/composables/form.mjs.map +1 -1
  52. package/lib/composables/router.mjs +16 -8
  53. package/lib/composables/router.mjs.map +1 -1
  54. package/lib/composables/transition.mjs +5 -2
  55. package/lib/composables/transition.mjs.map +1 -1
  56. package/lib/composables/validation.mjs +5 -4
  57. package/lib/composables/validation.mjs.map +1 -1
  58. package/lib/entry-bundler.mjs +1 -1
  59. package/lib/framework.mjs +1 -1
  60. package/lib/index.d.mts +42 -39
  61. package/lib/labs/VNumberInput/VNumberInput.mjs +4 -4
  62. package/lib/labs/VNumberInput/VNumberInput.mjs.map +1 -1
  63. package/lib/labs/VTimePicker/SelectingTimes.mjs.map +1 -0
  64. package/lib/labs/VTimePicker/VTimePicker.css +8 -0
  65. package/lib/labs/VTimePicker/VTimePicker.mjs +265 -0
  66. package/lib/labs/VTimePicker/VTimePicker.mjs.map +1 -0
  67. package/lib/labs/VTimePicker/VTimePicker.sass +10 -0
  68. package/lib/labs/VTimePicker/VTimePickerClock.css +130 -0
  69. package/lib/labs/VTimePicker/VTimePickerClock.mjs +244 -0
  70. package/lib/labs/VTimePicker/VTimePickerClock.mjs.map +1 -0
  71. package/lib/{components → labs}/VTimePicker/VTimePickerClock.sass +22 -39
  72. package/lib/labs/VTimePicker/VTimePickerControls.css +104 -0
  73. package/lib/labs/VTimePicker/VTimePickerControls.mjs +125 -0
  74. package/lib/labs/VTimePicker/VTimePickerControls.mjs.map +1 -0
  75. package/lib/labs/VTimePicker/VTimePickerControls.sass +102 -0
  76. package/lib/labs/VTimePicker/_variables.scss +34 -0
  77. package/lib/labs/VTimePicker/index.d.mts +848 -0
  78. package/lib/labs/VTimePicker/index.mjs +4 -0
  79. package/lib/labs/VTimePicker/index.mjs.map +1 -0
  80. package/lib/labs/components.d.mts +835 -1
  81. package/lib/labs/components.mjs +1 -0
  82. package/lib/labs/components.mjs.map +1 -1
  83. package/lib/locale/af.mjs +2 -1
  84. package/lib/locale/af.mjs.map +1 -1
  85. package/lib/locale/ar.mjs +2 -1
  86. package/lib/locale/ar.mjs.map +1 -1
  87. package/lib/locale/az.mjs +2 -1
  88. package/lib/locale/az.mjs.map +1 -1
  89. package/lib/locale/bg.mjs +2 -1
  90. package/lib/locale/bg.mjs.map +1 -1
  91. package/lib/locale/ca.mjs +2 -1
  92. package/lib/locale/ca.mjs.map +1 -1
  93. package/lib/locale/ckb.mjs +2 -1
  94. package/lib/locale/ckb.mjs.map +1 -1
  95. package/lib/locale/cs.mjs +2 -1
  96. package/lib/locale/cs.mjs.map +1 -1
  97. package/lib/locale/da.mjs +2 -1
  98. package/lib/locale/da.mjs.map +1 -1
  99. package/lib/locale/de.mjs +2 -1
  100. package/lib/locale/de.mjs.map +1 -1
  101. package/lib/locale/el.mjs +2 -1
  102. package/lib/locale/el.mjs.map +1 -1
  103. package/lib/locale/en.mjs +2 -1
  104. package/lib/locale/en.mjs.map +1 -1
  105. package/lib/locale/es.mjs +2 -1
  106. package/lib/locale/es.mjs.map +1 -1
  107. package/lib/locale/et.mjs +2 -1
  108. package/lib/locale/et.mjs.map +1 -1
  109. package/lib/locale/fa.mjs +2 -1
  110. package/lib/locale/fa.mjs.map +1 -1
  111. package/lib/locale/fi.mjs +2 -1
  112. package/lib/locale/fi.mjs.map +1 -1
  113. package/lib/locale/fr.mjs +2 -1
  114. package/lib/locale/fr.mjs.map +1 -1
  115. package/lib/locale/he.mjs +2 -1
  116. package/lib/locale/he.mjs.map +1 -1
  117. package/lib/locale/hr.mjs +2 -1
  118. package/lib/locale/hr.mjs.map +1 -1
  119. package/lib/locale/hu.mjs +2 -1
  120. package/lib/locale/hu.mjs.map +1 -1
  121. package/lib/locale/id.mjs +2 -1
  122. package/lib/locale/id.mjs.map +1 -1
  123. package/lib/locale/index.d.mts +43 -0
  124. package/lib/locale/it.mjs +2 -1
  125. package/lib/locale/it.mjs.map +1 -1
  126. package/lib/locale/ja.mjs +2 -1
  127. package/lib/locale/ja.mjs.map +1 -1
  128. package/lib/locale/km.mjs +2 -1
  129. package/lib/locale/km.mjs.map +1 -1
  130. package/lib/locale/ko.mjs +2 -1
  131. package/lib/locale/ko.mjs.map +1 -1
  132. package/lib/locale/lt.mjs +2 -1
  133. package/lib/locale/lt.mjs.map +1 -1
  134. package/lib/locale/lv.mjs +2 -1
  135. package/lib/locale/lv.mjs.map +1 -1
  136. package/lib/locale/nl.mjs +2 -1
  137. package/lib/locale/nl.mjs.map +1 -1
  138. package/lib/locale/no.mjs +2 -1
  139. package/lib/locale/no.mjs.map +1 -1
  140. package/lib/locale/pl.mjs +2 -1
  141. package/lib/locale/pl.mjs.map +1 -1
  142. package/lib/locale/pt.mjs +2 -1
  143. package/lib/locale/pt.mjs.map +1 -1
  144. package/lib/locale/ro.mjs +2 -1
  145. package/lib/locale/ro.mjs.map +1 -1
  146. package/lib/locale/ru.mjs +2 -1
  147. package/lib/locale/ru.mjs.map +1 -1
  148. package/lib/locale/sk.mjs +2 -1
  149. package/lib/locale/sk.mjs.map +1 -1
  150. package/lib/locale/sl.mjs +2 -1
  151. package/lib/locale/sl.mjs.map +1 -1
  152. package/lib/locale/sr-Cyrl.mjs +2 -1
  153. package/lib/locale/sr-Cyrl.mjs.map +1 -1
  154. package/lib/locale/sr-Latn.mjs +2 -1
  155. package/lib/locale/sr-Latn.mjs.map +1 -1
  156. package/lib/locale/sv.mjs +2 -1
  157. package/lib/locale/sv.mjs.map +1 -1
  158. package/lib/locale/th.mjs +2 -1
  159. package/lib/locale/th.mjs.map +1 -1
  160. package/lib/locale/tr.mjs +2 -1
  161. package/lib/locale/tr.mjs.map +1 -1
  162. package/lib/locale/uk.mjs +2 -1
  163. package/lib/locale/uk.mjs.map +1 -1
  164. package/lib/locale/vi.mjs +2 -1
  165. package/lib/locale/vi.mjs.map +1 -1
  166. package/lib/locale/zh-Hans.mjs +2 -1
  167. package/lib/locale/zh-Hans.mjs.map +1 -1
  168. package/lib/locale/zh-Hant.mjs +2 -1
  169. package/lib/locale/zh-Hant.mjs.map +1 -1
  170. package/package.json +4 -4
  171. package/lib/components/VTimePicker/SelectingTimes.mjs.map +0 -1
  172. package/lib/components/VTimePicker/VTimePicker.mjs +0 -288
  173. package/lib/components/VTimePicker/VTimePicker.mjs.map +0 -1
  174. package/lib/components/VTimePicker/VTimePickerClock.mjs +0 -251
  175. package/lib/components/VTimePicker/VTimePickerClock.mjs.map +0 -1
  176. package/lib/components/VTimePicker/VTimePickerTitle.mjs +0 -64
  177. package/lib/components/VTimePicker/VTimePickerTitle.mjs.map +0 -1
  178. package/lib/components/VTimePicker/VTimePickerTitle.sass +0 -61
  179. package/lib/components/VTimePicker/_variables.scss +0 -32
  180. package/lib/components/VTimePicker/index.mjs +0 -12
  181. package/lib/components/VTimePicker/index.mjs.map +0 -1
  182. /package/lib/{components → labs}/VTimePicker/SelectingTimes.mjs +0 -0
@@ -1,288 +0,0 @@
1
- // @ts-nocheck
2
- /* eslint-disable */
3
- // Components
4
- import VTimePickerTitle from "./VTimePickerTitle.mjs";
5
- import VTimePickerClock from "./VTimePickerClock.mjs"; // Mixins
6
- import Picker from "../../mixins/picker.mjs";
7
- import PickerButton from "../../mixins/picker-button.mjs"; // Utils
8
- import { createRange } from "../../util/helpers.mjs";
9
- import pad from "../VDatePicker/util/pad.mjs";
10
- import mixins from "../../util/mixins.mjs"; // Types
11
- import { SelectingTimes } from "./SelectingTimes.mjs";
12
- const rangeHours24 = createRange(24);
13
- const rangeHours12am = createRange(12);
14
- const rangeHours12pm = rangeHours12am.map(v => v + 12);
15
- const range60 = createRange(60);
16
- const selectingNames = {
17
- 1: 'hour',
18
- 2: 'minute',
19
- 3: 'second'
20
- };
21
- export { SelectingTimes };
22
- export default mixins(Picker, PickerButton
23
- /* @vue/component */).extend({
24
- name: 'v-time-picker',
25
- props: {
26
- allowedHours: [Function, Array],
27
- allowedMinutes: [Function, Array],
28
- allowedSeconds: [Function, Array],
29
- disabled: Boolean,
30
- format: {
31
- type: String,
32
- default: 'ampm',
33
- validator(val) {
34
- return ['ampm', '24hr'].includes(val);
35
- }
36
- },
37
- min: String,
38
- max: String,
39
- readonly: Boolean,
40
- scrollable: Boolean,
41
- useSeconds: Boolean,
42
- value: null,
43
- ampmInTitle: Boolean
44
- },
45
- data() {
46
- return {
47
- inputHour: null,
48
- inputMinute: null,
49
- inputSecond: null,
50
- lazyInputHour: null,
51
- lazyInputMinute: null,
52
- lazyInputSecond: null,
53
- period: 'am',
54
- selecting: SelectingTimes.Hour
55
- };
56
- },
57
- computed: {
58
- selectingHour: {
59
- get() {
60
- return this.selecting === SelectingTimes.Hour;
61
- },
62
- set(v) {
63
- this.selecting = SelectingTimes.Hour;
64
- }
65
- },
66
- selectingMinute: {
67
- get() {
68
- return this.selecting === SelectingTimes.Minute;
69
- },
70
- set(v) {
71
- this.selecting = SelectingTimes.Minute;
72
- }
73
- },
74
- selectingSecond: {
75
- get() {
76
- return this.selecting === SelectingTimes.Second;
77
- },
78
- set(v) {
79
- this.selecting = SelectingTimes.Second;
80
- }
81
- },
82
- isAllowedHourCb() {
83
- let cb;
84
- if (this.allowedHours instanceof Array) {
85
- cb = val => this.allowedHours.includes(val);
86
- } else {
87
- cb = this.allowedHours;
88
- }
89
- if (!this.min && !this.max) return cb;
90
- const minHour = this.min ? Number(this.min.split(':')[0]) : 0;
91
- const maxHour = this.max ? Number(this.max.split(':')[0]) : 23;
92
- return val => {
93
- return val >= minHour * 1 && val <= maxHour * 1 && (!cb || cb(val));
94
- };
95
- },
96
- isAllowedMinuteCb() {
97
- let cb;
98
- const isHourAllowed = !this.isAllowedHourCb || this.inputHour === null || this.isAllowedHourCb(this.inputHour);
99
- if (this.allowedMinutes instanceof Array) {
100
- cb = val => this.allowedMinutes.includes(val);
101
- } else {
102
- cb = this.allowedMinutes;
103
- }
104
- if (!this.min && !this.max) {
105
- return isHourAllowed ? cb : () => false;
106
- }
107
- const [minHour, minMinute] = this.min ? this.min.split(':').map(Number) : [0, 0];
108
- const [maxHour, maxMinute] = this.max ? this.max.split(':').map(Number) : [23, 59];
109
- const minTime = minHour * 60 + minMinute * 1;
110
- const maxTime = maxHour * 60 + maxMinute * 1;
111
- return val => {
112
- const time = 60 * this.inputHour + val;
113
- return time >= minTime && time <= maxTime && isHourAllowed && (!cb || cb(val));
114
- };
115
- },
116
- isAllowedSecondCb() {
117
- let cb;
118
- const isHourAllowed = !this.isAllowedHourCb || this.inputHour === null || this.isAllowedHourCb(this.inputHour);
119
- const isMinuteAllowed = isHourAllowed && (!this.isAllowedMinuteCb || this.inputMinute === null || this.isAllowedMinuteCb(this.inputMinute));
120
- if (this.allowedSeconds instanceof Array) {
121
- cb = val => this.allowedSeconds.includes(val);
122
- } else {
123
- cb = this.allowedSeconds;
124
- }
125
- if (!this.min && !this.max) {
126
- return isMinuteAllowed ? cb : () => false;
127
- }
128
- const [minHour, minMinute, minSecond] = this.min ? this.min.split(':').map(Number) : [0, 0, 0];
129
- const [maxHour, maxMinute, maxSecond] = this.max ? this.max.split(':').map(Number) : [23, 59, 59];
130
- const minTime = minHour * 3600 + minMinute * 60 + (minSecond || 0) * 1;
131
- const maxTime = maxHour * 3600 + maxMinute * 60 + (maxSecond || 0) * 1;
132
- return val => {
133
- const time = 3600 * this.inputHour + 60 * this.inputMinute + val;
134
- return time >= minTime && time <= maxTime && isMinuteAllowed && (!cb || cb(val));
135
- };
136
- },
137
- isAmPm() {
138
- return this.format === 'ampm';
139
- }
140
- },
141
- watch: {
142
- value: 'setInputData'
143
- },
144
- mounted() {
145
- this.setInputData(this.value);
146
- this.$on('update:period', this.setPeriod);
147
- },
148
- methods: {
149
- genValue() {
150
- if (this.inputHour != null && this.inputMinute != null && (!this.useSeconds || this.inputSecond != null)) {
151
- return `${pad(this.inputHour)}:${pad(this.inputMinute)}` + (this.useSeconds ? `:${pad(this.inputSecond)}` : '');
152
- }
153
- return null;
154
- },
155
- emitValue() {
156
- const value = this.genValue();
157
- if (value !== null) this.$emit('input', value);
158
- },
159
- setPeriod(period) {
160
- this.period = period;
161
- if (this.inputHour != null) {
162
- const newHour = this.inputHour + (period === 'am' ? -12 : 12);
163
- this.inputHour = this.firstAllowed('hour', newHour);
164
- this.emitValue();
165
- }
166
- },
167
- setInputData(value) {
168
- if (value == null || value === '') {
169
- this.inputHour = null;
170
- this.inputMinute = null;
171
- this.inputSecond = null;
172
- } else if (value instanceof Date) {
173
- this.inputHour = value.getHours();
174
- this.inputMinute = value.getMinutes();
175
- this.inputSecond = value.getSeconds();
176
- } else {
177
- const [, hour, minute,, second, period] = value.trim().toLowerCase().match(/^(\d+):(\d+)(:(\d+))?([ap]m)?$/) || new Array(6);
178
- this.inputHour = period ? this.convert12to24(parseInt(hour, 10), period) : parseInt(hour, 10);
179
- this.inputMinute = parseInt(minute, 10);
180
- this.inputSecond = parseInt(second || 0, 10);
181
- }
182
- this.period = this.inputHour == null || this.inputHour < 12 ? 'am' : 'pm';
183
- },
184
- convert24to12(hour) {
185
- return hour ? (hour - 1) % 12 + 1 : 12;
186
- },
187
- convert12to24(hour, period) {
188
- return hour % 12 + (period === 'pm' ? 12 : 0);
189
- },
190
- onInput(value) {
191
- if (this.selecting === SelectingTimes.Hour) {
192
- this.inputHour = this.isAmPm ? this.convert12to24(value, this.period) : value;
193
- } else if (this.selecting === SelectingTimes.Minute) {
194
- this.inputMinute = value;
195
- } else {
196
- this.inputSecond = value;
197
- }
198
- this.emitValue();
199
- },
200
- onChange(value) {
201
- this.$emit(`click:${selectingNames[this.selecting]}`, value);
202
- const emitChange = this.selecting === (this.useSeconds ? SelectingTimes.Second : SelectingTimes.Minute);
203
- if (this.selecting === SelectingTimes.Hour) {
204
- this.selecting = SelectingTimes.Minute;
205
- } else if (this.useSeconds && this.selecting === SelectingTimes.Minute) {
206
- this.selecting = SelectingTimes.Second;
207
- }
208
- if (this.inputHour === this.lazyInputHour && this.inputMinute === this.lazyInputMinute && (!this.useSeconds || this.inputSecond === this.lazyInputSecond)) return;
209
- const time = this.genValue();
210
- if (time === null) return;
211
- this.lazyInputHour = this.inputHour;
212
- this.lazyInputMinute = this.inputMinute;
213
- this.useSeconds && (this.lazyInputSecond = this.inputSecond);
214
- emitChange && this.$emit('change', time);
215
- },
216
- firstAllowed(type, value) {
217
- const allowedFn = type === 'hour' ? this.isAllowedHourCb : type === 'minute' ? this.isAllowedMinuteCb : this.isAllowedSecondCb;
218
- if (!allowedFn) return value;
219
-
220
- // TODO: clean up
221
- const range = type === 'minute' ? range60 : type === 'second' ? range60 : this.isAmPm ? value < 12 ? rangeHours12am : rangeHours12pm : rangeHours24;
222
- const first = range.find(v => allowedFn((v + value) % range.length + range[0]));
223
- return ((first || 0) + value) % range.length + range[0];
224
- },
225
- genClock() {
226
- return this.$createElement(VTimePickerClock, {
227
- props: {
228
- allowedValues: this.selecting === SelectingTimes.Hour ? this.isAllowedHourCb : this.selecting === SelectingTimes.Minute ? this.isAllowedMinuteCb : this.isAllowedSecondCb,
229
- color: this.color,
230
- dark: this.dark,
231
- disabled: this.disabled,
232
- double: this.selecting === SelectingTimes.Hour && !this.isAmPm,
233
- format: this.selecting === SelectingTimes.Hour ? this.isAmPm ? this.convert24to12 : val => val : val => pad(val, 2),
234
- light: this.light,
235
- max: this.selecting === SelectingTimes.Hour ? this.isAmPm && this.period === 'am' ? 11 : 23 : 59,
236
- min: this.selecting === SelectingTimes.Hour && this.isAmPm && this.period === 'pm' ? 12 : 0,
237
- readonly: this.readonly,
238
- scrollable: this.scrollable,
239
- size: Number(this.width) - (!this.fullWidth && this.landscape ? 80 : 20),
240
- step: this.selecting === SelectingTimes.Hour ? 1 : 5,
241
- value: this.selecting === SelectingTimes.Hour ? this.inputHour : this.selecting === SelectingTimes.Minute ? this.inputMinute : this.inputSecond
242
- },
243
- on: {
244
- input: this.onInput,
245
- change: this.onChange
246
- },
247
- ref: 'clock'
248
- });
249
- },
250
- genClockAmPm() {
251
- return this.$createElement('div', this.setTextColor(this.color || 'primary', {
252
- staticClass: 'v-time-picker-clock__ampm'
253
- }), [this.genPickerButton('period', 'am', this.$vuetify.lang.t('$vuetify.timePicker.am'), this.disabled || this.readonly), this.genPickerButton('period', 'pm', this.$vuetify.lang.t('$vuetify.timePicker.pm'), this.disabled || this.readonly)]);
254
- },
255
- genPickerBody() {
256
- return this.$createElement('div', {
257
- staticClass: 'v-time-picker-clock__container',
258
- key: this.selecting
259
- }, [!this.ampmInTitle && this.isAmPm && this.genClockAmPm(), this.genClock()]);
260
- },
261
- genPickerTitle() {
262
- return this.$createElement(VTimePickerTitle, {
263
- props: {
264
- ampm: this.isAmPm,
265
- ampmReadonly: this.isAmPm && !this.ampmInTitle,
266
- disabled: this.disabled,
267
- hour: this.inputHour,
268
- minute: this.inputMinute,
269
- second: this.inputSecond,
270
- period: this.period,
271
- readonly: this.readonly,
272
- useSeconds: this.useSeconds,
273
- selecting: this.selecting
274
- },
275
- on: {
276
- 'update:selecting': value => this.selecting = value,
277
- 'update:period': period => this.$emit('update:period', period)
278
- },
279
- ref: 'title',
280
- slot: 'title'
281
- });
282
- }
283
- },
284
- render() {
285
- return this.genPicker('v-picker--time');
286
- }
287
- });
288
- //# sourceMappingURL=VTimePicker.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"VTimePicker.mjs","names":["VTimePickerTitle","VTimePickerClock","Picker","PickerButton","createRange","pad","mixins","SelectingTimes","rangeHours24","rangeHours12am","rangeHours12pm","map","v","range60","selectingNames","extend","name","props","allowedHours","Function","Array","allowedMinutes","allowedSeconds","disabled","Boolean","format","type","String","default","validator","val","includes","min","max","readonly","scrollable","useSeconds","value","ampmInTitle","data","inputHour","inputMinute","inputSecond","lazyInputHour","lazyInputMinute","lazyInputSecond","period","selecting","Hour","computed","selectingHour","get","set","selectingMinute","Minute","selectingSecond","Second","isAllowedHourCb","cb","minHour","Number","split","maxHour","isAllowedMinuteCb","isHourAllowed","minMinute","maxMinute","minTime","maxTime","time","isAllowedSecondCb","isMinuteAllowed","minSecond","maxSecond","isAmPm","watch","mounted","setInputData","$on","setPeriod","methods","genValue","emitValue","$emit","newHour","firstAllowed","Date","getHours","getMinutes","getSeconds","hour","minute","second","trim","toLowerCase","match","convert12to24","parseInt","convert24to12","onInput","onChange","emitChange","allowedFn","range","first","find","length","genClock","$createElement","allowedValues","color","dark","double","light","size","width","fullWidth","landscape","step","on","input","change","ref","genClockAmPm","setTextColor","staticClass","genPickerButton","$vuetify","lang","t","genPickerBody","key","genPickerTitle","ampm","ampmReadonly","slot","render","genPicker"],"sources":["../../../src/components/VTimePicker/VTimePicker.ts"],"sourcesContent":["// @ts-nocheck\n/* eslint-disable */\n\n// Components\nimport VTimePickerTitle from './VTimePickerTitle'\nimport VTimePickerClock from './VTimePickerClock'\n\n// Mixins\nimport Picker from '../../mixins/picker'\nimport PickerButton from '../../mixins/picker-button'\n\n// Utils\nimport { createRange } from '../../util/helpers'\nimport pad from '../VDatePicker/util/pad'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode, PropType } from 'vue'\nimport { SelectingTimes } from './SelectingTimes'\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' }\nexport { SelectingTimes }\n\ntype Period = 'am' | 'pm'\ntype AllowFunction = (val: number) => boolean\n\nexport default mixins(\n Picker,\n PickerButton\n/* @vue/component */\n).extend({\n name: 'v-time-picker',\n\n props: {\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 disabled: Boolean,\n format: {\n type: String as PropType<'ampm' | '24hr'>,\n default: 'ampm',\n validator (val: any) {\n return ['ampm', '24hr'].includes(val)\n },\n },\n min: String,\n max: String,\n readonly: Boolean,\n scrollable: Boolean,\n useSeconds: Boolean,\n value: null as any as PropType<any>,\n ampmInTitle: Boolean,\n },\n\n data () {\n return {\n inputHour: null as number | null,\n inputMinute: null as number | null,\n inputSecond: null as number | null,\n lazyInputHour: null as number | null,\n lazyInputMinute: null as number | null,\n lazyInputSecond: null as number | null,\n period: 'am' as Period,\n selecting: SelectingTimes.Hour,\n }\n },\n\n computed: {\n selectingHour: {\n get (): boolean {\n return this.selecting === SelectingTimes.Hour\n },\n set (v: boolean) {\n this.selecting = SelectingTimes.Hour\n },\n },\n selectingMinute: {\n get (): boolean {\n return this.selecting === SelectingTimes.Minute\n },\n set (v: boolean) {\n this.selecting = SelectingTimes.Minute\n },\n },\n selectingSecond: {\n get (): boolean {\n return this.selecting === SelectingTimes.Second\n },\n set (v: boolean) {\n this.selecting = SelectingTimes.Second\n },\n },\n isAllowedHourCb (): AllowFunction {\n let cb: AllowFunction\n\n if (this.allowedHours instanceof Array) {\n cb = (val: number) => (this.allowedHours as number[]).includes(val)\n } else {\n cb = this.allowedHours\n }\n\n if (!this.min && !this.max) return cb\n\n const minHour = this.min ? Number(this.min.split(':')[0]) : 0\n const maxHour = this.max ? Number(this.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 isAllowedMinuteCb (): AllowFunction {\n let cb: AllowFunction\n\n const isHourAllowed = !this.isAllowedHourCb || this.inputHour === null || this.isAllowedHourCb(this.inputHour)\n if (this.allowedMinutes instanceof Array) {\n cb = (val: number) => (this.allowedMinutes as number[]).includes(val)\n } else {\n cb = this.allowedMinutes\n }\n\n if (!this.min && !this.max) {\n return isHourAllowed ? cb : () => false\n }\n\n const [minHour, minMinute] = this.min ? this.min.split(':').map(Number) : [0, 0]\n const [maxHour, maxMinute] = this.max ? this.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 * this.inputHour! + val\n return time >= minTime &&\n time <= maxTime &&\n isHourAllowed &&\n (!cb || cb(val))\n }\n },\n isAllowedSecondCb (): AllowFunction {\n let cb: AllowFunction\n\n const isHourAllowed = !this.isAllowedHourCb || this.inputHour === null || this.isAllowedHourCb(this.inputHour)\n const isMinuteAllowed = isHourAllowed &&\n (!this.isAllowedMinuteCb ||\n this.inputMinute === null ||\n this.isAllowedMinuteCb(this.inputMinute)\n )\n\n if (this.allowedSeconds instanceof Array) {\n cb = (val: number) => (this.allowedSeconds as number[]).includes(val)\n } else {\n cb = this.allowedSeconds\n }\n\n if (!this.min && !this.max) {\n return isMinuteAllowed ? cb : () => false\n }\n\n const [minHour, minMinute, minSecond] = this.min ? this.min.split(':').map(Number) : [0, 0, 0]\n const [maxHour, maxMinute, maxSecond] = this.max ? this.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 * this.inputHour! + 60 * this.inputMinute! + val\n return time >= minTime &&\n time <= maxTime &&\n isMinuteAllowed &&\n (!cb || cb(val))\n }\n },\n isAmPm (): boolean {\n return this.format === 'ampm'\n },\n },\n\n watch: {\n value: 'setInputData',\n },\n\n mounted () {\n this.setInputData(this.value)\n this.$on('update:period', this.setPeriod)\n },\n\n methods: {\n genValue () {\n if (this.inputHour != null && this.inputMinute != null && (!this.useSeconds || this.inputSecond != null)) {\n return `${pad(this.inputHour)}:${pad(this.inputMinute)}` + (this.useSeconds ? `:${pad(this.inputSecond!)}` : '')\n }\n\n return null\n },\n emitValue () {\n const value = this.genValue()\n if (value !== null) this.$emit('input', value)\n },\n setPeriod (period: Period) {\n this.period = period\n if (this.inputHour != null) {\n const newHour = this.inputHour! + (period === 'am' ? -12 : 12)\n this.inputHour = this.firstAllowed('hour', newHour)\n this.emitValue()\n }\n },\n setInputData (value: string | null | Date) {\n if (value == null || value === '') {\n this.inputHour = null\n this.inputMinute = null\n this.inputSecond = null\n } else if (value instanceof Date) {\n this.inputHour = value.getHours()\n this.inputMinute = value.getMinutes()\n this.inputSecond = value.getSeconds()\n } else {\n const [, hour, minute, , second, period] = value.trim().toLowerCase().match(/^(\\d+):(\\d+)(:(\\d+))?([ap]m)?$/) || new Array(6)\n\n this.inputHour = period ? this.convert12to24(parseInt(hour, 10), period as Period) : parseInt(hour, 10)\n this.inputMinute = parseInt(minute, 10)\n this.inputSecond = parseInt(second || 0, 10)\n }\n\n this.period = (this.inputHour == null || this.inputHour < 12) ? 'am' : 'pm'\n },\n convert24to12 (hour: number) {\n return hour ? ((hour - 1) % 12 + 1) : 12\n },\n convert12to24 (hour: number, period: Period) {\n return hour % 12 + (period === 'pm' ? 12 : 0)\n },\n onInput (value: number) {\n if (this.selecting === SelectingTimes.Hour) {\n this.inputHour = this.isAmPm ? this.convert12to24(value, this.period) : value\n } else if (this.selecting === SelectingTimes.Minute) {\n this.inputMinute = value\n } else {\n this.inputSecond = value\n }\n this.emitValue()\n },\n onChange (value: number) {\n this.$emit(`click:${selectingNames[this.selecting]}`, value)\n\n const emitChange = this.selecting === (this.useSeconds ? SelectingTimes.Second : SelectingTimes.Minute)\n\n if (this.selecting === SelectingTimes.Hour) {\n this.selecting = SelectingTimes.Minute\n } else if (this.useSeconds && this.selecting === SelectingTimes.Minute) {\n this.selecting = SelectingTimes.Second\n }\n\n if (this.inputHour === this.lazyInputHour &&\n this.inputMinute === this.lazyInputMinute &&\n (!this.useSeconds || this.inputSecond === this.lazyInputSecond)\n ) return\n\n const time = this.genValue()\n if (time === null) return\n\n this.lazyInputHour = this.inputHour\n this.lazyInputMinute = this.inputMinute\n this.useSeconds && (this.lazyInputSecond = this.inputSecond)\n\n emitChange && this.$emit('change', time)\n },\n firstAllowed (type: 'hour' | 'minute' | 'second', value: number) {\n const allowedFn = type === 'hour' ? this.isAllowedHourCb : (type === 'minute' ? this.isAllowedMinuteCb : this.isAllowedSecondCb)\n if (!allowedFn) return value\n\n // TODO: clean up\n const range = type === 'minute'\n ? range60\n : (type === 'second'\n ? range60\n : (this.isAmPm\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 genClock () {\n return this.$createElement(VTimePickerClock, {\n props: {\n allowedValues:\n this.selecting === SelectingTimes.Hour\n ? this.isAllowedHourCb\n : (this.selecting === SelectingTimes.Minute\n ? this.isAllowedMinuteCb\n : this.isAllowedSecondCb),\n color: this.color,\n dark: this.dark,\n disabled: this.disabled,\n double: this.selecting === SelectingTimes.Hour && !this.isAmPm,\n format: this.selecting === SelectingTimes.Hour\n ? (this.isAmPm ? this.convert24to12 : (val: number) => val)\n : (val: number) => pad(val, 2),\n light: this.light,\n max: this.selecting === SelectingTimes.Hour ? (this.isAmPm && this.period === 'am' ? 11 : 23) : 59,\n min: this.selecting === SelectingTimes.Hour && this.isAmPm && this.period === 'pm' ? 12 : 0,\n readonly: this.readonly,\n scrollable: this.scrollable,\n size: Number(this.width) - ((!this.fullWidth && this.landscape) ? 80 : 20),\n step: this.selecting === SelectingTimes.Hour ? 1 : 5,\n value: this.selecting === SelectingTimes.Hour\n ? this.inputHour\n : (this.selecting === SelectingTimes.Minute\n ? this.inputMinute\n : this.inputSecond),\n },\n on: {\n input: this.onInput,\n change: this.onChange,\n },\n ref: 'clock',\n })\n },\n genClockAmPm () {\n return this.$createElement('div', this.setTextColor(this.color || 'primary', {\n staticClass: 'v-time-picker-clock__ampm',\n }), [\n this.genPickerButton('period', 'am', this.$vuetify.lang.t('$vuetify.timePicker.am'), this.disabled || this.readonly),\n this.genPickerButton('period', 'pm', this.$vuetify.lang.t('$vuetify.timePicker.pm'), this.disabled || this.readonly),\n ])\n },\n genPickerBody () {\n return this.$createElement('div', {\n staticClass: 'v-time-picker-clock__container',\n key: this.selecting,\n }, [\n !this.ampmInTitle && this.isAmPm && this.genClockAmPm(),\n this.genClock(),\n ])\n },\n genPickerTitle () {\n return this.$createElement(VTimePickerTitle, {\n props: {\n ampm: this.isAmPm,\n ampmReadonly: this.isAmPm && !this.ampmInTitle,\n disabled: this.disabled,\n hour: this.inputHour,\n minute: this.inputMinute,\n second: this.inputSecond,\n period: this.period,\n readonly: this.readonly,\n useSeconds: this.useSeconds,\n selecting: this.selecting,\n },\n on: {\n 'update:selecting': (value: 1 | 2 | 3) => (this.selecting = value),\n 'update:period': (period: string) => this.$emit('update:period', period),\n },\n ref: 'title',\n slot: 'title',\n })\n },\n },\n\n render (): VNode {\n return this.genPicker('v-picker--time')\n },\n})\n"],"mappings":"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"}
@@ -1,251 +0,0 @@
1
- // @ts-nocheck
2
- /* eslint-disable */
3
-
4
- import "./VTimePickerClock.css";
5
-
6
- // Mixins
7
- import Colorable from "../../mixins/colorable.mjs";
8
- import Themeable from "../../mixins/themeable.mjs"; // Types
9
- import mixins from "../../util/mixins.mjs";
10
- export default mixins(Colorable, Themeable
11
- /* @vue/component */).extend({
12
- name: 'v-time-picker-clock',
13
- props: {
14
- allowedValues: Function,
15
- ampm: Boolean,
16
- disabled: Boolean,
17
- double: Boolean,
18
- format: {
19
- type: Function,
20
- default: val => val
21
- },
22
- max: {
23
- type: Number,
24
- required: true
25
- },
26
- min: {
27
- type: Number,
28
- required: true
29
- },
30
- scrollable: Boolean,
31
- readonly: Boolean,
32
- rotate: {
33
- type: Number,
34
- default: 0
35
- },
36
- step: {
37
- type: Number,
38
- default: 1
39
- },
40
- value: Number
41
- },
42
- data() {
43
- return {
44
- inputValue: this.value,
45
- isDragging: false,
46
- valueOnMouseDown: null,
47
- valueOnMouseUp: null
48
- };
49
- },
50
- computed: {
51
- count() {
52
- return this.max - this.min + 1;
53
- },
54
- degreesPerUnit() {
55
- return 360 / this.roundCount;
56
- },
57
- degrees() {
58
- return this.degreesPerUnit * Math.PI / 180;
59
- },
60
- displayedValue() {
61
- return this.value == null ? this.min : this.value;
62
- },
63
- innerRadiusScale() {
64
- return 0.62;
65
- },
66
- roundCount() {
67
- return this.double ? this.count / 2 : this.count;
68
- }
69
- },
70
- watch: {
71
- value(value) {
72
- this.inputValue = value;
73
- }
74
- },
75
- methods: {
76
- wheel(e) {
77
- e.preventDefault();
78
- const delta = Math.sign(-e.deltaY || 1);
79
- let value = this.displayedValue;
80
- do {
81
- value = value + delta;
82
- value = (value - this.min + this.count) % this.count + this.min;
83
- } while (!this.isAllowed(value) && value !== this.displayedValue);
84
- if (value !== this.displayedValue) {
85
- this.update(value);
86
- }
87
- },
88
- isInner(value) {
89
- return this.double && value - this.min >= this.roundCount;
90
- },
91
- handScale(value) {
92
- return this.isInner(value) ? this.innerRadiusScale : 1;
93
- },
94
- isAllowed(value) {
95
- return !this.allowedValues || this.allowedValues(value);
96
- },
97
- genValues() {
98
- const children = [];
99
- for (let value = this.min; value <= this.max; value = value + this.step) {
100
- const color = value === this.value && (this.color || 'accent');
101
- children.push(this.$createElement('span', this.setBackgroundColor(color, {
102
- staticClass: 'v-time-picker-clock__item',
103
- class: {
104
- 'v-time-picker-clock__item--active': value === this.displayedValue,
105
- 'v-time-picker-clock__item--disabled': this.disabled || !this.isAllowed(value)
106
- },
107
- style: this.getTransform(value),
108
- domProps: {
109
- innerHTML: `<span>${this.format(value)}</span>`
110
- }
111
- })));
112
- }
113
- return children;
114
- },
115
- genHand() {
116
- const scale = `scaleY(${this.handScale(this.displayedValue)})`;
117
- const angle = this.rotate + this.degreesPerUnit * (this.displayedValue - this.min);
118
- const color = this.value != null && (this.color || 'accent');
119
- return this.$createElement('div', this.setBackgroundColor(color, {
120
- staticClass: 'v-time-picker-clock__hand',
121
- class: {
122
- 'v-time-picker-clock__hand--inner': this.isInner(this.value)
123
- },
124
- style: {
125
- transform: `rotate(${angle}deg) ${scale}`
126
- }
127
- }));
128
- },
129
- getTransform(i) {
130
- const {
131
- x,
132
- y
133
- } = this.getPosition(i);
134
- return {
135
- left: `${50 + x * 50}%`,
136
- top: `${50 + y * 50}%`
137
- };
138
- },
139
- getPosition(value) {
140
- const rotateRadians = this.rotate * Math.PI / 180;
141
- return {
142
- x: Math.sin((value - this.min) * this.degrees + rotateRadians) * this.handScale(value),
143
- y: -Math.cos((value - this.min) * this.degrees + rotateRadians) * this.handScale(value)
144
- };
145
- },
146
- onMouseDown(e) {
147
- e.preventDefault();
148
- this.valueOnMouseDown = null;
149
- this.valueOnMouseUp = null;
150
- this.isDragging = true;
151
- this.onDragMove(e);
152
- },
153
- onMouseUp(e) {
154
- e.stopPropagation();
155
- this.isDragging = false;
156
- if (this.valueOnMouseUp !== null && this.isAllowed(this.valueOnMouseUp)) {
157
- this.$emit('change', this.valueOnMouseUp);
158
- }
159
- },
160
- onDragMove(e) {
161
- e.preventDefault();
162
- if (!this.isDragging && e.type !== 'click' || !this.$refs.clock) return;
163
- const {
164
- width,
165
- top,
166
- left
167
- } = this.$refs.clock.getBoundingClientRect();
168
- const {
169
- width: innerWidth
170
- } = this.$refs.innerClock.getBoundingClientRect();
171
- const {
172
- clientX,
173
- clientY
174
- } = 'touches' in e ? e.touches[0] : e;
175
- const center = {
176
- x: width / 2,
177
- y: -width / 2
178
- };
179
- const coords = {
180
- x: clientX - left,
181
- y: top - clientY
182
- };
183
- const handAngle = Math.round(this.angle(center, coords) - this.rotate + 360) % 360;
184
- const insideClick = this.double && this.euclidean(center, coords) < (innerWidth + innerWidth * this.innerRadiusScale) / 4;
185
- const checksCount = Math.ceil(15 / this.degreesPerUnit);
186
- let value;
187
- for (let i = 0; i < checksCount; i++) {
188
- value = this.angleToValue(handAngle + i * this.degreesPerUnit, insideClick);
189
- if (this.isAllowed(value)) return this.setMouseDownValue(value);
190
- value = this.angleToValue(handAngle - i * this.degreesPerUnit, insideClick);
191
- if (this.isAllowed(value)) return this.setMouseDownValue(value);
192
- }
193
- },
194
- angleToValue(angle, insideClick) {
195
- const value = (Math.round(angle / this.degreesPerUnit) + (insideClick ? this.roundCount : 0)) % this.count + this.min;
196
-
197
- // Necessary to fix edge case when selecting left part of the value(s) at 12 o'clock
198
- if (angle < 360 - this.degreesPerUnit / 2) return value;
199
- return insideClick ? this.max - this.roundCount + 1 : this.min;
200
- },
201
- setMouseDownValue(value) {
202
- if (this.valueOnMouseDown === null) {
203
- this.valueOnMouseDown = value;
204
- }
205
- this.valueOnMouseUp = value;
206
- this.update(value);
207
- },
208
- update(value) {
209
- if (this.inputValue !== value) {
210
- this.inputValue = value;
211
- this.$emit('input', value);
212
- }
213
- },
214
- euclidean(p0, p1) {
215
- const dx = p1.x - p0.x;
216
- const dy = p1.y - p0.y;
217
- return Math.sqrt(dx * dx + dy * dy);
218
- },
219
- angle(center, p1) {
220
- const value = 2 * Math.atan2(p1.y - center.y - this.euclidean(center, p1), p1.x - center.x);
221
- return Math.abs(value * 180 / Math.PI);
222
- }
223
- },
224
- render(h) {
225
- const data = {
226
- staticClass: 'v-time-picker-clock',
227
- class: {
228
- 'v-time-picker-clock--indeterminate': this.value == null,
229
- ...this.themeClasses
230
- },
231
- on: this.readonly || this.disabled ? undefined : {
232
- mousedown: this.onMouseDown,
233
- mouseup: this.onMouseUp,
234
- mouseleave: e => this.isDragging && this.onMouseUp(e),
235
- touchstart: this.onMouseDown,
236
- touchend: this.onMouseUp,
237
- mousemove: this.onDragMove,
238
- touchmove: this.onDragMove
239
- },
240
- ref: 'clock'
241
- };
242
- if (this.scrollable && data.on) {
243
- data.on.wheel = this.wheel;
244
- }
245
- return h('div', data, [h('div', {
246
- staticClass: 'v-time-picker-clock__inner',
247
- ref: 'innerClock'
248
- }, [this.genHand(), this.genValues()])]);
249
- }
250
- });
251
- //# sourceMappingURL=VTimePickerClock.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"VTimePickerClock.mjs","names":["Colorable","Themeable","mixins","extend","name","props","allowedValues","Function","ampm","Boolean","disabled","double","format","type","default","val","max","Number","required","min","scrollable","readonly","rotate","step","value","data","inputValue","isDragging","valueOnMouseDown","valueOnMouseUp","computed","count","degreesPerUnit","roundCount","degrees","Math","PI","displayedValue","innerRadiusScale","watch","methods","wheel","e","preventDefault","delta","sign","deltaY","isAllowed","update","isInner","handScale","genValues","children","color","push","$createElement","setBackgroundColor","staticClass","class","style","getTransform","domProps","innerHTML","genHand","scale","angle","transform","i","x","y","getPosition","left","top","rotateRadians","sin","cos","onMouseDown","onDragMove","onMouseUp","stopPropagation","$emit","$refs","clock","width","getBoundingClientRect","innerWidth","innerClock","clientX","clientY","touches","center","coords","handAngle","round","insideClick","euclidean","checksCount","ceil","angleToValue","setMouseDownValue","p0","p1","dx","dy","sqrt","atan2","abs","render","h","themeClasses","on","undefined","mousedown","mouseup","mouseleave","touchstart","touchend","mousemove","touchmove","ref"],"sources":["../../../src/components/VTimePicker/VTimePickerClock.ts"],"sourcesContent":["// @ts-nocheck\n/* eslint-disable */\n\nimport './VTimePickerClock.sass'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Themeable from '../../mixins/themeable'\n\n// Types\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport Vue, { VNode, PropType, VNodeData } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\ninterface Point {\n x: number\n y: number\n}\n\ninterface options extends Vue {\n $refs: {\n clock: HTMLElement\n innerClock: HTMLElement\n }\n}\n\nexport default mixins<options &\n/* eslint-disable indent */\n ExtractVue<[\n typeof Colorable,\n typeof Themeable\n ]>\n/* eslint-enable indent */\n>(\n Colorable,\n Themeable\n/* @vue/component */\n).extend({\n name: 'v-time-picker-clock',\n\n props: {\n allowedValues: Function as PropType<(value: number) => boolean>,\n ampm: Boolean,\n disabled: Boolean,\n double: Boolean,\n format: {\n type: Function,\n default: (val: string | number) => val,\n } as PropValidator<(val: string | number) => string | number>,\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 value: Number,\n },\n\n data () {\n return {\n inputValue: this.value,\n isDragging: false,\n valueOnMouseDown: null as number | null,\n valueOnMouseUp: null as number | null,\n }\n },\n\n computed: {\n count (): number {\n return this.max - this.min + 1\n },\n degreesPerUnit (): number {\n return 360 / this.roundCount\n },\n degrees (): number {\n return this.degreesPerUnit * Math.PI / 180\n },\n displayedValue (): number {\n return this.value == null ? this.min : this.value\n },\n innerRadiusScale (): number {\n return 0.62\n },\n roundCount (): number {\n return this.double ? (this.count / 2) : this.count\n },\n },\n\n watch: {\n value (value) {\n this.inputValue = value\n },\n },\n\n methods: {\n wheel (e: WheelEvent) {\n e.preventDefault()\n\n const delta = Math.sign(-e.deltaY || 1)\n let value = this.displayedValue\n do {\n value = value + delta\n value = (value - this.min + this.count) % this.count + this.min\n } while (!this.isAllowed(value) && value !== this.displayedValue)\n\n if (value !== this.displayedValue) {\n this.update(value)\n }\n },\n isInner (value: number) {\n return this.double && (value - this.min >= this.roundCount)\n },\n handScale (value: number) {\n return this.isInner(value) ? this.innerRadiusScale : 1\n },\n isAllowed (value: number) {\n return !this.allowedValues || this.allowedValues(value)\n },\n genValues () {\n const children: VNode[] = []\n\n for (let value = this.min; value <= this.max; value = value + this.step) {\n const color = value === this.value && (this.color || 'accent')\n children.push(this.$createElement('span', this.setBackgroundColor(color, {\n staticClass: 'v-time-picker-clock__item',\n class: {\n 'v-time-picker-clock__item--active': value === this.displayedValue,\n 'v-time-picker-clock__item--disabled': this.disabled || !this.isAllowed(value),\n },\n style: this.getTransform(value),\n domProps: { innerHTML: `<span>${this.format(value)}</span>` },\n })))\n }\n\n return children\n },\n genHand () {\n const scale = `scaleY(${this.handScale(this.displayedValue)})`\n const angle = this.rotate + this.degreesPerUnit * (this.displayedValue - this.min)\n const color = (this.value != null) && (this.color || 'accent')\n return this.$createElement('div', this.setBackgroundColor(color, {\n staticClass: 'v-time-picker-clock__hand',\n class: {\n 'v-time-picker-clock__hand--inner': this.isInner(this.value),\n },\n style: {\n transform: `rotate(${angle}deg) ${scale}`,\n },\n }))\n },\n getTransform (i: number) {\n const { x, y } = this.getPosition(i)\n return {\n left: `${50 + x * 50}%`,\n top: `${50 + y * 50}%`,\n }\n },\n getPosition (value: number) {\n const rotateRadians = this.rotate * Math.PI / 180\n return {\n x: Math.sin((value - this.min) * this.degrees + rotateRadians) * this.handScale(value),\n y: -Math.cos((value - this.min) * this.degrees + rotateRadians) * this.handScale(value),\n }\n },\n onMouseDown (e: MouseEvent | TouchEvent) {\n e.preventDefault()\n\n this.valueOnMouseDown = null\n this.valueOnMouseUp = null\n this.isDragging = true\n this.onDragMove(e)\n },\n onMouseUp (e: MouseEvent | TouchEvent) {\n e.stopPropagation()\n\n this.isDragging = false\n if (this.valueOnMouseUp !== null && this.isAllowed(this.valueOnMouseUp)) {\n this.$emit('change', this.valueOnMouseUp)\n }\n },\n onDragMove (e: MouseEvent | TouchEvent) {\n e.preventDefault()\n if ((!this.isDragging && e.type !== 'click') || !this.$refs.clock) return\n\n const { width, top, left } = this.$refs.clock.getBoundingClientRect()\n const { width: innerWidth } = this.$refs.innerClock.getBoundingClientRect()\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(this.angle(center, coords) - this.rotate + 360) % 360\n const insideClick = this.double && this.euclidean(center, coords) < (innerWidth + innerWidth * this.innerRadiusScale) / 4\n const checksCount = Math.ceil(15 / this.degreesPerUnit)\n let value\n\n for (let i = 0; i < checksCount; i++) {\n value = this.angleToValue(handAngle + i * this.degreesPerUnit, insideClick)\n if (this.isAllowed(value)) return this.setMouseDownValue(value)\n\n value = this.angleToValue(handAngle - i * this.degreesPerUnit, insideClick)\n if (this.isAllowed(value)) return this.setMouseDownValue(value)\n }\n },\n angleToValue (angle: number, insideClick: boolean): number {\n const value = (\n Math.round(angle / this.degreesPerUnit) +\n (insideClick ? this.roundCount : 0)\n ) % this.count + this.min\n\n // Necessary to fix edge case when selecting left part of the value(s) at 12 o'clock\n if (angle < (360 - this.degreesPerUnit / 2)) return value\n\n return insideClick ? this.max - this.roundCount + 1 : this.min\n },\n setMouseDownValue (value: number) {\n if (this.valueOnMouseDown === null) {\n this.valueOnMouseDown = value\n }\n\n this.valueOnMouseUp = value\n this.update(value)\n },\n update (value: number) {\n if (this.inputValue !== value) {\n this.inputValue = value\n this.$emit('input', value)\n }\n },\n 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 angle (center: Point, p1: Point) {\n const value = 2 * Math.atan2(p1.y - center.y - this.euclidean(center, p1), p1.x - center.x)\n return Math.abs(value * 180 / Math.PI)\n },\n },\n\n render (h): VNode {\n const data: VNodeData = {\n staticClass: 'v-time-picker-clock',\n class: {\n 'v-time-picker-clock--indeterminate': this.value == null,\n ...this.themeClasses,\n },\n on: (this.readonly || this.disabled) ? undefined : {\n mousedown: this.onMouseDown,\n mouseup: this.onMouseUp,\n mouseleave: (e: MouseEvent) => (this.isDragging && this.onMouseUp(e)),\n touchstart: this.onMouseDown,\n touchend: this.onMouseUp,\n mousemove: this.onDragMove,\n touchmove: this.onDragMove,\n },\n ref: 'clock',\n }\n\n if (this.scrollable && data.on) {\n data.on.wheel = this.wheel\n }\n\n return h('div', data, [\n h('div', {\n staticClass: 'v-time-picker-clock__inner',\n ref: 'innerClock',\n }, [\n this.genHand(),\n this.genValues(),\n ]),\n ])\n },\n})\n"],"mappings":"AAAA;AACA;;AAEA;;AAEA;AAAA,OACOA,SAAS;AAAA,OACTC,SAAS,oCAEhB;AAAA,OACOC,MAAM;AAgBb,eAAeA,MAAM,CAQnBF,SAAS,EACTC;AACF,oBACA,CAAC,CAACE,MAAM,CAAC;EACPC,IAAI,EAAE,qBAAqB;EAE3BC,KAAK,EAAE;IACLC,aAAa,EAAEC,QAAgD;IAC/DC,IAAI,EAAEC,OAAO;IACbC,QAAQ,EAAED,OAAO;IACjBE,MAAM,EAAEF,OAAO;IACfG,MAAM,EAAE;MACNC,IAAI,EAAEN,QAAQ;MACdO,OAAO,EAAGC,GAAoB,IAAKA;IACrC,CAA6D;IAC7DC,GAAG,EAAE;MACHH,IAAI,EAAEI,MAAM;MACZC,QAAQ,EAAE;IACZ,CAAC;IACDC,GAAG,EAAE;MACHN,IAAI,EAAEI,MAAM;MACZC,QAAQ,EAAE;IACZ,CAAC;IACDE,UAAU,EAAEX,OAAO;IACnBY,QAAQ,EAAEZ,OAAO;IACjBa,MAAM,EAAE;MACNT,IAAI,EAAEI,MAAM;MACZH,OAAO,EAAE;IACX,CAAC;IACDS,IAAI,EAAE;MACJV,IAAI,EAAEI,MAAM;MACZH,OAAO,EAAE;IACX,CAAC;IACDU,KAAK,EAAEP;EACT,CAAC;EAEDQ,IAAIA,CAAA,EAAI;IACN,OAAO;MACLC,UAAU,EAAE,IAAI,CAACF,KAAK;MACtBG,UAAU,EAAE,KAAK;MACjBC,gBAAgB,EAAE,IAAqB;MACvCC,cAAc,EAAE;IAClB,CAAC;EACH,CAAC;EAEDC,QAAQ,EAAE;IACRC,KAAKA,CAAA,EAAY;MACf,OAAO,IAAI,CAACf,GAAG,GAAG,IAAI,CAACG,GAAG,GAAG,CAAC;IAChC,CAAC;IACDa,cAAcA,CAAA,EAAY;MACxB,OAAO,GAAG,GAAG,IAAI,CAACC,UAAU;IAC9B,CAAC;IACDC,OAAOA,CAAA,EAAY;MACjB,OAAO,IAAI,CAACF,cAAc,GAAGG,IAAI,CAACC,EAAE,GAAG,GAAG;IAC5C,CAAC;IACDC,cAAcA,CAAA,EAAY;MACxB,OAAO,IAAI,CAACb,KAAK,IAAI,IAAI,GAAG,IAAI,CAACL,GAAG,GAAG,IAAI,CAACK,KAAK;IACnD,CAAC;IACDc,gBAAgBA,CAAA,EAAY;MAC1B,OAAO,IAAI;IACb,CAAC;IACDL,UAAUA,CAAA,EAAY;MACpB,OAAO,IAAI,CAACtB,MAAM,GAAI,IAAI,CAACoB,KAAK,GAAG,CAAC,GAAI,IAAI,CAACA,KAAK;IACpD;EACF,CAAC;EAEDQ,KAAK,EAAE;IACLf,KAAKA,CAAEA,KAAK,EAAE;MACZ,IAAI,CAACE,UAAU,GAAGF,KAAK;IACzB;EACF,CAAC;EAEDgB,OAAO,EAAE;IACPC,KAAKA,CAAEC,CAAa,EAAE;MACpBA,CAAC,CAACC,cAAc,CAAC,CAAC;MAElB,MAAMC,KAAK,GAAGT,IAAI,CAACU,IAAI,CAAC,CAACH,CAAC,CAACI,MAAM,IAAI,CAAC,CAAC;MACvC,IAAItB,KAAK,GAAG,IAAI,CAACa,cAAc;MAC/B,GAAG;QACDb,KAAK,GAAGA,KAAK,GAAGoB,KAAK;QACrBpB,KAAK,GAAG,CAACA,KAAK,GAAG,IAAI,CAACL,GAAG,GAAG,IAAI,CAACY,KAAK,IAAI,IAAI,CAACA,KAAK,GAAG,IAAI,CAACZ,GAAG;MACjE,CAAC,QAAQ,CAAC,IAAI,CAAC4B,SAAS,CAACvB,KAAK,CAAC,IAAIA,KAAK,KAAK,IAAI,CAACa,cAAc;MAEhE,IAAIb,KAAK,KAAK,IAAI,CAACa,cAAc,EAAE;QACjC,IAAI,CAACW,MAAM,CAACxB,KAAK,CAAC;MACpB;IACF,CAAC;IACDyB,OAAOA,CAAEzB,KAAa,EAAE;MACtB,OAAO,IAAI,CAACb,MAAM,IAAKa,KAAK,GAAG,IAAI,CAACL,GAAG,IAAI,IAAI,CAACc,UAAW;IAC7D,CAAC;IACDiB,SAASA,CAAE1B,KAAa,EAAE;MACxB,OAAO,IAAI,CAACyB,OAAO,CAACzB,KAAK,CAAC,GAAG,IAAI,CAACc,gBAAgB,GAAG,CAAC;IACxD,CAAC;IACDS,SAASA,CAAEvB,KAAa,EAAE;MACxB,OAAO,CAAC,IAAI,CAAClB,aAAa,IAAI,IAAI,CAACA,aAAa,CAACkB,KAAK,CAAC;IACzD,CAAC;IACD2B,SAASA,CAAA,EAAI;MACX,MAAMC,QAAiB,GAAG,EAAE;MAE5B,KAAK,IAAI5B,KAAK,GAAG,IAAI,CAACL,GAAG,EAAEK,KAAK,IAAI,IAAI,CAACR,GAAG,EAAEQ,KAAK,GAAGA,KAAK,GAAG,IAAI,CAACD,IAAI,EAAE;QACvE,MAAM8B,KAAK,GAAG7B,KAAK,KAAK,IAAI,CAACA,KAAK,KAAK,IAAI,CAAC6B,KAAK,IAAI,QAAQ,CAAC;QAC9DD,QAAQ,CAACE,IAAI,CAAC,IAAI,CAACC,cAAc,CAAC,MAAM,EAAE,IAAI,CAACC,kBAAkB,CAACH,KAAK,EAAE;UACvEI,WAAW,EAAE,2BAA2B;UACxCC,KAAK,EAAE;YACL,mCAAmC,EAAElC,KAAK,KAAK,IAAI,CAACa,cAAc;YAClE,qCAAqC,EAAE,IAAI,CAAC3B,QAAQ,IAAI,CAAC,IAAI,CAACqC,SAAS,CAACvB,KAAK;UAC/E,CAAC;UACDmC,KAAK,EAAE,IAAI,CAACC,YAAY,CAACpC,KAAK,CAAC;UAC/BqC,QAAQ,EAAE;YAAEC,SAAS,EAAG,SAAQ,IAAI,CAAClD,MAAM,CAACY,KAAK,CAAE;UAAS;QAC9D,CAAC,CAAC,CAAC,CAAC;MACN;MAEA,OAAO4B,QAAQ;IACjB,CAAC;IACDW,OAAOA,CAAA,EAAI;MACT,MAAMC,KAAK,GAAI,UAAS,IAAI,CAACd,SAAS,CAAC,IAAI,CAACb,cAAc,CAAE,GAAE;MAC9D,MAAM4B,KAAK,GAAG,IAAI,CAAC3C,MAAM,GAAG,IAAI,CAACU,cAAc,IAAI,IAAI,CAACK,cAAc,GAAG,IAAI,CAAClB,GAAG,CAAC;MAClF,MAAMkC,KAAK,GAAI,IAAI,CAAC7B,KAAK,IAAI,IAAI,KAAM,IAAI,CAAC6B,KAAK,IAAI,QAAQ,CAAC;MAC9D,OAAO,IAAI,CAACE,cAAc,CAAC,KAAK,EAAE,IAAI,CAACC,kBAAkB,CAACH,KAAK,EAAE;QAC/DI,WAAW,EAAE,2BAA2B;QACxCC,KAAK,EAAE;UACL,kCAAkC,EAAE,IAAI,CAACT,OAAO,CAAC,IAAI,CAACzB,KAAK;QAC7D,CAAC;QACDmC,KAAK,EAAE;UACLO,SAAS,EAAG,UAASD,KAAM,QAAOD,KAAM;QAC1C;MACF,CAAC,CAAC,CAAC;IACL,CAAC;IACDJ,YAAYA,CAAEO,CAAS,EAAE;MACvB,MAAM;QAAEC,CAAC;QAAEC;MAAE,CAAC,GAAG,IAAI,CAACC,WAAW,CAACH,CAAC,CAAC;MACpC,OAAO;QACLI,IAAI,EAAG,GAAE,EAAE,GAAGH,CAAC,GAAG,EAAG,GAAE;QACvBI,GAAG,EAAG,GAAE,EAAE,GAAGH,CAAC,GAAG,EAAG;MACtB,CAAC;IACH,CAAC;IACDC,WAAWA,CAAE9C,KAAa,EAAE;MAC1B,MAAMiD,aAAa,GAAG,IAAI,CAACnD,MAAM,GAAGa,IAAI,CAACC,EAAE,GAAG,GAAG;MACjD,OAAO;QACLgC,CAAC,EAAEjC,IAAI,CAACuC,GAAG,CAAC,CAAClD,KAAK,GAAG,IAAI,CAACL,GAAG,IAAI,IAAI,CAACe,OAAO,GAAGuC,aAAa,CAAC,GAAG,IAAI,CAACvB,SAAS,CAAC1B,KAAK,CAAC;QACtF6C,CAAC,EAAE,CAAClC,IAAI,CAACwC,GAAG,CAAC,CAACnD,KAAK,GAAG,IAAI,CAACL,GAAG,IAAI,IAAI,CAACe,OAAO,GAAGuC,aAAa,CAAC,GAAG,IAAI,CAACvB,SAAS,CAAC1B,KAAK;MACxF,CAAC;IACH,CAAC;IACDoD,WAAWA,CAAElC,CAA0B,EAAE;MACvCA,CAAC,CAACC,cAAc,CAAC,CAAC;MAElB,IAAI,CAACf,gBAAgB,GAAG,IAAI;MAC5B,IAAI,CAACC,cAAc,GAAG,IAAI;MAC1B,IAAI,CAACF,UAAU,GAAG,IAAI;MACtB,IAAI,CAACkD,UAAU,CAACnC,CAAC,CAAC;IACpB,CAAC;IACDoC,SAASA,CAAEpC,CAA0B,EAAE;MACrCA,CAAC,CAACqC,eAAe,CAAC,CAAC;MAEnB,IAAI,CAACpD,UAAU,GAAG,KAAK;MACvB,IAAI,IAAI,CAACE,cAAc,KAAK,IAAI,IAAI,IAAI,CAACkB,SAAS,CAAC,IAAI,CAAClB,cAAc,CAAC,EAAE;QACvE,IAAI,CAACmD,KAAK,CAAC,QAAQ,EAAE,IAAI,CAACnD,cAAc,CAAC;MAC3C;IACF,CAAC;IACDgD,UAAUA,CAAEnC,CAA0B,EAAE;MACtCA,CAAC,CAACC,cAAc,CAAC,CAAC;MAClB,IAAK,CAAC,IAAI,CAAChB,UAAU,IAAIe,CAAC,CAAC7B,IAAI,KAAK,OAAO,IAAK,CAAC,IAAI,CAACoE,KAAK,CAACC,KAAK,EAAE;MAEnE,MAAM;QAAEC,KAAK;QAAEX,GAAG;QAAED;MAAK,CAAC,GAAG,IAAI,CAACU,KAAK,CAACC,KAAK,CAACE,qBAAqB,CAAC,CAAC;MACrE,MAAM;QAAED,KAAK,EAAEE;MAAW,CAAC,GAAG,IAAI,CAACJ,KAAK,CAACK,UAAU,CAACF,qBAAqB,CAAC,CAAC;MAC3E,MAAM;QAAEG,OAAO;QAAEC;MAAQ,CAAC,GAAG,SAAS,IAAI9C,CAAC,GAAGA,CAAC,CAAC+C,OAAO,CAAC,CAAC,CAAC,GAAG/C,CAAC;MAC9D,MAAMgD,MAAM,GAAG;QAAEtB,CAAC,EAAEe,KAAK,GAAG,CAAC;QAAEd,CAAC,EAAE,CAACc,KAAK,GAAG;MAAE,CAAC;MAC9C,MAAMQ,MAAM,GAAG;QAAEvB,CAAC,EAAEmB,OAAO,GAAGhB,IAAI;QAAEF,CAAC,EAAEG,GAAG,GAAGgB;MAAQ,CAAC;MACtD,MAAMI,SAAS,GAAGzD,IAAI,CAAC0D,KAAK,CAAC,IAAI,CAAC5B,KAAK,CAACyB,MAAM,EAAEC,MAAM,CAAC,GAAG,IAAI,CAACrE,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG;MAClF,MAAMwE,WAAW,GAAG,IAAI,CAACnF,MAAM,IAAI,IAAI,CAACoF,SAAS,CAACL,MAAM,EAAEC,MAAM,CAAC,GAAG,CAACN,UAAU,GAAGA,UAAU,GAAG,IAAI,CAAC/C,gBAAgB,IAAI,CAAC;MACzH,MAAM0D,WAAW,GAAG7D,IAAI,CAAC8D,IAAI,CAAC,EAAE,GAAG,IAAI,CAACjE,cAAc,CAAC;MACvD,IAAIR,KAAK;MAET,KAAK,IAAI2C,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG6B,WAAW,EAAE7B,CAAC,EAAE,EAAE;QACpC3C,KAAK,GAAG,IAAI,CAAC0E,YAAY,CAACN,SAAS,GAAGzB,CAAC,GAAG,IAAI,CAACnC,cAAc,EAAE8D,WAAW,CAAC;QAC3E,IAAI,IAAI,CAAC/C,SAAS,CAACvB,KAAK,CAAC,EAAE,OAAO,IAAI,CAAC2E,iBAAiB,CAAC3E,KAAK,CAAC;QAE/DA,KAAK,GAAG,IAAI,CAAC0E,YAAY,CAACN,SAAS,GAAGzB,CAAC,GAAG,IAAI,CAACnC,cAAc,EAAE8D,WAAW,CAAC;QAC3E,IAAI,IAAI,CAAC/C,SAAS,CAACvB,KAAK,CAAC,EAAE,OAAO,IAAI,CAAC2E,iBAAiB,CAAC3E,KAAK,CAAC;MACjE;IACF,CAAC;IACD0E,YAAYA,CAAEjC,KAAa,EAAE6B,WAAoB,EAAU;MACzD,MAAMtE,KAAK,GAAG,CACZW,IAAI,CAAC0D,KAAK,CAAC5B,KAAK,GAAG,IAAI,CAACjC,cAAc,CAAC,IACtC8D,WAAW,GAAG,IAAI,CAAC7D,UAAU,GAAG,CAAC,CAAC,IACjC,IAAI,CAACF,KAAK,GAAG,IAAI,CAACZ,GAAG;;MAEzB;MACA,IAAI8C,KAAK,GAAI,GAAG,GAAG,IAAI,CAACjC,cAAc,GAAG,CAAE,EAAE,OAAOR,KAAK;MAEzD,OAAOsE,WAAW,GAAG,IAAI,CAAC9E,GAAG,GAAG,IAAI,CAACiB,UAAU,GAAG,CAAC,GAAG,IAAI,CAACd,GAAG;IAChE,CAAC;IACDgF,iBAAiBA,CAAE3E,KAAa,EAAE;MAChC,IAAI,IAAI,CAACI,gBAAgB,KAAK,IAAI,EAAE;QAClC,IAAI,CAACA,gBAAgB,GAAGJ,KAAK;MAC/B;MAEA,IAAI,CAACK,cAAc,GAAGL,KAAK;MAC3B,IAAI,CAACwB,MAAM,CAACxB,KAAK,CAAC;IACpB,CAAC;IACDwB,MAAMA,CAAExB,KAAa,EAAE;MACrB,IAAI,IAAI,CAACE,UAAU,KAAKF,KAAK,EAAE;QAC7B,IAAI,CAACE,UAAU,GAAGF,KAAK;QACvB,IAAI,CAACwD,KAAK,CAAC,OAAO,EAAExD,KAAK,CAAC;MAC5B;IACF,CAAC;IACDuE,SAASA,CAAEK,EAAS,EAAEC,EAAS,EAAE;MAC/B,MAAMC,EAAE,GAAGD,EAAE,CAACjC,CAAC,GAAGgC,EAAE,CAAChC,CAAC;MACtB,MAAMmC,EAAE,GAAGF,EAAE,CAAChC,CAAC,GAAG+B,EAAE,CAAC/B,CAAC;MAEtB,OAAOlC,IAAI,CAACqE,IAAI,CAACF,EAAE,GAAGA,EAAE,GAAGC,EAAE,GAAGA,EAAE,CAAC;IACrC,CAAC;IACDtC,KAAKA,CAAEyB,MAAa,EAAEW,EAAS,EAAE;MAC/B,MAAM7E,KAAK,GAAG,CAAC,GAAGW,IAAI,CAACsE,KAAK,CAACJ,EAAE,CAAChC,CAAC,GAAGqB,MAAM,CAACrB,CAAC,GAAG,IAAI,CAAC0B,SAAS,CAACL,MAAM,EAAEW,EAAE,CAAC,EAAEA,EAAE,CAACjC,CAAC,GAAGsB,MAAM,CAACtB,CAAC,CAAC;MAC3F,OAAOjC,IAAI,CAACuE,GAAG,CAAClF,KAAK,GAAG,GAAG,GAAGW,IAAI,CAACC,EAAE,CAAC;IACxC;EACF,CAAC;EAEDuE,MAAMA,CAAEC,CAAC,EAAS;IAChB,MAAMnF,IAAe,GAAG;MACtBgC,WAAW,EAAE,qBAAqB;MAClCC,KAAK,EAAE;QACL,oCAAoC,EAAE,IAAI,CAAClC,KAAK,IAAI,IAAI;QACxD,GAAG,IAAI,CAACqF;MACV,CAAC;MACDC,EAAE,EAAG,IAAI,CAACzF,QAAQ,IAAI,IAAI,CAACX,QAAQ,GAAIqG,SAAS,GAAG;QACjDC,SAAS,EAAE,IAAI,CAACpC,WAAW;QAC3BqC,OAAO,EAAE,IAAI,CAACnC,SAAS;QACvBoC,UAAU,EAAGxE,CAAa,IAAM,IAAI,CAACf,UAAU,IAAI,IAAI,CAACmD,SAAS,CAACpC,CAAC,CAAE;QACrEyE,UAAU,EAAE,IAAI,CAACvC,WAAW;QAC5BwC,QAAQ,EAAE,IAAI,CAACtC,SAAS;QACxBuC,SAAS,EAAE,IAAI,CAACxC,UAAU;QAC1ByC,SAAS,EAAE,IAAI,CAACzC;MAClB,CAAC;MACD0C,GAAG,EAAE;IACP,CAAC;IAED,IAAI,IAAI,CAACnG,UAAU,IAAIK,IAAI,CAACqF,EAAE,EAAE;MAC9BrF,IAAI,CAACqF,EAAE,CAACrE,KAAK,GAAG,IAAI,CAACA,KAAK;IAC5B;IAEA,OAAOmE,CAAC,CAAC,KAAK,EAAEnF,IAAI,EAAE,CACpBmF,CAAC,CAAC,KAAK,EAAE;MACPnD,WAAW,EAAE,4BAA4B;MACzC8D,GAAG,EAAE;IACP,CAAC,EAAE,CACD,IAAI,CAACxD,OAAO,CAAC,CAAC,EACd,IAAI,CAACZ,SAAS,CAAC,CAAC,CACjB,CAAC,CACH,CAAC;EACJ;AACF,CAAC,CAAC"}