@deephaven/iris-grid 1.4.1-beta.0 → 1.4.1-react19.43
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/AdvancedFilterCreator.js +5 -7
- package/dist/AdvancedFilterCreator.js.map +1 -1
- package/dist/AdvancedFilterCreatorFilterItem.js +6 -7
- package/dist/AdvancedFilterCreatorFilterItem.js.map +1 -1
- package/dist/AdvancedFilterCreatorSelectValue.js +1 -2
- package/dist/AdvancedFilterCreatorSelectValue.js.map +1 -1
- package/dist/AdvancedFilterCreatorSelectValueList.js +2 -3
- package/dist/AdvancedFilterCreatorSelectValueList.js.map +1 -1
- package/dist/ColumnHeaderGroup.js.map +1 -1
- package/dist/ColumnStatistics.d.ts +2 -2
- package/dist/ColumnStatistics.d.ts.map +1 -1
- package/dist/ColumnStatistics.js +2 -5
- package/dist/ColumnStatistics.js.map +1 -1
- package/dist/CommonTypes.js.map +1 -1
- package/dist/CrossColumnSearch.js +2 -4
- package/dist/CrossColumnSearch.js.map +1 -1
- package/dist/EmptyIrisGridModel.d.ts +3 -0
- package/dist/EmptyIrisGridModel.d.ts.map +1 -1
- package/dist/EmptyIrisGridModel.js +8 -0
- package/dist/EmptyIrisGridModel.js.map +1 -1
- package/dist/FilterInputField.js +4 -5
- package/dist/FilterInputField.js.map +1 -1
- package/dist/GotoRow.js +4 -6
- package/dist/GotoRow.js.map +1 -1
- package/dist/IrisGrid.d.ts +38 -43
- package/dist/IrisGrid.d.ts.map +1 -1
- package/dist/IrisGrid.js +181 -168
- package/dist/IrisGrid.js.map +1 -1
- package/dist/IrisGridBottomBar.d.ts.map +1 -1
- package/dist/IrisGridBottomBar.js +4 -1
- package/dist/IrisGridBottomBar.js.map +1 -1
- package/dist/IrisGridCacheUtils.d.ts.map +1 -1
- package/dist/IrisGridCacheUtils.js +1 -1
- package/dist/IrisGridCacheUtils.js.map +1 -1
- package/dist/IrisGridCellOverflowModal.js +1 -2
- package/dist/IrisGridCellOverflowModal.js.map +1 -1
- package/dist/IrisGridCellRendererUtils.js.map +1 -1
- package/dist/IrisGridCopyHandler.js +4 -6
- package/dist/IrisGridCopyHandler.js.map +1 -1
- package/dist/IrisGridDataBarCellRenderer.js.map +1 -1
- package/dist/IrisGridIcons.js.map +1 -1
- package/dist/IrisGridMetricCalculator.d.ts +1 -2
- package/dist/IrisGridMetricCalculator.d.ts.map +1 -1
- package/dist/IrisGridMetricCalculator.js.map +1 -1
- package/dist/IrisGridModel.d.ts +8 -0
- package/dist/IrisGridModel.d.ts.map +1 -1
- package/dist/IrisGridModel.js +8 -0
- package/dist/IrisGridModel.js.map +1 -1
- package/dist/IrisGridModelFactory.js.map +1 -1
- package/dist/IrisGridModelUpdater.d.ts +2 -1
- package/dist/IrisGridModelUpdater.d.ts.map +1 -1
- package/dist/IrisGridModelUpdater.js +4 -0
- package/dist/IrisGridModelUpdater.js.map +1 -1
- package/dist/IrisGridPartitionSelector.d.ts.map +1 -1
- package/dist/IrisGridPartitionSelector.js +6 -8
- package/dist/IrisGridPartitionSelector.js.map +1 -1
- package/dist/IrisGridPartitionedTableModel.js.map +1 -1
- package/dist/IrisGridProxyModel.d.ts +2 -0
- package/dist/IrisGridProxyModel.d.ts.map +1 -1
- package/dist/IrisGridProxyModel.js +12 -7
- package/dist/IrisGridProxyModel.js.map +1 -1
- package/dist/IrisGridRenderer.js +0 -1
- package/dist/IrisGridRenderer.js.map +1 -1
- package/dist/IrisGridShortcuts.js.map +1 -1
- package/dist/IrisGridTableModel.js +1 -2
- package/dist/IrisGridTableModel.js.map +1 -1
- package/dist/IrisGridTableModelTemplate.d.ts +6 -2
- package/dist/IrisGridTableModelTemplate.d.ts.map +1 -1
- package/dist/IrisGridTableModelTemplate.js +71 -61
- package/dist/IrisGridTableModelTemplate.js.map +1 -1
- package/dist/IrisGridTestUtils.js.map +1 -1
- package/dist/IrisGridTextCellRenderer.js.map +1 -1
- package/dist/IrisGridTheme.js.map +1 -1
- package/dist/IrisGridThemeProvider.d.ts.map +1 -1
- package/dist/IrisGridThemeProvider.js +1 -0
- package/dist/IrisGridThemeProvider.js.map +1 -1
- package/dist/IrisGridTreeTableModel.d.ts +1 -1
- package/dist/IrisGridTreeTableModel.d.ts.map +1 -1
- package/dist/IrisGridTreeTableModel.js +19 -14
- package/dist/IrisGridTreeTableModel.js.map +1 -1
- package/dist/IrisGridUtils.d.ts +3 -1
- package/dist/IrisGridUtils.d.ts.map +1 -1
- package/dist/IrisGridUtils.js +60 -56
- package/dist/IrisGridUtils.js.map +1 -1
- package/dist/LazyIrisGrid.d.ts +55 -77
- package/dist/LazyIrisGrid.d.ts.map +1 -1
- package/dist/LazyIrisGrid.js +3 -1
- package/dist/LazyIrisGrid.js.map +1 -1
- package/dist/MissingKeyError.js.map +1 -1
- package/dist/MissingPartitionError.js.map +1 -1
- package/dist/NoPastePermissionModal.js +1 -2
- package/dist/NoPastePermissionModal.js.map +1 -1
- package/dist/PartitionedGridModel.js.map +1 -1
- package/dist/PendingDataBottomBar.js +1 -2
- package/dist/PendingDataBottomBar.js.map +1 -1
- package/dist/ToastBottomBar.js.map +1 -1
- package/dist/declaration.d.js.map +1 -1
- package/dist/format-context-menus/CustomFormatAction.js +1 -2
- package/dist/format-context-menus/CustomFormatAction.js.map +1 -1
- package/dist/format-context-menus/DateTimeFormatContextMenu.js.map +1 -1
- package/dist/format-context-menus/DecimalFormatContextMenu.js.map +1 -1
- package/dist/format-context-menus/FormatContextMenuUtils.js.map +1 -1
- package/dist/format-context-menus/IntegerFormatContextMenu.js.map +1 -1
- package/dist/format-context-menus/TextAlignmentFormatContextMenu.d.ts +21 -0
- package/dist/format-context-menus/TextAlignmentFormatContextMenu.d.ts.map +1 -0
- package/dist/format-context-menus/TextAlignmentFormatContextMenu.js +42 -0
- package/dist/format-context-menus/TextAlignmentFormatContextMenu.js.map +1 -0
- package/dist/format-context-menus/index.d.ts +1 -0
- package/dist/format-context-menus/index.d.ts.map +1 -1
- package/dist/format-context-menus/index.js +1 -0
- package/dist/format-context-menus/index.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/key-handlers/ClearFilterKeyHandler.js.map +1 -1
- package/dist/key-handlers/CopyCellKeyHandler.js.map +1 -1
- package/dist/key-handlers/CopyKeyHandler.js.map +1 -1
- package/dist/key-handlers/ReverseKeyHandler.js.map +1 -1
- package/dist/key-handlers/index.js.map +1 -1
- package/dist/mousehandlers/IrisGridCellOverflowMouseHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridColumnSelectMouseHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridColumnTooltipMouseHandler.d.ts.map +1 -1
- package/dist/mousehandlers/IrisGridColumnTooltipMouseHandler.js +5 -2
- package/dist/mousehandlers/IrisGridColumnTooltipMouseHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridContextMenuHandler.d.ts +1 -0
- package/dist/mousehandlers/IrisGridContextMenuHandler.d.ts.map +1 -1
- package/dist/mousehandlers/IrisGridContextMenuHandler.js +27 -3
- package/dist/mousehandlers/IrisGridContextMenuHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridCopyCellMouseHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridDataSelectMouseHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridFilterMouseHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridPartitionedTableMouseHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridRowTreeMouseHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridSortMouseHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridTokenMouseHandler.js +1 -3
- package/dist/mousehandlers/IrisGridTokenMouseHandler.js.map +1 -1
- package/dist/mousehandlers/PendingMouseHandler.js.map +1 -1
- package/dist/mousehandlers/index.js.map +1 -1
- package/dist/sidebar/AdvancedSettings.js.map +1 -1
- package/dist/sidebar/AdvancedSettingsMenu.d.ts +1 -1
- package/dist/sidebar/AdvancedSettingsMenu.d.ts.map +1 -1
- package/dist/sidebar/AdvancedSettingsMenu.js.map +1 -1
- package/dist/sidebar/AdvancedSettingsType.js +3 -3
- package/dist/sidebar/AdvancedSettingsType.js.map +1 -1
- package/dist/sidebar/ChartBuilder.d.ts +2 -2
- package/dist/sidebar/ChartBuilder.d.ts.map +1 -1
- package/dist/sidebar/ChartBuilder.js +1 -2
- package/dist/sidebar/ChartBuilder.js.map +1 -1
- package/dist/sidebar/CustomColumnBuilder.d.ts +1 -1
- package/dist/sidebar/CustomColumnBuilder.d.ts.map +1 -1
- package/dist/sidebar/CustomColumnBuilder.js +4 -6
- package/dist/sidebar/CustomColumnBuilder.js.map +1 -1
- package/dist/sidebar/CustomColumnInput.js +2 -3
- package/dist/sidebar/CustomColumnInput.js.map +1 -1
- package/dist/sidebar/DownloadServiceWorkerUtils.js +1 -1
- package/dist/sidebar/DownloadServiceWorkerUtils.js.map +1 -1
- package/dist/sidebar/InputEditor.js +8 -9
- package/dist/sidebar/InputEditor.js.map +1 -1
- package/dist/sidebar/OptionType.js +3 -3
- package/dist/sidebar/OptionType.js.map +1 -1
- package/dist/sidebar/RollupRows.d.ts +1 -1
- package/dist/sidebar/RollupRows.d.ts.map +1 -1
- package/dist/sidebar/RollupRows.js +9 -11
- package/dist/sidebar/RollupRows.js.map +1 -1
- package/dist/sidebar/SelectDistinctBuilder.js +1 -2
- package/dist/sidebar/SelectDistinctBuilder.js.map +1 -1
- package/dist/sidebar/TableCsvExporter.js +5 -7
- package/dist/sidebar/TableCsvExporter.js.map +1 -1
- package/dist/sidebar/TableSaver.js +9 -10
- package/dist/sidebar/TableSaver.js.map +1 -1
- package/dist/sidebar/aggregations/AggregationEdit.js +4 -5
- package/dist/sidebar/aggregations/AggregationEdit.js.map +1 -1
- package/dist/sidebar/aggregations/AggregationOperation.js +3 -3
- package/dist/sidebar/aggregations/AggregationOperation.js.map +1 -1
- package/dist/sidebar/aggregations/AggregationUtils.js +0 -1
- package/dist/sidebar/aggregations/AggregationUtils.js.map +1 -1
- package/dist/sidebar/aggregations/Aggregations.d.ts.map +1 -1
- package/dist/sidebar/aggregations/Aggregations.js +3 -5
- package/dist/sidebar/aggregations/Aggregations.js.map +1 -1
- package/dist/sidebar/aggregations/index.js.map +1 -1
- package/dist/sidebar/conditional-formatting/ColumnFormatEditor.d.ts.map +1 -1
- package/dist/sidebar/conditional-formatting/ColumnFormatEditor.js +1 -3
- package/dist/sidebar/conditional-formatting/ColumnFormatEditor.js.map +1 -1
- package/dist/sidebar/conditional-formatting/ConditionEditor.d.ts.map +1 -1
- package/dist/sidebar/conditional-formatting/ConditionEditor.js +2 -3
- package/dist/sidebar/conditional-formatting/ConditionEditor.js.map +1 -1
- package/dist/sidebar/conditional-formatting/ConditionalFormatEditor.js +1 -2
- package/dist/sidebar/conditional-formatting/ConditionalFormatEditor.js.map +1 -1
- package/dist/sidebar/conditional-formatting/ConditionalFormattingAPIUtils.js.map +1 -1
- package/dist/sidebar/conditional-formatting/ConditionalFormattingMenu.js +2 -3
- package/dist/sidebar/conditional-formatting/ConditionalFormattingMenu.js.map +1 -1
- package/dist/sidebar/conditional-formatting/ConditionalFormattingUtils.js +21 -21
- package/dist/sidebar/conditional-formatting/ConditionalFormattingUtils.js.map +1 -1
- package/dist/sidebar/conditional-formatting/RowFormatEditor.d.ts.map +1 -1
- package/dist/sidebar/conditional-formatting/RowFormatEditor.js +1 -3
- package/dist/sidebar/conditional-formatting/RowFormatEditor.js.map +1 -1
- package/dist/sidebar/conditional-formatting/StyleEditor.d.ts.map +1 -1
- package/dist/sidebar/conditional-formatting/StyleEditor.js +2 -3
- package/dist/sidebar/conditional-formatting/StyleEditor.js.map +1 -1
- package/dist/sidebar/icons/BarIcon.js +1 -2
- package/dist/sidebar/icons/BarIcon.js.map +1 -1
- package/dist/sidebar/icons/FormatColumnWhereIcon.js +1 -2
- package/dist/sidebar/icons/FormatColumnWhereIcon.js.map +1 -1
- package/dist/sidebar/icons/FormatRowWhereIcon.js +1 -2
- package/dist/sidebar/icons/FormatRowWhereIcon.js.map +1 -1
- package/dist/sidebar/icons/HistogramIcon.js +1 -2
- package/dist/sidebar/icons/HistogramIcon.js.map +1 -1
- package/dist/sidebar/icons/LineIcon.js +1 -2
- package/dist/sidebar/icons/LineIcon.js.map +1 -1
- package/dist/sidebar/icons/PieIcon.js +1 -2
- package/dist/sidebar/icons/PieIcon.js.map +1 -1
- package/dist/sidebar/icons/ScatterIcon.js +1 -2
- package/dist/sidebar/icons/ScatterIcon.js.map +1 -1
- package/dist/sidebar/icons/index.js.map +1 -1
- package/dist/sidebar/index.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.d.ts +2 -2
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.d.ts.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.js +34 -36
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilderUtils.js +3 -3
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilderUtils.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingGroup.js +3 -5
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingGroup.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingItem.d.ts.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingItem.js +2 -4
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingItem.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/PointerSensorWithInteraction.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTree.js +4 -4
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTree.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeInner.js +3 -6
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeInner.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeItem.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/TreeItem.js +1 -2
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/TreeItem.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/keyboardCoordinates.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/types.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/utilities.d.ts +1 -2
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/utilities.d.ts.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/utilities.js.map +1 -1
- package/package.json +17 -18
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IrisGridBottomBar.d.ts","sourceRoot":"","sources":["../src/IrisGridBottomBar.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"IrisGridBottomBar.d.ts","sourceRoot":"","sources":["../src/IrisGridBottomBar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAiB,MAAM,OAAO,CAAC;AAItC,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,CA0BtC;AAED,eAAe,iBAAiB,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React from 'react';
|
|
1
|
+
import React, { useRef } from 'react';
|
|
2
2
|
import classNames from 'classnames';
|
|
3
3
|
import { CSSTransition } from 'react-transition-group';
|
|
4
4
|
import { ThemeExport } from '@deephaven/components';
|
|
@@ -16,6 +16,7 @@ export function IrisGridBottomBar(_ref) {
|
|
|
16
16
|
onExiting,
|
|
17
17
|
onExited
|
|
18
18
|
} = _ref;
|
|
19
|
+
var nodeRef = useRef(null);
|
|
19
20
|
return /*#__PURE__*/_jsx(CSSTransition, {
|
|
20
21
|
in: isShown,
|
|
21
22
|
timeout: ThemeExport.transitionMs,
|
|
@@ -26,7 +27,9 @@ export function IrisGridBottomBar(_ref) {
|
|
|
26
27
|
onExited: onExited,
|
|
27
28
|
mountOnEnter: true,
|
|
28
29
|
unmountOnExit: true,
|
|
30
|
+
nodeRef: nodeRef,
|
|
29
31
|
children: /*#__PURE__*/_jsx("div", {
|
|
32
|
+
ref: nodeRef,
|
|
30
33
|
className: classNames('iris-grid-bottom-bar', className),
|
|
31
34
|
role: "presentation",
|
|
32
35
|
onClick: onClick,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IrisGridBottomBar.js","names":["React","classNames","CSSTransition","ThemeExport","jsx","_jsx","IrisGridBottomBar","_ref","animation","children","className","isShown","onClick","onEntering","onEntered","onExiting","onExited","in","timeout","transitionMs","mountOnEnter","unmountOnExit","role","onKeyPress"],"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;
|
|
1
|
+
{"version":3,"file":"IrisGridBottomBar.js","names":["React","useRef","classNames","CSSTransition","ThemeExport","jsx","_jsx","IrisGridBottomBar","_ref","animation","children","className","isShown","onClick","onEntering","onEntered","onExiting","onExited","nodeRef","in","timeout","transitionMs","mountOnEnter","unmountOnExit","ref","role","onKeyPress"],"sources":["../src/IrisGridBottomBar.tsx"],"sourcesContent":["import React, { useRef } 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 const nodeRef = useRef<HTMLDivElement>(null);\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 nodeRef={nodeRef}\n >\n <div\n ref={nodeRef}\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,IAAIC,MAAM,QAAQ,OAAO;AACrC,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,aAAa,QAAQ,wBAAwB;AACtD,SAASC,WAAW,QAAQ,uBAAuB;AAAC;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAepD,OAAO,SAASC,iBAAiBA,CAAAC,IAAA,EAUO;EAAA,IAVN;IAChCC,SAAS,GAAG,+BAA+B;IAC3CC,QAAQ;IACRC,SAAS;IACTC,OAAO;IACPC,OAAO;IACPC,UAAU;IACVC,SAAS;IACTC,SAAS;IACTC;EACsB,CAAC,GAAAT,IAAA;EACvB,IAAMU,OAAO,GAAGjB,MAAM,CAAiB,IAAI,CAAC;EAC5C,oBACEK,IAAA,CAACH,aAAa;IACZgB,EAAE,EAAEP,OAAQ;IACZQ,OAAO,EAAEhB,WAAW,CAACiB,YAAa;IAClCnB,UAAU,EAAEO,SAAU;IACtBK,UAAU,EAAEA,UAAW;IACvBC,SAAS,EAAEA,SAAU;IACrBC,SAAS,EAAEA,SAAU;IACrBC,QAAQ,EAAEA,QAAS;IACnBK,YAAY;IACZC,aAAa;IACbL,OAAO,EAAEA,OAAQ;IAAAR,QAAA,eAEjBJ,IAAA;MACEkB,GAAG,EAAEN,OAAQ;MACbP,SAAS,EAAET,UAAU,CAAC,sBAAsB,EAAES,SAAS,CAAE;MACzDc,IAAI,EAAC,cAAc;MACnBZ,OAAO,EAAEA,OAAQ;MACjBa,UAAU,EAAEb,OAAQ;MAAAH,QAAA,EAEnBA;IAAQ,CACN;EAAC,CACO,CAAC;AAEpB;AAEA,eAAeH,iBAAiB","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IrisGridCacheUtils.d.ts","sourceRoot":"","sources":["../src/IrisGridCacheUtils.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,aAAa,MAAM,iBAAiB,CAAC;AACjD,OAAsB,EACpB,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,EAC5B,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC3B,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"IrisGridCacheUtils.d.ts","sourceRoot":"","sources":["../src/IrisGridCacheUtils.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,aAAa,MAAM,iBAAiB,CAAC;AACjD,OAAsB,EACpB,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,EAC5B,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC3B,MAAM,iBAAiB,CAAC;AA0EzB;;;;GAIG;AACH,iBAAS,+BAA+B,IAAI,CAC1C,KAAK,EAAE,aAAa,EACpB,SAAS,EAAE,iBAAiB,KACzB,mBAAmB,CAOvB;AAED;;;;GAIG;AACH,iBAAS,mCAAmC,IAAI,CAC9C,KAAK,EAAE,aAAa,EACpB,aAAa,EAAE,qBAAqB,KACjC,uBAAuB,CAU3B;AAED;;;;;GAKG;AACH,iBAAS,uCAAuC,IAAI,CAClD,KAAK,EAAE,aAAa,EACpB,aAAa,EAAE,qBAAqB,EACpC,SAAS,EAAE,iBAAiB,KACzB,uBAAuB,GAAG,mBAAmB,CAqBjD;AAED,eAAO,MAAM,kBAAkB;;;;CAI9B,CAAC"}
|
|
@@ -28,7 +28,7 @@ function areGridStatesEqual(gridStateA, gridStateB) {
|
|
|
28
28
|
*/
|
|
29
29
|
function areIrisGridStatesEqual(irisGridStateA, irisGridStateB) {
|
|
30
30
|
// Top level keys we want to check for referential equality
|
|
31
|
-
var compareStateKeys = ['advancedFilters', 'aggregationSettings', 'customColumnFormatMap', 'isFilterBarShown', 'quickFilters', 'customColumns', 'reverse', 'rollupConfig', 'showSearchBar', 'searchValue', 'selectDistinctColumns', 'selectedSearchColumns', 'sorts', 'invertSearchColumns', 'pendingDataMap', 'frozenColumns', 'conditionalFormats', 'columnHeaderGroups', 'partitionConfig'];
|
|
31
|
+
var compareStateKeys = ['advancedFilters', 'aggregationSettings', 'customColumnFormatMap', 'columnAlignmentMap', 'isFilterBarShown', 'quickFilters', 'customColumns', 'reverse', 'rollupConfig', 'showSearchBar', 'searchValue', 'selectDistinctColumns', 'selectedSearchColumns', 'sorts', 'invertSearchColumns', 'pendingDataMap', 'frozenColumns', 'conditionalFormats', 'columnHeaderGroups', 'partitionConfig'];
|
|
32
32
|
return irisGridStateA === irisGridStateB || irisGridStateA.metrics != null && irisGridStateB.metrics != null && irisGridStateA.metrics.userColumnWidths === irisGridStateB.metrics.userColumnWidths && irisGridStateA.metrics.userRowHeights === irisGridStateB.metrics.userRowHeights && compareStateKeys.every(key => irisGridStateA[key] === irisGridStateB[key]);
|
|
33
33
|
}
|
|
34
34
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IrisGridCacheUtils.js","names":["memoizeOne","IrisGridUtils","areGridStatesEqual","gridStateA","gridStateB","compareKeys","every","key","areIrisGridStatesEqual","irisGridStateA","irisGridStateB","compareStateKeys","metrics","userColumnWidths","userRowHeights","makeMemoizedGridStateDehydrator","model","gridState","dehydrateGridState","_ref","_ref2","modelA","modelB","makeMemoizedIrisGridStateDehydrator","irisGridState","irisGridUtils","dh","dehydrateIrisGridState","_ref3","_ref4","makeMemoizedCombinedGridStateDehydrator","_objectSpread","_ref5","_ref6","IrisGridCacheUtils"],"sources":["../src/IrisGridCacheUtils.ts"],"sourcesContent":["/* eslint-disable import/prefer-default-export */\nimport { type GridState } from '@deephaven/grid';\nimport memoizeOne from 'memoize-one';\nimport type IrisGridModel from './IrisGridModel';\nimport IrisGridUtils, {\n type DehydratedGridState,\n type DehydratedIrisGridState,\n type HydratedGridState,\n type HydratedIrisGridState,\n} from './IrisGridUtils';\n\n/**\n * Checks if 2 grid states are equivalent.\n * Checks values and does not require referential equality of the entire state, just the values we care about.\n * @param gridStateA First grid state\n * @param gridStateB Second grid state\n * @returns True if the states are equivalent\n */\nfunction areGridStatesEqual(\n gridStateA: HydratedGridState,\n gridStateB: HydratedGridState\n): boolean {\n const compareKeys = [\n 'isStuckToBottom',\n 'isStuckToRight',\n 'movedColumns',\n 'movedRows',\n ] satisfies Array<keyof GridState>;\n return (\n gridStateA === gridStateB ||\n compareKeys.every(key => gridStateA[key] === gridStateB[key])\n );\n}\n\n/**\n * Checks if 2 iris grid states are equivalent.\n * Checks values and does not require referential equality of the entire state, just the values we care about.\n * @param irisGridStateA First iris grid state\n * @param irisGridStateB Second iris grid state\n * @returns True if the states are equivalent\n */\nfunction areIrisGridStatesEqual(\n irisGridStateA: HydratedIrisGridState,\n irisGridStateB: HydratedIrisGridState\n): boolean {\n // Top level keys we want to check for referential equality\n const compareStateKeys = [\n 'advancedFilters',\n 'aggregationSettings',\n 'customColumnFormatMap',\n 'isFilterBarShown',\n 'quickFilters',\n 'customColumns',\n 'reverse',\n 'rollupConfig',\n 'showSearchBar',\n 'searchValue',\n 'selectDistinctColumns',\n 'selectedSearchColumns',\n 'sorts',\n 'invertSearchColumns',\n 'pendingDataMap',\n 'frozenColumns',\n 'conditionalFormats',\n 'columnHeaderGroups',\n 'partitionConfig',\n ] satisfies Array<keyof HydratedIrisGridState>;\n\n return (\n irisGridStateA === irisGridStateB ||\n (irisGridStateA.metrics != null &&\n irisGridStateB.metrics != null &&\n irisGridStateA.metrics.userColumnWidths ===\n irisGridStateB.metrics.userColumnWidths &&\n irisGridStateA.metrics.userRowHeights ===\n irisGridStateB.metrics.userRowHeights &&\n compareStateKeys.every(\n key => irisGridStateA[key] === irisGridStateB[key]\n ))\n );\n}\n\n/**\n * Creates a dehydrator function for grid state that is memoized on the last call.\n * Only tracks 1 state at a time. If the model and input states are equal, returns the same dehydrated state object reference.\n * @returns A dehydrator function memoized on the last call\n */\nfunction makeMemoizedGridStateDehydrator(): (\n model: IrisGridModel,\n gridState: HydratedGridState\n) => DehydratedGridState {\n return memoizeOne(\n (model: IrisGridModel, gridState: HydratedGridState) =>\n IrisGridUtils.dehydrateGridState(model, gridState),\n ([modelA, gridStateA], [modelB, gridStateB]) =>\n modelA === modelB && areGridStatesEqual(gridStateA, gridStateB)\n );\n}\n\n/**\n * Creates a dehydrator function for iris grid state that is memoized on the last call.\n * Only tracks 1 state at a time. If the model and input states are equal, returns the same dehydrated state object reference.\n * @returns A dehydrator function memoized on the last call\n */\nfunction makeMemoizedIrisGridStateDehydrator(): (\n model: IrisGridModel,\n irisGridState: HydratedIrisGridState\n) => DehydratedIrisGridState {\n return memoizeOne(\n (model: IrisGridModel, irisGridState: HydratedIrisGridState) => {\n const irisGridUtils = new IrisGridUtils(model.dh);\n return irisGridUtils.dehydrateIrisGridState(model, irisGridState);\n },\n ([modelA, irisGridStateA], [modelB, irisGridStateB]) =>\n modelA === modelB &&\n areIrisGridStatesEqual(irisGridStateA, irisGridStateB)\n );\n}\n\n/**\n * Creates a dehydrator function for grid and iris grid state that is memoized on the last call.\n * Only tracks 1 state at a time. If the model and input states are equal, returns the same dehydrated state object reference.\n * Combines the dehydrated grid and iris grid states into a single object.\n * @returns A dehydrator function memoized on the last call\n */\nfunction makeMemoizedCombinedGridStateDehydrator(): (\n model: IrisGridModel,\n irisGridState: HydratedIrisGridState,\n gridState: HydratedGridState\n) => DehydratedIrisGridState & DehydratedGridState {\n return memoizeOne(\n (\n model: IrisGridModel,\n irisGridState: HydratedIrisGridState,\n gridState: HydratedGridState\n ): DehydratedIrisGridState & DehydratedGridState => {\n const irisGridUtils = new IrisGridUtils(model.dh);\n return {\n ...irisGridUtils.dehydrateIrisGridState(model, irisGridState),\n ...IrisGridUtils.dehydrateGridState(model, gridState),\n };\n },\n (\n [modelA, irisGridStateA, gridStateA],\n [modelB, irisGridStateB, gridStateB]\n ) =>\n modelA === modelB &&\n areIrisGridStatesEqual(irisGridStateA, irisGridStateB) &&\n areGridStatesEqual(gridStateA, gridStateB)\n );\n}\n\nexport const IrisGridCacheUtils = {\n makeMemoizedGridStateDehydrator,\n makeMemoizedIrisGridStateDehydrator,\n makeMemoizedCombinedGridStateDehydrator,\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"IrisGridCacheUtils.js","names":["memoizeOne","IrisGridUtils","areGridStatesEqual","gridStateA","gridStateB","compareKeys","every","key","areIrisGridStatesEqual","irisGridStateA","irisGridStateB","compareStateKeys","metrics","userColumnWidths","userRowHeights","makeMemoizedGridStateDehydrator","model","gridState","dehydrateGridState","_ref","_ref2","modelA","modelB","makeMemoizedIrisGridStateDehydrator","irisGridState","irisGridUtils","dh","dehydrateIrisGridState","_ref3","_ref4","makeMemoizedCombinedGridStateDehydrator","_objectSpread","_ref5","_ref6","IrisGridCacheUtils"],"sources":["../src/IrisGridCacheUtils.ts"],"sourcesContent":["/* eslint-disable import/prefer-default-export */\nimport { type GridState } from '@deephaven/grid';\nimport memoizeOne from 'memoize-one';\nimport type IrisGridModel from './IrisGridModel';\nimport IrisGridUtils, {\n type DehydratedGridState,\n type DehydratedIrisGridState,\n type HydratedGridState,\n type HydratedIrisGridState,\n} from './IrisGridUtils';\n\n/**\n * Checks if 2 grid states are equivalent.\n * Checks values and does not require referential equality of the entire state, just the values we care about.\n * @param gridStateA First grid state\n * @param gridStateB Second grid state\n * @returns True if the states are equivalent\n */\nfunction areGridStatesEqual(\n gridStateA: HydratedGridState,\n gridStateB: HydratedGridState\n): boolean {\n const compareKeys = [\n 'isStuckToBottom',\n 'isStuckToRight',\n 'movedColumns',\n 'movedRows',\n ] satisfies Array<keyof GridState>;\n return (\n gridStateA === gridStateB ||\n compareKeys.every(key => gridStateA[key] === gridStateB[key])\n );\n}\n\n/**\n * Checks if 2 iris grid states are equivalent.\n * Checks values and does not require referential equality of the entire state, just the values we care about.\n * @param irisGridStateA First iris grid state\n * @param irisGridStateB Second iris grid state\n * @returns True if the states are equivalent\n */\nfunction areIrisGridStatesEqual(\n irisGridStateA: HydratedIrisGridState,\n irisGridStateB: HydratedIrisGridState\n): boolean {\n // Top level keys we want to check for referential equality\n const compareStateKeys = [\n 'advancedFilters',\n 'aggregationSettings',\n 'customColumnFormatMap',\n 'columnAlignmentMap',\n 'isFilterBarShown',\n 'quickFilters',\n 'customColumns',\n 'reverse',\n 'rollupConfig',\n 'showSearchBar',\n 'searchValue',\n 'selectDistinctColumns',\n 'selectedSearchColumns',\n 'sorts',\n 'invertSearchColumns',\n 'pendingDataMap',\n 'frozenColumns',\n 'conditionalFormats',\n 'columnHeaderGroups',\n 'partitionConfig',\n ] satisfies Array<keyof HydratedIrisGridState>;\n\n return (\n irisGridStateA === irisGridStateB ||\n (irisGridStateA.metrics != null &&\n irisGridStateB.metrics != null &&\n irisGridStateA.metrics.userColumnWidths ===\n irisGridStateB.metrics.userColumnWidths &&\n irisGridStateA.metrics.userRowHeights ===\n irisGridStateB.metrics.userRowHeights &&\n compareStateKeys.every(\n key => irisGridStateA[key] === irisGridStateB[key]\n ))\n );\n}\n\n/**\n * Creates a dehydrator function for grid state that is memoized on the last call.\n * Only tracks 1 state at a time. If the model and input states are equal, returns the same dehydrated state object reference.\n * @returns A dehydrator function memoized on the last call\n */\nfunction makeMemoizedGridStateDehydrator(): (\n model: IrisGridModel,\n gridState: HydratedGridState\n) => DehydratedGridState {\n return memoizeOne(\n (model: IrisGridModel, gridState: HydratedGridState) =>\n IrisGridUtils.dehydrateGridState(model, gridState),\n ([modelA, gridStateA], [modelB, gridStateB]) =>\n modelA === modelB && areGridStatesEqual(gridStateA, gridStateB)\n );\n}\n\n/**\n * Creates a dehydrator function for iris grid state that is memoized on the last call.\n * Only tracks 1 state at a time. If the model and input states are equal, returns the same dehydrated state object reference.\n * @returns A dehydrator function memoized on the last call\n */\nfunction makeMemoizedIrisGridStateDehydrator(): (\n model: IrisGridModel,\n irisGridState: HydratedIrisGridState\n) => DehydratedIrisGridState {\n return memoizeOne(\n (model: IrisGridModel, irisGridState: HydratedIrisGridState) => {\n const irisGridUtils = new IrisGridUtils(model.dh);\n return irisGridUtils.dehydrateIrisGridState(model, irisGridState);\n },\n ([modelA, irisGridStateA], [modelB, irisGridStateB]) =>\n modelA === modelB &&\n areIrisGridStatesEqual(irisGridStateA, irisGridStateB)\n );\n}\n\n/**\n * Creates a dehydrator function for grid and iris grid state that is memoized on the last call.\n * Only tracks 1 state at a time. If the model and input states are equal, returns the same dehydrated state object reference.\n * Combines the dehydrated grid and iris grid states into a single object.\n * @returns A dehydrator function memoized on the last call\n */\nfunction makeMemoizedCombinedGridStateDehydrator(): (\n model: IrisGridModel,\n irisGridState: HydratedIrisGridState,\n gridState: HydratedGridState\n) => DehydratedIrisGridState & DehydratedGridState {\n return memoizeOne(\n (\n model: IrisGridModel,\n irisGridState: HydratedIrisGridState,\n gridState: HydratedGridState\n ): DehydratedIrisGridState & DehydratedGridState => {\n const irisGridUtils = new IrisGridUtils(model.dh);\n return {\n ...irisGridUtils.dehydrateIrisGridState(model, irisGridState),\n ...IrisGridUtils.dehydrateGridState(model, gridState),\n };\n },\n (\n [modelA, irisGridStateA, gridStateA],\n [modelB, irisGridStateB, gridStateB]\n ) =>\n modelA === modelB &&\n areIrisGridStatesEqual(irisGridStateA, irisGridStateB) &&\n areGridStatesEqual(gridStateA, gridStateB)\n );\n}\n\nexport const IrisGridCacheUtils = {\n makeMemoizedGridStateDehydrator,\n makeMemoizedIrisGridStateDehydrator,\n makeMemoizedCombinedGridStateDehydrator,\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -3,8 +3,7 @@ import { Editor } from '@deephaven/console';
|
|
|
3
3
|
import { Button, CopyButton, Modal, ModalBody, ModalHeader } from '@deephaven/components';
|
|
4
4
|
import { vsJson, vsListOrdered } from '@deephaven/icons';
|
|
5
5
|
import "./IrisGridCellOverflowModal.css";
|
|
6
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
|
-
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
6
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
8
7
|
export default function IrisGridCellOverflowModal(_ref) {
|
|
9
8
|
var _editorRef$current$ge, _editorRef$current2;
|
|
10
9
|
var {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IrisGridCellOverflowModal.js","names":["React","useEffect","useRef","useState","Editor","Button","CopyButton","Modal","ModalBody","ModalHeader","vsJson","vsListOrdered","jsx","_jsx","jsxs","_jsxs","IrisGridCellOverflowModal","_ref","_editorRef$current$ge","_editorRef$current2","text","isOpen","onClose","isOpened","setIsOpened","height","setHeight","showLineNumbers","setShowLineNumbers","isFormatted","setIsFormatted","canFormat","setCanFormat","editorRef","enableFormatButtonWhenOpen","JSON","parse","_unused","updateLayoutOnHeightChange","current","layout","toggleShowLineNumber","updateOptions","lineNumbers","toggleLineNumbers","formatAsJSON","_editorRef$current","model","getModel","setValue","stringify","undefined","autoSetLineNumbers","_editor$getModel$getL","_editor$getModel","editor","getLineCount","handleToggle","onEditorInitialized","getContentHeight","onDidContentSizeChange","_ref2","contentHeight","centered","keyboard","toggle","onOpened","onClosed","className","size","children","kind","tooltip","copy","getValue","active","icon","onClick","style","settings","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 type * 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(): void {\n setShowLineNumbers(!showLineNumbers);\n }\n\n function formatAsJSON(): void {\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(): void {\n const editor = editorRef.current;\n if (!editor) {\n return;\n }\n\n setShowLineNumbers((editor.getModel()?.getLineCount() ?? 0) > 1);\n }\n\n function handleToggle(): void {\n if (isOpened) {\n editorRef.current = undefined;\n onClose();\n }\n }\n\n function onEditorInitialized(\n editor: monaco.editor.IStandaloneCodeEditor\n ): void {\n editorRef.current = editor;\n setHeight(editor.getContentHeight());\n editor.onDidContentSizeChange(({ contentHeight }) =>\n setHeight(contentHeight)\n );\n autoSetLineNumbers();\n }\n\n if (!isOpen && !isOpened) {\n return null;\n }\n\n return (\n <Modal\n isOpen={isOpen}\n centered\n keyboard\n toggle={handleToggle}\n onOpened={() => setIsOpened(true)}\n onClosed={() => {\n setIsOpened(false);\n setHeight(0);\n }}\n className=\"cell-overflow-modal\"\n size=\"xl\"\n >\n <ModalHeader toggle={onClose}>\n <h5 className=\"overflow-modal-title\">Cell Contents</h5>\n <CopyButton\n kind=\"inline\"\n tooltip=\"Copy cell contents\"\n copy={editorRef.current?.getValue() ?? text}\n />\n <Button\n kind=\"inline\"\n active={showLineNumbers}\n icon={vsListOrdered}\n tooltip=\"Toggle line numbers\"\n onClick={toggleLineNumbers}\n />\n {canFormat && (\n <Button\n kind=\"inline\"\n icon={vsJson}\n active={isFormatted}\n tooltip=\"Format as JSON\"\n onClick={formatAsJSON}\n />\n )}\n </ModalHeader>\n <ModalBody style={{ height }}>\n <Editor\n onEditorInitialized={onEditorInitialized}\n settings={{\n value: text,\n readOnly: true,\n wordWrap: 'on',\n // Loading json language w/o the monaco workers causes UI freezes and monaco errors. TS colorizes the same\n language: canFormat ? 'typescript' : 'plaintext',\n folding: canFormat,\n padding: { bottom: 16 },\n lineNumbers: showLineNumbers ? 'on' : 'off',\n overviewRulerLanes: 0,\n renderLineHighlight: 'none',\n /*\n The entire string may be 1 giant line\n Monaco by default seeds find w/ that line\n On very long strings this hangs the browser, so never seed the search\n */\n find: { seedSearchStringFromSelection: 'never' },\n }}\n />\n </ModalBody>\n </Modal>\n );\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"IrisGridCellOverflowModal.js","names":["React","useEffect","useRef","useState","Editor","Button","CopyButton","Modal","ModalBody","ModalHeader","vsJson","vsListOrdered","jsx","_jsx","jsxs","_jsxs","IrisGridCellOverflowModal","_ref","_editorRef$current$ge","_editorRef$current2","text","isOpen","onClose","isOpened","setIsOpened","height","setHeight","showLineNumbers","setShowLineNumbers","isFormatted","setIsFormatted","canFormat","setCanFormat","editorRef","enableFormatButtonWhenOpen","JSON","parse","_unused","updateLayoutOnHeightChange","current","layout","toggleShowLineNumber","updateOptions","lineNumbers","toggleLineNumbers","formatAsJSON","_editorRef$current","model","getModel","setValue","stringify","undefined","autoSetLineNumbers","_editor$getModel$getL","_editor$getModel","editor","getLineCount","handleToggle","onEditorInitialized","getContentHeight","onDidContentSizeChange","_ref2","contentHeight","centered","keyboard","toggle","onOpened","onClosed","className","size","children","kind","tooltip","copy","getValue","active","icon","onClick","style","settings","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 type * 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(): void {\n setShowLineNumbers(!showLineNumbers);\n }\n\n function formatAsJSON(): void {\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(): void {\n const editor = editorRef.current;\n if (!editor) {\n return;\n }\n\n setShowLineNumbers((editor.getModel()?.getLineCount() ?? 0) > 1);\n }\n\n function handleToggle(): void {\n if (isOpened) {\n editorRef.current = undefined;\n onClose();\n }\n }\n\n function onEditorInitialized(\n editor: monaco.editor.IStandaloneCodeEditor\n ): void {\n editorRef.current = editor;\n setHeight(editor.getContentHeight());\n editor.onDidContentSizeChange(({ contentHeight }) =>\n setHeight(contentHeight)\n );\n autoSetLineNumbers();\n }\n\n if (!isOpen && !isOpened) {\n return null;\n }\n\n return (\n <Modal\n isOpen={isOpen}\n centered\n keyboard\n toggle={handleToggle}\n onOpened={() => setIsOpened(true)}\n onClosed={() => {\n setIsOpened(false);\n setHeight(0);\n }}\n className=\"cell-overflow-modal\"\n size=\"xl\"\n >\n <ModalHeader toggle={onClose}>\n <h5 className=\"overflow-modal-title\">Cell Contents</h5>\n <CopyButton\n kind=\"inline\"\n tooltip=\"Copy cell contents\"\n copy={editorRef.current?.getValue() ?? text}\n />\n <Button\n kind=\"inline\"\n active={showLineNumbers}\n icon={vsListOrdered}\n tooltip=\"Toggle line numbers\"\n onClick={toggleLineNumbers}\n />\n {canFormat && (\n <Button\n kind=\"inline\"\n icon={vsJson}\n active={isFormatted}\n tooltip=\"Format as JSON\"\n onClick={formatAsJSON}\n />\n )}\n </ModalHeader>\n <ModalBody style={{ height }}>\n <Editor\n onEditorInitialized={onEditorInitialized}\n settings={{\n value: text,\n readOnly: true,\n wordWrap: 'on',\n // Loading json language w/o the monaco workers causes UI freezes and monaco errors. TS colorizes the same\n language: canFormat ? 'typescript' : 'plaintext',\n folding: canFormat,\n padding: { bottom: 16 },\n lineNumbers: showLineNumbers ? 'on' : 'off',\n overviewRulerLanes: 0,\n renderLineHighlight: 'none',\n /*\n The entire string may be 1 giant line\n Monaco by default seeds find w/ that line\n On very long strings this hangs the browser, so never seed the search\n */\n find: { seedSearchStringFromSelection: 'never' },\n }}\n />\n </ModalBody>\n </Modal>\n );\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IrisGridCellRendererUtils.js","names":["getIcon","IrisGridCellRendererUtils","drawTreeMarker","context","state","columnX","rowY","treeBox","color","isExpanded","save","theme","iconSize","x1","x2","y1","y2","markerIcon","iconX","iconY","fillStyle","textAlign","translate","fill","restore"],"sources":["../src/IrisGridCellRendererUtils.ts"],"sourcesContent":["import { type BoxCoordinates, type Coordinate } from '@deephaven/grid';\nimport { getIcon } from './IrisGridIcons';\nimport { type IrisGridRenderState } from './IrisGridRenderer';\n\nclass IrisGridCellRendererUtils {\n static drawTreeMarker(\n context: CanvasRenderingContext2D,\n state: IrisGridRenderState,\n columnX: Coordinate,\n rowY: Coordinate,\n treeBox: BoxCoordinates,\n color: string,\n isExpanded: boolean\n ): void {\n context.save();\n const { theme } = state;\n const { iconSize } = theme;\n const { x1, x2, y1, y2 } = treeBox;\n const markerIcon = isExpanded\n ? getIcon('caretDown', iconSize)\n : getIcon('caretRight', iconSize);\n\n const iconX = columnX + (x1 + x2) / 2 - iconSize / 2; // Midpoint of the tree box minus half the icon width\n const iconY = rowY + (y2 - y1 - iconSize) / 2; // y2 - y1 is effectively rowHeight\n\n context.fillStyle = color;\n context.textAlign = 'center';\n context.translate(iconX, iconY);\n context.fill(markerIcon);\n context.restore();\n }\n}\n\nexport default IrisGridCellRendererUtils;\n"],"mappings":"SACSA,OAAO;AAGhB,MAAMC,yBAAyB,CAAC;EAC9B,OAAOC,cAAcA,CACnBC,OAAiC,EACjCC,KAA0B,EAC1BC,OAAmB,EACnBC,IAAgB,EAChBC,OAAuB,EACvBC,KAAa,EACbC,UAAmB,EACb;IACNN,OAAO,CAACO,IAAI,CAAC,CAAC;IACd,IAAM;MAAEC;IAAM,CAAC,GAAGP,KAAK;IACvB,IAAM;MAAEQ;IAAS,CAAC,GAAGD,KAAK;IAC1B,IAAM;MAAEE,EAAE;MAAEC,EAAE;MAAEC,EAAE;MAAEC;IAAG,CAAC,GAAGT,OAAO;IAClC,IAAMU,UAAU,GAAGR,UAAU,GACzBT,OAAO,CAAC,WAAW,EAAEY,QAAQ,CAAC,GAC9BZ,OAAO,CAAC,YAAY,EAAEY,QAAQ,CAAC;IAEnC,IAAMM,KAAK,GAAGb,OAAO,GAAG,CAACQ,EAAE,GAAGC,EAAE,IAAI,CAAC,GAAGF,QAAQ,GAAG,CAAC,CAAC,CAAC;IACtD,IAAMO,KAAK,GAAGb,IAAI,GAAG,CAACU,EAAE,GAAGD,EAAE,GAAGH,QAAQ,IAAI,CAAC,CAAC,CAAC;;IAE/CT,OAAO,CAACiB,SAAS,GAAGZ,KAAK;IACzBL,OAAO,CAACkB,SAAS,GAAG,QAAQ;IAC5BlB,OAAO,CAACmB,SAAS,CAACJ,KAAK,EAAEC,KAAK,CAAC;IAC/BhB,OAAO,CAACoB,IAAI,CAACN,UAAU,CAAC;IACxBd,OAAO,CAACqB,OAAO,CAAC,CAAC;EACnB;AACF;AAEA,eAAevB,yBAAyB"}
|
|
1
|
+
{"version":3,"file":"IrisGridCellRendererUtils.js","names":["getIcon","IrisGridCellRendererUtils","drawTreeMarker","context","state","columnX","rowY","treeBox","color","isExpanded","save","theme","iconSize","x1","x2","y1","y2","markerIcon","iconX","iconY","fillStyle","textAlign","translate","fill","restore"],"sources":["../src/IrisGridCellRendererUtils.ts"],"sourcesContent":["import { type BoxCoordinates, type Coordinate } from '@deephaven/grid';\nimport { getIcon } from './IrisGridIcons';\nimport { type IrisGridRenderState } from './IrisGridRenderer';\n\nclass IrisGridCellRendererUtils {\n static drawTreeMarker(\n context: CanvasRenderingContext2D,\n state: IrisGridRenderState,\n columnX: Coordinate,\n rowY: Coordinate,\n treeBox: BoxCoordinates,\n color: string,\n isExpanded: boolean\n ): void {\n context.save();\n const { theme } = state;\n const { iconSize } = theme;\n const { x1, x2, y1, y2 } = treeBox;\n const markerIcon = isExpanded\n ? getIcon('caretDown', iconSize)\n : getIcon('caretRight', iconSize);\n\n const iconX = columnX + (x1 + x2) / 2 - iconSize / 2; // Midpoint of the tree box minus half the icon width\n const iconY = rowY + (y2 - y1 - iconSize) / 2; // y2 - y1 is effectively rowHeight\n\n context.fillStyle = color;\n context.textAlign = 'center';\n context.translate(iconX, iconY);\n context.fill(markerIcon);\n context.restore();\n }\n}\n\nexport default IrisGridCellRendererUtils;\n"],"mappings":"SACSA,OAAO;AAGhB,MAAMC,yBAAyB,CAAC;EAC9B,OAAOC,cAAcA,CACnBC,OAAiC,EACjCC,KAA0B,EAC1BC,OAAmB,EACnBC,IAAgB,EAChBC,OAAuB,EACvBC,KAAa,EACbC,UAAmB,EACb;IACNN,OAAO,CAACO,IAAI,CAAC,CAAC;IACd,IAAM;MAAEC;IAAM,CAAC,GAAGP,KAAK;IACvB,IAAM;MAAEQ;IAAS,CAAC,GAAGD,KAAK;IAC1B,IAAM;MAAEE,EAAE;MAAEC,EAAE;MAAEC,EAAE;MAAEC;IAAG,CAAC,GAAGT,OAAO;IAClC,IAAMU,UAAU,GAAGR,UAAU,GACzBT,OAAO,CAAC,WAAW,EAAEY,QAAQ,CAAC,GAC9BZ,OAAO,CAAC,YAAY,EAAEY,QAAQ,CAAC;IAEnC,IAAMM,KAAK,GAAGb,OAAO,GAAG,CAACQ,EAAE,GAAGC,EAAE,IAAI,CAAC,GAAGF,QAAQ,GAAG,CAAC,CAAC,CAAC;IACtD,IAAMO,KAAK,GAAGb,IAAI,GAAG,CAACU,EAAE,GAAGD,EAAE,GAAGH,QAAQ,IAAI,CAAC,CAAC,CAAC;;IAE/CT,OAAO,CAACiB,SAAS,GAAGZ,KAAK;IACzBL,OAAO,CAACkB,SAAS,GAAG,QAAQ;IAC5BlB,OAAO,CAACmB,SAAS,CAACJ,KAAK,EAAEC,KAAK,CAAC;IAC/BhB,OAAO,CAACoB,IAAI,CAACN,UAAU,CAAC;IACxBd,OAAO,CAACqB,OAAO,CAAC,CAAC;EACnB;AACF;AAEA,eAAevB,yBAAyB","ignoreList":[]}
|
|
@@ -12,8 +12,7 @@ import Log from '@deephaven/log';
|
|
|
12
12
|
import IrisGridUtils from "./IrisGridUtils.js";
|
|
13
13
|
import IrisGridBottomBar from "./IrisGridBottomBar.js";
|
|
14
14
|
import "./IrisGridCopyHandler.css";
|
|
15
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
16
|
-
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
15
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
17
16
|
var log = Log.module('IrisGridCopyHandler');
|
|
18
17
|
function isCopyRangesOperation(copyOperation) {
|
|
19
18
|
return copyOperation.ranges != null;
|
|
@@ -27,10 +26,6 @@ function isCopyHeaderOperation(copyOperation) {
|
|
|
27
26
|
* - Tries to async copy, falls back to showing a "Click to Copy" button if that fails
|
|
28
27
|
*/
|
|
29
28
|
class IrisGridCopyHandler extends Component {
|
|
30
|
-
/**
|
|
31
|
-
* Different states for the current copy operation
|
|
32
|
-
*/
|
|
33
|
-
|
|
34
29
|
static getStatusMessageText(copyState, rowCount) {
|
|
35
30
|
switch (copyState) {
|
|
36
31
|
case IrisGridCopyHandler.COPY_STATES.CONFIRMATION_REQUIRED:
|
|
@@ -371,6 +366,9 @@ class IrisGridCopyHandler extends Component {
|
|
|
371
366
|
}
|
|
372
367
|
_defineProperty(IrisGridCopyHandler, "NO_PROMPT_THRESHOLD", 10000);
|
|
373
368
|
_defineProperty(IrisGridCopyHandler, "HIDE_TIMEOUT", 3000);
|
|
369
|
+
/**
|
|
370
|
+
* Different states for the current copy operation
|
|
371
|
+
*/
|
|
374
372
|
_defineProperty(IrisGridCopyHandler, "COPY_STATES", {
|
|
375
373
|
// No copy operation in progress
|
|
376
374
|
IDLE: 'IDLE',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IrisGridCopyHandler.js","names":["React","Component","classNames","Button","FadeTransition","LoadingSpinner","GridRange","GridUtils","CanceledPromiseError","copyToClipboard","PromiseUtils","Log","IrisGridUtils","IrisGridBottomBar","jsx","_jsx","jsxs","_jsxs","log","module","isCopyRangesOperation","copyOperation","ranges","isCopyHeaderOperation","columnIndex","IrisGridCopyHandler","getStatusMessageText","copyState","rowCount","COPY_STATES","CONFIRMATION_REQUIRED","concat","toLocaleString","CLICK_REQUIRED","FETCH_ERROR","FETCH_RANGES_IN_PROGRESS","FETCH_HEADER_IN_PROGRESS","DONE","getCopyButtonText","buttonState","BUTTON_STATES","FETCH_IN_PROGRESS","CLICK_TO_COPY","RETRY","constructor","props","_defineProperty","handleBackgroundClick","bind","handleCancelClick","handleCopyClick","handleHideTimeout","state","error","undefined","IDLE","COPY","isShown","componentDidMount","startCopy","componentDidUpdate","prevProps","componentWillUnmount","stopCopy","debug2","setState","debug","startHideTimer","NO_PROMPT_THRESHOLD","startFetch","textData","stopFetch","stopHideTimer","_this","_asyncToGenerator","copyText","showCopyDone","e","text","_this2","_this3","model","columnDepth","movedColumns","modelIndex","getModelIndex","textForColumnHeader","fetchPromise","makeCancelable","includeHeaders","userColumnWidths","formatValues","hiddenColumns","getHiddenColumns","modelRanges","getModelRanges","length","subtractRanges","map","makeColumn","subtractRangesFromRanges","formatValue","value","column","displayString","type","name","textSnapshot","cancel","hideTimer","setTimeout","HIDE_TIMEOUT","clearTimeout","render","onEntering","onEntered","onExiting","onExited","animation","copyButtonText","statusMessageText","isButtonContainerVisible","isFetching","isDone","className","onClick","children","in","mountOnEnter","unmountOnExit","kind","disabled"],"sources":["../src/IrisGridCopyHandler.tsx"],"sourcesContent":["import React, { Component } from 'react';\nimport classNames from 'classnames';\nimport { Button, FadeTransition, LoadingSpinner } from '@deephaven/components';\nimport {\n GridRange,\n GridUtils,\n type ModelSizeMap,\n type MoveOperation,\n} from '@deephaven/grid';\nimport {\n type CancelablePromise,\n CanceledPromiseError,\n copyToClipboard,\n PromiseUtils,\n} from '@deephaven/utils';\nimport Log from '@deephaven/log';\nimport type { dh } from '@deephaven/jsapi-types';\nimport IrisGridUtils from './IrisGridUtils';\nimport IrisGridBottomBar from './IrisGridBottomBar';\nimport './IrisGridCopyHandler.scss';\nimport type 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\ntype CommonCopyOperation = {\n movedColumns: readonly MoveOperation[];\n error?: string;\n};\n\nexport type CopyRangesOperation = CommonCopyOperation & {\n ranges: readonly GridRange[];\n includeHeaders: boolean;\n formatValues?: boolean;\n userColumnWidths: ModelSizeMap;\n};\n\nexport type CopyHeaderOperation = CommonCopyOperation & {\n columnIndex: number;\n columnDepth: number;\n};\n\nexport type CopyOperation = CopyRangesOperation | CopyHeaderOperation;\n\nfunction isCopyRangesOperation(\n copyOperation: CopyOperation\n): copyOperation is CopyRangesOperation {\n return (copyOperation as CopyRangesOperation).ranges != null;\n}\n\nfunction isCopyHeaderOperation(\n copyOperation: CopyOperation\n): copyOperation is CopyHeaderOperation {\n return (copyOperation as CopyHeaderOperation).columnIndex != null;\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 for copy ranges operation\n FETCH_RANGES_IN_PROGRESS: 'FETCH_RANGES_IN_PROGRESS',\n\n // Fetch is currently in progress for copy header operation\n FETCH_HEADER_IN_PROGRESS: 'FETCH_HEADER_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_RANGES_IN_PROGRESS:\n return `Fetching ${rowCount.toLocaleString()} rows for clipboard...`;\n case IrisGridCopyHandler.COPY_STATES.FETCH_HEADER_IN_PROGRESS:\n return 'Fetching header 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 { 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 this.setState({ isShown: true, error: undefined });\n\n if (isCopyRangesOperation(copyOperation)) {\n const { ranges } = copyOperation;\n const rowCount = GridRange.rowCount(ranges);\n this.setState({ rowCount });\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 return;\n }\n }\n\n this.startFetch();\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 async handleCopyClick(): Promise<void> {\n log.debug2('handleCopyClick');\n\n if (this.textData != null) {\n try {\n await this.copyText(this.textData);\n this.showCopyDone();\n } catch (e) {\n log.error('Error copying text', e);\n this.setState({\n error: 'Unable to copy. Verify your browser permissions.',\n });\n }\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 async copyText(text: string): Promise<void> {\n log.debug2('copyText', text);\n\n this.textData = text;\n\n await copyToClipboard(text);\n }\n\n showCopyDone(): void {\n this.setState({ copyState: IrisGridCopyHandler.COPY_STATES.DONE });\n this.startHideTimer();\n }\n\n async startFetch(): Promise<void> {\n this.stopFetch();\n\n const { model, copyOperation } = this.props;\n\n if (isCopyHeaderOperation(copyOperation)) {\n const { columnIndex, columnDepth, movedColumns } = copyOperation;\n log.debug('startFetch copyHeader', columnIndex, columnDepth);\n\n this.setState({\n buttonState: IrisGridCopyHandler.BUTTON_STATES.FETCH_IN_PROGRESS,\n copyState: IrisGridCopyHandler.COPY_STATES.FETCH_HEADER_IN_PROGRESS,\n });\n\n const modelIndex = GridUtils.getModelIndex(columnIndex, movedColumns);\n const copyText = model.textForColumnHeader(modelIndex, columnDepth);\n if (copyText === undefined) {\n this.fetchPromise = undefined;\n this.setState({\n error: 'Invalid column header selected.',\n copyState: IrisGridCopyHandler.COPY_STATES.DONE,\n });\n return;\n }\n this.fetchPromise = PromiseUtils.makeCancelable(copyText);\n } else {\n const {\n ranges,\n includeHeaders,\n userColumnWidths,\n movedColumns,\n formatValues,\n } = copyOperation;\n log.debug('startFetch copyRanges', ranges);\n\n this.setState({\n buttonState: IrisGridCopyHandler.BUTTON_STATES.FETCH_IN_PROGRESS,\n copyState: IrisGridCopyHandler.COPY_STATES.FETCH_RANGES_IN_PROGRESS,\n });\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: dh.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 }\n\n try {\n const text = await this.fetchPromise;\n this.fetchPromise = undefined;\n try {\n await this.copyText(text);\n this.showCopyDone();\n } catch (e) {\n log.error('Error copying text', e);\n this.setState({\n buttonState: IrisGridCopyHandler.BUTTON_STATES.CLICK_TO_COPY,\n copyState: IrisGridCopyHandler.COPY_STATES.CLICK_REQUIRED,\n });\n }\n } catch (e) {\n if (e instanceof CanceledPromiseError) {\n log.debug('User cancelled copy.');\n } else {\n log.error('Error fetching contents', e);\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 <FadeTransition\n in={isButtonContainerVisible}\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 && (\n <LoadingSpinner className=\"loading-spinner-vertical-align\" />\n )}\n {copyButtonText}\n </Button>\n </div>\n </FadeTransition>\n </IrisGridBottomBar>\n );\n }\n}\n\nexport default IrisGridCopyHandler;\n"],"mappings":";;;;;AAAA,OAAOA,KAAK,IAAIC,SAAS,QAAQ,OAAO;AACxC,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,MAAM,EAAEC,cAAc,EAAEC,cAAc,QAAQ,uBAAuB;AAC9E,SACEC,SAAS,EACTC,SAAS,QAGJ,iBAAiB;AACxB,SAEEC,oBAAoB,EACpBC,eAAe,EACfC,YAAY,QACP,kBAAkB;AACzB,OAAOC,GAAG,MAAM,gBAAgB;AAAC,OAE1BC,aAAa;AAAA,OACbC,iBAAiB;AAAA;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAIxB,IAAMC,GAAG,GAAGP,GAAG,CAACQ,MAAM,CAAC,qBAAqB,CAAC;AAyB7C,SAASC,qBAAqBA,CAC5BC,aAA4B,EACU;EACtC,OAAQA,aAAa,CAAyBC,MAAM,IAAI,IAAI;AAC9D;AAEA,SAASC,qBAAqBA,CAC5BF,aAA4B,EACU;EACtC,OAAQA,aAAa,CAAyBG,WAAW,IAAI,IAAI;AACnE;AAkBA;AACA;AACA;AACA;AACA;AACA,MAAMC,mBAAmB,SAASxB,SAAS,CAGzC;EAKA;AACF;AACA;;EAuCE,OAAOyB,oBAAoBA,CAACC,SAAiB,EAAEC,QAAgB,EAAU;IACvE,QAAQD,SAAS;MACf,KAAKF,mBAAmB,CAACI,WAAW,CAACC,qBAAqB;QACxD,wCAAAC,MAAA,CAAwCH,QAAQ,CAACI,cAAc,CAAC,CAAC;MACnE,KAAKP,mBAAmB,CAACI,WAAW,CAACI,cAAc;QACjD,kBAAAF,MAAA,CAAkBH,QAAQ,CAACI,cAAc,CAAC,CAAC;MAC7C,KAAKP,mBAAmB,CAACI,WAAW,CAACK,WAAW;QAC9C,OAAO,sBAAsB;MAC/B,KAAKT,mBAAmB,CAACI,WAAW,CAACM,wBAAwB;QAC3D,mBAAAJ,MAAA,CAAmBH,QAAQ,CAACI,cAAc,CAAC,CAAC;MAC9C,KAAKP,mBAAmB,CAACI,WAAW,CAACO,wBAAwB;QAC3D,OAAO,kCAAkC;MAC3C,KAAKX,mBAAmB,CAACI,WAAW,CAACQ,IAAI;QACvC,OAAO,sBAAsB;MAC/B;QACE,OAAO,EAAE;IACb;EACF;EAEA,OAAOC,iBAAiBA,CAACC,WAA4B,EAAU;IAC7D,QAAQA,WAAW;MACjB,KAAKd,mBAAmB,CAACe,aAAa,CAACC,iBAAiB;QACtD,OAAO,UAAU;MACnB,KAAKhB,mBAAmB,CAACe,aAAa,CAACE,aAAa;QAClD,OAAO,eAAe;MACxB,KAAKjB,mBAAmB,CAACe,aAAa,CAACG,KAAK;QAC1C,OAAO,OAAO;MAChB;QACE,OAAO,MAAM;IACjB;EACF;EAEAC,WAAWA,CAACC,KAA+B,EAAE;IAC3C,KAAK,CAACA,KAAK,CAAC;IAACC,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAEb,IAAI,CAACC,qBAAqB,GAAG,IAAI,CAACA,qBAAqB,CAACC,IAAI,CAAC,IAAI,CAAC;IAClE,IAAI,CAACC,iBAAiB,GAAG,IAAI,CAACA,iBAAiB,CAACD,IAAI,CAAC,IAAI,CAAC;IAC1D,IAAI,CAACE,eAAe,GAAG,IAAI,CAACA,eAAe,CAACF,IAAI,CAAC,IAAI,CAAC;IACtD,IAAI,CAACG,iBAAiB,GAAG,IAAI,CAACA,iBAAiB,CAACH,IAAI,CAAC,IAAI,CAAC;IAE1D,IAAI,CAACI,KAAK,GAAG;MACXC,KAAK,EAAEC,SAAS;MAChB3B,SAAS,EAAEF,mBAAmB,CAACI,WAAW,CAAC0B,IAAI;MAC/ChB,WAAW,EAAEd,mBAAmB,CAACe,aAAa,CAACgB,IAAI;MACnDC,OAAO,EAAE,KAAK;MACd7B,QAAQ,EAAE;IACZ,CAAC;EACH;EAEA8B,iBAAiBA,CAAA,EAAS;IACxB,IAAM;MAAErC;IAAc,CAAC,GAAG,IAAI,CAACwB,KAAK;IACpC,IAAIxB,aAAa,IAAI,IAAI,EAAE;MACzB,IAAI,CAACsC,SAAS,CAAC,CAAC;IAClB;EACF;EAEAC,kBAAkBA,CAACC,SAAmC,EAAQ;IAC5D,IAAM;MAAExC;IAAc,CAAC,GAAG,IAAI,CAACwB,KAAK;IACpC,IAAIgB,SAAS,CAACxC,aAAa,KAAKA,aAAa,EAAE;MAC7C,IAAI,CAACsC,SAAS,CAAC,CAAC;IAClB;EACF;EAEAG,oBAAoBA,CAAA,EAAS;IAC3B,IAAI,CAACC,QAAQ,CAAC,CAAC;EACjB;EAQAJ,SAASA,CAAA,EAAS;IAChBzC,GAAG,CAAC8C,MAAM,CAAC,WAAW,CAAC;IAEvB,IAAI,CAACD,QAAQ,CAAC,CAAC;IAEf,IAAM;MAAE1C;IAAc,CAAC,GAAG,IAAI,CAACwB,KAAK;IACpC,IAAIxB,aAAa,IAAI,IAAI,EAAE;MACzBH,GAAG,CAAC8C,MAAM,CAAC,uCAAuC,CAAC;MACnD,IAAI,CAACC,QAAQ,CAAC;QAAER,OAAO,EAAE;MAAM,CAAC,CAAC;MACjC;IACF;IAEA,IAAM;MAAEJ;IAAM,CAAC,GAAGhC,aAAa;IAC/B,IAAIgC,KAAK,IAAI,IAAI,EAAE;MACjBnC,GAAG,CAACgD,KAAK,CAAC,oBAAoB,EAAEb,KAAK,CAAC;MACtC,IAAI,CAACY,QAAQ,CAAC;QACZR,OAAO,EAAE,IAAI;QACb9B,SAAS,EAAEF,mBAAmB,CAACI,WAAW,CAACQ,IAAI;QAC/CgB;MACF,CAAC,CAAC;MACF,IAAI,CAACc,cAAc,CAAC,CAAC;MACrB;IACF;IAEA,IAAI,CAACF,QAAQ,CAAC;MAAER,OAAO,EAAE,IAAI;MAAEJ,KAAK,EAAEC;IAAU,CAAC,CAAC;IAElD,IAAIlC,qBAAqB,CAACC,aAAa,CAAC,EAAE;MACxC,IAAM;QAAEC;MAAO,CAAC,GAAGD,aAAa;MAChC,IAAMO,QAAQ,GAAGtB,SAAS,CAACsB,QAAQ,CAACN,MAAM,CAAC;MAC3C,IAAI,CAAC2C,QAAQ,CAAC;QAAErC;MAAS,CAAC,CAAC;MAE3B,IAAIA,QAAQ,GAAGH,mBAAmB,CAAC2C,mBAAmB,EAAE;QACtD,IAAI,CAACH,QAAQ,CAAC;UACZ1B,WAAW,EAAEd,mBAAmB,CAACe,aAAa,CAACgB,IAAI;UACnD7B,SAAS,EAAEF,mBAAmB,CAACI,WAAW,CAACC;QAC7C,CAAC,CAAC;QACF;MACF;IACF;IAEA,IAAI,CAACuC,UAAU,CAAC,CAAC;EACnB;EAEAN,QAAQA,CAAA,EAAS;IACf,IAAI,CAACO,QAAQ,GAAGhB,SAAS;IACzB,IAAI,CAACiB,SAAS,CAAC,CAAC;IAChB,IAAI,CAACC,aAAa,CAAC,CAAC;EACtB;EAEAzB,qBAAqBA,CAAA,EAAS;IAC5B7B,GAAG,CAAC8C,MAAM,CAAC,uBAAuB,CAAC;IAEnC,IAAM;MAAErC;IAAU,CAAC,GAAG,IAAI,CAACyB,KAAK;IAChC,IAAIzB,SAAS,KAAKF,mBAAmB,CAACI,WAAW,CAACQ,IAAI,EAAE;MACtD,IAAI,CAAC4B,QAAQ,CAAC;QAAER,OAAO,EAAE;MAAM,CAAC,CAAC;IACnC;EACF;EAEAR,iBAAiBA,CAAA,EAAS;IACxB/B,GAAG,CAAC8C,MAAM,CAAC,mBAAmB,CAAC;IAE/B,IAAI,CAACO,SAAS,CAAC,CAAC;IAChB,IAAI,CAACN,QAAQ,CAAC;MAAER,OAAO,EAAE;IAAM,CAAC,CAAC;EACnC;EAEMP,eAAeA,CAAA,EAAkB;IAAA,IAAAuB,KAAA;IAAA,OAAAC,iBAAA;MACrCxD,GAAG,CAAC8C,MAAM,CAAC,iBAAiB,CAAC;MAE7B,IAAIS,KAAI,CAACH,QAAQ,IAAI,IAAI,EAAE;QACzB,IAAI;UACF,MAAMG,KAAI,CAACE,QAAQ,CAACF,KAAI,CAACH,QAAQ,CAAC;UAClCG,KAAI,CAACG,YAAY,CAAC,CAAC;QACrB,CAAC,CAAC,OAAOC,CAAC,EAAE;UACV3D,GAAG,CAACmC,KAAK,CAAC,oBAAoB,EAAEwB,CAAC,CAAC;UAClCJ,KAAI,CAACR,QAAQ,CAAC;YACZZ,KAAK,EAAE;UACT,CAAC,CAAC;QACJ;MACF,CAAC,MAAM;QACLoB,KAAI,CAACJ,UAAU,CAAC,CAAC;MACnB;IAAC;EACH;EAEAlB,iBAAiBA,CAAA,EAAS;IACxBjC,GAAG,CAAC8C,MAAM,CAAC,mBAAmB,CAAC;IAE/B,IAAI,CAACQ,aAAa,CAAC,CAAC;IAEpB,IAAI,CAACP,QAAQ,CAAC;MAAER,OAAO,EAAE;IAAM,CAAC,CAAC;EACnC;EAEMkB,QAAQA,CAACG,IAAY,EAAiB;IAAA,IAAAC,MAAA;IAAA,OAAAL,iBAAA;MAC1CxD,GAAG,CAAC8C,MAAM,CAAC,UAAU,EAAEc,IAAI,CAAC;MAE5BC,MAAI,CAACT,QAAQ,GAAGQ,IAAI;MAEpB,MAAMrE,eAAe,CAACqE,IAAI,CAAC;IAAC;EAC9B;EAEAF,YAAYA,CAAA,EAAS;IACnB,IAAI,CAACX,QAAQ,CAAC;MAAEtC,SAAS,EAAEF,mBAAmB,CAACI,WAAW,CAACQ;IAAK,CAAC,CAAC;IAClE,IAAI,CAAC8B,cAAc,CAAC,CAAC;EACvB;EAEME,UAAUA,CAAA,EAAkB;IAAA,IAAAW,MAAA;IAAA,OAAAN,iBAAA;MAChCM,MAAI,CAACT,SAAS,CAAC,CAAC;MAEhB,IAAM;QAAEU,KAAK;QAAE5D;MAAc,CAAC,GAAG2D,MAAI,CAACnC,KAAK;MAE3C,IAAItB,qBAAqB,CAACF,aAAa,CAAC,EAAE;QACxC,IAAM;UAAEG,WAAW;UAAE0D,WAAW;UAAEC;QAAa,CAAC,GAAG9D,aAAa;QAChEH,GAAG,CAACgD,KAAK,CAAC,uBAAuB,EAAE1C,WAAW,EAAE0D,WAAW,CAAC;QAE5DF,MAAI,CAACf,QAAQ,CAAC;UACZ1B,WAAW,EAAEd,mBAAmB,CAACe,aAAa,CAACC,iBAAiB;UAChEd,SAAS,EAAEF,mBAAmB,CAACI,WAAW,CAACO;QAC7C,CAAC,CAAC;QAEF,IAAMgD,UAAU,GAAG7E,SAAS,CAAC8E,aAAa,CAAC7D,WAAW,EAAE2D,YAAY,CAAC;QACrE,IAAMR,QAAQ,GAAGM,KAAK,CAACK,mBAAmB,CAACF,UAAU,EAAEF,WAAW,CAAC;QACnE,IAAIP,QAAQ,KAAKrB,SAAS,EAAE;UAC1B0B,MAAI,CAACO,YAAY,GAAGjC,SAAS;UAC7B0B,MAAI,CAACf,QAAQ,CAAC;YACZZ,KAAK,EAAE,iCAAiC;YACxC1B,SAAS,EAAEF,mBAAmB,CAACI,WAAW,CAACQ;UAC7C,CAAC,CAAC;UACF;QACF;QACA2C,MAAI,CAACO,YAAY,GAAG7E,YAAY,CAAC8E,cAAc,CAACb,QAAQ,CAAC;MAC3D,CAAC,MAAM;QACL,IAAM;UACJrD,MAAM;UACNmE,cAAc;UACdC,gBAAgB;UAChBP,YAAY,EAAZA,aAAY;UACZQ;QACF,CAAC,GAAGtE,aAAa;QACjBH,GAAG,CAACgD,KAAK,CAAC,uBAAuB,EAAE5C,MAAM,CAAC;QAE1C0D,MAAI,CAACf,QAAQ,CAAC;UACZ1B,WAAW,EAAEd,mBAAmB,CAACe,aAAa,CAACC,iBAAiB;UAChEd,SAAS,EAAEF,mBAAmB,CAACI,WAAW,CAACM;QAC7C,CAAC,CAAC;QAEF,IAAMyD,aAAa,GAAGhF,aAAa,CAACiF,gBAAgB,CAACH,gBAAgB,CAAC;QACtE,IAAII,WAAW,GAAGvF,SAAS,CAACwF,cAAc,CAACzE,MAAM,EAAE6D,aAAY,CAAC;QAChE,IAAIS,aAAa,CAACI,MAAM,GAAG,CAAC,EAAE;UAC5B,IAAMC,cAAc,GAAGL,aAAa,CAACM,GAAG,CAAC5F,SAAS,CAAC6F,UAAU,CAAC;UAC9DL,WAAW,GAAGxF,SAAS,CAAC8F,wBAAwB,CAC9CN,WAAW,EACXG,cACF,CAAC;QACH;;QAEA;QACA,IAAMI,WAAW,GACfV,YAAY,IAAI,IAAI,IAAIA,YAAY,GAChC,CAACW,KAAc,EAAEC,MAAiB,KAChCtB,KAAK,CAACuB,aAAa,CAACF,KAAK,EAAEC,MAAM,CAACE,IAAI,EAAEF,MAAM,CAACG,IAAI,CAAC,GACrDJ,KAAc,OAAAvE,MAAA,CAAQuE,KAAK,CAAE;QAEpCtB,MAAI,CAACO,YAAY,GAAG7E,YAAY,CAAC8E,cAAc,CAC7CP,KAAK,CAAC0B,YAAY,CAACb,WAAW,EAAEL,cAAc,EAAEY,WAAW,CAC7D,CAAC;MACH;MAEA,IAAI;QACF,IAAMvB,IAAI,SAASE,MAAI,CAACO,YAAY;QACpCP,MAAI,CAACO,YAAY,GAAGjC,SAAS;QAC7B,IAAI;UACF,MAAM0B,MAAI,CAACL,QAAQ,CAACG,IAAI,CAAC;UACzBE,MAAI,CAACJ,YAAY,CAAC,CAAC;QACrB,CAAC,CAAC,OAAOC,CAAC,EAAE;UACV3D,GAAG,CAACmC,KAAK,CAAC,oBAAoB,EAAEwB,CAAC,CAAC;UAClCG,MAAI,CAACf,QAAQ,CAAC;YACZ1B,WAAW,EAAEd,mBAAmB,CAACe,aAAa,CAACE,aAAa;YAC5Df,SAAS,EAAEF,mBAAmB,CAACI,WAAW,CAACI;UAC7C,CAAC,CAAC;QACJ;MACF,CAAC,CAAC,OAAO4C,CAAC,EAAE;QACV,IAAIA,CAAC,YAAYrE,oBAAoB,EAAE;UACrCU,GAAG,CAACgD,KAAK,CAAC,sBAAsB,CAAC;QACnC,CAAC,MAAM;UACLhD,GAAG,CAACmC,KAAK,CAAC,yBAAyB,EAAEwB,CAAC,CAAC;UACvCG,MAAI,CAACO,YAAY,GAAGjC,SAAS;UAC7B0B,MAAI,CAACf,QAAQ,CAAC;YACZ1B,WAAW,EAAEd,mBAAmB,CAACe,aAAa,CAACG,KAAK;YACpDhB,SAAS,EAAEF,mBAAmB,CAACI,WAAW,CAACK;UAC7C,CAAC,CAAC;QACJ;MACF;IAAC;EACH;EAEAqC,SAASA,CAAA,EAAS;IAChB,IAAI,IAAI,CAACgB,YAAY,EAAE;MACrBrE,GAAG,CAAC8C,MAAM,CAAC,WAAW,CAAC;MACvB,IAAI,CAACuB,YAAY,CAACqB,MAAM,CAAC,CAAC;MAC1B,IAAI,CAACrB,YAAY,GAAGjC,SAAS;IAC/B;EACF;EAEAa,cAAcA,CAAA,EAAS;IACrB,IAAI,CAACK,aAAa,CAAC,CAAC;IAEpB,IAAI,CAACqC,SAAS,GAAGC,UAAU,CACzB,IAAI,CAAC3D,iBAAiB,EACtB1B,mBAAmB,CAACsF,YACtB,CAAC;EACH;EAEAvC,aAAaA,CAAA,EAAS;IACpB,IAAI,IAAI,CAACqC,SAAS,IAAI,IAAI,EAAE;MAC1BG,YAAY,CAAC,IAAI,CAACH,SAAS,CAAC;MAC5B,IAAI,CAACA,SAAS,GAAGvD,SAAS;IAC5B;EACF;EAEA2D,MAAMA,CAAA,EAAgB;IACpB,IAAM;MAAEC,UAAU;MAAEC,SAAS;MAAEC,SAAS;MAAEC;IAAS,CAAC,GAAG,IAAI,CAACxE,KAAK;IACjE,IAAM;MAAEN,WAAW;MAAEZ,SAAS;MAAE8B,OAAO;MAAE7B,QAAQ;MAAEyB;IAAM,CAAC,GAAG,IAAI,CAACD,KAAK;IAEvE,IAAMkE,SAAS,GACb3F,SAAS,KAAKF,mBAAmB,CAACI,WAAW,CAACQ,IAAI,GAC9C,MAAM,GACN,eAAe;IACrB,IAAMkF,cAAc,GAAG9F,mBAAmB,CAACa,iBAAiB,CAACC,WAAW,CAAC;IACzE,IAAMiF,iBAAiB,GACrBnE,KAAK,aAALA,KAAK,cAALA,KAAK,GAAI5B,mBAAmB,CAACC,oBAAoB,CAACC,SAAS,EAAEC,QAAQ,CAAC;IACxE,IAAM6F,wBAAwB,GAC5B9F,SAAS,KAAKF,mBAAmB,CAACI,WAAW,CAACQ,IAAI;IACpD,IAAMqF,UAAU,GACdnF,WAAW,KAAKd,mBAAmB,CAACe,aAAa,CAACC,iBAAiB;IACrE,IAAMkF,MAAM,GAAGhG,SAAS,KAAKF,mBAAmB,CAACI,WAAW,CAACQ,IAAI;IAEjE,oBACEpB,KAAA,CAACJ,iBAAiB;MAChByG,SAAS,EAAEA,SAAU;MACrB7D,OAAO,EAAEA,OAAQ;MACjBmE,SAAS,EAAE1H,UAAU,CAAC,wBAAwB,EAAE;QAC9C,WAAW,EAAEyH;MACf,CAAC,CAAE;MACHE,OAAO,EAAE,IAAI,CAAC9E,qBAAsB;MACpCmE,UAAU,EAAEA,UAAW;MACvBC,SAAS,EAAEA,SAAU;MACrBC,SAAS,EAAEA,SAAU;MACrBC,QAAQ,EAAEA,QAAS;MAAAS,QAAA,gBAEnB/G,IAAA;QAAK6G,SAAS,EAAC,gBAAgB;QAAAE,QAAA,eAC7B/G,IAAA;UAAA+G,QAAA,EAAON;QAAiB,CAAO;MAAC,CAC7B,CAAC,eACNzG,IAAA,CAACX,cAAc;QACb2H,EAAE,EAAEN,wBAAyB;QAC7BO,YAAY;QACZC,aAAa;QAAAH,QAAA,eAEb7G,KAAA;UAAK2G,SAAS,EAAC,mBAAmB;UAAAE,QAAA,gBAChC/G,IAAA;YACE0F,IAAI,EAAC,QAAQ;YACbmB,SAAS,EAAC,sCAAsC;YAChDC,OAAO,EAAE,IAAI,CAAC5E,iBAAkB;YAAA6E,QAAA,EACjC;UAED,CAAQ,CAAC,eACT7G,KAAA,CAACd,MAAM;YACL+H,IAAI,EAAER,UAAU,GAAG,UAAU,GAAG,SAAU;YAC1CE,SAAS,EAAE1H,UAAU,CAAC,UAAU,EAAE;cAChC,aAAa,EAAEwH;YACjB,CAAC,CAAE;YACHG,OAAO,EAAE,IAAI,CAAC3E,eAAgB;YAC9BiF,QAAQ,EAAET,UAAW;YAAAI,QAAA,GAEpBJ,UAAU,iBACT3G,IAAA,CAACV,cAAc;cAACuH,SAAS,EAAC;YAAgC,CAAE,CAC7D,EACAL,cAAc;UAAA,CACT,CAAC;QAAA,CACN;MAAC,CACQ,CAAC;IAAA,CACA,CAAC;EAExB;AACF;AAACzE,eAAA,CAnZKrB,mBAAmB,yBAIM,KAAK;AAAAqB,eAAA,CAJ9BrB,mBAAmB,kBAMD,IAAI;AAAAqB,eAAA,CANtBrB,mBAAmB,iBAWF;EACnB;EACA8B,IAAI,EAAE,MAAM;EAEZ;EACAzB,qBAAqB,EAAE,uBAAuB;EAE9C;EACAK,wBAAwB,EAAE,0BAA0B;EAEpD;EACAC,wBAAwB,EAAE,0BAA0B;EAEpD;EACAF,WAAW,EAAE,aAAa;EAE1B;EACAD,cAAc,EAAE,gBAAgB;EAEhC;EACAI,IAAI,EAAE;AACR,CAAC;AAAAS,eAAA,CAhCGrB,mBAAmB,mBAkCA;EACrB+B,IAAI,EAAE,MAAM;EACZf,iBAAiB,EAAE,mBAAmB;EACtCC,aAAa,EAAE,eAAe;EAC9BC,KAAK,EAAE;AACT,CAAC;AAAAG,eAAA,CAvCGrB,mBAAmB,kBAyCD;EACpBJ,aAAa,EAAE,IAAI;EACnB6F,UAAU,EAAEA,CAAA,KAAY5D,SAAS;EACjC6D,SAAS,EAAEA,CAAA,KAAY7D,SAAS;EAChC8D,SAAS,EAAEA,CAAA,KAAY9D,SAAS;EAChC+D,QAAQ,EAAEA,CAAA,KAAY/D;AACxB,CAAC;AAsWH,eAAe7B,mBAAmB"}
|
|
1
|
+
{"version":3,"file":"IrisGridCopyHandler.js","names":["React","Component","classNames","Button","FadeTransition","LoadingSpinner","GridRange","GridUtils","CanceledPromiseError","copyToClipboard","PromiseUtils","Log","IrisGridUtils","IrisGridBottomBar","jsx","_jsx","jsxs","_jsxs","log","module","isCopyRangesOperation","copyOperation","ranges","isCopyHeaderOperation","columnIndex","IrisGridCopyHandler","getStatusMessageText","copyState","rowCount","COPY_STATES","CONFIRMATION_REQUIRED","concat","toLocaleString","CLICK_REQUIRED","FETCH_ERROR","FETCH_RANGES_IN_PROGRESS","FETCH_HEADER_IN_PROGRESS","DONE","getCopyButtonText","buttonState","BUTTON_STATES","FETCH_IN_PROGRESS","CLICK_TO_COPY","RETRY","constructor","props","_defineProperty","handleBackgroundClick","bind","handleCancelClick","handleCopyClick","handleHideTimeout","state","error","undefined","IDLE","COPY","isShown","componentDidMount","startCopy","componentDidUpdate","prevProps","componentWillUnmount","stopCopy","debug2","setState","debug","startHideTimer","NO_PROMPT_THRESHOLD","startFetch","textData","stopFetch","stopHideTimer","_this","_asyncToGenerator","copyText","showCopyDone","e","text","_this2","_this3","model","columnDepth","movedColumns","modelIndex","getModelIndex","textForColumnHeader","fetchPromise","makeCancelable","includeHeaders","userColumnWidths","formatValues","hiddenColumns","getHiddenColumns","modelRanges","getModelRanges","length","subtractRanges","map","makeColumn","subtractRangesFromRanges","formatValue","value","column","displayString","type","name","textSnapshot","cancel","hideTimer","setTimeout","HIDE_TIMEOUT","clearTimeout","render","onEntering","onEntered","onExiting","onExited","animation","copyButtonText","statusMessageText","isButtonContainerVisible","isFetching","isDone","className","onClick","children","in","mountOnEnter","unmountOnExit","kind","disabled"],"sources":["../src/IrisGridCopyHandler.tsx"],"sourcesContent":["import React, { Component } from 'react';\nimport classNames from 'classnames';\nimport { Button, FadeTransition, LoadingSpinner } from '@deephaven/components';\nimport {\n GridRange,\n GridUtils,\n type ModelSizeMap,\n type MoveOperation,\n} from '@deephaven/grid';\nimport {\n type CancelablePromise,\n CanceledPromiseError,\n copyToClipboard,\n PromiseUtils,\n} from '@deephaven/utils';\nimport Log from '@deephaven/log';\nimport type { dh } from '@deephaven/jsapi-types';\nimport IrisGridUtils from './IrisGridUtils';\nimport IrisGridBottomBar from './IrisGridBottomBar';\nimport './IrisGridCopyHandler.scss';\nimport type 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\ntype CommonCopyOperation = {\n movedColumns: readonly MoveOperation[];\n error?: string;\n};\n\nexport type CopyRangesOperation = CommonCopyOperation & {\n ranges: readonly GridRange[];\n includeHeaders: boolean;\n formatValues?: boolean;\n userColumnWidths: ModelSizeMap;\n};\n\nexport type CopyHeaderOperation = CommonCopyOperation & {\n columnIndex: number;\n columnDepth: number;\n};\n\nexport type CopyOperation = CopyRangesOperation | CopyHeaderOperation;\n\nfunction isCopyRangesOperation(\n copyOperation: CopyOperation\n): copyOperation is CopyRangesOperation {\n return (copyOperation as CopyRangesOperation).ranges != null;\n}\n\nfunction isCopyHeaderOperation(\n copyOperation: CopyOperation\n): copyOperation is CopyHeaderOperation {\n return (copyOperation as CopyHeaderOperation).columnIndex != null;\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 for copy ranges operation\n FETCH_RANGES_IN_PROGRESS: 'FETCH_RANGES_IN_PROGRESS',\n\n // Fetch is currently in progress for copy header operation\n FETCH_HEADER_IN_PROGRESS: 'FETCH_HEADER_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_RANGES_IN_PROGRESS:\n return `Fetching ${rowCount.toLocaleString()} rows for clipboard...`;\n case IrisGridCopyHandler.COPY_STATES.FETCH_HEADER_IN_PROGRESS:\n return 'Fetching header 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 { 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 this.setState({ isShown: true, error: undefined });\n\n if (isCopyRangesOperation(copyOperation)) {\n const { ranges } = copyOperation;\n const rowCount = GridRange.rowCount(ranges);\n this.setState({ rowCount });\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 return;\n }\n }\n\n this.startFetch();\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 async handleCopyClick(): Promise<void> {\n log.debug2('handleCopyClick');\n\n if (this.textData != null) {\n try {\n await this.copyText(this.textData);\n this.showCopyDone();\n } catch (e) {\n log.error('Error copying text', e);\n this.setState({\n error: 'Unable to copy. Verify your browser permissions.',\n });\n }\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 async copyText(text: string): Promise<void> {\n log.debug2('copyText', text);\n\n this.textData = text;\n\n await copyToClipboard(text);\n }\n\n showCopyDone(): void {\n this.setState({ copyState: IrisGridCopyHandler.COPY_STATES.DONE });\n this.startHideTimer();\n }\n\n async startFetch(): Promise<void> {\n this.stopFetch();\n\n const { model, copyOperation } = this.props;\n\n if (isCopyHeaderOperation(copyOperation)) {\n const { columnIndex, columnDepth, movedColumns } = copyOperation;\n log.debug('startFetch copyHeader', columnIndex, columnDepth);\n\n this.setState({\n buttonState: IrisGridCopyHandler.BUTTON_STATES.FETCH_IN_PROGRESS,\n copyState: IrisGridCopyHandler.COPY_STATES.FETCH_HEADER_IN_PROGRESS,\n });\n\n const modelIndex = GridUtils.getModelIndex(columnIndex, movedColumns);\n const copyText = model.textForColumnHeader(modelIndex, columnDepth);\n if (copyText === undefined) {\n this.fetchPromise = undefined;\n this.setState({\n error: 'Invalid column header selected.',\n copyState: IrisGridCopyHandler.COPY_STATES.DONE,\n });\n return;\n }\n this.fetchPromise = PromiseUtils.makeCancelable(copyText);\n } else {\n const {\n ranges,\n includeHeaders,\n userColumnWidths,\n movedColumns,\n formatValues,\n } = copyOperation;\n log.debug('startFetch copyRanges', ranges);\n\n this.setState({\n buttonState: IrisGridCopyHandler.BUTTON_STATES.FETCH_IN_PROGRESS,\n copyState: IrisGridCopyHandler.COPY_STATES.FETCH_RANGES_IN_PROGRESS,\n });\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: dh.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 }\n\n try {\n const text = await this.fetchPromise;\n this.fetchPromise = undefined;\n try {\n await this.copyText(text);\n this.showCopyDone();\n } catch (e) {\n log.error('Error copying text', e);\n this.setState({\n buttonState: IrisGridCopyHandler.BUTTON_STATES.CLICK_TO_COPY,\n copyState: IrisGridCopyHandler.COPY_STATES.CLICK_REQUIRED,\n });\n }\n } catch (e) {\n if (e instanceof CanceledPromiseError) {\n log.debug('User cancelled copy.');\n } else {\n log.error('Error fetching contents', e);\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 <FadeTransition\n in={isButtonContainerVisible}\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 && (\n <LoadingSpinner className=\"loading-spinner-vertical-align\" />\n )}\n {copyButtonText}\n </Button>\n </div>\n </FadeTransition>\n </IrisGridBottomBar>\n );\n }\n}\n\nexport default IrisGridCopyHandler;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
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 type BoxCoordinates,\n type Coordinate,\n DataBarCellRenderer,\n} from '@deephaven/grid';\nimport { type 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,cAAcA,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,UACF,CAAC;EACH;AACF;AAEA,eAAeR,2BAA2B"}
|
|
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 type BoxCoordinates,\n type Coordinate,\n DataBarCellRenderer,\n} from '@deephaven/grid';\nimport { type 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,cAAcA,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,UACF,CAAC;EACH;AACF;AAEA,eAAeR,2BAA2B","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IrisGridIcons.js","names":["memoizeClear","vsTriangleDown","vsTriangleRight","vsTriangleUp","vsLinkExternal","iconMap","Map","makeIcon","name","size","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 vsTriangleDown,\n vsTriangleRight,\n vsTriangleUp,\n vsLinkExternal,\n type IconDefinition,\n} from '@deephaven/icons';\n\nexport type IconName =\n | 'sortUp'\n | 'sortDown'\n | 'caretDown'\n | 'caretRight'\n | 'cellOverflow';\n\nconst iconMap = new Map<IconName, IconDefinition>([\n ['sortUp', vsTriangleUp],\n ['sortDown', vsTriangleDown],\n ['caretDown', vsTriangleDown],\n ['caretRight', vsTriangleRight],\n ['cellOverflow', vsLinkExternal],\n]);\n\nconst makeIcon = memoizeClear(\n (name: IconName, size: number) => {\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: size / faIcon.icon[0],\n d: size / faIcon.icon[1],\n };\n scaledIcon.addPath(icon, scaleMatrix);\n return scaledIcon;\n },\n { max: 1000 }\n);\n\nexport function getIcon(name: IconName, size: number): Path2D {\n return makeIcon(name, size);\n}\n"],"mappings":"AAAA,SAASA,YAAY,QAAQ,iBAAiB;AAC9C,SACEC,cAAc,EACdC,eAAe,EACfC,YAAY,EACZC,cAAc,QAET,kBAAkB;AASzB,IAAMC,OAAO,GAAG,IAAIC,GAAG,CAA2B,CAChD,CAAC,QAAQ,EAAEH,YAAY,CAAC,EACxB,CAAC,UAAU,EAAEF,cAAc,CAAC,EAC5B,CAAC,WAAW,EAAEA,cAAc,CAAC,EAC7B,CAAC,YAAY,EAAEC,eAAe,CAAC,EAC/B,CAAC,cAAc,EAAEE,cAAc,CAAC,CACjC,CAAC;AAEF,IAAMG,QAAQ,GAAGP,YAAY,CAC3B,CAACQ,IAAc,EAAEC,IAAY,KAAK;EAChC,IAAMC,MAAM,GAAGL,OAAO,CAACM,GAAG,CAACH,IAAI,CAAC;EAChC,IAAIE,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,CAAC,CAAC;EAC/B,IAAME,WAAW,GAAG;IAClBC,CAAC,EAAEZ,IAAI,GAAGC,MAAM,CAACO,IAAI,CAAC,CAAC,CAAC;IACxBK,CAAC,EAAEb,IAAI,GAAGC,MAAM,CAACO,IAAI,CAAC,CAAC;EACzB,CAAC;EACDE,UAAU,CAACI,OAAO,CAACN,IAAI,EAAEG,WAAW,CAAC;EACrC,OAAOD,UAAU;AACnB,CAAC,EACD;EAAEK,GAAG,EAAE;AAAK,CACd,CAAC;AAED,OAAO,SAASC,OAAOA,CAACjB,IAAc,EAAEC,IAAY,EAAU;EAC5D,OAAOF,QAAQ,CAACC,IAAI,EAAEC,IAAI,CAAC;AAC7B"}
|
|
1
|
+
{"version":3,"file":"IrisGridIcons.js","names":["memoizeClear","vsTriangleDown","vsTriangleRight","vsTriangleUp","vsLinkExternal","iconMap","Map","makeIcon","name","size","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 vsTriangleDown,\n vsTriangleRight,\n vsTriangleUp,\n vsLinkExternal,\n type IconDefinition,\n} from '@deephaven/icons';\n\nexport type IconName =\n | 'sortUp'\n | 'sortDown'\n | 'caretDown'\n | 'caretRight'\n | 'cellOverflow';\n\nconst iconMap = new Map<IconName, IconDefinition>([\n ['sortUp', vsTriangleUp],\n ['sortDown', vsTriangleDown],\n ['caretDown', vsTriangleDown],\n ['caretRight', vsTriangleRight],\n ['cellOverflow', vsLinkExternal],\n]);\n\nconst makeIcon = memoizeClear(\n (name: IconName, size: number) => {\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: size / faIcon.icon[0],\n d: size / faIcon.icon[1],\n };\n scaledIcon.addPath(icon, scaleMatrix);\n return scaledIcon;\n },\n { max: 1000 }\n);\n\nexport function getIcon(name: IconName, size: number): Path2D {\n return makeIcon(name, size);\n}\n"],"mappings":"AAAA,SAASA,YAAY,QAAQ,iBAAiB;AAC9C,SACEC,cAAc,EACdC,eAAe,EACfC,YAAY,EACZC,cAAc,QAET,kBAAkB;AASzB,IAAMC,OAAO,GAAG,IAAIC,GAAG,CAA2B,CAChD,CAAC,QAAQ,EAAEH,YAAY,CAAC,EACxB,CAAC,UAAU,EAAEF,cAAc,CAAC,EAC5B,CAAC,WAAW,EAAEA,cAAc,CAAC,EAC7B,CAAC,YAAY,EAAEC,eAAe,CAAC,EAC/B,CAAC,cAAc,EAAEE,cAAc,CAAC,CACjC,CAAC;AAEF,IAAMG,QAAQ,GAAGP,YAAY,CAC3B,CAACQ,IAAc,EAAEC,IAAY,KAAK;EAChC,IAAMC,MAAM,GAAGL,OAAO,CAACM,GAAG,CAACH,IAAI,CAAC;EAChC,IAAIE,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,CAAC,CAAC;EAC/B,IAAME,WAAW,GAAG;IAClBC,CAAC,EAAEZ,IAAI,GAAGC,MAAM,CAACO,IAAI,CAAC,CAAC,CAAC;IACxBK,CAAC,EAAEb,IAAI,GAAGC,MAAM,CAACO,IAAI,CAAC,CAAC;EACzB,CAAC;EACDE,UAAU,CAACI,OAAO,CAACN,IAAI,EAAEG,WAAW,CAAC;EACrC,OAAOD,UAAU;AACnB,CAAC,EACD;EAAEK,GAAG,EAAE;AAAK,CACd,CAAC;AAED,OAAO,SAASC,OAAOA,CAACjB,IAAc,EAAEC,IAAY,EAAU;EAC5D,OAAOF,QAAQ,CAACC,IAAI,EAAEC,IAAI,CAAC;AAC7B","ignoreList":[]}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { GridMetricCalculator, type ModelSizeMap } from '@deephaven/grid';
|
|
2
|
-
import type { GridMetricState } from '@deephaven/grid';
|
|
1
|
+
import { GridMetricCalculator, type ModelSizeMap, type GridMetricState } from '@deephaven/grid';
|
|
3
2
|
import type { dh } from '@deephaven/jsapi-types';
|
|
4
3
|
import type IrisGridModel from './IrisGridModel';
|
|
5
4
|
import { type IrisGridThemeType } from './IrisGridTheme';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IrisGridMetricCalculator.d.ts","sourceRoot":"","sources":["../src/IrisGridMetricCalculator.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"IrisGridMetricCalculator.d.ts","sourceRoot":"","sources":["../src/IrisGridMetricCalculator.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,KAAK,YAAY,EACjB,KAAK,eAAe,EACrB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,KAAK,aAAa,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEzD,MAAM,WAAW,mBAAoB,SAAQ,eAAe;IAC1D,KAAK,EAAE,aAAa,CAAC;IACrB,KAAK,EAAE,iBAAiB,CAAC;IACzB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,eAAe,EAAE,GAAG,CAClB,MAAM,EACN;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,EAAE,CAAC,eAAe,GAAG,IAAI,CAAA;KAAE,CACxD,CAAC;IACF,YAAY,EAAE,GAAG,CACf,MAAM,EACN;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,EAAE,CAAC,eAAe,GAAG,IAAI,CAAA;KAAE,CACpD,CAAC;IACF,KAAK,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;GAGG;AACH,qBAAa,wBAAyB,SAAQ,oBAAoB;IAChE,QAAQ,CAAC,KAAK,EAAE,mBAAmB,GAAG,MAAM;IAyB5C,mBAAmB,IAAI,YAAY;IAInC,yBAAyB,IAAI,YAAY;CAG1C;AAED,eAAe,wBAAwB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IrisGridMetricCalculator.js","names":["GridMetricCalculator","IrisGridMetricCalculator","getGridY","state","gridY","isFilterBarShown","theme","advancedFilters","quickFilters","sorts","reverse","filterBarHeight","size","filterBarCollapsedHeight","length","reverseHeaderBarHeight","getUserColumnWidths","userColumnWidths","getCalculatedColumnWidths","calculatedColumnWidths"],"sources":["../src/IrisGridMetricCalculator.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"IrisGridMetricCalculator.js","names":["GridMetricCalculator","IrisGridMetricCalculator","getGridY","state","gridY","isFilterBarShown","theme","advancedFilters","quickFilters","sorts","reverse","filterBarHeight","size","filterBarCollapsedHeight","length","reverseHeaderBarHeight","getUserColumnWidths","userColumnWidths","getCalculatedColumnWidths","calculatedColumnWidths"],"sources":["../src/IrisGridMetricCalculator.ts"],"sourcesContent":["import {\n GridMetricCalculator,\n type ModelSizeMap,\n type GridMetricState,\n} from '@deephaven/grid';\nimport type { dh } from '@deephaven/jsapi-types';\nimport type IrisGridModel from './IrisGridModel';\nimport { type 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: dh.FilterCondition | null }\n >;\n quickFilters: Map<\n string,\n { text: string; filter: dh.FilterCondition | null }\n >;\n sorts: dh.Sort[];\n reverse: boolean;\n}\n\n/**\n * Class to calculate all the metrics for a grid.\n * Call getMetrics() with the state to get metrics\n */\nexport class 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 reverse,\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 (reverse && sorts != null && sorts.length > 0) {\n gridY += theme.reverseHeaderBarHeight;\n }\n\n return gridY;\n }\n\n getUserColumnWidths(): ModelSizeMap {\n return this.userColumnWidths;\n }\n\n getCalculatedColumnWidths(): ModelSizeMap {\n return this.calculatedColumnWidths;\n }\n}\n\nexport default IrisGridMetricCalculator;\n"],"mappings":"AAAA,SACEA,oBAAoB,QAGf,iBAAiB;AAqBxB;AACA;AACA;AACA;AACA,OAAO,MAAMC,wBAAwB,SAASD,oBAAoB,CAAC;EACjEE,QAAQA,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,IAAIH,OAAO,IAAID,KAAK,IAAI,IAAI,IAAIA,KAAK,CAACK,MAAM,GAAG,CAAC,EAAE;MAChDV,KAAK,IAAIE,KAAK,CAACS,sBAAsB;IACvC;IAEA,OAAOX,KAAK;EACd;EAEAY,mBAAmBA,CAAA,EAAiB;IAClC,OAAO,IAAI,CAACC,gBAAgB;EAC9B;EAEAC,yBAAyBA,CAAA,EAAiB;IACxC,OAAO,IAAI,CAACC,sBAAsB;EACpC;AACF;AAEA,eAAelB,wBAAwB","ignoreList":[]}
|
package/dist/IrisGridModel.d.ts
CHANGED
|
@@ -133,6 +133,14 @@ declare abstract class IrisGridModel<TEventMap extends Record<string, Event<stri
|
|
|
133
133
|
* @param formatter The formatter to set
|
|
134
134
|
*/
|
|
135
135
|
abstract set formatter(formatter: Formatter);
|
|
136
|
+
/**
|
|
137
|
+
* @returns The column alignment map
|
|
138
|
+
*/
|
|
139
|
+
abstract get columnAlignmentMap(): ReadonlyMap<string, CanvasTextAlign>;
|
|
140
|
+
/**
|
|
141
|
+
* @param columnAlignmentMap The column alignment map to set
|
|
142
|
+
*/
|
|
143
|
+
abstract set columnAlignmentMap(columnAlignmentMap: Map<string, CanvasTextAlign>);
|
|
136
144
|
/**
|
|
137
145
|
* @param value The value to format
|
|
138
146
|
* @param columnType The column type to format
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IrisGridModel.d.ts","sourceRoot":"","sources":["../src/IrisGridModel.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"IrisGridModel.d.ts","sourceRoot":"","sources":["../src/IrisGridModel.ts"],"names":[],"mappings":"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"}
|
package/dist/IrisGridModel.js
CHANGED
|
@@ -160,6 +160,14 @@ class IrisGridModel extends GridModel {
|
|
|
160
160
|
* @param formatter The formatter to set
|
|
161
161
|
*/
|
|
162
162
|
|
|
163
|
+
/**
|
|
164
|
+
* @returns The column alignment map
|
|
165
|
+
*/
|
|
166
|
+
|
|
167
|
+
/**
|
|
168
|
+
* @param columnAlignmentMap The column alignment map to set
|
|
169
|
+
*/
|
|
170
|
+
|
|
163
171
|
/**
|
|
164
172
|
* @param value The value to format
|
|
165
173
|
* @param columnType The column type to format
|