@vuu-ui/vuu-table 0.13.113 → 0.13.115-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/Row.js +16 -19
- package/cjs/Row.js.map +1 -1
- package/cjs/Table.js +8 -15
- package/cjs/Table.js.map +1 -1
- package/cjs/bulk-edit/useBulkEditPanel.js +6 -7
- package/cjs/bulk-edit/useBulkEditPanel.js.map +1 -1
- package/cjs/cell-renderers/checkbox-cell/CheckboxCell.js +2 -3
- package/cjs/cell-renderers/checkbox-cell/CheckboxCell.js.map +1 -1
- package/cjs/cell-renderers/checkbox-row-selector/CheckboxRowSelectorCell.js +2 -3
- package/cjs/cell-renderers/checkbox-row-selector/CheckboxRowSelectorCell.js.map +1 -1
- package/cjs/cell-renderers/input-cell/InputCell.js +3 -5
- package/cjs/cell-renderers/input-cell/InputCell.js.map +1 -1
- package/cjs/cell-renderers/toggle-cell/ToggleCell.js +5 -6
- package/cjs/cell-renderers/toggle-cell/ToggleCell.js.map +1 -1
- package/cjs/data-row/DataRow.js +144 -0
- package/cjs/data-row/DataRow.js.map +1 -0
- package/cjs/index.js +2 -0
- package/cjs/index.js.map +1 -1
- package/cjs/table-cell/TableCell.js +6 -9
- package/cjs/table-cell/TableCell.js.map +1 -1
- package/cjs/table-cell/TableGroupCell.css.js +1 -1
- package/cjs/table-cell/TableGroupCell.js +7 -8
- package/cjs/table-cell/TableGroupCell.js.map +1 -1
- package/cjs/table-data-source/{moving-window.js → DataRowMovingWindow.js} +19 -29
- package/cjs/table-data-source/DataRowMovingWindow.js.map +1 -0
- package/cjs/table-data-source/useDataSource.js +67 -52
- package/cjs/table-data-source/useDataSource.js.map +1 -1
- package/cjs/useCellFocus.js +1 -0
- package/cjs/useCellFocus.js.map +1 -1
- package/cjs/useRowClassNameGenerators.js +2 -2
- package/cjs/useRowClassNameGenerators.js.map +1 -1
- package/cjs/useSelection.js +5 -6
- package/cjs/useSelection.js.map +1 -1
- package/cjs/useTable.js +26 -36
- package/cjs/useTable.js.map +1 -1
- package/cjs/useTableContextMenu.js +6 -10
- package/cjs/useTableContextMenu.js.map +1 -1
- package/cjs/useTableScroll.js +5 -21
- package/cjs/useTableScroll.js.map +1 -1
- package/cjs/useTableViewport.js +2 -2
- package/cjs/useTableViewport.js.map +1 -1
- package/esm/Row.js +17 -20
- package/esm/Row.js.map +1 -1
- package/esm/Table.js +9 -16
- package/esm/Table.js.map +1 -1
- package/esm/bulk-edit/useBulkEditPanel.js +7 -8
- package/esm/bulk-edit/useBulkEditPanel.js.map +1 -1
- package/esm/cell-renderers/checkbox-cell/CheckboxCell.js +2 -3
- package/esm/cell-renderers/checkbox-cell/CheckboxCell.js.map +1 -1
- package/esm/cell-renderers/checkbox-row-selector/CheckboxRowSelectorCell.js +3 -4
- package/esm/cell-renderers/checkbox-row-selector/CheckboxRowSelectorCell.js.map +1 -1
- package/esm/cell-renderers/input-cell/InputCell.js +3 -5
- package/esm/cell-renderers/input-cell/InputCell.js.map +1 -1
- package/esm/cell-renderers/toggle-cell/ToggleCell.js +5 -6
- package/esm/cell-renderers/toggle-cell/ToggleCell.js.map +1 -1
- package/esm/data-row/DataRow.js +142 -0
- package/esm/data-row/DataRow.js.map +1 -0
- package/esm/index.js +1 -0
- package/esm/index.js.map +1 -1
- package/esm/table-cell/TableCell.js +6 -9
- package/esm/table-cell/TableCell.js.map +1 -1
- package/esm/table-cell/TableGroupCell.css.js +1 -1
- package/esm/table-cell/TableGroupCell.js +8 -9
- package/esm/table-cell/TableGroupCell.js.map +1 -1
- package/esm/table-data-source/{moving-window.js → DataRowMovingWindow.js} +20 -30
- package/esm/table-data-source/DataRowMovingWindow.js.map +1 -0
- package/esm/table-data-source/useDataSource.js +68 -53
- package/esm/table-data-source/useDataSource.js.map +1 -1
- package/esm/useCellFocus.js +1 -0
- package/esm/useCellFocus.js.map +1 -1
- package/esm/useRowClassNameGenerators.js +2 -2
- package/esm/useRowClassNameGenerators.js.map +1 -1
- package/esm/useSelection.js +6 -7
- package/esm/useSelection.js.map +1 -1
- package/esm/useTable.js +27 -37
- package/esm/useTable.js.map +1 -1
- package/esm/useTableContextMenu.js +7 -11
- package/esm/useTableContextMenu.js.map +1 -1
- package/esm/useTableScroll.js +5 -21
- package/esm/useTableScroll.js.map +1 -1
- package/esm/useTableViewport.js +2 -2
- package/esm/useTableViewport.js.map +1 -1
- package/package.json +10 -10
- package/types/Row.d.ts +1 -1
- package/types/Table.d.ts +1 -12
- package/types/cell-renderers/checkbox-cell/CheckboxCell.d.ts +1 -1
- package/types/cell-renderers/input-cell/InputCell.d.ts +1 -1
- package/types/data-row/DataRow.d.ts +16 -0
- package/types/index.d.ts +1 -0
- package/types/table-cell/TableCell.d.ts +1 -1
- package/types/table-cell/TableGroupCell.d.ts +1 -1
- package/types/table-data-source/DataRowMovingWindow.d.ts +24 -0
- package/types/table-data-source/useDataSource.d.ts +5 -6
- package/types/useTable.d.ts +5 -7
- package/types/useTableContextMenu.d.ts +5 -7
- package/types/useTableScroll.d.ts +1 -3
- package/cjs/table-data-source/moving-window.js.map +0 -1
- package/esm/table-data-source/moving-window.js.map +0 -1
- package/types/table-data-source/moving-window.d.ts +0 -23
|
@@ -1,15 +1,13 @@
|
|
|
1
|
-
import { DataSource
|
|
2
|
-
import { ColumnDescriptor, TableMenuLocation } from "@vuu-ui/vuu-table-types";
|
|
3
|
-
import { ColumnMap } from "@vuu-ui/vuu-utils";
|
|
1
|
+
import { DataSource } from "@vuu-ui/vuu-data-types";
|
|
2
|
+
import { ColumnDescriptor, DataRow, TableMenuLocation } from "@vuu-ui/vuu-table-types";
|
|
4
3
|
import { MouseEvent } from "react";
|
|
5
4
|
export interface TableContextMenuHookProps {
|
|
6
5
|
allowContextMenu?: boolean;
|
|
7
|
-
columnMap: ColumnMap;
|
|
8
6
|
columns: ColumnDescriptor[];
|
|
9
|
-
|
|
7
|
+
dataRows: DataRow[];
|
|
10
8
|
dataSource: DataSource;
|
|
11
|
-
getSelectedRows: () =>
|
|
9
|
+
getSelectedRows: () => DataRow[];
|
|
12
10
|
headerCount?: number;
|
|
13
11
|
}
|
|
14
12
|
export declare const isTableLocation: (location: string) => location is TableMenuLocation;
|
|
15
|
-
export declare const useTableContextMenu: ({ allowContextMenu,
|
|
13
|
+
export declare const useTableContextMenu: ({ allowContextMenu, columns, dataRows, dataSource, getSelectedRows, headerCount, }: TableContextMenuHookProps) => ((evt: MouseEvent<HTMLElement>) => void) | undefined;
|
|
@@ -3,7 +3,6 @@ import type { VuuRange } from "@vuu-ui/vuu-protocol-types";
|
|
|
3
3
|
import { ForwardedRef, RefObject } from "react";
|
|
4
4
|
import type { ViewportMeasurements } from "./useTableViewport";
|
|
5
5
|
import type { RuntimeColumnDescriptor } from "@vuu-ui/vuu-table-types";
|
|
6
|
-
import { FocusCell } from "./useCellFocus";
|
|
7
6
|
import { ICellFocusState } from "./CellFocusState";
|
|
8
7
|
export type ScrollDirectionVertical = "up" | "down";
|
|
9
8
|
export type ScrollDirectionHorizontal = "left" | "right";
|
|
@@ -41,7 +40,6 @@ export declare const noScrolling: ScrollingAPI;
|
|
|
41
40
|
export interface TableScrollHookProps {
|
|
42
41
|
cellFocusStateRef: RefObject<ICellFocusState>;
|
|
43
42
|
columns: RuntimeColumnDescriptor[];
|
|
44
|
-
focusCell?: FocusCell;
|
|
45
43
|
getRowAtPosition: RowAtPositionFunc;
|
|
46
44
|
onHorizontalScroll?: (scrollLeft: number) => void;
|
|
47
45
|
onVerticalScroll?: (scrollTop: number, pctScrollTop: number) => void;
|
|
@@ -57,7 +55,7 @@ export interface TableScrollHookProps {
|
|
|
57
55
|
showPaginationControls?: boolean;
|
|
58
56
|
viewportMeasurements: ViewportMeasurements;
|
|
59
57
|
}
|
|
60
|
-
export declare const useTableScroll: ({ cellFocusStateRef, columns,
|
|
58
|
+
export declare const useTableScroll: ({ cellFocusStateRef, columns, getRowAtPosition, onHorizontalScroll, onVerticalScroll, onVerticalScrollInSitu, rowHeight, scrollingApiRef, setRange, viewportMeasurements, }: TableScrollHookProps) => {
|
|
61
59
|
columnsWithinViewport: RuntimeColumnDescriptor[];
|
|
62
60
|
/** Ref to be assigned to ScrollbarContainer */
|
|
63
61
|
scrollbarContainerRef: (el: HTMLDivElement | null) => void;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"moving-window.js","sources":["../../../../packages/vuu-table/src/table-data-source/moving-window.ts"],"sourcesContent":["import { DataSourceRow } from \"@vuu-ui/vuu-data-types\";\nimport { VuuRange } from \"@vuu-ui/vuu-protocol-types\";\nimport { metadataKeys, WindowRange } from \"@vuu-ui/vuu-utils\";\n\nconst { SELECTED } = metadataKeys;\n\nexport class MovingWindow {\n public data: DataSourceRow[];\n public rowCount = 0;\n #range: WindowRange;\n\n constructor({ from, to }: VuuRange) {\n this.#range = new WindowRange(from, to);\n //internal data is always 0 based, we add range.from to determine an offset\n this.data = new Array(Math.max(0, to - from));\n this.rowCount = 0;\n }\n\n setRowCount = (rowCount: number) => {\n if (rowCount < this.data.length) {\n this.data.length = rowCount;\n }\n\n this.rowCount = rowCount;\n };\n\n add(data: DataSourceRow) {\n const [index] = data;\n if (this.isWithinRange(index)) {\n const internalIndex = index - this.#range.from;\n this.data[internalIndex] = data;\n }\n }\n\n getAtIndex(index: number) {\n return this.#range.isWithin(index) &&\n this.data[index - this.#range.from] != null\n ? this.data[index - this.#range.from]\n : undefined;\n }\n\n isWithinRange(index: number) {\n return this.#range.isWithin(index);\n }\n\n setRange({ from, to }: VuuRange) {\n if (from !== this.#range.from || to !== this.#range.to) {\n const [overlapFrom, overlapTo] = this.#range.overlap(from, to);\n const newData = new Array(Math.max(0, to - from));\n for (let i = overlapFrom; i < overlapTo; i++) {\n const data = this.getAtIndex(i);\n if (data) {\n const index = i - from;\n newData[index] = data;\n }\n }\n this.data = newData;\n this.#range.from = from;\n this.#range.to = to;\n }\n }\n\n getSelectedRows() {\n return this.data.filter((row) => row[SELECTED] !== 0);\n }\n\n get range() {\n return this.#range;\n }\n\n slice(): DataSourceRow[] {\n const data: DataSourceRow[] = [];\n const { from } = this.range;\n for (let i = 0; i < this.data.length; i++) {\n if (this.data[i]) {\n data.push(this.data[i]);\n } else {\n data.push([from + i, from + i, true, false, 1, 0, \"\", 0, 0, false]);\n }\n }\n return data;\n }\n\n /**\n * Update all rows by splicing the supplied index. Used when a column\n * is removed.\n */\n spliceDataAtIndex(index: number) {\n if (index >= 10) {\n for (let i = 0; i < this.data.length; i++) {\n if (this.data[i]) {\n this.data[i] = this.data[i].toSpliced(index, 1) as DataSourceRow;\n }\n }\n } else {\n throw Error(`[MovingWindow] canno splir metadata value from Row`);\n }\n }\n\n // TODO make this more performant, see implementation in\n // array-backed-moving-window - use same implementation\n get hasAllRowsWithinRange(): boolean {\n const { from, to } = this.#range;\n\n for (let i = from; i < to; i++) {\n if (this.getAtIndex(i) === undefined) {\n return false;\n }\n }\n return true;\n }\n}\n"],"names":["metadataKeys","WindowRange"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"moving-window.js","sources":["../../../../packages/vuu-table/src/table-data-source/moving-window.ts"],"sourcesContent":["import { DataSourceRow } from \"@vuu-ui/vuu-data-types\";\nimport { VuuRange } from \"@vuu-ui/vuu-protocol-types\";\nimport { metadataKeys, WindowRange } from \"@vuu-ui/vuu-utils\";\n\nconst { SELECTED } = metadataKeys;\n\nexport class MovingWindow {\n public data: DataSourceRow[];\n public rowCount = 0;\n #range: WindowRange;\n\n constructor({ from, to }: VuuRange) {\n this.#range = new WindowRange(from, to);\n //internal data is always 0 based, we add range.from to determine an offset\n this.data = new Array(Math.max(0, to - from));\n this.rowCount = 0;\n }\n\n setRowCount = (rowCount: number) => {\n if (rowCount < this.data.length) {\n this.data.length = rowCount;\n }\n\n this.rowCount = rowCount;\n };\n\n add(data: DataSourceRow) {\n const [index] = data;\n if (this.isWithinRange(index)) {\n const internalIndex = index - this.#range.from;\n this.data[internalIndex] = data;\n }\n }\n\n getAtIndex(index: number) {\n return this.#range.isWithin(index) &&\n this.data[index - this.#range.from] != null\n ? this.data[index - this.#range.from]\n : undefined;\n }\n\n isWithinRange(index: number) {\n return this.#range.isWithin(index);\n }\n\n setRange({ from, to }: VuuRange) {\n if (from !== this.#range.from || to !== this.#range.to) {\n const [overlapFrom, overlapTo] = this.#range.overlap(from, to);\n const newData = new Array(Math.max(0, to - from));\n for (let i = overlapFrom; i < overlapTo; i++) {\n const data = this.getAtIndex(i);\n if (data) {\n const index = i - from;\n newData[index] = data;\n }\n }\n this.data = newData;\n this.#range.from = from;\n this.#range.to = to;\n }\n }\n\n getSelectedRows() {\n return this.data.filter((row) => row[SELECTED] !== 0);\n }\n\n get range() {\n return this.#range;\n }\n\n slice(): DataSourceRow[] {\n const data: DataSourceRow[] = [];\n const { from } = this.range;\n for (let i = 0; i < this.data.length; i++) {\n if (this.data[i]) {\n data.push(this.data[i]);\n } else {\n data.push([from + i, from + i, true, false, 1, 0, \"\", 0, 0, false]);\n }\n }\n return data;\n }\n\n /**\n * Update all rows by splicing the supplied index. Used when a column\n * is removed.\n */\n spliceDataAtIndex(index: number) {\n if (index >= 10) {\n for (let i = 0; i < this.data.length; i++) {\n if (this.data[i]) {\n this.data[i] = this.data[i].toSpliced(index, 1) as DataSourceRow;\n }\n }\n } else {\n throw Error(`[MovingWindow] canno splir metadata value from Row`);\n }\n }\n\n // TODO make this more performant, see implementation in\n // array-backed-moving-window - use same implementation\n get hasAllRowsWithinRange(): boolean {\n const { from, to } = this.#range;\n\n for (let i = from; i < to; i++) {\n if (this.getAtIndex(i) === undefined) {\n return false;\n }\n }\n return true;\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { DataSourceRow } from "@vuu-ui/vuu-data-types";
|
|
2
|
-
import { VuuRange } from "@vuu-ui/vuu-protocol-types";
|
|
3
|
-
import { WindowRange } from "@vuu-ui/vuu-utils";
|
|
4
|
-
export declare class MovingWindow {
|
|
5
|
-
#private;
|
|
6
|
-
data: DataSourceRow[];
|
|
7
|
-
rowCount: number;
|
|
8
|
-
constructor({ from, to }: VuuRange);
|
|
9
|
-
setRowCount: (rowCount: number) => void;
|
|
10
|
-
add(data: DataSourceRow): void;
|
|
11
|
-
getAtIndex(index: number): DataSourceRow | undefined;
|
|
12
|
-
isWithinRange(index: number): boolean;
|
|
13
|
-
setRange({ from, to }: VuuRange): void;
|
|
14
|
-
getSelectedRows(): DataSourceRow[];
|
|
15
|
-
get range(): WindowRange;
|
|
16
|
-
slice(): DataSourceRow[];
|
|
17
|
-
/**
|
|
18
|
-
* Update all rows by splicing the supplied index. Used when a column
|
|
19
|
-
* is removed.
|
|
20
|
-
*/
|
|
21
|
-
spliceDataAtIndex(index: number): void;
|
|
22
|
-
get hasAllRowsWithinRange(): boolean;
|
|
23
|
-
}
|