@rowsncolumns/spreadsheet 10.5.5 → 10.5.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/components/canvas-grid/index.d.ts.map +1 -1
- package/dist/cjs/components/canvas-grid/index.js +119 -64
- package/dist/cjs/components/canvas-grid/typings.d.ts +24 -1
- package/dist/cjs/components/canvas-grid/typings.d.ts.map +1 -1
- package/dist/cjs/components/cell/index.d.ts.map +1 -1
- package/dist/cjs/components/cell/index.js +15 -6
- package/dist/cjs/components/cell/line-height.d.ts +10 -10
- package/dist/cjs/components/cell/line-height.d.ts.map +1 -1
- package/dist/cjs/components/cell/line-height.js +17 -19
- package/dist/cjs/components/cell/typings.d.ts +3 -1
- package/dist/cjs/components/cell/typings.d.ts.map +1 -1
- package/dist/cjs/components/cell-editor/index.d.ts +1 -1
- package/dist/cjs/components/cell-editor/index.d.ts.map +1 -1
- package/dist/cjs/components/cell-editor/index.js +24 -8
- package/dist/cjs/components/cell-input/formula-bar-cell-input.d.ts.map +1 -1
- package/dist/cjs/components/cell-input/formula-bar-cell-input.js +49 -6
- package/dist/cjs/helpers.d.ts.map +1 -1
- package/dist/cjs/helpers.js +2 -1
- package/dist/cjs/hooks/use-context-setter.d.ts.map +1 -1
- package/dist/cjs/hooks/use-context-setter.js +3 -1
- package/dist/cjs/hooks/use-editable.d.ts +29 -1
- package/dist/cjs/hooks/use-editable.d.ts.map +1 -1
- package/dist/cjs/hooks/use-editable.js +70 -13
- package/dist/cjs/hooks/use-editor-change.d.ts.map +1 -1
- package/dist/cjs/hooks/use-editor-change.js +9 -3
- package/dist/cjs/hooks/use-editor-keydown.d.ts +2 -1
- package/dist/cjs/hooks/use-editor-keydown.d.ts.map +1 -1
- package/dist/cjs/hooks/use-editor-keydown.js +5 -3
- package/dist/cjs/hooks/use-filter.d.ts +1 -1
- package/dist/cjs/hooks/use-filter.d.ts.map +1 -1
- package/dist/cjs/hooks/use-filter.js +4 -2
- package/dist/cjs/hooks/use-keyboard-handler.d.ts +9 -1
- package/dist/cjs/hooks/use-keyboard-handler.d.ts.map +1 -1
- package/dist/cjs/hooks/use-keyboard-handler.js +88 -39
- package/dist/cjs/hooks/use-sizer.d.ts +3 -1
- package/dist/cjs/hooks/use-sizer.d.ts.map +1 -1
- package/dist/cjs/hooks/use-sizer.js +7 -4
- package/dist/cjs/platform.d.ts +9 -0
- package/dist/cjs/platform.d.ts.map +1 -0
- package/dist/cjs/platform.js +21 -0
- package/dist/cjs/release-date.js +1 -1
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/esm/components/canvas-grid/index.d.ts.map +1 -1
- package/dist/esm/components/canvas-grid/index.js +57 -5
- package/dist/esm/components/canvas-grid/typings.d.ts +24 -1
- package/dist/esm/components/canvas-grid/typings.d.ts.map +1 -1
- package/dist/esm/components/cell/index.d.ts.map +1 -1
- package/dist/esm/components/cell/index.js +17 -8
- package/dist/esm/components/cell/line-height.d.ts +10 -10
- package/dist/esm/components/cell/line-height.d.ts.map +1 -1
- package/dist/esm/components/cell/line-height.js +15 -15
- package/dist/esm/components/cell/typings.d.ts +3 -1
- package/dist/esm/components/cell/typings.d.ts.map +1 -1
- package/dist/esm/components/cell-editor/index.d.ts +1 -1
- package/dist/esm/components/cell-editor/index.d.ts.map +1 -1
- package/dist/esm/components/cell-editor/index.js +20 -4
- package/dist/esm/components/cell-input/formula-bar-cell-input.d.ts.map +1 -1
- package/dist/esm/components/cell-input/formula-bar-cell-input.js +49 -7
- package/dist/esm/helpers.d.ts.map +1 -1
- package/dist/esm/helpers.js +2 -1
- package/dist/esm/hooks/use-context-setter.d.ts.map +1 -1
- package/dist/esm/hooks/use-context-setter.js +3 -1
- package/dist/esm/hooks/use-editable.d.ts +29 -1
- package/dist/esm/hooks/use-editable.d.ts.map +1 -1
- package/dist/esm/hooks/use-editable.js +67 -7
- package/dist/esm/hooks/use-editor-change.d.ts.map +1 -1
- package/dist/esm/hooks/use-editor-change.js +10 -4
- package/dist/esm/hooks/use-editor-keydown.d.ts +2 -1
- package/dist/esm/hooks/use-editor-keydown.d.ts.map +1 -1
- package/dist/esm/hooks/use-editor-keydown.js +5 -3
- package/dist/esm/hooks/use-filter.d.ts +1 -1
- package/dist/esm/hooks/use-filter.d.ts.map +1 -1
- package/dist/esm/hooks/use-filter.js +4 -2
- package/dist/esm/hooks/use-keyboard-handler.d.ts +9 -1
- package/dist/esm/hooks/use-keyboard-handler.d.ts.map +1 -1
- package/dist/esm/hooks/use-keyboard-handler.js +88 -39
- package/dist/esm/hooks/use-sizer.d.ts +3 -1
- package/dist/esm/hooks/use-sizer.d.ts.map +1 -1
- package/dist/esm/hooks/use-sizer.js +8 -5
- package/dist/esm/platform.d.ts +9 -0
- package/dist/esm/platform.d.ts.map +1 -0
- package/dist/esm/platform.js +16 -0
- package/dist/esm/release-date.js +1 -1
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/package.json +2 -2
|
@@ -4,6 +4,7 @@ exports.FormulaBarInput = void 0;
|
|
|
4
4
|
var tslib_1 = require("tslib");
|
|
5
5
|
var ui_1 = require("@rowsncolumns/ui");
|
|
6
6
|
var react_1 = tslib_1.__importStar(require("react"));
|
|
7
|
+
var active_editor_atom_1 = require("../../atoms/active-editor.atom");
|
|
7
8
|
var cell_input_context_atom_1 = require("../../atoms/cell-input-context.atom");
|
|
8
9
|
var editing_cell_atom_1 = require("../../atoms/editing-cell.atom");
|
|
9
10
|
var sheet_context_atom_1 = require("../../atoms/sheet-context.atom");
|
|
@@ -18,6 +19,8 @@ exports.FormulaBarInput = (0, react_1.memo)(function (_a) {
|
|
|
18
19
|
var _d = tslib_1.__read((0, formula_bar_editor_value_atom_1.useFormulaBarTextFormatRuns)(), 1), textFormatRuns = _d[0];
|
|
19
20
|
var setFormulaBarEditorInstance = (0, formula_bar_editor_value_atom_1.useSetFormulaBarEditorInstance)();
|
|
20
21
|
var mergedEditorRef = (0, use_merge_refs_1.useMergeRefs)(editorRef, setFormulaBarEditorInstance);
|
|
22
|
+
var cellEditorInstance = (0, formula_bar_editor_value_atom_1.useCellEditorInstance)();
|
|
23
|
+
var setActiveEditor = (0, active_editor_atom_1.useSetActiveEditor)();
|
|
21
24
|
var editingCellCoordinate = (0, editing_cell_atom_1.useEditingCellCoordinate)();
|
|
22
25
|
var formulaLocale = (0, sheet_context_atom_1.useFormulaLocale)();
|
|
23
26
|
var isEditInProgress = Boolean(editingCellCoordinate);
|
|
@@ -31,11 +34,39 @@ exports.FormulaBarInput = (0, react_1.memo)(function (_a) {
|
|
|
31
34
|
return !canEdit;
|
|
32
35
|
}, [editingCell, editingSheetId, canEditCell]);
|
|
33
36
|
var handleChange = (0, react_1.useCallback)(function (value, textFormatRuns) {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
+
var _a;
|
|
38
|
+
if (!editingCell) {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
if (!isEditInProgress) {
|
|
42
|
+
// The bar kept the focus after the host ended the edit (a sheet
|
|
43
|
+
// switch or an outside click commits without refocusing the grid):
|
|
44
|
+
// the keystroke starts an edit, as the click into the bar did, so
|
|
45
|
+
// the text is never typed into nothing. The bar stays the active
|
|
46
|
+
// editor, as after that click.
|
|
47
|
+
makeEditable === null || makeEditable === void 0 ? void 0 : makeEditable(sheetId, editingCell, value, { autoFocus: false });
|
|
48
|
+
setActiveEditor((_a = editorRef.current) !== null && _a !== void 0 ? _a : undefined);
|
|
37
49
|
}
|
|
38
|
-
|
|
50
|
+
// This will update formula bar editor value too
|
|
51
|
+
setEditorValue === null || setEditorValue === void 0 ? void 0 : setEditorValue(value, textFormatRuns, editingSheetId, editingCell);
|
|
52
|
+
}, [
|
|
53
|
+
setEditorValue,
|
|
54
|
+
makeEditable,
|
|
55
|
+
setActiveEditor,
|
|
56
|
+
sheetId,
|
|
57
|
+
editingSheetId,
|
|
58
|
+
editingCell,
|
|
59
|
+
isEditInProgress,
|
|
60
|
+
]);
|
|
61
|
+
// Excel: Esc cancels the entry, Enter / Tab commit it, and each hands the
|
|
62
|
+
// keyboard focus back to the worksheet, so the arrow keys move the active
|
|
63
|
+
// cell and the next printable key starts a new entry. The grid's own
|
|
64
|
+
// refocus (`focusSheet`) declines while the focus sits outside the grid
|
|
65
|
+
// container, which the bar does, so the bar gives the focus to the
|
|
66
|
+
// grid's key sink — its sticky cell editor — itself.
|
|
67
|
+
var returnFocusToSheet = (0, react_1.useCallback)(function () {
|
|
68
|
+
cellEditorInstance === null || cellEditorInstance === void 0 ? void 0 : cellEditorInstance.focus();
|
|
69
|
+
}, [cellEditorInstance]);
|
|
39
70
|
// Focus, show cell editor
|
|
40
71
|
var handleFocus = (0, react_1.useCallback)(function () {
|
|
41
72
|
if (editingCell && !isEditInProgress) {
|
|
@@ -47,14 +78,26 @@ exports.FormulaBarInput = (0, react_1.memo)(function (_a) {
|
|
|
47
78
|
if (editingCell) {
|
|
48
79
|
submitEditor === null || submitEditor === void 0 ? void 0 : submitEditor(value, textFormatRuns, editingSheetId, editingCell, getNextFocusableCell === null || getNextFocusableCell === void 0 ? void 0 : getNextFocusableCell(editingSheetId, editingCell, direction));
|
|
49
80
|
}
|
|
50
|
-
|
|
81
|
+
returnFocusToSheet();
|
|
82
|
+
}, [
|
|
83
|
+
getNextFocusableCell,
|
|
84
|
+
submitEditor,
|
|
85
|
+
editingSheetId,
|
|
86
|
+
editingCell,
|
|
87
|
+
returnFocusToSheet,
|
|
88
|
+
]);
|
|
89
|
+
// User cancels the entry
|
|
90
|
+
var handleCancel = (0, react_1.useCallback)(function (e) {
|
|
91
|
+
cancelEditor === null || cancelEditor === void 0 ? void 0 : cancelEditor(e);
|
|
92
|
+
returnFocusToSheet();
|
|
93
|
+
}, [cancelEditor, returnFocusToSheet]);
|
|
51
94
|
// Keydown event
|
|
52
95
|
var handleKeyDown = (0, react_1.useCallback)(function (e) {
|
|
53
96
|
// Pass it on to main editor, for cell navigation
|
|
54
97
|
onEditorKeyDown === null || onEditorKeyDown === void 0 ? void 0 : onEditorKeyDown(e);
|
|
55
98
|
onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(e);
|
|
56
99
|
}, [onEditorKeyDown, onKeyDown]);
|
|
57
|
-
return (react_1.default.createElement(cell_input_1.CellInput, tslib_1.__assign({ ref: mergedEditorRef, value: value, onChange: handleChange, onFocus: handleFocus, onSubmit: handleSubmit, onCancel:
|
|
100
|
+
return (react_1.default.createElement(cell_input_1.CellInput, tslib_1.__assign({ ref: mergedEditorRef, value: value, onChange: handleChange, onFocus: handleFocus, onSubmit: handleSubmit, onCancel: handleCancel, onKeyDown: handleKeyDown, disabled: isProtected, functionDescriptions: functionDescriptions, getNamedRanges: getNamedRanges, getTableNames: getTableNames, getTableColumnNames: getTableColumnNames, SuggestionsDropdown: SuggestionsDropdown, formulaLocale: formulaLocale,
|
|
58
101
|
// Excel parity: the formula bar always renders plain-colored text —
|
|
59
102
|
// run color marks stay in the doc (and the in-cell editor) but must
|
|
60
103
|
// not paint here, where a light run color on the light bar background
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAMnE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../helpers.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/helpers.js
CHANGED
|
@@ -5,12 +5,13 @@ var tslib_1 = require("tslib");
|
|
|
5
5
|
var grid_1 = require("@rowsncolumns/grid");
|
|
6
6
|
var utils_1 = require("@rowsncolumns/utils");
|
|
7
7
|
var config_1 = require("./config");
|
|
8
|
+
var platform_1 = require("./platform");
|
|
8
9
|
// Check if browser is Firefox
|
|
9
10
|
exports.isFirefox = grid_1.canUseDOM
|
|
10
11
|
? navigator.userAgent.indexOf("Firefox") !== -1
|
|
11
12
|
: false;
|
|
12
13
|
// Check if platform is macOS, where Ctrl+click is the context menu gesture
|
|
13
|
-
exports.isMac =
|
|
14
|
+
exports.isMac = (0, platform_1.isMacPlatform)();
|
|
14
15
|
/* Converts point to pixel */
|
|
15
16
|
var pointToPixel = function (pt) { return Math.round((13 / 10) * pt); };
|
|
16
17
|
exports.pointToPixel = pointToPixel;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-context-setter.d.ts","sourceRoot":"","sources":["../../../hooks/use-context-setter.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAG3E,eAAO,MAAM,gBAAgB,GAC3B,cAAc,KAAK,CAAC,YAAY,CAAC,iBAAiB,CAAC,EACnD,cAAc,iBAAiB,
|
|
1
|
+
{"version":3,"file":"use-context-setter.d.ts","sourceRoot":"","sources":["../../../hooks/use-context-setter.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAG3E,eAAO,MAAM,gBAAgB,GAC3B,cAAc,KAAK,CAAC,YAAY,CAAC,iBAAiB,CAAC,EACnD,cAAc,iBAAiB,SAuMhC,CAAC"}
|
|
@@ -6,7 +6,7 @@ var sheet_context_atom_1 = require("../atoms/sheet-context.atom");
|
|
|
6
6
|
var use_isomorphic_layout_effect_1 = require("./use-isomorphic-layout-effect");
|
|
7
7
|
var useContextSetter = function (forwardedRef, contextValue) {
|
|
8
8
|
var setSpreadsheetContext = (0, sheet_context_atom_1.useSetSpreadsheetContext)();
|
|
9
|
-
var submitEditor = contextValue.submitEditor, cancelEditor = contextValue.cancelEditor, commit = contextValue.commit, makeEditable = contextValue.makeEditable, editCell = contextValue.editCell, getNextFocusableCell = contextValue.getNextFocusableCell, onEditorKeyDown = contextValue.onEditorKeyDown, scrollToCell = contextValue.scrollToCell, scrollToChart = contextValue.scrollToChart, scrollToBottom = contextValue.scrollToBottom, focusSheet = contextValue.focusSheet, canEditCell = contextValue.canEditCell, isSheetProtected = contextValue.isSheetProtected, isWorkbookProtected = contextValue.isWorkbookProtected, getSheetProtection = contextValue.getSheetProtection, getSelectionsFromFormula = contextValue.getSelectionsFromFormula, getAddressFromSelection = contextValue.getAddressFromSelection, getR1C1AddressFromSelection = contextValue.getR1C1AddressFromSelection, tokenizer = contextValue.tokenizer, localeTokenizer = contextValue.localeTokenizer, formulaLocale = contextValue.formulaLocale, setEditorValue = contextValue.setEditorValue, getCellBounds = contextValue.getCellBounds, getTableNames = contextValue.getTableNames, getStructuredProperties = contextValue.getStructuredProperties, getNamedRanges = contextValue.getNamedRanges, getTableColumnNames = contextValue.getTableColumnNames, updateSelectionStartEndReference = contextValue.updateSelectionStartEndReference, getCellDimensions = contextValue.getCellDimensions, getRowHeight = contextValue.getRowHeight, getContentfulGridRangeAroundCell = contextValue.getContentfulGridRangeAroundCell, getCellCoordsFromOffset = contextValue.getCellCoordsFromOffset, getCellOffsetFromCoords = contextValue.getCellOffsetFromCoords, getEffectiveValuesFromRange = contextValue.getEffectiveValuesFromRange, getSheetDimensions = contextValue.getSheetDimensions, getFinalRowHeight = contextValue.getFinalRowHeight, getColumnWidth = contextValue.getColumnWidth, getSheetId = contextValue.getSheetId, getSheetName = contextValue.getSheetName, onInsertNote = contextValue.onInsertNote, onPinToolTip = contextValue.onPinToolTip, onUnpinTooltip = contextValue.onUnpinTooltip, showCellPopover = contextValue.showCellPopover, redrawGrid = contextValue.redrawGrid, flash = contextValue.flash, navigateToSheetRange = contextValue.navigateToSheetRange, mark = contextValue.mark, unmark = contextValue.unmark, exportRange = contextValue.exportRange, getViewPort = contextValue.getViewPort, setActiveCell = contextValue.setActiveCell, getGridRef = contextValue.getGridRef, getMentions = contextValue.getMentions, dispatchEvent = contextValue.dispatchEvent, splitTextToColumns = contextValue.splitTextToColumns, copy = contextValue.copy, cut = contextValue.cut, paste = contextValue.paste;
|
|
9
|
+
var submitEditor = contextValue.submitEditor, cancelEditor = contextValue.cancelEditor, commit = contextValue.commit, makeEditable = contextValue.makeEditable, editCell = contextValue.editCell, getNextFocusableCell = contextValue.getNextFocusableCell, onEditorKeyDown = contextValue.onEditorKeyDown, scrollToCell = contextValue.scrollToCell, scrollToChart = contextValue.scrollToChart, scrollToBottom = contextValue.scrollToBottom, focusSheet = contextValue.focusSheet, canEditCell = contextValue.canEditCell, isSheetProtected = contextValue.isSheetProtected, isWorkbookProtected = contextValue.isWorkbookProtected, getSheetProtection = contextValue.getSheetProtection, getSelectionsFromFormula = contextValue.getSelectionsFromFormula, getAddressFromSelection = contextValue.getAddressFromSelection, getR1C1AddressFromSelection = contextValue.getR1C1AddressFromSelection, tokenizer = contextValue.tokenizer, localeTokenizer = contextValue.localeTokenizer, formulaLocale = contextValue.formulaLocale, setEditorValue = contextValue.setEditorValue, getCellBounds = contextValue.getCellBounds, getTableNames = contextValue.getTableNames, getStructuredProperties = contextValue.getStructuredProperties, getNamedRanges = contextValue.getNamedRanges, getTableColumnNames = contextValue.getTableColumnNames, updateSelectionStartEndReference = contextValue.updateSelectionStartEndReference, getCellDimensions = contextValue.getCellDimensions, getRowHeight = contextValue.getRowHeight, getContentfulGridRangeAroundCell = contextValue.getContentfulGridRangeAroundCell, getCellCoordsFromOffset = contextValue.getCellCoordsFromOffset, getCellOffsetFromCoords = contextValue.getCellOffsetFromCoords, getEffectiveValuesFromRange = contextValue.getEffectiveValuesFromRange, getSheetDimensions = contextValue.getSheetDimensions, getFinalRowHeight = contextValue.getFinalRowHeight, getColumnWidth = contextValue.getColumnWidth, getSheetId = contextValue.getSheetId, getSheetName = contextValue.getSheetName, onInsertNote = contextValue.onInsertNote, onPinToolTip = contextValue.onPinToolTip, onUnpinTooltip = contextValue.onUnpinTooltip, showCellPopover = contextValue.showCellPopover, showFilterMenu = contextValue.showFilterMenu, redrawGrid = contextValue.redrawGrid, flash = contextValue.flash, navigateToSheetRange = contextValue.navigateToSheetRange, mark = contextValue.mark, unmark = contextValue.unmark, exportRange = contextValue.exportRange, getViewPort = contextValue.getViewPort, setActiveCell = contextValue.setActiveCell, getGridRef = contextValue.getGridRef, getMentions = contextValue.getMentions, dispatchEvent = contextValue.dispatchEvent, splitTextToColumns = contextValue.splitTextToColumns, copy = contextValue.copy, cut = contextValue.cut, paste = contextValue.paste;
|
|
10
10
|
// Expose grid methods in context and ref
|
|
11
11
|
var imperativeHandleRefs = (0, react_1.useMemo)(function () { return ({
|
|
12
12
|
submitEditor: submitEditor,
|
|
@@ -52,6 +52,7 @@ var useContextSetter = function (forwardedRef, contextValue) {
|
|
|
52
52
|
onPinToolTip: onPinToolTip,
|
|
53
53
|
onUnpinTooltip: onUnpinTooltip,
|
|
54
54
|
showCellPopover: showCellPopover,
|
|
55
|
+
showFilterMenu: showFilterMenu,
|
|
55
56
|
redrawGrid: redrawGrid,
|
|
56
57
|
flash: flash,
|
|
57
58
|
navigateToSheetRange: navigateToSheetRange,
|
|
@@ -111,6 +112,7 @@ var useContextSetter = function (forwardedRef, contextValue) {
|
|
|
111
112
|
onPinToolTip,
|
|
112
113
|
onUnpinTooltip,
|
|
113
114
|
showCellPopover,
|
|
115
|
+
showFilterMenu,
|
|
114
116
|
redrawGrid,
|
|
115
117
|
flash,
|
|
116
118
|
navigateToSheetRange,
|
|
@@ -136,6 +136,13 @@ export type UseEditableOptions<T extends CellData> = {
|
|
|
136
136
|
* Callback fired before editing. Can be used to prevent editing. Do not use it, Can be removed in next release.
|
|
137
137
|
*/
|
|
138
138
|
canEdit?: (sheetId: number, cell: CellInterface) => boolean;
|
|
139
|
+
/**
|
|
140
|
+
* Whether a cell `canEdit` refuses may still be opened read-only — F2 / Enter /
|
|
141
|
+
* double-click then show its full content in the cell editor with input disabled
|
|
142
|
+
* (Google Sheets' view-only cell), and nothing is ever committed from it. A
|
|
143
|
+
* keystroke never opens it. Defaults to no cell.
|
|
144
|
+
*/
|
|
145
|
+
canView?: (sheetId: number, cell: CellInterface) => boolean;
|
|
139
146
|
/**
|
|
140
147
|
* Number of frozen columns
|
|
141
148
|
*/
|
|
@@ -184,6 +191,22 @@ export type UseEditableOptions<T extends CellData> = {
|
|
|
184
191
|
* Can user press enter key to edit
|
|
185
192
|
*/
|
|
186
193
|
enableEditOnEnterKey?: boolean;
|
|
194
|
+
/**
|
|
195
|
+
* Which product's Delete / Backspace keys the grid follows
|
|
196
|
+
* (`CanvasGridProps["keymap"]`). Under `"excel"` Backspace clears the
|
|
197
|
+
* active cell alone and edits it, Shift+Backspace selects only the active
|
|
198
|
+
* cell and Shift+Delete cuts; Delete clears every selected cell in both.
|
|
199
|
+
*/
|
|
200
|
+
keymap?: CanvasGridProps["keymap"];
|
|
201
|
+
/**
|
|
202
|
+
* Drop the cell selections, keeping the active cell (Excel's
|
|
203
|
+
* Shift+Backspace)
|
|
204
|
+
*/
|
|
205
|
+
clearSelections?: () => void;
|
|
206
|
+
/**
|
|
207
|
+
* Cut the selection to the clipboard (Excel's Shift+Delete)
|
|
208
|
+
*/
|
|
209
|
+
onRequestCut?: () => void;
|
|
187
210
|
/**
|
|
188
211
|
* Return `false` to keep a key press from the grid's key handling
|
|
189
212
|
* (`CanvasGridProps["shouldHandleKeyDown"]`).
|
|
@@ -345,6 +368,11 @@ export type SharedEditorProps = {
|
|
|
345
368
|
editorBorderOutlineColor?: string;
|
|
346
369
|
isPointerDevice?: boolean;
|
|
347
370
|
navigationMode?: boolean;
|
|
371
|
+
/**
|
|
372
|
+
* The editor shows the cell's content with input disabled (`canView`): the text can be
|
|
373
|
+
* selected and copied, nothing typed changes it and no commit comes out of it.
|
|
374
|
+
*/
|
|
375
|
+
readOnly?: boolean;
|
|
348
376
|
onCopy?(event: ClipboardEvent): void;
|
|
349
377
|
onCut?(event: ClipboardEvent): void;
|
|
350
378
|
onPaste?(event: ClipboardEvent): void;
|
|
@@ -371,7 +399,7 @@ export declare const areTextFormatRunsEqual: (a: TextFormatRun[] | undefined | n
|
|
|
371
399
|
*
|
|
372
400
|
* Moves to incorrect cell
|
|
373
401
|
*/
|
|
374
|
-
export declare const useEditable: <T extends CellData>({ getEditor, getValue, getTextFormatRuns, onChange, onSubmit, onCancel, onBlur, onDelete, sheetId, selections, activeCell, canEdit, frozenRows, frozenColumns, hideOnBlur, isHiddenRow, isHiddenColumn, rowCount, columnCount, selectionTopBound, selectionBottomBound, selectionLeftBound, selectionRightBound, enableEditOnEnterKey, shouldHandleKeyDown, sticky, editorBorderColor, editorBorderOutlineColor, onBeforeEdit, onKeyDown, onEditorKeyDown, getCellOffsetFromCoords, getCellCoordsFromOffset, getCellBounds, focus, getActualCellCoords, scrollToCell, onChangeBatch, containerWidth, containerHeight, getScrollPosition, getColumnOffset, getEditorAlignment, getSheetRowCount, getSheetColumnCount, getBooleanValue, getDataValidation, setActiveCell, onCopy, onPaste, onCut, tables, onInsertTableRow, }: UseEditableOptions<T>) => {
|
|
402
|
+
export declare const useEditable: <T extends CellData>({ getEditor, getValue, getTextFormatRuns, onChange, onSubmit, onCancel, onBlur, onDelete, sheetId, selections, activeCell, canEdit, canView, frozenRows, frozenColumns, hideOnBlur, isHiddenRow, isHiddenColumn, rowCount, columnCount, selectionTopBound, selectionBottomBound, selectionLeftBound, selectionRightBound, enableEditOnEnterKey, keymap, clearSelections, onRequestCut, shouldHandleKeyDown, sticky, editorBorderColor, editorBorderOutlineColor, onBeforeEdit, onKeyDown, onEditorKeyDown, getCellOffsetFromCoords, getCellCoordsFromOffset, getCellBounds, focus, getActualCellCoords, scrollToCell, onChangeBatch, containerWidth, containerHeight, getScrollPosition, getColumnOffset, getEditorAlignment, getSheetRowCount, getSheetColumnCount, getBooleanValue, getDataValidation, setActiveCell, onCopy, onPaste, onCut, tables, onInsertTableRow, }: UseEditableOptions<T>) => {
|
|
375
403
|
editorComponent: React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | null;
|
|
376
404
|
onDoubleClick: (e: React.MouseEvent<HTMLElement>) => void;
|
|
377
405
|
getNextFocusableCell: (sheetId: number, currentCell: CellInterface, direction?: Direction, restrictWithinSelection?: boolean) => CellInterface | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-editable.d.ts","sourceRoot":"","sources":["../../../hooks/use-editable.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"use-editable.d.ts","sourceRoot":"","sources":["../../../hooks/use-editable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,KAAK,EACL,aAAa,EACb,YAAY,EACZ,SAAS,EACT,UAAU,EACV,qBAAqB,EACrB,YAAY,EACZ,aAAa,EACd,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAEL,SAAS,EAIV,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAOtD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAe/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAGzE,OAAO,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE9E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAG7D;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC,wDAAwD;IACxD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,6EAA6E;IAC7E,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;;OAKG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;;;OAKG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,QAAQ,IAAI;IACnD;;OAEG;IACH,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;IACpE;;OAEG;IACH,QAAQ,CAAC,EAAE,CACT,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,KAChB,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IAC/B;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE,CAClB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,KAChB,aAAa,EAAE,GAAG,IAAI,GAAG,SAAS,CAAC;IACxC;;;;;;;OAOG;IACH,eAAe,EAAE,CACf,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,KAChB,OAAO,GAAG,SAAS,CAAC;IACzB;;;;;;OAMG;IACH,iBAAiB,EAAE,CACjB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,KAChB,kBAAkB,GAAG,SAAS,GAAG,IAAI,CAAC;IAC3C,gBAAgB,EAAE,eAAe,CAAC,kBAAkB,CAAC,CAAC;IACtD,mBAAmB,EAAE,eAAe,CAAC,qBAAqB,CAAC,CAAC;IAC5D;;OAEG;IACH,MAAM,CAAC,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC;IACnC;;OAEG;IACH,gBAAgB,CAAC,EAAE,eAAe,CAAC,kBAAkB,CAAC,CAAC;IACvD;;OAEG;IACH,aAAa,EAAE,eAAe,CAAC,eAAe,CAAC,CAAC;IAChD;;;;;;OAMG;IACH,aAAa,EAAE,CACb,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,aAAa,EACrB,YAAY,CAAC,EAAE,OAAO,KACnB,IAAI,CAAC;IACV;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;IAC1D;;;;;OAKG;IACH,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3E;;OAEG;IACH,QAAQ,CAAC,EAAE,CACT,KAAK,EAAE,MAAM,EACb,cAAc,EAAE,aAAa,EAAE,GAAG,IAAI,GAAG,SAAS,EAClD,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,aAAa,KACtB,IAAI,CAAC;IACV;;OAEG;IACH,QAAQ,CAAC,EAAE,CACT,KAAK,EAAE,MAAM,GAAG,OAAO,EACvB,cAAc,EAAE,aAAa,EAAE,GAAG,SAAS,GAAG,IAAI,EAClD,aAAa,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,IAAI,EAClD,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,aAAa,EACzB,cAAc,CAAC,EAAE,aAAa,GAAG,IAAI,EACrC,OAAO,CAAC,EAAE,OAAO,EACjB,OAAO,CAAC,EAAE,mBAAmB,KAC1B,IAAI,CAAC;IACV;;OAEG;IACH,QAAQ,CAAC,EAAE,CACT,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,aAAa,EACzB,UAAU,EAAE,aAAa,EAAE,KACxB,IAAI,CAAC;IACV;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,UAAU,EAAE,aAAa,EAAE,CAAC;IAC5B;;OAEG;IACH,UAAU,CAAC,EAAE,aAAa,CAAC;IAC3B;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,KAAK,OAAO,CAAC;IAC5D;;;;;OAKG;IACH,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,KAAK,OAAO,CAAC;IAC5D;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;OAEG;IACH,WAAW,EAAE,UAAU,CAAC;IACxB;;OAEG;IACH,cAAc,EAAE,UAAU,CAAC;IAC3B;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;OAEG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;OAEG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B;;OAEG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;;;;OAKG;IACH,MAAM,CAAC,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC;IACnC;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B;;;OAGG;IACH,mBAAmB,CAAC,EAAE,CACpB,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,cAAc,CAAC,EACtC,OAAO,EAAE;QAAE,SAAS,EAAE,OAAO,CAAA;KAAE,KAC5B,OAAO,CAAC;IACb;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;OAEG;IACH,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC;;OAEG;IACH,SAAS,CAAC,EAAE,CACV,CAAC,EACG,KAAK,CAAC,aAAa,CAAC,cAAc,CAAC,GACnC,KAAK,CAAC,aAAa,CAAC,cAAc,CAAC,KACpC,IAAI,CAAC;IAEV,eAAe,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC;IACrD;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,KAAK,IAAI,CAAC;IAChE;;OAEG;IACH,iBAAiB,EAAE,MAAM,YAAY,GAAG,SAAS,CAAC;IAClD;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;OAGG;IACH,uBAAuB,CAAC,IAAI,EAAE,aAAa,GAAG,YAAY,GAAG,SAAS,CAAC;IACvE;;;;OAIG;IACH,uBAAuB,CACrB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,GACR,aAAa,GAAG,SAAS,GAAG,IAAI,CAAC;IACpC;;;OAGG;IACH,aAAa,CAAC,IAAI,EAAE,aAAa,GAAG,SAAS,CAAC;IAC9C;;OAEG;IACH,KAAK,IAAI,IAAI,CAAC;IACd;;;OAGG;IACH,mBAAmB,CAAC,MAAM,EAAE,aAAa,GAAG,aAAa,GAAG,SAAS,CAAC;IACtE;;;;OAIG;IACH,YAAY,CACV,IAAI,EAAE,qBAAqB,EAC3B,KAAK,CAAC,EAAE,KAAK,GAAG,SAAS,GACxB,IAAI,GAAG,SAAS,CAAC;IACpB,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;IAC3C,eAAe,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,MAAM,CAAC;IACjD,kBAAkB,EAAE,CAClB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,KAChB,eAAe,CAAC;IACrB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI,CAAC;IACrC,KAAK,CAAC,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI,CAAC;IACpC,OAAO,CAAC,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B;;OAEG;IACH,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC;IAC7B;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,cAAc,CAAC,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC;IACxC;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;OAEG;IACH,QAAQ,CAAC,EAAE,CACT,KAAK,EAAE,MAAM,EACb,cAAc,EAAE,aAAa,EAAE,GAAG,SAAS,EAC3C,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,aAAa,KACtB,IAAI,CAAC;IACV;;;;OAIG;IACH,QAAQ,CAAC,EAAE,CACT,KAAK,EAAE,MAAM,EACb,cAAc,EAAE,aAAa,EAAE,GAAG,SAAS,EAC3C,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,aAAa,EACzB,cAAc,CAAC,EAAE,aAAa,GAAG,IAAI,EACrC,eAAe,CAAC,EAAE,OAAO,EACzB,OAAO,CAAC,EAAE,mBAAmB,KAC1B,IAAI,CAAC;IACV;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;IAC1D;;OAEG;IACH,QAAQ,EAAE,YAAY,CAAC;IACvB;;OAEG;IACH,UAAU,CAAC,EAAE,aAAa,CAAC;IAC3B;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;OAEG;IACH,IAAI,EAAE,aAAa,CAAC;IACpB;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;OAEG;IACH,oBAAoB,CAAC,EAAE,CACrB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,aAAa,EACzB,SAAS,CAAC,EAAE,SAAS,KAClB,aAAa,GAAG,IAAI,CAAC;IAC1B;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC;IAC7D;;OAEG;IACH,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC;IACvD;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI,CAAC;IACrC,KAAK,CAAC,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI,CAAC;IACpC,OAAO,CAAC,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI,CAAC;CACvC,CAAC;AAEF,eAAO,MAAM,gBAAgB,YAAa,CAAC;AAK3C;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,GACjC,GAAG,aAAa,EAAE,GAAG,SAAS,GAAG,IAAI,EACrC,GAAG,aAAa,EAAE,GAAG,SAAS,GAAG,IAAI,KACpC,OAyBF,CAAC;AAyEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,QAAQ,EAAE,60BA0D7C,kBAAkB,CAAC,CAAC,CAAC;;uBAyShB,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC;oCAwSpB,MAAM,eACF,aAAa,cACf,SAAS,wCAEnB,aAAa,GAAG,IAAI;;;4BAtcZ,MAAM,QACT,aAAa,iBACJ,MAAM,YACX,mBAAmB;wBAk4BpB,MAAM,QACT,aAAa,iBACJ,MAAM,YACX,mBAAmB;+BApJnB,MAAM,kBACA,aAAa,EAAE,GAAG,SAAS,WAClC,MAAM,cACH,aAAa;;;6BAtKf,MAAM,kBACA,aAAa,EAAE,GAAG,SAAS,GAAG,IAAI,WACzC,MAAM,cACH,aAAa,kBACT,aAAa,GAAG,IAAI,GAAG,SAAS,uCAEtC,mBAAmB;uBA0D1B,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC;uBA0B1B,mBAAmB,KAAG,OAAO;qBA0BrC,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC,cAAc,CAAC;CAqO7E,CAAC"}
|
|
@@ -17,6 +17,7 @@ var use_isomorphic_layout_effect_1 = require("./use-isomorphic-layout-effect");
|
|
|
17
17
|
var getDefaultEditor = function () { return null; };
|
|
18
18
|
exports.getDefaultEditor = getDefaultEditor;
|
|
19
19
|
var defaultCanEdit = function () { return true; };
|
|
20
|
+
var defaultCanView = function () { return false; };
|
|
20
21
|
var defaultIsHidden = function () { return false; };
|
|
21
22
|
/**
|
|
22
23
|
* Lightweight deep equality for `TextFormatRun[]`. Used by the
|
|
@@ -157,15 +158,15 @@ var MEDIA_KEYS = new Set([
|
|
|
157
158
|
*/
|
|
158
159
|
var useEditable = function (_a) {
|
|
159
160
|
var _b, _c;
|
|
160
|
-
var _d = _a.getEditor, getEditor = _d === void 0 ? exports.getDefaultEditor : _d, getValue = _a.getValue, getTextFormatRuns = _a.getTextFormatRuns, onChange = _a.onChange, onSubmit = _a.onSubmit, onCancel = _a.onCancel, onBlur = _a.onBlur, onDelete = _a.onDelete, sheetId = _a.sheetId, _e = _a.selections, selections = _e === void 0 ? config_1.DEFAULT_ARRAY : _e, activeCell = _a.activeCell, _f = _a.canEdit, canEdit = _f === void 0 ? defaultCanEdit : _f, _g = _a.
|
|
161
|
+
var _d = _a.getEditor, getEditor = _d === void 0 ? exports.getDefaultEditor : _d, getValue = _a.getValue, getTextFormatRuns = _a.getTextFormatRuns, onChange = _a.onChange, onSubmit = _a.onSubmit, onCancel = _a.onCancel, onBlur = _a.onBlur, onDelete = _a.onDelete, sheetId = _a.sheetId, _e = _a.selections, selections = _e === void 0 ? config_1.DEFAULT_ARRAY : _e, activeCell = _a.activeCell, _f = _a.canEdit, canEdit = _f === void 0 ? defaultCanEdit : _f, _g = _a.canView, canView = _g === void 0 ? defaultCanView : _g, _h = _a.frozenRows, frozenRows = _h === void 0 ? 0 : _h, _j = _a.frozenColumns, frozenColumns = _j === void 0 ? 0 : _j, _k = _a.hideOnBlur, hideOnBlur = _k === void 0 ? true : _k, _l = _a.isHiddenRow, isHiddenRow = _l === void 0 ? defaultIsHidden : _l, _m = _a.isHiddenColumn, isHiddenColumn = _m === void 0 ? defaultIsHidden : _m, rowCount = _a.rowCount, columnCount = _a.columnCount, _o = _a.selectionTopBound, selectionTopBound = _o === void 0 ? 0 : _o, _p = _a.selectionBottomBound, selectionBottomBound = _p === void 0 ? rowCount : _p, _q = _a.selectionLeftBound, selectionLeftBound = _q === void 0 ? 0 : _q, _r = _a.selectionRightBound, selectionRightBound = _r === void 0 ? columnCount : _r, _s = _a.enableEditOnEnterKey, enableEditOnEnterKey = _s === void 0 ? true : _s, _t = _a.keymap, keymap = _t === void 0 ? "sheets" : _t, clearSelections = _a.clearSelections, onRequestCut = _a.onRequestCut, shouldHandleKeyDown = _a.shouldHandleKeyDown, sticky = _a.sticky, editorBorderColor = _a.editorBorderColor, editorBorderOutlineColor = _a.editorBorderOutlineColor, onBeforeEdit = _a.onBeforeEdit, onKeyDown = _a.onKeyDown, onEditorKeyDown = _a.onEditorKeyDown, getCellOffsetFromCoords = _a.getCellOffsetFromCoords, getCellCoordsFromOffset = _a.getCellCoordsFromOffset, getCellBounds = _a.getCellBounds, focus = _a.focus, getActualCellCoords = _a.getActualCellCoords, scrollToCell = _a.scrollToCell, onChangeBatch = _a.onChangeBatch, _u = _a.containerWidth, containerWidth = _u === void 0 ? 0 : _u, _v = _a.containerHeight, containerHeight = _v === void 0 ? 0 : _v, getScrollPosition = _a.getScrollPosition, getColumnOffset = _a.getColumnOffset, getEditorAlignment = _a.getEditorAlignment, getSheetRowCount = _a.getSheetRowCount, getSheetColumnCount = _a.getSheetColumnCount, getBooleanValue = _a.getBooleanValue, getDataValidation = _a.getDataValidation, setActiveCell = _a.setActiveCell, onCopy = _a.onCopy, onPaste = _a.onPaste, onCut = _a.onCut, tables = _a.tables, onInsertTableRow = _a.onInsertTableRow;
|
|
161
162
|
var editingCellCoordinate = (0, atoms_1.useEditingCellCoordinate)();
|
|
162
|
-
var
|
|
163
|
-
var
|
|
164
|
-
var
|
|
163
|
+
var _w = tslib_1.__read((0, atoms_1.useEditorVisibility)(), 2), isEditorShown = _w[0], setShowEditor = _w[1];
|
|
164
|
+
var _x = tslib_1.__read((0, atoms_1.useCellEditorValue)(), 2), value = _x[0], setValue = _x[1];
|
|
165
|
+
var _y = tslib_1.__read((0, atoms_1.useCellEditorTextFormatRuns)(), 2), textFormatRuns = _y[0], setTextFormatRuns = _y[1];
|
|
165
166
|
var currentActiveCellRef = (0, react_1.useRef)(null);
|
|
166
167
|
var initialActiveCell = (0, react_1.useRef)(undefined);
|
|
167
|
-
var
|
|
168
|
-
var
|
|
168
|
+
var _z = tslib_1.__read((0, react_1.useState)(true), 2), autoFocus = _z[0], setAutoFocus = _z[1];
|
|
169
|
+
var _0 = tslib_1.__read((0, react_1.useState)(false), 2), isScrolling = _0[0], setIsScrolling = _0[1];
|
|
169
170
|
var isDirtyRef = (0, react_1.useRef)(false);
|
|
170
171
|
var isEnteringNewValue = (0, react_1.useRef)(false);
|
|
171
172
|
var currentValueRef = (0, react_1.useRef)(value);
|
|
@@ -179,6 +180,9 @@ var useEditable = function (_a) {
|
|
|
179
180
|
var isPointerDeviceRef = (0, react_1.useRef)(false);
|
|
180
181
|
var maxEditorDimensionsRef = (0, react_1.useRef)(undefined);
|
|
181
182
|
var isMounted = (0, react_1.useRef)(false);
|
|
183
|
+
// The open editor is a read-only view of the cell (`canView`): it never
|
|
184
|
+
// commits, and its keys only close it or move the active cell.
|
|
185
|
+
var isViewOnlyRef = (0, react_1.useRef)(false);
|
|
182
186
|
var showEditor = (0, react_1.useCallback)(function () { return setShowEditor(true); }, [setShowEditor]);
|
|
183
187
|
var setActiveEditor = (0, atoms_1.useSetActiveEditor)();
|
|
184
188
|
var cellEditorInstance = (0, atoms_1.useCellEditorInstance)();
|
|
@@ -186,6 +190,7 @@ var useEditable = function (_a) {
|
|
|
186
190
|
var hideEditor = (0, react_1.useCallback)(function () {
|
|
187
191
|
setShowEditor(false);
|
|
188
192
|
currentActiveCellRef.current = null;
|
|
193
|
+
isViewOnlyRef.current = false;
|
|
189
194
|
// Clear value
|
|
190
195
|
setValue("");
|
|
191
196
|
setFormulaMode(false);
|
|
@@ -270,7 +275,7 @@ var useEditable = function (_a) {
|
|
|
270
275
|
* @param initialValue
|
|
271
276
|
*/
|
|
272
277
|
var makeEditable = (0, use_callback_ref_1.useCallbackRef)((0, react_1.useCallback)(function (sheetId, cell, initialValue, options) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
|
|
273
|
-
var _a, _b, autoFocus, _c, isPointerDevice, _d, fromKeystroke, coords, cellValue, textFormatRuns_1, value_1, scrollPosition, cellPosition_1, _e, x, _f, y, _g, width, cellEditorBuffer, isRightAligned, frozenColumnOffset, maxWidth, isProgrammaticValue;
|
|
278
|
+
var _a, _b, autoFocus, _c, isPointerDevice, _d, fromKeystroke, coords, isEditable, isViewOnly, cellValue, textFormatRuns_1, value_1, scrollPosition, cellPosition_1, _e, x, _f, y, _g, width, cellEditorBuffer, isRightAligned, frozenColumnOffset, maxWidth, isProgrammaticValue;
|
|
274
279
|
var _h, _j, _k;
|
|
275
280
|
return tslib_1.__generator(this, function (_l) {
|
|
276
281
|
_a = options !== null && options !== void 0 ? options : {}, _b = _a.autoFocus, autoFocus = _b === void 0 ? true : _b, _c = _a.isPointerDevice, isPointerDevice = _c === void 0 ? false : _c, _d = _a.fromKeystroke, fromKeystroke = _d === void 0 ? false : _d;
|
|
@@ -283,8 +288,11 @@ var useEditable = function (_a) {
|
|
|
283
288
|
setActiveEditor(cellEditorInstance);
|
|
284
289
|
// Reset scroll position
|
|
285
290
|
setIsScrolling(false);
|
|
291
|
+
isEditable = canEdit(sheetId, coords);
|
|
292
|
+
isViewOnly = !isEditable && initialValue === void 0 && canView(sheetId, coords);
|
|
286
293
|
/* Call on before edit */
|
|
287
|
-
if (
|
|
294
|
+
if (isEditable || isViewOnly) {
|
|
295
|
+
isViewOnlyRef.current = isViewOnly;
|
|
288
296
|
/* Let user modify coords before edit */
|
|
289
297
|
onBeforeEdit === null || onBeforeEdit === void 0 ? void 0 : onBeforeEdit(sheetId, coords);
|
|
290
298
|
/* Focus */
|
|
@@ -323,7 +331,7 @@ var useEditable = function (_a) {
|
|
|
323
331
|
* So that during mousedown, onSubmit gets called
|
|
324
332
|
*/
|
|
325
333
|
isEnteringNewValue.current =
|
|
326
|
-
initialValue !== void 0 || cellValue === void 0;
|
|
334
|
+
!isViewOnly && (initialValue !== void 0 || cellValue === void 0);
|
|
327
335
|
isDirtyRef.current = !!initialValue;
|
|
328
336
|
// Todo
|
|
329
337
|
initialValueRef.current = cellValue;
|
|
@@ -342,7 +350,8 @@ var useEditable = function (_a) {
|
|
|
342
350
|
*/
|
|
343
351
|
setValue(value_1);
|
|
344
352
|
setTextFormatRuns(textFormatRuns_1);
|
|
345
|
-
|
|
353
|
+
// A formula on view is text: no reference picking, no function help.
|
|
354
|
+
setFormulaMode(!isViewOnly && (0, utils_1.isAFormula)(value_1));
|
|
346
355
|
}
|
|
347
356
|
}
|
|
348
357
|
return [2 /*return*/];
|
|
@@ -350,6 +359,7 @@ var useEditable = function (_a) {
|
|
|
350
359
|
}); }, [
|
|
351
360
|
onBeforeEdit,
|
|
352
361
|
canEdit,
|
|
362
|
+
canView,
|
|
353
363
|
getValue,
|
|
354
364
|
getTextFormatRuns,
|
|
355
365
|
getCellPosition,
|
|
@@ -537,10 +547,30 @@ var useEditable = function (_a) {
|
|
|
537
547
|
e.preventDefault();
|
|
538
548
|
}
|
|
539
549
|
else if (key === "Delete" || key === "Backspace") {
|
|
550
|
+
var isExcelKeymap = keymap === "excel";
|
|
551
|
+
// Excel: Shift+Backspace selects only the active cell of a
|
|
552
|
+
// selection, Shift+Delete cuts the selection
|
|
553
|
+
if (isExcelKeymap && nativeEvent.shiftKey) {
|
|
554
|
+
if (key === "Backspace") {
|
|
555
|
+
if (selections.length) {
|
|
556
|
+
clearSelections === null || clearSelections === void 0 ? void 0 : clearSelections();
|
|
557
|
+
}
|
|
558
|
+
e.preventDefault();
|
|
559
|
+
}
|
|
560
|
+
else if (onRequestCut) {
|
|
561
|
+
onRequestCut();
|
|
562
|
+
e.preventDefault();
|
|
563
|
+
}
|
|
564
|
+
return;
|
|
565
|
+
}
|
|
566
|
+
// Excel's Backspace clears the active cell alone and edits it;
|
|
567
|
+
// Delete (and Sheets' Backspace) clears every selected cell
|
|
568
|
+
var clearsActiveCellOnly = isExcelKeymap && key === "Backspace";
|
|
569
|
+
var targets = clearsActiveCellOnly ? config_1.DEFAULT_ARRAY : selections;
|
|
540
570
|
// Excel refuses Delete / Backspace when any selected cell is a locked cell of a
|
|
541
571
|
// protected sheet — the same `canEdit` gate typing goes through in `makeEditable`
|
|
542
572
|
// (rowsncolumns/spreadsheet#939 U-35). Nothing is cleared; Excel's dialog is shown.
|
|
543
|
-
if (!canEditSelection(sheetId, activeCell,
|
|
573
|
+
if (!canEditSelection(sheetId, activeCell, targets)) {
|
|
544
574
|
void showValidationAlert({
|
|
545
575
|
style: "stop",
|
|
546
576
|
title: utils_1.SHEET_PROTECTION_ERROR_TITLE,
|
|
@@ -550,10 +580,13 @@ var useEditable = function (_a) {
|
|
|
550
580
|
e.preventDefault();
|
|
551
581
|
return;
|
|
552
582
|
}
|
|
553
|
-
onDelete === null || onDelete === void 0 ? void 0 : onDelete(sheetId, activeCell,
|
|
583
|
+
onDelete === null || onDelete === void 0 ? void 0 : onDelete(sheetId, activeCell, targets);
|
|
554
584
|
// Delete value
|
|
555
585
|
setValue("");
|
|
556
586
|
setFormulaMode(false);
|
|
587
|
+
if (clearsActiveCellOnly) {
|
|
588
|
+
makeEditable(sheetId, { rowIndex: rowIndex, columnIndex: columnIndex }, "");
|
|
589
|
+
}
|
|
557
590
|
}
|
|
558
591
|
else {
|
|
559
592
|
var initialValue = isEnter || isF2 // Enter key
|
|
@@ -587,6 +620,9 @@ var useEditable = function (_a) {
|
|
|
587
620
|
onEditorKeyDown,
|
|
588
621
|
onKeyDown,
|
|
589
622
|
enableEditOnEnterKey,
|
|
623
|
+
keymap,
|
|
624
|
+
clearSelections,
|
|
625
|
+
onRequestCut,
|
|
590
626
|
shouldHandleKeyDown,
|
|
591
627
|
setFormulaMode,
|
|
592
628
|
]);
|
|
@@ -693,6 +729,19 @@ var useEditable = function (_a) {
|
|
|
693
729
|
/* Save the value */
|
|
694
730
|
var handleSubmit = (0, use_callback_ref_1.useCallbackRef)((0, react_1.useCallback)(function (newValue, textFormatRuns, sheetId, activeCell, nextActiveCell, shouldFocusGrid, options) {
|
|
695
731
|
if (shouldFocusGrid === void 0) { shouldFocusGrid = true; }
|
|
732
|
+
/* A read-only view commits nothing: the commit key closes it and
|
|
733
|
+
* moves the active cell where the commit would have. */
|
|
734
|
+
if (isViewOnlyRef.current) {
|
|
735
|
+
hideEditor();
|
|
736
|
+
setTextFormatRuns(undefined);
|
|
737
|
+
onCancel === null || onCancel === void 0 ? void 0 : onCancel();
|
|
738
|
+
if (nextActiveCell) {
|
|
739
|
+
setActiveCell === null || setActiveCell === void 0 ? void 0 : setActiveCell(sheetId, nextActiveCell);
|
|
740
|
+
}
|
|
741
|
+
if (shouldFocusGrid)
|
|
742
|
+
focusGrid();
|
|
743
|
+
return;
|
|
744
|
+
}
|
|
696
745
|
/**
|
|
697
746
|
* Hide the editor first, so that we can handle onBlur events
|
|
698
747
|
* 1. Editor hides -> Submit
|
|
@@ -710,6 +759,8 @@ var useEditable = function (_a) {
|
|
|
710
759
|
focusGrid();
|
|
711
760
|
}, [
|
|
712
761
|
onSubmit,
|
|
762
|
+
onCancel,
|
|
763
|
+
setActiveCell,
|
|
713
764
|
setTextFormatRuns,
|
|
714
765
|
setValue,
|
|
715
766
|
hideEditor,
|
|
@@ -782,7 +833,8 @@ var useEditable = function (_a) {
|
|
|
782
833
|
setInitialActiveCell,
|
|
783
834
|
]);
|
|
784
835
|
var handleChange = (0, use_callback_ref_1.useCallbackRef)((0, react_1.useCallback)(function (newValue, textFormatRuns, sheetId, activeCell) {
|
|
785
|
-
|
|
836
|
+
// A read-only view owns no entry: nothing it reports is state or a change.
|
|
837
|
+
if (!currentActiveCellRef.current || isViewOnlyRef.current) {
|
|
786
838
|
return;
|
|
787
839
|
}
|
|
788
840
|
// Update state
|
|
@@ -877,6 +929,7 @@ var useEditable = function (_a) {
|
|
|
877
929
|
containerHeight: containerHeight,
|
|
878
930
|
isPointerDevice: isPointerDeviceRef.current,
|
|
879
931
|
navigationMode: !isEditInProgress,
|
|
932
|
+
readOnly: isEditInProgress && isViewOnlyRef.current,
|
|
880
933
|
onCopy: handleCopy,
|
|
881
934
|
onPaste: handlePaste,
|
|
882
935
|
onCut: handleCut,
|
|
@@ -891,6 +944,10 @@ var useEditable = function (_a) {
|
|
|
891
944
|
*/
|
|
892
945
|
var editCell = (0, use_callback_ref_1.useCallbackRef)((0, react_1.useCallback)(function (sheetId, cell, initialValue, options) {
|
|
893
946
|
if (isEditInProgress && cellEditorInstance && initialValue != null) {
|
|
947
|
+
// A read-only view takes no text.
|
|
948
|
+
if (isViewOnlyRef.current) {
|
|
949
|
+
return;
|
|
950
|
+
}
|
|
894
951
|
// Already editing — insert at the cursor instead of reopening.
|
|
895
952
|
cellEditorInstance.update(initialValue);
|
|
896
953
|
cellEditorInstance.focus(true);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-editor-change.d.ts","sourceRoot":"","sources":["../../../hooks/use-editor-change.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAElB,KAAK,aAAa,EACnB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAEL,KAAK,aAAa,EAEnB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"use-editor-change.d.ts","sourceRoot":"","sources":["../../../hooks/use-editor-change.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAElB,KAAK,aAAa,EACnB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAEL,KAAK,aAAa,EAEnB,MAAM,qBAAqB,CAAC;AAgB7B,OAAO,KAAK,EACV,eAAe,EACf,mBAAmB,EACpB,MAAM,mCAAmC,CAAC;AAG3C,KAAK,oBAAoB,GAAG;IAC1B,UAAU,EAAE,aAAa,CAAC,mBAAmB,CAAC,EAAE,CAAC;IACjD,wBAAwB,CACtB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,aAAa,GAClB,aAAa,CAAC,mBAAmB,CAAC,EAAE,CAAC;IACxC,mBAAmB,EAAE,eAAe,CAAC,qBAAqB,CAAC,CAAC;IAC5D,kBAAkB,CAAC,EAAE,eAAe,CAAC,oBAAoB,CAAC,CAAC;IAC3D,kBAAkB,CAAC,EAAE,eAAe,CAAC,oBAAoB,CAAC,CAAC;IAC3D,uGAAuG;IACvG,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,uHAO7B,oBAAoB,aAUV,MAAM,kBACG,aAAa,EAAE,GAAG,SAAS,GAAG,IAAI,kBAClC,MAAM,cACV,aAAa,SAqE9B,CAAC"}
|
|
@@ -11,6 +11,7 @@ var formula_selections_atom_1 = require("../atoms/formula-selections.atom");
|
|
|
11
11
|
var config_1 = require("../config");
|
|
12
12
|
var useEditorChange = function (_a) {
|
|
13
13
|
var selections = _a.selections, getSelectionsFromFormula = _a.getSelectionsFromFormula, onChangeEditorValue = _a.onChangeEditorValue, onChangeSelections = _a.onChangeSelections, onChangeActiveCell = _a.onChangeActiveCell, formulaLocale = _a.formulaLocale;
|
|
14
|
+
var formulaMode = (0, formula_mode_atom_1.useFormulaModeValue)();
|
|
14
15
|
var setFormulaMode = (0, formula_mode_atom_1.useSetFormulaMode)();
|
|
15
16
|
var setFormulaSelections = (0, formula_selections_atom_1.useSetFormulaSelections)();
|
|
16
17
|
var formulaSelections = (0, formula_selections_atom_1.useFormulaSelections)();
|
|
@@ -38,14 +39,18 @@ var useEditorChange = function (_a) {
|
|
|
38
39
|
: editingCellCoordinate &&
|
|
39
40
|
(0, grid_1.isEqualCells)(editingCellCoordinate, activeCell);
|
|
40
41
|
/**
|
|
41
|
-
*
|
|
42
|
+
* The ranges picked while the entry was a formula are appended to the
|
|
43
|
+
* sheet's selection (they are its reference highlights), so a formula
|
|
44
|
+
* deleted mid-edit would leave them behind: leaving formula mode drops
|
|
45
|
+
* them. A constant entry never picked any, and the selection the edit
|
|
46
|
+
* started with stays — Ctrl+Enter fills it and the Name Box keeps
|
|
47
|
+
* reading it, as in Excel (#1176).
|
|
42
48
|
*/
|
|
43
49
|
if (isFormula) {
|
|
44
50
|
var selections_1 = getSelectionsFromFormula(value, activeCell);
|
|
45
51
|
setFormulaSelections === null || setFormulaSelections === void 0 ? void 0 : setFormulaSelections(selections_1);
|
|
46
52
|
}
|
|
47
|
-
else if (selections.length) {
|
|
48
|
-
// Clear selections
|
|
53
|
+
else if (formulaMode && selections.length) {
|
|
49
54
|
onChangeSelections === null || onChangeSelections === void 0 ? void 0 : onChangeSelections(editingSheetId, config_1.DEFAULT_ARRAY, true);
|
|
50
55
|
}
|
|
51
56
|
if (shouldResetActiveCell && editingCellCoordinate) {
|
|
@@ -58,6 +63,7 @@ var useEditorChange = function (_a) {
|
|
|
58
63
|
}, [
|
|
59
64
|
selections,
|
|
60
65
|
editingCellCoordinate,
|
|
66
|
+
formulaMode,
|
|
61
67
|
formulaSelections,
|
|
62
68
|
setFormulaMode,
|
|
63
69
|
getSelectionsFromFormula,
|
|
@@ -2,10 +2,11 @@ import type React from "react";
|
|
|
2
2
|
import type { CanvasGridProps } from "../components/canvas-grid/typings";
|
|
3
3
|
type UseEditorKeydownProps = {
|
|
4
4
|
sheetId: number;
|
|
5
|
+
keymap?: CanvasGridProps["keymap"];
|
|
5
6
|
onSelectPreviousSheet: CanvasGridProps["onSelectPreviousSheet"];
|
|
6
7
|
onSelectNextSheet: CanvasGridProps["onSelectNextSheet"];
|
|
7
8
|
onKeyDownSelection?(e: React.KeyboardEvent<HTMLElement>): void;
|
|
8
9
|
};
|
|
9
|
-
export declare const useEditorKeydown: ({ sheetId, onSelectPreviousSheet, onSelectNextSheet, onKeyDownSelection, }: UseEditorKeydownProps) => (e: React.KeyboardEvent<HTMLDivElement>) => void;
|
|
10
|
+
export declare const useEditorKeydown: ({ sheetId, keymap, onSelectPreviousSheet, onSelectNextSheet, onKeyDownSelection, }: UseEditorKeydownProps) => (e: React.KeyboardEvent<HTMLDivElement>) => void;
|
|
10
11
|
export {};
|
|
11
12
|
//# sourceMappingURL=use-editor-keydown.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-editor-keydown.d.ts","sourceRoot":"","sources":["../../../hooks/use-editor-keydown.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAGzE,KAAK,qBAAqB,GAAG;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,qBAAqB,EAAE,eAAe,CAAC,uBAAuB,CAAC,CAAC;IAChE,iBAAiB,EAAE,eAAe,CAAC,mBAAmB,CAAC,CAAC;IACxD,kBAAkB,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;CAChE,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,
|
|
1
|
+
{"version":3,"file":"use-editor-keydown.d.ts","sourceRoot":"","sources":["../../../hooks/use-editor-keydown.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAGzE,KAAK,qBAAqB,GAAG;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC;IACnC,qBAAqB,EAAE,eAAe,CAAC,uBAAuB,CAAC,CAAC;IAChE,iBAAiB,EAAE,eAAe,CAAC,mBAAmB,CAAC,CAAC;IACxD,kBAAkB,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;CAChE,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,oFAM9B,qBAAqB,SAKd,KAAK,CAAC,aAAa,CAAC,cAAc,CAAC,SAyC5C,CAAC"}
|
|
@@ -7,16 +7,17 @@ var formula_mode_atom_1 = require("../atoms/formula-mode.atom");
|
|
|
7
7
|
var formula_selection_state_atom_1 = require("../atoms/formula-selection-state.atom");
|
|
8
8
|
var use_callback_ref_1 = require("./use-callback-ref");
|
|
9
9
|
var useEditorKeydown = function (_a) {
|
|
10
|
-
var sheetId = _a.sheetId, onSelectPreviousSheet = _a.onSelectPreviousSheet, onSelectNextSheet = _a.onSelectNextSheet, onKeyDownSelection = _a.onKeyDownSelection;
|
|
10
|
+
var sheetId = _a.sheetId, _b = _a.keymap, keymap = _b === void 0 ? "sheets" : _b, onSelectPreviousSheet = _a.onSelectPreviousSheet, onSelectNextSheet = _a.onSelectNextSheet, onKeyDownSelection = _a.onKeyDownSelection;
|
|
11
11
|
var formulaMode = (0, formula_mode_atom_1.useFormulaModeValue)();
|
|
12
12
|
var canSelectCells = (0, formula_selection_state_atom_1.useFormualSelectionState)().canSelectCells;
|
|
13
13
|
return (0, use_callback_ref_1.useCallbackRef)((0, react_1.useCallback)(function (e) {
|
|
14
14
|
var isAltKey = e.altKey;
|
|
15
15
|
var isArrowKey = (0, utils_1.isAnArrowKey)(e.key);
|
|
16
16
|
/**
|
|
17
|
-
* User can navigate between sheets
|
|
17
|
+
* User can navigate between sheets (Sheets; Excel's ⌥↑ / ⌥↓ are
|
|
18
|
+
* not sheet keys, so the Excel keymap leaves them alone)
|
|
18
19
|
*/
|
|
19
|
-
if (isAltKey && isArrowKey) {
|
|
20
|
+
if (isAltKey && isArrowKey && keymap !== "excel") {
|
|
20
21
|
switch (e.key) {
|
|
21
22
|
case "ArrowUp":
|
|
22
23
|
onSelectPreviousSheet === null || onSelectPreviousSheet === void 0 ? void 0 : onSelectPreviousSheet(sheetId, e);
|
|
@@ -37,6 +38,7 @@ var useEditorKeydown = function (_a) {
|
|
|
37
38
|
}
|
|
38
39
|
}, [
|
|
39
40
|
sheetId,
|
|
41
|
+
keymap,
|
|
40
42
|
onSelectPreviousSheet,
|
|
41
43
|
onSelectNextSheet,
|
|
42
44
|
formulaMode,
|
|
@@ -39,7 +39,7 @@ export type UseFilterProps = {
|
|
|
39
39
|
tables?: TableView[] | null;
|
|
40
40
|
};
|
|
41
41
|
export declare const useFilter: ({ scale, sheetId, theme, getActualCellCoords, getScrollPosition, getCellOffsetFromCoords, getFormattedValue, getEffectiveFormat, conditionalFormatByCell, getFilterComponent, isFrozenRow, isFrozenColumn, isHiddenRowByFilter, onSortTable, onFilterTable, onInsertTableColumn, onDeleteTableColumn, getFilterValues, getFilterColors, basicFilter, tables, }: UseFilterProps) => {
|
|
42
|
-
showFilter: (cell: CellInterface, filterOrTable: FilterView | TableView) =>
|
|
42
|
+
showFilter: (cell: CellInterface, filterOrTable: FilterView | TableView) => boolean;
|
|
43
43
|
hideFilter: () => void;
|
|
44
44
|
filterComponent: ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | null;
|
|
45
45
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-filter.d.ts","sourceRoot":"","sources":["../../../hooks/use-filter.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,YAAY,EAClB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAG1C,OAAO,KAAK,EACV,eAAe,EACf,gBAAgB,EACjB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAEnE,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAGlE,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,gBAAgB,CAAC;IACxB,mBAAmB,CAAC,MAAM,EAAE,aAAa,GAAG,aAAa,GAAG,SAAS,CAAC;IACtE,iBAAiB,IAAI,YAAY,GAAG,SAAS,CAAC;IAC9C,uBAAuB,CAAC,MAAM,EAAE,aAAa,GAAG,YAAY,GAAG,SAAS,CAAC;IACzE,iBAAiB,CACf,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,GAClB,MAAM,GAAG,SAAS,CAAC;IACtB;;;;;OAKG;IACH,kBAAkB,CAAC,CACjB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,GAClB,UAAU,GAAG,SAAS,GAAG,IAAI,CAAC;IACjC;;;;;OAKG;IACH,uBAAuB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,GAAG,SAAS,CAAC,CAAC;IAC9D,kBAAkB,CAAC,KAAK,EAAE,kBAAkB,GAAG,YAAY,GAAG,IAAI,CAAC;IACnE,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IACvC,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC;IAC7C,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAC/C,WAAW,EAAE,eAAe,CAAC,aAAa,CAAC,CAAC;IAC5C,aAAa,EAAE,eAAe,CAAC,eAAe,CAAC,CAAC;IAChD,mBAAmB,EAAE,eAAe,CAAC,qBAAqB,CAAC,CAAC;IAC5D,mBAAmB,EAAE,eAAe,CAAC,qBAAqB,CAAC,CAAC;IAG5D,eAAe,CAAC,EAAE,eAAe,CAAC,iBAAiB,CAAC,CAAC;IAIrD,eAAe,CAAC,EAAE,eAAe,CAAC,iBAAiB,CAAC,CAAC;IAIrD,WAAW,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IAChC,MAAM,CAAC,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;CAC7B,CAAC;AAQF,eAAO,MAAM,SAAS,GAAI,gWAsBvB,cAAc;
|
|
1
|
+
{"version":3,"file":"use-filter.d.ts","sourceRoot":"","sources":["../../../hooks/use-filter.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,YAAY,EAClB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAG1C,OAAO,KAAK,EACV,eAAe,EACf,gBAAgB,EACjB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAEnE,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAGlE,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,gBAAgB,CAAC;IACxB,mBAAmB,CAAC,MAAM,EAAE,aAAa,GAAG,aAAa,GAAG,SAAS,CAAC;IACtE,iBAAiB,IAAI,YAAY,GAAG,SAAS,CAAC;IAC9C,uBAAuB,CAAC,MAAM,EAAE,aAAa,GAAG,YAAY,GAAG,SAAS,CAAC;IACzE,iBAAiB,CACf,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,GAClB,MAAM,GAAG,SAAS,CAAC;IACtB;;;;;OAKG;IACH,kBAAkB,CAAC,CACjB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,GAClB,UAAU,GAAG,SAAS,GAAG,IAAI,CAAC;IACjC;;;;;OAKG;IACH,uBAAuB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,GAAG,SAAS,CAAC,CAAC;IAC9D,kBAAkB,CAAC,KAAK,EAAE,kBAAkB,GAAG,YAAY,GAAG,IAAI,CAAC;IACnE,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IACvC,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC;IAC7C,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAC/C,WAAW,EAAE,eAAe,CAAC,aAAa,CAAC,CAAC;IAC5C,aAAa,EAAE,eAAe,CAAC,eAAe,CAAC,CAAC;IAChD,mBAAmB,EAAE,eAAe,CAAC,qBAAqB,CAAC,CAAC;IAC5D,mBAAmB,EAAE,eAAe,CAAC,qBAAqB,CAAC,CAAC;IAG5D,eAAe,CAAC,EAAE,eAAe,CAAC,iBAAiB,CAAC,CAAC;IAIrD,eAAe,CAAC,EAAE,eAAe,CAAC,iBAAiB,CAAC,CAAC;IAIrD,WAAW,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IAChC,MAAM,CAAC,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;CAC7B,CAAC;AAQF,eAAO,MAAM,SAAS,GAAI,gWAsBvB,cAAc;uBA0BN,aAAa,iBAAiB,UAAU,GAAG,SAAS,KAAG,OAAO;;;CAiNxE,CAAC"}
|
|
@@ -34,7 +34,8 @@ var useFilter = function (_a) {
|
|
|
34
34
|
}
|
|
35
35
|
return ((_a = tables === null || tables === void 0 ? void 0 : tables.find(function (table) { return table.id === activeFilter.id; })) !== null && _a !== void 0 ? _a : activeFilter);
|
|
36
36
|
}, [activeFilter, basicFilter, tables]);
|
|
37
|
-
// Show filter
|
|
37
|
+
// Show filter. Returns whether the popup opened — a cell the grid cannot
|
|
38
|
+
// position (not laid out yet) opens nothing.
|
|
38
39
|
var showFilter = (0, react_1.useCallback)(function (cell, filterOrTable) {
|
|
39
40
|
var _a;
|
|
40
41
|
var coords = (_a = getActualCellCoords(cell)) !== null && _a !== void 0 ? _a : cell;
|
|
@@ -42,7 +43,7 @@ var useFilter = function (_a) {
|
|
|
42
43
|
var cellPosition = getCellOffsetFromCoords(coords);
|
|
43
44
|
// Stop if cell is not available
|
|
44
45
|
if ((0, utils_1.isNil)(cellPosition) || (0, utils_1.isNil)(scrollPosition)) {
|
|
45
|
-
return;
|
|
46
|
+
return false;
|
|
46
47
|
}
|
|
47
48
|
// Set filter cell
|
|
48
49
|
setFilterCell(coords);
|
|
@@ -60,6 +61,7 @@ var useFilter = function (_a) {
|
|
|
60
61
|
});
|
|
61
62
|
// Show filter
|
|
62
63
|
setIsOpen(true);
|
|
64
|
+
return true;
|
|
63
65
|
}, [
|
|
64
66
|
getActualCellCoords,
|
|
65
67
|
getScrollPosition,
|