@deephaven/iris-grid 0.24.1-hierarchical-table.0 → 0.25.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.
- package/dist/ColumnHeaderGroup.d.ts +10 -3
- package/dist/ColumnHeaderGroup.d.ts.map +1 -1
- package/dist/ColumnHeaderGroup.js +20 -1
- package/dist/ColumnHeaderGroup.js.map +1 -1
- package/dist/IrisGrid.css.map +1 -1
- package/dist/IrisGrid.d.ts +6 -3
- package/dist/IrisGrid.d.ts.map +1 -1
- package/dist/IrisGrid.js +42 -25
- package/dist/IrisGrid.js.map +1 -1
- package/dist/IrisGridModel.d.ts +9 -2
- package/dist/IrisGridModel.d.ts.map +1 -1
- package/dist/IrisGridModel.js +0 -13
- package/dist/IrisGridModel.js.map +1 -1
- package/dist/IrisGridModelUpdater.d.ts +3 -1
- package/dist/IrisGridModelUpdater.d.ts.map +1 -1
- package/dist/IrisGridModelUpdater.js +5 -1
- package/dist/IrisGridModelUpdater.js.map +1 -1
- package/dist/IrisGridProxyModel.d.ts +7 -2
- package/dist/IrisGridProxyModel.d.ts.map +1 -1
- package/dist/IrisGridProxyModel.js +16 -4
- package/dist/IrisGridProxyModel.js.map +1 -1
- package/dist/IrisGridTableModel.d.ts +1 -1
- package/dist/IrisGridTableModel.d.ts.map +1 -1
- package/dist/IrisGridTableModel.js.map +1 -1
- package/dist/IrisGridTableModelTemplate.d.ts +18 -9
- package/dist/IrisGridTableModelTemplate.d.ts.map +1 -1
- package/dist/IrisGridTableModelTemplate.js +143 -165
- package/dist/IrisGridTableModelTemplate.js.map +1 -1
- package/dist/IrisGridTestUtils.d.ts +8 -2
- package/dist/IrisGridTestUtils.d.ts.map +1 -1
- package/dist/IrisGridTestUtils.js +9 -4
- package/dist/IrisGridTestUtils.js.map +1 -1
- package/dist/IrisGridTheme.module.css.map +1 -1
- package/dist/IrisGridUtils.d.ts +16 -2
- package/dist/IrisGridUtils.d.ts.map +1 -1
- package/dist/IrisGridUtils.js +151 -48
- package/dist/IrisGridUtils.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/sidebar/index.d.ts +1 -1
- package/dist/sidebar/index.d.ts.map +1 -1
- package/dist/sidebar/index.js +1 -1
- package/dist/sidebar/index.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.css +68 -0
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.css.map +1 -0
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.d.ts +156 -0
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.d.ts.map +1 -0
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.js +962 -0
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.js.map +1 -0
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilderUtils.d.ts +26 -0
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilderUtils.d.ts.map +1 -0
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilderUtils.js +130 -0
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilderUtils.js.map +1 -0
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingGroup.css +29 -0
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingGroup.css.map +1 -0
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingGroup.d.ts +13 -0
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingGroup.d.ts.map +1 -0
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingGroup.js +160 -0
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingGroup.js.map +1 -0
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingItem.d.ts +19 -0
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingItem.d.ts.map +1 -0
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingItem.js +81 -0
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingItem.js.map +1 -0
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/PointerSensorWithInteraction.d.ts +13 -0
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/PointerSensorWithInteraction.d.ts.map +1 -0
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/PointerSensorWithInteraction.js +28 -0
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/PointerSensorWithInteraction.js.map +1 -0
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTree.d.ts +18 -0
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTree.d.ts.map +1 -0
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTree.js +156 -0
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTree.js.map +1 -0
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeInner.d.ts +19 -0
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeInner.d.ts.map +1 -0
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeInner.js +144 -0
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeInner.js.map +1 -0
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeItem.d.ts +7 -0
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeItem.d.ts.map +1 -0
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeItem.js +57 -0
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeItem.js.map +1 -0
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/TreeItem.css +139 -0
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/TreeItem.css.map +1 -0
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/TreeItem.d.ts +36 -0
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/TreeItem.d.ts.map +1 -0
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/TreeItem.js +44 -0
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/TreeItem.js.map +1 -0
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/keyboardCoordinates.d.ts +4 -0
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/keyboardCoordinates.d.ts.map +1 -0
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/keyboardCoordinates.js +127 -0
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/keyboardCoordinates.js.map +1 -0
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/types.d.ts +20 -0
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/types.d.ts.map +1 -0
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/types.js +4 -0
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/types.js.map +1 -0
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/utilities.d.ts +55 -0
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/utilities.d.ts.map +1 -0
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/utilities.js +265 -0
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/utilities.js.map +1 -0
- package/package.json +20 -16
- package/dist/sidebar/VisibilityOrderingBuilder.css +0 -156
- package/dist/sidebar/VisibilityOrderingBuilder.css.map +0 -1
- package/dist/sidebar/VisibilityOrderingBuilder.d.ts +0 -79
- package/dist/sidebar/VisibilityOrderingBuilder.d.ts.map +0 -1
- package/dist/sidebar/VisibilityOrderingBuilder.js +0 -753
- 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":";;;AAAA,SAASA,SAAS,QAAQ,mBAAmB;AAE7C,SAASC,SAAS,QAAqC,iBAAiB;AAAC,SAEhEC,mBAAmB;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,YAAY,CAACC,MAAc,EAAEC,gBAAwB,EAAE;EAC9D,OAAOC,IAAI,CAACC,KAAK,CAACH,MAAM,GAAGC,gBAAgB,CAAC;AAC9C;AAaA,SAASG,WAAW,CAClBC,OAAiB,EACjBC,YAA6B,EAC7BC,oBAAoD,EACpDC,IAAY,EACZC,gBAA8B,EAC9BC,aAA0B,EACR;EAAA;EAClB,IAAMC,UAAU,GAAGN,OAAO,CAACO,SAAS,CAACC,GAAG,IAAIA,GAAG,CAACL,IAAI,KAAKA,IAAI,CAAC;EAC9D,IAAIG,UAAU,KAAK,CAAC,CAAC,EAAE;IACrB,IAAMG,KAAK,GAAGP,oBAAoB,CAACQ,GAAG,CAACP,IAAI,CAAC;IAE5C,IAAIM,KAAK,IAAI,IAAI,EAAE;MACjB,MAAM,IAAIE,KAAK,6CAAsCR,IAAI,EAAG;IAC9D;IAEA,IAAMS,YAAY,GAAGH,KAAK,CAACI,YAAY,CAACC,IAAI,EAAE;IAE9C,OAAO;MACLC,EAAE,EAAEZ,IAAI;MACRa,QAAQ,EAAEX,aAAa,CAACY,GAAG,CAACd,IAAI,CAAC;MACjCe,QAAQ,EAAET,KAAK,CAACS,QAAQ,CACrBC,GAAG,CAACC,SAAS,IACZrB,WAAW,CACTC,OAAO,EACPC,YAAY,EACZC,oBAAoB,EACpBkB,SAAS,EACThB,gBAAgB,EAChBC,aAAa,CACd,CACF,CACAgB,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAK;QACd,IAAMC,IAAI,GAAGC,KAAK,CAACC,OAAO,CAACJ,CAAC,CAACK,IAAI,CAACC,YAAY,CAAC,GAC3CN,CAAC,CAACK,IAAI,CAACC,YAAY,CAAC,CAAC,CAAC,GACtBN,CAAC,CAACK,IAAI,CAACC,YAAY;QACvB,IAAMC,IAAI,GAAGJ,KAAK,CAACC,OAAO,CAACH,CAAC,CAACI,IAAI,CAACC,YAAY,CAAC,GAC3CL,CAAC,CAACI,IAAI,CAACC,YAAY,CAAC,CAAC,CAAC,GACtBL,CAAC,CAACI,IAAI,CAACC,YAAY;QACvB,OAAOJ,IAAI,GAAGK,IAAI;MACpB,CAAC,CAAC;MACJF,IAAI,EAAE;QACJrB,UAAU,EAAEM,YAAY;QACxBgB,YAAY,EAAEnB,KAAK,CAACqB,eAAe,CAAC7B,YAAY,CAAC;QACjDQ,KAAK;QACLsB,SAAS,EAAEnB,YAAY,CAACoB,IAAI;QAC1B;QACAC,KAAK;UAAA;UAAA,OAAI,0BAAC7B,gBAAgB,CAACM,GAAG,CAACuB,KAAK,CAAC,yEAAI,CAAC,IAAI,CAAC;QAAA;MAEnD;IACF,CAAC;EACH;EAEA,OAAO;IACLlB,EAAE,EAAEZ,IAAI;IACRe,QAAQ,EAAE,EAAE;IACZF,QAAQ,EAAEX,aAAa,CAACY,GAAG,CAACd,IAAI,CAAC;IACjCwB,IAAI,EAAE;MACJrB,UAAU;MACVsB,YAAY,EAAEpC,SAAS,CAAC0C,eAAe,CAAC5B,UAAU,EAAEL,YAAY,CAAC;MACjE;MACA8B,SAAS,EAAE,2BAAC3B,gBAAgB,CAACM,GAAG,CAACJ,UAAU,CAAC,2EAAI,CAAC,IAAI;IACvD;EACF,CAAC;AACH;AAEA,OAAO,SAAS6B,YAAY,CAC1BnC,OAAiB,EACjBC,YAA6B,EAC7BmC,kBAAuC,EACvChC,gBAA8B,EAC9BC,aAAuB,EACH;EACpB,IAAMgC,KAAyB,GAAG,EAAE;EACpC,IAAMC,gBAAgB,GAAG,IAAIC,GAAG,CAAClC,aAAa,CAAC;EAC/C,IAAMmC,QAAQ,GAAG,IAAIC,GAAG,CACtBL,kBAAkB,CAACjB,GAAG,CAACV,KAAK,IAAI,CAACA,KAAK,CAACN,IAAI,EAAEM,KAAK,CAAC,CAAC,CACrD;EAED,IAAImB,YAAY,GAAG,CAAC;EAAC;IAEnB,IAAMtB,UAAU,GAAGd,SAAS,CAACkD,aAAa,CAACd,YAAY,EAAE3B,YAAY,CAAC;IACtE,IAAM0C,UAAU,GAAG3C,OAAO,CAACM,UAAU,CAAC,CAACH,IAAI;IAE3C,IAAIM,KAAK,GAAG2B,kBAAkB,CAACQ,IAAI,CAAC;MAAA,IAAC;QAAE1B;MAAS,CAAC;MAAA,OAC/CA,QAAQ,CAAC2B,QAAQ,CAACF,UAAU,CAAC;IAAA,EAC9B;IACD,OAAOlC,KAAK,KAAKqC,SAAS,IAAIrC,KAAK,CAACsC,MAAM,KAAKD,SAAS,EAAE;MACxDrC,KAAK,GAAG+B,QAAQ,CAAC9B,GAAG,CAACD,KAAK,CAACsC,MAAM,CAAC;IACpC;IAEA,IAAMC,IAAI,GAAGjD,WAAW,CACtBC,OAAO,EACPC,YAAY,EACZuC,QAAQ,EACR/B,KAAK,GAAGA,KAAK,CAACN,IAAI,GAAGwC,UAAU,EAC/BvC,gBAAgB,EAChBkC,gBAAgB,CACjB;IAEDD,KAAK,CAACY,IAAI,CAACD,IAAI,CAAC;IAEhB,IAAIvB,KAAK,CAACC,OAAO,CAACsB,IAAI,CAACrB,IAAI,CAACC,YAAY,CAAC,EAAE;MACzCA,YAAY,IAAIoB,IAAI,CAACrB,IAAI,CAACC,YAAY,CAAC,CAAC,CAAC,GAAGoB,IAAI,CAACrB,IAAI,CAACC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC;IAC3E,CAAC,MAAM;MACLA,YAAY,IAAI,CAAC;IACnB;EAAC;EA1BH,OAAOA,YAAY,GAAG5B,OAAO,CAACkD,MAAM,EAAE;IAAA;EA2BtC;EAEA,OAAOb,KAAK;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASc,aAAa,CAC3Bd,KAAsB,EACtBe,QAAgB,EAChBC,MAAc,EACdC,UAAkB,EAClB1D,gBAAwB,EACxB;EACA,IAAM2D,aAAa,GAAGlB,KAAK,CAAC9B,SAAS,CAAC;IAAA,IAAC;MAAEQ;IAAG,CAAC;IAAA,OAAKA,EAAE,KAAKsC,MAAM;EAAA,EAAC;EAChE,IAAMG,eAAe,GAAGnB,KAAK,CAAC9B,SAAS,CAAC;IAAA,IAAC;MAAEQ;IAAG,CAAC;IAAA,OAAKA,EAAE,KAAKqC,QAAQ;EAAA,EAAC;EACpE,IAAMK,UAAU,GAAGpB,KAAK,CAACmB,eAAe,CAAC;EACzC,IAAME,QAAQ,GAAGnE,SAAS,CAAC8C,KAAK,EAAEmB,eAAe,EAAED,aAAa,CAAC;EACjE,IAAMI,YAAuC,GAAGD,QAAQ,CAACH,aAAa,GAAG,CAAC,CAAC;EAC3E,IAAMK,QAAQ,GAAGF,QAAQ,CAACH,aAAa,GAAG,CAAC,CAAC;EAC5C,IAAMM,SAAS,GAAGnE,YAAY,CAAC4D,UAAU,EAAE1D,gBAAgB,CAAC;EAC5D,IAAMkE,cAAc,GAAGL,UAAU,CAACM,KAAK,GAAGF,SAAS;EACnD,IAAMG,QAAQ,GAAGC,WAAW,CAAC;IAC3BN,YAAY;IACZC;EACF,CAAC,CAAC;EACF,IAAMM,QAAQ,GAAGC,WAAW,CAAC;IAAEP;EAAS,CAAC,CAAC;EAC1C,IAAIG,KAAK,GAAGD,cAAc;EAE1B,IAAIA,cAAc,IAAIE,QAAQ,EAAE;IAC9BD,KAAK,GAAGC,QAAQ;EAClB,CAAC,MAAM,IAAIF,cAAc,GAAGI,QAAQ,EAAE;IACpCH,KAAK,GAAGG,QAAQ;EAClB;EAEA,OAAO;IAAEH,KAAK;IAAEC,QAAQ;IAAEE,QAAQ;IAAEE,QAAQ,EAAEC,WAAW;EAAG,CAAC;EAE7D,SAASA,WAAW,GAAG;IAAA;IACrB,IAAIN,KAAK,KAAK,CAAC,IAAI,CAACJ,YAAY,EAAE;MAChC,OAAO,IAAI;IACb;IAEA,IAAII,KAAK,KAAKJ,YAAY,CAACI,KAAK,EAAE;MAChC,OAAOJ,YAAY,CAACS,QAAQ;IAC9B;IAEA,IAAIL,KAAK,GAAGJ,YAAY,CAACI,KAAK,EAAE;MAC9B,OAAOJ,YAAY,CAAC5C,EAAE;IACxB;IAEA,IAAMuD,SAAS,4BAAGZ,QAAQ,CACvBa,KAAK,CAAC,CAAC,EAAEhB,aAAa,CAAC,CACvBiB,OAAO,EAAE,CACT5B,IAAI,CAACI,IAAI,IAAIA,IAAI,CAACe,KAAK,KAAKA,KAAK,CAAC,0DAHnB,sBAGqBK,QAAQ;IAE/C,OAAOE,SAAS,aAATA,SAAS,cAATA,SAAS,GAAI,IAAI;EAC1B;AACF;AAEA,SAASL,WAAW,QAMjB;EAAA;EAAA,IANkB;IACnBN,YAAY;IACZC;EAIF,CAAC;EACC,OAAO/D,IAAI,CAAC4E,GAAG,wBAACd,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEI,KAAK,qEAAI,CAAC,qBAAEH,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEG,KAAK,6DAAI,CAAC,CAAC;AACjE;AAEA,SAASI,WAAW,QAAwD;EAAA,IAAvD;IAAEP;EAAkD,CAAC;EACxE,IAAIA,QAAQ,EAAE;IACZ,OAAOA,QAAQ,CAACG,KAAK;EACvB;EAEA,OAAO,CAAC;AACV;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASW,OAAO,CACdrC,KAAmB,EAGC;EAAA,IAFpB+B,QAAuB,uEAAG,IAAI;EAAA,IAC9BL,KAAK,uEAAG,CAAC;EAET,OAAO1B,KAAK,CAACsC,MAAM,CACjB,CAACC,GAAG,EAAE5B,IAAI,EAAEf,KAAK,KAAK,CACpB,GAAG2C,GAAG,kCACD5B,IAAI;IAAEoB,QAAQ;IAAEL,KAAK;IAAE9B;EAAK,IACjC,GAAGyC,OAAO,CAAC1B,IAAI,CAAC9B,QAAQ,EAAE8B,IAAI,CAACjC,EAAE,EAAEgD,KAAK,GAAG,CAAC,CAAC,CAC9C,EACD,EAAE,CACH;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASc,WAAW,CAAIxC,KAAmB,EAAsB;EACtE;EACA,IAAIA,KAAK,CAACyC,KAAK,CAACrF,mBAAmB,CAAC,EAAE;IACpC,OAAO4C,KAAK;EACd;EACA,OAAOqC,OAAO,CAACrC,KAAK,CAAC;AACvB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAAS0C,YAAY,CAC1B1C,KAAgB,EAChB2C,MAAc,EACQ;EACtB,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG5C,KAAK,CAACa,MAAM,EAAE+B,CAAC,IAAI,CAAC,EAAE;IACxC,IAAMjC,IAAI,GAAGX,KAAK,CAAC4C,CAAC,CAAC;IACrB,IAAM;MAAElE,EAAE;MAAEG;IAAS,CAAC,GAAG8B,IAAI;IAE7B,IAAIjC,EAAE,KAAKiE,MAAM,EAAE;MACjB,OAAOhC,IAAI;IACb;IAEA,IAAI9B,QAAQ,CAACgC,MAAM,EAAE;MACnB,IAAMgC,KAAK,GAAGH,YAAY,CAAC7D,QAAQ,EAAE8D,MAAM,CAAC;MAE5C,IAAIE,KAAK,EAAE;QACT,OAAOA,KAAK;MACd;IACF;EACF;EAEA,OAAOpC,SAAS;AAClB;AAEA,SAASqC,aAAa,CAAC9C,KAAiB,EAAqB;EAAA,IAAnB+C,KAAK,uEAAG,CAAC;EACjD,OAAO/C,KAAK,CAACsC,MAAM,CAAC,CAACC,GAAG,YAAmB;IAAA,IAAjB;MAAE1D;IAAS,CAAC;IACpC,IAAIA,QAAQ,CAACgC,MAAM,EAAE;MACnB,OAAOiC,aAAa,CAACjE,QAAQ,EAAE0D,GAAG,GAAG,CAAC,CAAC;IACzC;IAEA,OAAOA,GAAG,GAAG,CAAC;EAChB,CAAC,EAAEQ,KAAK,CAAC;AACX;AAEA,OAAO,SAASC,aAAa,CAAChD,KAAgB,EAAEtB,EAAU,EAAU;EAClE,IAAMiC,IAAI,GAAG+B,YAAY,CAAC1C,KAAK,EAAEtB,EAAE,CAAC;EAEpC,OAAOiC,IAAI,GAAGmC,aAAa,CAACnC,IAAI,CAAC9B,QAAQ,CAAC,GAAG,CAAC;AAChD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASoE,gBAAgB,CAC9BjD,KAAyB,EACzBkD,GAAa,EACO;EACpB,IAAMC,gBAAgB,GAAG,IAAIjD,GAAG,CAACgD,GAAG,CAAC;EAErC,OAAOlD,KAAK,CAACoD,MAAM,CAACzC,IAAI,IAAI;IAC1B,IAAIA,IAAI,CAACoB,QAAQ,IAAI,IAAI,IAAIoB,gBAAgB,CAACvE,GAAG,CAAC+B,IAAI,CAACoB,QAAQ,CAAC,EAAE;MAChE,IAAIpB,IAAI,CAAC9B,QAAQ,CAACgC,MAAM,EAAE;QACxBsC,gBAAgB,CAACE,GAAG,CAAC1C,IAAI,CAACjC,EAAE,CAAC;MAC/B;MACA,OAAO,KAAK;IACd;IAEA,OAAO,IAAI;EACb,CAAC,CAAC;AACJ"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@deephaven/iris-grid",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.25.0",
|
|
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.
|
|
27
|
-
"@deephaven/console": "^0.
|
|
28
|
-
"@deephaven/filters": "^0.
|
|
29
|
-
"@deephaven/grid": "^0.
|
|
30
|
-
"@deephaven/icons": "^0.
|
|
31
|
-
"@deephaven/jsapi-shim": "^0.
|
|
32
|
-
"@deephaven/jsapi-utils": "^0.
|
|
33
|
-
"@deephaven/log": "^0.
|
|
34
|
-
"@deephaven/react-hooks": "^0.
|
|
35
|
-
"@deephaven/storage": "^0.
|
|
36
|
-
"@deephaven/utils": "^0.
|
|
26
|
+
"@deephaven/components": "^0.25.0",
|
|
27
|
+
"@deephaven/console": "^0.25.0",
|
|
28
|
+
"@deephaven/filters": "^0.25.0",
|
|
29
|
+
"@deephaven/grid": "^0.25.0",
|
|
30
|
+
"@deephaven/icons": "^0.25.0",
|
|
31
|
+
"@deephaven/jsapi-shim": "^0.25.0",
|
|
32
|
+
"@deephaven/jsapi-utils": "^0.25.0",
|
|
33
|
+
"@deephaven/log": "^0.25.0",
|
|
34
|
+
"@deephaven/react-hooks": "^0.25.0",
|
|
35
|
+
"@deephaven/storage": "^0.25.0",
|
|
36
|
+
"@deephaven/utils": "^0.25.0",
|
|
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.
|
|
57
|
-
"@deephaven/tsconfig": "^0.
|
|
60
|
+
"@deephaven/mocks": "^0.25.0",
|
|
61
|
+
"@deephaven/tsconfig": "^0.25.0"
|
|
58
62
|
},
|
|
59
63
|
"files": [
|
|
60
64
|
"dist"
|
|
@@ -65,5 +69,5 @@
|
|
|
65
69
|
"publishConfig": {
|
|
66
70
|
"access": "public"
|
|
67
71
|
},
|
|
68
|
-
"gitHead": "
|
|
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 */
|