@deephaven/iris-grid 0.42.1-beta.2 → 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 (288) hide show
  1. package/dist/AdvancedFilterCreator.d.ts +1 -0
  2. package/dist/AdvancedFilterCreator.d.ts.map +1 -1
  3. package/dist/ColumnStatistics.d.ts.map +1 -1
  4. package/dist/IrisGrid.d.ts.map +1 -1
  5. package/dist/IrisGridModel.d.ts +5 -0
  6. package/dist/IrisGridModel.d.ts.map +1 -1
  7. package/dist/IrisGridProxyModel.d.ts +1 -0
  8. package/dist/IrisGridProxyModel.d.ts.map +1 -1
  9. package/dist/IrisGridTableModel.d.ts +1 -0
  10. package/dist/IrisGridTableModel.d.ts.map +1 -1
  11. package/dist/mousehandlers/IrisGridContextMenuHandler.d.ts.map +1 -1
  12. package/package.json +15 -15
  13. package/dist/AdvancedFilterCreator.css +0 -106
  14. package/dist/AdvancedFilterCreator.css.map +0 -1
  15. package/dist/AdvancedFilterCreator.js +0 -524
  16. package/dist/AdvancedFilterCreator.js.map +0 -1
  17. package/dist/AdvancedFilterCreatorFilterItem.css +0 -9
  18. package/dist/AdvancedFilterCreatorFilterItem.css.map +0 -1
  19. package/dist/AdvancedFilterCreatorFilterItem.js +0 -184
  20. package/dist/AdvancedFilterCreatorFilterItem.js.map +0 -1
  21. package/dist/AdvancedFilterCreatorSelectValue.css +0 -50
  22. package/dist/AdvancedFilterCreatorSelectValue.css.map +0 -1
  23. package/dist/AdvancedFilterCreatorSelectValue.js +0 -301
  24. package/dist/AdvancedFilterCreatorSelectValue.js.map +0 -1
  25. package/dist/AdvancedFilterCreatorSelectValueList.js +0 -272
  26. package/dist/AdvancedFilterCreatorSelectValueList.js.map +0 -1
  27. package/dist/ColumnHeaderGroup.js +0 -61
  28. package/dist/ColumnHeaderGroup.js.map +0 -1
  29. package/dist/ColumnStatistics.css +0 -76
  30. package/dist/ColumnStatistics.css.map +0 -1
  31. package/dist/ColumnStatistics.js +0 -197
  32. package/dist/ColumnStatistics.js.map +0 -1
  33. package/dist/CommonTypes.js +0 -2
  34. package/dist/CommonTypes.js.map +0 -1
  35. package/dist/CrossColumnSearch.css +0 -35
  36. package/dist/CrossColumnSearch.css.map +0 -1
  37. package/dist/CrossColumnSearch.js +0 -199
  38. package/dist/CrossColumnSearch.js.map +0 -1
  39. package/dist/FilterInputField.css +0 -56
  40. package/dist/FilterInputField.css.map +0 -1
  41. package/dist/FilterInputField.js +0 -232
  42. package/dist/FilterInputField.js.map +0 -1
  43. package/dist/GotoRow.css +0 -45
  44. package/dist/GotoRow.css.map +0 -1
  45. package/dist/GotoRow.js +0 -298
  46. package/dist/GotoRow.js.map +0 -1
  47. package/dist/IrisGrid.css +0 -359
  48. package/dist/IrisGrid.css.map +0 -1
  49. package/dist/IrisGrid.js +0 -3647
  50. package/dist/IrisGrid.js.map +0 -1
  51. package/dist/IrisGridBottomBar.css +0 -85
  52. package/dist/IrisGridBottomBar.css.map +0 -1
  53. package/dist/IrisGridBottomBar.js +0 -36
  54. package/dist/IrisGridBottomBar.js.map +0 -1
  55. package/dist/IrisGridCellOverflowModal.css +0 -17
  56. package/dist/IrisGridCellOverflowModal.css.map +0 -1
  57. package/dist/IrisGridCellOverflowModal.js +0 -157
  58. package/dist/IrisGridCellOverflowModal.js.map +0 -1
  59. package/dist/IrisGridCellRendererUtils.js +0 -20
  60. package/dist/IrisGridCellRendererUtils.js.map +0 -1
  61. package/dist/IrisGridCopyHandler.css +0 -64
  62. package/dist/IrisGridCopyHandler.css.map +0 -1
  63. package/dist/IrisGridCopyHandler.js +0 -331
  64. package/dist/IrisGridCopyHandler.js.map +0 -1
  65. package/dist/IrisGridDataBarCellRenderer.js +0 -10
  66. package/dist/IrisGridDataBarCellRenderer.js.map +0 -1
  67. package/dist/IrisGridIcons.js +0 -25
  68. package/dist/IrisGridIcons.js.map +0 -1
  69. package/dist/IrisGridMetricCalculator.js +0 -33
  70. package/dist/IrisGridMetricCalculator.js.map +0 -1
  71. package/dist/IrisGridModel.js +0 -255
  72. package/dist/IrisGridModel.js.map +0 -1
  73. package/dist/IrisGridModelFactory.js +0 -27
  74. package/dist/IrisGridModelFactory.js.map +0 -1
  75. package/dist/IrisGridModelUpdater.js +0 -96
  76. package/dist/IrisGridModelUpdater.js.map +0 -1
  77. package/dist/IrisGridPartitionSelector.css +0 -48
  78. package/dist/IrisGridPartitionSelector.css.map +0 -1
  79. package/dist/IrisGridPartitionSelector.js +0 -198
  80. package/dist/IrisGridPartitionSelector.js.map +0 -1
  81. package/dist/IrisGridProxyModel.js +0 -527
  82. package/dist/IrisGridProxyModel.js.map +0 -1
  83. package/dist/IrisGridRenderer.js +0 -779
  84. package/dist/IrisGridRenderer.js.map +0 -1
  85. package/dist/IrisGridShortcuts.js +0 -59
  86. package/dist/IrisGridShortcuts.js.map +0 -1
  87. package/dist/IrisGridTableModel.js +0 -269
  88. package/dist/IrisGridTableModel.js.map +0 -1
  89. package/dist/IrisGridTableModelTemplate.js +0 -1589
  90. package/dist/IrisGridTableModelTemplate.js.map +0 -1
  91. package/dist/IrisGridTestUtils.js +0 -121
  92. package/dist/IrisGridTestUtils.js.map +0 -1
  93. package/dist/IrisGridTextCellRenderer.js +0 -139
  94. package/dist/IrisGridTextCellRenderer.js.map +0 -1
  95. package/dist/IrisGridTheme.js +0 -96
  96. package/dist/IrisGridTheme.js.map +0 -1
  97. package/dist/IrisGridTheme.module.css +0 -69
  98. package/dist/IrisGridTheme.module.css.map +0 -1
  99. package/dist/IrisGridTreeTableModel.js +0 -145
  100. package/dist/IrisGridTreeTableModel.js.map +0 -1
  101. package/dist/IrisGridUtils.js +0 -1279
  102. package/dist/IrisGridUtils.js.map +0 -1
  103. package/dist/MissingKeyError.js +0 -15
  104. package/dist/MissingKeyError.js.map +0 -1
  105. package/dist/PartitionSelectorSearch.css +0 -22
  106. package/dist/PartitionSelectorSearch.css.map +0 -1
  107. package/dist/PartitionSelectorSearch.js +0 -317
  108. package/dist/PartitionSelectorSearch.js.map +0 -1
  109. package/dist/PendingDataBottomBar.css +0 -13
  110. package/dist/PendingDataBottomBar.css.map +0 -1
  111. package/dist/PendingDataBottomBar.js +0 -98
  112. package/dist/PendingDataBottomBar.js.map +0 -1
  113. package/dist/TableViewportUpdater.js +0 -156
  114. package/dist/TableViewportUpdater.js.map +0 -1
  115. package/dist/ToastBottomBar.js +0 -42
  116. package/dist/ToastBottomBar.js.map +0 -1
  117. package/dist/TreeTableViewportUpdater.js +0 -96
  118. package/dist/TreeTableViewportUpdater.js.map +0 -1
  119. package/dist/declaration.d.js +0 -2
  120. package/dist/declaration.d.js.map +0 -1
  121. package/dist/format-context-menus/CustomFormatAction.css +0 -25
  122. package/dist/format-context-menus/CustomFormatAction.css.map +0 -1
  123. package/dist/format-context-menus/CustomFormatAction.js +0 -132
  124. package/dist/format-context-menus/CustomFormatAction.js.map +0 -1
  125. package/dist/format-context-menus/DateTimeFormatContextMenu.js +0 -53
  126. package/dist/format-context-menus/DateTimeFormatContextMenu.js.map +0 -1
  127. package/dist/format-context-menus/DecimalFormatContextMenu.js +0 -59
  128. package/dist/format-context-menus/DecimalFormatContextMenu.js.map +0 -1
  129. package/dist/format-context-menus/FormatContextMenuUtils.js +0 -63
  130. package/dist/format-context-menus/FormatContextMenuUtils.js.map +0 -1
  131. package/dist/format-context-menus/IntegerFormatContextMenu.js +0 -43
  132. package/dist/format-context-menus/IntegerFormatContextMenu.js.map +0 -1
  133. package/dist/format-context-menus/index.js +0 -4
  134. package/dist/format-context-menus/index.js.map +0 -1
  135. package/dist/index.js +0 -24
  136. package/dist/index.js.map +0 -1
  137. package/dist/key-handlers/ClearFilterKeyHandler.js +0 -21
  138. package/dist/key-handlers/ClearFilterKeyHandler.js.map +0 -1
  139. package/dist/key-handlers/CopyKeyHandler.js +0 -31
  140. package/dist/key-handlers/CopyKeyHandler.js.map +0 -1
  141. package/dist/key-handlers/ReverseKeyHandler.js +0 -32
  142. package/dist/key-handlers/ReverseKeyHandler.js.map +0 -1
  143. package/dist/key-handlers/index.js +0 -4
  144. package/dist/key-handlers/index.js.map +0 -1
  145. package/dist/mousehandlers/IrisGridCellOverflowMouseHandler.js +0 -175
  146. package/dist/mousehandlers/IrisGridCellOverflowMouseHandler.js.map +0 -1
  147. package/dist/mousehandlers/IrisGridColumnSelectMouseHandler.js +0 -139
  148. package/dist/mousehandlers/IrisGridColumnSelectMouseHandler.js.map +0 -1
  149. package/dist/mousehandlers/IrisGridColumnTooltipMouseHandler.js +0 -83
  150. package/dist/mousehandlers/IrisGridColumnTooltipMouseHandler.js.map +0 -1
  151. package/dist/mousehandlers/IrisGridContextMenuHandler.css +0 -19
  152. package/dist/mousehandlers/IrisGridContextMenuHandler.css.map +0 -1
  153. package/dist/mousehandlers/IrisGridContextMenuHandler.js +0 -1218
  154. package/dist/mousehandlers/IrisGridContextMenuHandler.js.map +0 -1
  155. package/dist/mousehandlers/IrisGridDataSelectMouseHandler.js +0 -28
  156. package/dist/mousehandlers/IrisGridDataSelectMouseHandler.js.map +0 -1
  157. package/dist/mousehandlers/IrisGridFilterMouseHandler.js +0 -80
  158. package/dist/mousehandlers/IrisGridFilterMouseHandler.js.map +0 -1
  159. package/dist/mousehandlers/IrisGridRowTreeMouseHandler.js +0 -126
  160. package/dist/mousehandlers/IrisGridRowTreeMouseHandler.js.map +0 -1
  161. package/dist/mousehandlers/IrisGridSortMouseHandler.js +0 -46
  162. package/dist/mousehandlers/IrisGridSortMouseHandler.js.map +0 -1
  163. package/dist/mousehandlers/IrisGridTokenMouseHandler.js +0 -151
  164. package/dist/mousehandlers/IrisGridTokenMouseHandler.js.map +0 -1
  165. package/dist/mousehandlers/PendingMouseHandler.js +0 -39
  166. package/dist/mousehandlers/PendingMouseHandler.js.map +0 -1
  167. package/dist/mousehandlers/index.js +0 -11
  168. package/dist/mousehandlers/index.js.map +0 -1
  169. package/dist/sidebar/AdvancedSettings.js +0 -6
  170. package/dist/sidebar/AdvancedSettings.js.map +0 -1
  171. package/dist/sidebar/AdvancedSettingsMenu.js +0 -29
  172. package/dist/sidebar/AdvancedSettingsMenu.js.map +0 -1
  173. package/dist/sidebar/AdvancedSettingsType.js +0 -7
  174. package/dist/sidebar/AdvancedSettingsType.js.map +0 -1
  175. package/dist/sidebar/ChartBuilder.css +0 -56
  176. package/dist/sidebar/ChartBuilder.css.map +0 -1
  177. package/dist/sidebar/ChartBuilder.js +0 -443
  178. package/dist/sidebar/ChartBuilder.js.map +0 -1
  179. package/dist/sidebar/CustomColumnBuilder.css +0 -58
  180. package/dist/sidebar/CustomColumnBuilder.css.map +0 -1
  181. package/dist/sidebar/CustomColumnBuilder.js +0 -384
  182. package/dist/sidebar/CustomColumnBuilder.js.map +0 -1
  183. package/dist/sidebar/CustomColumnInput.js +0 -90
  184. package/dist/sidebar/CustomColumnInput.js.map +0 -1
  185. package/dist/sidebar/InputEditor.css +0 -35
  186. package/dist/sidebar/InputEditor.css.map +0 -1
  187. package/dist/sidebar/InputEditor.js +0 -177
  188. package/dist/sidebar/InputEditor.js.map +0 -1
  189. package/dist/sidebar/OptionType.js +0 -19
  190. package/dist/sidebar/OptionType.js.map +0 -1
  191. package/dist/sidebar/RollupRows.css +0 -120
  192. package/dist/sidebar/RollupRows.css.map +0 -1
  193. package/dist/sidebar/RollupRows.js +0 -519
  194. package/dist/sidebar/RollupRows.js.map +0 -1
  195. package/dist/sidebar/SelectDistinctBuilder.css +0 -41
  196. package/dist/sidebar/SelectDistinctBuilder.css.map +0 -1
  197. package/dist/sidebar/SelectDistinctBuilder.js +0 -155
  198. package/dist/sidebar/SelectDistinctBuilder.js.map +0 -1
  199. package/dist/sidebar/TableCsvExporter.css +0 -32
  200. package/dist/sidebar/TableCsvExporter.css.map +0 -1
  201. package/dist/sidebar/TableCsvExporter.js +0 -399
  202. package/dist/sidebar/TableCsvExporter.js.map +0 -1
  203. package/dist/sidebar/TableSaver.js +0 -487
  204. package/dist/sidebar/TableSaver.js.map +0 -1
  205. package/dist/sidebar/aggregations/AggregationEdit.css +0 -61
  206. package/dist/sidebar/aggregations/AggregationEdit.css.map +0 -1
  207. package/dist/sidebar/aggregations/AggregationEdit.js +0 -155
  208. package/dist/sidebar/aggregations/AggregationEdit.js.map +0 -1
  209. package/dist/sidebar/aggregations/AggregationOperation.js +0 -19
  210. package/dist/sidebar/aggregations/AggregationOperation.js.map +0 -1
  211. package/dist/sidebar/aggregations/AggregationUtils.js +0 -59
  212. package/dist/sidebar/aggregations/AggregationUtils.js.map +0 -1
  213. package/dist/sidebar/aggregations/Aggregations.css +0 -43
  214. package/dist/sidebar/aggregations/Aggregations.css.map +0 -1
  215. package/dist/sidebar/aggregations/Aggregations.js +0 -178
  216. package/dist/sidebar/aggregations/Aggregations.js.map +0 -1
  217. package/dist/sidebar/aggregations/index.js +0 -2
  218. package/dist/sidebar/aggregations/index.js.map +0 -1
  219. package/dist/sidebar/conditional-formatting/ColumnFormatEditor.js +0 -123
  220. package/dist/sidebar/conditional-formatting/ColumnFormatEditor.js.map +0 -1
  221. package/dist/sidebar/conditional-formatting/ConditionEditor.js +0 -243
  222. package/dist/sidebar/conditional-formatting/ConditionEditor.js.map +0 -1
  223. package/dist/sidebar/conditional-formatting/ConditionalFormatEditor.css +0 -22
  224. package/dist/sidebar/conditional-formatting/ConditionalFormatEditor.css.map +0 -1
  225. package/dist/sidebar/conditional-formatting/ConditionalFormatEditor.js +0 -109
  226. package/dist/sidebar/conditional-formatting/ConditionalFormatEditor.js.map +0 -1
  227. package/dist/sidebar/conditional-formatting/ConditionalFormattingAPIUtils.js +0 -18
  228. package/dist/sidebar/conditional-formatting/ConditionalFormattingAPIUtils.js.map +0 -1
  229. package/dist/sidebar/conditional-formatting/ConditionalFormattingMenu.css +0 -57
  230. package/dist/sidebar/conditional-formatting/ConditionalFormattingMenu.css.map +0 -1
  231. package/dist/sidebar/conditional-formatting/ConditionalFormattingMenu.js +0 -150
  232. package/dist/sidebar/conditional-formatting/ConditionalFormattingMenu.js.map +0 -1
  233. package/dist/sidebar/conditional-formatting/ConditionalFormattingUtils.js +0 -635
  234. package/dist/sidebar/conditional-formatting/ConditionalFormattingUtils.js.map +0 -1
  235. package/dist/sidebar/conditional-formatting/RowFormatEditor.js +0 -122
  236. package/dist/sidebar/conditional-formatting/RowFormatEditor.js.map +0 -1
  237. package/dist/sidebar/conditional-formatting/StyleEditor.css +0 -55
  238. package/dist/sidebar/conditional-formatting/StyleEditor.css.map +0 -1
  239. package/dist/sidebar/conditional-formatting/StyleEditor.js +0 -150
  240. package/dist/sidebar/conditional-formatting/StyleEditor.js.map +0 -1
  241. package/dist/sidebar/icons/BarIcon.js +0 -24
  242. package/dist/sidebar/icons/BarIcon.js.map +0 -1
  243. package/dist/sidebar/icons/FormatColumnWhereIcon.js +0 -42
  244. package/dist/sidebar/icons/FormatColumnWhereIcon.js.map +0 -1
  245. package/dist/sidebar/icons/FormatRowWhereIcon.js +0 -36
  246. package/dist/sidebar/icons/FormatRowWhereIcon.js.map +0 -1
  247. package/dist/sidebar/icons/HistogramIcon.js +0 -24
  248. package/dist/sidebar/icons/HistogramIcon.js.map +0 -1
  249. package/dist/sidebar/icons/LineIcon.js +0 -27
  250. package/dist/sidebar/icons/LineIcon.js.map +0 -1
  251. package/dist/sidebar/icons/PieIcon.js +0 -24
  252. package/dist/sidebar/icons/PieIcon.js.map +0 -1
  253. package/dist/sidebar/icons/ScatterIcon.js +0 -74
  254. package/dist/sidebar/icons/ScatterIcon.js.map +0 -1
  255. package/dist/sidebar/icons/index.js +0 -8
  256. package/dist/sidebar/icons/index.js.map +0 -1
  257. package/dist/sidebar/index.js +0 -18
  258. package/dist/sidebar/index.js.map +0 -1
  259. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.css +0 -68
  260. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.css.map +0 -1
  261. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.js +0 -964
  262. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.js.map +0 -1
  263. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilderUtils.js +0 -132
  264. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilderUtils.js.map +0 -1
  265. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingGroup.css +0 -29
  266. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingGroup.css.map +0 -1
  267. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingGroup.js +0 -188
  268. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingGroup.js.map +0 -1
  269. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingItem.js +0 -81
  270. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingItem.js.map +0 -1
  271. package/dist/sidebar/visibility-ordering-builder/sortable-tree/PointerSensorWithInteraction.js +0 -30
  272. package/dist/sidebar/visibility-ordering-builder/sortable-tree/PointerSensorWithInteraction.js.map +0 -1
  273. package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTree.js +0 -158
  274. package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTree.js.map +0 -1
  275. package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeInner.js +0 -146
  276. package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeInner.js.map +0 -1
  277. package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeItem.js +0 -59
  278. package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeItem.js.map +0 -1
  279. package/dist/sidebar/visibility-ordering-builder/sortable-tree/TreeItem.css +0 -139
  280. package/dist/sidebar/visibility-ordering-builder/sortable-tree/TreeItem.css.map +0 -1
  281. package/dist/sidebar/visibility-ordering-builder/sortable-tree/TreeItem.js +0 -44
  282. package/dist/sidebar/visibility-ordering-builder/sortable-tree/TreeItem.js.map +0 -1
  283. package/dist/sidebar/visibility-ordering-builder/sortable-tree/keyboardCoordinates.js +0 -129
  284. package/dist/sidebar/visibility-ordering-builder/sortable-tree/keyboardCoordinates.js.map +0 -1
  285. package/dist/sidebar/visibility-ordering-builder/sortable-tree/types.js +0 -4
  286. package/dist/sidebar/visibility-ordering-builder/sortable-tree/types.js.map +0 -1
  287. package/dist/sidebar/visibility-ordering-builder/sortable-tree/utilities.js +0 -261
  288. package/dist/sidebar/visibility-ordering-builder/sortable-tree/utilities.js.map +0 -1
