UNPKG

vexip-ui

Version:

A Vue 3 UI library, Highly customizability, full TypeScript, performance pretty good

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