import '../../../utils/index.mjs';
import PropTypes from '../../../utils/vue/vueTypes.mjs';
import { objectType, arrayType, functionType } from '../../../utils/vue/propType.mjs';

const PlacementTypes = ["top", "right", "bottom", "left"];
function baseProps() {
  return {
    prefixCls: String,
    width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
    height: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
    style: { type: Object, default: () => ({}) },
    class: String,
    rootClassName: String,
    rootStyle: 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: arrayType(),
    autofocus: { type: Boolean, default: void 0 },
    open: { type: Boolean, default: void 0 },
    // Motion
    motion: functionType(),
    maskMotion: objectType()
  };
}
function drawerWrapperProps() {
  return {
    ...baseProps(),
    forceRender: { type: Boolean, default: void 0 },
    getContainer: PropTypes.oneOfType([
      PropTypes.string,
      PropTypes.func,
      PropTypes.object,
      PropTypes.looseBool
    ])
  };
}
function drawerChildProps() {
  return {
    ...baseProps(),
    getContainer: Function,
    getOpenCount: Function,
    scrollLocker: PropTypes.any,
    inline: Boolean
  };
}
function drawerProps() {
  return {
    "autofocus": { type: Boolean, default: void 0 },
    "closable": { type: Boolean, default: void 0 },
    "closeIcon": PropTypes.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": objectType(),
    "rootClassName": String,
    "rootStyle": objectType(),
    "size": {
      type: String
    },
    "drawerStyle": objectType(),
    "headerStyle": objectType(),
    "bodyStyle": objectType(),
    "contentWrapperStyle": {
      type: Object,
      default: () => ({})
    },
    "title": PropTypes.any,
    /** @deprecated Please use `open` instead */
    "visible": { type: Boolean, default: void 0 },
    "open": { type: Boolean, default: void 0 },
    "width": PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
    "height": PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
    "zIndex": Number,
    "prefixCls": String,
    "push": PropTypes.oneOfType([PropTypes.looseBool, { type: Object }]),
    "placement": PropTypes.oneOf(PlacementTypes),
    "keyboard": { type: Boolean, default: void 0 },
    "extra": PropTypes.any,
    "footer": PropTypes.any,
    "footerStyle": objectType(),
    "level": PropTypes.any,
    "lockScroll": { type: Boolean, default: true },
    "levelMove": {
      type: [Number, Array, Function]
    },
    "handle": PropTypes.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
  };
}

export { PlacementTypes, drawerChildProps, drawerProps, drawerWrapperProps };
//# sourceMappingURL=props.mjs.map
