Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions packages/angular-table/src/injectTable.ts
Original file line number Diff line number Diff line change
Expand Up @@ -55,11 +55,11 @@ function createStateProxy<
const getSnapshot = () => {
const snapshot = {} as TableState<TFeatures>
const stateKeys = Object.keys(table.initialState) as Array<
keyof TableState<TFeatures>
string & keyof TableState<TFeatures>
>

for (const key of stateKeys) {
snapshot[key] = table.atoms[key].get()
;(snapshot as Record<string, unknown>)[key] = table.atoms[key].get()
}

return snapshot
Expand Down
2 changes: 1 addition & 1 deletion packages/table-core/src/core/table/constructTable.ts
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@ export function constructTable<
const snapshot = {} as TableState<TFeatures>
for (let i = 0; i < stateKeys.length; i++) {
const key = stateKeys[i]!
snapshot[key] = table.atoms[key].get()
;(snapshot as Record<string, unknown>)[key] = table.atoms[key].get()
}
return snapshot
},
Expand Down
26 changes: 11 additions & 15 deletions packages/table-core/src/types/Cell.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
import type { Cell_ColumnGrouping } from '../features/column-grouping/columnGroupingFeature.types'
import type { CellData, RowData, UnionToIntersection } from './type-utils'
import type { ExtractFeatureTypes, TableFeatures } from './TableFeatures'
import type { CellData, RowData } from './type-utils'
import type {
ExtractFeatureMapTypes,
ExtractFeatureTypes,
TableFeatures,
} from './TableFeatures'
import type { Cell_Cell } from '../core/cells/coreCellsFeature.types'

