@deephaven/iris-grid 1.22.1 → 1.22.2-alpha-pivot-builder.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/README.md +284 -1
- package/dist/AdvancedFilterCreator.js +65 -102
- package/dist/AdvancedFilterCreator.js.map +1 -1
- package/dist/AdvancedFilterCreatorFilterItem.js +22 -37
- package/dist/AdvancedFilterCreatorFilterItem.js.map +1 -1
- package/dist/AdvancedFilterCreatorSelectValue.js +37 -63
- package/dist/AdvancedFilterCreatorSelectValue.js.map +1 -1
- package/dist/AdvancedFilterCreatorSelectValueList.js +29 -59
- package/dist/AdvancedFilterCreatorSelectValueList.js.map +1 -1
- package/dist/ColumnHeaderGroup.js +6 -8
- package/dist/ColumnHeaderGroup.js.map +1 -1
- package/dist/ColumnStatistics.js +22 -28
- package/dist/ColumnStatistics.js.map +1 -1
- package/dist/CommonTypes.d.ts +62 -2
- package/dist/CommonTypes.d.ts.map +1 -1
- package/dist/CommonTypes.js.map +1 -1
- package/dist/CrossColumnSearch.js +20 -29
- package/dist/CrossColumnSearch.js.map +1 -1
- package/dist/FilterInputField.js +19 -46
- package/dist/FilterInputField.js.map +1 -1
- package/dist/GotoRow.js +32 -29
- package/dist/GotoRow.js.map +1 -1
- package/dist/IrisGrid.d.ts +85 -2
- package/dist/IrisGrid.d.ts.map +1 -1
- package/dist/IrisGrid.js +709 -861
- package/dist/IrisGrid.js.map +1 -1
- package/dist/IrisGridBottomBar.js +10 -11
- package/dist/IrisGridBottomBar.js.map +1 -1
- package/dist/IrisGridCacheUtils.js +28 -8
- package/dist/IrisGridCacheUtils.js.map +1 -1
- package/dist/IrisGridCellOverflowModal.js +30 -13
- package/dist/IrisGridCellOverflowModal.js.map +1 -1
- package/dist/IrisGridCellRendererUtils.js +6 -12
- package/dist/IrisGridCellRendererUtils.js.map +1 -1
- package/dist/IrisGridCopyHandler.js +28 -47
- package/dist/IrisGridCopyHandler.js.map +1 -1
- package/dist/IrisGridMetricCalculator.js +28 -51
- package/dist/IrisGridMetricCalculator.js.map +1 -1
- package/dist/IrisGridModel.d.ts +30 -1
- package/dist/IrisGridModel.d.ts.map +1 -1
- package/dist/IrisGridModel.js +36 -1
- package/dist/IrisGridModel.js.map +1 -1
- package/dist/IrisGridModelUpdater.js +32 -30
- package/dist/IrisGridModelUpdater.js.map +1 -1
- package/dist/IrisGridModelWidgetProps.d.ts +26 -0
- package/dist/IrisGridModelWidgetProps.d.ts.map +1 -0
- package/dist/IrisGridModelWidgetProps.js +2 -0
- package/dist/IrisGridModelWidgetProps.js.map +1 -0
- package/dist/IrisGridPartitionSelector.js +28 -62
- package/dist/IrisGridPartitionSelector.js.map +1 -1
- package/dist/IrisGridProxyModel.d.ts.map +1 -1
- package/dist/IrisGridProxyModel.js +41 -14
- package/dist/IrisGridProxyModel.js.map +1 -1
- package/dist/IrisGridRenderer.js +162 -264
- package/dist/IrisGridRenderer.js.map +1 -1
- package/dist/IrisGridTableModel.js +23 -16
- package/dist/IrisGridTableModel.js.map +1 -1
- package/dist/IrisGridTableModelTemplate.js +49 -73
- package/dist/IrisGridTableModelTemplate.js.map +1 -1
- package/dist/IrisGridTestUtils.js +19 -19
- package/dist/IrisGridTestUtils.js.map +1 -1
- package/dist/IrisGridTextCellRenderer.d.ts.map +1 -1
- package/dist/IrisGridTextCellRenderer.js +36 -53
- package/dist/IrisGridTextCellRenderer.js.map +1 -1
- package/dist/IrisGridTheme.js +9 -1
- package/dist/IrisGridTheme.js.map +1 -1
- package/dist/IrisGridThemeProvider.js +5 -7
- package/dist/IrisGridThemeProvider.js.map +1 -1
- package/dist/IrisGridTreeTableModel.js +5 -9
- package/dist/IrisGridTreeTableModel.js.map +1 -1
- package/dist/IrisGridUtils.d.ts +25 -2
- package/dist/IrisGridUtils.d.ts.map +1 -1
- package/dist/IrisGridUtils.js +297 -294
- package/dist/IrisGridUtils.js.map +1 -1
- package/dist/LazyIrisGrid.d.ts +1 -1
- package/dist/NoPastePermissionModal.js +3 -5
- package/dist/NoPastePermissionModal.js.map +1 -1
- package/dist/PendingDataBottomBar.js +27 -16
- package/dist/PendingDataBottomBar.js.map +1 -1
- package/dist/ToastBottomBar.js +16 -8
- package/dist/ToastBottomBar.js.map +1 -1
- package/dist/format-context-menus/CustomFormatAction.js +11 -24
- package/dist/format-context-menus/CustomFormatAction.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/key-handlers/CopyCellKeyHandler.js +3 -4
- package/dist/key-handlers/CopyCellKeyHandler.js.map +1 -1
- package/dist/key-handlers/CopyKeyHandler.js +1 -3
- package/dist/key-handlers/CopyKeyHandler.js.map +1 -1
- package/dist/key-handlers/ReverseKeyHandler.js +1 -3
- package/dist/key-handlers/ReverseKeyHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridCellOverflowMouseHandler.js +35 -59
- package/dist/mousehandlers/IrisGridCellOverflowMouseHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridColumnSelectMouseHandler.js +13 -29
- package/dist/mousehandlers/IrisGridColumnSelectMouseHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridColumnTooltipMouseHandler.js +8 -17
- package/dist/mousehandlers/IrisGridColumnTooltipMouseHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridContextMenuHandler.js +96 -199
- package/dist/mousehandlers/IrisGridContextMenuHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridDataSelectMouseHandler.js +2 -4
- package/dist/mousehandlers/IrisGridDataSelectMouseHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridFilterMouseHandler.js +16 -30
- package/dist/mousehandlers/IrisGridFilterMouseHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridPartitionedTableMouseHandler.js +5 -13
- package/dist/mousehandlers/IrisGridPartitionedTableMouseHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridRowTreeMouseHandler.js +20 -36
- package/dist/mousehandlers/IrisGridRowTreeMouseHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridSortMouseHandler.js +3 -5
- package/dist/mousehandlers/IrisGridSortMouseHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridTokenMouseHandler.js +9 -18
- package/dist/mousehandlers/IrisGridTokenMouseHandler.js.map +1 -1
- package/dist/mousehandlers/PendingMouseHandler.js +10 -18
- package/dist/mousehandlers/PendingMouseHandler.js.map +1 -1
- package/dist/sidebar/AdvancedSettingsMenu.js +12 -5
- package/dist/sidebar/AdvancedSettingsMenu.js.map +1 -1
- package/dist/sidebar/ChartBuilder.js +45 -102
- package/dist/sidebar/ChartBuilder.js.map +1 -1
- package/dist/sidebar/CustomColumnBuilder.js +35 -77
- package/dist/sidebar/CustomColumnBuilder.js.map +1 -1
- package/dist/sidebar/CustomColumnInput.js +9 -11
- package/dist/sidebar/CustomColumnInput.js.map +1 -1
- package/dist/sidebar/InputEditor.js +17 -24
- package/dist/sidebar/InputEditor.js.map +1 -1
- package/dist/sidebar/IrisGridTableOptionsWidgetProps.d.ts +22 -0
- package/dist/sidebar/IrisGridTableOptionsWidgetProps.d.ts.map +1 -0
- package/dist/sidebar/IrisGridTableOptionsWidgetProps.js +2 -0
- package/dist/sidebar/IrisGridTableOptionsWidgetProps.js.map +1 -0
- package/dist/sidebar/OptionType.d.ts +8 -0
- package/dist/sidebar/OptionType.d.ts.map +1 -1
- package/dist/sidebar/OptionType.js +7 -0
- package/dist/sidebar/OptionType.js.map +1 -1
- package/dist/sidebar/PluginTableOptionsErrorBoundary.d.ts +30 -0
- package/dist/sidebar/PluginTableOptionsErrorBoundary.d.ts.map +1 -0
- package/dist/sidebar/PluginTableOptionsErrorBoundary.js +55 -0
- package/dist/sidebar/PluginTableOptionsErrorBoundary.js.map +1 -0
- package/dist/sidebar/RollupRows.js +72 -113
- package/dist/sidebar/RollupRows.js.map +1 -1
- package/dist/sidebar/SelectDistinctBuilder.js +16 -33
- package/dist/sidebar/SelectDistinctBuilder.js.map +1 -1
- package/dist/sidebar/TableCsvExporter.js +50 -74
- package/dist/sidebar/TableCsvExporter.js.map +1 -1
- package/dist/sidebar/TableSaver.js +18 -42
- package/dist/sidebar/TableSaver.js.map +1 -1
- package/dist/sidebar/aggregations/AggregationEdit.js +25 -18
- package/dist/sidebar/aggregations/AggregationEdit.js.map +1 -1
- package/dist/sidebar/aggregations/AggregationUtils.js +1 -3
- package/dist/sidebar/aggregations/AggregationUtils.js.map +1 -1
- package/dist/sidebar/aggregations/Aggregations.js +45 -34
- package/dist/sidebar/aggregations/Aggregations.js.map +1 -1
- package/dist/sidebar/conditional-formatting/ColumnFormatEditor.js +35 -24
- package/dist/sidebar/conditional-formatting/ColumnFormatEditor.js.map +1 -1
- package/dist/sidebar/conditional-formatting/ConditionEditor.js +38 -21
- package/dist/sidebar/conditional-formatting/ConditionEditor.js.map +1 -1
- package/dist/sidebar/conditional-formatting/ConditionalFormatEditor.js +27 -11
- package/dist/sidebar/conditional-formatting/ConditionalFormatEditor.js.map +1 -1
- package/dist/sidebar/conditional-formatting/ConditionalFormattingMenu.js +9 -11
- package/dist/sidebar/conditional-formatting/ConditionalFormattingMenu.js.map +1 -1
- package/dist/sidebar/conditional-formatting/ConditionalFormattingUtils.js +48 -57
- package/dist/sidebar/conditional-formatting/ConditionalFormattingUtils.js.map +1 -1
- package/dist/sidebar/conditional-formatting/RowFormatEditor.js +35 -24
- package/dist/sidebar/conditional-formatting/RowFormatEditor.js.map +1 -1
- package/dist/sidebar/conditional-formatting/StyleEditor.js +26 -11
- package/dist/sidebar/conditional-formatting/StyleEditor.js.map +1 -1
- package/dist/sidebar/index.d.ts +3 -2
- package/dist/sidebar/index.d.ts.map +1 -1
- package/dist/sidebar/index.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/SearchItem.js +5 -7
- package/dist/sidebar/visibility-ordering-builder/SearchItem.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/SearchWithModal.js +24 -18
- package/dist/sidebar/visibility-ordering-builder/SearchWithModal.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.js +166 -256
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilderUtils.js +4 -11
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilderUtils.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingGroup.js +28 -14
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingGroup.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingItem.js +16 -19
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingItem.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/PointerSensorWithInteraction.js +1 -3
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/PointerSensorWithInteraction.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTree.js +19 -29
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTree.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeDndContext.js +39 -52
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeDndContext.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeItem.js +18 -23
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeItem.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/TreeItem.js +19 -15
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/TreeItem.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/keyboardCoordinates.js +16 -30
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/keyboardCoordinates.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/utilities.js +30 -39
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/utilities.js.map +1 -1
- package/package.json +16 -16
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NoPastePermissionModal.js","names":["Button","GLOBAL_SHORTCUTS","Modal","ModalBody","ModalFooter","ModalHeader","jsx","_jsx","jsxs","_jsxs","NoPastePermissionModal","_ref","isOpen","onClose","errorMessage","pasteShortcutText","PASTE","getDisplayText","toggle","centered","children","closeButton","kind","onClick"],"sources":["../src/NoPastePermissionModal.tsx"],"sourcesContent":["import {\n Button,\n GLOBAL_SHORTCUTS,\n Modal,\n ModalBody,\n ModalFooter,\n ModalHeader,\n} from '@deephaven/components';\n\nexport type NoPastePermissionModalProps = {\n isOpen: boolean;\n onClose: () => void;\n errorMessage: string;\n};\n\nexport function NoPastePermissionModal({\n isOpen,\n onClose,\n errorMessage,\n}: NoPastePermissionModalProps): JSX.Element {\n const pasteShortcutText = GLOBAL_SHORTCUTS.PASTE.getDisplayText();\n return (\n <Modal isOpen={isOpen} toggle={onClose} centered>\n <ModalHeader closeButton={false}>No Paste Permission</ModalHeader>\n <ModalBody>\n <p>{errorMessage}</p>\n <p>You can still use {pasteShortcutText} to paste.</p>\n </ModalBody>\n <ModalFooter>\n <Button kind=\"primary\" onClick={onClose}>\n Dismiss\n </Button>\n </ModalFooter>\n </Modal>\n );\n}\n"],"mappings":"AAAA,SACEA,MAAM,EACNC,gBAAgB,EAChBC,KAAK,EACLC,SAAS,EACTC,WAAW,EACXC,WAAW,QACN,uBAAuB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAQ/B,OAAO,SAASC,sBAAsBA,CAAAC,IAAA,EAIO;EAAA,
|
|
1
|
+
{"version":3,"file":"NoPastePermissionModal.js","names":["Button","GLOBAL_SHORTCUTS","Modal","ModalBody","ModalFooter","ModalHeader","jsx","_jsx","jsxs","_jsxs","NoPastePermissionModal","_ref","isOpen","onClose","errorMessage","pasteShortcutText","PASTE","getDisplayText","toggle","centered","children","closeButton","kind","onClick"],"sources":["../src/NoPastePermissionModal.tsx"],"sourcesContent":["import {\n Button,\n GLOBAL_SHORTCUTS,\n Modal,\n ModalBody,\n ModalFooter,\n ModalHeader,\n} from '@deephaven/components';\n\nexport type NoPastePermissionModalProps = {\n isOpen: boolean;\n onClose: () => void;\n errorMessage: string;\n};\n\nexport function NoPastePermissionModal({\n isOpen,\n onClose,\n errorMessage,\n}: NoPastePermissionModalProps): JSX.Element {\n const pasteShortcutText = GLOBAL_SHORTCUTS.PASTE.getDisplayText();\n return (\n <Modal isOpen={isOpen} toggle={onClose} centered>\n <ModalHeader closeButton={false}>No Paste Permission</ModalHeader>\n <ModalBody>\n <p>{errorMessage}</p>\n <p>You can still use {pasteShortcutText} to paste.</p>\n </ModalBody>\n <ModalFooter>\n <Button kind=\"primary\" onClick={onClose}>\n Dismiss\n </Button>\n </ModalFooter>\n </Modal>\n );\n}\n"],"mappings":"AAAA,SACEA,MAAM,EACNC,gBAAgB,EAChBC,KAAK,EACLC,SAAS,EACTC,WAAW,EACXC,WAAW,QACN,uBAAuB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAQ/B,OAAO,SAASC,sBAAsBA,CAAAC,IAAA,EAIO;EAAA,IAH3CC,MAAM,GAAAD,IAAA,CAANC,MAAM;IACNC,OAAO,GAAAF,IAAA,CAAPE,OAAO;IACPC,YAAY,GAAAH,IAAA,CAAZG,YAAY;EAEZ,IAAMC,iBAAiB,GAAGd,gBAAgB,CAACe,KAAK,CAACC,cAAc,CAAC,CAAC;EACjE,oBACER,KAAA,CAACP,KAAK;IAACU,MAAM,EAAEA,MAAO;IAACM,MAAM,EAAEL,OAAQ;IAACM,QAAQ;IAAAC,QAAA,gBAC9Cb,IAAA,CAACF,WAAW;MAACgB,WAAW,EAAE,KAAM;MAAAD,QAAA,EAAC;IAAmB,CAAa,CAAC,eAClEX,KAAA,CAACN,SAAS;MAAAiB,QAAA,gBACRb,IAAA;QAAAa,QAAA,EAAIN;MAAY,CAAI,CAAC,eACrBL,KAAA;QAAAW,QAAA,GAAG,oBAAkB,EAACL,iBAAiB,EAAC,YAAU;MAAA,CAAG,CAAC;IAAA,CAC7C,CAAC,eACZR,IAAA,CAACH,WAAW;MAAAgB,QAAA,eACVb,IAAA,CAACP,MAAM;QAACsB,IAAI,EAAC,SAAS;QAACC,OAAO,EAAEV,OAAQ;QAAAO,QAAA,EAAC;MAEzC,CAAQ;IAAC,CACE,CAAC;EAAA,CACT,CAAC;AAEZ","ignoreList":[]}
|
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
2
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
3
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
4
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
5
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
6
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
1
7
|
import React, { useEffect, useMemo, useRef, useState } from 'react';
|
|
2
8
|
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
|
|
3
9
|
import { vsPass, vsWarning } from '@deephaven/icons';
|
|
@@ -9,22 +15,27 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
9
15
|
var HIDE_TIMEOUT = 3000;
|
|
10
16
|
var MAX_NUMBER_ROWS_SHOWN = 5;
|
|
11
17
|
export function PendingDataBottomBar(_ref) {
|
|
12
|
-
var
|
|
13
|
-
isSaving = false,
|
|
14
|
-
onSave,
|
|
15
|
-
onDiscard,
|
|
16
|
-
discardTooltip,
|
|
17
|
-
saveTooltip,
|
|
18
|
-
error,
|
|
19
|
-
pendingDataErrors,
|
|
20
|
-
pendingDataMap,
|
|
21
|
-
onEntering,
|
|
22
|
-
onEntered,
|
|
23
|
-
onExiting,
|
|
24
|
-
onExited
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
18
|
+
var _ref$isSaving = _ref.isSaving,
|
|
19
|
+
isSaving = _ref$isSaving === void 0 ? false : _ref$isSaving,
|
|
20
|
+
onSave = _ref.onSave,
|
|
21
|
+
onDiscard = _ref.onDiscard,
|
|
22
|
+
discardTooltip = _ref.discardTooltip,
|
|
23
|
+
saveTooltip = _ref.saveTooltip,
|
|
24
|
+
error = _ref.error,
|
|
25
|
+
pendingDataErrors = _ref.pendingDataErrors,
|
|
26
|
+
pendingDataMap = _ref.pendingDataMap,
|
|
27
|
+
onEntering = _ref.onEntering,
|
|
28
|
+
onEntered = _ref.onEntered,
|
|
29
|
+
onExiting = _ref.onExiting,
|
|
30
|
+
_onExited = _ref.onExited;
|
|
31
|
+
var _useState = useState(false),
|
|
32
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
33
|
+
isSuccessShown = _useState2[0],
|
|
34
|
+
setIsSuccessShown = _useState2[1];
|
|
35
|
+
var _useState3 = useState(false),
|
|
36
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
37
|
+
wasSuccessShown = _useState4[0],
|
|
38
|
+
setWasSuccessShown = _useState4[1];
|
|
28
39
|
var successTimeout = useRef();
|
|
29
40
|
var prevIsSaving = usePrevious(isSaving);
|
|
30
41
|
var errorMessage = useMemo(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PendingDataBottomBar.js","names":["React","useEffect","useMemo","useRef","useState","FontAwesomeIcon","vsPass","vsWarning","Button","LoadingSpinner","usePrevious","IrisGridBottomBar","jsx","_jsx","jsxs","_jsxs","HIDE_TIMEOUT","MAX_NUMBER_ROWS_SHOWN","PendingDataBottomBar","_ref","isSaving","onSave","onDiscard","discardTooltip","saveTooltip","error","pendingDataErrors","pendingDataMap","onEntering","onEntered","onExiting","onExited","isSuccessShown","setIsSuccessShown","wasSuccessShown","setWasSuccessShown","successTimeout","prevIsSaving","errorMessage","size","concat","Array","from","keys","join","trim","showSuccessMessage","current","setTimeout","hideSuccessMessage","clearTimeout","cleanupTimeout","undefined","pendingRowCount","commitIcon","className","isShown","children","icon","kind","onClick","tooltip","disabled"],"sources":["../src/PendingDataBottomBar.tsx"],"sourcesContent":["import React, { useEffect, useMemo, useRef, useState } from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { vsPass, vsWarning } from '@deephaven/icons';\nimport { Button, LoadingSpinner } from '@deephaven/components';\nimport { usePrevious } from '@deephaven/react-hooks';\nimport IrisGridBottomBar from './IrisGridBottomBar';\nimport './PendingDataBottomBar.scss';\nimport { type PendingDataErrorMap, type PendingDataMap } from './CommonTypes';\n\nconst HIDE_TIMEOUT = 3000;\n\nconst MAX_NUMBER_ROWS_SHOWN = 5;\n\nexport type PendingDataBottomBarProps = {\n onSave: () => Promise<void>;\n onDiscard: () => Promise<void>;\n discardTooltip?: string;\n saveTooltip?: string;\n isSaving?: boolean;\n error?: string | null;\n pendingDataErrors: PendingDataErrorMap;\n pendingDataMap: PendingDataMap;\n onEntering?: () => void;\n onEntered?: () => void;\n onExiting?: () => void;\n onExited?: () => void;\n};\n\nexport function PendingDataBottomBar({\n isSaving = false,\n onSave,\n onDiscard,\n discardTooltip,\n saveTooltip,\n error,\n pendingDataErrors,\n pendingDataMap,\n onEntering,\n onEntered,\n onExiting,\n onExited,\n}: PendingDataBottomBarProps): JSX.Element {\n const [isSuccessShown, setIsSuccessShown] = useState(false);\n const [wasSuccessShown, setWasSuccessShown] = useState(false);\n const successTimeout = useRef<ReturnType<typeof setTimeout>>();\n const prevIsSaving = usePrevious(isSaving);\n const errorMessage = useMemo(() => {\n if (pendingDataErrors.size === 0) {\n return error;\n }\n if (pendingDataErrors.size <= MAX_NUMBER_ROWS_SHOWN) {\n return `Key can't be empty (on pending row${\n pendingDataErrors.size > 1 ? 's' : ''\n } ${Array.from(pendingDataErrors.keys()).join(', ').trim()})`;\n }\n return `Key can't be empty (on ${pendingDataErrors.size} rows)`;\n }, [error, pendingDataErrors]);\n\n useEffect(\n function showSuccessMessage() {\n if (\n prevIsSaving != null &&\n prevIsSaving &&\n !isSaving &&\n errorMessage == null\n ) {\n setIsSuccessShown(true);\n setWasSuccessShown(true);\n successTimeout.current = setTimeout(() => {\n setIsSuccessShown(false);\n }, HIDE_TIMEOUT);\n }\n },\n [errorMessage, isSaving, prevIsSaving]\n );\n\n useEffect(\n function hideSuccessMessage() {\n if (successTimeout.current && pendingDataMap.size > 0) {\n // A change just occurred while the success message was still being shown, just hide the success message\n clearTimeout(successTimeout.current);\n setIsSuccessShown(false);\n setWasSuccessShown(false);\n }\n },\n [pendingDataMap]\n );\n\n useEffect(function cleanupTimeout() {\n return () =>\n successTimeout.current ? clearTimeout(successTimeout.current) : undefined;\n }, []);\n\n const pendingRowCount = pendingDataMap.size;\n let commitIcon;\n if (isSaving) {\n commitIcon = <LoadingSpinner className=\"loading-spinner-vertical-align\" />;\n } else if (wasSuccessShown) {\n commitIcon = vsPass;\n }\n\n return (\n <IrisGridBottomBar\n className=\"pending-data-bottom-bar\"\n isShown={pendingRowCount > 0 || isSuccessShown || errorMessage != null}\n onEntering={onEntering}\n onEntered={onEntered}\n onExiting={onExiting}\n onExited={() => {\n setWasSuccessShown(false);\n if (onExited) {\n onExited();\n }\n }}\n >\n {errorMessage != null && errorMessage !== '' && (\n <div className=\"error-message\">\n <FontAwesomeIcon icon={vsWarning} />\n <span>{`${errorMessage}`}</span>\n </div>\n )}\n {(errorMessage == null || errorMessage === '') && (\n <div className=\"status-message\">\n {pendingRowCount > 0 && (\n <span>{`${pendingRowCount} row${\n pendingRowCount > 1 ? 's' : ''\n } pending`}</span>\n )}\n </div>\n )}\n <div className=\"buttons-container\">\n {!isSaving && !wasSuccessShown && (\n <Button kind=\"secondary\" onClick={onDiscard} tooltip={discardTooltip}>\n Discard\n </Button>\n )}\n <Button\n kind={wasSuccessShown ? 'success' : 'primary'}\n onClick={onSave}\n icon={commitIcon}\n disabled={isSaving || wasSuccessShown || errorMessage != null}\n tooltip={saveTooltip}\n >\n {isSaving && `Committing...`}\n {!isSaving && wasSuccessShown && `Success`}\n {!isSaving && !wasSuccessShown && `Commit`}\n </Button>\n </div>\n </IrisGridBottomBar>\n );\n}\n\nexport default PendingDataBottomBar;\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,SAAS,EAAEC,OAAO,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AACnE,SAASC,eAAe,QAAQ,gCAAgC;AAChE,SAASC,MAAM,EAAEC,SAAS,QAAQ,kBAAkB;AACpD,SAASC,MAAM,EAAEC,cAAc,QAAQ,uBAAuB;AAC9D,SAASC,WAAW,QAAQ,wBAAwB;AAAC,OAC9CC,iBAAiB;AAAA;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAIxB,IAAMC,YAAY,GAAG,IAAI;AAEzB,IAAMC,qBAAqB,GAAG,CAAC;AAiB/B,OAAO,SAASC,oBAAoBA,CAAAC,IAAA,EAaO;EAAA,
|
|
1
|
+
{"version":3,"file":"PendingDataBottomBar.js","names":["React","useEffect","useMemo","useRef","useState","FontAwesomeIcon","vsPass","vsWarning","Button","LoadingSpinner","usePrevious","IrisGridBottomBar","jsx","_jsx","jsxs","_jsxs","HIDE_TIMEOUT","MAX_NUMBER_ROWS_SHOWN","PendingDataBottomBar","_ref","_ref$isSaving","isSaving","onSave","onDiscard","discardTooltip","saveTooltip","error","pendingDataErrors","pendingDataMap","onEntering","onEntered","onExiting","onExited","_useState","_useState2","_slicedToArray","isSuccessShown","setIsSuccessShown","_useState3","_useState4","wasSuccessShown","setWasSuccessShown","successTimeout","prevIsSaving","errorMessage","size","concat","Array","from","keys","join","trim","showSuccessMessage","current","setTimeout","hideSuccessMessage","clearTimeout","cleanupTimeout","undefined","pendingRowCount","commitIcon","className","isShown","children","icon","kind","onClick","tooltip","disabled"],"sources":["../src/PendingDataBottomBar.tsx"],"sourcesContent":["import React, { useEffect, useMemo, useRef, useState } from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { vsPass, vsWarning } from '@deephaven/icons';\nimport { Button, LoadingSpinner } from '@deephaven/components';\nimport { usePrevious } from '@deephaven/react-hooks';\nimport IrisGridBottomBar from './IrisGridBottomBar';\nimport './PendingDataBottomBar.scss';\nimport { type PendingDataErrorMap, type PendingDataMap } from './CommonTypes';\n\nconst HIDE_TIMEOUT = 3000;\n\nconst MAX_NUMBER_ROWS_SHOWN = 5;\n\nexport type PendingDataBottomBarProps = {\n onSave: () => Promise<void>;\n onDiscard: () => Promise<void>;\n discardTooltip?: string;\n saveTooltip?: string;\n isSaving?: boolean;\n error?: string | null;\n pendingDataErrors: PendingDataErrorMap;\n pendingDataMap: PendingDataMap;\n onEntering?: () => void;\n onEntered?: () => void;\n onExiting?: () => void;\n onExited?: () => void;\n};\n\nexport function PendingDataBottomBar({\n isSaving = false,\n onSave,\n onDiscard,\n discardTooltip,\n saveTooltip,\n error,\n pendingDataErrors,\n pendingDataMap,\n onEntering,\n onEntered,\n onExiting,\n onExited,\n}: PendingDataBottomBarProps): JSX.Element {\n const [isSuccessShown, setIsSuccessShown] = useState(false);\n const [wasSuccessShown, setWasSuccessShown] = useState(false);\n const successTimeout = useRef<ReturnType<typeof setTimeout>>();\n const prevIsSaving = usePrevious(isSaving);\n const errorMessage = useMemo(() => {\n if (pendingDataErrors.size === 0) {\n return error;\n }\n if (pendingDataErrors.size <= MAX_NUMBER_ROWS_SHOWN) {\n return `Key can't be empty (on pending row${\n pendingDataErrors.size > 1 ? 's' : ''\n } ${Array.from(pendingDataErrors.keys()).join(', ').trim()})`;\n }\n return `Key can't be empty (on ${pendingDataErrors.size} rows)`;\n }, [error, pendingDataErrors]);\n\n useEffect(\n function showSuccessMessage() {\n if (\n prevIsSaving != null &&\n prevIsSaving &&\n !isSaving &&\n errorMessage == null\n ) {\n setIsSuccessShown(true);\n setWasSuccessShown(true);\n successTimeout.current = setTimeout(() => {\n setIsSuccessShown(false);\n }, HIDE_TIMEOUT);\n }\n },\n [errorMessage, isSaving, prevIsSaving]\n );\n\n useEffect(\n function hideSuccessMessage() {\n if (successTimeout.current && pendingDataMap.size > 0) {\n // A change just occurred while the success message was still being shown, just hide the success message\n clearTimeout(successTimeout.current);\n setIsSuccessShown(false);\n setWasSuccessShown(false);\n }\n },\n [pendingDataMap]\n );\n\n useEffect(function cleanupTimeout() {\n return () =>\n successTimeout.current ? clearTimeout(successTimeout.current) : undefined;\n }, []);\n\n const pendingRowCount = pendingDataMap.size;\n let commitIcon;\n if (isSaving) {\n commitIcon = <LoadingSpinner className=\"loading-spinner-vertical-align\" />;\n } else if (wasSuccessShown) {\n commitIcon = vsPass;\n }\n\n return (\n <IrisGridBottomBar\n className=\"pending-data-bottom-bar\"\n isShown={pendingRowCount > 0 || isSuccessShown || errorMessage != null}\n onEntering={onEntering}\n onEntered={onEntered}\n onExiting={onExiting}\n onExited={() => {\n setWasSuccessShown(false);\n if (onExited) {\n onExited();\n }\n }}\n >\n {errorMessage != null && errorMessage !== '' && (\n <div className=\"error-message\">\n <FontAwesomeIcon icon={vsWarning} />\n <span>{`${errorMessage}`}</span>\n </div>\n )}\n {(errorMessage == null || errorMessage === '') && (\n <div className=\"status-message\">\n {pendingRowCount > 0 && (\n <span>{`${pendingRowCount} row${\n pendingRowCount > 1 ? 's' : ''\n } pending`}</span>\n )}\n </div>\n )}\n <div className=\"buttons-container\">\n {!isSaving && !wasSuccessShown && (\n <Button kind=\"secondary\" onClick={onDiscard} tooltip={discardTooltip}>\n Discard\n </Button>\n )}\n <Button\n kind={wasSuccessShown ? 'success' : 'primary'}\n onClick={onSave}\n icon={commitIcon}\n disabled={isSaving || wasSuccessShown || errorMessage != null}\n tooltip={saveTooltip}\n >\n {isSaving && `Committing...`}\n {!isSaving && wasSuccessShown && `Success`}\n {!isSaving && !wasSuccessShown && `Commit`}\n </Button>\n </div>\n </IrisGridBottomBar>\n );\n}\n\nexport default PendingDataBottomBar;\n"],"mappings":"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","ignoreList":[]}
|
package/dist/ToastBottomBar.js
CHANGED
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
2
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
3
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
4
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
5
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
6
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
1
7
|
import React, { useCallback, useEffect, useRef, useState } from 'react';
|
|
2
8
|
import { usePrevious } from '@deephaven/react-hooks';
|
|
3
9
|
import IrisGridBottomBar from "./IrisGridBottomBar.js";
|
|
@@ -5,14 +11,16 @@ import "./PendingDataBottomBar.css";
|
|
|
5
11
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
6
12
|
var HIDE_TIMEOUT = 3000;
|
|
7
13
|
export function ToastBottomBar(_ref) {
|
|
8
|
-
var
|
|
9
|
-
children = null,
|
|
10
|
-
onEntering,
|
|
11
|
-
onEntered,
|
|
12
|
-
onExiting,
|
|
13
|
-
onExited
|
|
14
|
-
|
|
15
|
-
|
|
14
|
+
var _ref$children = _ref.children,
|
|
15
|
+
children = _ref$children === void 0 ? null : _ref$children,
|
|
16
|
+
onEntering = _ref.onEntering,
|
|
17
|
+
onEntered = _ref.onEntered,
|
|
18
|
+
onExiting = _ref.onExiting,
|
|
19
|
+
onExited = _ref.onExited;
|
|
20
|
+
var _useState = useState(false),
|
|
21
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
22
|
+
isShown = _useState2[0],
|
|
23
|
+
setIsShown = _useState2[1];
|
|
16
24
|
var timeout = useRef();
|
|
17
25
|
var prevChildren = usePrevious(children);
|
|
18
26
|
var startTimer = useCallback(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToastBottomBar.js","names":["React","useCallback","useEffect","useRef","useState","usePrevious","IrisGridBottomBar","jsx","_jsx","HIDE_TIMEOUT","ToastBottomBar","_ref","children","onEntering","onEntered","onExiting","onExited","isShown","setIsShown","timeout","prevChildren","startTimer","current","clearTimeout","setTimeout","undefined","className"],"sources":["../src/ToastBottomBar.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useRef, useState } from 'react';\nimport { usePrevious } from '@deephaven/react-hooks';\nimport IrisGridBottomBar from './IrisGridBottomBar';\nimport './PendingDataBottomBar.scss';\n\nconst HIDE_TIMEOUT = 3000;\n\nexport type ToastBottomBarProps = {\n children?: React.ReactNode;\n onEntering?: () => void;\n onEntered?: () => void;\n onExiting?: () => void;\n onExited?: () => void;\n};\n\nexport function ToastBottomBar({\n children = null,\n onEntering,\n onEntered,\n onExiting,\n onExited,\n}: ToastBottomBarProps): JSX.Element {\n const [isShown, setIsShown] = useState(false);\n const timeout = useRef<ReturnType<typeof setTimeout>>();\n const prevChildren = usePrevious(children);\n\n const startTimer = useCallback(() => {\n setIsShown(true);\n if (timeout.current) {\n clearTimeout(timeout.current);\n }\n timeout.current = setTimeout(() => {\n setIsShown(false);\n }, HIDE_TIMEOUT);\n }, [setIsShown, timeout]);\n\n useEffect(() => {\n if (prevChildren !== children && children != null) {\n startTimer();\n }\n }, [children, prevChildren, setIsShown, startTimer]);\n\n useEffect(\n () => () => (timeout.current ? clearTimeout(timeout.current) : undefined),\n []\n );\n\n return (\n <IrisGridBottomBar\n className=\"toast-bottom-bar\"\n isShown={isShown}\n onEntering={onEntering}\n onEntered={onEntered}\n onExiting={onExiting}\n onExited={onExited}\n >\n {children}\n </IrisGridBottomBar>\n );\n}\n\nexport default ToastBottomBar;\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AACvE,SAASC,WAAW,QAAQ,wBAAwB;AAAC,OAC9CC,iBAAiB;AAAA;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAGxB,IAAMC,YAAY,GAAG,IAAI;AAUzB,OAAO,SAASC,cAAcA,CAAAC,IAAA,EAMO;EAAA,
|
|
1
|
+
{"version":3,"file":"ToastBottomBar.js","names":["React","useCallback","useEffect","useRef","useState","usePrevious","IrisGridBottomBar","jsx","_jsx","HIDE_TIMEOUT","ToastBottomBar","_ref","_ref$children","children","onEntering","onEntered","onExiting","onExited","_useState","_useState2","_slicedToArray","isShown","setIsShown","timeout","prevChildren","startTimer","current","clearTimeout","setTimeout","undefined","className"],"sources":["../src/ToastBottomBar.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useRef, useState } from 'react';\nimport { usePrevious } from '@deephaven/react-hooks';\nimport IrisGridBottomBar from './IrisGridBottomBar';\nimport './PendingDataBottomBar.scss';\n\nconst HIDE_TIMEOUT = 3000;\n\nexport type ToastBottomBarProps = {\n children?: React.ReactNode;\n onEntering?: () => void;\n onEntered?: () => void;\n onExiting?: () => void;\n onExited?: () => void;\n};\n\nexport function ToastBottomBar({\n children = null,\n onEntering,\n onEntered,\n onExiting,\n onExited,\n}: ToastBottomBarProps): JSX.Element {\n const [isShown, setIsShown] = useState(false);\n const timeout = useRef<ReturnType<typeof setTimeout>>();\n const prevChildren = usePrevious(children);\n\n const startTimer = useCallback(() => {\n setIsShown(true);\n if (timeout.current) {\n clearTimeout(timeout.current);\n }\n timeout.current = setTimeout(() => {\n setIsShown(false);\n }, HIDE_TIMEOUT);\n }, [setIsShown, timeout]);\n\n useEffect(() => {\n if (prevChildren !== children && children != null) {\n startTimer();\n }\n }, [children, prevChildren, setIsShown, startTimer]);\n\n useEffect(\n () => () => (timeout.current ? clearTimeout(timeout.current) : undefined),\n []\n );\n\n return (\n <IrisGridBottomBar\n className=\"toast-bottom-bar\"\n isShown={isShown}\n onEntering={onEntering}\n onEntered={onEntered}\n onExiting={onExiting}\n onExited={onExited}\n >\n {children}\n </IrisGridBottomBar>\n );\n}\n\nexport default ToastBottomBar;\n"],"mappings":";;;;;;AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AACvE,SAASC,WAAW,QAAQ,wBAAwB;AAAC,OAC9CC,iBAAiB;AAAA;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAGxB,IAAMC,YAAY,GAAG,IAAI;AAUzB,OAAO,SAASC,cAAcA,CAAAC,IAAA,EAMO;EAAA,IAAAC,aAAA,GAAAD,IAAA,CALnCE,QAAQ;IAARA,QAAQ,GAAAD,aAAA,cAAG,IAAI,GAAAA,aAAA;IACfE,UAAU,GAAAH,IAAA,CAAVG,UAAU;IACVC,SAAS,GAAAJ,IAAA,CAATI,SAAS;IACTC,SAAS,GAAAL,IAAA,CAATK,SAAS;IACTC,QAAQ,GAAAN,IAAA,CAARM,QAAQ;EAER,IAAAC,SAAA,GAA8Bd,QAAQ,CAAC,KAAK,CAAC;IAAAe,UAAA,GAAAC,cAAA,CAAAF,SAAA;IAAtCG,OAAO,GAAAF,UAAA;IAAEG,UAAU,GAAAH,UAAA;EAC1B,IAAMI,OAAO,GAAGpB,MAAM,CAAgC,CAAC;EACvD,IAAMqB,YAAY,GAAGnB,WAAW,CAACQ,QAAQ,CAAC;EAE1C,IAAMY,UAAU,GAAGxB,WAAW,CAAC,MAAM;IACnCqB,UAAU,CAAC,IAAI,CAAC;IAChB,IAAIC,OAAO,CAACG,OAAO,EAAE;MACnBC,YAAY,CAACJ,OAAO,CAACG,OAAO,CAAC;IAC/B;IACAH,OAAO,CAACG,OAAO,GAAGE,UAAU,CAAC,MAAM;MACjCN,UAAU,CAAC,KAAK,CAAC;IACnB,CAAC,EAAEb,YAAY,CAAC;EAClB,CAAC,EAAE,CAACa,UAAU,EAAEC,OAAO,CAAC,CAAC;EAEzBrB,SAAS,CAAC,MAAM;IACd,IAAIsB,YAAY,KAAKX,QAAQ,IAAIA,QAAQ,IAAI,IAAI,EAAE;MACjDY,UAAU,CAAC,CAAC;IACd;EACF,CAAC,EAAE,CAACZ,QAAQ,EAAEW,YAAY,EAAEF,UAAU,EAAEG,UAAU,CAAC,CAAC;EAEpDvB,SAAS,CACP,MAAM,MAAOqB,OAAO,CAACG,OAAO,GAAGC,YAAY,CAACJ,OAAO,CAACG,OAAO,CAAC,GAAGG,SAAU,EACzE,EACF,CAAC;EAED,oBACErB,IAAA,CAACF,iBAAiB;IAChBwB,SAAS,EAAC,kBAAkB;IAC5BT,OAAO,EAAEA,OAAQ;IACjBP,UAAU,EAAEA,UAAW;IACvBC,SAAS,EAAEA,SAAU;IACrBC,SAAS,EAAEA,SAAU;IACrBC,QAAQ,EAAEA,QAAS;IAAAJ,QAAA,EAElBA;EAAQ,CACQ,CAAC;AAExB;AAEA,eAAeH,cAAc","ignoreList":[]}
|
|
@@ -23,26 +23,18 @@ class CustomFormatAction extends Component {
|
|
|
23
23
|
this.inputRef = /*#__PURE__*/React.createRef();
|
|
24
24
|
}
|
|
25
25
|
handleInputChange() {
|
|
26
|
-
var
|
|
27
|
-
onChange
|
|
28
|
-
} = this.props;
|
|
26
|
+
var onChange = this.props.onChange;
|
|
29
27
|
if (this.inputRef.current) {
|
|
30
28
|
onChange(this.inputRef.current.value);
|
|
31
29
|
}
|
|
32
30
|
}
|
|
33
31
|
closeContextMenu() {
|
|
34
|
-
var
|
|
35
|
-
|
|
36
|
-
} = this.props;
|
|
37
|
-
var {
|
|
38
|
-
closeMenu
|
|
39
|
-
} = forwardedProps;
|
|
32
|
+
var forwardedProps = this.props.forwardedProps;
|
|
33
|
+
var closeMenu = forwardedProps.closeMenu;
|
|
40
34
|
closeMenu(true);
|
|
41
35
|
}
|
|
42
36
|
revertToDefault() {
|
|
43
|
-
var
|
|
44
|
-
onChange
|
|
45
|
-
} = this.props;
|
|
37
|
+
var onChange = this.props.onChange;
|
|
46
38
|
onChange(null);
|
|
47
39
|
}
|
|
48
40
|
returnFocusToContextMenu() {
|
|
@@ -75,18 +67,13 @@ class CustomFormatAction extends Component {
|
|
|
75
67
|
}
|
|
76
68
|
}
|
|
77
69
|
render() {
|
|
78
|
-
var
|
|
79
|
-
formatString,
|
|
80
|
-
forwardedProps,
|
|
81
|
-
placeholder,
|
|
82
|
-
title
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
menuItem: {
|
|
86
|
-
description
|
|
87
|
-
},
|
|
88
|
-
iconElement
|
|
89
|
-
} = forwardedProps;
|
|
70
|
+
var _this$props = this.props,
|
|
71
|
+
formatString = _this$props.formatString,
|
|
72
|
+
forwardedProps = _this$props.forwardedProps,
|
|
73
|
+
placeholder = _this$props.placeholder,
|
|
74
|
+
title = _this$props.title;
|
|
75
|
+
var description = forwardedProps.menuItem.description,
|
|
76
|
+
iconElement = forwardedProps.iconElement;
|
|
90
77
|
return /*#__PURE__*/_jsxs("div", {
|
|
91
78
|
className: "form-group flex-grow mb-0",
|
|
92
79
|
children: [/*#__PURE__*/_jsxs("div", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CustomFormatAction.js","names":["React","Component","Tooltip","DOMUtils","jsx","_jsx","jsxs","_jsxs","CustomFormatAction","constructor","props","arguments","length","undefined","defaultProps","_defineProperty","handleInputChange","bind","handleKeyDown","inputRef","createRef","onChange","current","value","closeContextMenu","forwardedProps","closeMenu","revertToDefault","returnFocusToContextMenu","parentContextMenu","getClosestByClassName","HTMLElement","focus","event","key","stopPropagation","render","formatString","placeholder","title","
|
|
1
|
+
{"version":3,"file":"CustomFormatAction.js","names":["React","Component","Tooltip","DOMUtils","jsx","_jsx","jsxs","_jsxs","CustomFormatAction","constructor","props","arguments","length","undefined","defaultProps","_defineProperty","handleInputChange","bind","handleKeyDown","inputRef","createRef","onChange","current","value","closeContextMenu","forwardedProps","closeMenu","revertToDefault","returnFocusToContextMenu","parentContextMenu","getClosestByClassName","HTMLElement","focus","event","key","stopPropagation","render","_this$props","formatString","placeholder","title","description","menuItem","iconElement","className","children","htmlFor","id","type","defaultValue","ref","onKeyDown","autoComplete","autoCorrect","autoCapitalize","spellCheck","focusInput"],"sources":["../../src/format-context-menus/CustomFormatAction.tsx"],"sourcesContent":["import React, { Component } from 'react';\nimport { Tooltip } from '@deephaven/components';\nimport { DOMUtils } from '@deephaven/utils';\n\nimport './CustomFormatAction.scss';\n\ntype CustomFormatActionProps = typeof CustomFormatAction.defaultProps & {\n forwardedProps: {\n menuItem: {\n title?: string;\n description?: string;\n };\n };\n};\n\n/**\n * Renders menuElement option with custom format input for use in formatting context menus\n *\n * TODO:\n * - capture focus when this menu action is selected via ArrowUp/ArrowDown keys\n * - dynamically update selected menu item when clicking on the input box\n */\nclass CustomFormatAction extends Component<CustomFormatActionProps> {\n static defaultProps = {\n formatString: '',\n forwardedProps: {\n menuItem: {},\n closeMenu(focusInput: boolean): void {\n // no-op\n },\n iconElement: null,\n },\n placeholder: '',\n title: '',\n onChange(value: string | null): void {\n // no-op\n },\n };\n\n constructor(\n props: CustomFormatActionProps = CustomFormatAction.defaultProps\n ) {\n super(props);\n\n this.handleInputChange = this.handleInputChange.bind(this);\n this.handleKeyDown = this.handleKeyDown.bind(this);\n\n this.inputRef = React.createRef();\n }\n\n inputRef: React.RefObject<HTMLInputElement>;\n\n handleInputChange(): void {\n const { onChange } = this.props;\n if (this.inputRef.current) {\n onChange(this.inputRef.current.value);\n }\n }\n\n closeContextMenu(): void {\n const { forwardedProps } = this.props;\n const { closeMenu } = forwardedProps;\n closeMenu(true);\n }\n\n revertToDefault(): void {\n const { onChange } = this.props;\n onChange(null);\n }\n\n returnFocusToContextMenu(): void {\n const parentContextMenu = DOMUtils.getClosestByClassName(\n this.inputRef.current,\n 'context-menu-container'\n );\n if (parentContextMenu instanceof HTMLElement) {\n parentContextMenu.focus();\n }\n }\n\n handleKeyDown(event: React.KeyboardEvent<HTMLInputElement>): void {\n switch (event.key) {\n case 'Enter':\n event.stopPropagation();\n this.closeContextMenu();\n break;\n case 'Escape':\n event.stopPropagation();\n this.revertToDefault();\n this.closeContextMenu();\n break;\n case 'ArrowRight':\n case 'ArrowLeft':\n event.stopPropagation();\n break;\n case 'ArrowUp':\n case 'ArrowDown':\n this.returnFocusToContextMenu();\n break;\n default:\n event.stopPropagation();\n }\n }\n\n render(): JSX.Element {\n const { formatString, forwardedProps, placeholder, title } = this.props;\n const {\n menuItem: { description },\n iconElement,\n } = forwardedProps;\n return (\n <div className=\"form-group flex-grow mb-0\">\n <div className=\"custom-format-title\">\n <span className=\"icon\">{iconElement}</span>\n <label className=\"title mb-0\" htmlFor=\"custom-format-input\">\n {title}\n {description != null && <Tooltip>{description}</Tooltip>}\n </label>\n </div>\n <div className=\"pl-2 pr-2 pb-2\">\n <input\n id=\"custom-format-input\"\n className=\"form-control text-right mb-0\"\n type=\"text\"\n defaultValue={formatString}\n ref={this.inputRef}\n placeholder={placeholder}\n onKeyDown={this.handleKeyDown}\n onChange={this.handleInputChange}\n autoComplete=\"off\"\n autoCorrect=\"off\"\n autoCapitalize=\"off\"\n spellCheck=\"false\"\n />\n </div>\n </div>\n );\n }\n}\n\nexport default CustomFormatAction;\n"],"mappings":"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","ignoreList":[]}
|
package/dist/index.d.ts
CHANGED
|
@@ -14,6 +14,7 @@ export type { default as IrisGridType } from './IrisGrid';
|
|
|
14
14
|
export { default as SHORTCUTS } from './IrisGridShortcuts';
|
|
15
15
|
export { default as IrisGridModel } from './IrisGridModel';
|
|
16
16
|
export * from './IrisGridModel';
|
|
17
|
+
export * from './IrisGridModelWidgetProps';
|
|
17
18
|
export { default as IrisGridTableModel } from './IrisGridTableModel';
|
|
18
19
|
export * from './IrisGridTableModel';
|
|
19
20
|
export { default as IrisGridPartitionedTableModel } from './IrisGridPartitionedTableModel';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAEtC,eAAe,QAAQ,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,CAAC;AACpB,cAAc,0BAA0B,CAAC;AACzC,cAAc,WAAW,CAAC;AAC1B,cAAc,yBAAyB,CAAC;AACxC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACnE,cAAc,wBAAwB,CAAC;AACvC,cAAc,YAAY,CAAC;AAC3B,YAAY,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,cAAc,iBAAiB,CAAC;AAChC,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrE,cAAc,sBAAsB,CAAC;AACrC,OAAO,EAAE,OAAO,IAAI,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAC3F,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,EAAE,OAAO,IAAI,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AACrF,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAC7C,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAC7D,YAAY,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,cAAc,yBAAyB,CAAC;AACxC,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,cAAc,iBAAiB,CAAC;AAChC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,6BAA6B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAEtC,eAAe,QAAQ,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,CAAC;AACpB,cAAc,0BAA0B,CAAC;AACzC,cAAc,WAAW,CAAC;AAC1B,cAAc,yBAAyB,CAAC;AACxC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACnE,cAAc,wBAAwB,CAAC;AACvC,cAAc,YAAY,CAAC;AAC3B,YAAY,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,cAAc,iBAAiB,CAAC;AAChC,cAAc,4BAA4B,CAAC;AAC3C,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrE,cAAc,sBAAsB,CAAC;AACrC,OAAO,EAAE,OAAO,IAAI,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAC3F,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,EAAE,OAAO,IAAI,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AACrF,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAC7C,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAC7D,YAAY,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,cAAc,yBAAyB,CAAC;AACxC,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,cAAc,iBAAiB,CAAC;AAChC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,6BAA6B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -13,6 +13,7 @@ export * from "./IrisGrid.js";
|
|
|
13
13
|
export { default as SHORTCUTS } from "./IrisGridShortcuts.js";
|
|
14
14
|
export { default as IrisGridModel } from "./IrisGridModel.js";
|
|
15
15
|
export * from "./IrisGridModel.js";
|
|
16
|
+
export * from "./IrisGridModelWidgetProps.js";
|
|
16
17
|
export { default as IrisGridTableModel } from "./IrisGridTableModel.js";
|
|
17
18
|
export * from "./IrisGridTableModel.js";
|
|
18
19
|
export { default as IrisGridPartitionedTableModel } from "./IrisGridPartitionedTableModel.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["IrisGrid","default","ColumnHeaderGroup","SHORTCUTS","IrisGridModel","IrisGridTableModel","IrisGridPartitionedTableModel","IrisGridTreeTableModel","IrisGridTableModelTemplate","IrisGridModelFactory","createDefaultIrisGridTheme","IrisGridTestUtils","IrisGridUtils","IrisGridCellRendererUtils"],"sources":["../src/index.ts"],"sourcesContent":["import IrisGrid from './LazyIrisGrid';\n\nexport default IrisGrid;\nexport { IrisGrid };\nexport * from './RemoteComponentModules';\nexport * from './sidebar';\nexport * from './AdvancedFilterCreator';\nexport * from './CommonTypes';\nexport * from './mousehandlers';\nexport * from './ColumnHeaderGroup';\nexport { default as ColumnHeaderGroup } from './ColumnHeaderGroup';\nexport * from './PartitionedGridModel';\nexport * from './IrisGrid';\nexport type { default as IrisGridType } from './IrisGrid';\nexport { default as SHORTCUTS } from './IrisGridShortcuts';\nexport { default as IrisGridModel } from './IrisGridModel';\nexport * from './IrisGridModel';\nexport { default as IrisGridTableModel } from './IrisGridTableModel';\nexport * from './IrisGridTableModel';\nexport { default as IrisGridPartitionedTableModel } from './IrisGridPartitionedTableModel';\nexport { default as IrisGridTreeTableModel } from './IrisGridTreeTableModel';\nexport { default as IrisGridTableModelTemplate } from './IrisGridTableModelTemplate';\nexport * from './IrisGridTreeTableModel';\nexport * from './IrisGridTableModelTemplate';\nexport { default as IrisGridModelFactory } from './IrisGridModelFactory';\nexport { createDefaultIrisGridTheme } from './IrisGridTheme';\nexport type { IrisGridThemeType } from './IrisGridTheme';\nexport * from './IrisGridThemeProvider';\nexport { default as IrisGridTestUtils } from './IrisGridTestUtils';\nexport { default as IrisGridUtils } from './IrisGridUtils';\nexport * from './IrisGridUtils';\nexport * from './IrisGridMetricCalculator';\nexport * from './IrisGridRenderer';\nexport * from './IrisGridCacheUtils';\nexport { default as IrisGridCellRendererUtils } from './IrisGridCellRendererUtils';\n"],"mappings":"OAAOA,QAAQ;AAEf,eAAeA,QAAQ;AACvB,SAASA,QAAQ;AAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,SAOXC,OAAO,IAAIC,iBAAiB;AAAA;AAAA;AAAA,SAI5BD,OAAO,IAAIE,SAAS;AAAA,SACpBF,OAAO,IAAIG,aAAa;AAAA;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","names":["IrisGrid","default","ColumnHeaderGroup","SHORTCUTS","IrisGridModel","IrisGridTableModel","IrisGridPartitionedTableModel","IrisGridTreeTableModel","IrisGridTableModelTemplate","IrisGridModelFactory","createDefaultIrisGridTheme","IrisGridTestUtils","IrisGridUtils","IrisGridCellRendererUtils"],"sources":["../src/index.ts"],"sourcesContent":["import IrisGrid from './LazyIrisGrid';\n\nexport default IrisGrid;\nexport { IrisGrid };\nexport * from './RemoteComponentModules';\nexport * from './sidebar';\nexport * from './AdvancedFilterCreator';\nexport * from './CommonTypes';\nexport * from './mousehandlers';\nexport * from './ColumnHeaderGroup';\nexport { default as ColumnHeaderGroup } from './ColumnHeaderGroup';\nexport * from './PartitionedGridModel';\nexport * from './IrisGrid';\nexport type { default as IrisGridType } from './IrisGrid';\nexport { default as SHORTCUTS } from './IrisGridShortcuts';\nexport { default as IrisGridModel } from './IrisGridModel';\nexport * from './IrisGridModel';\nexport * from './IrisGridModelWidgetProps';\nexport { default as IrisGridTableModel } from './IrisGridTableModel';\nexport * from './IrisGridTableModel';\nexport { default as IrisGridPartitionedTableModel } from './IrisGridPartitionedTableModel';\nexport { default as IrisGridTreeTableModel } from './IrisGridTreeTableModel';\nexport { default as IrisGridTableModelTemplate } from './IrisGridTableModelTemplate';\nexport * from './IrisGridTreeTableModel';\nexport * from './IrisGridTableModelTemplate';\nexport { default as IrisGridModelFactory } from './IrisGridModelFactory';\nexport { createDefaultIrisGridTheme } from './IrisGridTheme';\nexport type { IrisGridThemeType } from './IrisGridTheme';\nexport * from './IrisGridThemeProvider';\nexport { default as IrisGridTestUtils } from './IrisGridTestUtils';\nexport { default as IrisGridUtils } from './IrisGridUtils';\nexport * from './IrisGridUtils';\nexport * from './IrisGridMetricCalculator';\nexport * from './IrisGridRenderer';\nexport * from './IrisGridCacheUtils';\nexport { default as IrisGridCellRendererUtils } from './IrisGridCellRendererUtils';\n"],"mappings":"OAAOA,QAAQ;AAEf,eAAeA,QAAQ;AACvB,SAASA,QAAQ;AAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,SAOXC,OAAO,IAAIC,iBAAiB;AAAA;AAAA;AAAA,SAI5BD,OAAO,IAAIE,SAAS;AAAA,SACpBF,OAAO,IAAIG,aAAa;AAAA;AAAA;AAAA,SAGxBH,OAAO,IAAII,kBAAkB;AAAA;AAAA,SAE7BJ,OAAO,IAAIK,6BAA6B;AAAA,SACxCL,OAAO,IAAIM,sBAAsB;AAAA,SACjCN,OAAO,IAAIO,0BAA0B;AAAA;AAAA;AAAA,SAGrCP,OAAO,IAAIQ,oBAAoB;AAAA,SAC/BC,0BAA0B;AAAA;AAAA,SAG1BT,OAAO,IAAIU,iBAAiB;AAAA,SAC5BV,OAAO,IAAIW,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA,SAKxBX,OAAO,IAAIY,yBAAyB","ignoreList":[]}
|
|
@@ -12,10 +12,9 @@ class CopyCellKeyHandler extends KeyHandler {
|
|
|
12
12
|
}
|
|
13
13
|
onDown(event, grid) {
|
|
14
14
|
if (event.altKey && !ContextActionUtils.isModifierKeyDown(event) && !event.shiftKey) {
|
|
15
|
-
var
|
|
16
|
-
mouseX,
|
|
17
|
-
mouseY
|
|
18
|
-
} = grid.state;
|
|
15
|
+
var _grid$state = grid.state,
|
|
16
|
+
mouseX = _grid$state.mouseX,
|
|
17
|
+
mouseY = _grid$state.mouseY;
|
|
19
18
|
if (mouseX == null || mouseY == null) {
|
|
20
19
|
return false;
|
|
21
20
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CopyCellKeyHandler.js","names":["KeyHandler","ContextActionUtils","CopyCellKeyHandler","constructor","irisGrid","_defineProperty","cursor","onDown","event","grid","altKey","isModifierKeyDown","shiftKey","
|
|
1
|
+
{"version":3,"file":"CopyCellKeyHandler.js","names":["KeyHandler","ContextActionUtils","CopyCellKeyHandler","constructor","irisGrid","_defineProperty","cursor","onDown","event","grid","altKey","isModifierKeyDown","shiftKey","_grid$state","state","mouseX","mouseY","gridPoint","getGridPointFromXY","column","row","props","copyCursor","onUp"],"sources":["../../src/key-handlers/CopyCellKeyHandler.ts"],"sourcesContent":["import { type KeyboardEvent } from 'react';\nimport { KeyHandler } from '@deephaven/grid';\nimport { ContextActionUtils } from '@deephaven/components';\nimport type { Grid } from '@deephaven/grid';\nimport type IrisGrid from '../IrisGrid';\n\nclass CopyCellKeyHandler extends KeyHandler {\n private irisGrid: IrisGrid;\n\n constructor(irisGrid: IrisGrid) {\n super();\n\n this.irisGrid = irisGrid;\n this.cursor = null;\n }\n\n onDown(event: KeyboardEvent, grid: Grid): boolean {\n if (\n event.altKey &&\n !ContextActionUtils.isModifierKeyDown(event) &&\n !event.shiftKey\n ) {\n const { mouseX, mouseY } = grid.state;\n if (mouseX == null || mouseY == null) {\n return false;\n }\n const gridPoint = grid.getGridPointFromXY(mouseX, mouseY);\n if (gridPoint.column != null && gridPoint.row != null) {\n this.cursor = this.irisGrid.props.copyCursor;\n return true;\n }\n }\n return false;\n }\n\n onUp(event: KeyboardEvent, grid: Grid): boolean {\n if (this.cursor === this.irisGrid.props.copyCursor) {\n this.cursor = null;\n return true;\n }\n return false;\n }\n}\n\nexport default CopyCellKeyHandler;\n"],"mappings":";;;AACA,SAASA,UAAU,QAAQ,iBAAiB;AAC5C,SAASC,kBAAkB,QAAQ,uBAAuB;AAI1D,MAAMC,kBAAkB,SAASF,UAAU,CAAC;EAG1CG,WAAWA,CAACC,QAAkB,EAAE;IAC9B,KAAK,CAAC,CAAC;IAACC,eAAA;IAER,IAAI,CAACD,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACE,MAAM,GAAG,IAAI;EACpB;EAEAC,MAAMA,CAACC,KAAoB,EAAEC,IAAU,EAAW;IAChD,IACED,KAAK,CAACE,MAAM,IACZ,CAACT,kBAAkB,CAACU,iBAAiB,CAACH,KAAK,CAAC,IAC5C,CAACA,KAAK,CAACI,QAAQ,EACf;MACA,IAAAC,WAAA,GAA2BJ,IAAI,CAACK,KAAK;QAA7BC,MAAM,GAAAF,WAAA,CAANE,MAAM;QAAEC,MAAM,GAAAH,WAAA,CAANG,MAAM;MACtB,IAAID,MAAM,IAAI,IAAI,IAAIC,MAAM,IAAI,IAAI,EAAE;QACpC,OAAO,KAAK;MACd;MACA,IAAMC,SAAS,GAAGR,IAAI,CAACS,kBAAkB,CAACH,MAAM,EAAEC,MAAM,CAAC;MACzD,IAAIC,SAAS,CAACE,MAAM,IAAI,IAAI,IAAIF,SAAS,CAACG,GAAG,IAAI,IAAI,EAAE;QACrD,IAAI,CAACd,MAAM,GAAG,IAAI,CAACF,QAAQ,CAACiB,KAAK,CAACC,UAAU;QAC5C,OAAO,IAAI;MACb;IACF;IACA,OAAO,KAAK;EACd;EAEAC,IAAIA,CAACf,KAAoB,EAAEC,IAAU,EAAW;IAC9C,IAAI,IAAI,CAACH,MAAM,KAAK,IAAI,CAACF,QAAQ,CAACiB,KAAK,CAACC,UAAU,EAAE;MAClD,IAAI,CAAChB,MAAM,GAAG,IAAI;MAClB,OAAO,IAAI;IACb;IACA,OAAO,KAAK;EACd;AACF;AAEA,eAAeJ,kBAAkB","ignoreList":[]}
|
|
@@ -13,9 +13,7 @@ class CopyKeyHandler extends KeyHandler {
|
|
|
13
13
|
this.irisGrid = irisGrid;
|
|
14
14
|
}
|
|
15
15
|
onDown(event) {
|
|
16
|
-
var
|
|
17
|
-
selectedRanges
|
|
18
|
-
} = this.irisGrid.state;
|
|
16
|
+
var selectedRanges = this.irisGrid.state.selectedRanges;
|
|
19
17
|
if (event.key === 'c' && ContextActionUtils.isModifierKeyDown(event)) {
|
|
20
18
|
if (IrisGridUtils.isValidSnapshotRanges(selectedRanges)) {
|
|
21
19
|
this.irisGrid.copyRanges(selectedRanges);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CopyKeyHandler.js","names":["ContextActionUtils","KeyHandler","IrisGridUtils","CopyKeyHandler","constructor","irisGrid","_defineProperty","onDown","event","selectedRanges","state","key","isModifierKeyDown","isValidSnapshotRanges","copyRanges"],"sources":["../../src/key-handlers/CopyKeyHandler.ts"],"sourcesContent":["/* eslint class-methods-use-this: \"off\" */\nimport { type KeyboardEvent } from 'react';\nimport { ContextActionUtils } from '@deephaven/components';\nimport { KeyHandler } from '@deephaven/grid';\nimport type IrisGrid from '../IrisGrid';\nimport IrisGridUtils from '../IrisGridUtils';\n\nclass CopyKeyHandler extends KeyHandler {\n private irisGrid: IrisGrid;\n\n constructor(irisGrid: IrisGrid) {\n super();\n\n this.irisGrid = irisGrid;\n }\n\n onDown(event: KeyboardEvent): boolean {\n const { selectedRanges } = this.irisGrid.state;\n if (event.key === 'c' && ContextActionUtils.isModifierKeyDown(event)) {\n if (IrisGridUtils.isValidSnapshotRanges(selectedRanges)) {\n this.irisGrid.copyRanges(selectedRanges);\n } else {\n this.irisGrid.copyRanges(\n selectedRanges,\n false,\n false,\n 'Invalid copy ranges'\n );\n }\n return true;\n }\n return false;\n }\n}\n\nexport default CopyKeyHandler;\n"],"mappings":";;;AAAA;;AAEA,SAASA,kBAAkB,QAAQ,uBAAuB;AAC1D,SAASC,UAAU,QAAQ,iBAAiB;AAAC,OAEtCC,aAAa;AAEpB,MAAMC,cAAc,SAASF,UAAU,CAAC;EAGtCG,WAAWA,CAACC,QAAkB,EAAE;IAC9B,KAAK,CAAC,CAAC;IAACC,eAAA;IAER,IAAI,CAACD,QAAQ,GAAGA,QAAQ;EAC1B;EAEAE,MAAMA,CAACC,KAAoB,EAAW;IACpC,
|
|
1
|
+
{"version":3,"file":"CopyKeyHandler.js","names":["ContextActionUtils","KeyHandler","IrisGridUtils","CopyKeyHandler","constructor","irisGrid","_defineProperty","onDown","event","selectedRanges","state","key","isModifierKeyDown","isValidSnapshotRanges","copyRanges"],"sources":["../../src/key-handlers/CopyKeyHandler.ts"],"sourcesContent":["/* eslint class-methods-use-this: \"off\" */\nimport { type KeyboardEvent } from 'react';\nimport { ContextActionUtils } from '@deephaven/components';\nimport { KeyHandler } from '@deephaven/grid';\nimport type IrisGrid from '../IrisGrid';\nimport IrisGridUtils from '../IrisGridUtils';\n\nclass CopyKeyHandler extends KeyHandler {\n private irisGrid: IrisGrid;\n\n constructor(irisGrid: IrisGrid) {\n super();\n\n this.irisGrid = irisGrid;\n }\n\n onDown(event: KeyboardEvent): boolean {\n const { selectedRanges } = this.irisGrid.state;\n if (event.key === 'c' && ContextActionUtils.isModifierKeyDown(event)) {\n if (IrisGridUtils.isValidSnapshotRanges(selectedRanges)) {\n this.irisGrid.copyRanges(selectedRanges);\n } else {\n this.irisGrid.copyRanges(\n selectedRanges,\n false,\n false,\n 'Invalid copy ranges'\n );\n }\n return true;\n }\n return false;\n }\n}\n\nexport default CopyKeyHandler;\n"],"mappings":";;;AAAA;;AAEA,SAASA,kBAAkB,QAAQ,uBAAuB;AAC1D,SAASC,UAAU,QAAQ,iBAAiB;AAAC,OAEtCC,aAAa;AAEpB,MAAMC,cAAc,SAASF,UAAU,CAAC;EAGtCG,WAAWA,CAACC,QAAkB,EAAE;IAC9B,KAAK,CAAC,CAAC;IAACC,eAAA;IAER,IAAI,CAACD,QAAQ,GAAGA,QAAQ;EAC1B;EAEAE,MAAMA,CAACC,KAAoB,EAAW;IACpC,IAAQC,cAAc,GAAK,IAAI,CAACJ,QAAQ,CAACK,KAAK,CAAtCD,cAAc;IACtB,IAAID,KAAK,CAACG,GAAG,KAAK,GAAG,IAAIX,kBAAkB,CAACY,iBAAiB,CAACJ,KAAK,CAAC,EAAE;MACpE,IAAIN,aAAa,CAACW,qBAAqB,CAACJ,cAAc,CAAC,EAAE;QACvD,IAAI,CAACJ,QAAQ,CAACS,UAAU,CAACL,cAAc,CAAC;MAC1C,CAAC,MAAM;QACL,IAAI,CAACJ,QAAQ,CAACS,UAAU,CACtBL,cAAc,EACd,KAAK,EACL,KAAK,EACL,qBACF,CAAC;MACH;MACA,OAAO,IAAI;IACb;IACA,OAAO,KAAK;EACd;AACF;AAEA,eAAeN,cAAc","ignoreList":[]}
|
|
@@ -14,9 +14,7 @@ class ReverseKeyHandler extends KeyHandler {
|
|
|
14
14
|
if (!this.irisGrid.isReversible()) {
|
|
15
15
|
return false;
|
|
16
16
|
}
|
|
17
|
-
var
|
|
18
|
-
reverse
|
|
19
|
-
} = this.irisGrid.state;
|
|
17
|
+
var reverse = this.irisGrid.state.reverse;
|
|
20
18
|
this.irisGrid.reverse(!reverse);
|
|
21
19
|
return true;
|
|
22
20
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReverseKeyHandler.js","names":["KeyHandler","IrisGridShortcuts","ReverseKeyHandler","constructor","irisGrid","_defineProperty","onDown","event","TABLE","REVERSE","matchesEvent","isReversible","reverse","state"],"sources":["../../src/key-handlers/ReverseKeyHandler.ts"],"sourcesContent":["import { type KeyboardEvent } from 'react';\nimport { KeyHandler } from '@deephaven/grid';\nimport type IrisGrid from '../IrisGrid';\nimport IrisGridShortcuts from '../IrisGridShortcuts';\n\nclass ReverseKeyHandler extends KeyHandler {\n private irisGrid: IrisGrid;\n\n constructor(irisGrid: IrisGrid) {\n super();\n\n this.irisGrid = irisGrid;\n }\n\n onDown(event: KeyboardEvent): boolean {\n if (IrisGridShortcuts.TABLE.REVERSE.matchesEvent(event)) {\n if (!this.irisGrid.isReversible()) {\n return false;\n }\n const { reverse } = this.irisGrid.state;\n this.irisGrid.reverse(!reverse);\n return true;\n }\n return false;\n }\n}\n\nexport default ReverseKeyHandler;\n"],"mappings":";;;AACA,SAASA,UAAU,QAAQ,iBAAiB;AAAC,OAEtCC,iBAAiB;AAExB,MAAMC,iBAAiB,SAASF,UAAU,CAAC;EAGzCG,WAAWA,CAACC,QAAkB,EAAE;IAC9B,KAAK,CAAC,CAAC;IAACC,eAAA;IAER,IAAI,CAACD,QAAQ,GAAGA,QAAQ;EAC1B;EAEAE,MAAMA,CAACC,KAAoB,EAAW;IACpC,IAAIN,iBAAiB,CAACO,KAAK,CAACC,OAAO,CAACC,YAAY,CAACH,KAAK,CAAC,EAAE;MACvD,IAAI,CAAC,IAAI,CAACH,QAAQ,CAACO,YAAY,CAAC,CAAC,EAAE;QACjC,OAAO,KAAK;MACd;MACA,
|
|
1
|
+
{"version":3,"file":"ReverseKeyHandler.js","names":["KeyHandler","IrisGridShortcuts","ReverseKeyHandler","constructor","irisGrid","_defineProperty","onDown","event","TABLE","REVERSE","matchesEvent","isReversible","reverse","state"],"sources":["../../src/key-handlers/ReverseKeyHandler.ts"],"sourcesContent":["import { type KeyboardEvent } from 'react';\nimport { KeyHandler } from '@deephaven/grid';\nimport type IrisGrid from '../IrisGrid';\nimport IrisGridShortcuts from '../IrisGridShortcuts';\n\nclass ReverseKeyHandler extends KeyHandler {\n private irisGrid: IrisGrid;\n\n constructor(irisGrid: IrisGrid) {\n super();\n\n this.irisGrid = irisGrid;\n }\n\n onDown(event: KeyboardEvent): boolean {\n if (IrisGridShortcuts.TABLE.REVERSE.matchesEvent(event)) {\n if (!this.irisGrid.isReversible()) {\n return false;\n }\n const { reverse } = this.irisGrid.state;\n this.irisGrid.reverse(!reverse);\n return true;\n }\n return false;\n }\n}\n\nexport default ReverseKeyHandler;\n"],"mappings":";;;AACA,SAASA,UAAU,QAAQ,iBAAiB;AAAC,OAEtCC,iBAAiB;AAExB,MAAMC,iBAAiB,SAASF,UAAU,CAAC;EAGzCG,WAAWA,CAACC,QAAkB,EAAE;IAC9B,KAAK,CAAC,CAAC;IAACC,eAAA;IAER,IAAI,CAACD,QAAQ,GAAGA,QAAQ;EAC1B;EAEAE,MAAMA,CAACC,KAAoB,EAAW;IACpC,IAAIN,iBAAiB,CAACO,KAAK,CAACC,OAAO,CAACC,YAAY,CAACH,KAAK,CAAC,EAAE;MACvD,IAAI,CAAC,IAAI,CAACH,QAAQ,CAACO,YAAY,CAAC,CAAC,EAAE;QACjC,OAAO,KAAK;MACd;MACA,IAAQC,OAAO,GAAK,IAAI,CAACR,QAAQ,CAACS,KAAK,CAA/BD,OAAO;MACf,IAAI,CAACR,QAAQ,CAACQ,OAAO,CAAC,CAACA,OAAO,CAAC;MAC/B,OAAO,IAAI;IACb;IACA,OAAO,KAAK;EACd;AACF;AAEA,eAAeV,iBAAiB","ignoreList":[]}
|
|
@@ -30,33 +30,24 @@ class IrisGridCellOverflowMouseHandler extends GridMouseHandler {
|
|
|
30
30
|
return false;
|
|
31
31
|
}
|
|
32
32
|
getButtonPosition(_ref) {
|
|
33
|
-
var
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
row
|
|
38
|
-
} = _ref;
|
|
33
|
+
var x = _ref.x,
|
|
34
|
+
y = _ref.y,
|
|
35
|
+
column = _ref.column,
|
|
36
|
+
row = _ref.row;
|
|
39
37
|
if (column == null || row == null) {
|
|
40
38
|
return null;
|
|
41
39
|
}
|
|
42
|
-
var
|
|
43
|
-
renderer,
|
|
44
|
-
grid,
|
|
45
|
-
state,
|
|
46
|
-
props
|
|
47
|
-
} = this.irisGrid;
|
|
40
|
+
var _this$irisGrid = this.irisGrid,
|
|
41
|
+
renderer = _this$irisGrid.renderer,
|
|
42
|
+
grid = _this$irisGrid.grid,
|
|
43
|
+
state = _this$irisGrid.state,
|
|
44
|
+
props = _this$irisGrid.props;
|
|
48
45
|
if (!grid) {
|
|
49
46
|
return null;
|
|
50
47
|
}
|
|
51
|
-
var
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
var {
|
|
55
|
-
model
|
|
56
|
-
} = props;
|
|
57
|
-
var {
|
|
58
|
-
canvasContext: context
|
|
59
|
-
} = grid;
|
|
48
|
+
var metrics = state.metrics;
|
|
49
|
+
var model = props.model;
|
|
50
|
+
var context = grid.canvasContext;
|
|
60
51
|
var theme = this.irisGrid.getTheme();
|
|
61
52
|
var rendererState = {
|
|
62
53
|
context,
|
|
@@ -66,12 +57,11 @@ class IrisGridCellOverflowMouseHandler extends GridMouseHandler {
|
|
|
66
57
|
model,
|
|
67
58
|
theme
|
|
68
59
|
};
|
|
69
|
-
var
|
|
70
|
-
left,
|
|
71
|
-
top,
|
|
72
|
-
width,
|
|
73
|
-
height
|
|
74
|
-
} = renderer.getCellOverflowButtonPosition(rendererState);
|
|
60
|
+
var _renderer$getCellOver = renderer.getCellOverflowButtonPosition(rendererState),
|
|
61
|
+
left = _renderer$getCellOver.left,
|
|
62
|
+
top = _renderer$getCellOver.top,
|
|
63
|
+
width = _renderer$getCellOver.width,
|
|
64
|
+
height = _renderer$getCellOver.height;
|
|
75
65
|
if (left == null || width == null || top == null || height == null) {
|
|
76
66
|
return null;
|
|
77
67
|
}
|
|
@@ -84,37 +74,27 @@ class IrisGridCellOverflowMouseHandler extends GridMouseHandler {
|
|
|
84
74
|
}
|
|
85
75
|
isHoveringOverflowButton(point) {
|
|
86
76
|
var _this$getButtonPositi;
|
|
87
|
-
var
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
width,
|
|
95
|
-
height
|
|
96
|
-
} = (_this$getButtonPositi = this.getButtonPosition(point)) !== null && _this$getButtonPositi !== void 0 ? _this$getButtonPositi : {};
|
|
77
|
+
var x = point.x,
|
|
78
|
+
y = point.y;
|
|
79
|
+
var _ref2 = (_this$getButtonPositi = this.getButtonPosition(point)) !== null && _this$getButtonPositi !== void 0 ? _this$getButtonPositi : {},
|
|
80
|
+
left = _ref2.left,
|
|
81
|
+
top = _ref2.top,
|
|
82
|
+
width = _ref2.width,
|
|
83
|
+
height = _ref2.height;
|
|
97
84
|
if (left == null || width == null || top == null || height == null) {
|
|
98
85
|
return false;
|
|
99
86
|
}
|
|
100
|
-
var
|
|
101
|
-
renderer,
|
|
102
|
-
grid,
|
|
103
|
-
state,
|
|
104
|
-
props
|
|
105
|
-
} = this.irisGrid;
|
|
87
|
+
var _this$irisGrid2 = this.irisGrid,
|
|
88
|
+
renderer = _this$irisGrid2.renderer,
|
|
89
|
+
grid = _this$irisGrid2.grid,
|
|
90
|
+
state = _this$irisGrid2.state,
|
|
91
|
+
props = _this$irisGrid2.props;
|
|
106
92
|
if (!grid) {
|
|
107
93
|
return false;
|
|
108
94
|
}
|
|
109
|
-
var
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
var {
|
|
113
|
-
model
|
|
114
|
-
} = props;
|
|
115
|
-
var {
|
|
116
|
-
canvasContext: context
|
|
117
|
-
} = grid;
|
|
95
|
+
var metrics = state.metrics;
|
|
96
|
+
var model = props.model;
|
|
97
|
+
var context = grid.canvasContext;
|
|
118
98
|
var theme = grid.getTheme();
|
|
119
99
|
var rendererState = {
|
|
120
100
|
context,
|
|
@@ -128,9 +108,7 @@ class IrisGridCellOverflowMouseHandler extends GridMouseHandler {
|
|
|
128
108
|
}
|
|
129
109
|
onMove(point) {
|
|
130
110
|
if (this.isHoveringOverflowButton(point)) {
|
|
131
|
-
var
|
|
132
|
-
overflowButtonTooltipProps
|
|
133
|
-
} = this.irisGrid.state;
|
|
111
|
+
var overflowButtonTooltipProps = this.irisGrid.state.overflowButtonTooltipProps;
|
|
134
112
|
var newProps = this.getButtonPosition(point);
|
|
135
113
|
if (!deepEqual(overflowButtonTooltipProps, newProps)) {
|
|
136
114
|
this.irisGrid.setState({
|
|
@@ -150,10 +128,8 @@ class IrisGridCellOverflowMouseHandler extends GridMouseHandler {
|
|
|
150
128
|
// Needs to be onDown and not onClick b/c of GridSelectionMouseHandler shifting cell onDown
|
|
151
129
|
onDown(point) {
|
|
152
130
|
this.destroyColumnTooltip();
|
|
153
|
-
var
|
|
154
|
-
|
|
155
|
-
row
|
|
156
|
-
} = point;
|
|
131
|
+
var column = point.column,
|
|
132
|
+
row = point.row;
|
|
157
133
|
if (this.isHoveringOverflowButton(point)) {
|
|
158
134
|
this.irisGrid.setState({
|
|
159
135
|
showOverflowModal: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IrisGridCellOverflowMouseHandler.js","names":["GridMouseHandler","deepEqual","IrisGridCellOverflowMouseHandler","constructor","irisGrid","_defineProperty","destroyColumnTooltip","setState","overflowButtonTooltipProps","setCursor","point","isHoveringOverflowButton","cursor","stopPropagation","preventDefault","getButtonPosition","_ref","x","y","column","row","renderer","grid","state","props","metrics","model","
|
|
1
|
+
{"version":3,"file":"IrisGridCellOverflowMouseHandler.js","names":["GridMouseHandler","deepEqual","IrisGridCellOverflowMouseHandler","constructor","irisGrid","_defineProperty","destroyColumnTooltip","setState","overflowButtonTooltipProps","setCursor","point","isHoveringOverflowButton","cursor","stopPropagation","preventDefault","getButtonPosition","_ref","x","y","column","row","_this$irisGrid","renderer","grid","state","props","metrics","model","context","canvasContext","theme","getTheme","rendererState","mouseX","mouseY","_renderer$getCellOver","getCellOverflowButtonPosition","left","top","width","height","_this$getButtonPositi","_ref2","_this$irisGrid2","shouldRenderOverflowButton","onMove","newProps","onWheel","onDown","showOverflowModal","overflowText","getValueForCell","onContextMenu","onLeave"],"sources":["../../src/mousehandlers/IrisGridCellOverflowMouseHandler.ts"],"sourcesContent":["import {\n type GridPoint,\n GridMouseHandler,\n type EventHandlerResult,\n} from '@deephaven/grid';\nimport deepEqual from 'fast-deep-equal';\nimport type IrisGrid from '../IrisGrid';\nimport { type IrisGridRenderState } from '../IrisGridRenderer';\n\n/**\n * Handles cursor and click action for cell overflow button\n * The button is rendered via IrisGridRenderer\n */\nclass IrisGridCellOverflowMouseHandler extends GridMouseHandler {\n private irisGrid: IrisGrid;\n\n constructor(irisGrid: IrisGrid) {\n super(850); // Needs to be before GridSelectionMouseHandler\n\n this.irisGrid = irisGrid;\n }\n\n private destroyColumnTooltip(): void {\n this.irisGrid.setState({ overflowButtonTooltipProps: null });\n }\n\n private setCursor(point: GridPoint): EventHandlerResult {\n if (this.isHoveringOverflowButton(point)) {\n this.cursor = 'pointer';\n return { stopPropagation: false, preventDefault: false };\n }\n\n this.cursor = null;\n return false;\n }\n\n private getButtonPosition({ x, y, column, row }: GridPoint): {\n left: number;\n top: number;\n width: number;\n height: number;\n } | null {\n if (column == null || row == null) {\n return null;\n }\n const { renderer, grid, state, props } = this.irisGrid;\n if (!grid) {\n return null;\n }\n const { metrics } = state;\n const { model } = props;\n\n const { canvasContext: context } = grid;\n const theme = this.irisGrid.getTheme();\n const rendererState = {\n context,\n mouseX: x,\n mouseY: y,\n metrics,\n model,\n theme,\n };\n\n const { left, top, width, height } =\n renderer.getCellOverflowButtonPosition(rendererState);\n if (left == null || width == null || top == null || height == null) {\n return null;\n }\n\n return { left, top, width, height };\n }\n\n private isHoveringOverflowButton(point: GridPoint): boolean {\n const { x, y } = point;\n const { left, top, width, height } = this.getButtonPosition(point) ?? {};\n if (left == null || width == null || top == null || height == null) {\n return false;\n }\n\n const { renderer, grid, state, props } = this.irisGrid;\n if (!grid) {\n return false;\n }\n const { metrics } = state;\n const { model } = props;\n const { canvasContext: context } = grid;\n const theme = grid.getTheme();\n const rendererState = {\n context,\n mouseX: x,\n mouseY: y,\n metrics,\n model,\n theme,\n } as IrisGridRenderState;\n\n return (\n renderer.shouldRenderOverflowButton(rendererState) &&\n x >= left &&\n x <= left + width &&\n y >= top &&\n y <= top + height\n );\n }\n\n onMove(point: GridPoint): EventHandlerResult {\n if (this.isHoveringOverflowButton(point)) {\n const { overflowButtonTooltipProps } = this.irisGrid.state;\n const newProps = this.getButtonPosition(point);\n if (!deepEqual(overflowButtonTooltipProps, newProps)) {\n this.irisGrid.setState({ overflowButtonTooltipProps: newProps });\n }\n } else {\n this.destroyColumnTooltip();\n }\n return this.setCursor(point);\n }\n\n onWheel(point: GridPoint): EventHandlerResult {\n this.destroyColumnTooltip();\n return this.onMove(point);\n }\n\n // Needs to be onDown and not onClick b/c of GridSelectionMouseHandler shifting cell onDown\n onDown(point: GridPoint): boolean {\n this.destroyColumnTooltip();\n const { column, row } = point;\n\n if (this.isHoveringOverflowButton(point)) {\n this.irisGrid.setState({\n showOverflowModal: true,\n overflowText: this.irisGrid.getValueForCell(column, row) as string,\n });\n return true; // Consume the event so GridSelectionMouseHandler doesn't clear the row selection\n }\n\n return false;\n }\n\n onContextMenu(): EventHandlerResult {\n this.destroyColumnTooltip();\n return false;\n }\n\n onLeave(): EventHandlerResult {\n this.destroyColumnTooltip();\n return false;\n }\n}\n\nexport default IrisGridCellOverflowMouseHandler;\n"],"mappings":"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","ignoreList":[]}
|