{"version":3,"file":"VTimePicker.mjs","names":["pad","VTimePickerClock","VTimePickerControls","makeVPickerProps","VPicker","useLocale","computed","onMounted","ref","watch","SelectingTimes","createRange","genericComponent","omit","propsFactory","useRender","rangeHours24","rangeHours12am","rangeHours12pm","map","v","range60","selectingNames","makeVTimePickerProps","allowedHours","Function","Array","allowedMinutes","allowedSeconds","ampmInTitle","Boolean","disabled","format","type","String","default","max","min","modelValue","readonly","scrollable","useSeconds","title","VTimePicker","name","props","emits","val","setup","_ref","emit","slots","t","inputHour","inputMinute","inputSecond","lazyInputHour","lazyInputMinute","lazyInputSecond","period","selecting","Hour","controlsRef","clockRef","isAllowedHourCb","cb","includes","minHour","Number","split","maxHour","isAllowedMinuteCb","isHourAllowed","value","minMinute","maxMinute","minTime","maxTime","time","isAllowedSecondCb","isMinuteAllowed","minSecond","maxSecond","isAmPm","setInputData","genValue","emitValue","convert24to12","hour","convert12to24","Date","getHours","getMinutes","getSeconds","minute","second","trim","toLowerCase","match","parseInt","firstAllowed","allowedFn","range","first","find","length","setPeriod","newHour","onInput","Minute","onChange","emitChange","Second","pickerProps","filterProps","timePickerControlsProps","timePickerClockProps","_createVNode","_mergeProps","undefined","class","style","header","actions"],"sources":["../../../src/labs/VTimePicker/VTimePicker.tsx"],"sourcesContent":["// Styles\nimport './VTimePicker.sass'\n\n// Components\nimport { pad } from './util'\nimport { VTimePickerClock } from './VTimePickerClock'\nimport { VTimePickerControls } from './VTimePickerControls'\nimport { makeVPickerProps, VPicker } from '@/labs/VPicker/VPicker'\n\n// Composables\nimport { useLocale } from '@/composables/locale'\n\n// Utilities\nimport { computed, onMounted, ref, watch } from 'vue'\nimport { SelectingTimes } from './SelectingTimes'\nimport { createRange, genericComponent, omit, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VPickerSlots } from '@/labs/VPicker/VPicker'\ntype Period = 'am' | 'pm'\ntype AllowFunction = (val: number) => boolean\n\nconst rangeHours24 = createRange(24)\nconst rangeHours12am = createRange(12)\nconst rangeHours12pm = rangeHours12am.map(v => v + 12)\nconst range60 = createRange(60)\nconst selectingNames = { 1: 'hour', 2: 'minute', 3: 'second' }\n\nexport { SelectingTimes }\n\nexport type VTimePickerSlots = Omit\n\nexport const makeVTimePickerProps = propsFactory({\n allowedHours: [Function, Array] as PropType,\n allowedMinutes: [Function, Array] as PropType,\n allowedSeconds: [Function, Array] as PropType,\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,\n readonly: Boolean,\n scrollable: Boolean,\n useSeconds: Boolean,\n ...omit(makeVPickerProps({ title: '$vuetify.timePicker.title' }), ['landscape']),\n}, 'VTimePicker')\n\nexport const VTimePicker = genericComponent()({\n name: 'VTimePicker',\n\n props: makeVTimePickerProps(),\n\n emits: {\n 'update:hour': (val: number) => true,\n 'update:minute': (val: number) => true,\n 'update:period': (val: Period) => true,\n 'update:second': (val: number) => true,\n 'update:modelValue': (val: string) => true,\n },\n\n setup (props, { emit, slots }) {\n const { t } = useLocale()\n const inputHour = ref(null as number | null)\n const inputMinute = ref(null as number | null)\n const inputSecond = ref(null as number | null)\n const lazyInputHour = ref(null as number | null)\n const lazyInputMinute = ref(null as number | null)\n const lazyInputSecond = ref(null as number | null)\n const period = ref('am' as Period)\n const selecting = ref(SelectingTimes.Hour)\n const controlsRef = ref(null)\n const clockRef = ref(null)\n\n const isAllowedHourCb = computed((): AllowFunction => {\n let cb: AllowFunction\n\n if (props.allowedHours instanceof Array) {\n cb = (val: number) => (props.allowedHours as number[]).includes(val)\n } else {\n cb = props.allowedHours as AllowFunction\n }\n\n if (!props.min && !props.max) return cb\n\n const minHour = props.min ? Number(props.min.split(':')[0]) : 0\n const maxHour = props.max ? Number(props.max.split(':')[0]) : 23\n\n return (val: number) => {\n return val >= minHour * 1 &&\n val <= maxHour * 1 &&\n (!cb || cb(val))\n }\n })\n\n const isAllowedMinuteCb = computed((): AllowFunction => {\n let cb: AllowFunction\n\n const isHourAllowed = !isAllowedHourCb.value || inputHour.value === null || isAllowedHourCb.value(inputHour.value)\n if (props.allowedMinutes instanceof Array) {\n cb = (val: number) => (props.allowedMinutes as number[]).includes(val)\n } else {\n cb = props.allowedMinutes as AllowFunction\n }\n\n if (!props.min && !props.max) {\n return isHourAllowed ? cb : () => false\n }\n\n const [minHour, minMinute] = props.min ? props.min.split(':').map(Number) : [0, 0]\n const [maxHour, maxMinute] = props.max ? props.max.split(':').map(Number) : [23, 59]\n const minTime = minHour * 60 + minMinute * 1\n const maxTime = maxHour * 60 + maxMinute * 1\n\n return (val: number) => {\n const time = 60 * inputHour.value! + val\n return time >= minTime &&\n time <= maxTime &&\n isHourAllowed &&\n (!cb || cb(val))\n }\n })\n\n const isAllowedSecondCb = computed((): AllowFunction => {\n let cb: AllowFunction\n\n const isHourAllowed = !isAllowedHourCb.value || inputHour.value === null || isAllowedHourCb.value(inputHour.value)\n const isMinuteAllowed = isHourAllowed &&\n (!isAllowedMinuteCb.value ||\n inputMinute.value === null ||\n isAllowedMinuteCb.value(inputMinute.value)\n )\n\n if (props.allowedSeconds instanceof Array) {\n cb = (val: number) => (props.allowedSeconds as number[]).includes(val)\n } else {\n cb = props.allowedSeconds as AllowFunction\n }\n\n if (!props.min && !props.max) {\n return isMinuteAllowed ? cb : () => false\n }\n\n const [minHour, minMinute, minSecond] = props.min ? props.min.split(':').map(Number) : [0, 0, 0]\n const [maxHour, maxMinute, maxSecond] = props.max ? props.max.split(':').map(Number) : [23, 59, 59]\n const minTime = minHour * 3600 + minMinute * 60 + (minSecond || 0) * 1\n const maxTime = maxHour * 3600 + maxMinute * 60 + (maxSecond || 0) * 1\n\n return (val: number) => {\n const time = 3600 * inputHour.value! + 60 * inputMinute.value! + val\n return time >= minTime &&\n time <= maxTime &&\n isMinuteAllowed &&\n (!cb || cb(val))\n }\n })\n\n const isAmPm = computed((): boolean => {\n return props.format === 'ampm'\n })\n\n watch(() => props.modelValue, val => setInputData(val))\n\n onMounted(() => {\n setInputData(props.modelValue)\n })\n\n function genValue () {\n if (inputHour.value != null && inputMinute.value != null && (!props.useSeconds || inputSecond.value != null)) {\n return `${pad(inputHour.value)}:${pad(inputMinute.value)}` + (props.useSeconds ? `:${pad(inputSecond.value!)}` : '')\n }\n\n return null\n }\n\n function emitValue () {\n const value = genValue()\n if (value !== null) emit('update:modelValue', value)\n }\n\n function convert24to12 (hour: number) {\n return hour ? ((hour - 1) % 12 + 1) : 12\n }\n\n function convert12to24 (hour: number, period: Period) {\n return hour % 12 + (period === 'pm' ? 12 : 0)\n }\n\n function setInputData (value: string | null | Date) {\n if (value == null || value === '') {\n inputHour.value = null\n inputMinute.value = null\n inputSecond.value = null\n } else if (value instanceof Date) {\n inputHour.value = value.getHours()\n inputMinute.value = value.getMinutes()\n inputSecond.value = value.getSeconds()\n } else {\n const [hour, , minute, , second, period] = value.trim().toLowerCase().match(/^(\\d+):(\\d+)(:(\\d+))?([ap]m)?$/) || new Array(6)\n\n inputHour.value = period ? convert12to24(parseInt(hour, 10), period as Period) : parseInt(hour, 10)\n inputMinute.value = parseInt(minute, 10)\n inputSecond.value = parseInt(second || 0, 10)\n }\n\n period.value = (inputHour.value == null || inputHour.value < 12) ? 'am' : 'pm'\n }\n\n function firstAllowed (type: 'hour' | 'minute' | 'second', value: number) {\n const allowedFn = type === 'hour' ? isAllowedHourCb.value : (type === 'minute' ? isAllowedMinuteCb.value : isAllowedSecondCb.value)\n if (!allowedFn) return value\n\n // TODO: clean up (Note from V2 code)\n const range = type === 'minute'\n ? range60\n : (type === 'second'\n ? range60\n : (isAmPm.value\n ? (value < 12\n ? rangeHours12am\n : rangeHours12pm)\n : rangeHours24))\n const first = range.find(v => allowedFn((v + value) % range.length + range[0]))\n return ((first || 0) + value) % range.length + range[0]\n }\n\n function setPeriod (val: Period) {\n period.value = val\n if (inputHour.value != null) {\n const newHour = inputHour.value! + (period.value === 'am' ? -12 : 12)\n inputHour.value = firstAllowed('hour', newHour)\n }\n emit('update:period', val)\n emitValue()\n return true\n }\n\n function onInput (value: number) {\n if (selecting.value === SelectingTimes.Hour) {\n inputHour.value = isAmPm.value ? convert12to24(value, period.value) : value\n } else if (selecting.value === SelectingTimes.Minute) {\n inputMinute.value = value\n } else {\n inputSecond.value = value\n }\n }\n\n function onChange (value: number) {\n switch (selectingNames[selecting.value]) {\n case 'hour':\n emit('update:hour', value)\n break\n case 'minute':\n emit('update:minute', value)\n break\n case 'second':\n emit('update:second', value)\n break\n default:\n break\n }\n\n const emitChange = 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 slots.title?.() ?? (\n
\n { t(props.title) }\n
\n ),\n header: () => (\n setPeriod(val) }\n onUpdate:selecting={ (value: 1 | 2 | 3) => (selecting.value = value) }\n ref={ controlsRef }\n />\n ),\n default: () => (\n 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\n"],"mappings":"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","ignoreList":[]}