@deephaven/iris-grid 0.24.1-hierarchical-table.0 → 0.25.1-beta.0

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 (106) hide show
  1. package/dist/ColumnHeaderGroup.d.ts +10 -3
  2. package/dist/ColumnHeaderGroup.d.ts.map +1 -1
  3. package/dist/ColumnHeaderGroup.js +20 -1
  4. package/dist/ColumnHeaderGroup.js.map +1 -1
  5. package/dist/IrisGrid.css.map +1 -1
  6. package/dist/IrisGrid.d.ts +6 -3
  7. package/dist/IrisGrid.d.ts.map +1 -1
  8. package/dist/IrisGrid.js +42 -25
  9. package/dist/IrisGrid.js.map +1 -1
  10. package/dist/IrisGridModel.d.ts +9 -2
  11. package/dist/IrisGridModel.d.ts.map +1 -1
  12. package/dist/IrisGridModel.js +0 -13
  13. package/dist/IrisGridModel.js.map +1 -1
  14. package/dist/IrisGridModelUpdater.d.ts +3 -1
  15. package/dist/IrisGridModelUpdater.d.ts.map +1 -1
  16. package/dist/IrisGridModelUpdater.js +5 -1
  17. package/dist/IrisGridModelUpdater.js.map +1 -1
  18. package/dist/IrisGridProxyModel.d.ts +7 -2
  19. package/dist/IrisGridProxyModel.d.ts.map +1 -1
  20. package/dist/IrisGridProxyModel.js +16 -4
  21. package/dist/IrisGridProxyModel.js.map +1 -1
  22. package/dist/IrisGridTableModel.d.ts +1 -1
  23. package/dist/IrisGridTableModel.d.ts.map +1 -1
  24. package/dist/IrisGridTableModel.js.map +1 -1
  25. package/dist/IrisGridTableModelTemplate.d.ts +18 -9
  26. package/dist/IrisGridTableModelTemplate.d.ts.map +1 -1
  27. package/dist/IrisGridTableModelTemplate.js +143 -165
  28. package/dist/IrisGridTableModelTemplate.js.map +1 -1
  29. package/dist/IrisGridTestUtils.d.ts +8 -2
  30. package/dist/IrisGridTestUtils.d.ts.map +1 -1
  31. package/dist/IrisGridTestUtils.js +9 -4
  32. package/dist/IrisGridTestUtils.js.map +1 -1
  33. package/dist/IrisGridTheme.module.css.map +1 -1
  34. package/dist/IrisGridUtils.d.ts +16 -2
  35. package/dist/IrisGridUtils.d.ts.map +1 -1
  36. package/dist/IrisGridUtils.js +151 -48
  37. package/dist/IrisGridUtils.js.map +1 -1
  38. package/dist/index.d.ts +1 -0
  39. package/dist/index.d.ts.map +1 -1
  40. package/dist/index.js +1 -0
  41. package/dist/index.js.map +1 -1
  42. package/dist/sidebar/index.d.ts +1 -1
  43. package/dist/sidebar/index.d.ts.map +1 -1
  44. package/dist/sidebar/index.js +1 -1
  45. package/dist/sidebar/index.js.map +1 -1
  46. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.css +68 -0
  47. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.css.map +1 -0
  48. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.d.ts +156 -0
  49. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.d.ts.map +1 -0
  50. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.js +962 -0
  51. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.js.map +1 -0
  52. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilderUtils.d.ts +26 -0
  53. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilderUtils.d.ts.map +1 -0
  54. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilderUtils.js +130 -0
  55. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilderUtils.js.map +1 -0
  56. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingGroup.css +29 -0
  57. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingGroup.css.map +1 -0
  58. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingGroup.d.ts +13 -0
  59. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingGroup.d.ts.map +1 -0
  60. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingGroup.js +160 -0
  61. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingGroup.js.map +1 -0
  62. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingItem.d.ts +19 -0
  63. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingItem.d.ts.map +1 -0
  64. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingItem.js +81 -0
  65. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingItem.js.map +1 -0
  66. package/dist/sidebar/visibility-ordering-builder/sortable-tree/PointerSensorWithInteraction.d.ts +13 -0
  67. package/dist/sidebar/visibility-ordering-builder/sortable-tree/PointerSensorWithInteraction.d.ts.map +1 -0
  68. package/dist/sidebar/visibility-ordering-builder/sortable-tree/PointerSensorWithInteraction.js +28 -0
  69. package/dist/sidebar/visibility-ordering-builder/sortable-tree/PointerSensorWithInteraction.js.map +1 -0
  70. package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTree.d.ts +18 -0
  71. package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTree.d.ts.map +1 -0
  72. package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTree.js +156 -0
  73. package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTree.js.map +1 -0
  74. package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeInner.d.ts +19 -0
  75. package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeInner.d.ts.map +1 -0
  76. package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeInner.js +144 -0
  77. package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeInner.js.map +1 -0
  78. package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeItem.d.ts +7 -0
  79. package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeItem.d.ts.map +1 -0
  80. package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeItem.js +57 -0
  81. package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeItem.js.map +1 -0
  82. package/dist/sidebar/visibility-ordering-builder/sortable-tree/TreeItem.css +139 -0
  83. package/dist/sidebar/visibility-ordering-builder/sortable-tree/TreeItem.css.map +1 -0
  84. package/dist/sidebar/visibility-ordering-builder/sortable-tree/TreeItem.d.ts +36 -0
  85. package/dist/sidebar/visibility-ordering-builder/sortable-tree/TreeItem.d.ts.map +1 -0
  86. package/dist/sidebar/visibility-ordering-builder/sortable-tree/TreeItem.js +44 -0
  87. package/dist/sidebar/visibility-ordering-builder/sortable-tree/TreeItem.js.map +1 -0
  88. package/dist/sidebar/visibility-ordering-builder/sortable-tree/keyboardCoordinates.d.ts +4 -0
  89. package/dist/sidebar/visibility-ordering-builder/sortable-tree/keyboardCoordinates.d.ts.map +1 -0
  90. package/dist/sidebar/visibility-ordering-builder/sortable-tree/keyboardCoordinates.js +127 -0
  91. package/dist/sidebar/visibility-ordering-builder/sortable-tree/keyboardCoordinates.js.map +1 -0
  92. package/dist/sidebar/visibility-ordering-builder/sortable-tree/types.d.ts +20 -0
  93. package/dist/sidebar/visibility-ordering-builder/sortable-tree/types.d.ts.map +1 -0
  94. package/dist/sidebar/visibility-ordering-builder/sortable-tree/types.js +4 -0
  95. package/dist/sidebar/visibility-ordering-builder/sortable-tree/types.js.map +1 -0
  96. package/dist/sidebar/visibility-ordering-builder/sortable-tree/utilities.d.ts +55 -0
  97. package/dist/sidebar/visibility-ordering-builder/sortable-tree/utilities.d.ts.map +1 -0
  98. package/dist/sidebar/visibility-ordering-builder/sortable-tree/utilities.js +265 -0
  99. package/dist/sidebar/visibility-ordering-builder/sortable-tree/utilities.js.map +1 -0
  100. package/package.json +20 -16
  101. package/dist/sidebar/VisibilityOrderingBuilder.css +0 -156
  102. package/dist/sidebar/VisibilityOrderingBuilder.css.map +0 -1
  103. package/dist/sidebar/VisibilityOrderingBuilder.d.ts +0 -79
  104. package/dist/sidebar/VisibilityOrderingBuilder.d.ts.map +0 -1
  105. package/dist/sidebar/VisibilityOrderingBuilder.js +0 -753
  106. package/dist/sidebar/VisibilityOrderingBuilder.js.map +0 -1
