{"version":3,"file":"pro-table.mjs","sources":["../../../../../packages/components/pro-table/src/pro-table.ts"],"sourcesContent":["import type { DataTableColumn, DataTableRow } from '@element-ultra/components/data-table'\nimport type { RequestResponse } from '@element-ultra/hooks'\nimport type { EmitFn } from '@element-ultra/utils'\nimport type { ExtractPropTypes, PropType } from 'vue'\n\nexport const proTableProps = {\n  /** 分页大小 */\n  pageSize: { type: Number },\n  /** 分页页码 */\n  pageSizeOptions: { type: Array as PropType<number[]> },\n\n  /** 数据请求接口, 如果传了data属性, 该属性将失效 */\n  api: { type: String },\n\n  /** 总条数 */\n  total: { type: Number },\n\n  /** 缓存params */\n  cacheParams: { type: Boolean },\n  /** 展示树形数据 */\n  tree: { type: [Boolean, String], default: false },\n  /** 数据 */\n  data: { type: Array as PropType<any[]> },\n  /** 额外的请求信息 */\n  requestExtra: { type: Object as PropType<Record<string, any>> },\n  /** 列配置 */\n  columns: { type: Array as PropType<ProTableColumn[]>, required: true },\n\n  columnsConfigurable: { type: [Boolean, String] as PropType<boolean | 'simple'>, default: false },\n\n  /** 在左侧展现索引 */\n  showIndex: { type: Boolean },\n  /** 显示复选框与selectable属性互斥, 只有一个生效 */\n  checkable: {\n    type: [Boolean, Function] as PropType<boolean | ((row: any, index: number) => boolean)>\n  },\n  /** 多选选中的数据 */\n  checked: { type: Array as PropType<any[]> },\n  /** 单选选中的数据 */\n  selected: { type: Object },\n  /** 显示查询按钮, 默认会根据api属性和是否查询条件来判断 */\n  showSearchButton: { type: Boolean, default: undefined },\n  /** 显示单选框与checkable属性互斥, 只有一个生效 */\n  selectable: {\n    type: [Boolean, Function] as PropType<boolean | ((row: any, index: number) => boolean)>\n  },\n  /** 展现分页 */\n  pagination: Boolean,\n  /** 检索对象, 传入table来让table自动帮你筛选数据 */\n  query: { type: Object as PropType<Record<string, any>> },\n  fetch: {\n    type: Function as PropType<(ctx: { api?: string; query: Record<string, any> }) => Promise<any>>\n  },\n  /** 表格高度, 一旦指定表头就会固定了 */\n  height: { type: String },\n\n  /** 汇总方法 */\n  summaryMethod: {\n    type: Function as PropType<\n      (data: { columns: ProTableColumn[]; data: any[]; checked: Set<any> }) => string[]\n    >\n  },\n\n  /** 默认显示 */\n  showTools: { type: Boolean, default: true },\n  /** 是否默认展开全部 */\n  defaultExpandAll: { type: Boolean, default: false },\n  /** 单元格最小宽度, 默认 100 */\n  cellMinWidth: { type: Number, default: 100 },\n\n  /** 查询项数量限制, 超出的会被隐藏, 默认2 */\n  searcherLimit: { type: Number, default: 2 },\n\n  /** 数据懒加载 */\n  lazyLoad: { type: Function as PropType<(row: Record<string, any>) => any[] | Promise<any[]>> },\n\n  /** 显示合计 */\n  showSummary: Boolean,\n\n  /** 数据项是否为响应式的 */\n  itemReactive: Boolean,\n\n  /** 合并单元格 */\n  mergeCell: {\n    type: Function as PropType<\n      (\n        row: DataTableRow,\n        column: DataTableColumn,\n        columnIndex: number\n      ) => { rowspan: number; colspan: number } | undefined\n    >\n  },\n\n  /** 单元格类 */\n  cellClass: {\n    type: Function as PropType<\n      (row: DataTableRow, column: DataTableColumn, columnIndex: number) => string[]\n    >\n  }\n}\n\nexport const proTableEmits = {\n  check: (checked: any[]) => true,\n  'update:checked': (checked: any[]) => true,\n  select: (selected: any) => true,\n  fetch: (query: Record<string, any>) => true,\n  loaded: (res: RequestResponse) => true,\n  'row-click': (row: any, rowIndex: number) => true\n}\n\n/** 专业数据表格类配置 */\nexport interface ProTableColumn extends DataTableColumn {\n  /** 定义此列的动态插槽 */\n  slot?: string\n  preset?: string\n  children?: ProTableColumn[]\n}\n\n/** 专业表格属性 */\nexport type ProTableProps = ExtractPropTypes<typeof proTableProps>\n\nexport type ProTableEmits = EmitFn<typeof proTableEmits>\n"],"names":[],"mappings":"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"}