'use strict';

var type = require('../../_util/type.js');

const DataPickerPlacements = ["bottomLeft", "bottomRight", "topLeft", "topRight"];
function commonProps() {
  return {
    "id": String,
    /**
     * @deprecated `dropdownClassName` is deprecated which will be removed in next major
     *   version.Please use `popupClassName` instead.
     */
    "dropdownClassName": String,
    "popupClassName": String,
    "popupStyle": type.objectType(),
    "transitionName": String,
    "placeholder": String,
    "allowClear": type.booleanType(),
    "autofocus": type.booleanType(),
    "disabled": type.booleanType(),
    "tabindex": Number,
    "open": type.booleanType(),
    "defaultOpen": type.booleanType(),
    /** Make input readOnly to avoid popup keyboard in mobile */
    "inputReadOnly": type.booleanType(),
    "format": type.someType([
      String,
      Function,
      Array
    ]),
    // Value
    // format:  string | CustomFormat<DateType> | (string | CustomFormat<DateType>)[];
    // Render
    // suffixIcon?: VueNode;
    // clearIcon?: VueNode;
    // prevIcon?: VueNode;
    // nextIcon?: VueNode;
    // superPrevIcon?: VueNode;
    // superNextIcon?: VueNode;
    "getPopupContainer": type.functionType(),
    "panelRender": type.functionType(),
    // // Events
    "onChange": type.functionType(),
    "onUpdate:value": type.functionType(),
    "onOk": type.functionType(),
    "onOpenChange": type.functionType(),
    "onUpdate:open": type.functionType(),
    "onFocus": type.functionType(),
    "onBlur": type.functionType(),
    "onMousedown": type.functionType(),
    "onMouseup": type.functionType(),
    "onMouseenter": type.functionType(),
    "onMouseleave": type.functionType(),
    "onClick": type.functionType(),
    "onContextmenu": type.functionType(),
    "onKeydown": type.functionType(),
    // WAI-ARIA
    "role": String,
    "name": String,
    "autocomplete": String,
    "direction": type.stringType(),
    "showToday": type.booleanType(),
    "showTime": type.someType([Boolean, Object]),
    "locale": type.objectType(),
    "size": type.stringType(),
    "bordered": type.booleanType(),
    "dateRender": type.functionType(),
    "disabledDate": type.functionType(),
    "mode": type.stringType(),
    "picker": type.stringType(),
    "valueFormat": String,
    "placement": type.stringType(),
    "status": type.stringType(),
    /** @deprecated Please use `disabledTime` instead. */
    "disabledHours": type.functionType(),
    /** @deprecated Please use `disabledTime` instead. */
    "disabledMinutes": type.functionType(),
    /** @deprecated Please use `disabledTime` instead. */
    "disabledSeconds": type.functionType()
  };
}
function datePickerProps() {
  return {
    defaultPickerValue: type.someType([Object, String]),
    defaultValue: type.someType([Object, String]),
    value: type.someType([Object, String]),
    presets: type.arrayType(),
    disabledTime: type.functionType(),
    renderExtraFooter: type.functionType(),
    showNow: type.booleanType(),
    monthCellRender: type.functionType(),
    // deprecated  Please use `monthCellRender"` instead.',
    monthCellContentRender: type.functionType()
  };
}
function rangePickerProps() {
  return {
    "allowEmpty": type.arrayType(),
    "dateRender": type.functionType(),
    "defaultPickerValue": type.arrayType(),
    "defaultValue": type.arrayType(),
    "value": type.arrayType(),
    "presets": type.arrayType(),
    "disabledTime": type.functionType(),
    "disabled": type.someType([Boolean, Array]),
    "renderExtraFooter": type.functionType(),
    "separator": { type: String },
    "showTime": type.someType([Boolean, Object]),
    "ranges": type.objectType(),
    "placeholder": type.arrayType(),
    "mode": type.arrayType(),
    "onChange": type.functionType(),
    "onUpdate:value": type.functionType(),
    "onCalendarChange": type.functionType(),
    "onPanelChange": type.functionType(),
    "onOk": type.functionType()
  };
}

exports.commonProps = commonProps;
exports.datePickerProps = datePickerProps;
exports.rangePickerProps = rangePickerProps;
//# sourceMappingURL=props.js.map
