"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports.TimePickerMixin = exports.sharedProps = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _utils = require("./utils"); var _string = require("../utils/format/string"); var _shared = require("../picker/shared"); var _picker = _interopRequireDefault(require("../picker")); var sharedProps = (0, _extends2.default)({}, _shared.pickerProps, { value: null, filter: Function, columnsOrder: Array, showToolbar: { type: Boolean, default: true }, formatter: { type: Function, default: function _default(type, value) { return value; } } }); exports.sharedProps = sharedProps; var TimePickerMixin = { data: function data() { return { innerValue: this.formatValue(this.value) }; }, computed: { originColumns: function originColumns() { var _this = this; return this.ranges.map(function (_ref) { var type = _ref.type, rangeArr = _ref.range; var values = (0, _utils.times)(rangeArr[1] - rangeArr[0] + 1, function (index) { var value = (0, _string.padZero)(rangeArr[0] + index); return value; }); if (_this.filter) { values = _this.filter(type, values); } return { type: type, values: values }; }); }, columns: function columns() { var _this2 = this; return this.originColumns.map(function (column) { return { values: column.values.map(function (value) { return _this2.formatter(column.type, value); }) }; }); } }, watch: { columns: 'updateColumnValue', innerValue: function innerValue(val, oldVal) { if (!oldVal) { this.$emit('input', null); } else { this.$emit('input', val); } } }, mounted: function mounted() { var _this3 = this; this.updateColumnValue(); this.$nextTick(function () { _this3.updateInnerValue(); }); }, methods: { getPicker: function getPicker() { return this.$refs.picker; }, // https://github.com/vant-ui/vant/issues/10013 getProxiedPicker: function getProxiedPicker() { var _this4 = this; var picker = this.$refs.picker; if (picker) { var proxy = function proxy(fn) { return function () { picker[fn].apply(picker, arguments); _this4.updateInnerValue(); }; }; return (0, _extends2.default)({}, picker, { setValues: proxy('setValues'), setIndexes: proxy('setIndexes'), setColumnIndex: proxy('setColumnIndex'), setColumnValue: proxy('setColumnValue') }); } }, onConfirm: function onConfirm() { this.$emit('input', this.innerValue); this.$emit('confirm', this.innerValue); }, onCancel: function onCancel() { this.$emit('cancel'); } }, render: function render() { var _this5 = this; var h = arguments[0]; var props = {}; Object.keys(_shared.pickerProps).forEach(function (key) { props[key] = _this5[key]; }); return h(_picker.default, { "ref": "picker", "attrs": { "columns": this.columns, "readonly": this.readonly }, "scopedSlots": this.$scopedSlots, "on": { "change": this.onChange, "confirm": this.onConfirm, "cancel": this.onCancel }, "props": (0, _extends2.default)({}, props) }); } }; exports.TimePickerMixin = TimePickerMixin;