/**
 * 日期时间选择
 * @author xiufu.wang
 */

import DatePicker from 'mars-pro/packages/date-picker';
import BaseMixin from 'mars-pro/packages/pro-input/src/mixins/base';
import resolveDyncDate from 'mars-pro/src/pro/resolve-dyncdate'
export default {
    name: 'ProInputDatetime',
    componentName: 'ProInputDatetime',
    mixins: [BaseMixin],
    components: {
        DatePicker
    },
    computed: {
        mergerPickerOptions() { 
            const usepickerOptions = this.$attrs.pickerOptions || {}
            let min = resolveDyncDate(this.$attrs.min)
            let max = resolveDyncDate(this.$attrs.max)
            return {
                // min max
                disabledDate: function (time) { 
                    if (min || max) { 
                        return (!!min && time.getTime() < min.getTime()) || (!!max && time.getTime() > max.getTime())
                    }
                    return false
                },
                ...usepickerOptions
            }
        }
    },
    render() { 
        const _datas = {
            props: {
                value: this.value,
                lazy: true,
                clearable: true,
                'value-format': 'yyyy-MM-dd hh:mm:ss',
                ...this.$attrs,
                type: 'datetime',
                pickerOptions: this.mergerPickerOptions,
                popperClass: 'pro-input-datetime-picker-panel'
            },
            attrs: this.$attrs,
            on: {
                ...this.$listeners
            },
            ref: 'elinput',
            'class': {
                'pro-input-datetime': true
            }
        }
        return (
            <DatePicker  {..._datas}>
                {this.renderSlots()}
            </DatePicker>
        )
    }
}