import _extends from "@babel/runtime/helpers/esm/extends"; import { createNamespace } from '../utils'; import { padZero } from '../utils/format/string'; import { range } from '../utils/format/number'; import { sharedProps, TimePickerMixin } from './shared'; var _createNamespace = createNamespace('time-picker'), createComponent = _createNamespace[0]; export default createComponent({ mixins: [TimePickerMixin], props: _extends({}, sharedProps, { minHour: { type: [Number, String], default: 0 }, maxHour: { type: [Number, String], default: 23 }, minMinute: { type: [Number, String], default: 0 }, maxMinute: { type: [Number, String], default: 59 } }), computed: { ranges: function ranges() { return [{ type: 'hour', range: [+this.minHour, +this.maxHour] }, { type: 'minute', range: [+this.minMinute, +this.maxMinute] }]; } }, watch: { filter: 'updateInnerValue', minHour: function minHour() { var _this = this; this.$nextTick(function () { _this.updateInnerValue(); }); }, maxHour: function maxHour(value) { var _this$innerValue$spli = this.innerValue.split(':'), hour = _this$innerValue$spli[0], minute = _this$innerValue$spli[1]; if (hour >= value) { this.innerValue = this.formatValue(value + ":" + minute); this.updateColumnValue(); } else { this.updateInnerValue(); } }, minMinute: 'updateInnerValue', maxMinute: function maxMinute(value) { var _this$innerValue$spli2 = this.innerValue.split(':'), hour = _this$innerValue$spli2[0], minute = _this$innerValue$spli2[1]; if (minute >= value) { this.innerValue = this.formatValue(hour + ":" + value); this.updateColumnValue(); } else { this.updateInnerValue(); } }, value: function value(val) { val = this.formatValue(val); if (val !== this.innerValue) { this.innerValue = val; this.updateColumnValue(); } } }, methods: { formatValue: function formatValue(value) { if (!value) { value = padZero(this.minHour) + ":" + padZero(this.minMinute); } var _value$split = value.split(':'), hour = _value$split[0], minute = _value$split[1]; hour = padZero(range(hour, this.minHour, this.maxHour)); minute = padZero(range(minute, this.minMinute, this.maxMinute)); return hour + ":" + minute; }, updateInnerValue: function updateInnerValue() { var _this$getPicker$getIn = this.getPicker().getIndexes(), hourIndex = _this$getPicker$getIn[0], minuteIndex = _this$getPicker$getIn[1]; var _this$originColumns = this.originColumns, hourColumn = _this$originColumns[0], minuteColumn = _this$originColumns[1]; var hour = hourColumn.values[hourIndex] || hourColumn.values[0]; var minute = minuteColumn.values[minuteIndex] || minuteColumn.values[0]; this.innerValue = this.formatValue(hour + ":" + minute); this.updateColumnValue(); }, onChange: function onChange(picker) { var _this2 = this; this.updateInnerValue(); this.$nextTick(function () { _this2.$nextTick(function () { // https://github.com/vant-ui/vant/issues/9775 _this2.updateInnerValue(); _this2.$emit('change', picker); }); }); }, updateColumnValue: function updateColumnValue() { var _this3 = this; var formatter = this.formatter; var pair = this.innerValue.split(':'); var values = [formatter('hour', pair[0]), formatter('minute', pair[1])]; this.$nextTick(function () { _this3.getPicker().setValues(values); }); } } });