@1771technologies/lytenyte-pro 1.0.0-beta.3 → 1.0.0-beta.30

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 (103) hide show
  1. package/dist/+types.d.ts +88 -14
  2. package/dist/cell-selection/cell-selection-driver.js +9 -1
  3. package/dist/cell-selection/update-additive-cell-selection.js +0 -2
  4. package/dist/cells/cell-editor.js +11 -4
  5. package/dist/cells/cell.js +6 -3
  6. package/dist/column-manager/branch.d.ts +9 -3
  7. package/dist/column-manager/branch.js +20 -4
  8. package/dist/column-manager/column-manager.d.ts +3 -5
  9. package/dist/column-manager/column-manager.js +6 -8
  10. package/dist/column-manager/context.d.ts +2 -2
  11. package/dist/column-manager/label.d.ts +1 -1
  12. package/dist/column-manager/label.js +5 -5
  13. package/dist/column-manager/leaf.d.ts +2 -2
  14. package/dist/column-manager/leaf.js +22 -4
  15. package/dist/column-manager/move-handle.d.ts +3 -3
  16. package/dist/column-manager/move-handle.js +3 -5
  17. package/dist/column-manager/panel.d.ts +1 -0
  18. package/dist/column-manager/panel.js +2 -0
  19. package/dist/column-manager/root.d.ts +6 -7
  20. package/dist/column-manager/root.js +2 -15
  21. package/dist/column-manager/use-column-manager.d.ts +8 -18
  22. package/dist/column-manager/use-column-manager.js +18 -22
  23. package/dist/column-manager/use-columns-from-context.d.ts +2 -2
  24. package/dist/column-manager/use-columns-from-context.js +2 -2
  25. package/dist/column-manager/visibility-checkbox.d.ts +1 -1
  26. package/dist/column-manager/visibility-checkbox.js +2 -2
  27. package/dist/filter-tree/branch.js +1 -1
  28. package/dist/filter-tree/inclusion-checkbox.d.ts +1 -1
  29. package/dist/filter-tree/inclusion-checkbox.js +2 -2
  30. package/dist/filter-tree/label.d.ts +1 -1
  31. package/dist/filter-tree/label.js +2 -2
  32. package/dist/filter-tree/root.d.ts +3 -3
  33. package/dist/filter-tree/root.js +4 -4
  34. package/dist/grid-box/+types.d.ts +4 -2
  35. package/dist/grid-box/item.d.ts +4 -1
  36. package/dist/grid-box/item.js +39 -9
  37. package/dist/grid-box/use-aggregation-box-items.js +3 -1
  38. package/dist/grid-box/use-column-box-items.d.ts +6 -2
  39. package/dist/grid-box/use-column-box-items.js +11 -14
  40. package/dist/grid-box/use-row-group-box-items.d.ts +2 -2
  41. package/dist/grid-box/use-row-group-box-items.js +14 -15
  42. package/dist/grid.d.ts +0 -12
  43. package/dist/grid.js +0 -12
  44. package/dist/header/header-cell.d.ts +1 -1
  45. package/dist/header/header-cell.js +2 -2
  46. package/dist/header/header-group-cell.js +3 -1
  47. package/dist/header/resize-handler.d.ts +2 -2
  48. package/dist/header/resize-handler.js +8 -3
  49. package/dist/header/use-drag-move.js +9 -2
  50. package/dist/header/use-header-cell-renderer.js +4 -4
  51. package/dist/icons/index.d.ts +1 -0
  52. package/dist/icons/index.js +1 -0
  53. package/dist/index.d.ts +7 -0
  54. package/dist/index.js +7 -0
  55. package/dist/listbox/item.js +1 -1
  56. package/dist/row-data-source-client/filter/compute-filtered-rows.js +1 -1
  57. package/dist/row-data-source-client/use-client-data-source-paginated.d.ts +3 -3
  58. package/dist/row-data-source-client/use-client-data-source-paginated.js +66 -24
  59. package/dist/row-data-source-client/use-client-data-source.js +50 -20
  60. package/dist/row-data-source-client/use-client-tree-data-source.js +49 -20
  61. package/dist/row-data-source-server/use-server-data-source.js +20 -0
  62. package/dist/sort-manager/sort-add.d.ts +1 -1
  63. package/dist/sort-manager/sort-add.js +3 -3
  64. package/dist/sort-manager/sort-apply.d.ts +1 -1
  65. package/dist/sort-manager/sort-apply.js +3 -3
  66. package/dist/sort-manager/sort-cancel.d.ts +1 -1
  67. package/dist/sort-manager/sort-cancel.js +3 -3
  68. package/dist/sort-manager/sort-clear.d.ts +1 -1
  69. package/dist/sort-manager/sort-clear.js +3 -3
  70. package/dist/sort-manager/sort-column-select.d.ts +1 -1
  71. package/dist/sort-manager/sort-column-select.js +2 -2
  72. package/dist/sort-manager/sort-direction-select.d.ts +1 -1
  73. package/dist/sort-manager/sort-direction-select.js +2 -2
  74. package/dist/sort-manager/sort-remove.d.ts +1 -1
  75. package/dist/sort-manager/sort-remove.js +3 -3
  76. package/dist/sort-manager/sort-value-select.d.ts +1 -1
  77. package/dist/sort-manager/sort-value-select.js +2 -2
  78. package/dist/state/+types.d.ts +2 -1
  79. package/dist/state/api/column-autosize.js +1 -1
  80. package/dist/state/api/column-from-index.d.ts +1 -1
  81. package/dist/state/api/column-from-index.js +1 -1
  82. package/dist/state/api/column-update.d.ts +4 -1
  83. package/dist/state/api/column-update.js +13 -0
  84. package/dist/state/api/edit-end.js +1 -1
  85. package/dist/state/api/export-data-rect.js +1 -1
  86. package/dist/state/helpers/column-add-row-group.d.ts +2 -1
  87. package/dist/state/helpers/column-add-row-group.js +9 -1
  88. package/dist/state/helpers/column-marker.js +1 -1
  89. package/dist/state/helpers/edit-on-change.js +1 -0
  90. package/dist/state/helpers/empty-row-data-source.js +1 -0
  91. package/dist/state/helpers/resolve-column.d.ts +1 -1
  92. package/dist/state/helpers/resolve-column.js +7 -0
  93. package/dist/state/use-lytenyte.js +16 -4
  94. package/dist/tree-view/branch/branch.d.ts +4 -1
  95. package/dist/tree-view/branch/branch.js +3 -2
  96. package/dist/tree-view/hooks/use-tree-view-paths.d.ts +1 -1
  97. package/dist/tree-view/hooks/use-tree-view-paths.js +3 -3
  98. package/dist/tree-view/leaf.js +1 -0
  99. package/dist/viewport/begin-editing.js +1 -1
  100. package/main.css +4 -0
  101. package/package.json +12 -6
  102. package/dist/column-manager/passive-scroll.d.ts +0 -2
  103. package/dist/column-manager/passive-scroll.js +0 -2