/**
Expand All @@ -19,23 +23,15 @@ export interface Cell_Core<
TValue extends CellData = CellData,
> extends Cell_Cell<TFeatures, TData, TValue> {}

export interface Cell_FeatureMap {
columnGroupingFeature: Cell_ColumnGrouping
}

export type Cell<
TFeatures extends TableFeatures,
TData extends RowData,
TValue extends CellData = CellData,
> = Cell_Cell<TFeatures, TData, TValue> &
UnionToIntersection<
'columnGroupingFeature' extends keyof TFeatures
? Cell_ColumnGrouping
: never
> &
ExtractFeatureMapTypes<TFeatures, Cell_FeatureMap> &
ExtractFeatureTypes<'Cell', TFeatures> &
Cell_Plugins<TFeatures, TData, TValue>

// export type Cell<
// TFeatures extends TableFeatures,
// TData extends RowData,
// TValue extends CellData = CellData,
// > = Cell_Core<TFeatures, TData, TValue> &
// ExtractFeatureTypes<TFeatures, 'Cell'> &
// Cell_Plugins<TFeatures, TData, TValue>
65 changes: 23 additions & 42 deletions packages/table-core/src/types/Column.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,12 @@ import type { Column_ColumnResizing } from '../features/column-resizing/columnRe
import type { Column_ColumnSizing } from '../features/column-sizing/columnSizingFeature.types'
import type { Column_ColumnVisibility } from '../features/column-visibility/columnVisibilityFeature.types'
import type { ColumnDefBase_All } from './ColumnDef'
import type { RowData, UnionToIntersection } from './type-utils'
import type { ExtractFeatureTypes, TableFeatures } from './TableFeatures'
import type { RowData } from './type-utils'
import type {
ExtractFeatureMapTypes,
ExtractFeatureTypes,
TableFeatures,
} from './TableFeatures'
import type { Column_Column } from '../core/columns/coreColumnsFeature.types'

/**
Expand All @@ -29,54 +33,31 @@ export interface Column_Core<
TValue = unknown,
> extends Column_Column<TFeatures, TData, TValue> {}

export interface Column_FeatureMap<
TFeatures extends TableFeatures,
TData extends RowData,
> {
columnFacetingFeature: Column_ColumnFaceting<TFeatures, TData>
columnFilteringFeature: Column_ColumnFiltering<TFeatures, TData>
columnGroupingFeature: Column_ColumnGrouping<TFeatures, TData>
columnOrderingFeature: Column_ColumnOrdering
columnPinningFeature: Column_ColumnPinning
columnResizingFeature: Column_ColumnResizing
columnSizingFeature: Column_ColumnSizing
columnVisibilityFeature: Column_ColumnVisibility
globalFilteringFeature: Column_GlobalFiltering
rowSortingFeature: Column_RowSorting<TFeatures, TData>
}

export type Column<
TFeatures extends TableFeatures,
TData extends RowData,
TValue = unknown,
> = Column_Core<TFeatures, TData, TValue> &
UnionToIntersection<
| ('columnFacetingFeature' extends keyof TFeatures
? Column_ColumnFaceting<TFeatures, TData>
: never)
| ('columnFilteringFeature' extends keyof TFeatures
? Column_ColumnFiltering<TFeatures, TData>
: never)
| ('columnGroupingFeature' extends keyof TFeatures
? Column_ColumnGrouping<TFeatures, TData>
: never)
| ('columnOrderingFeature' extends keyof TFeatures
? Column_ColumnOrdering
: never)
| ('columnPinningFeature' extends keyof TFeatures
? Column_ColumnPinning
: never)
| ('columnResizingFeature' extends keyof TFeatures
? Column_ColumnResizing
: never)
| ('columnSizingFeature' extends keyof TFeatures
? Column_ColumnSizing
: never)
| ('columnVisibilityFeature' extends keyof TFeatures
? Column_ColumnVisibility
: never)
| ('globalFilteringFeature' extends keyof TFeatures
? Column_GlobalFiltering
: never)
| ('rowSortingFeature' extends keyof TFeatures
? Column_RowSorting<TFeatures, TData>
: never)
> &
ExtractFeatureMapTypes<TFeatures, Column_FeatureMap<TFeatures, TData>> &
ExtractFeatureTypes<'Column', TFeatures> &
Column_Plugins<TFeatures, TData, TValue>

// export type Column<
// TFeatures extends TableFeatures,
// TData extends RowData,
// TValue = unknown,
// > = Column_Core<TFeatures, TData, TValue> &
// ExtractFeatureTypes<'Column', TFeatures> &
// Column_Plugins<TFeatures, TData, TValue>

export type Column_Internal<
TFeatures extends TableFeatures,
TData extends RowData,
Expand Down
57 changes: 23 additions & 34 deletions packages/table-core/src/types/ColumnDef.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
import type { CellData, RowData, UnionToIntersection } from './type-utils'
import type { ExtractFeatureTypes, TableFeatures } from './TableFeatures'
import type {
ExtractFeatureMapTypes,
ExtractFeatureTypes,
TableFeatures,
} from './TableFeatures'
import type { CellContext } from '../core/cells/coreCellsFeature.types'
import type { HeaderContext } from '../core/headers/coreHeadersFeature.types'
import type { ColumnDef_ColumnFiltering } from '../features/column-filtering/columnFilteringFeature.types'
Expand Down Expand Up @@ -110,48 +114,33 @@ interface ColumnDefBase_Core<
meta?: ColumnMeta<TFeatures, TData, TValue>
}

export interface ColumnDef_FeatureMap<
TFeatures extends TableFeatures,
TData extends RowData,
TValue extends CellData,
> {
columnVisibilityFeature: ColumnDef_ColumnVisibility
columnPinningFeature: ColumnDef_ColumnPinning
columnFilteringFeature: ColumnDef_ColumnFiltering<TFeatures, TData>
globalFilteringFeature: ColumnDef_GlobalFiltering
rowSortingFeature: ColumnDef_RowSorting<TFeatures, TData>
columnGroupingFeature: ColumnDef_ColumnGrouping<TFeatures, TData, TValue>
columnSizingFeature: ColumnDef_ColumnSizing
columnResizingFeature: ColumnDef_ColumnResizing
}

export type ColumnDefBase<
TFeatures extends TableFeatures,
TData extends RowData,
TValue extends CellData = CellData,
> = ColumnDefBase_Core<TFeatures, TData, TValue> &
UnionToIntersection<
| ('columnVisibilityFeature' extends keyof TFeatures
? ColumnDef_ColumnVisibility
: never)
| ('columnPinningFeature' extends keyof TFeatures
? ColumnDef_ColumnPinning
: never)
| ('columnFilteringFeature' extends keyof TFeatures
? ColumnDef_ColumnFiltering<TFeatures, TData>
: never)
| ('globalFilteringFeature' extends keyof TFeatures
? ColumnDef_GlobalFiltering
: never)
| ('rowSortingFeature' extends keyof TFeatures
? ColumnDef_RowSorting<TFeatures, TData>
: never)
| ('columnGroupingFeature' extends keyof TFeatures
? ColumnDef_ColumnGrouping<TFeatures, TData, TValue>
: never)
| ('columnSizingFeature' extends keyof TFeatures
? ColumnDef_ColumnSizing
: never)
| ('columnResizingFeature' extends keyof TFeatures
? ColumnDef_ColumnResizing
: never)
ExtractFeatureMapTypes<
TFeatures,
ColumnDef_FeatureMap<TFeatures, TData, TValue>
> &
ExtractFeatureTypes<'ColumnDef', TFeatures> &
ColumnDef_Plugins<TFeatures, TData, TValue>

// export type ColumnDefBase<
// TFeatures extends TableFeatures,
// TData extends RowData,
// TValue extends CellData = CellData,
// > = ColumnDefBase_Core<TFeatures, TData, TValue> &
// ExtractFeatureTypes<'ColumnDef', TFeatures> &
// ColumnDef_Plugins<TFeatures, TData, TValue>

export type ColumnDefBase_All<
TFeatures extends TableFeatures,
TData extends RowData,
Expand Down
30 changes: 12 additions & 18 deletions packages/table-core/src/types/Header.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
import type { Header_ColumnSizing } from '../features/column-sizing/columnSizingFeature.types'
import type { CellData, RowData, UnionToIntersection } from './type-utils'
import type { ExtractFeatureTypes, TableFeatures } from './TableFeatures'
import type { CellData, RowData } from './type-utils'
import type {
ExtractFeatureMapTypes,
ExtractFeatureTypes,
TableFeatures,
} from './TableFeatures'
import type { Header_Header } from '../core/headers/coreHeadersFeature.types'
import type { Header_ColumnResizing } from '../features/column-resizing/columnResizingFeature.types'

Expand All @@ -20,26 +24,16 @@ export interface Header_Core<
TValue extends CellData = CellData,
> extends Header_Header<TFeatures, TData, TValue> {}

export interface Header_FeatureMap {
columnSizingFeature: Header_ColumnSizing
columnResizingFeature: Header_ColumnResizing
}

export type Header<
TFeatures extends TableFeatures,
TData extends RowData,
TValue extends CellData = CellData,
> = Header_Core<TFeatures, TData, TValue> &
UnionToIntersection<
| ('columnSizingFeature' extends keyof TFeatures
? Header_ColumnSizing
: never)
| ('columnResizingFeature' extends keyof TFeatures
? Header_ColumnResizing
: never)
> &
ExtractFeatureMapTypes<TFeatures, Header_FeatureMap> &
ExtractFeatureTypes<'Header', TFeatures> &
Header_Plugins<TFeatures, TData, TValue>

// export type Header<
// TFeatures extends TableFeatures,
// TData extends RowData,
// TValue extends CellData = CellData,
// > = Header_Core<TFeatures, TData, TValue> &
// ExtractFeatureTypes<'Header', TFeatures> &
// Header_Plugins<TFeatures, TData, TValue>
46 changes: 20 additions & 26 deletions packages/table-core/src/types/Row.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,15 @@ import type { Row_ColumnVisibility } from '../features/column-visibility/columnV
import type { Row_ColumnPinning } from '../features/column-pinning/columnPinningFeature.types'
import type { Row_ColumnGrouping } from '../features/column-grouping/columnGroupingFeature.types'
import type { Row_ColumnFiltering } from '../features/column-filtering/columnFilteringFeature.types'
import type { RowData, UnionToIntersection } from './type-utils'
import type { RowData } from './type-utils'
import type { Row_RowExpanding } from '../features/row-expanding/rowExpandingFeature.types'
import type { Row_RowPinning } from '../features/row-pinning/rowPinningFeature.types'
import type { Row_RowSelection } from '../features/row-selection/rowSelectionFeature.types'
import type { ExtractFeatureTypes, TableFeatures } from './TableFeatures'
import type {
ExtractFeatureMapTypes,
ExtractFeatureTypes,
TableFeatures,
} from './TableFeatures'
import type { Row_Row } from '../core/rows/coreRowsFeature.types'

/**
Expand All @@ -23,33 +27,23 @@ export interface Row_Core<
TData extends RowData,
> extends Row_Row<TFeatures, TData> {}

export interface Row_FeatureMap<
TFeatures extends TableFeatures,
TData extends RowData,
> {
columnFilteringFeature: Row_ColumnFiltering<TFeatures, TData>
columnGroupingFeature: Row_ColumnGrouping
columnPinningFeature: Row_ColumnPinning<TFeatures, TData>
columnVisibilityFeature: Row_ColumnVisibility<TFeatures, TData>
rowExpandingFeature: Row_RowExpanding
rowPinningFeature: Row_RowPinning
rowSelectionFeature: Row_RowSelection
}

export type Row<
TFeatures extends TableFeatures,
TData extends RowData,
> = Row_Core<TFeatures, TData> &
UnionToIntersection<
| ('columnFilteringFeature' extends keyof TFeatures
? Row_ColumnFiltering<TFeatures, TData>
: never)
| ('columnGroupingFeature' extends keyof TFeatures
? Row_ColumnGrouping
: never)
| ('columnPinningFeature' extends keyof TFeatures
? Row_ColumnPinning<TFeatures, TData>
: never)
| ('columnVisibilityFeature' extends keyof TFeatures
? Row_ColumnVisibility<TFeatures, TData>
: never)
| ('rowExpandingFeature' extends keyof TFeatures ? Row_RowExpanding : never)
| ('rowPinningFeature' extends keyof TFeatures ? Row_RowPinning : never)
| ('rowSelectionFeature' extends keyof TFeatures ? Row_RowSelection : never)
> &
ExtractFeatureMapTypes<TFeatures, Row_FeatureMap<TFeatures, TData>> &
ExtractFeatureTypes<'Row', TFeatures> &
Row_Plugins<TFeatures, TData>

// export type Row<
// TFeatures extends TableFeatures,
// TData extends RowData,
// > = Row_Core<TFeatures, TData> &
// ExtractFeatureTypes<'Row', TFeatures> &
// Row_Plugins<TFeatures, TData>
Loading
Loading