@odoo/o-spreadsheet 18.4.42 → 18.4.43

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,9 +2,9 @@
2
2
  /**
3
3
  * This file is generated by o-spreadsheet build tools. Do not edit it.
4
4
  * @see https://github.com/odoo/o-spreadsheet
5
- * @version 18.4.42
6
- * @date 2026-06-06T06:21:28.088Z
7
- * @hash bae6e25
5
+ * @version 18.4.43
6
+ * @date 2026-06-17T08:50:35.126Z
7
+ * @hash 5ab697a
8
8
  */
9
9
 
10
10
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
@@ -39674,8 +39674,12 @@ var CellComposerStore = class extends AbstractComposerStore {
39674
39674
  }
39675
39675
  stopEdition(direction) {
39676
39676
  if (this.canStopEdition()) {
39677
+ const { col, row } = this.currentEditedCell;
39677
39678
  this._stopEdition();
39678
- if (direction) this.model.selection.moveAnchorCell(direction, 1);
39679
+ if (direction) {
39680
+ this.model.selection.selectCell(col, row);
39681
+ this.model.selection.moveAnchorCell(direction, 1);
39682
+ }
39679
39683
  return;
39680
39684
  }
39681
39685
  const editedCell = this.currentEditedCell;
@@ -47021,9 +47025,9 @@ var FindAndReplaceStore = class extends SpreadsheetStore {
47021
47025
  allSheetsMatches = [];
47022
47026
  activeSheetMatches = [];
47023
47027
  specificRangeMatches = [];
47028
+ selectedMatchPosition = null;
47024
47029
  currentSearchRegex = null;
47025
47030
  initialShowFormulaState;
47026
- preserveSelectedMatchIndex = false;
47027
47031
  irreplaceableMatchCount = 0;
47028
47032
  isSearchDirty = false;
47029
47033
  shouldFinalizeUpdateSelection = false;
@@ -47145,7 +47149,10 @@ var FindAndReplaceStore = class extends SpreadsheetStore {
47145
47149
  */
47146
47150
  _updateSearch(toSearch, searchOptions) {
47147
47151
  this.searchOptions = searchOptions;
47148
- if (toSearch !== this.toSearch) this.selectedMatchIndex = null;
47152
+ if (toSearch !== this.toSearch) {
47153
+ this.selectedMatchIndex = null;
47154
+ this.selectedMatchPosition = null;
47155
+ }
47149
47156
  this.toSearch = toSearch;
47150
47157
  this.currentSearchRegex = getSearchRegex(this.toSearch, this.searchOptions);
47151
47158
  this.refreshSearch({
@@ -47157,8 +47164,14 @@ var FindAndReplaceStore = class extends SpreadsheetStore {
47157
47164
  * refresh the matches according to the current search options
47158
47165
  */
47159
47166
  refreshSearch(options) {
47160
- if (!this.preserveSelectedMatchIndex) this.selectedMatchIndex = null;
47161
47167
  this.findMatches();
47168
+ if (this.selectedMatchPosition) if (this.selectedMatchPosition.sheetId !== this.getters.getActiveSheetId()) {
47169
+ this.selectedMatchIndex = null;
47170
+ this.selectedMatchPosition = null;
47171
+ } else {
47172
+ const index = this.searchMatches.findIndex((match) => match.sheetId === this.selectedMatchPosition?.sheetId && match.col === this.selectedMatchPosition?.col && match.row === this.selectedMatchPosition?.row);
47173
+ if (index !== -1) this.selectedMatchIndex = index;
47174
+ }
47162
47175
  this.selectNextCell(0, options);
47163
47176
  }
47164
47177
  getSheetsInSearchOrder() {
@@ -47226,6 +47239,7 @@ var FindAndReplaceStore = class extends SpreadsheetStore {
47226
47239
  const matches = this.searchMatches;
47227
47240
  if (!matches.length) {
47228
47241
  this.selectedMatchIndex = null;
47242
+ this.selectedMatchPosition = null;
47229
47243
  return;
47230
47244
  }
47231
47245
  let nextIndex;
@@ -47239,14 +47253,13 @@ var FindAndReplaceStore = class extends SpreadsheetStore {
47239
47253
  } else nextIndex = this.selectedMatchIndex + indexChange;
47240
47254
  nextIndex = (nextIndex + matches.length) % matches.length;
47241
47255
  this.selectedMatchIndex = nextIndex;
47256
+ this.selectedMatchPosition = matches[this.selectedMatchIndex];
47242
47257
  const selectedMatch = matches[nextIndex];
47243
47258
  if (options.jumpToMatchSheet && this.getters.getActiveSheetId() !== selectedMatch.sheetId) {
47244
- this.preserveSelectedMatchIndex = true;
47245
47259
  this.model.dispatch("ACTIVATE_SHEET", {
47246
47260
  sheetIdFrom: this.getters.getActiveSheetId(),
47247
47261
  sheetIdTo: selectedMatch.sheetId
47248
47262
  });
47249
- this.preserveSelectedMatchIndex = false;
47250
47263
  this.isSearchDirty = false;
47251
47264
  }
47252
47265
  this.model.selection.getBackToDefault();
@@ -47257,7 +47270,6 @@ var FindAndReplaceStore = class extends SpreadsheetStore {
47257
47270
  */
47258
47271
  replace() {
47259
47272
  if (this.selectedMatchIndex === null) return;
47260
- this.preserveSelectedMatchIndex = true;
47261
47273
  this.shouldFinalizeUpdateSelection = true;
47262
47274
  this.model.dispatch("REPLACE_SEARCH", {
47263
47275
  searchString: this.toSearch,
@@ -47265,7 +47277,6 @@ var FindAndReplaceStore = class extends SpreadsheetStore {
47265
47277
  matches: [this.searchMatches[this.selectedMatchIndex]],
47266
47278
  searchOptions: this.searchOptions
47267
47279
  });
47268
- this.preserveSelectedMatchIndex = false;
47269
47280
  }
47270
47281
  /**
47271
47282
  * Apply the replace function to all the matches one time.
@@ -59527,7 +59538,7 @@ iconsOnCellRegistry.add("pivot_collapse", (getters, position) => {
59527
59538
  const definition = getters.getPivotCoreDefinition(pivotId);
59528
59539
  const isDashboard = getters.isDashboard();
59529
59540
  const fields = pivotCell.dimension === "COL" ? definition.columns : definition.rows;
59530
- const hasIcon = !isDashboard && pivotCell.domain.length !== fields.length;
59541
+ const hasIcon = !isDashboard && !getters.shouldShowFormulas() && pivotCell.domain.length !== fields.length;
59531
59542
  const isCollapsed = (definition.collapsedDomains?.[pivotCell.dimension] ?? []).some((domain) => deepEquals(domain, pivotCell.domain));
59532
59543
  const indent = pivotCell.dimension === "ROW" ? (pivotCell.domain.length - 1) * 15 : 0;
59533
59544
  return {
@@ -75598,6 +75609,6 @@ exports.stores = stores;
75598
75609
  exports.tokenColors = tokenColors;
75599
75610
  exports.tokenize = tokenize;
75600
75611
 
75601
- __info__.version = "18.4.42";
75602
- __info__.date = "2026-06-06T06:21:28.088Z";
75603
- __info__.hash = "bae6e25";
75612
+ __info__.version = "18.4.43";
75613
+ __info__.date = "2026-06-17T08:50:35.126Z";
75614
+ __info__.hash = "5ab697a";
@@ -2,9 +2,9 @@
2
2
  /*
3
3
  * This file is generated by o-spreadsheet build tools. Do not edit it.
4
4
  * @see https://github.com/odoo/o-spreadsheet
5
- * @version 18.4.42
6
- * @date 2026-06-06T06:21:29.595Z
7
- * @hash bae6e25
5
+ * @version 18.4.43
6
+ * @date 2026-06-17T08:50:36.790Z
7
+ * @hash 5ab697a
8
8
  */
9
9
  /* Originates from src/components/top_bar/top_bar.scss */
10
10
  @media (max-width: 1200px) {
@@ -2,9 +2,9 @@
2
2
  /**
3
3
  * This file is generated by o-spreadsheet build tools. Do not edit it.
4
4
  * @see https://github.com/odoo/o-spreadsheet
5
- * @version 18.4.42
6
- * @date 2026-06-06T06:21:28.088Z
7
- * @hash bae6e25
5
+ * @version 18.4.43
6
+ * @date 2026-06-17T08:50:35.126Z
7
+ * @hash 5ab697a
8
8
  */
9
9
 
10
10
  import { App, Component, blockDom, markRaw, onMounted, onPatched, onWillPatch, onWillStart, onWillUnmount, onWillUpdateProps, status, toRaw, useChildSubEnv, useComponent, useEffect, useEnv, useExternalListener, useRef, useState, useSubEnv, xml } from "@odoo/owl";
@@ -39673,8 +39673,12 @@ var CellComposerStore = class extends AbstractComposerStore {
39673
39673
  }
39674
39674
  stopEdition(direction) {
39675
39675
  if (this.canStopEdition()) {
39676
+ const { col, row } = this.currentEditedCell;
39676
39677
  this._stopEdition();
39677
- if (direction) this.model.selection.moveAnchorCell(direction, 1);
39678
+ if (direction) {
39679
+ this.model.selection.selectCell(col, row);
39680
+ this.model.selection.moveAnchorCell(direction, 1);
39681
+ }
39678
39682
  return;
39679
39683
  }
39680
39684
  const editedCell = this.currentEditedCell;
@@ -47020,9 +47024,9 @@ var FindAndReplaceStore = class extends SpreadsheetStore {
47020
47024
  allSheetsMatches = [];
47021
47025
  activeSheetMatches = [];
47022
47026
  specificRangeMatches = [];
47027
+ selectedMatchPosition = null;
47023
47028
  currentSearchRegex = null;
47024
47029
  initialShowFormulaState;
47025
- preserveSelectedMatchIndex = false;
47026
47030
  irreplaceableMatchCount = 0;
47027
47031
  isSearchDirty = false;
47028
47032
  shouldFinalizeUpdateSelection = false;
@@ -47144,7 +47148,10 @@ var FindAndReplaceStore = class extends SpreadsheetStore {
47144
47148
  */
47145
47149
  _updateSearch(toSearch, searchOptions) {
47146
47150
  this.searchOptions = searchOptions;
47147
- if (toSearch !== this.toSearch) this.selectedMatchIndex = null;
47151
+ if (toSearch !== this.toSearch) {
47152
+ this.selectedMatchIndex = null;
47153
+ this.selectedMatchPosition = null;
47154
+ }
47148
47155
  this.toSearch = toSearch;
47149
47156
  this.currentSearchRegex = getSearchRegex(this.toSearch, this.searchOptions);
47150
47157
  this.refreshSearch({
@@ -47156,8 +47163,14 @@ var FindAndReplaceStore = class extends SpreadsheetStore {
47156
47163
  * refresh the matches according to the current search options
47157
47164
  */
47158
47165
  refreshSearch(options) {
47159
- if (!this.preserveSelectedMatchIndex) this.selectedMatchIndex = null;
47160
47166
  this.findMatches();
47167
+ if (this.selectedMatchPosition) if (this.selectedMatchPosition.sheetId !== this.getters.getActiveSheetId()) {
47168
+ this.selectedMatchIndex = null;
47169
+ this.selectedMatchPosition = null;
47170
+ } else {
47171
+ const index = this.searchMatches.findIndex((match) => match.sheetId === this.selectedMatchPosition?.sheetId && match.col === this.selectedMatchPosition?.col && match.row === this.selectedMatchPosition?.row);
47172
+ if (index !== -1) this.selectedMatchIndex = index;
47173
+ }
47161
47174
  this.selectNextCell(0, options);
47162
47175
  }
47163
47176
  getSheetsInSearchOrder() {
@@ -47225,6 +47238,7 @@ var FindAndReplaceStore = class extends SpreadsheetStore {
47225
47238
  const matches = this.searchMatches;
47226
47239
  if (!matches.length) {
47227
47240
  this.selectedMatchIndex = null;
47241
+ this.selectedMatchPosition = null;
47228
47242
  return;
47229
47243
  }
47230
47244
  let nextIndex;
@@ -47238,14 +47252,13 @@ var FindAndReplaceStore = class extends SpreadsheetStore {
47238
47252
  } else nextIndex = this.selectedMatchIndex + indexChange;
47239
47253
  nextIndex = (nextIndex + matches.length) % matches.length;
47240
47254
  this.selectedMatchIndex = nextIndex;
47255
+ this.selectedMatchPosition = matches[this.selectedMatchIndex];
47241
47256
  const selectedMatch = matches[nextIndex];
47242
47257
  if (options.jumpToMatchSheet && this.getters.getActiveSheetId() !== selectedMatch.sheetId) {
47243
- this.preserveSelectedMatchIndex = true;
47244
47258
  this.model.dispatch("ACTIVATE_SHEET", {
47245
47259
  sheetIdFrom: this.getters.getActiveSheetId(),
47246
47260
  sheetIdTo: selectedMatch.sheetId
47247
47261
  });
47248
- this.preserveSelectedMatchIndex = false;
47249
47262
  this.isSearchDirty = false;
47250
47263
  }
47251
47264
  this.model.selection.getBackToDefault();
@@ -47256,7 +47269,6 @@ var FindAndReplaceStore = class extends SpreadsheetStore {
47256
47269
  */
47257
47270
  replace() {
47258
47271
  if (this.selectedMatchIndex === null) return;
47259
- this.preserveSelectedMatchIndex = true;
47260
47272
  this.shouldFinalizeUpdateSelection = true;
47261
47273
  this.model.dispatch("REPLACE_SEARCH", {
47262
47274
  searchString: this.toSearch,
@@ -47264,7 +47276,6 @@ var FindAndReplaceStore = class extends SpreadsheetStore {
47264
47276
  matches: [this.searchMatches[this.selectedMatchIndex]],
47265
47277
  searchOptions: this.searchOptions
47266
47278
  });
47267
- this.preserveSelectedMatchIndex = false;
47268
47279
  }
47269
47280
  /**
47270
47281
  * Apply the replace function to all the matches one time.
@@ -59342,7 +59353,7 @@ iconsOnCellRegistry.add("pivot_collapse", (getters, position) => {
59342
59353
  const definition = getters.getPivotCoreDefinition(pivotId);
59343
59354
  const isDashboard = getters.isDashboard();
59344
59355
  const fields = pivotCell.dimension === "COL" ? definition.columns : definition.rows;
59345
- const hasIcon = !isDashboard && pivotCell.domain.length !== fields.length;
59356
+ const hasIcon = !isDashboard && !getters.shouldShowFormulas() && pivotCell.domain.length !== fields.length;
59346
59357
  const isCollapsed = (definition.collapsedDomains?.[pivotCell.dimension] ?? []).some((domain) => deepEquals(domain, pivotCell.domain));
59347
59358
  const indent = pivotCell.dimension === "ROW" ? (pivotCell.domain.length - 1) * 15 : 0;
59348
59359
  return {
@@ -75364,6 +75375,6 @@ const chartHelpers = {
75364
75375
  //#endregion
75365
75376
  export { AbstractCellClipboardHandler, AbstractChart, AbstractFigureClipboardHandler, CellErrorType, ClientDisconnectedError, CommandResult, CorePlugin, CoreViewPlugin, DispatchResult, EvaluationError, LocalTransportService, Model, PivotRuntimeDefinition, Registry, Revision, SPREADSHEET_DIMENSIONS, Spreadsheet, SpreadsheetPivotTable, UIPlugin, __info__, addFunction, addRenderingLayer, astToFormula, chartHelpers, compile, compileTokens, components, constants, convertAstNodes, coreTypes, findCellInNewZone, functionCache, helpers, hooks, invalidateCFEvaluationCommands, invalidateChartEvaluationCommands, invalidateDependenciesCommands, invalidateEvaluationCommands, iterateAstNodes, links, load, parse, parseTokens, readonlyAllowedCommands, registries, setDefaultSheetViewSize, setTranslationMethod, stores, tokenColors, tokenize };
75366
75377
 
75367
- __info__.version = "18.4.42";
75368
- __info__.date = "2026-06-06T06:21:28.088Z";
75369
- __info__.hash = "bae6e25";
75378
+ __info__.version = "18.4.43";
75379
+ __info__.date = "2026-06-17T08:50:35.126Z";
75380
+ __info__.hash = "5ab697a";
@@ -2,9 +2,9 @@
2
2
  /**
3
3
  * This file is generated by o-spreadsheet build tools. Do not edit it.
4
4
  * @see https://github.com/odoo/o-spreadsheet
5
- * @version 18.4.42
6
- * @date 2026-06-06T06:21:28.088Z
7
- * @hash bae6e25
5
+ * @version 18.4.43
6
+ * @date 2026-06-17T08:50:35.126Z
7
+ * @hash 5ab697a
8
8
  */
9
9
 
10
10
  (function(exports, _odoo_owl) {
@@ -39675,8 +39675,12 @@ stores.inject(MyMetaStore, storeInstance);
39675
39675
  }
39676
39676
  stopEdition(direction) {
39677
39677
  if (this.canStopEdition()) {
39678
+ const { col, row } = this.currentEditedCell;
39678
39679
  this._stopEdition();
39679
- if (direction) this.model.selection.moveAnchorCell(direction, 1);
39680
+ if (direction) {
39681
+ this.model.selection.selectCell(col, row);
39682
+ this.model.selection.moveAnchorCell(direction, 1);
39683
+ }
39680
39684
  return;
39681
39685
  }
39682
39686
  const editedCell = this.currentEditedCell;
@@ -47022,9 +47026,9 @@ stores.inject(MyMetaStore, storeInstance);
47022
47026
  allSheetsMatches = [];
47023
47027
  activeSheetMatches = [];
47024
47028
  specificRangeMatches = [];
47029
+ selectedMatchPosition = null;
47025
47030
  currentSearchRegex = null;
47026
47031
  initialShowFormulaState;
47027
- preserveSelectedMatchIndex = false;
47028
47032
  irreplaceableMatchCount = 0;
47029
47033
  isSearchDirty = false;
47030
47034
  shouldFinalizeUpdateSelection = false;
@@ -47146,7 +47150,10 @@ stores.inject(MyMetaStore, storeInstance);
47146
47150
  */
47147
47151
  _updateSearch(toSearch, searchOptions) {
47148
47152
  this.searchOptions = searchOptions;
47149
- if (toSearch !== this.toSearch) this.selectedMatchIndex = null;
47153
+ if (toSearch !== this.toSearch) {
47154
+ this.selectedMatchIndex = null;
47155
+ this.selectedMatchPosition = null;
47156
+ }
47150
47157
  this.toSearch = toSearch;
47151
47158
  this.currentSearchRegex = getSearchRegex(this.toSearch, this.searchOptions);
47152
47159
  this.refreshSearch({
@@ -47158,8 +47165,14 @@ stores.inject(MyMetaStore, storeInstance);
47158
47165
  * refresh the matches according to the current search options
47159
47166
  */
47160
47167
  refreshSearch(options) {
47161
- if (!this.preserveSelectedMatchIndex) this.selectedMatchIndex = null;
47162
47168
  this.findMatches();
47169
+ if (this.selectedMatchPosition) if (this.selectedMatchPosition.sheetId !== this.getters.getActiveSheetId()) {
47170
+ this.selectedMatchIndex = null;
47171
+ this.selectedMatchPosition = null;
47172
+ } else {
47173
+ const index = this.searchMatches.findIndex((match) => match.sheetId === this.selectedMatchPosition?.sheetId && match.col === this.selectedMatchPosition?.col && match.row === this.selectedMatchPosition?.row);
47174
+ if (index !== -1) this.selectedMatchIndex = index;
47175
+ }
47163
47176
  this.selectNextCell(0, options);
47164
47177
  }
47165
47178
  getSheetsInSearchOrder() {
@@ -47227,6 +47240,7 @@ stores.inject(MyMetaStore, storeInstance);
47227
47240
  const matches = this.searchMatches;
47228
47241
  if (!matches.length) {
47229
47242
  this.selectedMatchIndex = null;
47243
+ this.selectedMatchPosition = null;
47230
47244
  return;
47231
47245
  }
47232
47246
  let nextIndex;
@@ -47240,14 +47254,13 @@ stores.inject(MyMetaStore, storeInstance);
47240
47254
  } else nextIndex = this.selectedMatchIndex + indexChange;
47241
47255
  nextIndex = (nextIndex + matches.length) % matches.length;
47242
47256
  this.selectedMatchIndex = nextIndex;
47257
+ this.selectedMatchPosition = matches[this.selectedMatchIndex];
47243
47258
  const selectedMatch = matches[nextIndex];
47244
47259
  if (options.jumpToMatchSheet && this.getters.getActiveSheetId() !== selectedMatch.sheetId) {
47245
- this.preserveSelectedMatchIndex = true;
47246
47260
  this.model.dispatch("ACTIVATE_SHEET", {
47247
47261
  sheetIdFrom: this.getters.getActiveSheetId(),
47248
47262
  sheetIdTo: selectedMatch.sheetId
47249
47263
  });
47250
- this.preserveSelectedMatchIndex = false;
47251
47264
  this.isSearchDirty = false;
47252
47265
  }
47253
47266
  this.model.selection.getBackToDefault();
@@ -47258,7 +47271,6 @@ stores.inject(MyMetaStore, storeInstance);
47258
47271
  */
47259
47272
  replace() {
47260
47273
  if (this.selectedMatchIndex === null) return;
47261
- this.preserveSelectedMatchIndex = true;
47262
47274
  this.shouldFinalizeUpdateSelection = true;
47263
47275
  this.model.dispatch("REPLACE_SEARCH", {
47264
47276
  searchString: this.toSearch,
@@ -47266,7 +47278,6 @@ stores.inject(MyMetaStore, storeInstance);
47266
47278
  matches: [this.searchMatches[this.selectedMatchIndex]],
47267
47279
  searchOptions: this.searchOptions
47268
47280
  });
47269
- this.preserveSelectedMatchIndex = false;
47270
47281
  }
47271
47282
  /**
47272
47283
  * Apply the replace function to all the matches one time.
@@ -59344,7 +59355,7 @@ stores.inject(MyMetaStore, storeInstance);
59344
59355
  const definition = getters.getPivotCoreDefinition(pivotId);
59345
59356
  const isDashboard = getters.isDashboard();
59346
59357
  const fields = pivotCell.dimension === "COL" ? definition.columns : definition.rows;
59347
- const hasIcon = !isDashboard && pivotCell.domain.length !== fields.length;
59358
+ const hasIcon = !isDashboard && !getters.shouldShowFormulas() && pivotCell.domain.length !== fields.length;
59348
59359
  const isCollapsed = (definition.collapsedDomains?.[pivotCell.dimension] ?? []).some((domain) => deepEquals(domain, pivotCell.domain));
59349
59360
  const indent = pivotCell.dimension === "ROW" ? (pivotCell.domain.length - 1) * 15 : 0;
59350
59361
  return {
@@ -75415,8 +75426,8 @@ exports.stores = stores;
75415
75426
  exports.tokenColors = tokenColors;
75416
75427
  exports.tokenize = tokenize;
75417
75428
 
75418
- __info__.version = "18.4.42";
75419
- __info__.date = "2026-06-06T06:21:28.088Z";
75420
- __info__.hash = "bae6e25";
75429
+ __info__.version = "18.4.43";
75430
+ __info__.date = "2026-06-17T08:50:35.126Z";
75431
+ __info__.hash = "5ab697a";
75421
75432
 
75422
75433
  })(this.o_spreadsheet = this.o_spreadsheet || {}, owl);