@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,331 +0,0 @@
1
- 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; }
2
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
3
- 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); }
4
- import React, { Component } from 'react';
5
- import classNames from 'classnames';
6
- import { CSSTransition } from 'react-transition-group';
7
- import { Button, LoadingSpinner, ThemeExport } from '@deephaven/components';
8
- import { GridRange, GridUtils } from '@deephaven/grid';
9
- import { CanceledPromiseError, copyToClipboard, PromiseUtils } from '@deephaven/utils';
10
- import Log from '@deephaven/log';
11
- import IrisGridUtils from "./IrisGridUtils.js";
12
- import IrisGridBottomBar from "./IrisGridBottomBar.js";
13
- import "./IrisGridCopyHandler.css";
14
- var log = Log.module('IrisGridCopyHandler');
15
- /**
16
- * Component for handling copying of data from the Iris Grid.
17
- * - Prompts if necessary (large amount of rows copied)
18
- * - Tries to async copy, falls back to showing a "Click to Copy" button if that fails
19
- */
20
- class IrisGridCopyHandler extends Component {
21
- /**
22
- * Different states for the current copy operation
23
- */
24
-
25
- static getStatusMessageText(copyState, rowCount) {
26
- switch (copyState) {
27
- case IrisGridCopyHandler.COPY_STATES.CONFIRMATION_REQUIRED:
28
- return "Are you sure you want to copy ".concat(rowCount.toLocaleString(), " rows to your clipboard?");
29
- case IrisGridCopyHandler.COPY_STATES.CLICK_REQUIRED:
30
- return "Fetched ".concat(rowCount.toLocaleString(), " rows!");
31
- case IrisGridCopyHandler.COPY_STATES.FETCH_ERROR:
32
- return 'Unable to copy data.';
33
- case IrisGridCopyHandler.COPY_STATES.FETCH_IN_PROGRESS:
34
- return "Fetching ".concat(rowCount.toLocaleString(), " rows for clipboard...");
35
- case IrisGridCopyHandler.COPY_STATES.DONE:
36
- return 'Copied to Clipboard!';
37
- default:
38
- return '';
39
- }
40
- }
41
- static getCopyButtonText(buttonState) {
42
- switch (buttonState) {
43
- case IrisGridCopyHandler.BUTTON_STATES.FETCH_IN_PROGRESS:
44
- return 'Fetching';
45
- case IrisGridCopyHandler.BUTTON_STATES.CLICK_TO_COPY:
46
- return 'Click to Copy';
47
- case IrisGridCopyHandler.BUTTON_STATES.RETRY:
48
- return 'Retry';
49
- default:
50
- return 'Copy';
51
- }
52
- }
53
- constructor(props) {
54
- super(props);
55
- _defineProperty(this, "textData", void 0);
56
- _defineProperty(this, "hideTimer", void 0);
57
- _defineProperty(this, "fetchPromise", void 0);
58
- this.handleBackgroundClick = this.handleBackgroundClick.bind(this);
59
- this.handleCancelClick = this.handleCancelClick.bind(this);
60
- this.handleCopyClick = this.handleCopyClick.bind(this);
61
- this.handleHideTimeout = this.handleHideTimeout.bind(this);
62
- this.state = {
63
- error: undefined,
64
- copyState: IrisGridCopyHandler.COPY_STATES.IDLE,
65
- buttonState: IrisGridCopyHandler.BUTTON_STATES.COPY,
66
- isShown: false,
67
- rowCount: 0
68
- };
69
- }
70
- componentDidMount() {
71
- var {
72
- copyOperation
73
- } = this.props;
74
- if (copyOperation != null) {
75
- this.startCopy();
76
- }
77
- }
78
- componentDidUpdate(prevProps) {
79
- var {
80
- copyOperation
81
- } = this.props;
82
- if (prevProps.copyOperation !== copyOperation) {
83
- this.startCopy();
84
- }
85
- }
86
- componentWillUnmount() {
87
- this.stopCopy();
88
- }
89
- startCopy() {
90
- log.debug2('startCopy');
91
- this.stopCopy();
92
- var {
93
- copyOperation
94
- } = this.props;
95
- if (copyOperation == null) {
96
- log.debug2('No copy operation set, cancelling out');
97
- this.setState({
98
- isShown: false
99
- });
100
- return;
101
- }
102
- var {
103
- ranges,
104
- error
105
- } = copyOperation;
106
- if (error != null) {
107
- log.debug('Showing copy error', error);
108
- this.setState({
109
- isShown: true,
110
- copyState: IrisGridCopyHandler.COPY_STATES.DONE,
111
- error
112
- });
113
- this.startHideTimer();
114
- return;
115
- }
116
- var rowCount = GridRange.rowCount(ranges);
117
- this.setState({
118
- rowCount,
119
- isShown: true,
120
- error: undefined
121
- });
122
- if (rowCount > IrisGridCopyHandler.NO_PROMPT_THRESHOLD) {
123
- this.setState({
124
- buttonState: IrisGridCopyHandler.BUTTON_STATES.COPY,
125
- copyState: IrisGridCopyHandler.COPY_STATES.CONFIRMATION_REQUIRED
126
- });
127
- } else {
128
- this.startFetch();
129
- }
130
- }
131
- stopCopy() {
132
- this.textData = undefined;
133
- this.stopFetch();
134
- this.stopHideTimer();
135
- }
136
- handleBackgroundClick() {
137
- log.debug2('handleBackgroundClick');
138
- var {
139
- copyState
140
- } = this.state;
141
- if (copyState === IrisGridCopyHandler.COPY_STATES.DONE) {
142
- this.setState({
143
- isShown: false
144
- });
145
- }
146
- }
147
- handleCancelClick() {
148
- log.debug2('handleCancelClick');
149
- this.stopFetch();
150
- this.setState({
151
- isShown: false
152
- });
153
- }
154
- handleCopyClick() {
155
- log.debug2('handleCopyClick');
156
- if (this.textData != null) {
157
- this.copyText(this.textData);
158
- } else {
159
- this.startFetch();
160
- }
161
- }
162
- handleHideTimeout() {
163
- log.debug2('handleHideTimeout');
164
- this.stopHideTimer();
165
- this.setState({
166
- isShown: false
167
- });
168
- }
169
- copyText(text) {
170
- log.debug2('copyText', text);
171
- this.textData = text;
172
- copyToClipboard(text).then(() => {
173
- this.setState({
174
- copyState: IrisGridCopyHandler.COPY_STATES.DONE
175
- });
176
- this.startHideTimer();
177
- }, error => {
178
- log.error('copyText error', error);
179
- this.setState({
180
- buttonState: IrisGridCopyHandler.BUTTON_STATES.CLICK_TO_COPY,
181
- copyState: IrisGridCopyHandler.COPY_STATES.CLICK_REQUIRED
182
- });
183
- });
184
- }
185
- startFetch() {
186
- this.stopFetch();
187
- this.setState({
188
- buttonState: IrisGridCopyHandler.BUTTON_STATES.FETCH_IN_PROGRESS,
189
- copyState: IrisGridCopyHandler.COPY_STATES.FETCH_IN_PROGRESS
190
- });
191
- var {
192
- model,
193
- copyOperation
194
- } = this.props;
195
- var {
196
- ranges,
197
- includeHeaders,
198
- userColumnWidths,
199
- movedColumns,
200
- formatValues
201
- } = copyOperation;
202
- log.debug('startFetch', ranges);
203
- var hiddenColumns = IrisGridUtils.getHiddenColumns(userColumnWidths);
204
- var modelRanges = GridUtils.getModelRanges(ranges, movedColumns);
205
- if (hiddenColumns.length > 0) {
206
- var subtractRanges = hiddenColumns.map(GridRange.makeColumn);
207
- modelRanges = GridRange.subtractRangesFromRanges(modelRanges, subtractRanges);
208
- }
209
-
210
- // Remove the hidden columns from the snapshot
211
- var formatValue = formatValues != null && formatValues ? (value, column) => model.displayString(value, column.type, column.name) : value => "".concat(value);
212
- this.fetchPromise = PromiseUtils.makeCancelable(model.textSnapshot(modelRanges, includeHeaders, formatValue));
213
- this.fetchPromise.then(text => {
214
- this.fetchPromise = undefined;
215
- this.copyText(text);
216
- }).catch(error => {
217
- if (error instanceof CanceledPromiseError) {
218
- log.debug('User cancelled copy.');
219
- } else {
220
- log.error('Error fetching contents', error);
221
- this.fetchPromise = undefined;
222
- this.setState({
223
- buttonState: IrisGridCopyHandler.BUTTON_STATES.RETRY,
224
- copyState: IrisGridCopyHandler.COPY_STATES.FETCH_ERROR
225
- });
226
- }
227
- });
228
- }
229
- stopFetch() {
230
- if (this.fetchPromise) {
231
- log.debug2('stopFetch');
232
- this.fetchPromise.cancel();
233
- this.fetchPromise = undefined;
234
- }
235
- }
236
- startHideTimer() {
237
- this.stopHideTimer();
238
- this.hideTimer = setTimeout(this.handleHideTimeout, IrisGridCopyHandler.HIDE_TIMEOUT);
239
- }
240
- stopHideTimer() {
241
- if (this.hideTimer != null) {
242
- clearTimeout(this.hideTimer);
243
- this.hideTimer = undefined;
244
- }
245
- }
246
- render() {
247
- var {
248
- onEntering,
249
- onEntered,
250
- onExiting,
251
- onExited
252
- } = this.props;
253
- var {
254
- buttonState,
255
- copyState,
256
- isShown,
257
- rowCount,
258
- error
259
- } = this.state;
260
- var animation = copyState === IrisGridCopyHandler.COPY_STATES.DONE ? 'fade' : 'copy-slide-up';
261
- var copyButtonText = IrisGridCopyHandler.getCopyButtonText(buttonState);
262
- var statusMessageText = error !== null && error !== void 0 ? error : IrisGridCopyHandler.getStatusMessageText(copyState, rowCount);
263
- var isButtonContainerVisible = copyState !== IrisGridCopyHandler.COPY_STATES.DONE;
264
- var isFetching = buttonState === IrisGridCopyHandler.BUTTON_STATES.FETCH_IN_PROGRESS;
265
- var isDone = copyState === IrisGridCopyHandler.COPY_STATES.DONE;
266
- return /*#__PURE__*/React.createElement(IrisGridBottomBar, {
267
- animation: animation,
268
- isShown: isShown,
269
- className: classNames('iris-grid-copy-handler', {
270
- 'copy-done': isDone
271
- }),
272
- onClick: this.handleBackgroundClick,
273
- onEntering: onEntering,
274
- onEntered: onEntered,
275
- onExiting: onExiting,
276
- onExited: onExited
277
- }, /*#__PURE__*/React.createElement("div", {
278
- className: "status-message"
279
- }, /*#__PURE__*/React.createElement("span", null, statusMessageText)), /*#__PURE__*/React.createElement(CSSTransition, {
280
- in: isButtonContainerVisible,
281
- timeout: ThemeExport.transitionMs,
282
- classNames: "fade",
283
- mountOnEnter: true,
284
- unmountOnExit: true
285
- }, /*#__PURE__*/React.createElement("div", {
286
- className: "buttons-container"
287
- }, /*#__PURE__*/React.createElement("button", {
288
- type: "button",
289
- className: "btn btn-outline-secondary btn-cancel",
290
- onClick: this.handleCancelClick
291
- }, "Cancel"), /*#__PURE__*/React.createElement(Button, {
292
- kind: isFetching ? 'tertiary' : 'primary',
293
- className: classNames('btn-copy', {
294
- 'btn-spinner': isFetching
295
- }),
296
- onClick: this.handleCopyClick,
297
- disabled: isFetching
298
- }, isFetching && /*#__PURE__*/React.createElement(LoadingSpinner, null), copyButtonText))));
299
- }
300
- }
301
- _defineProperty(IrisGridCopyHandler, "NO_PROMPT_THRESHOLD", 10000);
302
- _defineProperty(IrisGridCopyHandler, "HIDE_TIMEOUT", 3000);
303
- _defineProperty(IrisGridCopyHandler, "COPY_STATES", {
304
- // No copy operation in progress
305
- IDLE: 'IDLE',
306
- // Large copy operation, confirmation required
307
- CONFIRMATION_REQUIRED: 'CONFIRMATION_REQUIRED',
308
- // Fetch is currently in progress
309
- FETCH_IN_PROGRESS: 'FETCH_IN_PROGRESS',
310
- // There was an error fetching the data
311
- FETCH_ERROR: 'FETCH_ERROR',
312
- // Click is required to copy
313
- CLICK_REQUIRED: 'CLICK_REQUIRED',
314
- // The copy operation is completed and successfully copied to the clipboard
315
- DONE: 'DONE'
316
- });
317
- _defineProperty(IrisGridCopyHandler, "BUTTON_STATES", {
318
- COPY: 'COPY',
319
- FETCH_IN_PROGRESS: 'FETCH_IN_PROGRESS',
320
- CLICK_TO_COPY: 'CLICK_TO_COPY',
321
- RETRY: 'RETRY'
322
- });
323
- _defineProperty(IrisGridCopyHandler, "defaultProps", {
324
- copyOperation: null,
325
- onEntering: () => undefined,
326
- onEntered: () => undefined,
327
- onExiting: () => undefined,
328
- onExited: () => undefined
329
- });
330
- export default IrisGridCopyHandler;
331
- //# sourceMappingURL=IrisGridCopyHandler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"IrisGridCopyHandler.js","names":["React","Component","classNames","CSSTransition","Button","LoadingSpinner","ThemeExport","GridRange","GridUtils","CanceledPromiseError","copyToClipboard","PromiseUtils","Log","IrisGridUtils","IrisGridBottomBar","log","module","IrisGridCopyHandler","getStatusMessageText","copyState","rowCount","COPY_STATES","CONFIRMATION_REQUIRED","toLocaleString","CLICK_REQUIRED","FETCH_ERROR","FETCH_IN_PROGRESS","DONE","getCopyButtonText","buttonState","BUTTON_STATES","CLICK_TO_COPY","RETRY","constructor","props","handleBackgroundClick","bind","handleCancelClick","handleCopyClick","handleHideTimeout","state","error","undefined","IDLE","COPY","isShown","componentDidMount","copyOperation","startCopy","componentDidUpdate","prevProps","componentWillUnmount","stopCopy","debug2","setState","ranges","debug","startHideTimer","NO_PROMPT_THRESHOLD","startFetch","textData","stopFetch","stopHideTimer","copyText","text","then","model","includeHeaders","userColumnWidths","movedColumns","formatValues","hiddenColumns","getHiddenColumns","modelRanges","getModelRanges","length","subtractRanges","map","makeColumn","subtractRangesFromRanges","formatValue","value","column","displayString","type","name","fetchPromise","makeCancelable","textSnapshot","catch","cancel","hideTimer","setTimeout","HIDE_TIMEOUT","clearTimeout","render","onEntering","onEntered","onExiting","onExited","animation","copyButtonText","statusMessageText","isButtonContainerVisible","isFetching","isDone","transitionMs"],"sources":["../src/IrisGridCopyHandler.tsx"],"sourcesContent":["import React, { Component } from 'react';\nimport classNames from 'classnames';\nimport { CSSTransition } from 'react-transition-group';\nimport { Button, LoadingSpinner, ThemeExport } from '@deephaven/components';\nimport {\n GridRange,\n GridUtils,\n ModelSizeMap,\n MoveOperation,\n} from '@deephaven/grid';\nimport {\n CancelablePromise,\n CanceledPromiseError,\n copyToClipboard,\n PromiseUtils,\n} from '@deephaven/utils';\nimport Log from '@deephaven/log';\nimport type { Column } from '@deephaven/jsapi-types';\nimport IrisGridUtils from './IrisGridUtils';\nimport IrisGridBottomBar from './IrisGridBottomBar';\nimport './IrisGridCopyHandler.scss';\nimport IrisGridModel from './IrisGridModel';\n\nconst log = Log.module('IrisGridCopyHandler');\n\ntype Values<T> = T[keyof T];\n\ntype ButtonStateType = Values<typeof IrisGridCopyHandler.BUTTON_STATES>;\n\nexport type CopyOperation = {\n ranges: readonly GridRange[];\n includeHeaders: boolean;\n formatValues?: boolean;\n movedColumns: readonly MoveOperation[];\n userColumnWidths: ModelSizeMap;\n error?: string;\n};\n\ninterface IrisGridCopyHandlerProps {\n model: IrisGridModel;\n copyOperation: CopyOperation;\n onEntering: () => void;\n onEntered: () => void;\n onExiting: () => void;\n onExited: () => void;\n}\n\ninterface IrisGridCopyHandlerState {\n error?: string;\n copyState: string;\n buttonState: string;\n isShown: boolean;\n rowCount: number;\n}\n/**\n * Component for handling copying of data from the Iris Grid.\n * - Prompts if necessary (large amount of rows copied)\n * - Tries to async copy, falls back to showing a \"Click to Copy\" button if that fails\n */\nclass IrisGridCopyHandler extends Component<\n IrisGridCopyHandlerProps,\n IrisGridCopyHandlerState\n> {\n static NO_PROMPT_THRESHOLD = 10000;\n\n static HIDE_TIMEOUT = 3000;\n\n /**\n * Different states for the current copy operation\n */\n static COPY_STATES = {\n // No copy operation in progress\n IDLE: 'IDLE',\n\n // Large copy operation, confirmation required\n CONFIRMATION_REQUIRED: 'CONFIRMATION_REQUIRED',\n\n // Fetch is currently in progress\n FETCH_IN_PROGRESS: 'FETCH_IN_PROGRESS',\n\n // There was an error fetching the data\n FETCH_ERROR: 'FETCH_ERROR',\n\n // Click is required to copy\n CLICK_REQUIRED: 'CLICK_REQUIRED',\n\n // The copy operation is completed and successfully copied to the clipboard\n DONE: 'DONE',\n };\n\n static BUTTON_STATES = {\n COPY: 'COPY',\n FETCH_IN_PROGRESS: 'FETCH_IN_PROGRESS',\n CLICK_TO_COPY: 'CLICK_TO_COPY',\n RETRY: 'RETRY',\n };\n\n static defaultProps = {\n copyOperation: null,\n onEntering: (): void => undefined,\n onEntered: (): void => undefined,\n onExiting: (): void => undefined,\n onExited: (): void => undefined,\n };\n\n static getStatusMessageText(copyState: string, rowCount: number): string {\n switch (copyState) {\n case IrisGridCopyHandler.COPY_STATES.CONFIRMATION_REQUIRED:\n return `Are you sure you want to copy ${rowCount.toLocaleString()} rows to your clipboard?`;\n case IrisGridCopyHandler.COPY_STATES.CLICK_REQUIRED:\n return `Fetched ${rowCount.toLocaleString()} rows!`;\n case IrisGridCopyHandler.COPY_STATES.FETCH_ERROR:\n return 'Unable to copy data.';\n case IrisGridCopyHandler.COPY_STATES.FETCH_IN_PROGRESS:\n return `Fetching ${rowCount.toLocaleString()} rows for clipboard...`;\n case IrisGridCopyHandler.COPY_STATES.DONE:\n return 'Copied to Clipboard!';\n default:\n return '';\n }\n }\n\n static getCopyButtonText(buttonState: ButtonStateType): string {\n switch (buttonState) {\n case IrisGridCopyHandler.BUTTON_STATES.FETCH_IN_PROGRESS:\n return 'Fetching';\n case IrisGridCopyHandler.BUTTON_STATES.CLICK_TO_COPY:\n return 'Click to Copy';\n case IrisGridCopyHandler.BUTTON_STATES.RETRY:\n return 'Retry';\n default:\n return 'Copy';\n }\n }\n\n constructor(props: IrisGridCopyHandlerProps) {\n super(props);\n\n this.handleBackgroundClick = this.handleBackgroundClick.bind(this);\n this.handleCancelClick = this.handleCancelClick.bind(this);\n this.handleCopyClick = this.handleCopyClick.bind(this);\n this.handleHideTimeout = this.handleHideTimeout.bind(this);\n\n this.state = {\n error: undefined,\n copyState: IrisGridCopyHandler.COPY_STATES.IDLE,\n buttonState: IrisGridCopyHandler.BUTTON_STATES.COPY,\n isShown: false,\n rowCount: 0,\n };\n }\n\n componentDidMount(): void {\n const { copyOperation } = this.props;\n if (copyOperation != null) {\n this.startCopy();\n }\n }\n\n componentDidUpdate(prevProps: IrisGridCopyHandlerProps): void {\n const { copyOperation } = this.props;\n if (prevProps.copyOperation !== copyOperation) {\n this.startCopy();\n }\n }\n\n componentWillUnmount(): void {\n this.stopCopy();\n }\n\n textData?: string;\n\n hideTimer?: ReturnType<typeof setTimeout>;\n\n fetchPromise?: CancelablePromise<string>;\n\n startCopy(): void {\n log.debug2('startCopy');\n\n this.stopCopy();\n\n const { copyOperation } = this.props;\n if (copyOperation == null) {\n log.debug2('No copy operation set, cancelling out');\n this.setState({ isShown: false });\n return;\n }\n\n const { ranges, error } = copyOperation;\n if (error != null) {\n log.debug('Showing copy error', error);\n this.setState({\n isShown: true,\n copyState: IrisGridCopyHandler.COPY_STATES.DONE,\n error,\n });\n this.startHideTimer();\n return;\n }\n\n const rowCount = GridRange.rowCount(ranges);\n\n this.setState({ rowCount, isShown: true, error: undefined });\n\n if (rowCount > IrisGridCopyHandler.NO_PROMPT_THRESHOLD) {\n this.setState({\n buttonState: IrisGridCopyHandler.BUTTON_STATES.COPY,\n copyState: IrisGridCopyHandler.COPY_STATES.CONFIRMATION_REQUIRED,\n });\n } else {\n this.startFetch();\n }\n }\n\n stopCopy(): void {\n this.textData = undefined;\n this.stopFetch();\n this.stopHideTimer();\n }\n\n handleBackgroundClick(): void {\n log.debug2('handleBackgroundClick');\n\n const { copyState } = this.state;\n if (copyState === IrisGridCopyHandler.COPY_STATES.DONE) {\n this.setState({ isShown: false });\n }\n }\n\n handleCancelClick(): void {\n log.debug2('handleCancelClick');\n\n this.stopFetch();\n this.setState({ isShown: false });\n }\n\n handleCopyClick(): void {\n log.debug2('handleCopyClick');\n\n if (this.textData != null) {\n this.copyText(this.textData);\n } else {\n this.startFetch();\n }\n }\n\n handleHideTimeout(): void {\n log.debug2('handleHideTimeout');\n\n this.stopHideTimer();\n\n this.setState({ isShown: false });\n }\n\n copyText(text: string): void {\n log.debug2('copyText', text);\n\n this.textData = text;\n\n copyToClipboard(text).then(\n () => {\n this.setState({ copyState: IrisGridCopyHandler.COPY_STATES.DONE });\n this.startHideTimer();\n },\n error => {\n log.error('copyText error', error);\n this.setState({\n buttonState: IrisGridCopyHandler.BUTTON_STATES.CLICK_TO_COPY,\n copyState: IrisGridCopyHandler.COPY_STATES.CLICK_REQUIRED,\n });\n }\n );\n }\n\n startFetch(): void {\n this.stopFetch();\n\n this.setState({\n buttonState: IrisGridCopyHandler.BUTTON_STATES.FETCH_IN_PROGRESS,\n copyState: IrisGridCopyHandler.COPY_STATES.FETCH_IN_PROGRESS,\n });\n\n const { model, copyOperation } = this.props;\n const {\n ranges,\n includeHeaders,\n userColumnWidths,\n movedColumns,\n formatValues,\n } = copyOperation;\n log.debug('startFetch', ranges);\n\n const hiddenColumns = IrisGridUtils.getHiddenColumns(userColumnWidths);\n let modelRanges = GridUtils.getModelRanges(ranges, movedColumns);\n if (hiddenColumns.length > 0) {\n const subtractRanges = hiddenColumns.map(GridRange.makeColumn);\n modelRanges = GridRange.subtractRangesFromRanges(\n modelRanges,\n subtractRanges\n );\n }\n\n // Remove the hidden columns from the snapshot\n const formatValue =\n formatValues != null && formatValues\n ? (value: unknown, column: Column) =>\n model.displayString(value, column.type, column.name)\n : (value: unknown) => `${value}`;\n\n this.fetchPromise = PromiseUtils.makeCancelable(\n model.textSnapshot(modelRanges, includeHeaders, formatValue)\n );\n this.fetchPromise\n .then((text: string) => {\n this.fetchPromise = undefined;\n this.copyText(text);\n })\n .catch((error: unknown) => {\n if (error instanceof CanceledPromiseError) {\n log.debug('User cancelled copy.');\n } else {\n log.error('Error fetching contents', error);\n this.fetchPromise = undefined;\n this.setState({\n buttonState: IrisGridCopyHandler.BUTTON_STATES.RETRY,\n copyState: IrisGridCopyHandler.COPY_STATES.FETCH_ERROR,\n });\n }\n });\n }\n\n stopFetch(): void {\n if (this.fetchPromise) {\n log.debug2('stopFetch');\n this.fetchPromise.cancel();\n this.fetchPromise = undefined;\n }\n }\n\n startHideTimer(): void {\n this.stopHideTimer();\n\n this.hideTimer = setTimeout(\n this.handleHideTimeout,\n IrisGridCopyHandler.HIDE_TIMEOUT\n );\n }\n\n stopHideTimer(): void {\n if (this.hideTimer != null) {\n clearTimeout(this.hideTimer);\n this.hideTimer = undefined;\n }\n }\n\n render(): JSX.Element {\n const { onEntering, onEntered, onExiting, onExited } = this.props;\n const { buttonState, copyState, isShown, rowCount, error } = this.state;\n\n const animation =\n copyState === IrisGridCopyHandler.COPY_STATES.DONE\n ? 'fade'\n : 'copy-slide-up';\n const copyButtonText = IrisGridCopyHandler.getCopyButtonText(buttonState);\n const statusMessageText =\n error ?? IrisGridCopyHandler.getStatusMessageText(copyState, rowCount);\n const isButtonContainerVisible =\n copyState !== IrisGridCopyHandler.COPY_STATES.DONE;\n const isFetching =\n buttonState === IrisGridCopyHandler.BUTTON_STATES.FETCH_IN_PROGRESS;\n const isDone = copyState === IrisGridCopyHandler.COPY_STATES.DONE;\n\n return (\n <IrisGridBottomBar\n animation={animation}\n isShown={isShown}\n className={classNames('iris-grid-copy-handler', {\n 'copy-done': isDone,\n })}\n onClick={this.handleBackgroundClick}\n onEntering={onEntering}\n onEntered={onEntered}\n onExiting={onExiting}\n onExited={onExited}\n >\n <div className=\"status-message\">\n <span>{statusMessageText}</span>\n </div>\n <CSSTransition\n in={isButtonContainerVisible}\n timeout={ThemeExport.transitionMs}\n classNames=\"fade\"\n mountOnEnter\n unmountOnExit\n >\n <div className=\"buttons-container\">\n <button\n type=\"button\"\n className=\"btn btn-outline-secondary btn-cancel\"\n onClick={this.handleCancelClick}\n >\n Cancel\n </button>\n <Button\n kind={isFetching ? 'tertiary' : 'primary'}\n className={classNames('btn-copy', {\n 'btn-spinner': isFetching,\n })}\n onClick={this.handleCopyClick}\n disabled={isFetching}\n >\n {isFetching && <LoadingSpinner />}\n {copyButtonText}\n </Button>\n </div>\n </CSSTransition>\n </IrisGridBottomBar>\n );\n }\n}\n\nexport default IrisGridCopyHandler;\n"],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- /* eslint-disable class-methods-use-this */
2
- import { DataBarCellRenderer } from '@deephaven/grid';
3
- import IrisGridCellRendererUtils from "./IrisGridCellRendererUtils.js";
4
- class IrisGridDataBarCellRenderer extends DataBarCellRenderer {
5
- drawTreeMarker(context, state, columnX, rowY, treeBox, color, isExpanded) {
6
- IrisGridCellRendererUtils.drawTreeMarker(context, state, columnX, rowY, treeBox, color, isExpanded);
7
- }
8
- }
9
- export default IrisGridDataBarCellRenderer;
10
- //# sourceMappingURL=IrisGridDataBarCellRenderer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"IrisGridDataBarCellRenderer.js","names":["DataBarCellRenderer","IrisGridCellRendererUtils","IrisGridDataBarCellRenderer","drawTreeMarker","context","state","columnX","rowY","treeBox","color","isExpanded"],"sources":["../src/IrisGridDataBarCellRenderer.ts"],"sourcesContent":["/* eslint-disable class-methods-use-this */\nimport {\n BoxCoordinates,\n Coordinate,\n DataBarCellRenderer,\n} from '@deephaven/grid';\nimport { IrisGridRenderState } from './IrisGridRenderer';\nimport IrisGridCellRendererUtils from './IrisGridCellRendererUtils';\n\nclass IrisGridDataBarCellRenderer extends DataBarCellRenderer {\n 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 IrisGridCellRendererUtils.drawTreeMarker(\n context,\n state,\n columnX,\n rowY,\n treeBox,\n color,\n isExpanded\n );\n }\n}\n\nexport default IrisGridDataBarCellRenderer;\n"],"mappings":"AAAA;AACA,SAGEA,mBAAmB,QACd,iBAAiB;AAAC,OAElBC,yBAAyB;AAEhC,MAAMC,2BAA2B,SAASF,mBAAmB,CAAC;EAC5DG,cAAc,CACZC,OAAiC,EACjCC,KAA0B,EAC1BC,OAAmB,EACnBC,IAAgB,EAChBC,OAAuB,EACvBC,KAAa,EACbC,UAAmB,EACb;IACNT,yBAAyB,CAACE,cAAc,CACtCC,OAAO,EACPC,KAAK,EACLC,OAAO,EACPC,IAAI,EACJC,OAAO,EACPC,KAAK,EACLC,UAAU,CACX;EACH;AACF;AAEA,eAAeR,2BAA2B"}
@@ -1,25 +0,0 @@
1
- import { memoizeClear } from '@deephaven/grid';
2
- import { dhSortDown, dhSortUp, vsTriangleDown, vsTriangleRight, vsLinkExternal } from '@deephaven/icons';
3
- export var ICON_SIZE = 16;
4
- var iconMap = new Map([['sortUp', dhSortUp], ['sortDown', dhSortDown], ['caretDown', vsTriangleDown], ['caretRight', vsTriangleRight], ['cellOverflow', vsLinkExternal]]);
5
- var makeIcon = memoizeClear(name => {
6
- var faIcon = iconMap.get(name);
7
- if (faIcon === undefined) {
8
- throw new Error('Icon is undefined');
9
- }
10
- var path = Array.isArray(faIcon.icon[4]) ? faIcon.icon[4][0] : faIcon.icon[4];
11
- var icon = new Path2D(path);
12
- var scaledIcon = new Path2D();
13
- var scaleMatrix = {
14
- a: ICON_SIZE / faIcon.icon[0],
15
- d: ICON_SIZE / faIcon.icon[1]
16
- };
17
- scaledIcon.addPath(icon, scaleMatrix);
18
- return scaledIcon;
19
- }, {
20
- max: 1000
21
- });
22
- export function getIcon(name) {
23
- return makeIcon(name);
24
- }
25
- //# sourceMappingURL=IrisGridIcons.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"IrisGridIcons.js","names":["memoizeClear","dhSortDown","dhSortUp","vsTriangleDown","vsTriangleRight","vsLinkExternal","ICON_SIZE","iconMap","Map","makeIcon","name","faIcon","get","undefined","Error","path","Array","isArray","icon","Path2D","scaledIcon","scaleMatrix","a","d","addPath","max","getIcon"],"sources":["../src/IrisGridIcons.ts"],"sourcesContent":["import { memoizeClear } from '@deephaven/grid';\nimport {\n dhSortDown,\n dhSortUp,\n vsTriangleDown,\n vsTriangleRight,\n vsLinkExternal,\n IconDefinition,\n} from '@deephaven/icons';\n\nexport const ICON_SIZE = 16;\n\nexport type IconName =\n | 'sortUp'\n | 'sortDown'\n | 'caretDown'\n | 'caretRight'\n | 'cellOverflow';\n\nconst iconMap = new Map<IconName, IconDefinition>([\n ['sortUp', dhSortUp],\n ['sortDown', dhSortDown],\n ['caretDown', vsTriangleDown],\n ['caretRight', vsTriangleRight],\n ['cellOverflow', vsLinkExternal],\n]);\n\nconst makeIcon = memoizeClear(\n (name: IconName) => {\n const faIcon = iconMap.get(name);\n if (faIcon === undefined) {\n throw new Error('Icon is undefined');\n }\n\n const path = Array.isArray(faIcon.icon[4])\n ? faIcon.icon[4][0]\n : faIcon.icon[4];\n const icon = new Path2D(path);\n const scaledIcon = new Path2D();\n const scaleMatrix = {\n a: ICON_SIZE / faIcon.icon[0],\n d: ICON_SIZE / faIcon.icon[1],\n };\n scaledIcon.addPath(icon, scaleMatrix);\n return scaledIcon;\n },\n { max: 1000 }\n);\n\nexport function getIcon(name: IconName): Path2D {\n return makeIcon(name);\n}\n"],"mappings":"AAAA,SAASA,YAAY,QAAQ,iBAAiB;AAC9C,SACEC,UAAU,EACVC,QAAQ,EACRC,cAAc,EACdC,eAAe,EACfC,cAAc,QAET,kBAAkB;AAEzB,OAAO,IAAMC,SAAS,GAAG,EAAE;AAS3B,IAAMC,OAAO,GAAG,IAAIC,GAAG,CAA2B,CAChD,CAAC,QAAQ,EAAEN,QAAQ,CAAC,EACpB,CAAC,UAAU,EAAED,UAAU,CAAC,EACxB,CAAC,WAAW,EAAEE,cAAc,CAAC,EAC7B,CAAC,YAAY,EAAEC,eAAe,CAAC,EAC/B,CAAC,cAAc,EAAEC,cAAc,CAAC,CACjC,CAAC;AAEF,IAAMI,QAAQ,GAAGT,YAAY,CAC1BU,IAAc,IAAK;EAClB,IAAMC,MAAM,GAAGJ,OAAO,CAACK,GAAG,CAACF,IAAI,CAAC;EAChC,IAAIC,MAAM,KAAKE,SAAS,EAAE;IACxB,MAAM,IAAIC,KAAK,CAAC,mBAAmB,CAAC;EACtC;EAEA,IAAMC,IAAI,GAAGC,KAAK,CAACC,OAAO,CAACN,MAAM,CAACO,IAAI,CAAC,CAAC,CAAC,CAAC,GACtCP,MAAM,CAACO,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GACjBP,MAAM,CAACO,IAAI,CAAC,CAAC,CAAC;EAClB,IAAMA,IAAI,GAAG,IAAIC,MAAM,CAACJ,IAAI,CAAC;EAC7B,IAAMK,UAAU,GAAG,IAAID,MAAM,EAAE;EAC/B,IAAME,WAAW,GAAG;IAClBC,CAAC,EAAEhB,SAAS,GAAGK,MAAM,CAACO,IAAI,CAAC,CAAC,CAAC;IAC7BK,CAAC,EAAEjB,SAAS,GAAGK,MAAM,CAACO,IAAI,CAAC,CAAC;EAC9B,CAAC;EACDE,UAAU,CAACI,OAAO,CAACN,IAAI,EAAEG,WAAW,CAAC;EACrC,OAAOD,UAAU;AACnB,CAAC,EACD;EAAEK,GAAG,EAAE;AAAK,CAAC,CACd;AAED,OAAO,SAASC,OAAO,CAAChB,IAAc,EAAU;EAC9C,OAAOD,QAAQ,CAACC,IAAI,CAAC;AACvB"}
@@ -1,33 +0,0 @@
1
- import { GridMetricCalculator } from '@deephaven/grid';
2
- import { TableUtils } from '@deephaven/jsapi-utils';
3
- /**
4
- * Class to calculate all the metrics for a grid.
5
- * Call getMetrics() with the state to get metrics
6
- */
7
- class IrisGridMetricCalculator extends GridMetricCalculator {
8
- getGridY(state) {
9
- var gridY = super.getGridY(state);
10
- var {
11
- isFilterBarShown,
12
- theme,
13
- advancedFilters,
14
- quickFilters,
15
- sorts,
16
- reverseType
17
- } = state;
18
- if (isFilterBarShown) {
19
- gridY += theme.filterBarHeight;
20
- } else if (quickFilters != null && quickFilters.size > 0 || advancedFilters != null && advancedFilters.size > 0) {
21
- gridY += theme.filterBarCollapsedHeight;
22
- }
23
- if (reverseType !== TableUtils.REVERSE_TYPE.NONE && sorts != null && sorts.length > 0) {
24
- gridY += theme.reverseHeaderBarHeight;
25
- }
26
- return gridY;
27
- }
28
- getUserColumnWidths() {
29
- return this.userColumnWidths;
30
- }
31
- }
32
- export default IrisGridMetricCalculator;
33
- //# sourceMappingURL=IrisGridMetricCalculator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"IrisGridMetricCalculator.js","names":["GridMetricCalculator","TableUtils","IrisGridMetricCalculator","getGridY","state","gridY","isFilterBarShown","theme","advancedFilters","quickFilters","sorts","reverseType","filterBarHeight","size","filterBarCollapsedHeight","REVERSE_TYPE","NONE","length","reverseHeaderBarHeight","getUserColumnWidths","userColumnWidths"],"sources":["../src/IrisGridMetricCalculator.ts"],"sourcesContent":["import { GridMetricCalculator, ModelSizeMap } from '@deephaven/grid';\nimport type { GridMetricState } from '@deephaven/grid';\nimport type { FilterCondition, Sort } from '@deephaven/jsapi-types';\nimport { TableUtils } from '@deephaven/jsapi-utils';\nimport type IrisGridModel from './IrisGridModel';\nimport { IrisGridThemeType } from './IrisGridTheme';\n\nexport interface IrisGridMetricState extends GridMetricState {\n model: IrisGridModel;\n theme: IrisGridThemeType;\n isFilterBarShown: boolean;\n advancedFilters: Map<\n string,\n { options: unknown; filter: FilterCondition | null }\n >;\n quickFilters: Map<string, { text: string; filter: FilterCondition | null }>;\n sorts: Sort[];\n reverseType: string;\n}\n\n/**\n * Class to calculate all the metrics for a grid.\n * Call getMetrics() with the state to get metrics\n */\nclass IrisGridMetricCalculator extends GridMetricCalculator {\n getGridY(state: IrisGridMetricState): number {\n let gridY = super.getGridY(state);\n const {\n isFilterBarShown,\n theme,\n advancedFilters,\n quickFilters,\n sorts,\n reverseType,\n } = state;\n if (isFilterBarShown) {\n gridY += theme.filterBarHeight;\n } else if (\n (quickFilters != null && quickFilters.size > 0) ||\n (advancedFilters != null && advancedFilters.size > 0)\n ) {\n gridY += theme.filterBarCollapsedHeight;\n }\n if (\n reverseType !== TableUtils.REVERSE_TYPE.NONE &&\n sorts != null &&\n sorts.length > 0\n ) {\n gridY += theme.reverseHeaderBarHeight;\n }\n\n return gridY;\n }\n\n getUserColumnWidths(): ModelSizeMap {\n return this.userColumnWidths;\n }\n}\n\nexport default IrisGridMetricCalculator;\n"],"mappings":"AAAA,SAASA,oBAAoB,QAAsB,iBAAiB;AAGpE,SAASC,UAAU,QAAQ,wBAAwB;AAiBnD;AACA;AACA;AACA;AACA,MAAMC,wBAAwB,SAASF,oBAAoB,CAAC;EAC1DG,QAAQ,CAACC,KAA0B,EAAU;IAC3C,IAAIC,KAAK,GAAG,KAAK,CAACF,QAAQ,CAACC,KAAK,CAAC;IACjC,IAAM;MACJE,gBAAgB;MAChBC,KAAK;MACLC,eAAe;MACfC,YAAY;MACZC,KAAK;MACLC;IACF,CAAC,GAAGP,KAAK;IACT,IAAIE,gBAAgB,EAAE;MACpBD,KAAK,IAAIE,KAAK,CAACK,eAAe;IAChC,CAAC,MAAM,IACJH,YAAY,IAAI,IAAI,IAAIA,YAAY,CAACI,IAAI,GAAG,CAAC,IAC7CL,eAAe,IAAI,IAAI,IAAIA,eAAe,CAACK,IAAI,GAAG,CAAE,EACrD;MACAR,KAAK,IAAIE,KAAK,CAACO,wBAAwB;IACzC;IACA,IACEH,WAAW,KAAKV,UAAU,CAACc,YAAY,CAACC,IAAI,IAC5CN,KAAK,IAAI,IAAI,IACbA,KAAK,CAACO,MAAM,GAAG,CAAC,EAChB;MACAZ,KAAK,IAAIE,KAAK,CAACW,sBAAsB;IACvC;IAEA,OAAOb,KAAK;EACd;EAEAc,mBAAmB,GAAiB;IAClC,OAAO,IAAI,CAACC,gBAAgB;EAC9B;AACF;AAEA,eAAelB,wBAAwB"}