'use strict';

require('../../../utils/index.cjs');
var vueTypes = require('../../../utils/vue/vueTypes.cjs');
var propType = require('../../../utils/vue/propType.cjs');

const PlacementTypes = ["top", "right", "bottom", "left"];
function baseProps() {
  return {
    prefixCls: String,
    width: vueTypes.default.oneOfType([vueTypes.default.string, vueTypes.default.number]),
    height: vueTypes.default.oneOfType([vueTypes.default.string, vueTypes.default.number]),
    style: { type: Object, default: () => ({}) },
    class: String,
    rootClassName: String,
    rootStyle: propType.objectType(),
    placement: {
      type: String
    },
    wrapperClassName: String,
    level: { type: [String, Array] },
    levelMove: {
      type: [Number, Function, Array]
    },
    duration: String,
    ease: String,
    showMask: { type: Boolean, default: void 0 },
    maskClosable: { type: Boolean, default: void 0 },
    maskStyle: { type: Object, default: () => ({}) },
    afterVisibleChange: Function,
    keyboard: { type: Boolean, default: void 0 },
    contentWrapperStyle: propType.arrayType(),
    autofocus: { type: Boolean, default: void 0 },
    open: { type: Boolean, default: void 0 },
    // Motion
    motion: propType.functionType(),
    maskMotion: propType.objectType()
  };
}
function drawerWrapperProps() {
  return {
    ...baseProps(),
    forceRender: { type: Boolean, default: void 0 },
    getContainer: vueTypes.default.oneOfType([
      vueTypes.default.string,
      vueTypes.default.func,
      vueTypes.default.object,
      vueTypes.default.looseBool
    ])
  };
}
function drawerChildProps() {
  return {
    ...baseProps(),
    getContainer: Function,
    getOpenCount: Function,
    scrollLocker: vueTypes.default.any,
    inline: Boolean
  };
}
function drawerProps() {
  return {
    "autofocus": { type: Boolean, default: void 0 },
    "closable": { type: Boolean, default: void 0 },
    "closeIcon": vueTypes.default.any,
    "destroyOnClose": { type: Boolean, default: void 0 },
    "forceRender": { type: Boolean, default: void 0 },
    "getContainer": {
      type: [String, Function, Boolean, Object],
      default: void 0
    },
    "maskClosable": { type: Boolean, default: void 0 },
    "mask": { type: Boolean, default: void 0 },
    "maskStyle": propType.objectType(),
    "rootClassName": String,
    "rootStyle": propType.objectType(),
    "size": {
      type: String
    },
    "drawerStyle": propType.objectType(),
    "headerStyle": propType.objectType(),
    "bodyStyle": propType.objectType(),
    "contentWrapperStyle": {
      type: Object,
      default: () => ({})
    },
    "title": vueTypes.default.any,
    /** @deprecated Please use `open` instead */
    "visible": { type: Boolean, default: void 0 },
    "open": { type: Boolean, default: void 0 },
    "width": vueTypes.default.oneOfType([vueTypes.default.string, vueTypes.default.number]),
    "height": vueTypes.default.oneOfType([vueTypes.default.string, vueTypes.default.number]),
    "zIndex": Number,
    "prefixCls": String,
    "push": vueTypes.default.oneOfType([vueTypes.default.looseBool, { type: Object }]),
    "placement": vueTypes.default.oneOf(PlacementTypes),
    "keyboard": { type: Boolean, default: void 0 },
    "extra": vueTypes.default.any,
    "footer": vueTypes.default.any,
    "footerStyle": propType.objectType(),
    "level": vueTypes.default.any,
    "lockScroll": { type: Boolean, default: true },
    "levelMove": {
      type: [Number, Array, Function]
    },
    "handle": vueTypes.default.any,
    /** @deprecated Use `@afterVisibleChange` instead */
    "afterVisibleChange": Function,
    /** @deprecated Please use `@afterOpenChange` instead */
    "onAfterVisibleChange": Function,
    "onAfterOpenChange": Function,
    /** @deprecated Please use `onUpdate:open` instead */
    "onUpdate:visible": Function,
    "onUpdate:open": Function,
    "onClose": Function
  };
}

exports.PlacementTypes = PlacementTypes;
exports.drawerChildProps = drawerChildProps;
exports.drawerProps = drawerProps;
exports.drawerWrapperProps = drawerWrapperProps;
//# sourceMappingURL=props.cjs.map