@@ -1,85 +0,0 @@
1
- /* stylelint-disable scss/at-import-no-partial-leading-underscore */
2
- .iris-grid-bottom-bar {
3
- position: absolute;
4
- bottom: -50px;
5
- left: 0;
6
- right: 0;
7
- height: calc(50px * 2);
8
- background-color: #343e5d;
9
- color: #f0f0ee;
10
- display: flex;
11
- flex-direction: row;
12
- align-content: center;
13
- padding-left: 1em;
14
- padding-right: 1em;
15
- padding-bottom: 50px;
16
- }
17
- .iris-grid-bottom-bar .status-message,
18
- .iris-grid-bottom-bar .error-message {
19
- flex-grow: 1;
20
- flex-shrink: 1;
21
- font-weight: 600;
22
- margin-right: 1em;
23
- overflow: hidden;
24
- display: flex;
25
- flex-direction: row;
26
- align-items: center;
27
- margin-top: -4px;
28
- user-select: none;
29
- }
30
- .iris-grid-bottom-bar .status-message span,
31
- .iris-grid-bottom-bar .error-message span {
32
- white-space: nowrap;
33
- text-overflow: ellipsis;
34
- overflow: hidden;
35
- }
36
- .iris-grid-bottom-bar .status-message .svg-inline--fa,
37
- .iris-grid-bottom-bar .error-message .svg-inline--fa {
38
- margin-right: 0.5rem;
39
- }
40
- .iris-grid-bottom-bar .error-message {
41
- color: #f95d84;
42
- }
43
- .iris-grid-bottom-bar .buttons-container {
44
- flex-grow: 0;
45
- display: flex;
46
- flex-direction: row;
47
- align-items: center;
48
- }
49
- .iris-grid-bottom-bar .buttons-container .btn {
50
- min-width: 10rem;
51
- }
52
- .iris-grid-bottom-bar .buttons-container .btn .svg-inline--fa {
53
- margin-right: 0.5rem;
54
- }
55
- .iris-grid-bottom-bar .buttons-container .btn:not(:last-child) {
56
- margin-right: 0.5em;
57
- }
58
-
59
- .iris-grid-bottom-bar-slide-up-enter {
60
- transform: translate3d(0, 100%, 0);
61
- }
62
-
63
- .iris-grid-bottom-bar-slide-up-enter-active {
64
- transform: initial;
65
- transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
66
- }
67
-
68
- .iris-grid-bottom-bar-slide-up-enter-done {
69
- position: relative;
70
- bottom: 0;
71
- padding-bottom: 0;
72
- height: 50px;
73
- transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
74
- }
75
-
76
- .iris-grid-bottom-bar-slide-up-exit {
77
- transform: initial;
78
- }
79
-
80
- .iris-grid-bottom-bar-slide-up-exit-active {
81
- transform: translate3d(0, 100%, 0);
82
- transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
83
- }
84
-
85
- /*# sourceMappingURL=IrisGridBottomBar.css.map */
@@ -1 +0,0 @@
1
- {"version":3,"sourceRoot":"","sources":["../../../node_modules/@deephaven/components/scss/custom.scss","../src/IrisGridBottomBar.scss","../../../node_modules/@deephaven/components/scss/bootstrap_overrides.scss"],"names":[],"mappings":"AAAA;ACKA;EACE;EACA;EACA;EACA;EACA;EACA,kBC6Ca;ED5Cb,OCCe;EDAf;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;EAEE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;AAAA;EACE;EACA;EACA;;AAEF;AAAA;EACE;;AAIJ;EACE,OCxCE;;AD2CJ;EACE;EACA;EACA;EACA;;AAEA;EACE;;AACA;EACE;;AAIJ;EACE;;;AAKN;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA,QA5EkB;EA6ElB;;;AAGF;EACE;;;AAGF;EACE;EACA","file":"IrisGridBottomBar.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$bottom-bar-height: 50px;\n$ease-out-bounce-back: cubic-bezier(0.175, 0.885, 0.32, 1.275);\n\n.iris-grid-bottom-bar {\n position: absolute;\n bottom: -$bottom-bar-height;\n left: 0;\n right: 0;\n height: calc(#{$bottom-bar-height} * 2);\n background-color: $toast-bg;\n color: $toast-color;\n display: flex;\n flex-direction: row;\n align-content: center;\n padding-left: 1em;\n padding-right: 1em;\n padding-bottom: 50px;\n\n .status-message,\n .error-message {\n flex-grow: 1;\n flex-shrink: 1;\n font-weight: 600;\n margin-right: 1em;\n overflow: hidden;\n display: flex;\n flex-direction: row;\n align-items: center;\n margin-top: -4px;\n user-select: none;\n span {\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n }\n .svg-inline--fa {\n margin-right: 0.5rem;\n }\n }\n\n .error-message {\n color: $danger;\n }\n\n .buttons-container {\n flex-grow: 0;\n display: flex;\n flex-direction: row;\n align-items: center;\n\n .btn {\n min-width: 10rem;\n .svg-inline--fa {\n margin-right: 0.5rem;\n }\n }\n\n .btn:not(:last-child) {\n margin-right: 0.5em;\n }\n }\n}\n\n.iris-grid-bottom-bar-slide-up-enter {\n transform: translate3d(0, 100%, 0);\n}\n\n.iris-grid-bottom-bar-slide-up-enter-active {\n transform: initial;\n transition: transform $transition-long $ease-out-bounce-back;\n}\n\n.iris-grid-bottom-bar-slide-up-enter-done {\n position: relative;\n bottom: 0;\n padding-bottom: 0;\n height: $bottom-bar-height;\n transition: transform $transition-long $ease-out-bounce-back;\n}\n\n.iris-grid-bottom-bar-slide-up-exit {\n transform: initial;\n}\n\n.iris-grid-bottom-bar-slide-up-exit-active {\n transform: translate3d(0, 100%, 0);\n transition: transform $transition-long $ease-out-bounce-back;\n}\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,36 +0,0 @@
1
- import React from 'react';
2
- import classNames from 'classnames';
3
- import { CSSTransition } from 'react-transition-group';
4
- import { ThemeExport } from '@deephaven/components';
5
- import "./IrisGridBottomBar.css";
6
- export function IrisGridBottomBar(_ref) {
7
- var {
8
- animation = 'iris-grid-bottom-bar-slide-up',
9
- children,
10
- className,
11
- isShown,
12
- onClick,
13
- onEntering,
14
- onEntered,
15
- onExiting,
16
- onExited
17
- } = _ref;
18
- return /*#__PURE__*/React.createElement(CSSTransition, {
19
- in: isShown,
20
- timeout: ThemeExport.transitionMs,
21
- classNames: animation,
22
- onEntering: onEntering,
23
- onEntered: onEntered,
24
- onExiting: onExiting,
25
- onExited: onExited,
26
- mountOnEnter: true,
27
- unmountOnExit: true
28
- }, /*#__PURE__*/React.createElement("div", {
29
- className: classNames('iris-grid-bottom-bar', className),
30
- role: "presentation",
31
- onClick: onClick,
32
- onKeyPress: onClick
33
- }, children));
34
- }
35
- export default IrisGridBottomBar;
36
- //# sourceMappingURL=IrisGridBottomBar.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"IrisGridBottomBar.js","names":["React","classNames","CSSTransition","ThemeExport","IrisGridBottomBar","animation","children","className","isShown","onClick","onEntering","onEntered","onExiting","onExited","transitionMs"],"sources":["../src/IrisGridBottomBar.tsx"],"sourcesContent":["import React from 'react';\nimport classNames from 'classnames';\nimport { CSSTransition } from 'react-transition-group';\nimport { ThemeExport } from '@deephaven/components';\nimport './IrisGridBottomBar.scss';\n\nexport type IrisGridBottomBarProps = {\n animation?: string;\n children: React.ReactNode;\n onClick?: () => void;\n onEntering?: () => void;\n onEntered?: () => void;\n onExiting?: () => void;\n onExited?: () => void;\n isShown: boolean;\n className?: string;\n};\n\nexport function IrisGridBottomBar({\n animation = 'iris-grid-bottom-bar-slide-up',\n children,\n className,\n isShown,\n onClick,\n onEntering,\n onEntered,\n onExiting,\n onExited,\n}: IrisGridBottomBarProps): JSX.Element {\n return (\n <CSSTransition\n in={isShown}\n timeout={ThemeExport.transitionMs}\n classNames={animation}\n onEntering={onEntering}\n onEntered={onEntered}\n onExiting={onExiting}\n onExited={onExited}\n mountOnEnter\n unmountOnExit\n >\n <div\n className={classNames('iris-grid-bottom-bar', className)}\n role=\"presentation\"\n onClick={onClick}\n onKeyPress={onClick}\n >\n {children}\n </div>\n </CSSTransition>\n );\n}\n\nexport default IrisGridBottomBar;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,aAAa,QAAQ,wBAAwB;AACtD,SAASC,WAAW,QAAQ,uBAAuB;AAAC;AAepD,OAAO,SAASC,iBAAiB,OAUO;EAAA,IAVN;IAChCC,SAAS,GAAG,+BAA+B;IAC3CC,QAAQ;IACRC,SAAS;IACTC,OAAO;IACPC,OAAO;IACPC,UAAU;IACVC,SAAS;IACTC,SAAS;IACTC;EACsB,CAAC;EACvB,oBACE,oBAAC,aAAa;IACZ,EAAE,EAAEL,OAAQ;IACZ,OAAO,EAAEL,WAAW,CAACW,YAAa;IAClC,UAAU,EAAET,SAAU;IACtB,UAAU,EAAEK,UAAW;IACvB,SAAS,EAAEC,SAAU;IACrB,SAAS,EAAEC,SAAU;IACrB,QAAQ,EAAEC,QAAS;IACnB,YAAY;IACZ,aAAa;EAAA,gBAEb;IACE,SAAS,EAAEZ,UAAU,CAAC,sBAAsB,EAAEM,SAAS,CAAE;IACzD,IAAI,EAAC,cAAc;IACnB,OAAO,EAAEE,OAAQ;IACjB,UAAU,EAAEA;EAAQ,GAEnBH,QAAQ,CACL,CACQ;AAEpB;AAEA,eAAeF,iBAAiB"}
@@ -1,17 +0,0 @@
1
- /* stylelint-disable scss/at-import-no-partial-leading-underscore */
2
- .cell-overflow-modal .modal-title {
3
- width: 100%;
4
- display: flex;
5
- align-items: center;
6
- gap: 0.5rem;
7
- }
8
- .cell-overflow-modal .modal-title .overflow-modal-title {
9
- margin: 0;
10
- flex-grow: 1;
11
- }
12
- .cell-overflow-modal .modal-body {
13
- max-height: 80vh;
14
- flex-shrink: 1;
15
- }
16
-
17
- /*# sourceMappingURL=IrisGridCellOverflowModal.css.map */
@@ -1 +0,0 @@
1
- {"version":3,"sourceRoot":"","sources":["../../../node_modules/@deephaven/components/scss/custom.scss","../src/IrisGridCellOverflowModal.scss"],"names":[],"mappings":"AAAA;ACGE;EAEE;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAIJ;EACE;EACA","file":"IrisGridCellOverflowModal.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.cell-overflow-modal {\n .modal-title {\n // This is a wrapper created by reactstrap\n width: 100%;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n\n .overflow-modal-title {\n margin: 0;\n flex-grow: 1;\n }\n }\n\n .modal-body {\n max-height: 80vh;\n flex-shrink: 1;\n }\n}\n"]}
@@ -1,157 +0,0 @@
1
- import React, { useEffect, useRef, useState } from 'react';
2
- import { Editor } from '@deephaven/console';
3
- import { Button, CopyButton, Modal, ModalBody, ModalHeader } from '@deephaven/components';
4
- import { vsJson, vsListOrdered } from '@deephaven/icons';
5
- import "./IrisGridCellOverflowModal.css";
6
- export default function IrisGridCellOverflowModal(_ref) {
7
- var _editorRef$current$ge, _editorRef$current2;
8
- var {
9
- text,
10
- isOpen,
11
- onClose
12
- } = _ref;
13
- var [isOpened, setIsOpened] = useState(false);
14
- var [height, setHeight] = useState(0);
15
- var [showLineNumbers, setShowLineNumbers] = useState(false);
16
- var [isFormatted, setIsFormatted] = useState(false);
17
- var [canFormat, setCanFormat] = useState(false);
18
- var editorRef = useRef();
19
-
20
- // Update format button on open
21
- useEffect(function enableFormatButtonWhenOpen() {
22
- if (!isOpen) {
23
- return;
24
- }
25
- try {
26
- JSON.parse(text);
27
- setCanFormat(true);
28
- } catch (_unused) {
29
- setCanFormat(false);
30
- }
31
- setIsFormatted(false);
32
- }, [isOpen, text]);
33
-
34
- // Re-layout editor on height change
35
- useEffect(function updateLayoutOnHeightChange() {
36
- if (editorRef.current) {
37
- editorRef.current.layout();
38
- }
39
- }, [height]);
40
-
41
- // Update editor options on line number toggle
42
- useEffect(function toggleShowLineNumber() {
43
- if (editorRef.current) {
44
- editorRef.current.updateOptions({
45
- lineNumbers: showLineNumbers ? 'on' : 'off'
46
- });
47
- }
48
- }, [showLineNumbers]);
49
- function toggleLineNumbers() {
50
- setShowLineNumbers(!showLineNumbers);
51
- }
52
- function formatAsJSON() {
53
- var _editorRef$current;
54
- var model = (_editorRef$current = editorRef.current) === null || _editorRef$current === void 0 ? void 0 : _editorRef$current.getModel();
55
- if (!canFormat || !model) {
56
- return;
57
- }
58
- if (!isFormatted) {
59
- model.setValue(JSON.stringify(JSON.parse(text), undefined, 2));
60
- setIsFormatted(true);
61
- } else {
62
- model.setValue(text);
63
- setIsFormatted(false);
64
- }
65
- autoSetLineNumbers();
66
- }
67
- function autoSetLineNumbers() {
68
- var _editor$getModel$getL, _editor$getModel;
69
- var editor = editorRef.current;
70
- if (!editor) {
71
- return;
72
- }
73
- setShowLineNumbers(((_editor$getModel$getL = (_editor$getModel = editor.getModel()) === null || _editor$getModel === void 0 ? void 0 : _editor$getModel.getLineCount()) !== null && _editor$getModel$getL !== void 0 ? _editor$getModel$getL : 0) > 1);
74
- }
75
- function handleToggle() {
76
- if (isOpened) {
77
- editorRef.current = undefined;
78
- onClose();
79
- }
80
- }
81
- function onEditorInitialized(editor) {
82
- editorRef.current = editor;
83
- setHeight(editor.getContentHeight());
84
- editor.onDidContentSizeChange(_ref2 => {
85
- var {
86
- contentHeight
87
- } = _ref2;
88
- return setHeight(contentHeight);
89
- });
90
- autoSetLineNumbers();
91
- }
92
- if (!isOpen && !isOpened) {
93
- return null;
94
- }
95
- return /*#__PURE__*/React.createElement(Modal, {
96
- isOpen: isOpen,
97
- centered: true,
98
- keyboard: true,
99
- toggle: handleToggle,
100
- onOpened: () => setIsOpened(true),
101
- onClosed: () => {
102
- setIsOpened(false);
103
- setHeight(0);
104
- },
105
- className: "theme-bg-dark cell-overflow-modal",
106
- size: "xl"
107
- }, /*#__PURE__*/React.createElement(ModalHeader, {
108
- toggle: onClose
109
- }, /*#__PURE__*/React.createElement("h5", {
110
- className: "overflow-modal-title"
111
- }, "Cell Contents"), /*#__PURE__*/React.createElement(CopyButton, {
112
- kind: "inline",
113
- tooltip: "Copy cell contents",
114
- copy: (_editorRef$current$ge = (_editorRef$current2 = editorRef.current) === null || _editorRef$current2 === void 0 ? void 0 : _editorRef$current2.getValue()) !== null && _editorRef$current$ge !== void 0 ? _editorRef$current$ge : text
115
- }), /*#__PURE__*/React.createElement(Button, {
116
- kind: "inline",
117
- active: showLineNumbers,
118
- icon: vsListOrdered,
119
- tooltip: "Toggle line numbers",
120
- onClick: toggleLineNumbers
121
- }), canFormat && /*#__PURE__*/React.createElement(Button, {
122
- kind: "inline",
123
- icon: vsJson,
124
- active: isFormatted,
125
- tooltip: "Format as JSON",
126
- onClick: formatAsJSON
127
- })), /*#__PURE__*/React.createElement(ModalBody, {
128
- style: {
129
- height
130
- }
131
- }, /*#__PURE__*/React.createElement(Editor, {
132
- onEditorInitialized: onEditorInitialized,
133
- settings: {
134
- value: text,
135
- readOnly: true,
136
- wordWrap: 'on',
137
- // Loading json language w/o the monaco workers causes UI freezes and monaco errors. TS colorizes the same
138
- language: canFormat ? 'typescript' : 'plaintext',
139
- folding: canFormat,
140
- padding: {
141
- bottom: 16
142
- },
143
- lineNumbers: showLineNumbers ? 'on' : 'off',
144
- overviewRulerLanes: 0,
145
- renderLineHighlight: 'none',
146
- /*
147
- The entire string may be 1 giant line
148
- Monaco by default seeds find w/ that line
149
- On very long strings this hangs the browser, so never seed the search
150
- */
151
- find: {
152
- seedSearchStringFromSelection: 'never'
153
- }
154
- }
155
- })));
156
- }
157
- //# sourceMappingURL=IrisGridCellOverflowModal.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"IrisGridCellOverflowModal.js","names":["React","useEffect","useRef","useState","Editor","Button","CopyButton","Modal","ModalBody","ModalHeader","vsJson","vsListOrdered","IrisGridCellOverflowModal","text","isOpen","onClose","isOpened","setIsOpened","height","setHeight","showLineNumbers","setShowLineNumbers","isFormatted","setIsFormatted","canFormat","setCanFormat","editorRef","enableFormatButtonWhenOpen","JSON","parse","updateLayoutOnHeightChange","current","layout","toggleShowLineNumber","updateOptions","lineNumbers","toggleLineNumbers","formatAsJSON","model","getModel","setValue","stringify","undefined","autoSetLineNumbers","editor","getLineCount","handleToggle","onEditorInitialized","getContentHeight","onDidContentSizeChange","contentHeight","getValue","value","readOnly","wordWrap","language","folding","padding","bottom","overviewRulerLanes","renderLineHighlight","find","seedSearchStringFromSelection"],"sources":["../src/IrisGridCellOverflowModal.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport { Editor } from '@deephaven/console';\nimport * as monaco from 'monaco-editor';\nimport {\n Button,\n CopyButton,\n Modal,\n ModalBody,\n ModalHeader,\n} from '@deephaven/components';\nimport { vsJson, vsListOrdered } from '@deephaven/icons';\nimport './IrisGridCellOverflowModal.scss';\n\ninterface IrisGridCellOverflowModalProps {\n text: string;\n isOpen: boolean;\n onClose: () => void;\n}\n\nexport default function IrisGridCellOverflowModal({\n text,\n isOpen,\n onClose,\n}: IrisGridCellOverflowModalProps): React.ReactElement | null {\n const [isOpened, setIsOpened] = useState(false);\n const [height, setHeight] = useState(0);\n const [showLineNumbers, setShowLineNumbers] = useState(false);\n const [isFormatted, setIsFormatted] = useState(false);\n const [canFormat, setCanFormat] = useState(false);\n const editorRef = useRef<monaco.editor.IStandaloneCodeEditor>();\n\n // Update format button on open\n useEffect(\n function enableFormatButtonWhenOpen() {\n if (!isOpen) {\n return;\n }\n\n try {\n JSON.parse(text);\n setCanFormat(true);\n } catch {\n setCanFormat(false);\n }\n setIsFormatted(false);\n },\n [isOpen, text]\n );\n\n // Re-layout editor on height change\n useEffect(\n function updateLayoutOnHeightChange() {\n if (editorRef.current) {\n editorRef.current.layout();\n }\n },\n [height]\n );\n\n // Update editor options on line number toggle\n useEffect(\n function toggleShowLineNumber() {\n if (editorRef.current) {\n editorRef.current.updateOptions({\n lineNumbers: showLineNumbers ? 'on' : 'off',\n });\n }\n },\n [showLineNumbers]\n );\n\n function toggleLineNumbers() {\n setShowLineNumbers(!showLineNumbers);\n }\n\n function formatAsJSON() {\n const model = editorRef.current?.getModel();\n if (!canFormat || !model) {\n return;\n }\n\n if (!isFormatted) {\n model.setValue(JSON.stringify(JSON.parse(text), undefined, 2));\n setIsFormatted(true);\n } else {\n model.setValue(text);\n setIsFormatted(false);\n }\n autoSetLineNumbers();\n }\n\n function autoSetLineNumbers() {\n const editor = editorRef.current;\n if (!editor) {\n return;\n }\n\n setShowLineNumbers((editor.getModel()?.getLineCount() ?? 0) > 1);\n }\n\n function handleToggle() {\n if (isOpened) {\n editorRef.current = undefined;\n onClose();\n }\n }\n\n function onEditorInitialized(editor: monaco.editor.IStandaloneCodeEditor) {\n editorRef.current = editor;\n setHeight(editor.getContentHeight());\n editor.onDidContentSizeChange(({ contentHeight }) =>\n setHeight(contentHeight)\n );\n autoSetLineNumbers();\n }\n\n if (!isOpen && !isOpened) {\n return null;\n }\n\n return (\n <Modal\n isOpen={isOpen}\n centered\n keyboard\n toggle={handleToggle}\n onOpened={() => setIsOpened(true)}\n onClosed={() => {\n setIsOpened(false);\n setHeight(0);\n }}\n className=\"theme-bg-dark cell-overflow-modal\"\n size=\"xl\"\n >\n <ModalHeader toggle={onClose}>\n <h5 className=\"overflow-modal-title\">Cell Contents</h5>\n <CopyButton\n kind=\"inline\"\n tooltip=\"Copy cell contents\"\n copy={editorRef.current?.getValue() ?? text}\n />\n <Button\n kind=\"inline\"\n active={showLineNumbers}\n icon={vsListOrdered}\n tooltip=\"Toggle line numbers\"\n onClick={toggleLineNumbers}\n />\n {canFormat && (\n <Button\n kind=\"inline\"\n icon={vsJson}\n active={isFormatted}\n tooltip=\"Format as JSON\"\n onClick={formatAsJSON}\n />\n )}\n </ModalHeader>\n <ModalBody style={{ height }}>\n <Editor\n onEditorInitialized={onEditorInitialized}\n settings={{\n value: text,\n readOnly: true,\n wordWrap: 'on',\n // Loading json language w/o the monaco workers causes UI freezes and monaco errors. TS colorizes the same\n language: canFormat ? 'typescript' : 'plaintext',\n folding: canFormat,\n padding: { bottom: 16 },\n lineNumbers: showLineNumbers ? 'on' : 'off',\n overviewRulerLanes: 0,\n renderLineHighlight: 'none',\n /*\n The entire string may be 1 giant line\n Monaco by default seeds find w/ that line\n On very long strings this hangs the browser, so never seed the search\n */\n find: { seedSearchStringFromSelection: 'never' },\n }}\n />\n </ModalBody>\n </Modal>\n );\n}\n"],"mappings":"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"}
@@ -1,20 +0,0 @@
1
- import { getIcon } from "./IrisGridIcons.js";
2
- class IrisGridCellRendererUtils {
3
- static drawTreeMarker(context, state, columnX, rowY, treeBox, color, isExpanded) {
4
- context.save();
5
- var {
6
- x1,
7
- y1
8
- } = treeBox;
9
- var markerIcon = isExpanded ? getIcon('caretDown') : getIcon('caretRight');
10
- var iconX = columnX + x1 - 2;
11
- var iconY = rowY + y1 + 2.5;
12
- context.fillStyle = color;
13
- context.textAlign = 'center';
14
- context.translate(iconX, iconY);
15
- context.fill(markerIcon);
16
- context.restore();
17
- }
18
- }
19
- export default IrisGridCellRendererUtils;
20
- //# sourceMappingURL=IrisGridCellRendererUtils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"IrisGridCellRendererUtils.js","names":["getIcon","IrisGridCellRendererUtils","drawTreeMarker","context","state","columnX","rowY","treeBox","color","isExpanded","save","x1","y1","markerIcon","iconX","iconY","fillStyle","textAlign","translate","fill","restore"],"sources":["../src/IrisGridCellRendererUtils.ts"],"sourcesContent":["import { BoxCoordinates, Coordinate } from '@deephaven/grid';\nimport { getIcon } from './IrisGridIcons';\nimport { IrisGridRenderState } from './IrisGridRenderer';\n\nclass IrisGridCellRendererUtils {\n static drawTreeMarker(\n context: CanvasRenderingContext2D,\n state: IrisGridRenderState,\n columnX: Coordinate,\n rowY: Coordinate,\n treeBox: BoxCoordinates,\n color: string,\n isExpanded: boolean\n ): void {\n context.save();\n const { x1, y1 } = treeBox;\n const markerIcon = isExpanded\n ? getIcon('caretDown')\n : getIcon('caretRight');\n const iconX = columnX + x1 - 2;\n const iconY = rowY + y1 + 2.5;\n\n context.fillStyle = color;\n context.textAlign = 'center';\n context.translate(iconX, iconY);\n context.fill(markerIcon);\n context.restore();\n }\n}\n\nexport default IrisGridCellRendererUtils;\n"],"mappings":"SACSA,OAAO;AAGhB,MAAMC,yBAAyB,CAAC;EAC9B,OAAOC,cAAc,CACnBC,OAAiC,EACjCC,KAA0B,EAC1BC,OAAmB,EACnBC,IAAgB,EAChBC,OAAuB,EACvBC,KAAa,EACbC,UAAmB,EACb;IACNN,OAAO,CAACO,IAAI,EAAE;IACd,IAAM;MAAEC,EAAE;MAAEC;IAAG,CAAC,GAAGL,OAAO;IAC1B,IAAMM,UAAU,GAAGJ,UAAU,GACzBT,OAAO,CAAC,WAAW,CAAC,GACpBA,OAAO,CAAC,YAAY,CAAC;IACzB,IAAMc,KAAK,GAAGT,OAAO,GAAGM,EAAE,GAAG,CAAC;IAC9B,IAAMI,KAAK,GAAGT,IAAI,GAAGM,EAAE,GAAG,GAAG;IAE7BT,OAAO,CAACa,SAAS,GAAGR,KAAK;IACzBL,OAAO,CAACc,SAAS,GAAG,QAAQ;IAC5Bd,OAAO,CAACe,SAAS,CAACJ,KAAK,EAAEC,KAAK,CAAC;IAC/BZ,OAAO,CAACgB,IAAI,CAACN,UAAU,CAAC;IACxBV,OAAO,CAACiB,OAAO,EAAE;EACnB;AACF;AAEA,eAAenB,yBAAyB"}
@@ -1,64 +0,0 @@
1
- /* stylelint-disable scss/at-import-no-partial-leading-underscore */
2
- .iris-grid-copy-handler {
3
- position: absolute;
4
- bottom: -50px;
5
- left: 0;
6
- right: 0;
7
- height: 100px;
8
- background-color: #343e5d;
9
- color: #f0f0ee;
10
- display: flex;
11
- flex-direction: row;
12
- align-content: center;
13
- padding-left: 1em;
14
- padding-right: 1em;
15
- padding-bottom: 50px;
16
- }
17
- .iris-grid-copy-handler .status-message {
18
- flex-grow: 1;
19
- font-weight: 600;
20
- margin-right: 1em;
21
- text-overflow: ellipsis;
22
- display: flex;
23
- flex-direction: row;
24
- align-items: center;
25
- margin-top: -4px;
26
- user-select: none;
27
- }
28
- .iris-grid-copy-handler .buttons-container {
29
- flex-grow: 0;
30
- display: flex;
31
- flex-direction: row;
32
- align-items: center;
33
- }
34
- .iris-grid-copy-handler .buttons-container .btn {
35
- min-width: 10rem;
36
- }
37
- .iris-grid-copy-handler .buttons-container .btn-cancel {
38
- color: #fcfcfa;
39
- border-color: #fcfcfa;
40
- margin-right: 0.5em;
41
- }
42
- .iris-grid-copy-handler .buttons-container .btn-copy:disabled {
43
- opacity: 1;
44
- }
45
-
46
- .copy-slide-up-enter {
47
- transform: translateY(50px);
48
- }
49
-
50
- .copy-slide-up-enter-active {
51
- transform: initial;
52
- transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
53
- }
54
-
55
- .copy-slide-up-exit {
56
- transform: initial;
57
- }
58
-
59
- .copy-slide-up-exit-active {
60
- transform: translateY(50px);
61
- transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
62
- }
63
-
64
- /*# sourceMappingURL=IrisGridCopyHandler.css.map */
@@ -1 +0,0 @@
1
- {"version":3,"sourceRoot":"","sources":["../../../node_modules/@deephaven/components/scss/custom.scss","../src/IrisGridCopyHandler.scss","../../../node_modules/@deephaven/components/scss/bootstrap_overrides.scss"],"names":[],"mappings":"AAAA;ACIA;EACE;EACA;EACA;EACA;EACA;EACA,kBC8Ca;ED7Cb,OCEe;EDDf;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE,OCxBK;EDyBL,cCzBK;ED0BL;;AAGF;EACE;;;AAKN;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA","file":"IrisGridCopyHandler.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$ease-out-bounce-back: cubic-bezier(0.175, 0.885, 0.32, 1.275);\n\n.iris-grid-copy-handler {\n position: absolute;\n bottom: -50px;\n left: 0;\n right: 0;\n height: 100px;\n background-color: $toast-bg;\n color: $toast-color;\n display: flex;\n flex-direction: row;\n align-content: center;\n padding-left: 1em;\n padding-right: 1em;\n padding-bottom: 50px;\n\n .status-message {\n flex-grow: 1;\n font-weight: 600;\n margin-right: 1em;\n text-overflow: ellipsis;\n display: flex;\n flex-direction: row;\n align-items: center;\n margin-top: -4px;\n user-select: none;\n }\n\n .buttons-container {\n flex-grow: 0;\n display: flex;\n flex-direction: row;\n align-items: center;\n\n .btn {\n min-width: 10rem;\n }\n\n .btn-cancel {\n color: $gray-100;\n border-color: $gray-100;\n margin-right: 0.5em;\n }\n\n .btn-copy:disabled {\n opacity: 1;\n }\n }\n}\n\n.copy-slide-up-enter {\n transform: translateY(50px);\n}\n\n.copy-slide-up-enter-active {\n transform: initial;\n transition: transform $transition-long $ease-out-bounce-back;\n}\n\n.copy-slide-up-exit {\n transform: initial;\n}\n\n.copy-slide-up-exit-active {\n transform: translateY(50px);\n transition: transform $transition-long $ease-out-bounce-back;\n}\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"]}