vexip-ui
Version:
A Vue 3 UI library, Highly customizability, full TypeScript, performance pretty good
1 lines • 12.5 kB
Source Map (JSON)
{"version":3,"file":"props.cjs","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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"}