{"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,\n allowedMinutes: [Function, Array] as PropType,\n allowedSeconds: [Function, Array] as PropType,\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,\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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"}