element-plus
Version:
A Component Library for Vue3.0
377 lines (353 loc) • 9.26 kB
text/typescript
import { Ref, ComponentInternalInstance, VNode } from 'vue'
interface fn {
(...args: any[]): any
}
interface AnyObject {
[key: string]: any
}
interface WatcherPropsData {
data: Ref<any[]>
rowKey: Ref<string>
}
interface StoreCurrent {
updateCurrentRow: (_currentRow: any) => void
updateCurrentRowData: () => void
setCurrentRowKey: (key: string) => void
states: {
_currentRowKey: Ref<string>
currentRow: Ref<AnyObject>
}
}
interface StoreExpand {
setExpandRowKeys: (rowKeys: string[]) => void
toggleRowExpansion: (row, expanded: boolean | undefined) => void
updateExpandRows: () => void
isRowExpanded: (row: AnyObject) => boolean
states: {
expandRows: Ref<AnyObject[]>
defaultExpandAll: Ref<boolean>
}
}
interface StoreTree {
updateTreeExpandKeys: (value: string[]) => void
toggleTreeExpansion: (row, expanded) => void
loadOrToggle: (row: any) => void
states: {
expandRowKeys: Ref<string[]>
treeData: Ref<AnyObject>
indent: Ref<number>
lazy: Ref<boolean>
lazyTreeNodeMap: Ref<AnyObject>
lazyColumnIdentifier: Ref<string>
childrenColumnName: Ref<string>
}
}
interface StoreMutations {
setData: (states: StoreStates, data: AnyObject[]) => void
insertColumn: (
states: StoreStates,
column: AnyObject,
index: number | undefined,
parent: AnyObject,
) => void
removeColumn: (
states: StoreStates,
column: AnyObject,
parent: AnyObject,
) => void
sort: (states: StoreStates, options: Sort) => void
changeSortCondition: (states: StoreStates, options: Sort) => void
filterChange: (states: StoreStates, options: Filter) => void
toggleAllSelection: () => void
rowSelectedChanged: (states: StoreStates, row: AnyObject) => void
setHoverRow: (states: StoreStates, row: AnyObject) => void
setCurrentRow: (states: StoreStates, row: AnyObject) => void
}
interface StoreStates {
rowKey: Ref<string>
data: Ref<AnyObject[]>
_data: Ref<AnyObject[]>
isComplex: Ref<boolean>
_columns: Ref<TableColumnCtx[]>
originColumns: Ref<TableColumnCtx[]>
columns: Ref<TableColumnCtx[]>
fixedColumns: Ref<TableColumnCtx[]>
rightFixedColumns: Ref<TableColumnCtx[]>
leafColumns: Ref<TableColumnCtx[]>
fixedLeafColumns: Ref<TableColumnCtx[]>
rightFixedLeafColumns: Ref<TableColumnCtx[]>
leafColumnsLength: Ref<number>
fixedLeafColumnsLength: Ref<number>
rightFixedLeafColumnsLength: Ref<number>
isAllSelected: Ref<boolean>
selection: Ref<AnyObject[]>
reserveSelection: Ref<boolean>
selectOnIndeterminate: Ref<boolean>
selectable: (item: AnyObject, i: number) => Ref<boolean>
filters: AnyObject
filteredData: Ref<AnyObject[]>
sortingColumn: AnyObject
sortProp: Ref<null> | Ref<string>
sortOrder: Ref<null> | Ref<string>
hoverRow: Ref<unknown>
expandRows: Ref<AnyObject[]>
defaultExpandAll: Ref<boolean>
expandRowKeys: Ref<string[]>
treeData: Ref<AnyObject>
indent: Ref<number>
lazy: Ref<boolean>
lazyTreeNodeMap: Ref<AnyObject>
lazyColumnIdentifier: Ref<string>
childrenColumnName: Ref<string>
_currentRowKey: Ref<string>
currentRow: Ref<AnyObject>
}
interface Store {
assertRowKey: () => void
updateColumns: () => void
scheduleLayout: (needUpdateColumns?: boolean, immediate?: boolean) => void
isSelected: (row: any) => boolean
clearSelection: () => void
cleanSelection: () => void
toggleRowSelection: (row: any, selected?: any[], emitChange?: boolean) => void
_toggleAllSelection: () => void
updateSelectionByRowKey: () => void
updateAllSelected: () => void
updateFilters: (columns: any | any[], values: any[]) => AnyObject
updateSort: (column: any, prop: string, order: string) => void
execFilter: () => void
execSort: () => void
execQuery: (ignore?: { filter?: any; }) => void
clearFilter: (columnKeys: string | string[]) => void
clearSort: () => void
setExpandRowKeysAdapter: (val: string[]) => void
toggleRowExpansionAdapter: (row, expanded) => void
setExpandRowKeys?: (rowKeys: string[]) => void
toggleRowExpansion: (row, expanded?: boolean | undefined) => void
updateExpandRows: () => void
isRowExpanded: (row: AnyObject) => boolean
updateCurrentRow: (_currentRow: any) => void
updateCurrentRowData: () => void
setCurrentRowKey: (key: string | number) => void
updateTreeExpandKeys?: (value: string[]) => void
toggleTreeExpansion?: (row, expanded) => void
loadOrToggle: (row: any) => void
commit: (name: string, ...args) => void
updateTableScrollY: () => void
toggleAllSelection?: () => void
mutations: StoreMutations
states: StoreStates
}
interface Sort {
prop: string
order: string
init?: any
silent?: any
}
interface Filter {
column: AnyObject
values: string[]
silent: any
}
interface TableLayout {
observers: TableHeader[]
table: Table
store: Store
columns: TableColumnCtx[]
fit: boolean
showHeader: boolean
height: Ref<null | string | number>
scrollX: Ref<boolean>
scrollY: Ref<boolean>
bodyWidth: Ref<null | string | number>
fixedWidth: Ref<null | string | number>
rightFixedWidth: Ref<null | string | number>
tableHeight: Ref<null | string | number>
headerHeight: Ref<number>
appendHeight: Ref<number>
footerHeight: Ref<number>
viewportHeight: Ref<null | string | number>
bodyHeight: Ref<null | string | number>
fixedBodyHeight: Ref<null | string | number>
gutterWidth: number
updateScrollY: () => void
setHeight: (value: string, prop?: string) => void
setMaxHeight: (value: string) => void
getFlattenColumns: () => AnyObject[]
updateElsHeight: () => void
headerDisplayNone: (elm: HTMLElement) => void
updateColumnsWidth: () => void
addObserver: (observer: TableHeader) => void
removeObserver: (observer: TableHeader) => void
notifyObservers: (event: string) => void
}
interface TreeNode {
expanded?: boolean
loading?: boolean
noLazyChildren?: boolean
indent?: number
level?: number
}
interface RenderRowData {
store: Store
_self: Table | AnyObject
column: any
row: any
$index: number | string
treeNode?: TreeNode
}
interface TableFooter {
fixed: string
store: unknown
summaryMethod: () => void
sumText: string
border: boolean
defaultSort: Sort
}
interface TableProps {
data: any[]
size: string
width: string | number
height: string | number
maxHeight: string | number
fit: boolean
stripe: boolean
border: boolean
rowKey: string | fn
context: unknown
showHeader: boolean
showSummary: boolean
sumText: string
summaryMethod: fn
rowClassName: string | fn
rowStyle: unknown | fn
cellClassName: string | fn
cellStyle: unknown | fn
headerRowClassName: string | fn
headerRowStyle: unknown | fn
headerCellClassName: string | fn
headerCellStyle: unknown | fn
highlightCurrentRow: boolean
currentRowKey: string | number
emptyText: string
expandRowKeys: any[]
defaultExpandAll: boolean
defaultSort: unknown
tooltipEffect: string
spanMethod: fn
selectOnIndeterminate: boolean
indent: number
treeProps: any
lazy: boolean
load: fn
}
interface TableRefs {
headerWrapper: HTMLElement
footerWrapper: HTMLElement
fixedBodyWrapper: HTMLElement
rightFixedBodyWrapper: HTMLElement
bodyWrapper: HTMLElement
[key: string]: unknown
}
interface TableState {
isGroup: Ref<boolean>
resizeState: Ref<{
width: any
height: any
}>
doLayout: () => void
debouncedUpdateLayout: () => void
}
interface Table extends ComponentInternalInstance {
$ready: boolean
hoverState?: null | {
cell: HTMLElement
column: TableColumnCtx
row: AnyObject
}
renderExpanded: fn
store: Store
layout: TableLayout
refs: TableRefs
tableId: string
state: TableState
}
interface TableHeader extends ComponentInternalInstance {
state: {
onColumnsChange
onScrollableChange
}
filterPanels: Ref<AnyObject>
}
interface TableColumnCtx {
id?: string
realWidth: number
type: string
label: string
className: string
labelClassName: string
property: string
prop: string
width: number
minWidth: number
renderHeader: fn
sortable: boolean | string
sortMethod: fn
sortBy: string | fn | unknown[]
resizable: {
type: boolean
default: true
}
columnKey: string
align: string
headerAlign: string
showTooltipWhenOverflow: boolean
showOverflowTooltip: boolean
fixed: boolean | string
formatter: fn
selectable: fn
reserveSelection: boolean
filterMethod: fn
filteredValue: unknown[]
filters: unknown[]
filterPlacement: string
filterMultiple: {
type: boolean
default: true
}
index: number | fn
sortOrders: unknown[]
renderCell: (data: AnyObject) => void
colSpan: number
rowSpan: number
children: TableColumnCtx[]
level: number
filterable: boolean | fn
order: string
isColumnGroup: boolean
columns: TableColumnCtx[]
getColumnIndex: () => number
no: number
}
interface TableColumn extends ComponentInternalInstance {
vnode: {
vParent: ComponentInternalInstance
} & VNode
columnId: string
columnConfig: Ref<AnyObject>
}
export {
TreeNode,
RenderRowData,
TableFooter,
TableProps,
WatcherPropsData,
Store,
Table,
AnyObject,
TableHeader,
TableColumnCtx,
TableLayout,
fn,
TableColumn,
}