@@ -0,0 +1,265 @@
1
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
2
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
3
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
4
+ import { arrayMove } from '@dnd-kit/sortable';
5
+ import { GridUtils } from '@deephaven/grid';
6
+ import { isFlattenedTreeItem } from "./types.js";
7
+ /**
8
+ * Gets the depth of an item dragged with a given x-axis offset
9
+ *
10
+ * @param offset x-axis offset of the dragging item
11
+ * @param indentationWidth Width of indentation for each depth
12
+ * @returns The drag depth for the given offset
13
+ */
14
+ function getDragDepth(offset, indentationWidth) {
15
+ return Math.round(offset / indentationWidth);
16
+ }
17
+ function getTreeItem(columns, movedColumns, columnHeaderGroupMap, name, userColumnWidths, selectedItems) {
18
+ var _userColumnWidths$get2;
19
+ var modelIndex = columns.findIndex(col => col.name === name);
20
+ if (modelIndex === -1) {
21
+ var group = columnHeaderGroupMap.get(name);
22
+ if (group == null) {
23
+ throw new Error("Column or header group not found: ".concat(name));
24
+ }
25
+ var modelIndexes = group.childIndexes.flat();
26
+ return {
27
+ id: name,
28
+ selected: selectedItems.has(name),
29
+ children: group.children.map(childName => getTreeItem(columns, movedColumns, columnHeaderGroupMap, childName, userColumnWidths, selectedItems)).sort((a, b) => {
30
+ var aVal = Array.isArray(a.data.visibleIndex) ? a.data.visibleIndex[0] : a.data.visibleIndex;
31
+ var bVal = Array.isArray(b.data.visibleIndex) ? b.data.visibleIndex[0] : b.data.visibleIndex;
32
+ return aVal - bVal;
33
+ }),
34
+ data: {
35
+ modelIndex: modelIndexes,
36
+ visibleIndex: group.getVisibleRange(movedColumns),
37
+ group,
38
+ isVisible: modelIndexes.some(
39
+ // If no user set width, assume it's visible
40
+ index => {
41
+ var _userColumnWidths$get;
42
+ return ((_userColumnWidths$get = userColumnWidths.get(index)) !== null && _userColumnWidths$get !== void 0 ? _userColumnWidths$get : 1) > 0;
43
+ })
44
+ }
45
+ };
46
+ }
47
+ return {
48
+ id: name,
49
+ children: [],
50
+ selected: selectedItems.has(name),
51
+ data: {
52
+ modelIndex,
53
+ visibleIndex: GridUtils.getVisibleIndex(modelIndex, movedColumns),
54
+ // If no user set width, assume it's visible
55
+ isVisible: ((_userColumnWidths$get2 = userColumnWidths.get(modelIndex)) !== null && _userColumnWidths$get2 !== void 0 ? _userColumnWidths$get2 : 1) > 0
56
+ }
57
+ };
58
+ }
59
+ export function getTreeItems(columns, movedColumns, columnHeaderGroups, userColumnWidths, selectedItems) {
60
+ var items = [];
61
+ var selectedItemsSet = new Set(selectedItems);
62
+ var groupMap = new Map(columnHeaderGroups.map(group => [group.name, group]));
63
+ var visibleIndex = 0;
64
+ var _loop = function _loop() {
65
+ var modelIndex = GridUtils.getModelIndex(visibleIndex, movedColumns);
66
+ var columnName = columns[modelIndex].name;
67
+ var group = columnHeaderGroups.find(_ref => {
68
+ var {
69
+ children
70
+ } = _ref;
71
+ return children.includes(columnName);
72
+ });
73
+ while (group !== undefined && group.parent !== undefined) {
74
+ group = groupMap.get(group.parent);
75
+ }
76
+ var item = getTreeItem(columns, movedColumns, groupMap, group ? group.name : columnName, userColumnWidths, selectedItemsSet);
77
+ items.push(item);
78
+ if (Array.isArray(item.data.visibleIndex)) {
79
+ visibleIndex += item.data.visibleIndex[1] - item.data.visibleIndex[0] + 1;
80
+ } else {
81
+ visibleIndex += 1;
82
+ }
83
+ };
84
+ while (visibleIndex < columns.length) {
85
+ _loop();
86
+ }
87
+ return items;
88
+ }
89
+
90
+ /**
91
+ * Gets the projected drop position and depth of the dragged item
92
+ *
93
+ * @param items List of flattened items
94
+ * @param activeId ID of the actively dragged item
95
+ * @param overId ID of the item currently being dragged over
96
+ * @param dragOffset The x-axis offset of the dragged item
97
+ * @param indentationWidth The width for each level of the tree
98
+ * @returns The projected position and depth if the item were to be dropped
99
+ */
100
+ export function getProjection(items, activeId, overId, dragOffset, indentationWidth) {
101
+ var overItemIndex = items.findIndex(_ref2 => {
102
+ var {
103
+ id
104
+ } = _ref2;
105
+ return id === overId;
106
+ });
107
+ var activeItemIndex = items.findIndex(_ref3 => {
108
+ var {
109
+ id
110
+ } = _ref3;
111
+ return id === activeId;
112
+ });
113
+ var activeItem = items[activeItemIndex];
114
+ var newItems = arrayMove(items, activeItemIndex, overItemIndex);
115
+ var previousItem = newItems[overItemIndex - 1];
116
+ var nextItem = newItems[overItemIndex + 1];
117
+ var dragDepth = getDragDepth(dragOffset, indentationWidth);
118
+ var projectedDepth = activeItem.depth + dragDepth;
119
+ var maxDepth = getMaxDepth({
120
+ previousItem,
121
+ nextItem
122
+ });
123
+ var minDepth = getMinDepth({
124
+ nextItem
125
+ });
126
+ var depth = projectedDepth;
127
+ if (projectedDepth >= maxDepth) {
128
+ depth = maxDepth;
129
+ } else if (projectedDepth < minDepth) {
130
+ depth = minDepth;
131
+ }
132
+ return {
133
+ depth,
134
+ maxDepth,
135
+ minDepth,
136
+ parentId: getParentId()
137
+ };
138
+ function getParentId() {
139
+ var _newItems$slice$rever;
140
+ if (depth === 0 || !previousItem) {
141
+ return null;
142
+ }
143
+ if (depth === previousItem.depth) {
144
+ return previousItem.parentId;
145
+ }
146
+ if (depth > previousItem.depth) {
147
+ return previousItem.id;
148
+ }
149
+ var newParent = (_newItems$slice$rever = newItems.slice(0, overItemIndex).reverse().find(item => item.depth === depth)) === null || _newItems$slice$rever === void 0 ? void 0 : _newItems$slice$rever.parentId;
150
+ return newParent !== null && newParent !== void 0 ? newParent : null;
151
+ }
152
+ }
153
+ function getMaxDepth(_ref4) {
154
+ var _previousItem$depth, _nextItem$depth;
155
+ var {
156
+ previousItem,
157
+ nextItem
158
+ } = _ref4;
159
+ return Math.max((_previousItem$depth = previousItem === null || previousItem === void 0 ? void 0 : previousItem.depth) !== null && _previousItem$depth !== void 0 ? _previousItem$depth : 0, (_nextItem$depth = nextItem === null || nextItem === void 0 ? void 0 : nextItem.depth) !== null && _nextItem$depth !== void 0 ? _nextItem$depth : 0);
160
+ }
161
+ function getMinDepth(_ref5) {
162
+ var {
163
+ nextItem
164
+ } = _ref5;
165
+ if (nextItem) {
166
+ return nextItem.depth;
167
+ }
168
+ return 0;
169
+ }
170
+
171
+ /**
172
+ * Helper function to recursively flatten a tree
173
+ *
174
+ * @param items Items to flatten
175
+ * @param parentId The current parentId of the items
176
+ * @param depth The current depth of the items
177
+ * @returns Flattened items
178
+ */
179
+ function flatten(items) {
180
+ var parentId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
181
+ var depth = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
182
+ return items.reduce((acc, item, index) => [...acc, _objectSpread(_objectSpread({}, item), {}, {
183
+ parentId,
184
+ depth,
185
+ index
186
+ }), ...flatten(item.children, item.id, depth + 1)], []);
187
+ }
188
+
189
+ /**
190
+ * Flattens a tree into a 1D array given the items
191
+ * @param items The tree items to flatten
192
+ * @returns The flattened tree items list
193
+ */
194
+ export function flattenTree(items) {
195
+ // Should help prevent double flattening since FlattenedItems are valid TreeItems
196
+ if (items.every(isFlattenedTreeItem)) {
197
+ return items;
198
+ }
199
+ return flatten(items);
200
+ }
201
+
202
+ /**
203
+ * Recursively checks for the item in a list of items.
204
+ * The list does not have to be flattened prior to searching.
205
+ *
206
+ * @param items Items to search
207
+ * @param itemId Item to find
208
+ * @returns The item if found
209
+ */
210
+ export function findItemDeep(items, itemId) {
211
+ for (var i = 0; i < items.length; i += 1) {
212
+ var item = items[i];
213
+ var {
214
+ id,
215
+ children
216
+ } = item;
217
+ if (id === itemId) {
218
+ return item;
219
+ }
220
+ if (children.length) {
221
+ var child = findItemDeep(children, itemId);
222
+ if (child) {
223
+ return child;
224
+ }
225
+ }
226
+ }
227
+ return undefined;
228
+ }
229
+ function countChildren(items) {
230
+ var count = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
231
+ return items.reduce((acc, _ref6) => {
232
+ var {
233
+ children
234
+ } = _ref6;
235
+ if (children.length) {
236
+ return countChildren(children, acc + 1);
237
+ }
238
+ return acc + 1;
239
+ }, count);
240
+ }
241
+ export function getChildCount(items, id) {
242
+ var item = findItemDeep(items, id);
243
+ return item ? countChildren(item.children) : 0;
244
+ }
245
+
246
+ /**
247
+ * Removes the children of the list of parents from the list of flattened items
248
+ *
249
+ * @param items The flattened items to remove from
250
+ * @param ids The parents we want to remove the children of
251
+ * @returns The flattened items without the children of the parents
252
+ */
253
+ export function removeChildrenOf(items, ids) {
254
+ var excludeParentIds = new Set(ids);
255
+ return items.filter(item => {
256
+ if (item.parentId != null && excludeParentIds.has(item.parentId)) {
257
+ if (item.children.length) {
258
+ excludeParentIds.add(item.id);
259
+ }
260
+ return false;
261
+ }
262
+ return true;
263
+ });
264
+ }
265
+ //# sourceMappingURL=utilities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utilities.js","names":["arrayMove","GridUtils","isFlattenedTreeItem","getDragDepth","offset","indentationWidth","Math","round","getTreeItem","columns","movedColumns","columnHeaderGroupMap","name","userColumnWidths","selectedItems","modelIndex","findIndex","col","group","get","Error","modelIndexes","childIndexes","flat","id","selected","has","children","map","childName","sort","a","b","aVal","Array","isArray","data","visibleIndex","bVal","getVisibleRange","isVisible","some","index","getVisibleIndex","getTreeItems","columnHeaderGroups","items","selectedItemsSet","Set","groupMap","Map","getModelIndex","columnName","find","includes","undefined","parent","item","push","length","getProjection","activeId","overId","dragOffset","overItemIndex","activeItemIndex","activeItem","newItems","previousItem","nextItem","dragDepth","projectedDepth","depth","maxDepth","getMaxDepth","minDepth","getMinDepth","parentId","getParentId","newParent","slice","reverse","max","flatten","reduce","acc","flattenTree","every","findItemDeep","itemId","i","child","countChildren","count","getChildCount","removeChildrenOf","ids","excludeParentIds","filter","add"],"sources":["../../../../src/sidebar/visibility-ordering-builder/sortable-tree/utilities.ts"],"sourcesContent":["import { arrayMove } from '@dnd-kit/sortable';\nimport type { Column } from '@deephaven/jsapi-shim';\nimport { GridUtils, ModelSizeMap, MoveOperation } from '@deephaven/grid';\nimport type ColumnHeaderGroup from '../../../ColumnHeaderGroup';\nimport { isFlattenedTreeItem } from './types';\nimport type { FlattenedItem, TreeItem, TreeItems } from './types';\n\n/**\n * Gets the depth of an item dragged with a given x-axis offset\n *\n * @param offset x-axis offset of the dragging item\n * @param indentationWidth Width of indentation for each depth\n * @returns The drag depth for the given offset\n */\nfunction getDragDepth(offset: number, indentationWidth: number) {\n return Math.round(offset / indentationWidth);\n}\n\ninterface IrisGridTreeItemData {\n modelIndex: number | number[];\n visibleIndex: number | [number, number];\n isVisible: boolean;\n group?: ColumnHeaderGroup;\n}\n\nexport type IrisGridTreeItem = TreeItem<IrisGridTreeItemData>;\n\nexport type FlattenedIrisGridTreeItem = FlattenedItem<IrisGridTreeItemData>;\n\nfunction getTreeItem(\n columns: Column[],\n movedColumns: MoveOperation[],\n columnHeaderGroupMap: Map<string, ColumnHeaderGroup>,\n name: string,\n userColumnWidths: ModelSizeMap,\n selectedItems: Set<string>\n): IrisGridTreeItem {\n const modelIndex = columns.findIndex(col => col.name === name);\n if (modelIndex === -1) {\n const group = columnHeaderGroupMap.get(name);\n\n if (group == null) {\n throw new Error(`Column or header group not found: ${name}`);\n }\n\n const modelIndexes = group.childIndexes.flat();\n\n return {\n id: name,\n selected: selectedItems.has(name),\n children: group.children\n .map(childName =>\n getTreeItem(\n columns,\n movedColumns,\n columnHeaderGroupMap,\n childName,\n userColumnWidths,\n selectedItems\n )\n )\n .sort((a, b) => {\n const aVal = Array.isArray(a.data.visibleIndex)\n ? a.data.visibleIndex[0]\n : a.data.visibleIndex;\n const bVal = Array.isArray(b.data.visibleIndex)\n ? b.data.visibleIndex[0]\n : b.data.visibleIndex;\n return aVal - bVal;\n }),\n data: {\n modelIndex: modelIndexes,\n visibleIndex: group.getVisibleRange(movedColumns),\n group,\n isVisible: modelIndexes.some(\n // If no user set width, assume it's visible\n index => (userColumnWidths.get(index) ?? 1) > 0\n ),\n },\n };\n }\n\n return {\n id: name,\n children: [],\n selected: selectedItems.has(name),\n data: {\n modelIndex,\n visibleIndex: GridUtils.getVisibleIndex(modelIndex, movedColumns),\n // If no user set width, assume it's visible\n isVisible: (userColumnWidths.get(modelIndex) ?? 1) > 0,\n },\n };\n}\n\nexport function getTreeItems(\n columns: Column[],\n movedColumns: MoveOperation[],\n columnHeaderGroups: ColumnHeaderGroup[],\n userColumnWidths: ModelSizeMap,\n selectedItems: string[]\n): IrisGridTreeItem[] {\n const items: IrisGridTreeItem[] = [];\n const selectedItemsSet = new Set(selectedItems);\n const groupMap = new Map(\n columnHeaderGroups.map(group => [group.name, group])\n );\n\n let visibleIndex = 0;\n while (visibleIndex < columns.length) {\n const modelIndex = GridUtils.getModelIndex(visibleIndex, movedColumns);\n const columnName = columns[modelIndex].name;\n\n let group = columnHeaderGroups.find(({ children }) =>\n children.includes(columnName)\n );\n while (group !== undefined && group.parent !== undefined) {\n group = groupMap.get(group.parent);\n }\n\n const item = getTreeItem(\n columns,\n movedColumns,\n groupMap,\n group ? group.name : columnName,\n userColumnWidths,\n selectedItemsSet\n );\n\n items.push(item);\n\n if (Array.isArray(item.data.visibleIndex)) {\n visibleIndex += item.data.visibleIndex[1] - item.data.visibleIndex[0] + 1;\n } else {\n visibleIndex += 1;\n }\n }\n\n return items;\n}\n\n/**\n * Gets the projected drop position and depth of the dragged item\n *\n * @param items List of flattened items\n * @param activeId ID of the actively dragged item\n * @param overId ID of the item currently being dragged over\n * @param dragOffset The x-axis offset of the dragged item\n * @param indentationWidth The width for each level of the tree\n * @returns The projected position and depth if the item were to be dropped\n */\nexport function getProjection(\n items: FlattenedItem[],\n activeId: string,\n overId: string,\n dragOffset: number,\n indentationWidth: number\n) {\n const overItemIndex = items.findIndex(({ id }) => id === overId);\n const activeItemIndex = items.findIndex(({ id }) => id === activeId);\n const activeItem = items[activeItemIndex];\n const newItems = arrayMove(items, activeItemIndex, overItemIndex);\n const previousItem: FlattenedItem | undefined = newItems[overItemIndex - 1];\n const nextItem = newItems[overItemIndex + 1];\n const dragDepth = getDragDepth(dragOffset, indentationWidth);\n const projectedDepth = activeItem.depth + dragDepth;\n const maxDepth = getMaxDepth({\n previousItem,\n nextItem,\n });\n const minDepth = getMinDepth({ nextItem });\n let depth = projectedDepth;\n\n if (projectedDepth >= maxDepth) {\n depth = maxDepth;\n } else if (projectedDepth < minDepth) {\n depth = minDepth;\n }\n\n return { depth, maxDepth, minDepth, parentId: getParentId() };\n\n function getParentId() {\n if (depth === 0 || !previousItem) {\n return null;\n }\n\n if (depth === previousItem.depth) {\n return previousItem.parentId;\n }\n\n if (depth > previousItem.depth) {\n return previousItem.id;\n }\n\n const newParent = newItems\n .slice(0, overItemIndex)\n .reverse()\n .find(item => item.depth === depth)?.parentId;\n\n return newParent ?? null;\n }\n}\n\nfunction getMaxDepth({\n previousItem,\n nextItem,\n}: {\n previousItem?: FlattenedItem;\n nextItem?: FlattenedItem;\n}) {\n return Math.max(previousItem?.depth ?? 0, nextItem?.depth ?? 0);\n}\n\nfunction getMinDepth({ nextItem }: { nextItem: FlattenedItem | undefined }) {\n if (nextItem) {\n return nextItem.depth;\n }\n\n return 0;\n}\n\n/**\n * Helper function to recursively flatten a tree\n *\n * @param items Items to flatten\n * @param parentId The current parentId of the items\n * @param depth The current depth of the items\n * @returns Flattened items\n */\nfunction flatten<T>(\n items: TreeItems<T>,\n parentId: string | null = null,\n depth = 0\n): FlattenedItem<T>[] {\n return items.reduce<FlattenedItem<T>[]>(\n (acc, item, index) => [\n ...acc,\n { ...item, parentId, depth, index },\n ...flatten(item.children, item.id, depth + 1),\n ],\n []\n );\n}\n\n/**\n * Flattens a tree into a 1D array given the items\n * @param items The tree items to flatten\n * @returns The flattened tree items list\n */\nexport function flattenTree<T>(items: TreeItems<T>): FlattenedItem<T>[] {\n // Should help prevent double flattening since FlattenedItems are valid TreeItems\n if (items.every(isFlattenedTreeItem)) {\n return items;\n }\n return flatten(items);\n}\n\n/**\n * Recursively checks for the item in a list of items.\n * The list does not have to be flattened prior to searching.\n *\n * @param items Items to search\n * @param itemId Item to find\n * @returns The item if found\n */\nexport function findItemDeep(\n items: TreeItems,\n itemId: string\n): TreeItem | undefined {\n for (let i = 0; i < items.length; i += 1) {\n const item = items[i];\n const { id, children } = item;\n\n if (id === itemId) {\n return item;\n }\n\n if (children.length) {\n const child = findItemDeep(children, itemId);\n\n if (child) {\n return child;\n }\n }\n }\n\n return undefined;\n}\n\nfunction countChildren(items: TreeItem[], count = 0): number {\n return items.reduce((acc, { children }) => {\n if (children.length) {\n return countChildren(children, acc + 1);\n }\n\n return acc + 1;\n }, count);\n}\n\nexport function getChildCount(items: TreeItems, id: string): number {\n const item = findItemDeep(items, id);\n\n return item ? countChildren(item.children) : 0;\n}\n\n/**\n * Removes the children of the list of parents from the list of flattened items\n *\n * @param items The flattened items to remove from\n * @param ids The parents we want to remove the children of\n * @returns The flattened items without the children of the parents\n */\nexport function removeChildrenOf<T>(\n items: FlattenedItem<T>[],\n ids: string[]\n): FlattenedItem<T>[] {\n const excludeParentIds = new Set(ids);\n\n return items.filter(item => {\n if (item.parentId != null && excludeParentIds.has(item.parentId)) {\n if (item.children.length) {\n excludeParentIds.add(item.id);\n }\n return false;\n }\n\n return true;\n });\n}\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deephaven/iris-grid",
3
- "version": "0.24.1-hierarchical-table.0+e16c3e0",
3
+ "version": "0.25.1-beta.0+e8da34e",
4
4
  "description": "Deephaven Iris Grid",
