@deephaven/iris-grid 0.42.1-beta.4 → 0.43.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 (277) hide show
  1. package/package.json +15 -15
  2. package/dist/AdvancedFilterCreator.css +0 -106
  3. package/dist/AdvancedFilterCreator.css.map +0 -1
  4. package/dist/AdvancedFilterCreator.js +0 -541
  5. package/dist/AdvancedFilterCreator.js.map +0 -1
  6. package/dist/AdvancedFilterCreatorFilterItem.css +0 -9
  7. package/dist/AdvancedFilterCreatorFilterItem.css.map +0 -1
  8. package/dist/AdvancedFilterCreatorFilterItem.js +0 -184
  9. package/dist/AdvancedFilterCreatorFilterItem.js.map +0 -1
  10. package/dist/AdvancedFilterCreatorSelectValue.css +0 -50
  11. package/dist/AdvancedFilterCreatorSelectValue.css.map +0 -1
  12. package/dist/AdvancedFilterCreatorSelectValue.js +0 -301
  13. package/dist/AdvancedFilterCreatorSelectValue.js.map +0 -1
  14. package/dist/AdvancedFilterCreatorSelectValueList.js +0 -272
  15. package/dist/AdvancedFilterCreatorSelectValueList.js.map +0 -1
  16. package/dist/ColumnHeaderGroup.js +0 -61
  17. package/dist/ColumnHeaderGroup.js.map +0 -1
  18. package/dist/ColumnStatistics.css +0 -76
  19. package/dist/ColumnStatistics.css.map +0 -1
  20. package/dist/ColumnStatistics.js +0 -202
  21. package/dist/ColumnStatistics.js.map +0 -1
  22. package/dist/CommonTypes.js +0 -2
  23. package/dist/CommonTypes.js.map +0 -1
  24. package/dist/CrossColumnSearch.css +0 -35
  25. package/dist/CrossColumnSearch.css.map +0 -1
  26. package/dist/CrossColumnSearch.js +0 -199
  27. package/dist/CrossColumnSearch.js.map +0 -1
  28. package/dist/FilterInputField.css +0 -56
  29. package/dist/FilterInputField.css.map +0 -1
  30. package/dist/FilterInputField.js +0 -232
  31. package/dist/FilterInputField.js.map +0 -1
  32. package/dist/GotoRow.css +0 -45
  33. package/dist/GotoRow.css.map +0 -1
  34. package/dist/GotoRow.js +0 -298
  35. package/dist/GotoRow.js.map +0 -1
  36. package/dist/IrisGrid.css +0 -359
  37. package/dist/IrisGrid.css.map +0 -1
  38. package/dist/IrisGrid.js +0 -3651
  39. package/dist/IrisGrid.js.map +0 -1
  40. package/dist/IrisGridBottomBar.css +0 -85
  41. package/dist/IrisGridBottomBar.css.map +0 -1
  42. package/dist/IrisGridBottomBar.js +0 -36
  43. package/dist/IrisGridBottomBar.js.map +0 -1
  44. package/dist/IrisGridCellOverflowModal.css +0 -17
  45. package/dist/IrisGridCellOverflowModal.css.map +0 -1
  46. package/dist/IrisGridCellOverflowModal.js +0 -157
  47. package/dist/IrisGridCellOverflowModal.js.map +0 -1
  48. package/dist/IrisGridCellRendererUtils.js +0 -20
  49. package/dist/IrisGridCellRendererUtils.js.map +0 -1
  50. package/dist/IrisGridCopyHandler.css +0 -64
  51. package/dist/IrisGridCopyHandler.css.map +0 -1
  52. package/dist/IrisGridCopyHandler.js +0 -331
  53. package/dist/IrisGridCopyHandler.js.map +0 -1
  54. package/dist/IrisGridDataBarCellRenderer.js +0 -10
  55. package/dist/IrisGridDataBarCellRenderer.js.map +0 -1
  56. package/dist/IrisGridIcons.js +0 -25
  57. package/dist/IrisGridIcons.js.map +0 -1
  58. package/dist/IrisGridMetricCalculator.js +0 -33
  59. package/dist/IrisGridMetricCalculator.js.map +0 -1
  60. package/dist/IrisGridModel.js +0 -263
  61. package/dist/IrisGridModel.js.map +0 -1
  62. package/dist/IrisGridModelFactory.js +0 -27
  63. package/dist/IrisGridModelFactory.js.map +0 -1
  64. package/dist/IrisGridModelUpdater.js +0 -96
  65. package/dist/IrisGridModelUpdater.js.map +0 -1
  66. package/dist/IrisGridPartitionSelector.css +0 -48
  67. package/dist/IrisGridPartitionSelector.css.map +0 -1
  68. package/dist/IrisGridPartitionSelector.js +0 -198
  69. package/dist/IrisGridPartitionSelector.js.map +0 -1
  70. package/dist/IrisGridProxyModel.js +0 -530
  71. package/dist/IrisGridProxyModel.js.map +0 -1
  72. package/dist/IrisGridRenderer.js +0 -779
  73. package/dist/IrisGridRenderer.js.map +0 -1
  74. package/dist/IrisGridShortcuts.js +0 -59
  75. package/dist/IrisGridShortcuts.js.map +0 -1
  76. package/dist/IrisGridTableModel.js +0 -273
  77. package/dist/IrisGridTableModel.js.map +0 -1
  78. package/dist/IrisGridTableModelTemplate.js +0 -1589
  79. package/dist/IrisGridTableModelTemplate.js.map +0 -1
  80. package/dist/IrisGridTestUtils.js +0 -121
  81. package/dist/IrisGridTestUtils.js.map +0 -1
  82. package/dist/IrisGridTextCellRenderer.js +0 -139
  83. package/dist/IrisGridTextCellRenderer.js.map +0 -1
  84. package/dist/IrisGridTheme.js +0 -96
  85. package/dist/IrisGridTheme.js.map +0 -1
  86. package/dist/IrisGridTheme.module.css +0 -69
  87. package/dist/IrisGridTheme.module.css.map +0 -1
  88. package/dist/IrisGridTreeTableModel.js +0 -145
  89. package/dist/IrisGridTreeTableModel.js.map +0 -1
  90. package/dist/IrisGridUtils.js +0 -1279
  91. package/dist/IrisGridUtils.js.map +0 -1
  92. package/dist/MissingKeyError.js +0 -15
  93. package/dist/MissingKeyError.js.map +0 -1
  94. package/dist/PartitionSelectorSearch.css +0 -22
  95. package/dist/PartitionSelectorSearch.css.map +0 -1
  96. package/dist/PartitionSelectorSearch.js +0 -317
  97. package/dist/PartitionSelectorSearch.js.map +0 -1
  98. package/dist/PendingDataBottomBar.css +0 -13
  99. package/dist/PendingDataBottomBar.css.map +0 -1
  100. package/dist/PendingDataBottomBar.js +0 -98
  101. package/dist/PendingDataBottomBar.js.map +0 -1
  102. package/dist/TableViewportUpdater.js +0 -156
  103. package/dist/TableViewportUpdater.js.map +0 -1
  104. package/dist/ToastBottomBar.js +0 -42
  105. package/dist/ToastBottomBar.js.map +0 -1
  106. package/dist/TreeTableViewportUpdater.js +0 -96
  107. package/dist/TreeTableViewportUpdater.js.map +0 -1
  108. package/dist/declaration.d.js +0 -2
  109. package/dist/declaration.d.js.map +0 -1
  110. package/dist/format-context-menus/CustomFormatAction.css +0 -25
  111. package/dist/format-context-menus/CustomFormatAction.css.map +0 -1
  112. package/dist/format-context-menus/CustomFormatAction.js +0 -132
  113. package/dist/format-context-menus/CustomFormatAction.js.map +0 -1
  114. package/dist/format-context-menus/DateTimeFormatContextMenu.js +0 -53
  115. package/dist/format-context-menus/DateTimeFormatContextMenu.js.map +0 -1
  116. package/dist/format-context-menus/DecimalFormatContextMenu.js +0 -59
  117. package/dist/format-context-menus/DecimalFormatContextMenu.js.map +0 -1
  118. package/dist/format-context-menus/FormatContextMenuUtils.js +0 -63
  119. package/dist/format-context-menus/FormatContextMenuUtils.js.map +0 -1
  120. package/dist/format-context-menus/IntegerFormatContextMenu.js +0 -43
  121. package/dist/format-context-menus/IntegerFormatContextMenu.js.map +0 -1
  122. package/dist/format-context-menus/index.js +0 -4
  123. package/dist/format-context-menus/index.js.map +0 -1
  124. package/dist/index.js +0 -24
  125. package/dist/index.js.map +0 -1
  126. package/dist/key-handlers/ClearFilterKeyHandler.js +0 -21
  127. package/dist/key-handlers/ClearFilterKeyHandler.js.map +0 -1
  128. package/dist/key-handlers/CopyKeyHandler.js +0 -31
  129. package/dist/key-handlers/CopyKeyHandler.js.map +0 -1
  130. package/dist/key-handlers/ReverseKeyHandler.js +0 -32
  131. package/dist/key-handlers/ReverseKeyHandler.js.map +0 -1
  132. package/dist/key-handlers/index.js +0 -4
  133. package/dist/key-handlers/index.js.map +0 -1
  134. package/dist/mousehandlers/IrisGridCellOverflowMouseHandler.js +0 -175
  135. package/dist/mousehandlers/IrisGridCellOverflowMouseHandler.js.map +0 -1
  136. package/dist/mousehandlers/IrisGridColumnSelectMouseHandler.js +0 -139
  137. package/dist/mousehandlers/IrisGridColumnSelectMouseHandler.js.map +0 -1
  138. package/dist/mousehandlers/IrisGridColumnTooltipMouseHandler.js +0 -83
  139. package/dist/mousehandlers/IrisGridColumnTooltipMouseHandler.js.map +0 -1
  140. package/dist/mousehandlers/IrisGridContextMenuHandler.css +0 -19
  141. package/dist/mousehandlers/IrisGridContextMenuHandler.css.map +0 -1
  142. package/dist/mousehandlers/IrisGridContextMenuHandler.js +0 -1220
  143. package/dist/mousehandlers/IrisGridContextMenuHandler.js.map +0 -1
  144. package/dist/mousehandlers/IrisGridDataSelectMouseHandler.js +0 -28
  145. package/dist/mousehandlers/IrisGridDataSelectMouseHandler.js.map +0 -1
  146. package/dist/mousehandlers/IrisGridFilterMouseHandler.js +0 -80
  147. package/dist/mousehandlers/IrisGridFilterMouseHandler.js.map +0 -1
  148. package/dist/mousehandlers/IrisGridRowTreeMouseHandler.js +0 -126
  149. package/dist/mousehandlers/IrisGridRowTreeMouseHandler.js.map +0 -1
  150. package/dist/mousehandlers/IrisGridSortMouseHandler.js +0 -46
  151. package/dist/mousehandlers/IrisGridSortMouseHandler.js.map +0 -1
  152. package/dist/mousehandlers/IrisGridTokenMouseHandler.js +0 -151
  153. package/dist/mousehandlers/IrisGridTokenMouseHandler.js.map +0 -1
  154. package/dist/mousehandlers/PendingMouseHandler.js +0 -39
  155. package/dist/mousehandlers/PendingMouseHandler.js.map +0 -1
  156. package/dist/mousehandlers/index.js +0 -11
  157. package/dist/mousehandlers/index.js.map +0 -1
  158. package/dist/sidebar/AdvancedSettings.js +0 -6
  159. package/dist/sidebar/AdvancedSettings.js.map +0 -1
  160. package/dist/sidebar/AdvancedSettingsMenu.js +0 -29
  161. package/dist/sidebar/AdvancedSettingsMenu.js.map +0 -1
  162. package/dist/sidebar/AdvancedSettingsType.js +0 -7
  163. package/dist/sidebar/AdvancedSettingsType.js.map +0 -1
  164. package/dist/sidebar/ChartBuilder.css +0 -56
  165. package/dist/sidebar/ChartBuilder.css.map +0 -1
  166. package/dist/sidebar/ChartBuilder.js +0 -443
  167. package/dist/sidebar/ChartBuilder.js.map +0 -1
  168. package/dist/sidebar/CustomColumnBuilder.css +0 -58
  169. package/dist/sidebar/CustomColumnBuilder.css.map +0 -1
  170. package/dist/sidebar/CustomColumnBuilder.js +0 -384
  171. package/dist/sidebar/CustomColumnBuilder.js.map +0 -1
  172. package/dist/sidebar/CustomColumnInput.js +0 -90
  173. package/dist/sidebar/CustomColumnInput.js.map +0 -1
  174. package/dist/sidebar/InputEditor.css +0 -35
  175. package/dist/sidebar/InputEditor.css.map +0 -1
  176. package/dist/sidebar/InputEditor.js +0 -177
  177. package/dist/sidebar/InputEditor.js.map +0 -1
  178. package/dist/sidebar/OptionType.js +0 -19
  179. package/dist/sidebar/OptionType.js.map +0 -1
  180. package/dist/sidebar/RollupRows.css +0 -120
  181. package/dist/sidebar/RollupRows.css.map +0 -1
  182. package/dist/sidebar/RollupRows.js +0 -519
  183. package/dist/sidebar/RollupRows.js.map +0 -1
  184. package/dist/sidebar/SelectDistinctBuilder.css +0 -41
  185. package/dist/sidebar/SelectDistinctBuilder.css.map +0 -1
  186. package/dist/sidebar/SelectDistinctBuilder.js +0 -155
  187. package/dist/sidebar/SelectDistinctBuilder.js.map +0 -1
  188. package/dist/sidebar/TableCsvExporter.css +0 -32
  189. package/dist/sidebar/TableCsvExporter.css.map +0 -1
  190. package/dist/sidebar/TableCsvExporter.js +0 -399
  191. package/dist/sidebar/TableCsvExporter.js.map +0 -1
  192. package/dist/sidebar/TableSaver.js +0 -487
  193. package/dist/sidebar/TableSaver.js.map +0 -1
  194. package/dist/sidebar/aggregations/AggregationEdit.css +0 -61
  195. package/dist/sidebar/aggregations/AggregationEdit.css.map +0 -1
  196. package/dist/sidebar/aggregations/AggregationEdit.js +0 -155
  197. package/dist/sidebar/aggregations/AggregationEdit.js.map +0 -1
  198. package/dist/sidebar/aggregations/AggregationOperation.js +0 -19
  199. package/dist/sidebar/aggregations/AggregationOperation.js.map +0 -1
  200. package/dist/sidebar/aggregations/AggregationUtils.js +0 -59
  201. package/dist/sidebar/aggregations/AggregationUtils.js.map +0 -1
  202. package/dist/sidebar/aggregations/Aggregations.css +0 -43
  203. package/dist/sidebar/aggregations/Aggregations.css.map +0 -1
  204. package/dist/sidebar/aggregations/Aggregations.js +0 -178
  205. package/dist/sidebar/aggregations/Aggregations.js.map +0 -1
  206. package/dist/sidebar/aggregations/index.js +0 -2
  207. package/dist/sidebar/aggregations/index.js.map +0 -1
  208. package/dist/sidebar/conditional-formatting/ColumnFormatEditor.js +0 -123
  209. package/dist/sidebar/conditional-formatting/ColumnFormatEditor.js.map +0 -1
  210. package/dist/sidebar/conditional-formatting/ConditionEditor.js +0 -243
  211. package/dist/sidebar/conditional-formatting/ConditionEditor.js.map +0 -1
  212. package/dist/sidebar/conditional-formatting/ConditionalFormatEditor.css +0 -22
  213. package/dist/sidebar/conditional-formatting/ConditionalFormatEditor.css.map +0 -1
  214. package/dist/sidebar/conditional-formatting/ConditionalFormatEditor.js +0 -109
  215. package/dist/sidebar/conditional-formatting/ConditionalFormatEditor.js.map +0 -1
  216. package/dist/sidebar/conditional-formatting/ConditionalFormattingAPIUtils.js +0 -18
  217. package/dist/sidebar/conditional-formatting/ConditionalFormattingAPIUtils.js.map +0 -1
  218. package/dist/sidebar/conditional-formatting/ConditionalFormattingMenu.css +0 -57
  219. package/dist/sidebar/conditional-formatting/ConditionalFormattingMenu.css.map +0 -1
  220. package/dist/sidebar/conditional-formatting/ConditionalFormattingMenu.js +0 -150
  221. package/dist/sidebar/conditional-formatting/ConditionalFormattingMenu.js.map +0 -1
  222. package/dist/sidebar/conditional-formatting/ConditionalFormattingUtils.js +0 -635
  223. package/dist/sidebar/conditional-formatting/ConditionalFormattingUtils.js.map +0 -1
  224. package/dist/sidebar/conditional-formatting/RowFormatEditor.js +0 -122
  225. package/dist/sidebar/conditional-formatting/RowFormatEditor.js.map +0 -1
  226. package/dist/sidebar/conditional-formatting/StyleEditor.css +0 -55
  227. package/dist/sidebar/conditional-formatting/StyleEditor.css.map +0 -1
  228. package/dist/sidebar/conditional-formatting/StyleEditor.js +0 -150
  229. package/dist/sidebar/conditional-formatting/StyleEditor.js.map +0 -1
  230. package/dist/sidebar/icons/BarIcon.js +0 -24
  231. package/dist/sidebar/icons/BarIcon.js.map +0 -1
  232. package/dist/sidebar/icons/FormatColumnWhereIcon.js +0 -42
  233. package/dist/sidebar/icons/FormatColumnWhereIcon.js.map +0 -1
  234. package/dist/sidebar/icons/FormatRowWhereIcon.js +0 -36
  235. package/dist/sidebar/icons/FormatRowWhereIcon.js.map +0 -1
  236. package/dist/sidebar/icons/HistogramIcon.js +0 -24
  237. package/dist/sidebar/icons/HistogramIcon.js.map +0 -1
  238. package/dist/sidebar/icons/LineIcon.js +0 -27
  239. package/dist/sidebar/icons/LineIcon.js.map +0 -1
  240. package/dist/sidebar/icons/PieIcon.js +0 -24
  241. package/dist/sidebar/icons/PieIcon.js.map +0 -1
  242. package/dist/sidebar/icons/ScatterIcon.js +0 -74
  243. package/dist/sidebar/icons/ScatterIcon.js.map +0 -1
  244. package/dist/sidebar/icons/index.js +0 -8
  245. package/dist/sidebar/icons/index.js.map +0 -1
  246. package/dist/sidebar/index.js +0 -18
  247. package/dist/sidebar/index.js.map +0 -1
  248. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.css +0 -68
  249. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.css.map +0 -1
  250. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.js +0 -964
  251. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.js.map +0 -1
  252. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilderUtils.js +0 -132
  253. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilderUtils.js.map +0 -1
  254. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingGroup.css +0 -29
  255. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingGroup.css.map +0 -1
  256. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingGroup.js +0 -188
  257. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingGroup.js.map +0 -1
  258. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingItem.js +0 -81
  259. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingItem.js.map +0 -1
  260. package/dist/sidebar/visibility-ordering-builder/sortable-tree/PointerSensorWithInteraction.js +0 -30
  261. package/dist/sidebar/visibility-ordering-builder/sortable-tree/PointerSensorWithInteraction.js.map +0 -1
  262. package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTree.js +0 -158
  263. package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTree.js.map +0 -1
  264. package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeInner.js +0 -146
  265. package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeInner.js.map +0 -1
  266. package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeItem.js +0 -59
  267. package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeItem.js.map +0 -1
  268. package/dist/sidebar/visibility-ordering-builder/sortable-tree/TreeItem.css +0 -139
  269. package/dist/sidebar/visibility-ordering-builder/sortable-tree/TreeItem.css.map +0 -1
  270. package/dist/sidebar/visibility-ordering-builder/sortable-tree/TreeItem.js +0 -44
  271. package/dist/sidebar/visibility-ordering-builder/sortable-tree/TreeItem.js.map +0 -1
  272. package/dist/sidebar/visibility-ordering-builder/sortable-tree/keyboardCoordinates.js +0 -129
  273. package/dist/sidebar/visibility-ordering-builder/sortable-tree/keyboardCoordinates.js.map +0 -1
  274. package/dist/sidebar/visibility-ordering-builder/sortable-tree/types.js +0 -4
  275. package/dist/sidebar/visibility-ordering-builder/sortable-tree/types.js.map +0 -1
  276. package/dist/sidebar/visibility-ordering-builder/sortable-tree/utilities.js +0 -261
  277. package/dist/sidebar/visibility-ordering-builder/sortable-tree/utilities.js.map +0 -1
