cellux 0.0.1 → 0.1.5

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.
Files changed (76) hide show
  1. package/dist/TyeaheadEditor.d.ts +36 -0
  2. package/dist/TyeaheadEditor.d.ts.map +1 -0
  3. package/dist/asserts.d.ts +16 -0
  4. package/dist/asserts.d.ts.map +1 -0
  5. package/dist/cellux.css +1 -0
  6. package/dist/cellux.js +2703 -0
  7. package/dist/cellux.umd.cjs +134 -0
  8. package/dist/column-state.d.ts +9 -0
  9. package/dist/column-state.d.ts.map +1 -0
  10. package/dist/column-tab-builder.d.ts +17 -0
  11. package/dist/column-tab-builder.d.ts.map +1 -0
  12. package/dist/column-tab-container.d.ts +13 -0
  13. package/dist/column-tab-container.d.ts.map +1 -0
  14. package/dist/column.d.ts +81 -0
  15. package/dist/column.d.ts.map +1 -0
  16. package/dist/console-log.d.ts +12 -0
  17. package/dist/console-log.d.ts.map +1 -0
  18. package/dist/context-menu.d.ts +11 -0
  19. package/dist/context-menu.d.ts.map +1 -0
  20. package/dist/data-dash.d.ts +8 -0
  21. package/dist/data-dash.d.ts.map +1 -0
  22. package/dist/date-time-picker.d.ts +17 -0
  23. package/dist/date-time-picker.d.ts.map +1 -0
  24. package/dist/debug-overlay/debug-overlay.d.ts +24 -0
  25. package/dist/debug-overlay/debug-overlay.d.ts.map +1 -0
  26. package/dist/enums.d.ts +6 -0
  27. package/dist/enums.d.ts.map +1 -0
  28. package/dist/event-maps.d.ts +24 -0
  29. package/dist/event-maps.d.ts.map +1 -0
  30. package/dist/events.d.ts +40 -0
  31. package/dist/events.d.ts.map +1 -0
  32. package/dist/filter.d.ts +17 -0
  33. package/dist/filter.d.ts.map +1 -0
  34. package/dist/grid-api.d.ts +28 -0
  35. package/dist/grid-api.d.ts.map +1 -0
  36. package/dist/grid-assertions.d.ts +33 -0
  37. package/dist/grid-assertions.d.ts.map +1 -0
  38. package/dist/grid-assertions.test.d.ts +1 -0
  39. package/dist/grid-assertions.test.d.ts.map +1 -0
  40. package/dist/grid-class-name.d.ts +32 -0
  41. package/dist/grid-class-name.d.ts.map +1 -0
  42. package/dist/grid-options.d.ts +25 -0
  43. package/dist/grid-options.d.ts.map +1 -0
  44. package/dist/grid-row-ref.d.ts +12 -0
  45. package/dist/grid-row-ref.d.ts.map +1 -0
  46. package/dist/grid.d.ts +159 -0
  47. package/dist/grid.d.ts.map +1 -0
  48. package/dist/index.d.ts +7 -0
  49. package/dist/index.d.ts.map +1 -0
  50. package/dist/interfaces.d.ts +105 -0
  51. package/dist/interfaces.d.ts.map +1 -0
  52. package/dist/quick-filter.d.ts +12 -0
  53. package/dist/quick-filter.d.ts.map +1 -0
  54. package/dist/renderer.d.ts +83 -0
  55. package/dist/renderer.d.ts.map +1 -0
  56. package/dist/select-editor-custom.d.ts +26 -0
  57. package/dist/select-editor-custom.d.ts.map +1 -0
  58. package/dist/select-editor.d.ts +11 -0
  59. package/dist/select-editor.d.ts.map +1 -0
  60. package/dist/sorting.d.ts +19 -0
  61. package/dist/sorting.d.ts.map +1 -0
  62. package/dist/status-bar.d.ts +11 -0
  63. package/dist/status-bar.d.ts.map +1 -0
  64. package/dist/text-editor.d.ts +13 -0
  65. package/dist/text-editor.d.ts.map +1 -0
  66. package/dist/types.d.ts +30 -0
  67. package/dist/types.d.ts.map +1 -0
  68. package/dist/utilities/formatter.d.ts +4 -0
  69. package/dist/utilities/formatter.d.ts.map +1 -0
  70. package/dist/utilities/utilities.d.ts +241 -0
  71. package/dist/utilities/utilities.d.ts.map +1 -0
  72. package/package.json +32 -18
  73. package/README.md +0 -11
  74. package/files.zip +0 -0
  75. package/index.d.ts +0 -4
  76. package/index.js +0 -4
