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.
- package/dist/_component-variables-labs.sass +2 -1
- package/dist/json/attributes.json +243 -19
- package/dist/json/importMap-labs.json +22 -10
- package/dist/json/importMap.json +124 -124
- package/dist/json/tags.json +71 -0
- package/dist/json/web-types.json +747 -38
- package/dist/vuetify-labs.css +2339 -2089
- package/dist/vuetify-labs.d.ts +1117 -154
- package/dist/vuetify-labs.esm.js +675 -25
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +675 -25
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +1661 -1652
- package/dist/vuetify.d.ts +321 -192
- package/dist/vuetify.esm.js +33 -19
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +33 -19
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +93 -92
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAvatar/VAvatar.css +6 -0
- package/lib/components/VAvatar/VAvatar.sass +6 -0
- package/lib/components/VAvatar/_variables.scss +2 -0
- package/lib/components/VCheckbox/index.d.mts +54 -18
- package/lib/components/VChip/VChip.css +5 -2
- package/lib/components/VChip/VChip.sass +3 -0
- package/lib/components/VChip/_variables.scss +2 -2
- package/lib/components/VDivider/VDivider.css +1 -1
- package/lib/components/VDivider/VDivider.sass +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanel.css +3 -3
- package/lib/components/VExpansionPanel/VExpansionPanel.sass +2 -2
- package/lib/components/VField/VField.css +1 -1
- package/lib/components/VField/_variables.scss +1 -1
- package/lib/components/VFileInput/index.d.mts +12 -12
- package/lib/components/VForm/index.d.mts +42 -42
- package/lib/components/VInput/index.d.mts +6 -6
- package/lib/components/VRadio/index.d.mts +27 -9
- package/lib/components/VRadioGroup/index.d.mts +27 -9
- package/lib/components/VSelectionControl/VSelectionControl.mjs +1 -0
- package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
- package/lib/components/VSelectionControl/index.d.mts +27 -9
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs +1 -1
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs.map +1 -1
- package/lib/components/VSelectionControlGroup/index.d.mts +27 -9
- package/lib/components/VSwitch/index.d.mts +27 -9
- package/lib/components/VTextField/index.d.mts +12 -12
- package/lib/components/VTextarea/index.d.mts +12 -12
- package/lib/components/VValidation/index.d.mts +6 -6
- package/lib/components/index.d.mts +279 -153
- package/lib/composables/form.mjs.map +1 -1
- package/lib/composables/router.mjs +16 -8
- package/lib/composables/router.mjs.map +1 -1
- package/lib/composables/transition.mjs +5 -2
- package/lib/composables/transition.mjs.map +1 -1
- package/lib/composables/validation.mjs +5 -4
- package/lib/composables/validation.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/index.d.mts +42 -39
- package/lib/labs/VNumberInput/VNumberInput.mjs +4 -4
- package/lib/labs/VNumberInput/VNumberInput.mjs.map +1 -1
- package/lib/labs/VTimePicker/SelectingTimes.mjs.map +1 -0
- package/lib/labs/VTimePicker/VTimePicker.css +8 -0
- package/lib/labs/VTimePicker/VTimePicker.mjs +265 -0
- package/lib/labs/VTimePicker/VTimePicker.mjs.map +1 -0
- package/lib/labs/VTimePicker/VTimePicker.sass +10 -0
- package/lib/labs/VTimePicker/VTimePickerClock.css +130 -0
- package/lib/labs/VTimePicker/VTimePickerClock.mjs +244 -0
- package/lib/labs/VTimePicker/VTimePickerClock.mjs.map +1 -0
- package/lib/{components → labs}/VTimePicker/VTimePickerClock.sass +22 -39
- package/lib/labs/VTimePicker/VTimePickerControls.css +104 -0
- package/lib/labs/VTimePicker/VTimePickerControls.mjs +125 -0
- package/lib/labs/VTimePicker/VTimePickerControls.mjs.map +1 -0
- package/lib/labs/VTimePicker/VTimePickerControls.sass +102 -0
- package/lib/labs/VTimePicker/_variables.scss +34 -0
- package/lib/labs/VTimePicker/index.d.mts +848 -0
- package/lib/labs/VTimePicker/index.mjs +4 -0
- package/lib/labs/VTimePicker/index.mjs.map +1 -0
- package/lib/labs/components.d.mts +835 -1
- package/lib/labs/components.mjs +1 -0
- package/lib/labs/components.mjs.map +1 -1
- package/lib/locale/af.mjs +2 -1
- package/lib/locale/af.mjs.map +1 -1
- package/lib/locale/ar.mjs +2 -1
- package/lib/locale/ar.mjs.map +1 -1
- package/lib/locale/az.mjs +2 -1
- package/lib/locale/az.mjs.map +1 -1
- package/lib/locale/bg.mjs +2 -1
- package/lib/locale/bg.mjs.map +1 -1
- package/lib/locale/ca.mjs +2 -1
- package/lib/locale/ca.mjs.map +1 -1
- package/lib/locale/ckb.mjs +2 -1
- package/lib/locale/ckb.mjs.map +1 -1
- package/lib/locale/cs.mjs +2 -1
- package/lib/locale/cs.mjs.map +1 -1
- package/lib/locale/da.mjs +2 -1
- package/lib/locale/da.mjs.map +1 -1
- package/lib/locale/de.mjs +2 -1
- package/lib/locale/de.mjs.map +1 -1
- package/lib/locale/el.mjs +2 -1
- package/lib/locale/el.mjs.map +1 -1
- package/lib/locale/en.mjs +2 -1
- package/lib/locale/en.mjs.map +1 -1
- package/lib/locale/es.mjs +2 -1
- package/lib/locale/es.mjs.map +1 -1
- package/lib/locale/et.mjs +2 -1
- package/lib/locale/et.mjs.map +1 -1
- package/lib/locale/fa.mjs +2 -1
- package/lib/locale/fa.mjs.map +1 -1
- package/lib/locale/fi.mjs +2 -1
- package/lib/locale/fi.mjs.map +1 -1
- package/lib/locale/fr.mjs +2 -1
- package/lib/locale/fr.mjs.map +1 -1
- package/lib/locale/he.mjs +2 -1
- package/lib/locale/he.mjs.map +1 -1
- package/lib/locale/hr.mjs +2 -1
- package/lib/locale/hr.mjs.map +1 -1
- package/lib/locale/hu.mjs +2 -1
- package/lib/locale/hu.mjs.map +1 -1
- package/lib/locale/id.mjs +2 -1
- package/lib/locale/id.mjs.map +1 -1
- package/lib/locale/index.d.mts +43 -0
- package/lib/locale/it.mjs +2 -1
- package/lib/locale/it.mjs.map +1 -1
- package/lib/locale/ja.mjs +2 -1
- package/lib/locale/ja.mjs.map +1 -1
- package/lib/locale/km.mjs +2 -1
- package/lib/locale/km.mjs.map +1 -1
- package/lib/locale/ko.mjs +2 -1
- package/lib/locale/ko.mjs.map +1 -1
- package/lib/locale/lt.mjs +2 -1
- package/lib/locale/lt.mjs.map +1 -1
- package/lib/locale/lv.mjs +2 -1
- package/lib/locale/lv.mjs.map +1 -1
- package/lib/locale/nl.mjs +2 -1
- package/lib/locale/nl.mjs.map +1 -1
- package/lib/locale/no.mjs +2 -1
- package/lib/locale/no.mjs.map +1 -1
- package/lib/locale/pl.mjs +2 -1
- package/lib/locale/pl.mjs.map +1 -1
- package/lib/locale/pt.mjs +2 -1
- package/lib/locale/pt.mjs.map +1 -1
- package/lib/locale/ro.mjs +2 -1
- package/lib/locale/ro.mjs.map +1 -1
- package/lib/locale/ru.mjs +2 -1
- package/lib/locale/ru.mjs.map +1 -1
- package/lib/locale/sk.mjs +2 -1
- package/lib/locale/sk.mjs.map +1 -1
- package/lib/locale/sl.mjs +2 -1
- package/lib/locale/sl.mjs.map +1 -1
- package/lib/locale/sr-Cyrl.mjs +2 -1
- package/lib/locale/sr-Cyrl.mjs.map +1 -1
- package/lib/locale/sr-Latn.mjs +2 -1
- package/lib/locale/sr-Latn.mjs.map +1 -1
- package/lib/locale/sv.mjs +2 -1
- package/lib/locale/sv.mjs.map +1 -1
- package/lib/locale/th.mjs +2 -1
- package/lib/locale/th.mjs.map +1 -1
- package/lib/locale/tr.mjs +2 -1
- package/lib/locale/tr.mjs.map +1 -1
- package/lib/locale/uk.mjs +2 -1
- package/lib/locale/uk.mjs.map +1 -1
- package/lib/locale/vi.mjs +2 -1
- package/lib/locale/vi.mjs.map +1 -1
- package/lib/locale/zh-Hans.mjs +2 -1
- package/lib/locale/zh-Hans.mjs.map +1 -1
- package/lib/locale/zh-Hant.mjs +2 -1
- package/lib/locale/zh-Hant.mjs.map +1 -1
- package/package.json +4 -4
- package/lib/components/VTimePicker/SelectingTimes.mjs.map +0 -1
- package/lib/components/VTimePicker/VTimePicker.mjs +0 -288
- package/lib/components/VTimePicker/VTimePicker.mjs.map +0 -1
- package/lib/components/VTimePicker/VTimePickerClock.mjs +0 -251
- package/lib/components/VTimePicker/VTimePickerClock.mjs.map +0 -1
- package/lib/components/VTimePicker/VTimePickerTitle.mjs +0 -64
- package/lib/components/VTimePicker/VTimePickerTitle.mjs.map +0 -1
- package/lib/components/VTimePicker/VTimePickerTitle.sass +0 -61
- package/lib/components/VTimePicker/_variables.scss +0 -32
- package/lib/components/VTimePicker/index.mjs +0 -12
- package/lib/components/VTimePicker/index.mjs.map +0 -1
- /package/lib/{components → labs}/VTimePicker/SelectingTimes.mjs +0 -0
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
import { resolveDirective as _resolveDirective, mergeProps as _mergeProps, createVNode as _createVNode } from "vue";
|
|
2
|
+
// Styles
|
|
3
|
+
import "./VTimePicker.css";
|
|
4
|
+
|
|
5
|
+
// Components
|
|
6
|
+
import { VTimePickerClock } from "./VTimePickerClock.mjs";
|
|
7
|
+
import { VTimePickerControls } from "./VTimePickerControls.mjs";
|
|
8
|
+
import { pad } from "../../components/VDatePicker/util/index.mjs";
|
|
9
|
+
import { makeVPickerProps, VPicker } from "../VPicker/VPicker.mjs"; // Composables
|
|
10
|
+
import { useLocale } from "../../composables/locale.mjs"; // Utilities
|
|
11
|
+
import { computed, onMounted, ref, watch } from 'vue';
|
|
12
|
+
import { SelectingTimes } from "./SelectingTimes.mjs";
|
|
13
|
+
import { createRange, genericComponent, omit, propsFactory, useRender } from "../../util/index.mjs"; // Types
|
|
14
|
+
const rangeHours24 = createRange(24);
|
|
15
|
+
const rangeHours12am = createRange(12);
|
|
16
|
+
const rangeHours12pm = rangeHours12am.map(v => v + 12);
|
|
17
|
+
const range60 = createRange(60);
|
|
18
|
+
const selectingNames = {
|
|
19
|
+
1: 'hour',
|
|
20
|
+
2: 'minute',
|
|
21
|
+
3: 'second'
|
|
22
|
+
};
|
|
23
|
+
export { SelectingTimes };
|
|
24
|
+
export const makeVTimePickerProps = propsFactory({
|
|
25
|
+
allowedHours: [Function, Array],
|
|
26
|
+
allowedMinutes: [Function, Array],
|
|
27
|
+
allowedSeconds: [Function, Array],
|
|
28
|
+
ampmInTitle: Boolean,
|
|
29
|
+
disabled: Boolean,
|
|
30
|
+
format: {
|
|
31
|
+
type: String,
|
|
32
|
+
default: 'ampm'
|
|
33
|
+
},
|
|
34
|
+
max: String,
|
|
35
|
+
min: String,
|
|
36
|
+
modelValue: null,
|
|
37
|
+
readonly: Boolean,
|
|
38
|
+
scrollable: Boolean,
|
|
39
|
+
useSeconds: Boolean,
|
|
40
|
+
...omit(makeVPickerProps({
|
|
41
|
+
title: '$vuetify.timePicker.title'
|
|
42
|
+
}), ['landscape'])
|
|
43
|
+
}, 'VTimePicker');
|
|
44
|
+
export const VTimePicker = genericComponent()({
|
|
45
|
+
name: 'VTimePicker',
|
|
46
|
+
props: makeVTimePickerProps(),
|
|
47
|
+
emits: {
|
|
48
|
+
'update:hour': val => val,
|
|
49
|
+
'update:minute': val => val,
|
|
50
|
+
'update:period': val => val,
|
|
51
|
+
'update:second': val => val,
|
|
52
|
+
'update:modelValue': val => val
|
|
53
|
+
},
|
|
54
|
+
setup(props, _ref) {
|
|
55
|
+
let {
|
|
56
|
+
emit,
|
|
57
|
+
slots
|
|
58
|
+
} = _ref;
|
|
59
|
+
const {
|
|
60
|
+
t
|
|
61
|
+
} = useLocale();
|
|
62
|
+
const inputHour = ref(null);
|
|
63
|
+
const inputMinute = ref(null);
|
|
64
|
+
const inputSecond = ref(null);
|
|
65
|
+
const lazyInputHour = ref(null);
|
|
66
|
+
const lazyInputMinute = ref(null);
|
|
67
|
+
const lazyInputSecond = ref(null);
|
|
68
|
+
const period = ref('am');
|
|
69
|
+
const selecting = ref(SelectingTimes.Hour);
|
|
70
|
+
const controlsRef = ref(null);
|
|
71
|
+
const clockRef = ref(null);
|
|
72
|
+
const isAllowedHourCb = computed(() => {
|
|
73
|
+
let cb;
|
|
74
|
+
if (props.allowedHours instanceof Array) {
|
|
75
|
+
cb = val => props.allowedHours.includes(val);
|
|
76
|
+
} else {
|
|
77
|
+
cb = props.allowedHours;
|
|
78
|
+
}
|
|
79
|
+
if (!props.min && !props.max) return cb;
|
|
80
|
+
const minHour = props.min ? Number(props.min.split(':')[0]) : 0;
|
|
81
|
+
const maxHour = props.max ? Number(props.max.split(':')[0]) : 23;
|
|
82
|
+
return val => {
|
|
83
|
+
return val >= minHour * 1 && val <= maxHour * 1 && (!cb || cb(val));
|
|
84
|
+
};
|
|
85
|
+
});
|
|
86
|
+
const isAllowedMinuteCb = computed(() => {
|
|
87
|
+
let cb;
|
|
88
|
+
const isHourAllowed = !isAllowedHourCb.value || inputHour.value === null || isAllowedHourCb.value(inputHour.value);
|
|
89
|
+
if (props.allowedMinutes instanceof Array) {
|
|
90
|
+
cb = val => props.allowedMinutes.includes(val);
|
|
91
|
+
} else {
|
|
92
|
+
cb = props.allowedMinutes;
|
|
93
|
+
}
|
|
94
|
+
if (!props.min && !props.max) {
|
|
95
|
+
return isHourAllowed ? cb : () => false;
|
|
96
|
+
}
|
|
97
|
+
const [minHour, minMinute] = props.min ? props.min.split(':').map(Number) : [0, 0];
|
|
98
|
+
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;
|
|
101
|
+
return val => {
|
|
102
|
+
const time = 60 * inputHour.value + val;
|
|
103
|
+
return time >= minTime && time <= maxTime && isHourAllowed && (!cb || cb(val));
|
|
104
|
+
};
|
|
105
|
+
});
|
|
106
|
+
const isAllowedSecondCb = computed(() => {
|
|
107
|
+
let cb;
|
|
108
|
+
const isHourAllowed = !isAllowedHourCb.value || inputHour.value === null || isAllowedHourCb.value(inputHour.value);
|
|
109
|
+
const isMinuteAllowed = isHourAllowed && (!isAllowedMinuteCb.value || inputMinute.value === null || isAllowedMinuteCb.value(inputMinute.value));
|
|
110
|
+
if (props.allowedSeconds instanceof Array) {
|
|
111
|
+
cb = val => props.allowedSeconds.includes(val);
|
|
112
|
+
} else {
|
|
113
|
+
cb = props.allowedSeconds;
|
|
114
|
+
}
|
|
115
|
+
if (!props.min && !props.max) {
|
|
116
|
+
return isMinuteAllowed ? cb : () => false;
|
|
117
|
+
}
|
|
118
|
+
const [minHour, minMinute, minSecond] = props.min ? props.min.split(':').map(Number) : [0, 0, 0];
|
|
119
|
+
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;
|
|
122
|
+
return val => {
|
|
123
|
+
const time = 3600 * inputHour.value + 60 * inputMinute.value + val;
|
|
124
|
+
return time >= minTime && time <= maxTime && isMinuteAllowed && (!cb || cb(val));
|
|
125
|
+
};
|
|
126
|
+
});
|
|
127
|
+
const isAmPm = computed(() => {
|
|
128
|
+
return props.format === 'ampm';
|
|
129
|
+
});
|
|
130
|
+
watch(() => props.modelValue, val => setInputData(val));
|
|
131
|
+
onMounted(() => {
|
|
132
|
+
setInputData(props.modelValue);
|
|
133
|
+
});
|
|
134
|
+
function genValue() {
|
|
135
|
+
if (inputHour.value != null && inputMinute.value != null && (!props.useSeconds || inputSecond.value != null)) {
|
|
136
|
+
return `${pad(inputHour.value)}:${pad(inputMinute.value)}` + (props.useSeconds ? `:${pad(inputSecond.value)}` : '');
|
|
137
|
+
}
|
|
138
|
+
return null;
|
|
139
|
+
}
|
|
140
|
+
function emitValue() {
|
|
141
|
+
const value = genValue();
|
|
142
|
+
if (value !== null) emit('update:modelValue', value);
|
|
143
|
+
}
|
|
144
|
+
function convert24to12(hour) {
|
|
145
|
+
return hour ? (hour - 1) % 12 + 1 : 12;
|
|
146
|
+
}
|
|
147
|
+
function convert12to24(hour, period) {
|
|
148
|
+
return hour % 12 + (period === 'pm' ? 12 : 0);
|
|
149
|
+
}
|
|
150
|
+
function setInputData(value) {
|
|
151
|
+
if (value == null || value === '') {
|
|
152
|
+
inputHour.value = null;
|
|
153
|
+
inputMinute.value = null;
|
|
154
|
+
inputSecond.value = null;
|
|
155
|
+
} else if (value instanceof Date) {
|
|
156
|
+
inputHour.value = value.getHours();
|
|
157
|
+
inputMinute.value = value.getMinutes();
|
|
158
|
+
inputSecond.value = value.getSeconds();
|
|
159
|
+
} else {
|
|
160
|
+
const [hour,, minute,, second, period] = value.trim().toLowerCase().match(/^(\d+):(\d+)(:(\d+))?([ap]m)?$/) || new Array(6);
|
|
161
|
+
inputHour.value = period ? convert12to24(parseInt(hour, 10), period) : parseInt(hour, 10);
|
|
162
|
+
inputMinute.value = parseInt(minute, 10);
|
|
163
|
+
inputSecond.value = parseInt(second || 0, 10);
|
|
164
|
+
}
|
|
165
|
+
period.value = inputHour.value == null || inputHour.value < 12 ? 'am' : 'pm';
|
|
166
|
+
}
|
|
167
|
+
function firstAllowed(type, value) {
|
|
168
|
+
const allowedFn = type === 'hour' ? isAllowedHourCb.value : type === 'minute' ? isAllowedMinuteCb.value : isAllowedSecondCb.value;
|
|
169
|
+
if (!allowedFn) return value;
|
|
170
|
+
|
|
171
|
+
// TODO: clean up (Note from V2 code)
|
|
172
|
+
const range = type === 'minute' ? range60 : type === 'second' ? range60 : isAmPm.value ? value < 12 ? rangeHours12am : rangeHours12pm : rangeHours24;
|
|
173
|
+
const first = range.find(v => allowedFn((v + value) % range.length + range[0]));
|
|
174
|
+
return ((first || 0) + value) % range.length + range[0];
|
|
175
|
+
}
|
|
176
|
+
function setPeriod(val) {
|
|
177
|
+
period.value = val;
|
|
178
|
+
if (inputHour.value != null) {
|
|
179
|
+
const newHour = inputHour.value + (period.value === 'am' ? -12 : 12);
|
|
180
|
+
inputHour.value = firstAllowed('hour', newHour);
|
|
181
|
+
}
|
|
182
|
+
emit('update:period', val);
|
|
183
|
+
emitValue();
|
|
184
|
+
return true;
|
|
185
|
+
}
|
|
186
|
+
function onInput(value) {
|
|
187
|
+
if (selecting.value === SelectingTimes.Hour) {
|
|
188
|
+
inputHour.value = isAmPm.value ? convert12to24(value, period.value) : value;
|
|
189
|
+
} else if (selecting.value === SelectingTimes.Minute) {
|
|
190
|
+
inputMinute.value = value;
|
|
191
|
+
} else {
|
|
192
|
+
inputSecond.value = value;
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
function onChange(value) {
|
|
196
|
+
switch (selectingNames[selecting.value]) {
|
|
197
|
+
case 'hour':
|
|
198
|
+
emit('update:hour', value);
|
|
199
|
+
break;
|
|
200
|
+
case 'minutes':
|
|
201
|
+
emit('update:minute', value);
|
|
202
|
+
break;
|
|
203
|
+
case 'seconds':
|
|
204
|
+
emit('update:second', value);
|
|
205
|
+
break;
|
|
206
|
+
default:
|
|
207
|
+
break;
|
|
208
|
+
}
|
|
209
|
+
const emitChange = selecting.value === (props.useSeconds ? SelectingTimes.Second : SelectingTimes.Minute);
|
|
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;
|
|
214
|
+
}
|
|
215
|
+
if (inputHour.value === lazyInputHour.value && inputMinute.value === lazyInputMinute.value && (!props.useSeconds || inputSecond.value === lazyInputSecond.value)) return;
|
|
216
|
+
const time = genValue();
|
|
217
|
+
if (time === null) return;
|
|
218
|
+
lazyInputHour.value = inputHour.value;
|
|
219
|
+
lazyInputMinute.value = inputMinute.value;
|
|
220
|
+
props.useSeconds && (lazyInputSecond.value = inputSecond.value);
|
|
221
|
+
emitChange && emitValue();
|
|
222
|
+
}
|
|
223
|
+
useRender(() => {
|
|
224
|
+
const pickerProps = VPicker.filterProps(props);
|
|
225
|
+
const timePickerControlsProps = VTimePickerControls.filterProps(props);
|
|
226
|
+
const timePickerClockProps = VTimePickerClock.filterProps(omit(props, ['format', 'modelValue', 'min', 'max']));
|
|
227
|
+
return _createVNode(VPicker, _mergeProps(pickerProps, {
|
|
228
|
+
"color": undefined,
|
|
229
|
+
"class": ['v-time-picker', props.class],
|
|
230
|
+
"style": props.style
|
|
231
|
+
}), {
|
|
232
|
+
title: () => slots.title?.() ?? _createVNode("div", {
|
|
233
|
+
"class": "v-time-picker__title"
|
|
234
|
+
}, [t(props.title)]),
|
|
235
|
+
header: () => _createVNode(VTimePickerControls, _mergeProps(timePickerControlsProps, {
|
|
236
|
+
"ampm": isAmPm.value || props.ampmInTitle,
|
|
237
|
+
"ampmReadonly": isAmPm.value && !props.ampmInTitle,
|
|
238
|
+
"hour": inputHour.value,
|
|
239
|
+
"minute": inputMinute.value,
|
|
240
|
+
"period": period.value,
|
|
241
|
+
"second": inputSecond.value,
|
|
242
|
+
"selecting": selecting.value,
|
|
243
|
+
"onUpdate:period": val => setPeriod(val),
|
|
244
|
+
"onUpdate:selecting": value => selecting.value = value,
|
|
245
|
+
"ref": controlsRef
|
|
246
|
+
}), null),
|
|
247
|
+
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,
|
|
253
|
+
"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,
|
|
256
|
+
"onChange": onChange,
|
|
257
|
+
"onInput": onInput,
|
|
258
|
+
"ref": clockRef
|
|
259
|
+
}), null),
|
|
260
|
+
actions: slots.actions
|
|
261
|
+
});
|
|
262
|
+
});
|
|
263
|
+
}
|
|
264
|
+
});
|
|
265
|
+
//# sourceMappingURL=VTimePicker.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VTimePicker.mjs","names":["VTimePickerClock","VTimePickerControls","pad","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 { VTimePickerClock } from './VTimePickerClock'\nimport { VTimePickerControls } from './VTimePickerControls'\nimport { pad } from '@/components/VDatePicker/util'\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) => val,\n 'update:minute': (val: number) => val,\n 'update:period': (val: Period) => val,\n 'update:second': (val: number) => val,\n 'update:modelValue': (val: string) => val,\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 'minutes':\n emit('update:minute', value)\n break\n case 'seconds':\n emit('update:second', value)\n break\n default:\n break\n }\n\n const emitChange = selecting.value === (props.useSeconds ? SelectingTimes.Second : SelectingTimes.Minute)\n\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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"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
.v-time-picker-clock {
|
|
2
|
+
background: rgb(var(--v-theme-background));
|
|
3
|
+
color: rgb(var(--v-theme-on-background));
|
|
4
|
+
}
|
|
5
|
+
.v-time-picker-clock:after {
|
|
6
|
+
color: rgb(var(--v-theme-primary));
|
|
7
|
+
}
|
|
8
|
+
.v-time-picker-clock .v-time-picker-clock__item--active {
|
|
9
|
+
background-color: rgb(var(--v-theme-surface-variant));
|
|
10
|
+
color: rgb(var(--v-theme-on-surface-variant));
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.v-time-picker-clock {
|
|
14
|
+
margin: 0 auto;
|
|
15
|
+
background: rgb(var(--v-theme-surface-light));
|
|
16
|
+
border-radius: 50%;
|
|
17
|
+
position: relative;
|
|
18
|
+
transition: none;
|
|
19
|
+
user-select: none;
|
|
20
|
+
height: 256px;
|
|
21
|
+
width: 256px;
|
|
22
|
+
flex: 1 0 auto;
|
|
23
|
+
}
|
|
24
|
+
.v-time-picker-clock__container {
|
|
25
|
+
display: flex;
|
|
26
|
+
flex-direction: column;
|
|
27
|
+
flex-basis: 290px;
|
|
28
|
+
justify-content: center;
|
|
29
|
+
padding: 10px;
|
|
30
|
+
}
|
|
31
|
+
.v-time-picker-clock__hand {
|
|
32
|
+
background-color: currentColor;
|
|
33
|
+
height: calc(50% - 4px);
|
|
34
|
+
width: 2px;
|
|
35
|
+
bottom: 50%;
|
|
36
|
+
left: calc(50% - 1px);
|
|
37
|
+
transform-origin: center bottom;
|
|
38
|
+
position: absolute;
|
|
39
|
+
will-change: transform;
|
|
40
|
+
z-index: 1;
|
|
41
|
+
}
|
|
42
|
+
.v-time-picker-clock__hand:before {
|
|
43
|
+
background: transparent;
|
|
44
|
+
border-width: 2px;
|
|
45
|
+
border-style: solid;
|
|
46
|
+
border-color: currentColor;
|
|
47
|
+
border-radius: 100%;
|
|
48
|
+
width: 10px;
|
|
49
|
+
height: 10px;
|
|
50
|
+
content: "";
|
|
51
|
+
position: absolute;
|
|
52
|
+
top: -4px;
|
|
53
|
+
left: 50%;
|
|
54
|
+
transform: translate(-50%, -50%);
|
|
55
|
+
}
|
|
56
|
+
.v-time-picker-clock__hand:after {
|
|
57
|
+
content: "";
|
|
58
|
+
position: absolute;
|
|
59
|
+
height: 8px;
|
|
60
|
+
width: 8px;
|
|
61
|
+
top: 100%;
|
|
62
|
+
left: 50%;
|
|
63
|
+
border-radius: 100%;
|
|
64
|
+
background-color: currentColor;
|
|
65
|
+
transform: translate(-50%, -50%);
|
|
66
|
+
}
|
|
67
|
+
.v-time-picker-clock__hand--inner:after {
|
|
68
|
+
height: 14px;
|
|
69
|
+
}
|
|
70
|
+
.v-time-picker-clock--readonly {
|
|
71
|
+
pointer-events: none;
|
|
72
|
+
}
|
|
73
|
+
.v-time-picker-clock .v-time-picker-clock__item--disabled {
|
|
74
|
+
opacity: var(--v-disabled-opacity);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
.v-picker--full-width .v-time-picker-clock__container {
|
|
78
|
+
max-width: 290px;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
.v-time-picker-clock__inner {
|
|
82
|
+
position: absolute;
|
|
83
|
+
bottom: 27px;
|
|
84
|
+
left: 27px;
|
|
85
|
+
right: 27px;
|
|
86
|
+
top: 27px;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
.v-time-picker-clock__item {
|
|
90
|
+
align-items: center;
|
|
91
|
+
border-radius: 100%;
|
|
92
|
+
cursor: default;
|
|
93
|
+
display: flex;
|
|
94
|
+
font-size: 16px;
|
|
95
|
+
justify-content: center;
|
|
96
|
+
height: 40px;
|
|
97
|
+
position: absolute;
|
|
98
|
+
text-align: center;
|
|
99
|
+
width: 40px;
|
|
100
|
+
user-select: none;
|
|
101
|
+
transform: translate(-50%, -50%);
|
|
102
|
+
}
|
|
103
|
+
.v-time-picker-clock__item > span {
|
|
104
|
+
z-index: 1;
|
|
105
|
+
}
|
|
106
|
+
.v-time-picker-clock__item:before, .v-time-picker-clock__item:after {
|
|
107
|
+
content: "";
|
|
108
|
+
border-radius: 100%;
|
|
109
|
+
position: absolute;
|
|
110
|
+
top: 50%;
|
|
111
|
+
left: 50%;
|
|
112
|
+
height: 14px;
|
|
113
|
+
width: 14px;
|
|
114
|
+
transform: translate(-50%, -50%);
|
|
115
|
+
}
|
|
116
|
+
.v-time-picker-clock__item:after, .v-time-picker-clock__item:before {
|
|
117
|
+
height: 40px;
|
|
118
|
+
width: 40px;
|
|
119
|
+
}
|
|
120
|
+
.v-time-picker-clock__item--active {
|
|
121
|
+
cursor: default;
|
|
122
|
+
z-index: 2;
|
|
123
|
+
}
|
|
124
|
+
.v-time-picker-clock__item--disabled {
|
|
125
|
+
pointer-events: none;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
.v-picker--landscape .v-time-picker-clock__container {
|
|
129
|
+
flex-direction: row;
|
|
130
|
+
}
|