@deephaven/iris-grid 0.22.3-embed-pandas.11 → 0.23.1-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (243) hide show
  1. package/dist/AdvancedFilterCreator.d.ts +1 -1
  2. package/dist/AdvancedFilterCreator.d.ts.map +1 -1
  3. package/dist/AdvancedFilterCreator.js +7 -65
  4. package/dist/AdvancedFilterCreator.js.map +1 -1
  5. package/dist/AdvancedFilterCreatorFilterItem.d.ts +1 -1
  6. package/dist/AdvancedFilterCreatorFilterItem.d.ts.map +1 -1
  7. package/dist/AdvancedFilterCreatorFilterItem.js +0 -23
  8. package/dist/AdvancedFilterCreatorFilterItem.js.map +1 -1
  9. package/dist/AdvancedFilterCreatorSelectValue.js +0 -52
  10. package/dist/AdvancedFilterCreatorSelectValue.js.map +1 -1
  11. package/dist/AdvancedFilterCreatorSelectValueList.d.ts +1 -5
  12. package/dist/AdvancedFilterCreatorSelectValueList.d.ts.map +1 -1
  13. package/dist/AdvancedFilterCreatorSelectValueList.js +2 -42
  14. package/dist/AdvancedFilterCreatorSelectValueList.js.map +1 -1
  15. package/dist/ColumnHeaderGroup.js +0 -11
  16. package/dist/ColumnHeaderGroup.js.map +1 -1
  17. package/dist/ColumnStatistics.d.ts +0 -2
  18. package/dist/ColumnStatistics.d.ts.map +1 -1
  19. package/dist/ColumnStatistics.js +8 -40
  20. package/dist/ColumnStatistics.js.map +1 -1
  21. package/dist/CommonTypes.d.ts +14 -14
  22. package/dist/CommonTypes.d.ts.map +1 -1
  23. package/dist/CrossColumnSearch.js +2 -23
  24. package/dist/CrossColumnSearch.js.map +1 -1
  25. package/dist/FilterInputField.js +2 -36
  26. package/dist/FilterInputField.js.map +1 -1
  27. package/dist/GotoRow.d.ts +1 -1
  28. package/dist/GotoRow.d.ts.map +1 -1
  29. package/dist/GotoRow.js +2 -7
  30. package/dist/GotoRow.js.map +1 -1
  31. package/dist/IrisGrid.d.ts +46 -40
  32. package/dist/IrisGrid.d.ts.map +1 -1
  33. package/dist/IrisGrid.js +84 -526
  34. package/dist/IrisGrid.js.map +1 -1
  35. package/dist/IrisGridBottomBar.d.ts +2 -2
  36. package/dist/IrisGridBottomBar.d.ts.map +1 -1
  37. package/dist/IrisGridBottomBar.js +2 -2
  38. package/dist/IrisGridBottomBar.js.map +1 -1
  39. package/dist/IrisGridCellOverflowModal.d.ts.map +1 -1
  40. package/dist/IrisGridCellOverflowModal.js +13 -46
  41. package/dist/IrisGridCellOverflowModal.js.map +1 -1
  42. package/dist/IrisGridCopyHandler.d.ts +3 -3
  43. package/dist/IrisGridCopyHandler.d.ts.map +1 -1
  44. package/dist/IrisGridCopyHandler.js +6 -53
  45. package/dist/IrisGridCopyHandler.js.map +1 -1
  46. package/dist/IrisGridMetricCalculator.js +2 -12
  47. package/dist/IrisGridMetricCalculator.js.map +1 -1
  48. package/dist/IrisGridModel.d.ts +3 -3
  49. package/dist/IrisGridModel.d.ts.map +1 -1
  50. package/dist/IrisGridModel.js +32 -58
  51. package/dist/IrisGridModel.js.map +1 -1
  52. package/dist/IrisGridModelFactory.js +0 -7
  53. package/dist/IrisGridModelFactory.js.map +1 -1
  54. package/dist/IrisGridModelUpdater.js +0 -4
  55. package/dist/IrisGridModelUpdater.js.map +1 -1
  56. package/dist/IrisGridPartitionSelector.js +0 -23
  57. package/dist/IrisGridPartitionSelector.js.map +1 -1
  58. package/dist/IrisGridProxyModel.js +9 -153
  59. package/dist/IrisGridProxyModel.js.map +1 -1
  60. package/dist/IrisGridRenderer.d.ts +1 -1
  61. package/dist/IrisGridRenderer.d.ts.map +1 -1
  62. package/dist/IrisGridRenderer.js +41 -183
  63. package/dist/IrisGridRenderer.js.map +1 -1
  64. package/dist/IrisGridShortcuts.js.map +1 -1
  65. package/dist/IrisGridTableModel.d.ts +3 -3
  66. package/dist/IrisGridTableModel.d.ts.map +1 -1
  67. package/dist/IrisGridTableModel.js +10 -90
  68. package/dist/IrisGridTableModel.js.map +1 -1
  69. package/dist/IrisGridTableModelTemplate.d.ts +3 -3
  70. package/dist/IrisGridTableModelTemplate.d.ts.map +1 -1
  71. package/dist/IrisGridTableModelTemplate.js +70 -461
  72. package/dist/IrisGridTableModelTemplate.js.map +1 -1
  73. package/dist/IrisGridTestUtils.js +0 -23
  74. package/dist/IrisGridTestUtils.js.map +1 -1
  75. package/dist/IrisGridTheme.d.ts +1 -1
  76. package/dist/IrisGridTheme.d.ts.map +1 -1
  77. package/dist/IrisGridTheme.js.map +1 -1
  78. package/dist/IrisGridTreeTableModel.js +3 -42
  79. package/dist/IrisGridTreeTableModel.js.map +1 -1
  80. package/dist/IrisGridUtils.d.ts +13 -7
  81. package/dist/IrisGridUtils.d.ts.map +1 -1
  82. package/dist/IrisGridUtils.js +98 -196
  83. package/dist/IrisGridUtils.js.map +1 -1
  84. package/dist/MissingKeyError.js +0 -7
  85. package/dist/MissingKeyError.js.map +1 -1
  86. package/dist/PartitionSelectorSearch.d.ts +2 -2
  87. package/dist/PartitionSelectorSearch.js +2 -48
  88. package/dist/PartitionSelectorSearch.js.map +1 -1
  89. package/dist/PendingDataBottomBar.d.ts +2 -2
  90. package/dist/PendingDataBottomBar.d.ts.map +1 -1
  91. package/dist/PendingDataBottomBar.js +2 -7
  92. package/dist/PendingDataBottomBar.js.map +1 -1
  93. package/dist/TableViewportUpdater.d.ts +2 -2
  94. package/dist/TableViewportUpdater.d.ts.map +1 -1
  95. package/dist/TableViewportUpdater.js +3 -29
  96. package/dist/TableViewportUpdater.js.map +1 -1
  97. package/dist/ToastBottomBar.d.ts +2 -2
  98. package/dist/ToastBottomBar.d.ts.map +1 -1
  99. package/dist/ToastBottomBar.js +2 -4
  100. package/dist/ToastBottomBar.js.map +1 -1
  101. package/dist/TreeTableViewportUpdater.js +0 -21
  102. package/dist/TreeTableViewportUpdater.js.map +1 -1
  103. package/dist/format-context-menus/CustomFormatAction.d.ts +1 -1
  104. package/dist/format-context-menus/CustomFormatAction.d.ts.map +1 -1
  105. package/dist/format-context-menus/CustomFormatAction.js +4 -25
  106. package/dist/format-context-menus/CustomFormatAction.js.map +1 -1
  107. package/dist/format-context-menus/DateTimeFormatContextMenu.js +0 -7
  108. package/dist/format-context-menus/DateTimeFormatContextMenu.js.map +1 -1
  109. package/dist/format-context-menus/DecimalFormatContextMenu.js +0 -9
  110. package/dist/format-context-menus/DecimalFormatContextMenu.js.map +1 -1
  111. package/dist/format-context-menus/FormatContextMenuUtils.js +3 -9
  112. package/dist/format-context-menus/FormatContextMenuUtils.js.map +1 -1
  113. package/dist/format-context-menus/IntegerFormatContextMenu.js +0 -8
  114. package/dist/format-context-menus/IntegerFormatContextMenu.js.map +1 -1
  115. package/dist/format-context-menus/index.js.map +1 -1
  116. package/dist/index.d.ts +3 -3
  117. package/dist/index.d.ts.map +1 -1
  118. package/dist/index.js +3 -3
  119. package/dist/index.js.map +1 -1
  120. package/dist/key-handlers/ClearFilterKeyHandler.js +0 -8
  121. package/dist/key-handlers/ClearFilterKeyHandler.js.map +1 -1
  122. package/dist/key-handlers/CopyKeyHandler.js +1 -10
  123. package/dist/key-handlers/CopyKeyHandler.js.map +1 -1
  124. package/dist/key-handlers/ReverseKeyHandler.js +0 -11
  125. package/dist/key-handlers/ReverseKeyHandler.js.map +1 -1
  126. package/dist/key-handlers/index.js.map +1 -1
  127. package/dist/mousehandlers/IrisGridCellOverflowMouseHandler.js +2 -32
  128. package/dist/mousehandlers/IrisGridCellOverflowMouseHandler.js.map +1 -1
  129. package/dist/mousehandlers/IrisGridColumnSelectMouseHandler.js +4 -34
  130. package/dist/mousehandlers/IrisGridColumnSelectMouseHandler.js.map +1 -1
  131. package/dist/mousehandlers/IrisGridColumnTooltipMouseHandler.js +0 -20
  132. package/dist/mousehandlers/IrisGridColumnTooltipMouseHandler.js.map +1 -1
  133. package/dist/mousehandlers/IrisGridContextMenuHandler.js +17 -107
  134. package/dist/mousehandlers/IrisGridContextMenuHandler.js.map +1 -1
  135. package/dist/mousehandlers/IrisGridDataSelectMouseHandler.js +0 -9
  136. package/dist/mousehandlers/IrisGridDataSelectMouseHandler.js.map +1 -1
  137. package/dist/mousehandlers/IrisGridFilterMouseHandler.js +0 -17
  138. package/dist/mousehandlers/IrisGridFilterMouseHandler.js.map +1 -1
  139. package/dist/mousehandlers/IrisGridSortMouseHandler.js +2 -15
  140. package/dist/mousehandlers/IrisGridSortMouseHandler.js.map +1 -1
  141. package/dist/mousehandlers/PendingMouseHandler.js +0 -6
  142. package/dist/mousehandlers/PendingMouseHandler.js.map +1 -1
  143. package/dist/mousehandlers/index.js.map +1 -1
  144. package/dist/sidebar/AdvancedSettings.js.map +1 -1
  145. package/dist/sidebar/AdvancedSettingsMenu.d.ts +6 -6
  146. package/dist/sidebar/AdvancedSettingsMenu.d.ts.map +1 -1
  147. package/dist/sidebar/AdvancedSettingsMenu.js +2 -6
  148. package/dist/sidebar/AdvancedSettingsMenu.js.map +1 -1
  149. package/dist/sidebar/AdvancedSettingsType.js +0 -2
  150. package/dist/sidebar/AdvancedSettingsType.js.map +1 -1
  151. package/dist/sidebar/ChartBuilder.d.ts +2 -2
  152. package/dist/sidebar/ChartBuilder.d.ts.map +1 -1
  153. package/dist/sidebar/ChartBuilder.js +2 -46
  154. package/dist/sidebar/ChartBuilder.js.map +1 -1
  155. package/dist/sidebar/CustomColumnBuilder.d.ts +2 -2
  156. package/dist/sidebar/CustomColumnBuilder.d.ts.map +1 -1
  157. package/dist/sidebar/CustomColumnBuilder.js +6 -58
  158. package/dist/sidebar/CustomColumnBuilder.js.map +1 -1
  159. package/dist/sidebar/CustomColumnInput.js +4 -15
  160. package/dist/sidebar/CustomColumnInput.js.map +1 -1
  161. package/dist/sidebar/InputEditor.js +5 -36
  162. package/dist/sidebar/InputEditor.js.map +1 -1
  163. package/dist/sidebar/OptionType.js +0 -2
  164. package/dist/sidebar/OptionType.js.map +1 -1
  165. package/dist/sidebar/RollupRows.d.ts +3 -3
  166. package/dist/sidebar/RollupRows.d.ts.map +1 -1
  167. package/dist/sidebar/RollupRows.js +9 -65
  168. package/dist/sidebar/RollupRows.js.map +1 -1
  169. package/dist/sidebar/SelectDistinctBuilder.js +0 -13
  170. package/dist/sidebar/SelectDistinctBuilder.js.map +1 -1
  171. package/dist/sidebar/TableCsvExporter.css +3 -0
  172. package/dist/sidebar/TableCsvExporter.css.map +1 -1
  173. package/dist/sidebar/TableCsvExporter.d.ts +12 -6
  174. package/dist/sidebar/TableCsvExporter.d.ts.map +1 -1
  175. package/dist/sidebar/TableCsvExporter.js +88 -82
  176. package/dist/sidebar/TableCsvExporter.js.map +1 -1
  177. package/dist/sidebar/TableSaver.d.ts +5 -3
  178. package/dist/sidebar/TableSaver.d.ts.map +1 -1
  179. package/dist/sidebar/TableSaver.js +52 -132
  180. package/dist/sidebar/TableSaver.js.map +1 -1
  181. package/dist/sidebar/VisibilityOrderingBuilder.d.ts +5 -4
  182. package/dist/sidebar/VisibilityOrderingBuilder.d.ts.map +1 -1
  183. package/dist/sidebar/VisibilityOrderingBuilder.js +37 -116
  184. package/dist/sidebar/VisibilityOrderingBuilder.js.map +1 -1
  185. package/dist/sidebar/aggregations/AggregationEdit.d.ts +2 -2
  186. package/dist/sidebar/aggregations/AggregationEdit.d.ts.map +1 -1
  187. package/dist/sidebar/aggregations/AggregationEdit.js +2 -14
  188. package/dist/sidebar/aggregations/AggregationEdit.js.map +1 -1
  189. package/dist/sidebar/aggregations/AggregationOperation.js +0 -2
  190. package/dist/sidebar/aggregations/AggregationOperation.js.map +1 -1
  191. package/dist/sidebar/aggregations/AggregationUtils.js +2 -5
  192. package/dist/sidebar/aggregations/AggregationUtils.js.map +1 -1
  193. package/dist/sidebar/aggregations/Aggregations.d.ts +4 -4
  194. package/dist/sidebar/aggregations/Aggregations.d.ts.map +1 -1
  195. package/dist/sidebar/aggregations/Aggregations.js +2 -12
  196. package/dist/sidebar/aggregations/Aggregations.js.map +1 -1
  197. package/dist/sidebar/conditional-formatting/ColumnFormatEditor.d.ts +1 -1
  198. package/dist/sidebar/conditional-formatting/ColumnFormatEditor.d.ts.map +1 -1
  199. package/dist/sidebar/conditional-formatting/ColumnFormatEditor.js +2 -16
  200. package/dist/sidebar/conditional-formatting/ColumnFormatEditor.js.map +1 -1
  201. package/dist/sidebar/conditional-formatting/ConditionEditor.d.ts +1 -1
  202. package/dist/sidebar/conditional-formatting/ConditionEditor.d.ts.map +1 -1
  203. package/dist/sidebar/conditional-formatting/ConditionEditor.js +2 -35
  204. package/dist/sidebar/conditional-formatting/ConditionEditor.js.map +1 -1
  205. package/dist/sidebar/conditional-formatting/ConditionalFormatEditor.d.ts +4 -4
  206. package/dist/sidebar/conditional-formatting/ConditionalFormatEditor.d.ts.map +1 -1
  207. package/dist/sidebar/conditional-formatting/ConditionalFormatEditor.js +2 -12
  208. package/dist/sidebar/conditional-formatting/ConditionalFormatEditor.js.map +1 -1
  209. package/dist/sidebar/conditional-formatting/ConditionalFormattingAPIUtils.js +0 -3
  210. package/dist/sidebar/conditional-formatting/ConditionalFormattingAPIUtils.js.map +1 -1
  211. package/dist/sidebar/conditional-formatting/ConditionalFormattingMenu.d.ts +5 -5
  212. package/dist/sidebar/conditional-formatting/ConditionalFormattingMenu.d.ts.map +1 -1
  213. package/dist/sidebar/conditional-formatting/ConditionalFormattingMenu.js +16 -26
  214. package/dist/sidebar/conditional-formatting/ConditionalFormattingMenu.js.map +1 -1
  215. package/dist/sidebar/conditional-formatting/ConditionalFormattingUtils.d.ts +3 -3
  216. package/dist/sidebar/conditional-formatting/ConditionalFormattingUtils.d.ts.map +1 -1
  217. package/dist/sidebar/conditional-formatting/ConditionalFormattingUtils.js +9 -172
  218. package/dist/sidebar/conditional-formatting/ConditionalFormattingUtils.js.map +1 -1
  219. package/dist/sidebar/conditional-formatting/RowFormatEditor.d.ts +1 -1
  220. package/dist/sidebar/conditional-formatting/RowFormatEditor.d.ts.map +1 -1
  221. package/dist/sidebar/conditional-formatting/RowFormatEditor.js +2 -16
  222. package/dist/sidebar/conditional-formatting/RowFormatEditor.js.map +1 -1
  223. package/dist/sidebar/conditional-formatting/StyleEditor.d.ts +1 -1
  224. package/dist/sidebar/conditional-formatting/StyleEditor.d.ts.map +1 -1
  225. package/dist/sidebar/conditional-formatting/StyleEditor.js +2 -12
  226. package/dist/sidebar/conditional-formatting/StyleEditor.js.map +1 -1
  227. package/dist/sidebar/icons/BarIcon.js +0 -3
  228. package/dist/sidebar/icons/BarIcon.js.map +1 -1
  229. package/dist/sidebar/icons/FormatColumnWhereIcon.js +2 -5
  230. package/dist/sidebar/icons/FormatColumnWhereIcon.js.map +1 -1
  231. package/dist/sidebar/icons/FormatRowWhereIcon.js +2 -5
  232. package/dist/sidebar/icons/FormatRowWhereIcon.js.map +1 -1
  233. package/dist/sidebar/icons/HistogramIcon.js +0 -3
  234. package/dist/sidebar/icons/HistogramIcon.js.map +1 -1
  235. package/dist/sidebar/icons/LineIcon.js +0 -3
  236. package/dist/sidebar/icons/LineIcon.js.map +1 -1
  237. package/dist/sidebar/icons/PieIcon.js +0 -3
  238. package/dist/sidebar/icons/PieIcon.js.map +1 -1
  239. package/dist/sidebar/icons/ScatterIcon.js +0 -3
  240. package/dist/sidebar/icons/ScatterIcon.js.map +1 -1
  241. package/dist/sidebar/icons/index.js.map +1 -1
  242. package/dist/sidebar/index.js.map +1 -1
  243. package/package.json +15 -15
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import './IrisGridBottomBar.scss';
3
- export declare type IrisGridBottomBarProps = {
3
+ export type IrisGridBottomBarProps = {
4
4
  animation?: string;
5
5
  children: React.ReactNode;
6
6
  onClick?: () => void;
@@ -11,6 +11,6 @@ export declare type IrisGridBottomBarProps = {
11
11
  isShown: boolean;
12
12
  className?: string;
13
13
  };
14
- export declare const IrisGridBottomBar: ({ animation, children, className, isShown, onClick, onEntering, onEntered, onExiting, onExited, }: IrisGridBottomBarProps) => JSX.Element;
14
+ export declare function IrisGridBottomBar({ animation, children, className, isShown, onClick, onEntering, onEntered, onExiting, onExited, }: IrisGridBottomBarProps): JSX.Element;
15
15
  export default IrisGridBottomBar;
16
16
  //# sourceMappingURL=IrisGridBottomBar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"IrisGridBottomBar.d.ts","sourceRoot":"","sources":["../src/IrisGridBottomBar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,0BAA0B,CAAC;AAElC,oBAAY,sBAAsB,GAAG;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,eAAO,MAAM,iBAAiB,sGAU3B,sBAAsB,KAAG,WAqB3B,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"IrisGridBottomBar.d.ts","sourceRoot":"","sources":["../src/IrisGridBottomBar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,0BAA0B,CAAC;AAElC,MAAM,MAAM,sBAAsB,GAAG;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,EAChC,SAA2C,EAC3C,QAAQ,EACR,SAAS,EACT,OAAO,EACP,OAAO,EACP,UAAU,EACV,SAAS,EACT,SAAS,EACT,QAAQ,GACT,EAAE,sBAAsB,GAAG,GAAG,CAAC,OAAO,CAuBtC;AAED,eAAe,iBAAiB,CAAC"}
@@ -3,7 +3,7 @@ import classNames from 'classnames';
3
3
  import { CSSTransition } from 'react-transition-group';
4
4
  import { ThemeExport } from '@deephaven/components';
5
5
  import "./IrisGridBottomBar.css";
6
- export var IrisGridBottomBar = _ref => {
6
+ export function IrisGridBottomBar(_ref) {
7
7
  var {
8
8
  animation = 'iris-grid-bottom-bar-slide-up',
9
9
  children,
@@ -31,6 +31,6 @@ export var IrisGridBottomBar = _ref => {
31
31
  onClick: onClick,
32
32
  onKeyPress: onClick
33
33
  }, children));
34
- };
34
+ }
35
35
  export default IrisGridBottomBar;
36
36
  //# sourceMappingURL=IrisGridBottomBar.js.map
@@ -1 +1 @@
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 const 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 <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\nexport default IrisGridBottomBar;\n"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,UAAP,MAAuB,YAAvB;AACA,SAASC,aAAT,QAA8B,wBAA9B;AACA,SAASC,WAAT,QAA4B,uBAA5B;;AAeA,OAAO,IAAMC,iBAAiB,GAAG;EAAA,IAAC;IAChCC,SAAS,GAAG,+BADoB;IAEhCC,QAFgC;IAGhCC,SAHgC;IAIhCC,OAJgC;IAKhCC,OALgC;IAMhCC,UANgC;IAOhCC,SAPgC;IAQhCC,SARgC;IAShCC;EATgC,CAAD;EAAA,oBAW/B,oBAAC,aAAD;IACE,EAAE,EAAEL,OADN;IAEE,OAAO,EAAEL,WAAW,CAACW,YAFvB;IAGE,UAAU,EAAET,SAHd;IAIE,UAAU,EAAEK,UAJd;IAKE,SAAS,EAAEC,SALb;IAME,SAAS,EAAEC,SANb;IAOE,QAAQ,EAAEC,QAPZ;IAQE,YAAY,MARd;IASE,aAAa;EATf,gBAWE;IACE,SAAS,EAAEZ,UAAU,CAAC,sBAAD,EAAyBM,SAAzB,CADvB;IAEE,IAAI,EAAC,cAFP;IAGE,OAAO,EAAEE,OAHX;IAIE,UAAU,EAAEA;EAJd,GAMGH,QANH,CAXF,CAX+B;AAAA,CAA1B;AAiCP,eAAeF,iBAAf"}
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 +1 @@
1
- {"version":3,"file":"IrisGridCellOverflowModal.d.ts","sourceRoot":"","sources":["../src/IrisGridCellOverflowModal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAW3D,OAAO,kCAAkC,CAAC;AAE1C,UAAU,8BAA8B;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,MAAM,CAAC,OAAO,UAAU,yBAAyB,CAAC,EAChD,IAAI,EACJ,MAAM,EACN,OAAO,GACR,EAAE,8BAA8B,GAAG,KAAK,CAAC,YAAY,GAAG,IAAI,CAoL5D"}
1
+ {"version":3,"file":"IrisGridCellOverflowModal.d.ts","sourceRoot":"","sources":["../src/IrisGridCellOverflowModal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAW3D,OAAO,kCAAkC,CAAC;AAE1C,UAAU,8BAA8B;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,MAAM,CAAC,OAAO,UAAU,yBAAyB,CAAC,EAChD,IAAI,EACJ,MAAM,EACN,OAAO,GACR,EAAE,8BAA8B,GAAG,KAAK,CAAC,YAAY,GAAG,IAAI,CA8J5D"}
@@ -1,9 +1,10 @@
1
1
  import React, { useEffect, useRef, useState } from 'react';
2
2
  import { Editor } from '@deephaven/console';
3
- import { Button, ContextActionUtils, Modal, ModalBody, ModalHeader } from '@deephaven/components';
4
- import { vsCopy, vsJson, vsListOrdered, vsPassFilled } from '@deephaven/icons';
3
+ import { Button, CopyButton, Modal, ModalBody, ModalHeader } from '@deephaven/components';
4
+ import { vsJson, vsListOrdered } from '@deephaven/icons';
5
5
  import "./IrisGridCellOverflowModal.css";
6
6
  export default function IrisGridCellOverflowModal(_ref) {
7
+ var _editorRef$current$ge, _editorRef$current2;
7
8
  var {
8
9
  text,
9
10
  isOpen,
@@ -15,30 +16,29 @@ export default function IrisGridCellOverflowModal(_ref) {
15
16
  var [isFormatted, setIsFormatted] = useState(false);
16
17
  var [canFormat, setCanFormat] = useState(false);
17
18
  var editorRef = useRef();
18
- var copiedTimeout = useRef(null);
19
- var [copied, setCopied] = useState(false); // Update format button on open
20
19
 
20
+ // Update format button on open
21
21
  useEffect(function enableFormatButtonWhenOpen() {
22
22
  if (!isOpen) {
23
23
  return;
24
24
  }
25
-
26
25
  try {
27
26
  JSON.parse(text);
28
27
  setCanFormat(true);
29
28
  } catch (_unused) {
30
29
  setCanFormat(false);
31
30
  }
32
-
33
31
  setIsFormatted(false);
34
- }, [isOpen, text]); // Re-layout editor on height change
32
+ }, [isOpen, text]);
35
33
 
34
+ // Re-layout editor on height change
36
35
  useEffect(function updateLayoutOnHeightChange() {
37
36
  if (editorRef.current) {
38
37
  editorRef.current.layout();
39
38
  }
40
- }, [height]); // Update editor options on line number toggle
39
+ }, [height]);
41
40
 
41
+ // Update editor options on line number toggle
42
42
  useEffect(function toggleShowLineNumber() {
43
43
  if (editorRef.current) {
44
44
  editorRef.current.updateOptions({
@@ -46,37 +46,15 @@ export default function IrisGridCellOverflowModal(_ref) {
46
46
  });
47
47
  }
48
48
  }, [showLineNumbers]);
49
- useEffect(() => {
50
- if (copiedTimeout.current) clearTimeout(copiedTimeout.current);
51
- copiedTimeout.current = setTimeout(() => {
52
- setCopied(false);
53
- }, 1000);
54
- return () => {
55
- if (copiedTimeout.current) clearTimeout(copiedTimeout.current);
56
- };
57
- }, [copied]);
58
-
59
- function copyContents() {
60
- var _editorRef$current$ge, _editorRef$current;
61
-
62
- ContextActionUtils.copyToClipboard((_editorRef$current$ge = (_editorRef$current = editorRef.current) === null || _editorRef$current === void 0 ? void 0 : _editorRef$current.getValue()) !== null && _editorRef$current$ge !== void 0 ? _editorRef$current$ge : text).then(() => {
63
- setCopied(true);
64
- });
65
- }
66
-
67
49
  function toggleLineNumbers() {
68
50
  setShowLineNumbers(!showLineNumbers);
69
51
  }
70
-
71
52
  function formatAsJSON() {
72
- var _editorRef$current2;
73
-
74
- var model = (_editorRef$current2 = editorRef.current) === null || _editorRef$current2 === void 0 ? void 0 : _editorRef$current2.getModel();
75
-
53
+ var _editorRef$current;
54
+ var model = (_editorRef$current = editorRef.current) === null || _editorRef$current === void 0 ? void 0 : _editorRef$current.getModel();
76
55
  if (!canFormat || !model) {
77
56
  return;
78
57
  }
79
-
80
58
  if (!isFormatted) {
81
59
  model.setValue(JSON.stringify(JSON.parse(text), undefined, 2));
82
60
  setIsFormatted(true);
@@ -84,29 +62,22 @@ export default function IrisGridCellOverflowModal(_ref) {
84
62
  model.setValue(text);
85
63
  setIsFormatted(false);
86
64
  }
87
-
88
65
  autoSetLineNumbers();
89
66
  }
90
-
91
67
  function autoSetLineNumbers() {
92
68
  var _editor$getModel$getL, _editor$getModel;
93
-
94
69
  var editor = editorRef.current;
95
-
96
70
  if (!editor) {
97
71
  return;
98
72
  }
99
-
100
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);
101
74
  }
102
-
103
75
  function handleToggle() {
104
76
  if (isOpened) {
105
77
  editorRef.current = undefined;
106
78
  onClose();
107
79
  }
108
80
  }
109
-
110
81
  function onEditorInitialized(editor) {
111
82
  editorRef.current = editor;
112
83
  editor.onDidContentSizeChange(_ref2 => {
@@ -117,11 +88,9 @@ export default function IrisGridCellOverflowModal(_ref) {
117
88
  });
118
89
  autoSetLineNumbers();
119
90
  }
120
-
121
91
  if (!isOpen && !isOpened) {
122
92
  return null;
123
93
  }
124
-
125
94
  return /*#__PURE__*/React.createElement(Modal, {
126
95
  isOpen: isOpen,
127
96
  centered: true,
@@ -137,11 +106,10 @@ export default function IrisGridCellOverflowModal(_ref) {
137
106
  toggle: onClose
138
107
  }, /*#__PURE__*/React.createElement("h5", {
139
108
  className: "overflow-modal-title"
140
- }, "Cell Contents"), /*#__PURE__*/React.createElement(Button, {
109
+ }, "Cell Contents"), /*#__PURE__*/React.createElement(CopyButton, {
141
110
  kind: "inline",
142
- icon: copied ? vsPassFilled : vsCopy,
143
- tooltip: copied ? 'Copied contents' : 'Copy contents',
144
- onClick: copyContents
111
+ tooltip: "Copy cell contents",
112
+ 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
145
113
  }), /*#__PURE__*/React.createElement(Button, {
146
114
  kind: "inline",
147
115
  active: showLineNumbers,
@@ -173,7 +141,6 @@ export default function IrisGridCellOverflowModal(_ref) {
173
141
  lineNumbers: showLineNumbers ? 'on' : 'off',
174
142
  overviewRulerLanes: 0,
175
143
  renderLineHighlight: 'none',
176
-
177
144
  /*
178
145
  The entire string may be 1 giant line
179
146
  Monaco by default seeds find w/ that line
@@ -1 +1 @@
1
- {"version":3,"file":"IrisGridCellOverflowModal.js","names":["React","useEffect","useRef","useState","Editor","Button","ContextActionUtils","Modal","ModalBody","ModalHeader","vsCopy","vsJson","vsListOrdered","vsPassFilled","IrisGridCellOverflowModal","text","isOpen","onClose","isOpened","setIsOpened","height","setHeight","showLineNumbers","setShowLineNumbers","isFormatted","setIsFormatted","canFormat","setCanFormat","editorRef","copiedTimeout","copied","setCopied","enableFormatButtonWhenOpen","JSON","parse","updateLayoutOnHeightChange","current","layout","toggleShowLineNumber","updateOptions","lineNumbers","clearTimeout","setTimeout","copyContents","copyToClipboard","getValue","then","toggleLineNumbers","formatAsJSON","model","getModel","setValue","stringify","undefined","autoSetLineNumbers","editor","getLineCount","handleToggle","onEditorInitialized","onDidContentSizeChange","contentHeight","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 ContextActionUtils,\n Modal,\n ModalBody,\n ModalHeader,\n} from '@deephaven/components';\nimport { vsCopy, vsJson, vsListOrdered, vsPassFilled } 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 const copiedTimeout = useRef<ReturnType<typeof setTimeout> | null>(null);\n const [copied, setCopied] = useState(false);\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 useEffect(() => {\n if (copiedTimeout.current) clearTimeout(copiedTimeout.current);\n copiedTimeout.current = setTimeout(() => {\n setCopied(false);\n }, 1000);\n return () => {\n if (copiedTimeout.current) clearTimeout(copiedTimeout.current);\n };\n }, [copied]);\n\n function copyContents() {\n ContextActionUtils.copyToClipboard(\n editorRef.current?.getValue() ?? text\n ).then(() => {\n setCopied(true);\n });\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 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 >\n <ModalHeader toggle={onClose}>\n <h5 className=\"overflow-modal-title\">Cell Contents</h5>\n <Button\n kind=\"inline\"\n icon={copied ? vsPassFilled : vsCopy}\n tooltip={copied ? 'Copied contents' : 'Copy contents'}\n onClick={copyContents}\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
+ {"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","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 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 >\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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"}
@@ -3,9 +3,9 @@ import { GridRange, ModelSizeMap, MoveOperation } from '@deephaven/grid';
3
3
  import { CancelablePromise } from '@deephaven/utils';
4
4
  import './IrisGridCopyHandler.scss';
5
5
  import IrisGridModel from './IrisGridModel';
6
- declare type Values<T> = T[keyof T];
7
- declare type ButtonStateType = Values<typeof IrisGridCopyHandler.BUTTON_STATES>;
8
- export declare type CopyOperation = {
6
+ type Values<T> = T[keyof T];
7
+ type ButtonStateType = Values<typeof IrisGridCopyHandler.BUTTON_STATES>;
8
+ export type CopyOperation = {
9
9
  ranges: GridRange[];
10
10
  includeHeaders: boolean;
11
11
  formatValues?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"IrisGridCopyHandler.d.ts","sourceRoot":"","sources":["../src/IrisGridCopyHandler.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AASzC,OAAO,EACL,SAAS,EAET,YAAY,EACZ,aAAa,EACd,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,iBAAiB,EAGlB,MAAM,kBAAkB,CAAC;AAK1B,OAAO,4BAA4B,CAAC;AACpC,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAI5C,aAAK,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAE5B,aAAK,eAAe,GAAG,MAAM,CAAC,OAAO,mBAAmB,CAAC,aAAa,CAAC,CAAC;AAExE,oBAAY,aAAa,GAAG;IAC1B,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,cAAc,EAAE,OAAO,CAAC;IACxB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,YAAY,EAAE,aAAa,EAAE,CAAC;IAC9B,gBAAgB,EAAE,YAAY,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,UAAU,wBAAwB;IAChC,KAAK,EAAE,aAAa,CAAC;IACrB,aAAa,EAAE,aAAa,CAAC;IAC7B,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,UAAU,wBAAwB;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AACD;;;;GAIG;AACH,cAAM,mBAAoB,SAAQ,SAAS,CACzC,wBAAwB,EACxB,wBAAwB,CACzB;IACC,MAAM,CAAC,mBAAmB,SAAS;IAEnC,MAAM,CAAC,YAAY,SAAQ;IAE3B;;OAEG;IACH,MAAM,CAAC,WAAW;;;;;;;MAkBhB;IAEF,MAAM,CAAC,aAAa;;;;;MAKlB;IAEF,MAAM,CAAC,YAAY;;0BAED,IAAI;yBACL,IAAI;yBACJ,IAAI;wBACL,IAAI;MAClB;IAEF,MAAM,CAAC,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM;IAiBxE,MAAM,CAAC,iBAAiB,CAAC,WAAW,EAAE,eAAe,GAAG,MAAM;gBAalD,KAAK,EAAE,wBAAwB;IAiB3C,iBAAiB,IAAI,IAAI;IAOzB,kBAAkB,CAAC,SAAS,EAAE,wBAAwB,GAAG,IAAI;IAO7D,oBAAoB,IAAI,IAAI;IAI5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,SAAS,CAAC,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;IAE1C,YAAY,CAAC,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAEzC,SAAS,IAAI,IAAI;IAsCjB,QAAQ,IAAI,IAAI;IAMhB,qBAAqB,IAAI,IAAI;IAS7B,iBAAiB,IAAI,IAAI;IAOzB,eAAe,IAAI,IAAI;IAUvB,iBAAiB,IAAI,IAAI;IAQzB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAoB5B,UAAU,IAAI,IAAI;IAyDlB,SAAS,IAAI,IAAI;IAQjB,cAAc,IAAI,IAAI;IAStB,aAAa,IAAI,IAAI;IAOrB,MAAM,IAAI,GAAG,CAAC,OAAO;CAgEtB;AAED,eAAe,mBAAmB,CAAC"}
1
+ {"version":3,"file":"IrisGridCopyHandler.d.ts","sourceRoot":"","sources":["../src/IrisGridCopyHandler.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIzC,OAAO,EACL,SAAS,EAET,YAAY,EACZ,aAAa,EACd,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,iBAAiB,EAIlB,MAAM,kBAAkB,CAAC;AAK1B,OAAO,4BAA4B,CAAC;AACpC,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAI5C,KAAK,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAE5B,KAAK,eAAe,GAAG,MAAM,CAAC,OAAO,mBAAmB,CAAC,aAAa,CAAC,CAAC;AAExE,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,cAAc,EAAE,OAAO,CAAC;IACxB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,YAAY,EAAE,aAAa,EAAE,CAAC;IAC9B,gBAAgB,EAAE,YAAY,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,UAAU,wBAAwB;IAChC,KAAK,EAAE,aAAa,CAAC;IACrB,aAAa,EAAE,aAAa,CAAC;IAC7B,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,UAAU,wBAAwB;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AACD;;;;GAIG;AACH,cAAM,mBAAoB,SAAQ,SAAS,CACzC,wBAAwB,EACxB,wBAAwB,CACzB;IACC,MAAM,CAAC,mBAAmB,SAAS;IAEnC,MAAM,CAAC,YAAY,SAAQ;IAE3B;;OAEG;IACH,MAAM,CAAC,WAAW;;;;;;;MAkBhB;IAEF,MAAM,CAAC,aAAa;;;;;MAKlB;IAEF,MAAM,CAAC,YAAY;;0BAED,IAAI;yBACL,IAAI;yBACJ,IAAI;wBACL,IAAI;MAClB;IAEF,MAAM,CAAC,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM;IAiBxE,MAAM,CAAC,iBAAiB,CAAC,WAAW,EAAE,eAAe,GAAG,MAAM;gBAalD,KAAK,EAAE,wBAAwB;IAiB3C,iBAAiB,IAAI,IAAI;IAOzB,kBAAkB,CAAC,SAAS,EAAE,wBAAwB,GAAG,IAAI;IAO7D,oBAAoB,IAAI,IAAI;IAI5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,SAAS,CAAC,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;IAE1C,YAAY,CAAC,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAEzC,SAAS,IAAI,IAAI;IAsCjB,QAAQ,IAAI,IAAI;IAMhB,qBAAqB,IAAI,IAAI;IAS7B,iBAAiB,IAAI,IAAI;IAOzB,eAAe,IAAI,IAAI;IAUvB,iBAAiB,IAAI,IAAI;IAQzB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAoB5B,UAAU,IAAI,IAAI;IAyDlB,SAAS,IAAI,IAAI;IAQjB,cAAc,IAAI,IAAI;IAStB,aAAa,IAAI,IAAI;IAOrB,MAAM,IAAI,GAAG,CAAC,OAAO;CAgEtB;AAED,eAAe,mBAAmB,CAAC"}
@@ -1,17 +1,15 @@
1
1
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
-
3
2
  import React, { Component } from 'react';
4
3
  import classNames from 'classnames';
5
4
  import { CSSTransition } from 'react-transition-group';
6
- import { Button, ContextActionUtils, LoadingSpinner, ThemeExport } from '@deephaven/components';
5
+ import { Button, LoadingSpinner, ThemeExport } from '@deephaven/components';
7
6
  import { GridRange, GridUtils } from '@deephaven/grid';
8
- import { CanceledPromiseError, PromiseUtils } from '@deephaven/utils';
7
+ import { CanceledPromiseError, copyToClipboard, PromiseUtils } from '@deephaven/utils';
9
8
  import Log from '@deephaven/log';
10
9
  import IrisGridUtils from "./IrisGridUtils.js";
11
10
  import IrisGridBottomBar from "./IrisGridBottomBar.js";
12
11
  import "./IrisGridCopyHandler.css";
13
12
  var log = Log.module('IrisGridCopyHandler');
14
-
15
13
  /**
16
14
  * Component for handling copying of data from the Iris Grid.
17
15
  * - Prompts if necessary (large amount of rows copied)
@@ -21,53 +19,40 @@ class IrisGridCopyHandler extends Component {
21
19
  /**
22
20
  * Different states for the current copy operation
23
21
  */
22
+
24
23
  static getStatusMessageText(copyState, rowCount) {
25
24
  switch (copyState) {
26
25
  case IrisGridCopyHandler.COPY_STATES.CONFIRMATION_REQUIRED:
27
26
  return "Are you sure you want to copy ".concat(rowCount.toLocaleString(), " rows to your clipboard?");
28
-
29
27
  case IrisGridCopyHandler.COPY_STATES.CLICK_REQUIRED:
30
28
  return "Fetched ".concat(rowCount.toLocaleString(), " rows!");
31
-
32
29
  case IrisGridCopyHandler.COPY_STATES.FETCH_ERROR:
33
30
  return 'Unable to copy data.';
34
-
35
31
  case IrisGridCopyHandler.COPY_STATES.FETCH_IN_PROGRESS:
36
32
  return "Fetching ".concat(rowCount.toLocaleString(), " rows for clipboard...");
37
-
38
33
  case IrisGridCopyHandler.COPY_STATES.DONE:
39
34
  return 'Copied to Clipboard!';
40
-
41
35
  default:
42
36
  return '';
43
37
  }
44
38
  }
45
-
46
39
  static getCopyButtonText(buttonState) {
47
40
  switch (buttonState) {
48
41
  case IrisGridCopyHandler.BUTTON_STATES.FETCH_IN_PROGRESS:
49
42
  return 'Fetching';
50
-
51
43
  case IrisGridCopyHandler.BUTTON_STATES.CLICK_TO_COPY:
52
44
  return 'Click to Copy';
53
-
54
45
  case IrisGridCopyHandler.BUTTON_STATES.RETRY:
55
46
  return 'Retry';
56
-
57
47
  default:
58
48
  return 'Copy';
59
49
  }
60
50
  }
61
-
62
51
  constructor(props) {
63
52
  super(props);
64
-
65
53
  _defineProperty(this, "textData", void 0);
66
-
67
54
  _defineProperty(this, "hideTimer", void 0);
68
-
69
55
  _defineProperty(this, "fetchPromise", void 0);
70
-
71
56
  this.handleBackgroundClick = this.handleBackgroundClick.bind(this);
72
57
  this.handleCancelClick = this.handleCancelClick.bind(this);
73
58
  this.handleCopyClick = this.handleCopyClick.bind(this);
@@ -80,38 +65,31 @@ class IrisGridCopyHandler extends Component {
80
65
  rowCount: 0
81
66
  };
82
67
  }
83
-
84
68
  componentDidMount() {
85
69
  var {
86
70
  copyOperation
87
71
  } = this.props;
88
-
89
72
  if (copyOperation != null) {
90
73
  this.startCopy();
91
74
  }
92
75
  }
93
-
94
76
  componentDidUpdate(prevProps) {
95
77
  var {
96
78
  copyOperation
97
79
  } = this.props;
98
-
99
80
  if (prevProps.copyOperation !== copyOperation) {
100
81
  this.startCopy();
101
82
  }
102
83
  }
103
-
104
84
  componentWillUnmount() {
105
85
  this.stopCopy();
106
86
  }
107
-
108
87
  startCopy() {
109
88
  log.debug2('startCopy');
110
89
  this.stopCopy();
111
90
  var {
112
91
  copyOperation
113
92
  } = this.props;
114
-
115
93
  if (copyOperation == null) {
116
94
  log.debug2('No copy operation set, cancelling out');
117
95
  this.setState({
@@ -119,12 +97,10 @@ class IrisGridCopyHandler extends Component {
119
97
  });
120
98
  return;
121
99
  }
122
-
123
100
  var {
124
101
  ranges,
125
102
  error
126
103
  } = copyOperation;
127
-
128
104
  if (error != null) {
129
105
  log.debug('Showing copy error', error);
130
106
  this.setState({
@@ -135,14 +111,12 @@ class IrisGridCopyHandler extends Component {
135
111
  this.startHideTimer();
136
112
  return;
137
113
  }
138
-
139
114
  var rowCount = GridRange.rowCount(ranges);
140
115
  this.setState({
141
116
  rowCount,
142
117
  isShown: true,
143
118
  error: undefined
144
119
  });
145
-
146
120
  if (rowCount > IrisGridCopyHandler.NO_PROMPT_THRESHOLD) {
147
121
  this.setState({
148
122
  buttonState: IrisGridCopyHandler.BUTTON_STATES.COPY,
@@ -152,26 +126,22 @@ class IrisGridCopyHandler extends Component {
152
126
  this.startFetch();
153
127
  }
154
128
  }
155
-
156
129
  stopCopy() {
157
130
  this.textData = undefined;
158
131
  this.stopFetch();
159
132
  this.stopHideTimer();
160
133
  }
161
-
162
134
  handleBackgroundClick() {
163
135
  log.debug2('handleBackgroundClick');
164
136
  var {
165
137
  copyState
166
138
  } = this.state;
167
-
168
139
  if (copyState === IrisGridCopyHandler.COPY_STATES.DONE) {
169
140
  this.setState({
170
141
  isShown: false
171
142
  });
172
143
  }
173
144
  }
174
-
175
145
  handleCancelClick() {
176
146
  log.debug2('handleCancelClick');
177
147
  this.stopFetch();
@@ -179,17 +149,14 @@ class IrisGridCopyHandler extends Component {
179
149
  isShown: false
180
150
  });
181
151
  }
182
-
183
152
  handleCopyClick() {
184
153
  log.debug2('handleCopyClick');
185
-
186
154
  if (this.textData != null) {
187
155
  this.copyText(this.textData);
188
156
  } else {
189
157
  this.startFetch();
190
158
  }
191
159
  }
192
-
193
160
  handleHideTimeout() {
194
161
  log.debug2('handleHideTimeout');
195
162
  this.stopHideTimer();
@@ -197,11 +164,10 @@ class IrisGridCopyHandler extends Component {
197
164
  isShown: false
198
165
  });
199
166
  }
200
-
201
167
  copyText(text) {
202
168
  log.debug2('copyText', text);
203
169
  this.textData = text;
204
- ContextActionUtils.copyToClipboard(text).then(() => {
170
+ copyToClipboard(text).then(() => {
205
171
  this.setState({
206
172
  copyState: IrisGridCopyHandler.COPY_STATES.DONE
207
173
  });
@@ -214,7 +180,6 @@ class IrisGridCopyHandler extends Component {
214
180
  });
215
181
  });
216
182
  }
217
-
218
183
  startFetch() {
219
184
  this.stopFetch();
220
185
  this.setState({
@@ -235,13 +200,12 @@ class IrisGridCopyHandler extends Component {
235
200
  log.debug('startFetch', ranges);
236
201
  var hiddenColumns = IrisGridUtils.getHiddenColumns(userColumnWidths);
237
202
  var modelRanges = GridUtils.getModelRanges(ranges, movedColumns);
238
-
239
203
  if (hiddenColumns.length > 0) {
240
204
  var subtractRanges = hiddenColumns.map(GridRange.makeColumn);
241
205
  modelRanges = GridRange.subtractRangesFromRanges(modelRanges, subtractRanges);
242
- } // Remove the hidden columns from the snapshot
243
-
206
+ }
244
207
 
208
+ // Remove the hidden columns from the snapshot
245
209
  var formatValue = formatValues != null && formatValues ? (value, column) => model.displayString(value, column.type, column.name) : value => "".concat(value);
246
210
  this.fetchPromise = PromiseUtils.makeCancelable(model.textSnapshot(modelRanges, includeHeaders, formatValue));
247
211
  this.fetchPromise.then(text => {
@@ -260,7 +224,6 @@ class IrisGridCopyHandler extends Component {
260
224
  }
261
225
  });
262
226
  }
263
-
264
227
  stopFetch() {
265
228
  if (this.fetchPromise) {
266
229
  log.debug2('stopFetch');
@@ -268,19 +231,16 @@ class IrisGridCopyHandler extends Component {
268
231
  this.fetchPromise = undefined;
269
232
  }
270
233
  }
271
-
272
234
  startHideTimer() {
273
235
  this.stopHideTimer();
274
236
  this.hideTimer = setTimeout(this.handleHideTimeout, IrisGridCopyHandler.HIDE_TIMEOUT);
275
237
  }
276
-
277
238
  stopHideTimer() {
278
239
  if (this.hideTimer != null) {
279
240
  clearTimeout(this.hideTimer);
280
241
  this.hideTimer = undefined;
281
242
  }
282
243
  }
283
-
284
244
  render() {
285
245
  var {
286
246
  onEntering,
@@ -335,13 +295,9 @@ class IrisGridCopyHandler extends Component {
335
295
  disabled: isFetching
336
296
  }, isFetching && /*#__PURE__*/React.createElement(LoadingSpinner, null), copyButtonText))));
337
297
  }
338
-
339
298
  }
340
-
341
299
  _defineProperty(IrisGridCopyHandler, "NO_PROMPT_THRESHOLD", 10000);
342
-
343
300
  _defineProperty(IrisGridCopyHandler, "HIDE_TIMEOUT", 3000);
344
-
345
301
  _defineProperty(IrisGridCopyHandler, "COPY_STATES", {
346
302
  // No copy operation in progress
347
303
  IDLE: 'IDLE',
@@ -356,14 +312,12 @@ _defineProperty(IrisGridCopyHandler, "COPY_STATES", {
356
312
  // The copy operation is completed and successfully copied to the clipboard
357
313
  DONE: 'DONE'
358
314
  });
359
-
360
315
  _defineProperty(IrisGridCopyHandler, "BUTTON_STATES", {
361
316
  COPY: 'COPY',
362
317
  FETCH_IN_PROGRESS: 'FETCH_IN_PROGRESS',
363
318
  CLICK_TO_COPY: 'CLICK_TO_COPY',
364
319
  RETRY: 'RETRY'
365
320
  });
366
-
367
321
  _defineProperty(IrisGridCopyHandler, "defaultProps", {
368
322
  copyOperation: null,
369
323
  onEntering: () => undefined,
@@ -371,6 +325,5 @@ _defineProperty(IrisGridCopyHandler, "defaultProps", {
371
325
  onExiting: () => undefined,
372
326
  onExited: () => undefined
373
327
  });
374
-
375
328
  export default IrisGridCopyHandler;
376
329
  //# sourceMappingURL=IrisGridCopyHandler.js.map