@odoo/o-spreadsheet 16.4.0 → 16.4.2
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/o-spreadsheet.cjs.js +68 -44
- package/dist/o-spreadsheet.d.ts +6 -6
- package/dist/o-spreadsheet.esm.js +68 -44
- package/dist/o-spreadsheet.iife.js +68 -44
- package/dist/o-spreadsheet.iife.min.js +321 -316
- package/package.json +1 -1
|
@@ -112,8 +112,8 @@ const SELECTION_BORDER_COLOR = "#3266ca";
|
|
|
112
112
|
const HEADER_BORDER_COLOR = "#C0C0C0";
|
|
113
113
|
const CELL_BORDER_COLOR = "#E2E3E3";
|
|
114
114
|
const BACKGROUND_CHART_COLOR = "#FFFFFF";
|
|
115
|
-
const MENU_ITEM_DISABLED_COLOR = "#CACACA";
|
|
116
115
|
const BG_HOVER_COLOR = "#EBEBEB";
|
|
116
|
+
const DISABLED_TEXT_COLOR = "#CACACA";
|
|
117
117
|
const DEFAULT_COLOR_SCALE_MIDPOINT_COLOR = 0xb6d7a8;
|
|
118
118
|
const LINK_COLOR = "#01666b";
|
|
119
119
|
const FILTERS_COLOR = "#188038";
|
|
@@ -4055,7 +4055,6 @@ const readonlyAllowedCommands = new Set([
|
|
|
4055
4055
|
"SET_VIEWPORT_OFFSET",
|
|
4056
4056
|
"SELECT_SEARCH_NEXT_MATCH",
|
|
4057
4057
|
"SELECT_SEARCH_PREVIOUS_MATCH",
|
|
4058
|
-
"REFRESH_SEARCH",
|
|
4059
4058
|
"UPDATE_SEARCH",
|
|
4060
4059
|
"CLEAR_SEARCH",
|
|
4061
4060
|
"EVALUATE_CELLS",
|
|
@@ -5994,7 +5993,7 @@ css /* scss */ `
|
|
|
5994
5993
|
}
|
|
5995
5994
|
}
|
|
5996
5995
|
&.disabled {
|
|
5997
|
-
color: ${
|
|
5996
|
+
color: ${DISABLED_TEXT_COLOR};
|
|
5998
5997
|
cursor: not-allowed;
|
|
5999
5998
|
}
|
|
6000
5999
|
}
|
|
@@ -22694,6 +22693,7 @@ class FindAndReplacePanel extends owl.Component {
|
|
|
22694
22693
|
state = owl.useState(this.initialState());
|
|
22695
22694
|
debounceTimeoutId;
|
|
22696
22695
|
showFormulaState = false;
|
|
22696
|
+
debouncedUpdateSearch;
|
|
22697
22697
|
findAndReplaceRef = owl.useRef("findAndReplace");
|
|
22698
22698
|
get hasSearchResult() {
|
|
22699
22699
|
return this.env.model.getters.getCurrentSelectedMatchIndex() !== null;
|
|
@@ -22703,11 +22703,16 @@ class FindAndReplacePanel extends owl.Component {
|
|
|
22703
22703
|
}
|
|
22704
22704
|
setup() {
|
|
22705
22705
|
this.showFormulaState = this.env.model.getters.shouldShowFormulas();
|
|
22706
|
+
this.debouncedUpdateSearch = debounce(this.updateSearch.bind(this), 200);
|
|
22706
22707
|
owl.onMounted(() => this.focusInput());
|
|
22707
22708
|
owl.onWillUnmount(() => {
|
|
22708
22709
|
this.env.model.dispatch("CLEAR_SEARCH");
|
|
22709
22710
|
this.env.model.dispatch("SET_FORMULA_VISIBILITY", { show: this.showFormulaState });
|
|
22710
22711
|
});
|
|
22712
|
+
owl.useEffect(() => {
|
|
22713
|
+
this.state.searchOptions.searchFormulas = this.env.model.getters.shouldShowFormulas();
|
|
22714
|
+
this.searchFormulas();
|
|
22715
|
+
}, () => [this.env.model.getters.shouldShowFormulas()]);
|
|
22711
22716
|
}
|
|
22712
22717
|
onInput(ev) {
|
|
22713
22718
|
this.state.toSearch = ev.target.value;
|
|
@@ -22727,10 +22732,6 @@ class FindAndReplacePanel extends owl.Component {
|
|
|
22727
22732
|
this.replace();
|
|
22728
22733
|
}
|
|
22729
22734
|
}
|
|
22730
|
-
onFocusSidePanel() {
|
|
22731
|
-
this.state.searchOptions.searchFormulas = this.env.model.getters.shouldShowFormulas();
|
|
22732
|
-
this.env.model.dispatch("REFRESH_SEARCH");
|
|
22733
|
-
}
|
|
22734
22735
|
searchFormulas() {
|
|
22735
22736
|
this.env.model.dispatch("SET_FORMULA_VISIBILITY", {
|
|
22736
22737
|
show: this.state.searchOptions.searchFormulas,
|
|
@@ -22749,13 +22750,6 @@ class FindAndReplacePanel extends owl.Component {
|
|
|
22749
22750
|
searchOptions: this.state.searchOptions,
|
|
22750
22751
|
});
|
|
22751
22752
|
}
|
|
22752
|
-
debouncedUpdateSearch() {
|
|
22753
|
-
clearTimeout(this.debounceTimeoutId);
|
|
22754
|
-
this.debounceTimeoutId = setTimeout(() => {
|
|
22755
|
-
this.updateSearch();
|
|
22756
|
-
this.debounceTimeoutId = undefined;
|
|
22757
|
-
}, 400);
|
|
22758
|
-
}
|
|
22759
22753
|
replace() {
|
|
22760
22754
|
this.env.model.dispatch("REPLACE_SEARCH", {
|
|
22761
22755
|
replaceWith: this.state.replaceWith,
|
|
@@ -24695,6 +24689,15 @@ function dragFigureForResize(initialFigure, dirX, dirY, { x: mouseX, y: mouseY }
|
|
|
24695
24689
|
y = initialFigure.y - deltaY;
|
|
24696
24690
|
}
|
|
24697
24691
|
}
|
|
24692
|
+
// Restrict resizing if x or y reaches header boundaries
|
|
24693
|
+
if (x < 0) {
|
|
24694
|
+
width += x;
|
|
24695
|
+
x = 0;
|
|
24696
|
+
}
|
|
24697
|
+
if (y < 0) {
|
|
24698
|
+
height += y;
|
|
24699
|
+
y = 0;
|
|
24700
|
+
}
|
|
24698
24701
|
return { ...initialFigure, x, y, width, height };
|
|
24699
24702
|
}
|
|
24700
24703
|
|
|
@@ -38534,6 +38537,7 @@ class FindAndReplacePlugin extends UIPlugin {
|
|
|
38534
38537
|
searchFormulas: false,
|
|
38535
38538
|
};
|
|
38536
38539
|
toSearch = "";
|
|
38540
|
+
isSearchDirty = false;
|
|
38537
38541
|
// ---------------------------------------------------------------------------
|
|
38538
38542
|
// Command Handling
|
|
38539
38543
|
// ---------------------------------------------------------------------------
|
|
@@ -38557,18 +38561,33 @@ class FindAndReplacePlugin extends UIPlugin {
|
|
|
38557
38561
|
case "REPLACE_ALL_SEARCH":
|
|
38558
38562
|
this.replaceAll(cmd.replaceWith);
|
|
38559
38563
|
break;
|
|
38564
|
+
case "EVALUATE_CELLS":
|
|
38565
|
+
case "UPDATE_CELL":
|
|
38566
|
+
case "REMOVE_FILTER_TABLE":
|
|
38567
|
+
case "UPDATE_FILTER":
|
|
38568
|
+
this.isSearchDirty = true;
|
|
38569
|
+
break;
|
|
38560
38570
|
case "UNDO":
|
|
38561
38571
|
case "REDO":
|
|
38562
38572
|
case "REMOVE_COLUMNS_ROWS":
|
|
38573
|
+
case "HIDE_COLUMNS_ROWS":
|
|
38574
|
+
case "UNHIDE_COLUMNS_ROWS":
|
|
38563
38575
|
case "ADD_COLUMNS_ROWS":
|
|
38564
|
-
|
|
38576
|
+
case "EVALUATE_CELLS":
|
|
38577
|
+
case "UPDATE_CELL":
|
|
38578
|
+
this.isSearchDirty = true;
|
|
38565
38579
|
break;
|
|
38566
38580
|
case "ACTIVATE_SHEET":
|
|
38567
|
-
case "REFRESH_SEARCH":
|
|
38568
38581
|
this.refreshSearch();
|
|
38569
38582
|
break;
|
|
38570
38583
|
}
|
|
38571
38584
|
}
|
|
38585
|
+
finalize() {
|
|
38586
|
+
if (this.isSearchDirty) {
|
|
38587
|
+
this.refreshSearch();
|
|
38588
|
+
this.isSearchDirty = false;
|
|
38589
|
+
}
|
|
38590
|
+
}
|
|
38572
38591
|
// ---------------------------------------------------------------------------
|
|
38573
38592
|
// Getters
|
|
38574
38593
|
// ---------------------------------------------------------------------------
|
|
@@ -38624,6 +38643,11 @@ class FindAndReplacePlugin extends UIPlugin {
|
|
|
38624
38643
|
if (this.toSearch) {
|
|
38625
38644
|
for (const cell of Object.values(cells)) {
|
|
38626
38645
|
const { col, row } = this.getters.getCellPosition(cell.id);
|
|
38646
|
+
const isColHidden = this.getters.isColHidden(sheetId, col);
|
|
38647
|
+
const isRowHidden = this.getters.isRowHidden(sheetId, row);
|
|
38648
|
+
if (isColHidden || isRowHidden) {
|
|
38649
|
+
continue;
|
|
38650
|
+
}
|
|
38627
38651
|
if (cell &&
|
|
38628
38652
|
this.currentSearchRegex &&
|
|
38629
38653
|
this.currentSearchRegex.test(this.getSearchableString({ sheetId, col, row }))) {
|
|
@@ -38683,37 +38707,32 @@ class FindAndReplacePlugin extends UIPlugin {
|
|
|
38683
38707
|
// ---------------------------------------------------------------------------
|
|
38684
38708
|
// Replace
|
|
38685
38709
|
// ---------------------------------------------------------------------------
|
|
38686
|
-
|
|
38687
|
-
|
|
38688
|
-
*/
|
|
38689
|
-
replace(replaceWith) {
|
|
38690
|
-
if (this.selectedMatchIndex === null || !this.currentSearchRegex) {
|
|
38710
|
+
replaceMatch(selectedMatch, replaceWith) {
|
|
38711
|
+
if (!this.currentSearchRegex) {
|
|
38691
38712
|
return;
|
|
38692
38713
|
}
|
|
38693
|
-
const matches = this.searchMatches;
|
|
38694
|
-
const selectedMatch = matches[this.selectedMatchIndex];
|
|
38695
38714
|
const sheetId = this.getters.getActiveSheetId();
|
|
38696
38715
|
const cell = this.getters.getCell({ sheetId, ...selectedMatch });
|
|
38716
|
+
const { col, row } = selectedMatch;
|
|
38697
38717
|
if (cell?.isFormula && !this.searchOptions.searchFormulas) {
|
|
38698
|
-
|
|
38718
|
+
return;
|
|
38699
38719
|
}
|
|
38700
|
-
|
|
38701
|
-
|
|
38702
|
-
|
|
38703
|
-
|
|
38704
|
-
|
|
38705
|
-
|
|
38706
|
-
|
|
38707
|
-
|
|
38708
|
-
|
|
38709
|
-
|
|
38710
|
-
|
|
38711
|
-
|
|
38712
|
-
content: canonicalizeContent(newContent, this.getters.getLocale()),
|
|
38713
|
-
});
|
|
38714
|
-
this.searchMatches.splice(this.selectedMatchIndex, 1);
|
|
38715
|
-
this.selectNextCell(Direction.current);
|
|
38720
|
+
const replaceRegex = new RegExp(this.currentSearchRegex.source, this.currentSearchRegex.flags + "g");
|
|
38721
|
+
const toReplace = this.getSearchableString({ sheetId, col, row });
|
|
38722
|
+
const content = toReplace.replace(replaceRegex, replaceWith);
|
|
38723
|
+
const canonicalContent = canonicalizeContent(content, this.getters.getLocale());
|
|
38724
|
+
this.dispatch("UPDATE_CELL", { sheetId, col, row, content: canonicalContent });
|
|
38725
|
+
}
|
|
38726
|
+
/**
|
|
38727
|
+
* Replace the value of the currently selected match
|
|
38728
|
+
*/
|
|
38729
|
+
replace(replaceWith) {
|
|
38730
|
+
if (this.selectedMatchIndex === null) {
|
|
38731
|
+
return;
|
|
38716
38732
|
}
|
|
38733
|
+
const selectedMatch = this.searchMatches[this.selectedMatchIndex];
|
|
38734
|
+
this.replaceMatch(selectedMatch, replaceWith);
|
|
38735
|
+
this.selectNextCell(Direction.next);
|
|
38717
38736
|
}
|
|
38718
38737
|
/**
|
|
38719
38738
|
* Apply the replace function to all the matches one time.
|
|
@@ -38721,7 +38740,7 @@ class FindAndReplacePlugin extends UIPlugin {
|
|
|
38721
38740
|
replaceAll(replaceWith) {
|
|
38722
38741
|
const matchCount = this.searchMatches.length;
|
|
38723
38742
|
for (let i = 0; i < matchCount; i++) {
|
|
38724
|
-
this.
|
|
38743
|
+
this.replaceMatch(this.searchMatches[i], replaceWith);
|
|
38725
38744
|
}
|
|
38726
38745
|
}
|
|
38727
38746
|
getSearchableString(position) {
|
|
@@ -45724,6 +45743,11 @@ css /* scss */ `
|
|
|
45724
45743
|
.o-sidePanelButton:enabled {
|
|
45725
45744
|
cursor: pointer;
|
|
45726
45745
|
}
|
|
45746
|
+
|
|
45747
|
+
.o-sidePanelButton:disabled {
|
|
45748
|
+
color: ${DISABLED_TEXT_COLOR};
|
|
45749
|
+
}
|
|
45750
|
+
|
|
45727
45751
|
.o-sidePanelButton:last-child {
|
|
45728
45752
|
margin-right: 0px;
|
|
45729
45753
|
}
|
|
@@ -50516,6 +50540,6 @@ exports.setTranslationMethod = setTranslationMethod;
|
|
|
50516
50540
|
exports.tokenize = tokenize;
|
|
50517
50541
|
|
|
50518
50542
|
|
|
50519
|
-
__info__.version = '16.4.
|
|
50520
|
-
__info__.date = '2023-
|
|
50521
|
-
__info__.hash = '
|
|
50543
|
+
__info__.version = '16.4.2';
|
|
50544
|
+
__info__.date = '2023-08-07T12:49:47.066Z';
|
|
50545
|
+
__info__.hash = 'd5697c0';
|
package/dist/o-spreadsheet.d.ts
CHANGED
|
@@ -1419,7 +1419,9 @@ declare class FindAndReplacePlugin extends UIPlugin {
|
|
|
1419
1419
|
private currentSearchRegex;
|
|
1420
1420
|
private searchOptions;
|
|
1421
1421
|
private toSearch;
|
|
1422
|
+
private isSearchDirty;
|
|
1422
1423
|
handle(cmd: Command): void;
|
|
1424
|
+
finalize(): void;
|
|
1423
1425
|
getSearchMatches(): SearchMatch[];
|
|
1424
1426
|
getCurrentSelectedMatchIndex(): number | null;
|
|
1425
1427
|
/**
|
|
@@ -1451,6 +1453,7 @@ declare class FindAndReplacePlugin extends UIPlugin {
|
|
|
1451
1453
|
*/
|
|
1452
1454
|
private selectNextCell;
|
|
1453
1455
|
private clearSearch;
|
|
1456
|
+
private replaceMatch;
|
|
1454
1457
|
/**
|
|
1455
1458
|
* Replace the value of the currently selected match
|
|
1456
1459
|
*/
|
|
@@ -1678,9 +1681,9 @@ interface PositionDependentCommand {
|
|
|
1678
1681
|
row: number;
|
|
1679
1682
|
}
|
|
1680
1683
|
declare const invalidateEvaluationCommands: Set<"UPDATE_CELL" | "UPDATE_CELL_POSITION" | "CLEAR_CELL" | "DELETE_CONTENT" | "ADD_COLUMNS_ROWS" | "REMOVE_COLUMNS_ROWS" | "RESIZE_COLUMNS_ROWS" | "HIDE_COLUMNS_ROWS" | "UNHIDE_COLUMNS_ROWS" | "SET_GRID_LINES_VISIBILITY" | "FREEZE_COLUMNS" | "FREEZE_ROWS" | "UNFREEZE_COLUMNS_ROWS" | "UNFREEZE_COLUMNS" | "UNFREEZE_ROWS" | "ADD_MERGE" | "REMOVE_MERGE" | "CREATE_SHEET" | "DELETE_SHEET" | "DUPLICATE_SHEET" | "MOVE_SHEET" | "RENAME_SHEET" | "HIDE_SHEET" | "SHOW_SHEET" | "MOVE_RANGES" | "ADD_CONDITIONAL_FORMAT" | "REMOVE_CONDITIONAL_FORMAT" | "MOVE_CONDITIONAL_FORMAT" | "CREATE_FIGURE" | "DELETE_FIGURE" | "UPDATE_FIGURE" | "SET_FORMATTING" | "CLEAR_FORMATTING" | "SET_ZONE_BORDERS" | "SET_BORDER" | "CREATE_CHART" | "UPDATE_CHART" | "CREATE_IMAGE" | "CREATE_FILTER_TABLE" | "REMOVE_FILTER_TABLE" | "UPDATE_LOCALE" | "UNDO" | "REDO" | "EVALUATE_CELLS">;
|
|
1681
|
-
declare const invalidateDependenciesCommands: Set<"UPDATE_CELL" | "UPDATE_CELL_POSITION" | "CLEAR_CELL" | "DELETE_CONTENT" | "ADD_COLUMNS_ROWS" | "REMOVE_COLUMNS_ROWS" | "RESIZE_COLUMNS_ROWS" | "HIDE_COLUMNS_ROWS" | "UNHIDE_COLUMNS_ROWS" | "SET_GRID_LINES_VISIBILITY" | "FREEZE_COLUMNS" | "FREEZE_ROWS" | "UNFREEZE_COLUMNS_ROWS" | "UNFREEZE_COLUMNS" | "UNFREEZE_ROWS" | "ADD_MERGE" | "REMOVE_MERGE" | "CREATE_SHEET" | "DELETE_SHEET" | "DUPLICATE_SHEET" | "MOVE_SHEET" | "RENAME_SHEET" | "HIDE_SHEET" | "SHOW_SHEET" | "MOVE_RANGES" | "ADD_CONDITIONAL_FORMAT" | "REMOVE_CONDITIONAL_FORMAT" | "MOVE_CONDITIONAL_FORMAT" | "CREATE_FIGURE" | "DELETE_FIGURE" | "UPDATE_FIGURE" | "SET_FORMATTING" | "CLEAR_FORMATTING" | "SET_ZONE_BORDERS" | "SET_BORDER" | "CREATE_CHART" | "UPDATE_CHART" | "CREATE_IMAGE" | "CREATE_FILTER_TABLE" | "REMOVE_FILTER_TABLE" | "UPDATE_LOCALE" | "SORT_CELLS" | "SET_DECIMAL" | "REQUEST_UNDO" | "REQUEST_REDO" | "UNDO" | "REDO" | "ENABLE_NEW_SELECTION_INPUT" | "DISABLE_SELECTION_INPUT" | "UNFOCUS_SELECTION_INPUT" | "FOCUS_RANGE" | "ADD_EMPTY_RANGE" | "ADD_RANGE" | "REMOVE_RANGE" | "CHANGE_RANGE" | "COPY" | "CUT" | "PASTE" | "REPEAT_PASTE" | "CLEAN_CLIPBOARD_HIGHLIGHT" | "AUTOFILL_CELL" | "PASTE_FROM_OS_CLIPBOARD" | "ACTIVATE_PAINT_FORMAT" | "CANCEL_PAINT_FORMAT" | "AUTORESIZE_COLUMNS" | "AUTORESIZE_ROWS" | "MOVE_COLUMNS_ROWS" | "ACTIVATE_SHEET" | "PREPARE_SELECTION_INPUT_EXPANSION" | "STOP_SELECTION_INPUT" | "EVALUATE_CELLS" | "CHANGE_HIGHLIGHT" | "START_CHANGE_HIGHLIGHT" | "SET_HIGHLIGHT_COLOR" | "STOP_COMPOSER_RANGE_SELECTION" | "START_EDITION" | "STOP_EDITION" | "SET_CURRENT_CONTENT" | "CHANGE_COMPOSER_CURSOR_SELECTION" | "REPLACE_COMPOSER_CURSOR_SELECTION" | "CYCLE_EDITION_REFERENCES" | "START" | "AUTOFILL" | "AUTOFILL_SELECT" | "SET_FORMULA_VISIBILITY" | "AUTOFILL_AUTO" | "SELECT_FIGURE" | "UPDATE_SEARCH" | "
|
|
1684
|
+
declare const invalidateDependenciesCommands: Set<"UPDATE_CELL" | "UPDATE_CELL_POSITION" | "CLEAR_CELL" | "DELETE_CONTENT" | "ADD_COLUMNS_ROWS" | "REMOVE_COLUMNS_ROWS" | "RESIZE_COLUMNS_ROWS" | "HIDE_COLUMNS_ROWS" | "UNHIDE_COLUMNS_ROWS" | "SET_GRID_LINES_VISIBILITY" | "FREEZE_COLUMNS" | "FREEZE_ROWS" | "UNFREEZE_COLUMNS_ROWS" | "UNFREEZE_COLUMNS" | "UNFREEZE_ROWS" | "ADD_MERGE" | "REMOVE_MERGE" | "CREATE_SHEET" | "DELETE_SHEET" | "DUPLICATE_SHEET" | "MOVE_SHEET" | "RENAME_SHEET" | "HIDE_SHEET" | "SHOW_SHEET" | "MOVE_RANGES" | "ADD_CONDITIONAL_FORMAT" | "REMOVE_CONDITIONAL_FORMAT" | "MOVE_CONDITIONAL_FORMAT" | "CREATE_FIGURE" | "DELETE_FIGURE" | "UPDATE_FIGURE" | "SET_FORMATTING" | "CLEAR_FORMATTING" | "SET_ZONE_BORDERS" | "SET_BORDER" | "CREATE_CHART" | "UPDATE_CHART" | "CREATE_IMAGE" | "CREATE_FILTER_TABLE" | "REMOVE_FILTER_TABLE" | "UPDATE_LOCALE" | "SORT_CELLS" | "SET_DECIMAL" | "REQUEST_UNDO" | "REQUEST_REDO" | "UNDO" | "REDO" | "ENABLE_NEW_SELECTION_INPUT" | "DISABLE_SELECTION_INPUT" | "UNFOCUS_SELECTION_INPUT" | "FOCUS_RANGE" | "ADD_EMPTY_RANGE" | "ADD_RANGE" | "REMOVE_RANGE" | "CHANGE_RANGE" | "COPY" | "CUT" | "PASTE" | "REPEAT_PASTE" | "CLEAN_CLIPBOARD_HIGHLIGHT" | "AUTOFILL_CELL" | "PASTE_FROM_OS_CLIPBOARD" | "ACTIVATE_PAINT_FORMAT" | "CANCEL_PAINT_FORMAT" | "AUTORESIZE_COLUMNS" | "AUTORESIZE_ROWS" | "MOVE_COLUMNS_ROWS" | "ACTIVATE_SHEET" | "PREPARE_SELECTION_INPUT_EXPANSION" | "STOP_SELECTION_INPUT" | "EVALUATE_CELLS" | "CHANGE_HIGHLIGHT" | "START_CHANGE_HIGHLIGHT" | "SET_HIGHLIGHT_COLOR" | "STOP_COMPOSER_RANGE_SELECTION" | "START_EDITION" | "STOP_EDITION" | "SET_CURRENT_CONTENT" | "CHANGE_COMPOSER_CURSOR_SELECTION" | "REPLACE_COMPOSER_CURSOR_SELECTION" | "CYCLE_EDITION_REFERENCES" | "START" | "AUTOFILL" | "AUTOFILL_SELECT" | "SET_FORMULA_VISIBILITY" | "AUTOFILL_AUTO" | "SELECT_FIGURE" | "UPDATE_SEARCH" | "CLEAR_SEARCH" | "SELECT_SEARCH_PREVIOUS_MATCH" | "SELECT_SEARCH_NEXT_MATCH" | "REPLACE_SEARCH" | "REPLACE_ALL_SEARCH" | "RESIZE_SHEETVIEW" | "SUM_SELECTION" | "DELETE_CELL" | "INSERT_CELL" | "SET_VIEWPORT_OFFSET" | "SHIFT_VIEWPORT_DOWN" | "SHIFT_VIEWPORT_UP" | "OPEN_CELL_POPOVER" | "CLOSE_CELL_POPOVER" | "ACTIVATE_NEXT_SHEET" | "ACTIVATE_PREVIOUS_SHEET" | "UPDATE_FILTER" | "SPLIT_TEXT_INTO_COLUMNS">;
|
|
1682
1685
|
declare const invalidateCFEvaluationCommands: Set<"UPDATE_CELL" | "UPDATE_CELL_POSITION" | "CLEAR_CELL" | "DELETE_CONTENT" | "ADD_COLUMNS_ROWS" | "REMOVE_COLUMNS_ROWS" | "RESIZE_COLUMNS_ROWS" | "HIDE_COLUMNS_ROWS" | "UNHIDE_COLUMNS_ROWS" | "SET_GRID_LINES_VISIBILITY" | "FREEZE_COLUMNS" | "FREEZE_ROWS" | "UNFREEZE_COLUMNS_ROWS" | "UNFREEZE_COLUMNS" | "UNFREEZE_ROWS" | "ADD_MERGE" | "REMOVE_MERGE" | "CREATE_SHEET" | "DELETE_SHEET" | "DUPLICATE_SHEET" | "MOVE_SHEET" | "RENAME_SHEET" | "HIDE_SHEET" | "SHOW_SHEET" | "MOVE_RANGES" | "ADD_CONDITIONAL_FORMAT" | "REMOVE_CONDITIONAL_FORMAT" | "MOVE_CONDITIONAL_FORMAT" | "CREATE_FIGURE" | "DELETE_FIGURE" | "UPDATE_FIGURE" | "SET_FORMATTING" | "CLEAR_FORMATTING" | "SET_ZONE_BORDERS" | "SET_BORDER" | "CREATE_CHART" | "UPDATE_CHART" | "CREATE_IMAGE" | "CREATE_FILTER_TABLE" | "REMOVE_FILTER_TABLE" | "UPDATE_LOCALE" | "UNDO" | "REDO" | "EVALUATE_CELLS">;
|
|
1683
|
-
declare const readonlyAllowedCommands: Set<"UPDATE_CELL" | "UPDATE_CELL_POSITION" | "CLEAR_CELL" | "DELETE_CONTENT" | "ADD_COLUMNS_ROWS" | "REMOVE_COLUMNS_ROWS" | "RESIZE_COLUMNS_ROWS" | "HIDE_COLUMNS_ROWS" | "UNHIDE_COLUMNS_ROWS" | "SET_GRID_LINES_VISIBILITY" | "FREEZE_COLUMNS" | "FREEZE_ROWS" | "UNFREEZE_COLUMNS_ROWS" | "UNFREEZE_COLUMNS" | "UNFREEZE_ROWS" | "ADD_MERGE" | "REMOVE_MERGE" | "CREATE_SHEET" | "DELETE_SHEET" | "DUPLICATE_SHEET" | "MOVE_SHEET" | "RENAME_SHEET" | "HIDE_SHEET" | "SHOW_SHEET" | "MOVE_RANGES" | "ADD_CONDITIONAL_FORMAT" | "REMOVE_CONDITIONAL_FORMAT" | "MOVE_CONDITIONAL_FORMAT" | "CREATE_FIGURE" | "DELETE_FIGURE" | "UPDATE_FIGURE" | "SET_FORMATTING" | "CLEAR_FORMATTING" | "SET_ZONE_BORDERS" | "SET_BORDER" | "CREATE_CHART" | "UPDATE_CHART" | "CREATE_IMAGE" | "CREATE_FILTER_TABLE" | "REMOVE_FILTER_TABLE" | "UPDATE_LOCALE" | "SORT_CELLS" | "SET_DECIMAL" | "REQUEST_UNDO" | "REQUEST_REDO" | "UNDO" | "REDO" | "ENABLE_NEW_SELECTION_INPUT" | "DISABLE_SELECTION_INPUT" | "UNFOCUS_SELECTION_INPUT" | "FOCUS_RANGE" | "ADD_EMPTY_RANGE" | "ADD_RANGE" | "REMOVE_RANGE" | "CHANGE_RANGE" | "COPY" | "CUT" | "PASTE" | "REPEAT_PASTE" | "CLEAN_CLIPBOARD_HIGHLIGHT" | "AUTOFILL_CELL" | "PASTE_FROM_OS_CLIPBOARD" | "ACTIVATE_PAINT_FORMAT" | "CANCEL_PAINT_FORMAT" | "AUTORESIZE_COLUMNS" | "AUTORESIZE_ROWS" | "MOVE_COLUMNS_ROWS" | "ACTIVATE_SHEET" | "PREPARE_SELECTION_INPUT_EXPANSION" | "STOP_SELECTION_INPUT" | "EVALUATE_CELLS" | "CHANGE_HIGHLIGHT" | "START_CHANGE_HIGHLIGHT" | "SET_HIGHLIGHT_COLOR" | "STOP_COMPOSER_RANGE_SELECTION" | "START_EDITION" | "STOP_EDITION" | "SET_CURRENT_CONTENT" | "CHANGE_COMPOSER_CURSOR_SELECTION" | "REPLACE_COMPOSER_CURSOR_SELECTION" | "CYCLE_EDITION_REFERENCES" | "START" | "AUTOFILL" | "AUTOFILL_SELECT" | "SET_FORMULA_VISIBILITY" | "AUTOFILL_AUTO" | "SELECT_FIGURE" | "UPDATE_SEARCH" | "
|
|
1686
|
+
declare const readonlyAllowedCommands: Set<"UPDATE_CELL" | "UPDATE_CELL_POSITION" | "CLEAR_CELL" | "DELETE_CONTENT" | "ADD_COLUMNS_ROWS" | "REMOVE_COLUMNS_ROWS" | "RESIZE_COLUMNS_ROWS" | "HIDE_COLUMNS_ROWS" | "UNHIDE_COLUMNS_ROWS" | "SET_GRID_LINES_VISIBILITY" | "FREEZE_COLUMNS" | "FREEZE_ROWS" | "UNFREEZE_COLUMNS_ROWS" | "UNFREEZE_COLUMNS" | "UNFREEZE_ROWS" | "ADD_MERGE" | "REMOVE_MERGE" | "CREATE_SHEET" | "DELETE_SHEET" | "DUPLICATE_SHEET" | "MOVE_SHEET" | "RENAME_SHEET" | "HIDE_SHEET" | "SHOW_SHEET" | "MOVE_RANGES" | "ADD_CONDITIONAL_FORMAT" | "REMOVE_CONDITIONAL_FORMAT" | "MOVE_CONDITIONAL_FORMAT" | "CREATE_FIGURE" | "DELETE_FIGURE" | "UPDATE_FIGURE" | "SET_FORMATTING" | "CLEAR_FORMATTING" | "SET_ZONE_BORDERS" | "SET_BORDER" | "CREATE_CHART" | "UPDATE_CHART" | "CREATE_IMAGE" | "CREATE_FILTER_TABLE" | "REMOVE_FILTER_TABLE" | "UPDATE_LOCALE" | "SORT_CELLS" | "SET_DECIMAL" | "REQUEST_UNDO" | "REQUEST_REDO" | "UNDO" | "REDO" | "ENABLE_NEW_SELECTION_INPUT" | "DISABLE_SELECTION_INPUT" | "UNFOCUS_SELECTION_INPUT" | "FOCUS_RANGE" | "ADD_EMPTY_RANGE" | "ADD_RANGE" | "REMOVE_RANGE" | "CHANGE_RANGE" | "COPY" | "CUT" | "PASTE" | "REPEAT_PASTE" | "CLEAN_CLIPBOARD_HIGHLIGHT" | "AUTOFILL_CELL" | "PASTE_FROM_OS_CLIPBOARD" | "ACTIVATE_PAINT_FORMAT" | "CANCEL_PAINT_FORMAT" | "AUTORESIZE_COLUMNS" | "AUTORESIZE_ROWS" | "MOVE_COLUMNS_ROWS" | "ACTIVATE_SHEET" | "PREPARE_SELECTION_INPUT_EXPANSION" | "STOP_SELECTION_INPUT" | "EVALUATE_CELLS" | "CHANGE_HIGHLIGHT" | "START_CHANGE_HIGHLIGHT" | "SET_HIGHLIGHT_COLOR" | "STOP_COMPOSER_RANGE_SELECTION" | "START_EDITION" | "STOP_EDITION" | "SET_CURRENT_CONTENT" | "CHANGE_COMPOSER_CURSOR_SELECTION" | "REPLACE_COMPOSER_CURSOR_SELECTION" | "CYCLE_EDITION_REFERENCES" | "START" | "AUTOFILL" | "AUTOFILL_SELECT" | "SET_FORMULA_VISIBILITY" | "AUTOFILL_AUTO" | "SELECT_FIGURE" | "UPDATE_SEARCH" | "CLEAR_SEARCH" | "SELECT_SEARCH_PREVIOUS_MATCH" | "SELECT_SEARCH_NEXT_MATCH" | "REPLACE_SEARCH" | "REPLACE_ALL_SEARCH" | "RESIZE_SHEETVIEW" | "SUM_SELECTION" | "DELETE_CELL" | "INSERT_CELL" | "SET_VIEWPORT_OFFSET" | "SHIFT_VIEWPORT_DOWN" | "SHIFT_VIEWPORT_UP" | "OPEN_CELL_POPOVER" | "CLOSE_CELL_POPOVER" | "ACTIVATE_NEXT_SHEET" | "ACTIVATE_PREVIOUS_SHEET" | "UPDATE_FILTER" | "SPLIT_TEXT_INTO_COLUMNS">;
|
|
1684
1687
|
declare const coreTypes: Set<"UPDATE_CELL" | "UPDATE_CELL_POSITION" | "CLEAR_CELL" | "DELETE_CONTENT" | "ADD_COLUMNS_ROWS" | "REMOVE_COLUMNS_ROWS" | "RESIZE_COLUMNS_ROWS" | "HIDE_COLUMNS_ROWS" | "UNHIDE_COLUMNS_ROWS" | "SET_GRID_LINES_VISIBILITY" | "FREEZE_COLUMNS" | "FREEZE_ROWS" | "UNFREEZE_COLUMNS_ROWS" | "UNFREEZE_COLUMNS" | "UNFREEZE_ROWS" | "ADD_MERGE" | "REMOVE_MERGE" | "CREATE_SHEET" | "DELETE_SHEET" | "DUPLICATE_SHEET" | "MOVE_SHEET" | "RENAME_SHEET" | "HIDE_SHEET" | "SHOW_SHEET" | "MOVE_RANGES" | "ADD_CONDITIONAL_FORMAT" | "REMOVE_CONDITIONAL_FORMAT" | "MOVE_CONDITIONAL_FORMAT" | "CREATE_FIGURE" | "DELETE_FIGURE" | "UPDATE_FIGURE" | "SET_FORMATTING" | "CLEAR_FORMATTING" | "SET_ZONE_BORDERS" | "SET_BORDER" | "CREATE_CHART" | "UPDATE_CHART" | "CREATE_IMAGE" | "CREATE_FILTER_TABLE" | "REMOVE_FILTER_TABLE" | "UPDATE_LOCALE">;
|
|
1685
1688
|
interface UpdateCellCommand extends PositionDependentCommand {
|
|
1686
1689
|
type: "UPDATE_CELL";
|
|
@@ -2150,9 +2153,6 @@ interface UpdateSearchCommand {
|
|
|
2150
2153
|
interface ClearSearchCommand {
|
|
2151
2154
|
type: "CLEAR_SEARCH";
|
|
2152
2155
|
}
|
|
2153
|
-
interface RefreshSearchCommand {
|
|
2154
|
-
type: "REFRESH_SEARCH";
|
|
2155
|
-
}
|
|
2156
2156
|
interface SelectSearchPreviousCommand {
|
|
2157
2157
|
type: "SELECT_SEARCH_PREVIOUS_MATCH";
|
|
2158
2158
|
}
|
|
@@ -2262,7 +2262,7 @@ UpdateCellCommand | UpdateCellPositionCommand | ClearCellCommand | DeleteContent
|
|
|
2262
2262
|
| CreateImageOverCommand
|
|
2263
2263
|
/** FILTERS */
|
|
2264
2264
|
| CreateFilterTableCommand | RemoveFilterTableCommand | UpdateLocaleCommand;
|
|
2265
|
-
type LocalCommand = RequestUndoCommand | RequestRedoCommand | UndoCommand | RedoCommand | NewInputCommand | RemoveInputCommand | UnfocusInputCommand | FocusInputCommand | AddEmptyRangeCommand | AddRangeCommand | RemoveRangeCommand | ChangeRangeCommand | CopyCommand | CutCommand | PasteCommand | RepeatPasteCommand | CleanClipBoardHighlightCommand | AutoFillCellCommand | PasteFromOSClipboardCommand | ActivatePaintFormatCommand | CancelPaintFormatCommand | AutoresizeColumnsCommand | AutoresizeRowsCommand | MoveColumnsRowsCommand | ActivateSheetCommand | PrepareExpansionCommand | StopSelectionCommand | EvaluateCellsCommand | ChangeHighlightCommand | StartChangeHighlightCommand | SetColorCommand | StopComposerSelectionCommand | StartEditionCommand | StopEditionCommand | SetCurrentContentCommand | ChangeComposerSelectionCommand | ReplaceComposerSelectionCommand | CycleEditionReferencesCommand | StartCommand | AutofillCommand | AutofillSelectCommand | ShowFormulaCommand | AutofillAutoCommand | SelectFigureCommand | UpdateSearchCommand |
|
|
2265
|
+
type LocalCommand = RequestUndoCommand | RequestRedoCommand | UndoCommand | RedoCommand | NewInputCommand | RemoveInputCommand | UnfocusInputCommand | FocusInputCommand | AddEmptyRangeCommand | AddRangeCommand | RemoveRangeCommand | ChangeRangeCommand | CopyCommand | CutCommand | PasteCommand | RepeatPasteCommand | CleanClipBoardHighlightCommand | AutoFillCellCommand | PasteFromOSClipboardCommand | ActivatePaintFormatCommand | CancelPaintFormatCommand | AutoresizeColumnsCommand | AutoresizeRowsCommand | MoveColumnsRowsCommand | ActivateSheetCommand | PrepareExpansionCommand | StopSelectionCommand | EvaluateCellsCommand | ChangeHighlightCommand | StartChangeHighlightCommand | SetColorCommand | StopComposerSelectionCommand | StartEditionCommand | StopEditionCommand | SetCurrentContentCommand | ChangeComposerSelectionCommand | ReplaceComposerSelectionCommand | CycleEditionReferencesCommand | StartCommand | AutofillCommand | AutofillSelectCommand | ShowFormulaCommand | AutofillAutoCommand | SelectFigureCommand | UpdateSearchCommand | ClearSearchCommand | SelectSearchPreviousCommand | SelectSearchNextCommand | ReplaceSearchCommand | ReplaceAllSearchCommand | SortCommand | SetDecimalCommand | ResizeViewportCommand | SumSelectionCommand | DeleteCellCommand | InsertCellCommand | SetViewportOffsetCommand | MoveViewportDownCommand | MoveViewportUpCommand | OpenCellPopoverCommand | CloseCellPopoverCommand | ActivateNextSheetCommand | ActivatePreviousSheetCommand | UpdateFilterCommand | SplitTextIntoColumnsCommand;
|
|
2266
2266
|
type Command = CoreCommand | LocalCommand;
|
|
2267
2267
|
/**
|
|
2268
2268
|
* Holds the result of a command dispatch.
|
|
@@ -108,8 +108,8 @@ const SELECTION_BORDER_COLOR = "#3266ca";
|
|
|
108
108
|
const HEADER_BORDER_COLOR = "#C0C0C0";
|
|
109
109
|
const CELL_BORDER_COLOR = "#E2E3E3";
|
|
110
110
|
const BACKGROUND_CHART_COLOR = "#FFFFFF";
|
|
111
|
-
const MENU_ITEM_DISABLED_COLOR = "#CACACA";
|
|
112
111
|
const BG_HOVER_COLOR = "#EBEBEB";
|
|
112
|
+
const DISABLED_TEXT_COLOR = "#CACACA";
|
|
113
113
|
const DEFAULT_COLOR_SCALE_MIDPOINT_COLOR = 0xb6d7a8;
|
|
114
114
|
const LINK_COLOR = "#01666b";
|
|
115
115
|
const FILTERS_COLOR = "#188038";
|
|
@@ -4051,7 +4051,6 @@ const readonlyAllowedCommands = new Set([
|
|
|
4051
4051
|
"SET_VIEWPORT_OFFSET",
|
|
4052
4052
|
"SELECT_SEARCH_NEXT_MATCH",
|
|
4053
4053
|
"SELECT_SEARCH_PREVIOUS_MATCH",
|
|
4054
|
-
"REFRESH_SEARCH",
|
|
4055
4054
|
"UPDATE_SEARCH",
|
|
4056
4055
|
"CLEAR_SEARCH",
|
|
4057
4056
|
"EVALUATE_CELLS",
|
|
@@ -5990,7 +5989,7 @@ css /* scss */ `
|
|
|
5990
5989
|
}
|
|
5991
5990
|
}
|
|
5992
5991
|
&.disabled {
|
|
5993
|
-
color: ${
|
|
5992
|
+
color: ${DISABLED_TEXT_COLOR};
|
|
5994
5993
|
cursor: not-allowed;
|
|
5995
5994
|
}
|
|
5996
5995
|
}
|
|
@@ -22690,6 +22689,7 @@ class FindAndReplacePanel extends Component {
|
|
|
22690
22689
|
state = useState(this.initialState());
|
|
22691
22690
|
debounceTimeoutId;
|
|
22692
22691
|
showFormulaState = false;
|
|
22692
|
+
debouncedUpdateSearch;
|
|
22693
22693
|
findAndReplaceRef = useRef("findAndReplace");
|
|
22694
22694
|
get hasSearchResult() {
|
|
22695
22695
|
return this.env.model.getters.getCurrentSelectedMatchIndex() !== null;
|
|
@@ -22699,11 +22699,16 @@ class FindAndReplacePanel extends Component {
|
|
|
22699
22699
|
}
|
|
22700
22700
|
setup() {
|
|
22701
22701
|
this.showFormulaState = this.env.model.getters.shouldShowFormulas();
|
|
22702
|
+
this.debouncedUpdateSearch = debounce(this.updateSearch.bind(this), 200);
|
|
22702
22703
|
onMounted(() => this.focusInput());
|
|
22703
22704
|
onWillUnmount(() => {
|
|
22704
22705
|
this.env.model.dispatch("CLEAR_SEARCH");
|
|
22705
22706
|
this.env.model.dispatch("SET_FORMULA_VISIBILITY", { show: this.showFormulaState });
|
|
22706
22707
|
});
|
|
22708
|
+
useEffect(() => {
|
|
22709
|
+
this.state.searchOptions.searchFormulas = this.env.model.getters.shouldShowFormulas();
|
|
22710
|
+
this.searchFormulas();
|
|
22711
|
+
}, () => [this.env.model.getters.shouldShowFormulas()]);
|
|
22707
22712
|
}
|
|
22708
22713
|
onInput(ev) {
|
|
22709
22714
|
this.state.toSearch = ev.target.value;
|
|
@@ -22723,10 +22728,6 @@ class FindAndReplacePanel extends Component {
|
|
|
22723
22728
|
this.replace();
|
|
22724
22729
|
}
|
|
22725
22730
|
}
|
|
22726
|
-
onFocusSidePanel() {
|
|
22727
|
-
this.state.searchOptions.searchFormulas = this.env.model.getters.shouldShowFormulas();
|
|
22728
|
-
this.env.model.dispatch("REFRESH_SEARCH");
|
|
22729
|
-
}
|
|
22730
22731
|
searchFormulas() {
|
|
22731
22732
|
this.env.model.dispatch("SET_FORMULA_VISIBILITY", {
|
|
22732
22733
|
show: this.state.searchOptions.searchFormulas,
|
|
@@ -22745,13 +22746,6 @@ class FindAndReplacePanel extends Component {
|
|
|
22745
22746
|
searchOptions: this.state.searchOptions,
|
|
22746
22747
|
});
|
|
22747
22748
|
}
|
|
22748
|
-
debouncedUpdateSearch() {
|
|
22749
|
-
clearTimeout(this.debounceTimeoutId);
|
|
22750
|
-
this.debounceTimeoutId = setTimeout(() => {
|
|
22751
|
-
this.updateSearch();
|
|
22752
|
-
this.debounceTimeoutId = undefined;
|
|
22753
|
-
}, 400);
|
|
22754
|
-
}
|
|
22755
22749
|
replace() {
|
|
22756
22750
|
this.env.model.dispatch("REPLACE_SEARCH", {
|
|
22757
22751
|
replaceWith: this.state.replaceWith,
|
|
@@ -24691,6 +24685,15 @@ function dragFigureForResize(initialFigure, dirX, dirY, { x: mouseX, y: mouseY }
|
|
|
24691
24685
|
y = initialFigure.y - deltaY;
|
|
24692
24686
|
}
|
|
24693
24687
|
}
|
|
24688
|
+
// Restrict resizing if x or y reaches header boundaries
|
|
24689
|
+
if (x < 0) {
|
|
24690
|
+
width += x;
|
|
24691
|
+
x = 0;
|
|
24692
|
+
}
|
|
24693
|
+
if (y < 0) {
|
|
24694
|
+
height += y;
|
|
24695
|
+
y = 0;
|
|
24696
|
+
}
|
|
24694
24697
|
return { ...initialFigure, x, y, width, height };
|
|
24695
24698
|
}
|
|
24696
24699
|
|
|
@@ -38530,6 +38533,7 @@ class FindAndReplacePlugin extends UIPlugin {
|
|
|
38530
38533
|
searchFormulas: false,
|
|
38531
38534
|
};
|
|
38532
38535
|
toSearch = "";
|
|
38536
|
+
isSearchDirty = false;
|
|
38533
38537
|
// ---------------------------------------------------------------------------
|
|
38534
38538
|
// Command Handling
|
|
38535
38539
|
// ---------------------------------------------------------------------------
|
|
@@ -38553,18 +38557,33 @@ class FindAndReplacePlugin extends UIPlugin {
|
|
|
38553
38557
|
case "REPLACE_ALL_SEARCH":
|
|
38554
38558
|
this.replaceAll(cmd.replaceWith);
|
|
38555
38559
|
break;
|
|
38560
|
+
case "EVALUATE_CELLS":
|
|
38561
|
+
case "UPDATE_CELL":
|
|
38562
|
+
case "REMOVE_FILTER_TABLE":
|
|
38563
|
+
case "UPDATE_FILTER":
|
|
38564
|
+
this.isSearchDirty = true;
|
|
38565
|
+
break;
|
|
38556
38566
|
case "UNDO":
|
|
38557
38567
|
case "REDO":
|
|
38558
38568
|
case "REMOVE_COLUMNS_ROWS":
|
|
38569
|
+
case "HIDE_COLUMNS_ROWS":
|
|
38570
|
+
case "UNHIDE_COLUMNS_ROWS":
|
|
38559
38571
|
case "ADD_COLUMNS_ROWS":
|
|
38560
|
-
|
|
38572
|
+
case "EVALUATE_CELLS":
|
|
38573
|
+
case "UPDATE_CELL":
|
|
38574
|
+
this.isSearchDirty = true;
|
|
38561
38575
|
break;
|
|
38562
38576
|
case "ACTIVATE_SHEET":
|
|
38563
|
-
case "REFRESH_SEARCH":
|
|
38564
38577
|
this.refreshSearch();
|
|
38565
38578
|
break;
|
|
38566
38579
|
}
|
|
38567
38580
|
}
|
|
38581
|
+
finalize() {
|
|
38582
|
+
if (this.isSearchDirty) {
|
|
38583
|
+
this.refreshSearch();
|
|
38584
|
+
this.isSearchDirty = false;
|
|
38585
|
+
}
|
|
38586
|
+
}
|
|
38568
38587
|
// ---------------------------------------------------------------------------
|
|
38569
38588
|
// Getters
|
|
38570
38589
|
// ---------------------------------------------------------------------------
|
|
@@ -38620,6 +38639,11 @@ class FindAndReplacePlugin extends UIPlugin {
|
|
|
38620
38639
|
if (this.toSearch) {
|
|
38621
38640
|
for (const cell of Object.values(cells)) {
|
|
38622
38641
|
const { col, row } = this.getters.getCellPosition(cell.id);
|
|
38642
|
+
const isColHidden = this.getters.isColHidden(sheetId, col);
|
|
38643
|
+
const isRowHidden = this.getters.isRowHidden(sheetId, row);
|
|
38644
|
+
if (isColHidden || isRowHidden) {
|
|
38645
|
+
continue;
|
|
38646
|
+
}
|
|
38623
38647
|
if (cell &&
|
|
38624
38648
|
this.currentSearchRegex &&
|
|
38625
38649
|
this.currentSearchRegex.test(this.getSearchableString({ sheetId, col, row }))) {
|
|
@@ -38679,37 +38703,32 @@ class FindAndReplacePlugin extends UIPlugin {
|
|
|
38679
38703
|
// ---------------------------------------------------------------------------
|
|
38680
38704
|
// Replace
|
|
38681
38705
|
// ---------------------------------------------------------------------------
|
|
38682
|
-
|
|
38683
|
-
|
|
38684
|
-
*/
|
|
38685
|
-
replace(replaceWith) {
|
|
38686
|
-
if (this.selectedMatchIndex === null || !this.currentSearchRegex) {
|
|
38706
|
+
replaceMatch(selectedMatch, replaceWith) {
|
|
38707
|
+
if (!this.currentSearchRegex) {
|
|
38687
38708
|
return;
|
|
38688
38709
|
}
|
|
38689
|
-
const matches = this.searchMatches;
|
|
38690
|
-
const selectedMatch = matches[this.selectedMatchIndex];
|
|
38691
38710
|
const sheetId = this.getters.getActiveSheetId();
|
|
38692
38711
|
const cell = this.getters.getCell({ sheetId, ...selectedMatch });
|
|
38712
|
+
const { col, row } = selectedMatch;
|
|
38693
38713
|
if (cell?.isFormula && !this.searchOptions.searchFormulas) {
|
|
38694
|
-
|
|
38714
|
+
return;
|
|
38695
38715
|
}
|
|
38696
|
-
|
|
38697
|
-
|
|
38698
|
-
|
|
38699
|
-
|
|
38700
|
-
|
|
38701
|
-
|
|
38702
|
-
|
|
38703
|
-
|
|
38704
|
-
|
|
38705
|
-
|
|
38706
|
-
|
|
38707
|
-
|
|
38708
|
-
content: canonicalizeContent(newContent, this.getters.getLocale()),
|
|
38709
|
-
});
|
|
38710
|
-
this.searchMatches.splice(this.selectedMatchIndex, 1);
|
|
38711
|
-
this.selectNextCell(Direction.current);
|
|
38716
|
+
const replaceRegex = new RegExp(this.currentSearchRegex.source, this.currentSearchRegex.flags + "g");
|
|
38717
|
+
const toReplace = this.getSearchableString({ sheetId, col, row });
|
|
38718
|
+
const content = toReplace.replace(replaceRegex, replaceWith);
|
|
38719
|
+
const canonicalContent = canonicalizeContent(content, this.getters.getLocale());
|
|
38720
|
+
this.dispatch("UPDATE_CELL", { sheetId, col, row, content: canonicalContent });
|
|
38721
|
+
}
|
|
38722
|
+
/**
|
|
38723
|
+
* Replace the value of the currently selected match
|
|
38724
|
+
*/
|
|
38725
|
+
replace(replaceWith) {
|
|
38726
|
+
if (this.selectedMatchIndex === null) {
|
|
38727
|
+
return;
|
|
38712
38728
|
}
|
|
38729
|
+
const selectedMatch = this.searchMatches[this.selectedMatchIndex];
|
|
38730
|
+
this.replaceMatch(selectedMatch, replaceWith);
|
|
38731
|
+
this.selectNextCell(Direction.next);
|
|
38713
38732
|
}
|
|
38714
38733
|
/**
|
|
38715
38734
|
* Apply the replace function to all the matches one time.
|
|
@@ -38717,7 +38736,7 @@ class FindAndReplacePlugin extends UIPlugin {
|
|
|
38717
38736
|
replaceAll(replaceWith) {
|
|
38718
38737
|
const matchCount = this.searchMatches.length;
|
|
38719
38738
|
for (let i = 0; i < matchCount; i++) {
|
|
38720
|
-
this.
|
|
38739
|
+
this.replaceMatch(this.searchMatches[i], replaceWith);
|
|
38721
38740
|
}
|
|
38722
38741
|
}
|
|
38723
38742
|
getSearchableString(position) {
|
|
@@ -45720,6 +45739,11 @@ css /* scss */ `
|
|
|
45720
45739
|
.o-sidePanelButton:enabled {
|
|
45721
45740
|
cursor: pointer;
|
|
45722
45741
|
}
|
|
45742
|
+
|
|
45743
|
+
.o-sidePanelButton:disabled {
|
|
45744
|
+
color: ${DISABLED_TEXT_COLOR};
|
|
45745
|
+
}
|
|
45746
|
+
|
|
45723
45747
|
.o-sidePanelButton:last-child {
|
|
45724
45748
|
margin-right: 0px;
|
|
45725
45749
|
}
|
|
@@ -50480,6 +50504,6 @@ const constants = {
|
|
|
50480
50504
|
export { AbstractChart, CommandResult, CorePlugin, DispatchResult, EvaluationError, Model, Registry, Revision, SPREADSHEET_DIMENSIONS, Spreadsheet, UIPlugin, __info__, addFunction, astToFormula, compile, components, constants, convertAstNodes, coreTypes, findCellInNewZone, functionCache, helpers, invalidateCFEvaluationCommands, invalidateDependenciesCommands, invalidateEvaluationCommands, iterateAstNodes, links, load, parse, readonlyAllowedCommands, registries, setDefaultSheetViewSize, setTranslationMethod, tokenize };
|
|
50481
50505
|
|
|
50482
50506
|
|
|
50483
|
-
__info__.version = '16.4.
|
|
50484
|
-
__info__.date = '2023-
|
|
50485
|
-
__info__.hash = '
|
|
50507
|
+
__info__.version = '16.4.2';
|
|
50508
|
+
__info__.date = '2023-08-07T12:49:47.066Z';
|
|
50509
|
+
__info__.hash = 'd5697c0';
|