5
5
  "author": "Deephaven Data Labs LLC",
6
6
  "license": "Apache-2.0",
@@ -23,17 +23,20 @@
23
23
  "build:sass": "sass --embed-sources --load-path=../../node_modules ./src:./dist"
24
24
  },
25
25
  "dependencies": {
26
- "@deephaven/components": "^0.24.1-hierarchical-table.0+e16c3e0",
27
- "@deephaven/console": "^0.24.1-hierarchical-table.0+e16c3e0",
28
- "@deephaven/filters": "^0.24.1-hierarchical-table.0+e16c3e0",
29
- "@deephaven/grid": "^0.24.1-hierarchical-table.0+e16c3e0",
30
- "@deephaven/icons": "^0.24.1-hierarchical-table.0+e16c3e0",
31
- "@deephaven/jsapi-shim": "^0.24.1-hierarchical-table.0+e16c3e0",
32
- "@deephaven/jsapi-utils": "^0.24.1-hierarchical-table.0+e16c3e0",
33
- "@deephaven/log": "^0.24.1-hierarchical-table.0+e16c3e0",
34
- "@deephaven/react-hooks": "^0.24.1-hierarchical-table.0+e16c3e0",
35
- "@deephaven/storage": "^0.24.1-hierarchical-table.0+e16c3e0",
36
- "@deephaven/utils": "^0.24.1-hierarchical-table.0+e16c3e0",
26
+ "@deephaven/components": "^0.25.1-beta.0+e8da34e",
27
+ "@deephaven/console": "^0.25.1-beta.0+e8da34e",
28
+ "@deephaven/filters": "^0.25.1-beta.0+e8da34e",
29
+ "@deephaven/grid": "^0.25.1-beta.0+e8da34e",
30
+ "@deephaven/icons": "^0.25.1-beta.0+e8da34e",
31
+ "@deephaven/jsapi-shim": "^0.25.1-beta.0+e8da34e",
32
+ "@deephaven/jsapi-utils": "^0.25.1-beta.0+e8da34e",
33
+ "@deephaven/log": "^0.25.1-beta.0+e8da34e",
34
+ "@deephaven/react-hooks": "^0.25.1-beta.0+e8da34e",
35
+ "@deephaven/storage": "^0.25.1-beta.0+e8da34e",
36
+ "@deephaven/utils": "^0.25.1-beta.0+e8da34e",
37
+ "@dnd-kit/core": "^6.0.5",
38
+ "@dnd-kit/sortable": "^7.0.0",
39
+ "@dnd-kit/utilities": "^3.2.0",
37
40
  "@fortawesome/react-fontawesome": "^0.2.0",
38
41
  "classnames": "^2.3.1",
39
42
  "deep-equal": "^2.0.5",
@@ -50,11 +53,12 @@
50
53
  "web-streams-polyfill": "^2.1.0"
51
54
  },