@@ -1,139 +0,0 @@
1
- /* stylelint-disable scss/at-import-no-partial-leading-underscore */
2
- .visibility-ordering-list .tree-item {
3
- position: relative;
4
- display: flex;
5
- gap: 0.25rem;
6
- flex-direction: row;
7
- flex-wrap: nowrap;
8
- justify-content: flex-start;
9
- align-items: center;
10
- flex-grow: 1;
11
- min-width: 0;
12
- border: 1px solid transparent;
13
- user-select: none;
14
- border-radius: 4px;
15
- padding: 0 0.25rem;
16
- }
17
- .visibility-ordering-list .tree-item svg:not(.color-swatch) {
18
- color: #929192;
19
- }
20
- .visibility-ordering-list .tree-item:hover {
21
- background: #5b5a5c;
22
- cursor: grab;
23
- }
24
- .visibility-ordering-list .tree-item.isSelected {
25
- background-color: rgba(72, 120, 234, 0.4);
26
- }
27
- .visibility-ordering-list .tree-item.isSelected:hover {
28
- background-color: #4878ea;
29
- }
30
- .visibility-ordering-list .tree-item.isSelected:hover svg:not(.color-swatch) {
31
- color: #f0f0ee;
32
- }
33
- .visibility-ordering-list .tree-item:focus {
34
- outline: 0;
35
- border: 1px solid rgba(72, 120, 234, 0.85);
36
- box-shadow: 0 0 0 0.2rem rgba(72, 120, 234, 0.35);
37
- }
38
- .visibility-ordering-list .tree-item .column-name {
39
- flex-grow: 1;
40
- flex-shrink: 1;
41
- overflow-x: hidden;
42
- text-overflow: ellipsis;
43
- }
44
- .visibility-ordering-list .tree-item .item-count {
45
- padding: 0 0.5rem;
46
- border-radius: 1rem;
47
- background-color: rgba(240, 240, 238, 0.25);
48
- margin-right: 0.25rem;
49
- }
50
- .visibility-ordering-list .marching-ants {
51
- 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%);
52
- background-size: 8px 1px, 8px 1px, 1px 8px, 1px 8px;
53
- background-position: 0 top, 0 bottom, left 0, right 0;
54
- background-repeat: repeat-x, repeat-x, repeat-y, repeat-y;
55
- animation: march 0.5s;
56
- animation-timing-function: linear;
57
- animation-iteration-count: infinite;
58
- }
59
- .visibility-ordering-list .item-wrapper {
60
- list-style: none;
61
- box-sizing: border-box;
62
- margin-bottom: 1px;
63
- width: 100%;
64
- display: flex;
65
- flex-direction: row;
66
- flex-wrap: nowrap;
67
- }
68
- .visibility-ordering-list .item-wrapper.clone {
69
- pointer-events: none;
70
- padding: 0;
71
- }
72
- .visibility-ordering-list .item-wrapper.clone .tree-item {
73
- opacity: 1;
74
- background-color: #4878ea;
75
- box-shadow: 0 0.1rem 1rem rgba(26, 23, 26, 0.45);
76
- }
77
- .visibility-ordering-list .item-wrapper.clone .tree-item svg:not(.color-swatch) {
78
- color: #f0f0ee;
79
- }
80
- .visibility-ordering-list .item-wrapper.clone .tree-item.two-dragged::before {
81
- content: " ";
82
- background: #4878ea;
83
- box-shadow: 0 0.1rem 1rem rgba(26, 23, 26, 0.45);
84
- border-radius: 4px;
85
- position: absolute;
86
- height: 100%;
87
- width: 100%;
88
- top: 4px;
89
- left: 2px;
90
- opacity: 0.8;
91
- z-index: -1;
92
- }
93
- .visibility-ordering-list .item-wrapper.clone .tree-item.multiple-dragged::before {
94
- content: " ";
95
- background: #4878ea;
96
- box-shadow: 0 0.1rem 1rem rgba(26, 23, 26, 0.45);
97
- border-radius: 4px;
98
- position: absolute;
99
- height: 100%;
100
- width: 100%;
101
- top: 4px;
102
- left: 2px;
103
- opacity: 0.8;
104
- z-index: -1;
105
- }
106
- .visibility-ordering-list .item-wrapper.clone .tree-item.multiple-dragged::after {
107
- content: " ";
108
- background: #4878ea;
109
- box-shadow: 0 0.1rem 1rem rgba(26, 23, 26, 0.45);
110
- border-radius: 4px;
111
- position: absolute;
112
- height: 100%;
113
- width: 100%;
114
- top: 8px;
115
- left: 4px;
116
- opacity: 0.6;
117
- z-index: -2;
118
- }
119
- .visibility-ordering-list .item-wrapper.ghost {
120
- opacity: 0.5;
121
- }
122
- .visibility-ordering-list .item-wrapper.ghost .tree-item > * {
123
- box-shadow: none;
124
- background-color: transparent;
125
- }
126
- .visibility-ordering-list .item-wrapper.disableInteraction {
127
- pointer-events: none;
128
- }
129
- .visibility-ordering-list .item-wrapper.disableInteraction:not(.ghost) .tree-item.isSelected {
130
- opacity: 0.3;
131
- }
132
- .visibility-ordering-list .item-wrapper .depth-line {
133
- margin-left: calc(0.5rem + 8px + 0.5px);
134
- margin-right: 0.25rem;
135
- margin-top: -1px;
136
- border-left: 1px solid #555356;
137
- }
138
-
139
- /*# sourceMappingURL=TreeItem.css.map */
@@ -1 +0,0 @@
1
- {"version":3,"sourceRoot":"","sources":["../../../../../../node_modules/@deephaven/components/scss/custom.scss","../../../../src/sidebar/visibility-ordering-builder/sortable-tree/TreeItem.scss","../../../../../../node_modules/@deephaven/components/scss/new_variables.scss","../../../../../../node_modules/@deephaven/components/scss/bootstrap_overrides.scss"],"names":[],"mappings":"AAAA;ACQE;EACE;EACA;EACA,KCTO;EDUP;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,eEqGY;EFpGZ;;AAEA;EACE,OEHK;;AFMP;EACE,YENK;EFOL;;AAGF;EACE;;AAEA;EACE,kBExBQ;;AF0BR;EACE,OE1BO;;AF+Bb;EACE;EACA;EACA,YE+FuB;;AF5FzB;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA,cC3DK;;AD+DT;EC/CA;EAIA;EAEA;EACA;EACA;EACA;EACA;;ADyCA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAEA;EACE;EACA,kBExEQ;EFyER,YEqCK;;AFnCL;EACE,OE3EO;;ADmBf;EACE;EACA,YCtBY;EDuBZ,YCuFS;EDtFT,eCqFY;EDpFZ;EACA;EACA;EDsDQ;EACA;EACA;EACA;;AChEV;EACE;EACA,YCtBY;EDuBZ,YCuFS;EDtFT,eCqFY;EDpFZ;EACA;EACA;ED+DQ;EACA;EACA;EACA;;ACzEV;EACE;EACA,YCtBY;EDuBZ,YCuFS;EDtFT,eCqFY;EDpFZ;EACA;EACA;EDqEQ;EACA;EACA;EACA;;AAMR;EACE;;AAEA;EACE;EACA;;AAIJ;EACE;;AAEA;EACE;;AAIJ;EACE,aApIS;EAqIT,cCtIK;EDuIL;EACA","file":"TreeItem.css","sourcesContent":["/* stylelint-disable scss/at-import-no-partial-leading-underscore */\n// Consumers should be able to resolve bootstrap/ to node_modules/bootstrap\n\n//Make bootstrap functions available for use in overrides\n@import 'bootstrap/scss/_functions.scss';\n@import './bootstrap_overrides.scss';\n\n//_variable imports come after bootstrap default overrides,\n// makes all other variables and mixins from bootstrap available\n/// with just importing customer.scss\n@import 'bootstrap/scss/_variables.scss';\n@import 'bootstrap/scss/_mixins.scss';\n\n//New variables come after imports\n@import './new_variables.scss';\n","@import '@deephaven/components/scss/custom.scss';\n\n$depth-line-color: $gray-600;\n$depth-margin: calc(\n 0.5rem + 8px + 0.5px\n); // Tree item 0.25rem padding, Icon button 0.25rem, half of icon size, and half pixel to offset 1px border\n\n.visibility-ordering-list {\n .tree-item {\n position: relative;\n display: flex;\n gap: $spacer-1;\n flex-direction: row;\n flex-wrap: nowrap;\n justify-content: flex-start;\n align-items: center;\n flex-grow: 1;\n min-width: 0; // Needed so column names don't grow past the edge\n border: $input-border-width solid transparent;\n user-select: none;\n border-radius: $border-radius;\n padding: 0 $spacer-1; // space for focus border\n\n svg:not(.color-swatch) {\n color: $text-muted;\n }\n\n &:hover {\n background: $gray-500;\n cursor: grab;\n }\n\n &.isSelected {\n background-color: rgba($primary, 0.4);\n\n &:hover {\n background-color: $primary;\n\n svg:not(.color-swatch) {\n color: $foreground;\n }\n }\n }\n\n &:focus {\n outline: 0;\n border: $input-border-width solid $input-focus-border-color;\n box-shadow: $input-focus-box-shadow;\n }\n\n .column-name {\n flex-grow: 1;\n flex-shrink: 1;\n overflow-x: hidden;\n text-overflow: ellipsis;\n }\n\n .item-count {\n padding: 0 $spacer-2;\n border-radius: 1rem;\n background-color: rgba($foreground, 0.25);\n margin-right: $spacer-1;\n }\n }\n\n .marching-ants {\n @include ants-base($foreground, $background);\n }\n\n .item-wrapper {\n list-style: none;\n box-sizing: border-box;\n margin-bottom: 1px;\n width: 100%;\n display: flex;\n flex-direction: row;\n flex-wrap: nowrap;\n\n &.clone {\n pointer-events: none;\n padding: 0;\n\n .tree-item {\n opacity: 1;\n background-color: $primary;\n box-shadow: $box-shadow;\n\n svg:not(.color-swatch) {\n color: $foreground;\n }\n\n &.two-dragged {\n @include drag-stack(before) {\n top: 4px;\n left: 2px;\n opacity: 0.8;\n z-index: -1;\n }\n }\n\n &.multiple-dragged {\n @include drag-stack(before) {\n top: 4px;\n left: 2px;\n opacity: 0.8;\n z-index: -1;\n }\n @include drag-stack(after) {\n top: 8px;\n left: 4px;\n opacity: 0.6;\n z-index: -2;\n }\n }\n }\n }\n\n &.ghost {\n opacity: 0.5;\n\n .tree-item > * {\n box-shadow: none;\n background-color: transparent;\n }\n }\n\n &.disableInteraction {\n pointer-events: none;\n\n &:not(.ghost) .tree-item.isSelected {\n opacity: 0.3;\n }\n }\n\n .depth-line {\n margin-left: $depth-margin;\n margin-right: $spacer-1; // Gives breathing room to the item boxes\n margin-top: -1px; // removes gaps between depth lines caused by item's margin-bottom\n border-left: 1px solid $depth-line-color;\n }\n }\n}\n","//Set of spacer variables from the spacer map\n$spacer-0: map-get($spacers, 0); //0\n$spacer-1: map-get($spacers, 1);\n$spacer-2: map-get($spacers, 2);\n$spacer-3: map-get($spacers, 3);\n$spacer-4: map-get($spacers, 4);\n$spacer-5: map-get($spacers, 5);\n\n//Marching Ants for golden layout dropzone and drag and drop\n//top bottom, left right.\n//create 4 background images that are 50% color 1, 50% color 2 using graidents, two veritical, two horizontal\n//size them to ant-size and thickness\n//position those images along the egdes and make top/bottom repeat-x and left/right repeat-y\n//then offest each of those background positions by ant-size in animation to make them march.\n$ant-size: 8px;\n$ant-thickness: 1px;\n\n@mixin ants-base($color-1: black, $color-2: white) {\n background-image: linear-gradient(to right, $color-2 50%, $color-1 50%),\n linear-gradient(to right, $color-2 50%, $color-1 50%),\n linear-gradient(to bottom, $color-2 50%, $color-1 50%),\n linear-gradient(to bottom, $color-2 50%, $color-1 50%);\n background-size: $ant-size $ant-thickness, $ant-size $ant-thickness,\n $ant-thickness $ant-size, $ant-thickness $ant-size;\n background-position: 0 top, 0 bottom, left 0, right 0;\n background-repeat: repeat-x, repeat-x, repeat-y, repeat-y;\n animation: march 0.5s;\n animation-timing-function: linear;\n animation-iteration-count: infinite;\n}\n\n@mixin drag-stack($pseudo-element) {\n &::#{$pseudo-element} {\n content: ' ';\n background: $primary;\n box-shadow: $box-shadow;\n border-radius: $border-radius;\n position: absolute;\n height: 100%;\n width: 100%;\n @content;\n }\n}\n\n$focus-bg-transparency: 0.12;\n$hover-bg-transparency: 0.14;\n$active-bg-transparency: 0.28;\n$exception-transparency: 0.13;\n","// Styling overrides for bootstrap\n\n// Override / set color variables\n$red: #f95d84;\n$orange: #f37e3f;\n$yellow: #fcd65b;\n$green: #9edc6f;\n$blue: #76d9e4;\n$purple: #aa9af4;\n\n//Define some UI colors\n$interfacegray: #2d2a2e;\n$interfaceblue: #4878ea;\n$interfacewhite: #f0f0ee; //same as gray-200\n$interfaceblack: #1a171a;\n\n//Define our Gray scale\n$white: $interfacewhite;\n$gray-100: #fcfcfa;\n$gray-200: $interfacewhite;\n$gray-300: #c0bfbf;\n$gray-400: #929192;\n$gray-500: #5b5a5c;\n$gray-600: #555356;\n$gray-700: #403e41;\n$gray-800: #373438;\n$gray-850: #322f33;\n$gray-900: #211f22;\n$black: $interfaceblack;\n$content-bg: $interfacegray;\n$background: $interfaceblack;\n$foreground: $interfacewhite;\n\n//Load colors into map\n$colors: ();\n$colors: map-merge(\n (\n 'red': $red,\n 'orange': $orange,\n 'yellow': $yellow,\n 'green': $green,\n 'blue': $blue,\n 'purple': $purple,\n 'white': $white,\n 'black': $black,\n ),\n $colors\n);\n\n//Set default colors\n$body-bg: $black;\n$body-color: $interfacewhite;\n\n// Set brand colors\n$primary: $interfaceblue;\n$primary-hover: darken($primary, 8%);\n$primary-dark: mix($primary, $content-bg, 25%);\n$primary-light: scale-color($primary, $lightness: -25%);\n$secondary: $gray-500;\n$secondary-hover: darken($secondary, 8%);\n$success: $green;\n$info: $yellow;\n$warning: $orange;\n$danger: $red;\n$danger-hover: darken($danger, 8%);\n$light: $gray-100;\n$mid: $gray-400; //Added a mid color, useful for input styling\n$dark: $gray-800;\n$green-dark: scale-color($green, $lightness: -45%, $saturation: -10%);\n\n$theme-colors: () !default;\n$theme-colors: map-merge(\n (\n 'primary': $primary,\n 'primary-hover': $primary-hover,\n 'primary-light': $primary-light,\n 'primary-dark': $primary-dark,\n 'secondary': $secondary,\n 'success': $success,\n 'info': $info,\n 'warning': $warning,\n 'danger': $danger,\n 'light': $light,\n 'dark': $dark,\n 'mid': $mid,\n 'content-bg': $interfacegray,\n 'background': $interfaceblack,\n 'foreground': $interfacewhite,\n ),\n $theme-colors\n);\n\n$component-active-bg: $primary;\n$theme-color-interval: 9%;\n$yiq-contrasted-threshold: 180;\n\n// Override fonts\n$font-family-sans-serif: 'Fira Sans', -apple-system, blinkmacsystemfont,\n 'Segoe UI', 'Roboto', 'Helvetica Neue', arial, sans-serif; //fira sans then native system ui fallbacks\n$font-family-monospace: 'Fira Mono', menlo, monaco, consolas, 'Liberation Mono',\n 'Courier New', monospace;\n$font-family-base: $font-family-sans-serif;\n\n$headings-font-weight: 400;\n\n//Text overides\n$text-muted: $gray-400;\n\n//Style Selection highlight color\n//so browsers add alpha to your color by default, ignoring opacity 1\n//by setting rgba with 0.99 it tricks browser into thinking there is alpha applied\n$text-select-color: $primary-hover;\n$text-select-color-editor: lighten(\n $gray-700,\n 15%\n); //we lighten it abit to account for that 0.01 loss, and because it needs some anyways.\n\n//Grid variables, same value as default just making easily accessible\n$grid-gutter-width: 30px;\n\n//Visual Overrides\n$border-radius: 4px;\n$box-shadow: 0 0.1rem 1rem rgba($black, 45%); //because our UI is so dark, we need darker default shadows\n$box-shadow-900: 0 0.1rem 1rem rgba(0, 0, 0, 45%); //darkest shadow for $black popups over $black UI\n\n//Override Btn\n$btn-border-radius: 4rem;\n$btn-padding-x: 1.5rem;\n$btn-transition: color 0.12s ease-in-out, background-color 0.12s ease-in-out,\n border-color 0.12s ease-in-out, box-shadow 0.12s ease-in-out; //default 0.15 is too long\n$btn-border-width: 2px;\n\n//Override Inputs\n$input-bg: $gray-600;\n$input-disabled-bg: $gray-800;\n$input-color: $foreground;\n$input-border-color: $gray-400;\n$input-placeholder-color: $gray-400;\n$input-focus-border-color: rgba($primary, 85%);\n\n$input-btn-focus-width: 0.2rem;\n$input-btn-focus-color: rgba($component-active-bg, 35%);\n$input-btn-focus-box-shadow: 0 0 0 $input-btn-focus-width $input-btn-focus-color;\n\n//checkbox\n$custom-control-indicator-bg: $gray-600;\n$custom-control-indicator-bg-size: 75% 75%;\n$custom-control-indicator-disabled-bg: $gray-800;\n$custom-control-indicator-checked-disabled-bg: $gray-800;\n$custom-control-label-disabled-color: $gray-400;\n\n//Custom Select\n$custom-select-indicator-color: $gray-400;\n$custom-select-bg-size: 16px 16px;\n//dhSort icon encoded\n$custom-select-indicator: str-replace(\n url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='#{$custom-select-indicator-color}' d='M4 7l-.4-.8 4-3.7h.8l4 3.7-.4.8H4zm0 2l-.4.8 4 3.7h.8l4-3.7L12 9H4z'/%3E%3C/svg%3E\"),\n '#',\n '%23'\n);\n$custom-select-focus-box-shadow: $input-btn-focus-box-shadow;\n$custom-select-disabled-color: darken($gray-400, 5%);\n$custom-select-disabled-bg: $gray-800;\n\n//modal\n$modal-content-bg: $gray-200;\n$modal-content-border-width: 0;\n$modal-md: 550px;\n\n// Toast notification\n$toast-bg: $primary-dark;\n$toast-color: $foreground;\n$toast-error-bg: mix($danger, $content-bg, 15%);\n$toast-error-color: $foreground;\n\n//tooltips\n$tooltip-bg: $gray-700;\n$tooltip-color: $foreground;\n$tooltip-box-shadow: 0 0.1rem 1.5rem 0.1rem rgba($black, 80%);\n\n//drowdowns\n$dropdown-bg: $gray-600;\n$dropdown-link-color: $foreground;\n$dropdown-link-hover-color: $foreground;\n$dropdown-link-hover-bg: $primary;\n$dropdown-divider-bg: $gray-700;\n\n//context menus\n$contextmenu-bg: $gray-600;\n$contextmenu-color: $foreground;\n$contextmenu-disabled-color: $text-muted;\n$contextmenu-keyboard-selected-bg: rgba($primary, 50%);\n$contextmenu-selected-bg: $primary;\n$contextmenu-selected-color: $foreground;\n\n//links\n$link-color: $gray-400;\n$link-hover-color: $foreground;\n\n//progress-bar\n$progress-bg: $gray-600;\n$progress-border-radius: 1rem;\n\n// Set global options\n$enable-shadows: false;\n$enable-gradients: false;\n$enable-print-styles: false; //I don't think anyone should expect to \"print\" this app.\n\n// Transition times\n$transition: 0.15s;\n$transition-mid: 0.2s;\n$transition-long: 0.3s;\n$transition-slow: 0.6s;\n\n//form-validation icon, uses vsWarning icon encoded here as svg\n$form-feedback-icon-invalid-color: theme-color('danger');\n$form-feedback-icon-invalid: str-replace(\n url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cg fill='none'%3E%3Cg fill='#{$form-feedback-icon-invalid-color}'%3E%3Cpath d='M7.56 1h.88l6.54 12.26-.44.74H1.44L1 13.26 7.56 1zM8 2.28 2.28 13H13.7L8 2.28zM8.625 12v-1h-1.25v1h1.25zm-1.25-2V6h1.25v4h-1.25z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E \"),\n '#',\n '%23'\n);\n"]}
@@ -1,44 +0,0 @@
1
- /* eslint-disable react/jsx-props-no-spreading */
2
- import React, { useMemo } from 'react';
3
- import classNames from 'classnames';
4
- import "./TreeItem.css";
5
- export function TreeItem(props) {
6
- var {
7
- clone = false,
8
- depth,
9
- disableInteraction = false,
10
- ghost = false,
11
- handleProps,
12
- value,
13
- dragRef = null,
14
- wrapperRef = null,
15
- renderItem,
16
- item,
17
- childCount
18
- } = props;
19
- var depthMarkers = useMemo(() => Array(depth).fill(0)
20
- // eslint-disable-next-line react/no-array-index-key
21
- .map((_, i) => /*#__PURE__*/React.createElement("span", {
22
- key: "depth-line-".concat(i),
23
- className: "depth-line"
24
- })), [depth]);
25
- var renderItemProps = useMemo(() => ({
26
- ref: dragRef,
27
- clone,
28
- value,
29
- item,
30
- childCount,
31
- handleProps
32
- }), [dragRef, clone, value, item, childCount, handleProps]);
33
- return /*#__PURE__*/React.createElement("li", {
34
- key: value,
35
- className: classNames('item-wrapper', {
36
- clone,
37
- ghost,
38
- disableInteraction
39
- }),
40
- ref: wrapperRef
41
- }, !clone && depthMarkers, renderItem(renderItemProps));
42
- }
43
- TreeItem.displayName = 'TreeItem';
44
- //# sourceMappingURL=TreeItem.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TreeItem.js","names":["React","useMemo","classNames","TreeItem","props","clone","depth","disableInteraction","ghost","handleProps","value","dragRef","wrapperRef","renderItem","item","childCount","depthMarkers","Array","fill","map","_","i","renderItemProps","ref","displayName"],"sources":["../../../../src/sidebar/visibility-ordering-builder/sortable-tree/TreeItem.tsx"],"sourcesContent":["/* eslint-disable react/jsx-props-no-spreading */\nimport React, { useMemo } from 'react';\nimport classNames from 'classnames';\nimport type { FlattenedItem, TreeItem as TreeItemType } from './types';\nimport './TreeItem.scss';\n\nexport interface Props<T> {\n childCount?: number;\n clone?: boolean;\n depth: number;\n disableInteraction?: boolean;\n ghost?: boolean;\n handleProps?: unknown;\n value: string;\n item: FlattenedItem<T>;\n dragRef?: React.Ref<HTMLDivElement> | null;\n wrapperRef?: React.Ref<HTMLLIElement> | null;\n renderItem(props: {\n ref: React.Ref<HTMLDivElement> | null;\n clone: boolean;\n childCount?: number;\n value: string;\n item: FlattenedItem<T>;\n handleProps: unknown;\n }): JSX.Element;\n}\n\nexport type TreeItemRenderFn<T> = (props: {\n ref: React.Ref<HTMLDivElement> | null;\n clone: boolean;\n childCount?: number;\n value: string;\n item: T extends TreeItemType<infer D> ? FlattenedItem<D> : FlattenedItem<T>;\n handleProps: Record<string, unknown>;\n}) => JSX.Element;\n\nexport function TreeItem<T>(props: Props<T>) {\n const {\n clone = false,\n depth,\n disableInteraction = false,\n ghost = false,\n handleProps,\n value,\n dragRef = null,\n wrapperRef = null,\n renderItem,\n item,\n childCount,\n } = props;\n\n const depthMarkers = useMemo(\n () =>\n Array(depth)\n .fill(0)\n // eslint-disable-next-line react/no-array-index-key\n .map((_, i) => <span key={`depth-line-${i}`} className=\"depth-line\" />),\n [depth]\n );\n\n const renderItemProps = useMemo(\n () => ({\n ref: dragRef,\n clone,\n value,\n item,\n childCount,\n handleProps,\n }),\n [dragRef, clone, value, item, childCount, handleProps]\n );\n\n return (\n <li\n key={value}\n className={classNames('item-wrapper', {\n clone,\n ghost,\n disableInteraction,\n })}\n ref={wrapperRef}\n >\n {!clone && depthMarkers}\n {renderItem(renderItemProps)}\n </li>\n );\n}\n\nTreeItem.displayName = 'TreeItem';\n"],"mappings":"AAAA;AACA,OAAOA,KAAK,IAAIC,OAAO,QAAQ,OAAO;AACtC,OAAOC,UAAU,MAAM,YAAY;AAAC;AAkCpC,OAAO,SAASC,QAAQ,CAAIC,KAAe,EAAE;EAC3C,IAAM;IACJC,KAAK,GAAG,KAAK;IACbC,KAAK;IACLC,kBAAkB,GAAG,KAAK;IAC1BC,KAAK,GAAG,KAAK;IACbC,WAAW;IACXC,KAAK;IACLC,OAAO,GAAG,IAAI;IACdC,UAAU,GAAG,IAAI;IACjBC,UAAU;IACVC,IAAI;IACJC;EACF,CAAC,GAAGX,KAAK;EAET,IAAMY,YAAY,GAAGf,OAAO,CAC1B,MACEgB,KAAK,CAACX,KAAK,CAAC,CACTY,IAAI,CAAC,CAAC;EACP;EAAA,CACCC,GAAG,CAAC,CAACC,CAAC,EAAEC,CAAC,kBAAK;IAAM,GAAG,uBAAgBA,CAAC,CAAG;IAAC,SAAS,EAAC;EAAY,EAAG,CAAC,EAC3E,CAACf,KAAK,CAAC,CACR;EAED,IAAMgB,eAAe,GAAGrB,OAAO,CAC7B,OAAO;IACLsB,GAAG,EAAEZ,OAAO;IACZN,KAAK;IACLK,KAAK;IACLI,IAAI;IACJC,UAAU;IACVN;EACF,CAAC,CAAC,EACF,CAACE,OAAO,EAAEN,KAAK,EAAEK,KAAK,EAAEI,IAAI,EAAEC,UAAU,EAAEN,WAAW,CAAC,CACvD;EAED,oBACE;IACE,GAAG,EAAEC,KAAM;IACX,SAAS,EAAER,UAAU,CAAC,cAAc,EAAE;MACpCG,KAAK;MACLG,KAAK;MACLD;IACF,CAAC,CAAE;IACH,GAAG,EAAEK;EAAW,GAEf,CAACP,KAAK,IAAIW,YAAY,EACtBH,UAAU,CAACS,eAAe,CAAC,CACzB;AAET;AAEAnB,QAAQ,CAACqB,WAAW,GAAG,UAAU"}
@@ -1,129 +0,0 @@
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) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
4
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
5
- function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
6
- /* eslint-disable import/prefer-default-export */
7
- import { closestCorners, getFirstCollision, KeyboardCode } from '@dnd-kit/core';
8
- import { getProjection } from "./utilities.js";
9
- var DIRECTIONS = [KeyboardCode.Down, KeyboardCode.Right, KeyboardCode.Up, KeyboardCode.Left];
10
- var HORIZONTAL = [KeyboardCode.Left, KeyboardCode.Right];
11
- export function sortableTreeKeyboardCoordinates(context, indicator, indentationWidth) {
12
- return (event, _ref) => {
13
- var {
14
- currentCoordinates,
15
- context: {
16
- active,
17
- over,
18
- collisionRect,
19
- droppableRects,
20
- droppableContainers
21
- }
22
- } = _ref;
23
- if (DIRECTIONS.includes(event.code)) {
24
- if (!active || !collisionRect) {
25
- return;
26
- }
27
- event.preventDefault();
28
- var {
29
- current: {
30
- items,
31
- offset
32
- }
33
- } = context;
34
- if (HORIZONTAL.includes(event.code) && (over === null || over === void 0 ? void 0 : over.id) != null) {
35
- var {
36
- depth,
37
- maxDepth,
38
- minDepth
39
- } = getProjection(items, active.id, over.id, offset, indentationWidth);
40
- switch (event.code) {
41
- case KeyboardCode.Left:
42
- if (depth > minDepth) {
43
- return _objectSpread(_objectSpread({}, currentCoordinates), {}, {
44
- x: currentCoordinates.x - indentationWidth
45
- });
46
- }
47
- break;
48
- case KeyboardCode.Right:
49
- if (depth < maxDepth) {
50
- return _objectSpread(_objectSpread({}, currentCoordinates), {}, {
51
- x: currentCoordinates.x + indentationWidth
52
- });
53
- }
54
- break;
55
- }
56
- return undefined;
57
- }
58
- var containers = [];
59
- droppableContainers.forEach(container => {
60
- if (container !== null && container !== void 0 && container.disabled || container.id === (over === null || over === void 0 ? void 0 : over.id)) {
61
- return;
62
- }
63
- var rect = droppableRects.get(container.id);
64
- if (!rect) {
65
- return;
66
- }
67
- switch (event.code) {
68
- case KeyboardCode.Down:
69
- if (collisionRect.top < rect.top) {
70
- containers.push(container);
71
- }
72
- break;
73
- case KeyboardCode.Up:
74
- if (collisionRect.top > rect.top) {
75
- containers.push(container);
76
- }
77
- break;
78
- }
79
- });
80
- var collisions = closestCorners({
81
- active,
82
- collisionRect,
83
- pointerCoordinates: null,
84
- droppableRects,
85
- droppableContainers: containers
86
- });
87
- var closestId = getFirstCollision(collisions, 'id');
88
- if (closestId === (over === null || over === void 0 ? void 0 : over.id) && collisions.length > 1) {
89
- closestId = collisions[1].id;
90
- }
91
- if (closestId != null && (over === null || over === void 0 ? void 0 : over.id) != null) {
92
- var activeRect = droppableRects.get(active.id);
93
- var newRect = droppableRects.get(closestId);
94
- var newDroppable = droppableContainers.get(closestId);
95
- if (activeRect && newRect && newDroppable) {
96
- var newIndex = items.findIndex(_ref2 => {
97
- var {
98
- id
99
- } = _ref2;
100
- return id === closestId;
101
- });
102
- var newItem = items[newIndex];
103
- var activeIndex = items.findIndex(_ref3 => {
104
- var {
105
- id
106
- } = _ref3;
107
- return id === active.id;
108
- });
109
- var activeItem = items[activeIndex];
110
- if (newItem != null && activeItem != null) {
111
- var {
112
- depth: _depth
113
- } = getProjection(items, active.id, closestId, (newItem.depth - activeItem.depth) * indentationWidth, indentationWidth);
114
- var isBelow = newIndex > activeIndex;
115
- var modifier = isBelow ? 1 : -1;
116
- var nextOffset = indicator ? (collisionRect.height - activeRect.height) / 2 : 0;
117
- var newCoordinates = {
118
- x: newRect.left + _depth * indentationWidth,
119
- y: newRect.top + modifier * nextOffset
120
- };
121
- return newCoordinates;
122
- }
123
- }
124
- }
125
- }
126
- return undefined;
127
- };
128
- }
129
- //# sourceMappingURL=keyboardCoordinates.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"keyboardCoordinates.js","names":["closestCorners","getFirstCollision","KeyboardCode","getProjection","DIRECTIONS","Down","Right","Up","Left","HORIZONTAL","sortableTreeKeyboardCoordinates","context","indicator","indentationWidth","event","currentCoordinates","active","over","collisionRect","droppableRects","droppableContainers","includes","code","preventDefault","current","items","offset","id","depth","maxDepth","minDepth","x","undefined","containers","forEach","container","disabled","rect","get","top","push","collisions","pointerCoordinates","closestId","length","activeRect","newRect","newDroppable","newIndex","findIndex","newItem","activeIndex","activeItem","isBelow","modifier","nextOffset","height","newCoordinates","left","y"],"sources":["../../../../src/sidebar/visibility-ordering-builder/sortable-tree/keyboardCoordinates.ts"],"sourcesContent":["/* eslint-disable import/prefer-default-export */\nimport {\n closestCorners,\n getFirstCollision,\n KeyboardCode,\n KeyboardCoordinateGetter,\n DroppableContainer,\n} from '@dnd-kit/core';\nimport type { SensorContext } from './types';\nimport { getProjection } from './utilities';\n\nconst DIRECTIONS: string[] = [\n KeyboardCode.Down,\n KeyboardCode.Right,\n KeyboardCode.Up,\n KeyboardCode.Left,\n];\n\nconst HORIZONTAL: string[] = [KeyboardCode.Left, KeyboardCode.Right];\n\nexport function sortableTreeKeyboardCoordinates(\n context: SensorContext,\n indicator: boolean,\n indentationWidth: number\n): KeyboardCoordinateGetter {\n return (\n event,\n {\n currentCoordinates,\n context: {\n active,\n over,\n collisionRect,\n droppableRects,\n droppableContainers,\n },\n }\n ) => {\n if (DIRECTIONS.includes(event.code)) {\n if (!active || !collisionRect) {\n return;\n }\n\n event.preventDefault();\n\n const {\n current: { items, offset },\n } = context;\n\n if (HORIZONTAL.includes(event.code) && over?.id != null) {\n const { depth, maxDepth, minDepth } = getProjection(\n items,\n active.id as string,\n over.id as string,\n offset,\n indentationWidth\n );\n\n switch (event.code) {\n case KeyboardCode.Left:\n if (depth > minDepth) {\n return {\n ...currentCoordinates,\n x: currentCoordinates.x - indentationWidth,\n };\n }\n break;\n case KeyboardCode.Right:\n if (depth < maxDepth) {\n return {\n ...currentCoordinates,\n x: currentCoordinates.x + indentationWidth,\n };\n }\n break;\n }\n\n return undefined;\n }\n\n const containers: DroppableContainer[] = [];\n\n droppableContainers.forEach(container => {\n if (container?.disabled || container.id === over?.id) {\n return;\n }\n\n const rect = droppableRects.get(container.id);\n\n if (!rect) {\n return;\n }\n\n switch (event.code) {\n case KeyboardCode.Down:\n if (collisionRect.top < rect.top) {\n containers.push(container);\n }\n break;\n case KeyboardCode.Up:\n if (collisionRect.top > rect.top) {\n containers.push(container);\n }\n break;\n }\n });\n\n const collisions = closestCorners({\n active,\n collisionRect,\n pointerCoordinates: null,\n droppableRects,\n droppableContainers: containers,\n });\n let closestId = getFirstCollision(collisions, 'id');\n\n if (closestId === over?.id && collisions.length > 1) {\n closestId = collisions[1].id;\n }\n\n if (closestId != null && over?.id != null) {\n const activeRect = droppableRects.get(active.id);\n const newRect = droppableRects.get(closestId);\n const newDroppable = droppableContainers.get(closestId);\n\n if (activeRect && newRect && newDroppable) {\n const newIndex = items.findIndex(({ id }) => id === closestId);\n const newItem = items[newIndex];\n const activeIndex = items.findIndex(({ id }) => id === active.id);\n const activeItem = items[activeIndex];\n\n if (newItem != null && activeItem != null) {\n const { depth } = getProjection(\n items,\n active.id as string,\n closestId as string,\n (newItem.depth - activeItem.depth) * indentationWidth,\n indentationWidth\n );\n const isBelow = newIndex > activeIndex;\n const modifier = isBelow ? 1 : -1;\n const nextOffset = indicator\n ? (collisionRect.height - activeRect.height) / 2\n : 0;\n\n const newCoordinates = {\n x: newRect.left + depth * indentationWidth,\n y: newRect.top + modifier * nextOffset,\n };\n\n return newCoordinates;\n }\n }\n }\n }\n\n return undefined;\n };\n}\n"],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- export function isFlattenedTreeItem(item) {
2
- return item.parentId !== undefined;
3
- }
4
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","names":["isFlattenedTreeItem","item","parentId","undefined"],"sources":["../../../../src/sidebar/visibility-ordering-builder/sortable-tree/types.ts"],"sourcesContent":["import type { MutableRefObject } from 'react';\n\nexport type TreeItem<T = undefined> = {\n id: string;\n children: TreeItem<T>[];\n selected: boolean;\n} & (T extends undefined\n ? // eslint-disable-next-line @typescript-eslint/ban-types\n {}\n : {\n data: T;\n });\n\nexport type TreeItems<T = undefined> = TreeItem<T>[];\nexport type ReadonlyTreeItems<T = undefined> = readonly TreeItem<T>[];\n\nexport type FlattenedItem<T = undefined> = TreeItem<T> & {\n parentId: string | null;\n depth: number;\n index: number;\n};\n\nexport function isFlattenedTreeItem<T>(\n item: TreeItem<T>\n): item is FlattenedItem<T> {\n return (item as FlattenedItem<T>).parentId !== undefined;\n}\n\nexport type SensorContext = MutableRefObject<{\n items: FlattenedItem[];\n offset: number;\n}>;\n"],"mappings":"AAsBA,OAAO,SAASA,mBAAmB,CACjCC,IAAiB,EACS;EAC1B,OAAQA,IAAI,CAAsBC,QAAQ,KAAKC,SAAS;AAC1D"}
@@ -1,261 +0,0 @@
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) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
4
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
5
- function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
6
- import { arrayMove } from '@dnd-kit/sortable';
7
- import { GridUtils } from '@deephaven/grid';
8
- import { isFlattenedTreeItem } from "./types.js";
9
- /**
10
- * Gets the depth of an item dragged with a given x-axis offset
11
- *
12
- * @param offset x-axis offset of the dragging item
13
- * @param indentationWidth Width of indentation for each depth
14
- * @returns The drag depth for the given offset
15
- */
16
- function getDragDepth(offset, indentationWidth) {
17
- return Math.round(offset / indentationWidth);
18
- }
19
- function getTreeItem(columns, movedColumns, columnHeaderGroupMap, name, hiddenColumnSet, selectedItems) {
20
- var modelIndex = columns.findIndex(col => col.name === name);
21
- if (modelIndex === -1) {
22
- var group = columnHeaderGroupMap.get(name);
23
- if (group == null) {
24
- throw new Error("Column or header group not found: ".concat(name));
25
- }
26
- var modelIndexes = group.childIndexes.flat();
27
- return {
28
- id: name,
29
- selected: selectedItems.has(name),
30
- children: group.children.map(childName => getTreeItem(columns, movedColumns, columnHeaderGroupMap, childName, hiddenColumnSet, selectedItems)).sort((a, b) => {
31
- var aVal = Array.isArray(a.data.visibleIndex) ? a.data.visibleIndex[0] : a.data.visibleIndex;
32
- var bVal = Array.isArray(b.data.visibleIndex) ? b.data.visibleIndex[0] : b.data.visibleIndex;
33
- return aVal - bVal;
34
- }),
35
- data: {
36
- modelIndex: modelIndexes,
37
- visibleIndex: group.getVisibleRange(movedColumns),
38
- group,
39
- isVisible: modelIndexes.some(index => !hiddenColumnSet.has(index))
40
- }
41
- };
42
- }
43
- return {
44
- id: name,
45
- children: [],
46
- selected: selectedItems.has(name),
47
- data: {
48
- modelIndex,
49
- visibleIndex: GridUtils.getVisibleIndex(modelIndex, movedColumns),
50
- isVisible: !hiddenColumnSet.has(modelIndex)
51
- }
52
- };
53
- }
54
- export function getTreeItems(columns, movedColumns, columnHeaderGroups, hiddenColumns, selectedItems) {
55
- var items = [];
56
- var selectedItemsSet = new Set(selectedItems);
57
- var groupMap = new Map(columnHeaderGroups.map(group => [group.name, group]));
58
- var hiddenColumnSet = new Set(hiddenColumns);
59
- var visibleIndex = 0;
60
- var _loop = function _loop() {
61
- var modelIndex = GridUtils.getModelIndex(visibleIndex, movedColumns);
62
- var columnName = columns[modelIndex].name;
63
- var group = columnHeaderGroups.find(_ref => {
64
- var {
65
- children
66
- } = _ref;
67
- return children.includes(columnName);
68
- });
69
- while (group !== undefined && group.parent !== undefined) {
70
- group = groupMap.get(group.parent);
71
- }
72
- var item = getTreeItem(columns, movedColumns, groupMap, group ? group.name : columnName, hiddenColumnSet, selectedItemsSet);
73
- items.push(item);
74
- if (Array.isArray(item.data.visibleIndex)) {
75
- visibleIndex += item.data.visibleIndex[1] - item.data.visibleIndex[0] + 1;
76
- } else {
77
- visibleIndex += 1;
78
- }
79
- };
80
- while (visibleIndex < columns.length) {
81
- _loop();
82
- }
83
- return items;
84
- }
85
-
86
- /**
87
- * Gets the projected drop position and depth of the dragged item
88
- *
89
- * @param items List of flattened items
90
- * @param activeId ID of the actively dragged item
91
- * @param overId ID of the item currently being dragged over
92
- * @param dragOffset The x-axis offset of the dragged item
93
- * @param indentationWidth The width for each level of the tree
94
- * @returns The projected position and depth if the item were to be dropped
95
- */
96
- export function getProjection(items, activeId, overId, dragOffset, indentationWidth) {
97
- var overItemIndex = items.findIndex(_ref2 => {
98
- var {
99
- id
100
- } = _ref2;
101
- return id === overId;
102
- });
103
- var activeItemIndex = items.findIndex(_ref3 => {
104
- var {
105
- id
106
- } = _ref3;
107
- return id === activeId;
108
- });
109
- var activeItem = items[activeItemIndex];
110
- var newItems = arrayMove(items, activeItemIndex, overItemIndex);
111
- var previousItem = newItems[overItemIndex - 1];
112
- var nextItem = newItems[overItemIndex + 1];
113
- var dragDepth = getDragDepth(dragOffset, indentationWidth);
114
- var projectedDepth = activeItem.depth + dragDepth;
115
- var maxDepth = getMaxDepth({
116
- previousItem,
117
- nextItem
118
- });
119
- var minDepth = getMinDepth({
120
- nextItem
121
- });
122
- var depth = projectedDepth;
123
- if (projectedDepth >= maxDepth) {
124
- depth = maxDepth;
125
- } else if (projectedDepth < minDepth) {
126
- depth = minDepth;
127
- }
128
- return {
129
- depth,
130
- maxDepth,
131
- minDepth,
132
- parentId: getParentId()
133
- };
134
- function getParentId() {
135
- var _newItems$slice$rever;
136
- if (depth === 0 || !previousItem) {
137
- return null;
138
- }
139
- if (depth === previousItem.depth) {
140
- return previousItem.parentId;
141
- }
142
- if (depth > previousItem.depth) {
143
- return previousItem.id;
144
- }
145
- 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;
146
- return newParent !== null && newParent !== void 0 ? newParent : null;
147
- }
148
- }
149
- function getMaxDepth(_ref4) {
150
- var _previousItem$depth, _nextItem$depth;
151
- var {
152
- previousItem,
153
- nextItem
154
- } = _ref4;
155
- 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);
156
- }
157
- function getMinDepth(_ref5) {
158
- var {
159
- nextItem
160
- } = _ref5;
161
- if (nextItem) {
162
- return nextItem.depth;
163
- }
164
- return 0;
165
- }
166
-
167
- /**
168
- * Helper function to recursively flatten a tree
169
- *
170
- * @param items Items to flatten
171
- * @param parentId The current parentId of the items
172
- * @param depth The current depth of the items
173
- * @returns Flattened items
174
- */
175
- function flatten(items) {
176
- var parentId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
177
- var depth = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
178
- return items.reduce((acc, item, index) => [...acc, _objectSpread(_objectSpread({}, item), {}, {
179
- parentId,
180
- depth,
181
- index
182
- }), ...flatten(item.children, item.id, depth + 1)], []);
183
- }
184
-
185
- /**
186
- * Flattens a tree into a 1D array given the items
187
- * @param items The tree items to flatten
188
- * @returns The flattened tree items list
189
- */
190
- export function flattenTree(items) {
191
- // Should help prevent double flattening since FlattenedItems are valid TreeItems
192
- if (items.every(isFlattenedTreeItem)) {
193
- return [...items];
194
- }
195
- return flatten(items);
196
- }
197
-
198
- /**
199
- * Recursively checks for the item in a list of items.
200
- * The list does not have to be flattened prior to searching.
201
- *
202
- * @param items Items to search
203
- * @param itemId Item to find
204
- * @returns The item if found
205
- */
206
- export function findItemDeep(items, itemId) {
207
- for (var i = 0; i < items.length; i += 1) {
208
- var item = items[i];
209
- var {
210
- id,
211
- children
212
- } = item;
213
- if (id === itemId) {
214
- return item;
215
- }
216
- if (children.length) {
217
- var child = findItemDeep(children, itemId);
218
- if (child) {
219
- return child;
220
- }
221
- }
222
- }
223
- return undefined;
224
- }
225
- function countChildren(items) {
226
- var count = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
227
- return items.reduce((acc, _ref6) => {
228
- var {
229
- children
230
- } = _ref6;
231
- if (children.length) {
232
- return countChildren(children, acc + 1);
233
- }
234
- return acc + 1;
235
- }, count);
236
- }
237
- export function getChildCount(items, id) {
238
- var item = findItemDeep(items, id);
239
- return item ? countChildren(item.children) : 0;
240
- }
241
-
242
- /**
243
- * Removes the children of the list of parents from the list of flattened items
244
- *
245
- * @param items The flattened items to remove from
246
- * @param ids The parents we want to remove the children of
247
- * @returns The flattened items without the children of the parents
248
- */
249
- export function removeChildrenOf(items, ids) {
250
- var excludeParentIds = new Set(ids);
251
- return items.filter(item => {
252
- if (item.parentId != null && excludeParentIds.has(item.parentId)) {
253
- if (item.children.length) {
254
- excludeParentIds.add(item.id);
255
- }
256
- return false;
257
- }
258
- return true;
259
- });
260
- }
261
- //# sourceMappingURL=utilities.js.map