{"version":3,"file":"resizable.mjs","sources":["../../../../../../packages/components/resizable/src/resizable.ts"],"sourcesContent":["import { buildProps, definePropType } from '@element-plus/utils'\nimport { sticks } from './types'\nimport type { ExtractPropTypes } from 'vue'\nimport type { IRect, IStick } from './types'\n\nexport const resizableProps = buildProps({\n  // 确定组件是否应可拖动\n  isDraggable: {\n    type: definePropType<boolean>(Boolean),\n    default: true,\n  },\n  // 自定义组件局部元素可拖动\n  isCustomDraggable: {\n    type: definePropType<boolean>(Boolean),\n    default: false,\n  },\n  // 确定组件是否应调整大小\n  isResizable: {\n    type: definePropType<boolean>(Boolean),\n    default: true,\n  },\n  // 确定组件是否应保持其比例\n  aspectRatio: {\n    type: definePropType<boolean>(Boolean),\n    default: false,\n  },\n  // 将组件更改的范围限制为其父大小\n  parentLimitation: {\n    type: definePropType<boolean>(Boolean),\n    default: false,\n  },\n  // 确定组件是否应按预定义的步长移动和调整大小。\n  snapToGrid: {\n    type: definePropType<boolean>(Boolean),\n    default: false,\n  },\n  // 定义水平轴的网格步长。组件的两侧（左侧和右侧）将跳到此步骤。\n  gridX: {\n    type: definePropType<number>(Number),\n    default: 50,\n    validator(val) {\n      return val >= 0\n    },\n  },\n  // 定义垂直轴的网格步长。组件的两侧（顶部和底部）将捕捉到此步骤。\n  gridY: {\n    type: definePropType<number>(Number),\n    default: 50,\n    validator(val) {\n      return val >= 0\n    },\n  },\n  // 定义父元素的初始宽度。 如果未指定，则自动计算。使用此参数，您可以设置组件的边界区域，并在实时调整大小时使用它。\n  parentW: {\n    type: definePropType<number>(Number),\n    default: 0,\n    validator(val) {\n      return val >= 0\n    },\n  },\n  // 定义父元素的初始高度。 如果未指定，则自动计算。 使用此参数，您可以设置组件的边界区域，并在实时调整大小时使用它。\n  parentH: {\n    type: definePropType<number>(Number),\n    default: 0,\n    validator(val) {\n      return val >= 0\n    },\n  },\n  // 定义组件的初始宽度。\n  w: {\n    type: definePropType<string | number>([String, Number]),\n    default: 200,\n    validator(val) {\n      return typeof val === 'string' ? val === 'auto' : val >= 0\n    },\n  },\n  // 定义组件的初始高度。\n  h: {\n    type: definePropType<string | number>([String, Number]),\n    default: 200,\n    validator(val) {\n      return typeof val === 'string' ? val === 'auto' : val >= 0\n    },\n  },\n  // 定义组件的最小宽度。\n  minw: {\n    type: definePropType<number>(Number),\n    default: 50,\n    validator(val) {\n      return val >= 0\n    },\n  },\n  // 定义组件的最小高度。\n  minh: {\n    type: definePropType<number>(Number),\n    default: 50,\n    validator(val) {\n      return val >= 0\n    },\n  },\n  // 定义组件的初始X位置。\n  x: {\n    type: definePropType<number>(Number),\n    default: 0,\n    validator(val) {\n      return typeof val === 'number'\n    },\n  },\n  // 定义组件的初始Y位置。\n  y: {\n    type: definePropType<number>(Number),\n    default: 0,\n    validator(val) {\n      return typeof val === 'number'\n    },\n  },\n  // 定义组件的zindex(层级)。\n  z: {\n    type: definePropType<string | number>([String, Number]),\n    default: 'auto',\n    validator(val) {\n      return typeof val === 'string' ? val === 'auto' : val >= 0\n    },\n  },\n  /**\n   * 定义句柄数组以限制元素大小调整\n      tl - Top left 上左\n      tm - Top middle 上\n      tr - Top right 上右\n      mr - Middle right 右\n      br - Bottom right 下右\n      bm - Bottom middle 下\n      bl - Bottom left 下左\n      ml - Middle left 左\n   */\n  sticks: {\n    type: definePropType<IStick[]>(Array),\n    default() {\n      return sticks\n    },\n  },\n  // 定义元素可拖动的轴。 可用值为x，y，both或none。\n  axis: {\n    type: definePropType<string>(String),\n    default: 'both',\n    validator(val) {\n      return ['x', 'y', 'both', 'none'].includes(val)\n    },\n  },\n  // 定义初始水平比例或父元素。父级的transform:scale（）css定义中的值相同。 拖动/调整大小和杆的大小将使用该值计算。\n  parentScaleX: {\n    type: definePropType<number>(Number),\n    default: 1,\n  },\n  // 定义初始垂直比例或父元素。父级的transform:scale（）css定义中的值相同。拖动/调整大小和杆的大小将使用该值计算。\n  parentScaleY: {\n    type: definePropType<number>(Number),\n    default: 1,\n  },\n} as const)\nexport type ResizableProps = ExtractPropTypes<typeof resizableProps>\n\nexport const resizableEmits = {\n  'drag-start': (rect: IRect, evt: PointerEvent) => !!rect && !!evt,\n  drag: (rect: IRect, evt: PointerEvent) => !!rect && !!evt,\n  'drag-end': (rect: IRect, evt: PointerEvent) => !!rect && !!evt,\n\n  'resize-start': (rect: IRect, evt: PointerEvent) => !!rect && !!evt,\n  resize: (rect: IRect, evt: PointerEvent) => !!rect && !!evt,\n  'resize-end': (rect: IRect, evt: PointerEvent) => !!rect && !!evt,\n}\nexport type ResizableEmits = typeof resizableEmits\n"],"names":[],"mappings":"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"}