52
55
  "peerDependencies": {
53
- "react": "^17.x"
56
+ "react": "^17.x",
57
+ "react-dom": "^17.x"
54
58
  },
55
59
  "devDependencies": {
56
- "@deephaven/mocks": "^0.24.1-hierarchical-table.0+e16c3e0",
57
- "@deephaven/tsconfig": "^0.24.1-hierarchical-table.0+e16c3e0"
60
+ "@deephaven/mocks": "^0.25.1-beta.0+e8da34e",
61
+ "@deephaven/tsconfig": "^0.25.1-beta.0+e8da34e"
58
62
  },
59
63
  "files": [
60
64
  "dist"
@@ -65,5 +69,5 @@
65
69
  "publishConfig": {
66
70
  "access": "public"
67
71
  },
68
- "gitHead": "e16c3e06bff256387fe676e36aeeeac19e47ff5b"
72
+ "gitHead": "e8da34e9b99e4af6c485c4f714ae1dcd02a97e95"
69
73
  }
@@ -1,156 +0,0 @@
1
- /* stylelint-disable scss/at-import-no-partial-leading-underscore */
2
- .visibility-ordering-builder {
3
- display: flex;
4
- flex-direction: column;
5
- height: 100%;
6
- max-height: 100%;
7
- outline: 0;
8
- }
9
- .visibility-ordering-builder .top-menu {
10
- display: flex;
11
- flex-direction: row;
12
- justify-content: space-between;
13
- background-color: #2d2a2e;
14
- padding: 0.25rem;
15
- z-index: 2;
16
- }
17
- .visibility-ordering-builder .visibility-ordering-list {
18
- overflow-y: auto;
19
- flex-grow: 1;
20
- }
21
- .visibility-ordering-builder .visibility-ordering-list.isDragging {
22
- background-image: linear-gradient(to right, #1a171a 50%, #f0f0ee 50%), linear-gradient(to right, #1a171a 50%, #f0f0ee 50%), linear-gradient(to bottom, #1a171a 50%, #f0f0ee 50%), linear-gradient(to bottom, #1a171a 50%, #f0f0ee 50%);
23
- background-size: 8px 1px, 8px 1px, 1px 8px, 1px 8px;
24
- background-position: 0 top, 0 bottom, left 0, right 0;
25
- background-repeat: repeat-x, repeat-x, repeat-y, repeat-y;
26
- animation: march 0.5s;
27
- animation-timing-function: linear;
28
- animation-iteration-count: infinite;
29
- }
30
- .visibility-ordering-builder .visibility-ordering-list hr {
31
- margin: 0.5rem 0;
32
- background-color: #2d2a2e;
33
- }
34
- .visibility-ordering-builder .visibility-ordering-list-item {
35
- display: flex;
36
- flex-direction: row;
37
- margin-bottom: 2px;
38
- padding-left: 0.25rem;
39
- }
40
- .visibility-ordering-builder .visibility-ordering-list-item:first-child {
41
- padding-top: 0.25rem;
42
- }
43
- .visibility-ordering-builder .visibility-ordering-list-item .column-item {
44
- border-radius: 4px;
45
- display: flex;
46
- justify-content: space-between;
47
- padding: 0 0.5rem;
48
- flex-grow: 2;
49
- align-items: center;
50
- user-select: none;
51
- transition: color 0.12s ease-in-out, background-color 0.12s ease-in-out, border-color 0.12s ease-in-out, box-shadow 0.12s ease-in-out;
52
- border: 1px solid transparent;
53
- line-height: 1.5;
54
- max-width: calc(100% - 1rem * 2);
55
- }
56
- .visibility-ordering-builder .visibility-ordering-list-item .column-item .column-name {
57
- overflow-x: hidden;
58
- text-overflow: ellipsis;
59
- padding-right: 2px;
60
- }
61
- .visibility-ordering-builder .visibility-ordering-list-item .column-item:focus {
62
- outline: 0;
63
- border: 1px solid rgba(72, 120, 234, 0.85);
64
- box-shadow: 0 0 0 0.2rem rgba(72, 120, 234, 0.35);
65
- }
66
- .visibility-ordering-builder .visibility-ordering-list-item .column-item .fa-grip-vertical {
67
- color: #929192;
68
- }
69
- .visibility-ordering-builder .visibility-ordering-list-item .column-item:hover {
70
- background: #5b5a5c;
71
- }
72
- .visibility-ordering-builder .visibility-ordering-list-item .column-item:hover .fa-grip-vertical {
73
- color: #f0f0ee;
74
- }
75
- .visibility-ordering-builder .visibility-ordering-list-item.immovable .column-item {
76
- color: #929192;
77
- padding-left: 32px;
78
- }
79
- .visibility-ordering-builder .visibility-ordering-list-item.immovable .column-item:hover {
80
- background: transparent;
81
- }
82
- .visibility-ordering-builder .visibility-ordering-list-item .isSelected {
83
- background-color: rgba(72, 120, 234, 0.4);
84
- }
85
- .visibility-ordering-builder .visibility-ordering-list-item .isSelected:hover {
86
- background-color: #4878ea;
87
- }
88
- .visibility-ordering-builder .visibility-ordering-list-item .isSelected.isDragging {
89
- opacity: 0.4;
90
- }
91
- .visibility-ordering-builder .visibility-ordering-list-item .isSelected.isDragging.isDragged {
92
- opacity: 1;
93
- color: #f0f0ee;
94
- background-color: #4878ea;
95
- position: relative;
96
- box-shadow: 0 0.1rem 1rem rgba(26, 23, 26, 0.45);
97
- }
98
- .visibility-ordering-builder .visibility-ordering-list-item .isSelected.isDragging.isDragged .fa-grip-vertical {
99
- color: #f0f0ee;
100
- }
101
- .visibility-ordering-builder .visibility-ordering-list-item .isSelected.isDragging.isDragged.two-dragged::before {
102
- content: " ";
103
- background: #4878ea;
104
- box-shadow: 0 0.1rem 1rem rgba(26, 23, 26, 0.45);
105
- border-radius: 4px;
106
- position: absolute;
107
- height: 100%;
108
- width: 100%;
109
- top: 4px;
110
- left: 2px;
111
- opacity: 0.8;
112
- z-index: -1;
113
- }
114
- .visibility-ordering-builder .visibility-ordering-list-item .isSelected.isDragging.isDragged.multiple-dragged::before {
115
- content: " ";
116
- background: #4878ea;
117
- box-shadow: 0 0.1rem 1rem rgba(26, 23, 26, 0.45);
118
- border-radius: 4px;
119
- position: absolute;
120
- height: 100%;
121
- width: 100%;
122
- top: 4px;
123
- left: 2px;
124
- opacity: 0.8;
125
- z-index: -1;
126
- }
127
- .visibility-ordering-builder .visibility-ordering-list-item .isSelected.isDragging.isDragged.multiple-dragged::after {
128
- content: " ";
129
- background: #4878ea;
130
- box-shadow: 0 0.1rem 1rem rgba(26, 23, 26, 0.45);
131
- border-radius: 4px;
132
- position: absolute;
133
- height: 100%;
134
- width: 100%;
135
- top: 8px;
136
- left: 4px;
137
- opacity: 0.6;
138
- z-index: -2;
139
- }
140
- .visibility-ordering-builder .visibility-ordering-list-item .number-badge {
141
- padding: 0 0.5rem;
142
- border-radius: 1rem;
143
- background-color: rgba(240, 240, 238, 0.25);
144
- margin-right: 0.25rem;
145
- }
146
- .visibility-ordering-builder .vertical-divider {
147
- border-left: 1px solid #1a171a;
148
- padding-right: 0.25rem;
149
- margin-left: 0.25rem;
150
- height: 1rem;
151
- }
152
- .visibility-ordering-builder .list {
153
- flex-grow: 2;
154
- }
155
-
156
- /*# sourceMappingURL=VisibilityOrderingBuilder.css.map */