@@ -0,0 +1,40 @@
1
+ import { Grid } from "./grid";
2
+ import { TableData } from "./types";
3
+ export declare class GridEvents<T extends TableData> {
4
+ private _grid;
5
+ cn: {
6
+ readonly cx_grid_container: "cellux-grid-container";
7
+ readonly grid_viewport: "grid-viewport";
8
+ readonly left_panel: "left-panel";
9
+ readonly center_panel: "center-panel";
10
+ readonly header: "header";
11
+ readonly header_center: "header-center";
12
+ readonly header_left: "header-left";
13
+ readonly header_label: "header-label";
14
+ readonly header_cell: "header-cell";
15
+ readonly col_resizer: "col-resizer";
16
+ readonly grid_body: "grid-body";
17
+ readonly grid_body_left: "grid-body-left";
18
+ readonly grid_body_center: "grid-body-center";
19
+ readonly rows_container: "rows-container";
20
+ readonly rows_container_center: "rows-container-center";
21
+ readonly rows_container_left: "rows-container-left";
22
+ readonly row: "cellux-row";
23
+ readonly cell: "cell";
24
+ readonly cell_editing: "cell-editing";
25
+ readonly visual_cell: "visual-cell";
26
+ readonly select_all_checkbox: "select-all-checkbox";
27
+ readonly active_row: "active-row";
28
+ readonly header_menu_icon: "header-menu-icon";
29
+ readonly header_inner: "header-inner";
30
+ readonly status_bar: "status-bar";
31
+ readonly fn_filter_item: "fn-filter-item";
32
+ readonly fn_filter_list: "fn-filter-list";
33
+ readonly active_cell: "active-cell";
34
+ readonly panel_1: "fn-panel-1";
35
+ };
36
+ constructor(_grid: Grid<T>);
37
+ onGridMouseEvent: (e: MouseEvent) => void;
38
+ onGridKeyDown: (e: KeyboardEvent) => void;
39
+ }
40
+ //# sourceMappingURL=events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/cellux/events.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAGpC,qBAAa,UAAU,CAAC,CAAC,SAAS,SAAS;IAGpB,OAAO,CAAC,KAAK;IAFhC,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAAiB;gBAEQ,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;IAiKlC,gBAAgB,0BA4GrB;IAEC,aAAa,6BA6FlB;CACD"}
@@ -0,0 +1,17 @@
1
+ import { Grid } from "./grid";
2
+ import { TableData } from "./types";
3
+ export declare class Filter<T extends TableData> {
4
+ private _grid;
5
+ _columnFiltersMap: Map<string, Set<any>>;
6
+ private _filteredIndices;
7
+ constructor(_grid: Grid<T>);
8
+ loadFilterState(): void;
9
+ private saveFilterState;
10
+ applyColumnFilters(): void;
11
+ getDistinctValuesByField(field: string): any[];
12
+ clearColumnFilter(field: string): void;
13
+ clearColumnFilters(): void;
14
+ get filteredIndices(): number[];
15
+ set filteredIndices(val: number[]);
16
+ }
17
+ //# sourceMappingURL=filter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filter.d.ts","sourceRoot":"","sources":["../src/cellux/filter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpC,qBAAa,MAAM,CAAC,CAAC,SAAS,SAAS;IAKvB,OAAO,CAAC,KAAK;IAHlB,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAa;IAC5D,OAAO,CAAC,gBAAgB,CAAgB;gBAEpB,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;IAY3B,eAAe,IAAI,IAAI;IAsC9B,OAAO,CAAC,eAAe;IAmBhB,kBAAkB,IAAI,IAAI;IA+C1B,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,EAAE;IAqB9C,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAatC,kBAAkB,IAAI,IAAI;IAqBjC,IAAI,eAAe,IAAI,MAAM,EAAE,CAAkC;IACjE,IAAI,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,EAAuC;CAE3E"}
@@ -0,0 +1,28 @@
1
+ import { ColumnDef } from "./column";
2
+ import { CsvExportOptions } from "./interfaces";
3
+ import { TableData } from "./types";
4
+ export interface GridApi<T extends TableData> {
5
+ version: string;
6
+ setRowData?: (rows: T[]) => void;
7
+ clearColumnFilter: (field: string) => void;
8
+ clearColumnFilters: () => void;
9
+ getColumnWidths: () => Readonly<number[]>;
10
+ getAllColumns: () => ColumnDef<T>[];
11
+ getVisibleColumns: () => ColumnDef<T>[];
12
+ scroll: (pixels: number) => void;
13
+ setQuickFilterText: (search: string) => void;
14
+ getColumnState?: () => ColumnDef<T>[];
15
+ getColDef: (field: string) => ColumnDef<T> | null;
16
+ getGrid?: () => GridApi<T>;
17
+ setColumnVisible?: (field: string, isVisible: boolean) => void;
18
+ exportToCsv?: (options?: CsvExportOptions<T>) => void;
19
+ destroy?: () => void;
20
+ updateRow?: (arrayIndex: number, patch: Partial<T>) => void;
21
+ updateCellValue?: <K extends keyof T>(arrayIndex: number, field: K, value: T[K]) => void;
22
+ dump?: () => void;
23
+ debug?: {
24
+ getRenderedRowDivs: () => HTMLDivElement[];
25
+ getGrid?: () => any;
26
+ };
27
+ }
28
+ //# sourceMappingURL=grid-api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grid-api.d.ts","sourceRoot":"","sources":["../src/cellux/grid-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpC,MAAM,WAAW,OAAO,CAAC,CAAC,SAAS,SAAS;IAExC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC;IACjC,iBAAiB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,kBAAkB,EAAE,MAAM,IAAI,CAAC;IAC/B,eAAe,EAAE,MAAM,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1C,aAAa,EAAE,MAAM,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IACpC,iBAAiB,EAAE,MAAM,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IACxC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,kBAAkB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,cAAc,CAAC,EAAE,MAAM,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IACtC,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAClD,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3B,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IAC/D,WAAW,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IACtD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IAC5D,eAAe,CAAC,EAAE,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAA;IAGxF,IAAI,CAAC,EAAE,MAAM,IAAI,CAAC;IAElB,KAAK,CAAC,EAAE;QACJ,kBAAkB,EAAE,MAAM,cAAc,EAAE,CAAC;QAC3C,OAAO,CAAC,EAAE,MAAM,GAAG,CAAC;KACvB,CAAA;CACJ"}
@@ -0,0 +1,33 @@
1
+ import { Grid } from "./grid";
2
+ import { Renderer } from "./renderer";
3
+ export declare class GridAssertions<T extends Record<string, any>> {
4
+ private _grid;
5
+ private _renderer;
6
+ private _dev;
7
+ private _consoleLog;
8
+ skip: boolean;
9
+ constructor(_grid: Grid<T>, _renderer: Renderer<T>, _dev?: boolean, _consoleLog?: boolean);
10
+ check(fn: () => void): void;
11
+ assertAll(consoleLog: boolean): void;
12
+ element<T extends Element>(el: T | null, className: string): asserts el is T;
13
+ assertDomWired(): void;
14
+ assertColumnWidthsSync(): void;
15
+ assertHeaderCountMatchesColumnCount(): void;
16
+ assertCssColumnsMatchColumns(): void;
17
+ assertRenderedRowsValid(rowCount: number, firstRenderedRowIndex: number): void;
18
+ assertColumnWidthsLengthMatchColumnsLength(): void;
19
+ assertPopulateRowsPreCheck(rowCount: number, firstRenderedRowIndex: number): void;
20
+ assertWidthsMatch(): void;
21
+ assertPopulateRowsPostCheck(rowCount: number, firstRenderedRowIndex: number): void;
22
+ assertColumnSync(): void;
23
+ assertVisibleColOrder(): void;
24
+ assertCenterColDefsSync(): void;
25
+ assertPanelColDefsMatchVisible(): void;
26
+ assertHeaderDomMatchesPanelColDefs(): void;
27
+ assertNoDuplicateFields(): void;
28
+ assertHiddenColsNotVisible(): void;
29
+ assertPanelCellCountMatchesColDefs(): void;
30
+ assertHeaderCellCountMatchesColDefs(): void;
31
+ private print;
32
+ }
33
+ //# sourceMappingURL=grid-assertions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grid-assertions.d.ts","sourceRoot":"","sources":["../src/cellux/grid-assertions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAStC,qBAAa,cAAc,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAGzC,OAAO,CAAC,KAAK;IAAW,OAAO,CAAC,SAAS;IAAe,OAAO,CAAC,IAAI;IAAU,OAAO,CAAC,WAAW;IAF7G,IAAI,UAAS;gBAEO,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,EAAU,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAU,IAAI,UAAQ,EAAU,WAAW,UAAQ;IAM9G,KAAK,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI;IAI3B,SAAS,CAAC,UAAU,EAAE,OAAO;IAqB7B,OAAO,CAAC,CAAC,SAAS,OAAO,EAC5B,EAAE,EAAE,CAAC,GAAG,IAAI,EACZ,SAAS,EAAE,MAAM,GAClB,OAAO,CAAC,EAAE,IAAI,CAAC;IAQX,cAAc,IAAI,IAAI;IAWtB,sBAAsB,IAAI,IAAI;IAe9B,mCAAmC,IAAI,IAAI;IAe3C,4BAA4B,IAAI,IAAI;IAkBpC,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,qBAAqB,EAAE,MAAM,GAAG,IAAI;IAiC9E,0CAA0C,IAAI,IAAI;IAoBlD,0BAA0B,CAAC,QAAQ,EAAE,MAAM,EAAE,qBAAqB,EAAE,MAAM;IAoC1E,iBAAiB;IAsBjB,2BAA2B,CAAC,QAAQ,EAAE,MAAM,EAAE,qBAAqB,EAAE,MAAM;IA0E3E,gBAAgB,IAAI,IAAI;IA8CxB,qBAAqB,IAAI,IAAI;IA6B7B,uBAAuB,IAAI,IAAI;IAe/B,8BAA8B,IAAI,IAAI;IAiCtC,kCAAkC,IAAI,IAAI;IAkB1C,uBAAuB,IAAI,IAAI;IAW/B,0BAA0B,IAAI,IAAI;IAalC,kCAAkC,IAAI,IAAI;IA0B1C,mCAAmC,IAAI,IAAI;IAkBlD,OAAO,CAAC,KAAK;CAOhB"}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=grid-assertions.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grid-assertions.test.d.ts","sourceRoot":"","sources":["../src/cellux/grid-assertions.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,32 @@
1
+ export declare const GridClassName: {
2
+ readonly cx_grid_container: "cellux-grid-container";
3
+ readonly grid_viewport: "grid-viewport";
4
+ readonly left_panel: "left-panel";
5
+ readonly center_panel: "center-panel";
6
+ readonly header: "header";
7
+ readonly header_center: "header-center";
8
+ readonly header_left: "header-left";
9
+ readonly header_label: "header-label";
10
+ readonly header_cell: "header-cell";
11
+ readonly col_resizer: "col-resizer";
12
+ readonly grid_body: "grid-body";
13
+ readonly grid_body_left: "grid-body-left";
14
+ readonly grid_body_center: "grid-body-center";
15
+ readonly rows_container: "rows-container";
16
+ readonly rows_container_center: "rows-container-center";
17
+ readonly rows_container_left: "rows-container-left";
18
+ readonly row: "cellux-row";
19
+ readonly cell: "cell";
20
+ readonly cell_editing: "cell-editing";
21
+ readonly visual_cell: "visual-cell";
22
+ readonly select_all_checkbox: "select-all-checkbox";
23
+ readonly active_row: "active-row";
24
+ readonly header_menu_icon: "header-menu-icon";
25
+ readonly header_inner: "header-inner";
26
+ readonly status_bar: "status-bar";
27
+ readonly fn_filter_item: "fn-filter-item";
28
+ readonly fn_filter_list: "fn-filter-list";
29
+ readonly active_cell: "active-cell";
30
+ readonly panel_1: "fn-panel-1";
31
+ };
32
+ //# sourceMappingURL=grid-class-name.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grid-class-name.d.ts","sourceRoot":"","sources":["../src/cellux/grid-class-name.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsChB,CAAC"}
@@ -0,0 +1,25 @@
1
+ import { ColumnDef, SortModel } from "./column";
2
+ import { Grid } from "./grid";
3
+ import { FirstDataRenderedEvent, GridReadyEvent, GetContextMenuItems, RowEvent } from "./interfaces";
4
+ import { TableData } from "./types";
5
+ export interface GridOptions<T extends TableData> {
6
+ onRowClicked?: (payload: RowEvent<T>) => void;
7
+ onRowDoubleClicked?: (payload: RowEvent<T>) => void;
8
+ onRowMouseOver?: (payload: RowEvent<T>) => void;
9
+ onRowMouseOut?: (payload: RowEvent<T>) => void;
10
+ onGridReady?: (event: GridReadyEvent<T>) => void;
11
+ onFirstDataRendered?: (event: FirstDataRenderedEvent<T>) => void;
12
+ onSortChanged?: (sortModel: SortModel) => void;
13
+ onFilterChanged?: () => void;
14
+ onBuildFilterTab?: (field: string, grid: Grid<T>) => HTMLElement | null | undefined;
15
+ onBuildFieldListTab?: (field: string, grid: Grid<T>) => HTMLElement | null | undefined;
16
+ onBuildGeneralTab?: (field: string, grid: Grid<T>) => HTMLElement | null | undefined;
17
+ defaultColDef?: Partial<ColumnDef<T>>;
18
+ rowData?: T[];
19
+ getContextMenuItems?: (params: any) => GetContextMenuItems[];
20
+ columnDefs?: ColumnDef<T>[];
21
+ rowHeight?: number;
22
+ columnStateKey?: string;
23
+ filterStateKey?: string;
24
+ }
25
+ //# sourceMappingURL=grid-options.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grid-options.d.ts","sourceRoot":"","sources":["../src/cellux/grid-options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAmB,SAAS,EAAE,MAAM,UAAU,CAAC;AACjE,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAC,sBAAsB,EAAE,cAAc,EAAE,mBAAmB,EAAY,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC9G,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpC,MAAM,WAAW,WAAW,CAAC,CAAC,SAAS,SAAS;IAC9C,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IAC9C,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IACpD,cAAc,CAAC,EAAE,CAAC,OAAO,EAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IACjD,aAAa,CAAC,EAAE,CAAC,OAAO,EAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IAChD,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IACjD,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,sBAAsB,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IACjE,aAAa,CAAC,EAAE,CAAC,SAAS,EAAC,SAAS,KAAK,IAAI,CAAC;IAC9C,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAE7B,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,WAAW,GAAG,IAAI,GAAG,SAAS,CAAC;IACpF,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,WAAW,GAAG,IAAI,GAAG,SAAS,CAAC;IACvF,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,WAAW,GAAG,IAAI,GAAG,SAAS,CAAC;IACrF,aAAa,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IAEtC,OAAO,CAAC,EAAE,CAAC,EAAG,CAAC;IAEf,mBAAmB,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,mBAAmB,EAAE,CAAC;IAE7D,UAAU,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB"}
@@ -0,0 +1,12 @@
1
+ import { Grid } from "./grid";
2
+ import { RowRef } from "./interfaces";
3
+ export declare class GridRowRef<T extends object> implements RowRef<T> {
4
+ readonly data: T;
5
+ readonly arrayIndex: number;
6
+ readonly grid: Grid;
7
+ constructor(data: T, arrayIndex: number, grid: Grid);
8
+ setValue<K extends keyof T>(field: K, value: T[K]): void;
9
+ invalidate(): void;
10
+ getRowIndex(): number | null;
11
+ }
12
+ //# sourceMappingURL=grid-row-ref.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grid-row-ref.d.ts","sourceRoot":"","sources":["../src/cellux/grid-row-ref.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,qBAAa,UAAU,CAAC,CAAC,SAAS,MAAM,CAAE,YAAW,MAAM,CAAC,CAAC,CAAC;aAEtC,IAAI,EAAE,CAAC;aACP,UAAU,EAAE,MAAM;aAClB,IAAI,EAAE,IAAI;gBAFV,IAAI,EAAE,CAAC,EACP,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,IAAI;IAQ9B,QAAQ,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;IAKjD,UAAU,IAAI,IAAI;IAOlB,WAAW,IAAI,MAAM,GAAG,IAAI;CAGtC"}
package/dist/grid.d.ts ADDED
@@ -0,0 +1,159 @@
1
+ import { CellContext, CellEvent, CsvExportOptions, RowEvent } from './interfaces';
2
+ import { GridApi } from './grid-api';
3
+ import '../cellux/css/grid.css';
4
+ import '../cellux/css/debug-window.css';
5
+ import { GridOptions } from './grid-options';
6
+ import { ComputeRenderedRowCountReturn, GridState, TableData } from './types';
7
+ import { ContextMenu } from './context-menu';
8
+ import { GridConsole } from './console-log';
9
+ import { ColumnDef } from './column';
10
+ import * as util from "../cellux/utilities/utilities";
11
+ import { Renderer } from './renderer';
12
+ import { Filter } from './filter';
13
+ import { Sort } from './sorting';
14
+ import { TabBuilder } from './column-tab-builder';
15
+ import { GridEvents } from './events';
16
+ import { ColumnStateMgr } from './column-state';
17
+ export declare function createGrid<T extends TableData>(rootEl: HTMLDivElement, options: GridOptions<T>): GridApi<T>;
18
+ export declare class Grid<T extends Record<string, any> = any> {
19
+ _rootEl: HTMLDivElement;
20
+ _options: GridOptions<T>;
21
+ _debug: boolean;
22
+ private _consoleLog;
23
+ private _showDebugOverlay;
24
+ private cn;
25
+ private _api;
26
+ private _debugOverlay;
27
+ private _quickFilter;
28
+ private _statusBar;
29
+ _contextMenu: ContextMenu<T>;
30
+ _console: GridConsole<T>;
31
+ _renderer: Renderer<T>;
32
+ _filter: Filter<T>;
33
+ _sort: Sort<T>;
34
+ _tabBuilder: TabBuilder<T>;
35
+ _gridEvents: GridEvents<T>;
36
+ _colStateMgr: ColumnStateMgr<T>;
37
+ private _quickFilterText;
38
+ readonly MIN_COLUMN_WIDTH = 50;
39
+ readonly MAX_COLUMN_WIDTH = 800;
40
+ readonly gu: typeof util;
41
+ private _scrollRafId;
42
+ private _pendingScrollTop;
43
+ private _editingCell;
44
+ private _editInput;
45
+ private _debugEnabled;
46
+ private _debugEl;
47
+ _activeArrayIndex: number | null;
48
+ _activeRowElement: HTMLElement | null;
49
+ _contextMenuEl: HTMLElement | null;
50
+ private _activeRowIndex;
51
+ private _activeColField;
52
+ _filteredAndSortedIndices: number[];
53
+ readonly collator: Intl.Collator;
54
+ readonly _cellEventMap: {
55
+ readonly click: "onCellClicked";
56
+ readonly dblclick: "onCellDoubleClicked";
57
+ readonly contextmenu: "onContextMenu";
58
+ readonly mousedown: "onCellMouseDown";
59
+ readonly mouseup: "onCellMouseUp";
60
+ readonly mousemove: "onCellMouseMove";
61
+ readonly mouseenter: "onCellMouseEnter";
62
+ readonly mouseleave: "onCellMouseLeave";
63
+ readonly mouseover: "onCellMouseOver";
64
+ readonly mouseout: "onCellMouseOut";
65
+ };
66
+ readonly _rowEventMap: {
67
+ readonly click: "onRowClicked";
68
+ readonly dblclick: "onRowDoubleClicked";
69
+ readonly mouseover: "onRowMouseOver";
70
+ readonly mouseout: "onRowMouseOut";
71
+ };
72
+ private eventAbortController?;
73
+ currentState: GridState;
74
+ constructor(_rootEl: HTMLDivElement, _options: GridOptions<T>);
75
+ resolveColDef(col: ColumnDef<T>): ColumnDef<T>;
76
+ create(): void;
77
+ private applyRowHeight;
78
+ destroy(): void;
79
+ computeRenderedRowCount(): ComputeRenderedRowCountReturn;
80
+ onAutoResizeColumn(e: MouseEvent): void;
81
+ autoSizeColumn(field: string): void;
82
+ autoSizeAllColumns(): void;
83
+ attachEvents(): void;
84
+ setActiveCellCSS(cellEl: HTMLElement, setActive: boolean): void;
85
+ setActiveCell(targetCellEl: HTMLElement): void;
86
+ focusCell(rowIndex: number, colIndexGlobal: number): void;
87
+ _getPinnedCount(): number;
88
+ handleTabNavigation(e: KeyboardEvent): void;
89
+ private ensureRowVisible;
90
+ private createDragElement;
91
+ onResizerMouseDown: (e: MouseEvent) => void;
92
+ resizeColumnWidth(colIndex: number, newWidth: number): void;
93
+ getColumnWidthInPixels(colIndex: number): number;
94
+ detachEvents(): void;
95
+ private onScroll;
96
+ setActiveRow(rowEl: HTMLElement): void;
97
+ getCellContextParams(cellEl: HTMLElement): CellContext<T> | null;
98
+ getCellEventParams(cellEl: HTMLElement, e: Event): CellEvent<T> | null;
99
+ getRowEventParams(e: MouseEvent): RowEvent<T> | null;
100
+ private getMouseEventData;
101
+ onColumnSort: (e: MouseEvent) => void;
102
+ private attachColumnReorderListeners;
103
+ private attachReorderListenersForPanel;
104
+ private reorderColumnInPanel;
105
+ private reindexHeaderCells;
106
+ private refreshVisibleRows;
107
+ private currentlyEditing;
108
+ startCellEditing(e: MouseEvent | KeyboardEvent, cellEl: HTMLElement, charPressed?: string): void;
109
+ private commitCellEdit;
110
+ private cancelCellEdit;
111
+ exportToCsv(options?: CsvExportOptions<T>): void;
112
+ private escapeCsvValue;
113
+ private downloadCsv;
114
+ updateDebugOverlay(): void;
115
+ onFilterChanged(): void;
116
+ clearQuickFilter(): void;
117
+ getQuickFilterText(): string;
118
+ updateTotalRowsDisplay(): void;
119
+ refreshGrid(): void;
120
+ invalidateArrayIndex(arrayIndex: number): void;
121
+ invalidateRow(rowIndex: number): void;
122
+ getRowIndexFromArrayIndex(arrayIndex: number): number | null;
123
+ updateCellValue<K extends keyof T>(arrayIndex: number, field: K, value: T[K]): void;
124
+ updateRow(arrayIndex: number, patch: Partial<T>): void;
125
+ getColDef: (field: string) => ColumnDef<T> | null;
126
+ getDistinctValuesByField(field: string): any[];
127
+ isCellEditable<T extends TableData>(col: ColumnDef<T>, payload: CellEvent<T>): boolean;
128
+ pinColumn(col: ColumnDef<T>, checked: boolean): void;
129
+ deleteColumnState(): void;
130
+ get Grid(): Grid<T>;
131
+ getRowData(): T[];
132
+ get activeRowIndex(): number | null;
133
+ get activeArrayIndex(): number | null;
134
+ get activeColField(): string | null;
135
+ get quickFilterText(): string;
136
+ set quickFilterText(filterText: string);
137
+ get rootEl(): HTMLElement | null;
138
+ get options(): GridOptions<T> | null;
139
+ get contextMenuEl(): HTMLElement | null;
140
+ set contextMenuEl(val: HTMLElement | null);
141
+ get derivedIndices(): number[];
142
+ get debug(): boolean;
143
+ get showDebugOverlay(): boolean;
144
+ get consoleLog(): boolean;
145
+ get activeRowElement(): HTMLElement | null;
146
+ set activeRowElement(val: HTMLElement | null);
147
+ setColumnVisible(field: string, setVisible: boolean): void;
148
+ getActiveCell(): HTMLElement | undefined | null;
149
+ scroll(pixels: number): void;
150
+ scrollToAndActivateRowByArrayIndex(arrayIndex: number): void;
151
+ setRowData: (rows: T[]) => void;
152
+ resetAllColumns(): void;
153
+ debugApi(): {
154
+ getrenderedRowDivs: () => HTMLDivElement[];
155
+ };
156
+ private _getGrid;
157
+ get api(): GridApi<T>;
158
+ }
159
+ //# sourceMappingURL=grid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grid.d.ts","sourceRoot":"","sources":["../src/cellux/grid.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export { Grid } from './grid';
2
+ export * from './interfaces';
3
+ export * from './types';
4
+ export * from './column';
5
+ export * from './grid-options';
6
+ export * from './grid-api';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/cellux/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC"}
@@ -0,0 +1,105 @@
1
+ import { Grid } from "./grid";
2
+ import { TableData } from "./types";
3
+ import { ColumnDef } from "./column";
4
+ import { GridApi } from "./grid-api";
5
+ export interface CelluxEvent<T extends TableData> {
6
+ api: GridApi<T>;
7
+ grid: Grid<T>;
8
+ }
9
+ export interface RowEvent<T extends TableData> extends CelluxEvent<T> {
10
+ data: T;
11
+ arrayIndex: number;
12
+ rowIndex: number;
13
+ event: Event;
14
+ }
15
+ export interface CellEvent<T extends TableData> extends RowEvent<T> {
16
+ colDef: ColumnDef<T>;
17
+ value: unknown;
18
+ cellElement: HTMLElement;
19
+ }
20
+ export interface CellContext<T extends TableData> {
21
+ api: GridApi<T>;
22
+ data: T;
23
+ rowIndex: number;
24
+ arrayIndex: number;
25
+ colDef: ColumnDef<T>;
26
+ cellElement: HTMLElement;
27
+ value: unknown;
28
+ }
29
+ export interface CellValueChangedParams<T extends TableData> extends CellContext<T> {
30
+ oldValue: any;
31
+ newValue: any;
32
+ }
33
+ export interface CellKeyEventPayload<T extends TableData> {
34
+ data: T;
35
+ rowIndex: number;
36
+ arrayIndex: number;
37
+ colDef: ColumnDef<T>;
38
+ value: unknown;
39
+ event: KeyboardEvent;
40
+ }
41
+ export interface CellEditorParams<T extends TableData> {
42
+ value: any;
43
+ data: T;
44
+ colDef: ColumnDef<T>;
45
+ rowIndex: number;
46
+ arrayIndex: number;
47
+ cellElement: HTMLElement;
48
+ cellEditorParams?: any;
49
+ stopEditing?: () => void;
50
+ }
51
+ export interface ICellEditor<T extends TableData> {
52
+ init(params: CellEditorParams<T>): HTMLElement;
53
+ getValue(): any;
54
+ destroy?(): void;
55
+ }
56
+ export interface GridReadyEvent<T extends Record<string, any> = any> {
57
+ api: Grid<T>;
58
+ }
59
+ export interface FirstDataRenderedEvent<T extends Record<string, any> = any> {
60
+ api: Grid<T>;
61
+ rowCount: number;
62
+ }
63
+ export interface CsvExportOptions<T extends TableData> {
64
+ fileName?: string;
65
+ columnKeys?: Array<keyof T & string>;
66
+ processCellCallback?: (params: {
67
+ colDef: ColumnDef<T>;
68
+ value: any;
69
+ data: T;
70
+ }) => any;
71
+ }
72
+ export interface SortItem {
73
+ field: string;
74
+ dir: 'asc' | 'desc';
75
+ }
76
+ export interface FilterState {
77
+ field: string;
78
+ filterValues: any[];
79
+ }
80
+ export declare type GetContextMenuItems = MenuItemDef | 'copy' | 'autoSizeAll' | 'exportCsv' | 'separator';
81
+ export interface MenuItemDef {
82
+ name: string;
83
+ action: () => void;
84
+ icon?: string;
85
+ disabled?: boolean | (() => boolean);
86
+ subMenu?: GetContextMenuItems[];
87
+ }
88
+ export interface GetContextMenuItemsParams<T extends TableData = TableData> {
89
+ data: T;
90
+ rowIndex: number;
91
+ arrayIndex: number;
92
+ colDef: ColumnDef<T>;
93
+ value: any;
94
+ event: MouseEvent;
95
+ grid: Grid<T>;
96
+ }
97
+ export interface RowRef<T extends object> {
98
+ readonly data: T;
99
+ readonly arrayIndex: number;
100
+ readonly grid: Grid;
101
+ setValue<K extends keyof T>(field: K, value: T[K]): void;
102
+ invalidate(): void;
103
+ getRowIndex(): number | null;
104
+ }
105
+ //# sourceMappingURL=interfaces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../src/cellux/interfaces.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { Grid } from "./grid";
2
+ export declare class QuickFilter<T extends Record<string, any>> {
3
+ private _grid;
4
+ private _quickFilterText;
5
+ constructor(_grid: Grid<T>);
6
+ clearQuickFilter(): void;
7
+ getQuickFilter(): string;
8
+ applyQuickFilter(): void;
9
+ get quickFilterText(): string;
10
+ set quickFilterText(val: string);
11
+ }
12
+ //# sourceMappingURL=quick-filter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quick-filter.d.ts","sourceRoot":"","sources":["../src/cellux/quick-filter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,qBAAa,WAAW,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAGtC,OAAO,CAAC,KAAK;IAFzB,OAAO,CAAC,gBAAgB,CAAc;gBAElB,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;IAE3B,gBAAgB,IAAI,IAAI;IAKxB,cAAc,IAAI,MAAM;IAIxB,gBAAgB,IAAI,IAAI;IAoD/B,IAAW,eAAe,IAAI,MAAM,CAAkC;IACtE,IAAW,eAAe,CAAC,GAAG,EAAE,MAAM,EAGrC;CAEJ"}
@@ -0,0 +1,83 @@
1
+ import { Grid } from "./grid";
2
+ import { TableData } from "./types";
3
+ import { ColumnDef } from "./column";
4
+ import { GridAssertions } from "./grid-assertions";
5
+ export declare class Renderer<T extends TableData> {
6
+ private _grid;
7
+ _assertions: GridAssertions<T>;
8
+ private readonly _rootEl;
9
+ private readonly _options;
10
+ _gridContainerEl: HTMLElement | null;
11
+ _leftPanelEl: HTMLElement | null;
12
+ _centerPanelEl: HTMLElement | null;
13
+ _centerHeaderEl: HTMLElement | null;
14
+ _leftHeaderEl: HTMLElement | null;
15
+ _centerHeaderInnerEl: HTMLElement | null;
16
+ _leftHeaderInnerEl: HTMLElement | null;
17
+ _centerBodyEl: HTMLElement | null;
18
+ _leftBodyEl: HTMLElement | null;
19
+ _centerRowsContainerEl: HTMLElement | null;
20
+ _leftRowsContainerEl: HTMLElement | null;
21
+ _centerColumnWidths: number[];
22
+ _leftColumnWidths: number[];
23
+ _leftRenderedRowDivs: HTMLDivElement[];
24
+ _centerRenderedRowDivs: HTMLDivElement[];
25
+ _visibleColDefs: ColumnDef<T>[];
26
+ _allColDefs: ColumnDef<T>[];
27
+ _leftColDefs: ColumnDef<T>[];
28
+ _centerColDefs: ColumnDef<T>[];
29
+ private _firstDataRendered;
30
+ constructor(_grid: Grid<T>);
31
+ /**
32
+ * Measure the visible height of the scrollable grid body and publish it to state.
33
+ * Used during initial setup to give the virtualizer a real viewport height so it
34
+ * can compute how many rows to render. Safely no-ops if the body isn’t laid out yet
35
+ * (clientHeight === 0). On a successful read, flips `viewportMeasured` so the initial
36
+ * render path can skip re-measuring; later size changes are handled by the ResizeObserver.
37
+ * If there are any that is.
38
+ */
39
+ measureViewportHeight(): void;
40
+ buildGridSkeleton: () => void;
41
+ updateGridTemplateColumns(): void;
42
+ resetRowPool(): void;
43
+ /**
44
+ * Initializes the recycled DOM pool with `n` empty row divs.
45
+ *
46
+ * Creates row container divs with pre-structured cell children, one cell per column.
47
+ * These rows form a reusable pool for virtual scrolling - as the user scrolls, these
48
+ * same DOM elements are repositioned and repopulated with different data rather than
49
+ * creating/destroying elements continuously.
50
+ *
51
+ * Called once during grid initialization. If the pool already has `n` or more rows,
52
+ * no new elements are created (idempotent).
53
+ *
54
+ * @param n - Number of row divs to ensure exist in the pool
55
+ */
56
+ private initializePool;
57
+ initializeRowPool(n: number): void;
58
+ initializeLeftRowPool(n: number): void;
59
+ private populatePanel;
60
+ populateCenterRows(renderedRowCount: number, firstRenderedRowIndex: number): void;
61
+ populateLeftRows(renderedRowCount: number, firstRenderedRowIndex: number): void;
62
+ updateLeftZoneWidth(): void;
63
+ cacheDOMElements(): void;
64
+ cacheCheck(el: HTMLElement | null, classList?: string): void;
65
+ headerCallbacks(): void;
66
+ syncRowVisibility(renderedRowCount: number): void;
67
+ syncHorizontalHeaderScroll(scrollLeft: number): void;
68
+ destroy(): void;
69
+ test(): any;
70
+ private prepareCellForRender;
71
+ populateCell(cell: HTMLElement, col: ColumnDef<T>, rowData: T, arrayIndex: number, rowIndex: number): void;
72
+ private applyCellClass;
73
+ private applyCellStyle;
74
+ recomputeColDefsAndWidths(): void;
75
+ recomputeRowDivs(): void;
76
+ buildHeaderCell(col: ColumnDef<T>, index: number): HTMLElement;
77
+ get renderedRowDivs(): HTMLDivElement[];
78
+ get firstDataRendered(): boolean;
79
+ get rootEl(): HTMLElement | null;
80
+ get bodyEl(): HTMLElement | null;
81
+ get headerInnerEl(): HTMLElement | null;
82
+ }
83
+ //# sourceMappingURL=renderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../src/cellux/renderer.ts"],"names":[],"mappings":"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"}