@@ -14,7 +14,7 @@ import { makeSortForColumn } from "./api/sort-for-column.js";
14
14
  import { columnAddRowGroup } from "./helpers/column-add-row-group.js";
15
15
  import { makeEventListeners } from "./api/event-listeners.js";
16
16
  import { makeScrollIntoView } from "./api/scroll-into-view.js";
17
- import { makeColumnFromIndex } from "./api/column-from-index.js";
17
+ import { makeColumnByIndex } from "./api/column-from-index.js";
18
18
  import { makeColumnIndex } from "./api/column-index.js";
19
19
  import { makeRowGroupColumnIndex } from "./api/row-group-column-index.js";
20
20
  import { makeRowGroupIsExpanded } from "./api/row-group-is-expanded.js";
@@ -72,7 +72,13 @@ export function makeLyteNyte(p) {
72
72
  const columnGroupExpansions = atom(p.columnGroupExpansions ?? {});
73
73
  const columnGroupDefaultExpansion = atom(p.columnGroupDefaultExpansion ?? true);
74
74
  const rowDataSource = atom(emptyRowDataSource);
75
- const rowHeight = atom(p.rowHeight ?? 40);
75
+ const rowHeight = atom(40);
76
+ if (typeof p.rowHeight === "function") {
77
+ store.set(rowHeight, () => p.rowHeight);
78
+ }
79
+ else {
80
+ store.set(rowHeight, p.rowHeight ?? 40);
81
+ }
76
82
  const rowAutoHeightGuess = atom(p.rowAutoHeightGuess ?? 40);
77
83
  const rowScanDistance = atom(p.rowScanDistance ?? 100);
78
84
  const colScanDistance = atom(p.colScanDistance ?? 100);
@@ -132,6 +138,7 @@ export function makeLyteNyte(p) {
132
138
  const columnPivotRowGroupExpansions = atom({});
133
139
  const cellSelections = atom(p.cellSelections ?? []);
134
140
  const cellSelectionMode = atom(p.cellSelectionMode ?? "none");
141
+ const internal__rowGroupColumnState = atom({});
135
142
  const internal_cellSelectionPivot = atom(null);
136
143
  const internal_cellSelectionAdditive = atom(null);
137
144
  const internal_cellSelectionSplits = atom((g) => {
@@ -220,6 +227,7 @@ export function makeLyteNyte(p) {
220
227
  * is impacted by the column definitions, the group expansions, the row group display mode.
221
228
  */
222
229
  const columnView = atom((g) => {
230
+ const groupState = g(internal__rowGroupColumnState);
223
231
  const pivotMode = g(columnPivotMode);
224
232
  let cols;
225
233
  if (pivotMode) {
@@ -229,6 +237,7 @@ export function makeLyteNyte(p) {
229
237
  rowGroupDisplayMode: "single-column",
230
238
  rowGroupModel: model.rows.filter((c) => c.active ?? true).map((c) => c.field),
231
239
  rowGroupTemplate: g(rowGroupColumn),
240
+ rowGroupColumnState: groupState,
232
241
  });
233
242
  }
234
243
  else {
@@ -237,6 +246,7 @@ export function makeLyteNyte(p) {
237
246
  rowGroupDisplayMode: g(rowGroupDisplayMode),
238
247
  rowGroupModel: g(rowGroupModel),
239
248
  rowGroupTemplate: g(rowGroupColumn),
249
+ rowGroupColumnState: groupState,
240
250
  });
241
251
  }
242
252
  const colsWithMarker = columnHandleMarker({
@@ -313,12 +323,13 @@ export function makeLyteNyte(p) {
313
323
  .map((x) => rds.rowToIndex(x))
314
324
  .filter((x) => x != null)
315
325
  .map((x) => [x, api.rowByIndex(x)]));
326
+ const headerHeight = g(headerHeightTotal);
316
327
  return computeRowPositions(rowCount, g(rowHeight), g(rowAutoHeightGuess), g(internal_rowAutoHeightCache), (i) => {
317
328
  const row = rows[i];
318
329
  if (!row || !api.rowDetailIsExpanded(row))
319
330
  return 0;
320
331
  return api.rowDetailRenderedHeight(row);
321
- }, innerHeight);
332
+ }, innerHeight - headerHeight);
322
333
  });
323
334
  const heightTotal = atom((g) => g(yPositions).at(-1));
324
335
  let prevLayout = DEFAULT_PREVIOUS_LAYOUT;
@@ -473,7 +484,7 @@ export function makeLyteNyte(p) {
473
484
  const listeners = makeEventListeners();
474
485
  Object.assign(api, {
475
486
  columnField: makeColumnField(grid),
476
- columnFromIndex: makeColumnFromIndex(grid),
487
+ columnByIndex: makeColumnByIndex(grid),
477
488
  columnIndex: makeColumnIndex(grid),
478
489
  columnById: makeColumnById(grid),
479
490
  columnResize: makeColumnResize(grid),
@@ -543,6 +554,7 @@ export function makeLyteNyte(p) {
543
554
  cellSelectionAdditiveRects: makeGridAtom(internal_cellSelectionAdditive, store),
544
555
  cellSelectionIsDeselect: makeGridAtom(atom(false), store),
545
556
  cellSelectionSplits: makeGridAtom(internal_cellSelectionSplits, store),
557
+ rowGroupColumnState: makeGridAtom(internal__rowGroupColumnState, store),
546
558
  store: store,
547
559
  },
548
560
  });
@@ -3,7 +3,10 @@ export interface TreeBranchProps {
3
3
  readonly itemId: string;
4
4
  readonly labelWrap?: SlotComponent;
5
5
  readonly label?: SlotComponent;
6
- readonly expander?: SlotComponent;
6
+ readonly expander?: SlotComponent<{
7
+ expanded: boolean;
8
+ toggle: () => void;
9
+ }>;
7
10
  readonly transitionEnterMs?: number;
8
11
  readonly transitionExitMs?: number;
9
12
  readonly gridWrapped?: boolean;
@@ -31,7 +31,8 @@ export const TreeBranch = forwardRef(function TreeBranch({ itemId, label, expand
31
31
  slot: label ?? _jsx("div", {}),
32
32
  });
33
33
  const expandedProps = {
34
- onClick: () => {
34
+ onClick: (e) => {
35
+ e.stopPropagation();
35
36
  onExpansionChange(!expanded);
36
37
  },
37
38
  };
@@ -51,7 +52,7 @@ export const TreeBranch = forwardRef(function TreeBranch({ itemId, label, expand
51
52
  });
52
53
  return (_jsx(depthContext.Provider, { value: depth + 1, children: _jsxs("li", { ...props, onKeyDown: useBranchKeys(itemId, root.expansionDefault ?? false, props.onKeyDown), tabIndex: -1, ref: forwarded, role: "treeitem", "aria-expanded": open, "aria-selected": root.selection.has(itemId), "aria-level": depth + 1, "data-ln-selected": root.selection.has(itemId), "data-ln-tree-node": true, "data-ln-tree-branch": true, "data-ln-tree-id": itemId, style: {
53
54
  ...props.style,
54
- "--tree-depth": depth,
55
+ "--ln-tree-depth": depth,
55
56
  }, children: [labelWrapSlot, _jsx("div", { children: _jsx(Wrapped, { wrapped: wrapped, expanded: open, children: shouldMount && (_jsx("ul", { "data-tree-branch-children": true, "data-expanded": open, "data-open-state": state, role: "group", children: props.children })) }) })] }) }));
56
57
  });
57
58
  function Wrapped(props) {
@@ -1,2 +1,2 @@
1
1
  import { type PathProvidedItem } from "@1771technologies/lytenyte-shared";
2
- export declare function useTreeViewPaths<T extends PathProvidedItem>(paths: T[]): (import("@1771technologies/lytenyte-shared").PathBranch<T> | import("@1771technologies/lytenyte-shared").PathLeaf<T>)[];
2
+ export declare function useTreeViewPaths<T extends PathProvidedItem>(paths: T[], nonAdjacentAreDistinct?: boolean): (import("@1771technologies/lytenyte-shared").PathBranch<T> | import("@1771technologies/lytenyte-shared").PathLeaf<T>)[];
@@ -1,9 +1,9 @@
1
1
  import { computePathTree } from "@1771technologies/lytenyte-shared";
2
2
  import { useMemo } from "react";
3
- export function useTreeViewPaths(paths) {
3
+ export function useTreeViewPaths(paths, nonAdjacentAreDistinct) {
4
4
  const tree = useMemo(() => {
5
- const result = computePathTree(paths);
5
+ const result = computePathTree(paths, {}, nonAdjacentAreDistinct);
6
6
  return [...result.children.values()];
7
- }, [paths]);
7
+ }, [nonAdjacentAreDistinct, paths]);
8
8
  return tree;
9
9
  }
@@ -13,6 +13,7 @@ export const TreeLeaf = forwardRef(function TreeLeaf({ itemId, ...props }, forwa
13
13
  e.ctrlKey ||
14
14
  e.shiftKey)
15
15
  return;
16
+ e.preventDefault();
16
17
  const nodes = getFocusables(e.currentTarget);
17
18
  const index = nodes.indexOf(document.activeElement);
18
19
  if (index === -1) {
@@ -6,7 +6,7 @@ export function beginEditing(grid, activator, init) {
6
6
  return;
7
7
  if (activator && editActivator !== activator)
8
8
  return;
9
- const column = grid.api.columnFromIndex(focusPos.colIndex);
9
+ const column = grid.api.columnByIndex(focusPos.colIndex);
10
10
  if (!column)
11
11
  return;
12
12
  if (grid.api.editIsCellActive({ column, rowIndex: focusPos.rowIndex }))
package/main.css CHANGED
@@ -312,4 +312,8 @@
312
312
  border-bottom: 1px solid var(--lng1771-primary-50);
313
313
  }
314
314
  }
315
+
316
+ [data-ln-cell-selection-rect] {
317
+ background-color: var(--lng1771-primary-30);
318
+ }
315
319
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@1771technologies/lytenyte-pro",
3
3
  "description": "Blazingly fast headless React data grid with 100s of features.",
4
- "version": "1.0.0-beta.3",
4
+ "version": "1.0.0-beta.30",
5
5
  "type": "module",
6
6
  "license": "COMMERCIAL",
7
7
  "files": [
@@ -32,6 +32,11 @@
32
32
  "import": "./dist/index.js",
33
33
  "require": "./dist/index.js"
34
34
  },
35
+ "./icons": {
36
+ "types": "./dist/icons/index.d.ts",
37
+ "import": "./dist/icons/index.js",
38
+ "require": "./dist/icons/index.js"
39
+ },
35
40
  "./types": {
36
41
  "types": "./dist/+types.d.ts",
37
42
  "import": "./dist/+types.js",
@@ -44,11 +49,12 @@
44
49
  },
45
50
  "dependencies": {
46
51
  "@1771technologies/atom": "^1.0.2",
47
- "@1771technologies/lytenyte-js-utils": "1.0.0-beta.3",
48
- "@1771technologies/lytenyte-dom-utils": "1.0.0-beta.3",
49
- "@1771technologies/lytenyte-shared": "1.0.0-beta.3",
50
- "@1771technologies/lytenyte-dragon": "1.0.0-beta.3",
51
- "@1771technologies/lytenyte-react-hooks": "1.0.0-beta.3"
52
+ "@1771technologies/lytenyte-dom-utils": "1.0.0-beta.30",
53
+ "@1771technologies/lytenyte-js-utils": "1.0.0-beta.30",
54
+ "@1771technologies/lytenyte-dragon": "1.0.0-beta.30",
55
+ "@1771technologies/lytenyte-shared": "1.0.0-beta.30",
56
+ "@1771technologies/lytenyte-react-hooks": "1.0.0-beta.30",
57
+ "@1771technologies/lytenyte-core": "1.0.0-beta.30"
52
58
  },
53
59
  "peerDependencies": {
54
60
  "react": "^18.0.0 || ^19.0.0",
@@ -1,2 +0,0 @@
1
- import { ForceSyncScrolling } from "../tree-view/virtualized/force-sync-scrolling";
2
- export declare const ColumnManagerPassiveScroll: typeof ForceSyncScrolling;
@@ -1,2 +0,0 @@
1
- import { ForceSyncScrolling } from "../tree-view/virtualized/force-sync-scrolling";
2
- export const ColumnManagerPassiveScroll = ForceSyncScrolling;