{"version":3,"file":"props.mjs","sources":["../../../components/table/props.ts"],"sourcesContent":["import {\r\n  booleanProp,\r\n  buildProps,\r\n  classProp,\r\n  eventProp,\r\n  localeProp,\r\n  sizeProp,\r\n  styleProp,\r\n} from '@vexip-ui/config'\r\n\r\nimport type { ExtractPropTypes, PropType } from 'vue'\r\nimport type { ClassType, ConfigurableProps, StyleType } from '@vexip-ui/config'\r\nimport type { TooltipTheme } from '@/components/tooltip'\r\nimport type {\r\n  Accessor,\r\n  ColumnCellSpanFn,\r\n  ColumnRenderFn,\r\n  ColumnSummaryRenderFn,\r\n  Data,\r\n  DropType,\r\n  ExpandRenderFn,\r\n  FilterRenderFn,\r\n  HeadRenderFn,\r\n  SummaryCellSpanFn,\r\n  SummaryRenderFn,\r\n  TableCellPayload,\r\n  TableCellPropFn,\r\n  TableCellSpanFn,\r\n  TableColResizeType,\r\n  TableColumnRawOptions,\r\n  TableColumnType,\r\n  TableFilterOptions,\r\n  TableFilterProfile,\r\n  TableFootPayload,\r\n  TableFootPropFn,\r\n  TableHeadPayload,\r\n  TableHeadPropFn,\r\n  TableIcons,\r\n  TableKeyConfig,\r\n  TableRowPayload,\r\n  TableRowPropFn,\r\n  TableSlots,\r\n  TableSorterOptions,\r\n  TableSorterProfile,\r\n  TableSummaryOptions,\r\n  TableTextAlign,\r\n} from './symbol'\r\n\r\nexport const tableProps = buildProps({\r\n  locale: localeProp('table'),\r\n  columns: Array as PropType<TableColumnRawOptions[]>,\r\n  summaries: Array as PropType<TableSummaryOptions<any, any>[]>,\r\n  data: Array as PropType<Data[]>,\r\n  width: [Number, String],\r\n  height: Number,\r\n  minHeight: Number,\r\n  rowClass: [String, Object, Array, Function] as PropType<ClassType | TableRowPropFn<ClassType>>,\r\n  rowStyle: [String, Object, Array, Function] as PropType<StyleType | TableRowPropFn<StyleType>>,\r\n  rowAttrs: [Object, Function] as PropType<\r\n    Record<string, any> | TableRowPropFn<Record<string, any>>\r\n  >,\r\n  stripe: booleanProp,\r\n  border: booleanProp,\r\n  highlight: booleanProp,\r\n  useXBar: booleanProp,\r\n  useYBar: booleanProp,\r\n  barFade: Number,\r\n  rowDraggable: booleanProp,\r\n  rowHeight: Number,\r\n  rowMinHeight: Number,\r\n  virtual: booleanProp,\r\n  bufferCount: Number,\r\n  scrollClass: Object as PropType<{\r\n    horizontal?: ClassType,\r\n    major?: ClassType,\r\n    left?: ClassType,\r\n    right?: ClassType,\r\n  }>,\r\n  expandRenderer: Function as PropType<ExpandRenderFn>,\r\n  currentPage: Number,\r\n  pageSize: Number,\r\n  transparent: booleanProp,\r\n  tooltipTheme: String as PropType<TooltipTheme>,\r\n  tooltipWidth: [Number, String],\r\n  singleSorter: booleanProp,\r\n  singleFilter: booleanProp,\r\n  cellClass: [String, Object, Array, Function] as PropType<\r\n    ClassType | TableCellPropFn<any, ClassType>\r\n  >,\r\n  cellStyle: [String, Object, Array, Function] as PropType<\r\n    StyleType | TableCellPropFn<any, StyleType>\r\n  >,\r\n  cellAttrs: [Object, Function] as PropType<\r\n    Record<string, any> | TableCellPropFn<any, Record<string, any>>\r\n  >,\r\n  headClass: [String, Object, Array, Function] as PropType<ClassType | TableHeadPropFn<ClassType>>,\r\n  headStyle: [String, Object, Array, Function] as PropType<StyleType | TableHeadPropFn<StyleType>>,\r\n  headAttrs: [Object, Function] as PropType<\r\n    Record<string, any> | TableHeadPropFn<Record<string, any>>\r\n  >,\r\n  footClass: [String, Object, Array, Function] as PropType<ClassType | TableFootPropFn<ClassType>>,\r\n  footStyle: [String, Object, Array, Function] as PropType<StyleType | TableFootPropFn<StyleType>>,\r\n  footAttrs: [Object, Function] as PropType<\r\n    Record<string, any> | TableFootPropFn<Record<string, any>>\r\n  >,\r\n  customSorter: booleanProp,\r\n  customFilter: booleanProp,\r\n  keyConfig: Object as PropType<TableKeyConfig>,\r\n  disabledTree: booleanProp,\r\n  rowIndent: [String, Number],\r\n  noCascaded: booleanProp,\r\n  colResizable: {\r\n    type: [Boolean, String] as PropType<boolean | TableColResizeType>,\r\n    default: null,\r\n  },\r\n  cellSpan: Function as PropType<TableCellSpanFn>,\r\n  sidePadding: [Number, Array] as PropType<number | number[]>,\r\n  icons: Object as PropType<TableIcons>,\r\n  borderWidth: Number,\r\n  dataFilter: Function as PropType<(data: Data) => boolean>,\r\n  noTransition: booleanProp,\r\n  ellipsis: booleanProp,\r\n  slots: Object as PropType<TableSlots>,\r\n  onScroll:\r\n    eventProp<\r\n      (payload: { type: 'horizontal' | 'vertical', client: number, percent: number }) => void\r\n    >(),\r\n  onRowEnter: eventProp<(payload: TableRowPayload) => void>(),\r\n  onRowLeave: eventProp<(payload: TableRowPayload) => void>(),\r\n  onRowClick: eventProp<(payload: TableRowPayload) => void>(),\r\n  onRowDblclick: eventProp<(payload: TableRowPayload) => void>(),\r\n  onRowContextmenu: eventProp<(payload: TableRowPayload) => void>(),\r\n  onRowCheck: eventProp<(payload: TableRowPayload) => void>(),\r\n  onRowCheckAll: eventProp<(checked: boolean, partial: boolean) => void>(),\r\n  onRowExpand: eventProp<(payload: TableRowPayload) => void>(),\r\n  onRowTreeExpand: eventProp<(payload: TableRowPayload) => void>(),\r\n  onRowDragStart: eventProp<(row: Data, event: DragEvent) => void>(),\r\n  onRowDragOver: eventProp<(row: Data, event: DragEvent) => void>(),\r\n  onRowDrop: eventProp<(row: Data, type: DropType, event: DragEvent) => void>(),\r\n  onRowDragEnd: eventProp<(row: Data, allRows: Data[], event: DragEvent) => void>(),\r\n  onRowFilter: eventProp<(profiles: TableFilterProfile[], filteredRow: Data[]) => void>(),\r\n  onRowSort: eventProp<(profiles: TableSorterProfile[], sortedRow: Data[]) => void>(),\r\n  onCellEnter: eventProp<(payload: TableCellPayload) => void>(),\r\n  onCellLeave: eventProp<(payload: TableCellPayload) => void>(),\r\n  onCellClick: eventProp<(payload: TableCellPayload) => void>(),\r\n  onCellDblclick: eventProp<(payload: TableCellPayload) => void>(),\r\n  onCellContextmenu: eventProp<(payload: TableCellPayload) => void>(),\r\n  onHeadEnter: eventProp<(payload: TableHeadPayload) => void>(),\r\n  onHeadLeave: eventProp<(payload: TableHeadPayload) => void>(),\r\n  onHeadClick: eventProp<(payload: TableHeadPayload) => void>(),\r\n  onHeadDblclick: eventProp<(payload: TableHeadPayload) => void>(),\r\n  onHeadContextmenu: eventProp<(payload: TableHeadPayload) => void>(),\r\n  onColResizeStart: eventProp<(payload: TableHeadPayload) => void>(),\r\n  onColResizeMove: eventProp<(payload: TableHeadPayload) => void>(),\r\n  onColResizeEnd: eventProp<(payload: TableHeadPayload) => void>(),\r\n  onFootEnter: eventProp<(payload: TableFootPayload) => void>(),\r\n  onFootLeave: eventProp<(payload: TableFootPayload) => void>(),\r\n  onFootClick: eventProp<(payload: TableFootPayload) => void>(),\r\n  onFootDblclick: eventProp<(payload: TableFootPayload) => void>(),\r\n  onFootContextmenu: eventProp<(payload: TableFootPayload) => void>(),\r\n})\r\n\r\nexport type TableProps = ExtractPropTypes<typeof tableProps>\r\nexport type TableCProps = ConfigurableProps<\r\n  TableProps,\r\n  'columns' | 'data' | 'currentPage' | 'summaries'\r\n>\r\n\r\nexport const tableColumnProps = buildProps({\r\n  idKey: [Number, String],\r\n  name: String,\r\n  accessor: Function as PropType<Accessor>,\r\n  fixed: {\r\n    type: [Boolean, String] as PropType<boolean | 'left' | 'right'>,\r\n    default: null,\r\n  },\r\n  class: classProp,\r\n  style: styleProp,\r\n  attrs: Object,\r\n  type: String as PropType<TableColumnType>,\r\n  width: [Number, String] as PropType<number | `${number}%`>,\r\n  minWidth: Number,\r\n  maxWidth: Number,\r\n  filter: Object as PropType<TableFilterOptions<any, any>>,\r\n  sorter: {\r\n    type: [Boolean, Object] as PropType<boolean | TableSorterOptions<any>>,\r\n    default: null,\r\n  },\r\n  renderer: Function as PropType<ColumnRenderFn>,\r\n  headRenderer: Function as PropType<HeadRenderFn>,\r\n  filterRenderer: Function as PropType<FilterRenderFn>,\r\n  order: Number,\r\n  ellipsis: booleanProp,\r\n  checkboxSize: sizeProp,\r\n  selectionSize: sizeProp,\r\n  disableRow: Function as PropType<(data: Data) => boolean>,\r\n  truthIndex: booleanProp,\r\n  orderLabel: Function as PropType<(index: number) => string | number>,\r\n  meta: Object as PropType<any>,\r\n  textAlign: String as PropType<TableTextAlign>,\r\n  headSpan: Number,\r\n  cellSpan: Function as PropType<ColumnCellSpanFn>,\r\n  noSummary: booleanProp,\r\n  summaryRenderer: Function as PropType<ColumnSummaryRenderFn>,\r\n  indented: booleanProp,\r\n  formatter: Function as PropType<(value: any) => unknown>,\r\n  singleSelect: booleanProp,\r\n})\r\n\r\nexport type TableColumnProps = ExtractPropTypes<typeof tableColumnProps>\r\nexport type TableColumnCProps = ConfigurableProps<\r\n  TableColumnProps,\r\n  | 'idKey'\r\n  | 'name'\r\n  | 'accessor'\r\n  | 'fixed'\r\n  | 'type'\r\n  | 'renderer'\r\n  | 'headRenderer'\r\n  | 'order'\r\n  | 'headSpan'\r\n  | 'summaryRenderer'\r\n>\r\n\r\nexport const tableColumnGroupProps = buildProps({\r\n  name: String,\r\n  fixed: {\r\n    type: [Boolean, String] as PropType<boolean | 'left' | 'right'>,\r\n    default: null,\r\n  },\r\n  order: Number,\r\n  ellipsis: booleanProp,\r\n  textAlign: String as PropType<TableTextAlign>,\r\n  renderer: Function as PropType<() => any>,\r\n  children: Array as PropType<TableColumnRawOptions[]>,\r\n})\r\n\r\nexport type TableColumnGroupProps = ExtractPropTypes<typeof tableColumnGroupProps>\r\nexport type TableColumnGroupCProps = ConfigurableProps<TableColumnProps, 'name' | 'fixed' | 'order'>\r\n\r\nexport const tableSummaryProps = buildProps({\r\n  idKey: [Number, String],\r\n  name: String,\r\n  class: classProp,\r\n  style: styleProp,\r\n  attrs: Object,\r\n  cellSpan: Function as PropType<SummaryCellSpanFn>,\r\n  order: Number,\r\n  above: booleanProp,\r\n  meta: Object as PropType<any>,\r\n  renderer: Function as PropType<SummaryRenderFn>,\r\n})\r\n\r\nexport type TableSummaryProps = ExtractPropTypes<typeof tableSummaryProps>\r\nexport type TableSummaryCProps = ConfigurableProps<\r\n  TableSummaryProps,\r\n  'idKey' | 'name' | 'renderer' | 'colSpan' | 'order' | 'above'\r\n>\r\n"],"names":["tableProps","buildProps","localeProp","booleanProp","eventProp","tableColumnProps","classProp","styleProp","sizeProp","tableColumnGroupProps","tableSummaryProps"],"mappings":"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"}