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