@extclp/vexip-ui
Version:
A Vue 3 UI library, Highly customizability, full TypeScript, performance pretty good
1 lines • 13.4 kB
Source Map (JSON)
{"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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"}