@odoo/o-spreadsheet 19.1.22 → 19.1.23

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 19.1.22
6
- * @date 2026-06-06T06:23:19.222Z
7
- * @hash 97a02db
5
+ * @version 19.1.23
6
+ * @date 2026-06-17T08:50:59.790Z
7
+ * @hash 53aa85b
8
8
  */
9
9
 
10
10
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
@@ -41194,8 +41194,12 @@ var CellComposerStore = class extends AbstractComposerStore {
41194
41194
  }
41195
41195
  stopEdition(direction) {
41196
41196
  if (this.canStopEdition()) {
41197
+ const { col, row } = this.currentEditedCell;
41197
41198
  this._stopEdition();
41198
- if (direction) this.model.selection.moveAnchorCell(direction, 1);
41199
+ if (direction) {
41200
+ this.model.selection.selectCell(col, row);
41201
+ this.model.selection.moveAnchorCell(direction, 1);
41202
+ }
41199
41203
  return;
41200
41204
  }
41201
41205
  const editedCell = this.currentEditedCell;
@@ -48462,9 +48466,9 @@ var FindAndReplaceStore = class extends SpreadsheetStore {
48462
48466
  allSheetsMatches = [];
48463
48467
  activeSheetMatches = [];
48464
48468
  specificRangeMatches = [];
48469
+ selectedMatchPosition = null;
48465
48470
  currentSearchRegex = null;
48466
48471
  initialShowFormulaState;
48467
- preserveSelectedMatchIndex = false;
48468
48472
  irreplaceableMatchCount = 0;
48469
48473
  isSearchDirty = false;
48470
48474
  shouldFinalizeUpdateSelection = false;
@@ -48586,7 +48590,10 @@ var FindAndReplaceStore = class extends SpreadsheetStore {
48586
48590
  */
48587
48591
  _updateSearch(toSearch, searchOptions) {
48588
48592
  this.searchOptions = searchOptions;
48589
- if (toSearch !== this.toSearch) this.selectedMatchIndex = null;
48593
+ if (toSearch !== this.toSearch) {
48594
+ this.selectedMatchIndex = null;
48595
+ this.selectedMatchPosition = null;
48596
+ }
48590
48597
  this.toSearch = toSearch;
48591
48598
  this.currentSearchRegex = getSearchRegex(this.toSearch, this.searchOptions);
48592
48599
  this.refreshSearch({
@@ -48598,8 +48605,14 @@ var FindAndReplaceStore = class extends SpreadsheetStore {
48598
48605
  * refresh the matches according to the current search options
48599
48606
  */
48600
48607
  refreshSearch(options) {
48601
- if (!this.preserveSelectedMatchIndex) this.selectedMatchIndex = null;
48602
48608
  this.findMatches();
48609
+ if (this.selectedMatchPosition) if (this.selectedMatchPosition.sheetId !== this.getters.getActiveSheetId()) {
48610
+ this.selectedMatchIndex = null;
48611
+ this.selectedMatchPosition = null;
48612
+ } else {
48613
+ const index = this.searchMatches.findIndex((match) => match.sheetId === this.selectedMatchPosition?.sheetId && match.col === this.selectedMatchPosition?.col && match.row === this.selectedMatchPosition?.row);
48614
+ if (index !== -1) this.selectedMatchIndex = index;
48615
+ }
48603
48616
  this.selectNextCell(0, options);
48604
48617
  }
48605
48618
  getSheetsInSearchOrder() {
@@ -48667,6 +48680,7 @@ var FindAndReplaceStore = class extends SpreadsheetStore {
48667
48680
  const matches = this.searchMatches;
48668
48681
  if (!matches.length) {
48669
48682
  this.selectedMatchIndex = null;
48683
+ this.selectedMatchPosition = null;
48670
48684
  return;
48671
48685
  }
48672
48686
  let nextIndex;
@@ -48680,14 +48694,13 @@ var FindAndReplaceStore = class extends SpreadsheetStore {
48680
48694
  } else nextIndex = this.selectedMatchIndex + indexChange;
48681
48695
  nextIndex = (nextIndex + matches.length) % matches.length;
48682
48696
  this.selectedMatchIndex = nextIndex;
48697
+ this.selectedMatchPosition = matches[this.selectedMatchIndex];
48683
48698
  const selectedMatch = matches[nextIndex];
48684
48699
  if (options.jumpToMatchSheet && this.getters.getActiveSheetId() !== selectedMatch.sheetId) {
48685
- this.preserveSelectedMatchIndex = true;
48686
48700
  this.model.dispatch("ACTIVATE_SHEET", {
48687
48701
  sheetIdFrom: this.getters.getActiveSheetId(),
48688
48702
  sheetIdTo: selectedMatch.sheetId
48689
48703
  });
48690
- this.preserveSelectedMatchIndex = false;
48691
48704
  this.isSearchDirty = false;
48692
48705
  }
48693
48706
  this.model.selection.getBackToDefault();
@@ -48698,7 +48711,6 @@ var FindAndReplaceStore = class extends SpreadsheetStore {
48698
48711
  */
48699
48712
  replace() {
48700
48713
  if (this.selectedMatchIndex === null) return;
48701
- this.preserveSelectedMatchIndex = true;
48702
48714
  this.shouldFinalizeUpdateSelection = true;
48703
48715
  this.model.dispatch("REPLACE_SEARCH", {
48704
48716
  searchString: this.toSearch,
@@ -48706,7 +48718,6 @@ var FindAndReplaceStore = class extends SpreadsheetStore {
48706
48718
  matches: [this.searchMatches[this.selectedMatchIndex]],
48707
48719
  searchOptions: this.searchOptions
48708
48720
  });
48709
- this.preserveSelectedMatchIndex = false;
48710
48721
  }
48711
48722
  /**
48712
48723
  * Apply the replace function to all the matches one time.
@@ -59813,7 +59824,7 @@ iconsOnCellRegistry.add("pivot_collapse", (getters, position) => {
59813
59824
  const definition = getters.getPivotCoreDefinition(pivotId);
59814
59825
  const isDashboard = getters.isDashboard();
59815
59826
  const fields = pivotCell.dimension === "COL" ? definition.columns : definition.rows;
59816
- const hasIcon = !isDashboard && pivotCell.domain.length !== fields.length;
59827
+ const hasIcon = !isDashboard && !getters.shouldShowFormulas() && pivotCell.domain.length !== fields.length;
59817
59828
  const isCollapsed = (definition.collapsedDomains?.[pivotCell.dimension] ?? []).some((domain) => deepEquals(domain, pivotCell.domain));
59818
59829
  const indent = pivotCell.dimension === "ROW" ? (pivotCell.domain.length - 1) * 15 : 0;
59819
59830
  return {
@@ -79304,6 +79315,6 @@ exports.stores = stores;
79304
79315
  exports.tokenColors = tokenColors;
79305
79316
  exports.tokenize = tokenize;
79306
79317
 
79307
- __info__.version = "19.1.22";
79308
- __info__.date = "2026-06-06T06:23:19.222Z";
79309
- __info__.hash = "97a02db";
79318
+ __info__.version = "19.1.23";
79319
+ __info__.date = "2026-06-17T08:50:59.790Z";
79320
+ __info__.hash = "53aa85b";
@@ -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 19.1.22
6
- * @date 2026-06-06T06:23:20.902Z
7
- * @hash 97a02db
5
+ * @version 19.1.23
6
+ * @date 2026-06-17T08:51:01.395Z
7
+ * @hash 53aa85b
8
8
  */
9
9
  :root {
10
10
  --os-gray-100: light-dark(#f9fafb, #1b1d26);
@@ -3260,8 +3260,8 @@
3260
3260
 
3261
3261
  .o-autofill-nextvalue {
3262
3262
  position: absolute;
3263
- background-color: #ffffff;
3264
- border: 1px solid black;
3263
+ background-color: var(--os-white);
3264
+ border: 1px solid var(--os-black);
3265
3265
  padding: 5px;
3266
3266
  font-size: 12px;
3267
3267
  pointer-events: none;
@@ -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 19.1.22
6
- * @date 2026-06-06T06:23:19.222Z
7
- * @hash 97a02db
5
+ * @version 19.1.23
6
+ * @date 2026-06-17T08:50:59.790Z
7
+ * @hash 53aa85b
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, whenReady, xml } from "@odoo/owl";
@@ -41193,8 +41193,12 @@ var CellComposerStore = class extends AbstractComposerStore {
41193
41193
  }
41194
41194
  stopEdition(direction) {
41195
41195
  if (this.canStopEdition()) {
41196
+ const { col, row } = this.currentEditedCell;
41196
41197
  this._stopEdition();
41197
- if (direction) this.model.selection.moveAnchorCell(direction, 1);
41198
+ if (direction) {
41199
+ this.model.selection.selectCell(col, row);
41200
+ this.model.selection.moveAnchorCell(direction, 1);
41201
+ }
41198
41202
  return;
41199
41203
  }
41200
41204
  const editedCell = this.currentEditedCell;
@@ -48461,9 +48465,9 @@ var FindAndReplaceStore = class extends SpreadsheetStore {
48461
48465
  allSheetsMatches = [];
48462
48466
  activeSheetMatches = [];
48463
48467
  specificRangeMatches = [];
48468
+ selectedMatchPosition = null;
48464
48469
  currentSearchRegex = null;
48465
48470
  initialShowFormulaState;
48466
- preserveSelectedMatchIndex = false;
48467
48471
  irreplaceableMatchCount = 0;
48468
48472
  isSearchDirty = false;
48469
48473
  shouldFinalizeUpdateSelection = false;
@@ -48585,7 +48589,10 @@ var FindAndReplaceStore = class extends SpreadsheetStore {
48585
48589
  */
48586
48590
  _updateSearch(toSearch, searchOptions) {
48587
48591
  this.searchOptions = searchOptions;
48588
- if (toSearch !== this.toSearch) this.selectedMatchIndex = null;
48592
+ if (toSearch !== this.toSearch) {
48593
+ this.selectedMatchIndex = null;
48594
+ this.selectedMatchPosition = null;
48595
+ }
48589
48596
  this.toSearch = toSearch;
48590
48597
  this.currentSearchRegex = getSearchRegex(this.toSearch, this.searchOptions);
48591
48598
  this.refreshSearch({
@@ -48597,8 +48604,14 @@ var FindAndReplaceStore = class extends SpreadsheetStore {
48597
48604
  * refresh the matches according to the current search options
48598
48605
  */
48599
48606
  refreshSearch(options) {
48600
- if (!this.preserveSelectedMatchIndex) this.selectedMatchIndex = null;
48601
48607
  this.findMatches();
48608
+ if (this.selectedMatchPosition) if (this.selectedMatchPosition.sheetId !== this.getters.getActiveSheetId()) {
48609
+ this.selectedMatchIndex = null;
48610
+ this.selectedMatchPosition = null;
48611
+ } else {
48612
+ const index = this.searchMatches.findIndex((match) => match.sheetId === this.selectedMatchPosition?.sheetId && match.col === this.selectedMatchPosition?.col && match.row === this.selectedMatchPosition?.row);
48613
+ if (index !== -1) this.selectedMatchIndex = index;
48614
+ }
48602
48615
  this.selectNextCell(0, options);
48603
48616
  }
48604
48617
  getSheetsInSearchOrder() {
@@ -48666,6 +48679,7 @@ var FindAndReplaceStore = class extends SpreadsheetStore {
48666
48679
  const matches = this.searchMatches;
48667
48680
  if (!matches.length) {
48668
48681
  this.selectedMatchIndex = null;
48682
+ this.selectedMatchPosition = null;
48669
48683
  return;
48670
48684
  }
48671
48685
  let nextIndex;
@@ -48679,14 +48693,13 @@ var FindAndReplaceStore = class extends SpreadsheetStore {
48679
48693
  } else nextIndex = this.selectedMatchIndex + indexChange;
48680
48694
  nextIndex = (nextIndex + matches.length) % matches.length;
48681
48695
  this.selectedMatchIndex = nextIndex;
48696
+ this.selectedMatchPosition = matches[this.selectedMatchIndex];
48682
48697
  const selectedMatch = matches[nextIndex];
48683
48698
  if (options.jumpToMatchSheet && this.getters.getActiveSheetId() !== selectedMatch.sheetId) {
48684
- this.preserveSelectedMatchIndex = true;
48685
48699
  this.model.dispatch("ACTIVATE_SHEET", {
48686
48700
  sheetIdFrom: this.getters.getActiveSheetId(),
48687
48701
  sheetIdTo: selectedMatch.sheetId
48688
48702
  });
48689
- this.preserveSelectedMatchIndex = false;
48690
48703
  this.isSearchDirty = false;
48691
48704
  }
48692
48705
  this.model.selection.getBackToDefault();
@@ -48697,7 +48710,6 @@ var FindAndReplaceStore = class extends SpreadsheetStore {
48697
48710
  */
48698
48711
  replace() {
48699
48712
  if (this.selectedMatchIndex === null) return;
48700
- this.preserveSelectedMatchIndex = true;
48701
48713
  this.shouldFinalizeUpdateSelection = true;
48702
48714
  this.model.dispatch("REPLACE_SEARCH", {
48703
48715
  searchString: this.toSearch,
@@ -48705,7 +48717,6 @@ var FindAndReplaceStore = class extends SpreadsheetStore {
48705
48717
  matches: [this.searchMatches[this.selectedMatchIndex]],
48706
48718
  searchOptions: this.searchOptions
48707
48719
  });
48708
- this.preserveSelectedMatchIndex = false;
48709
48720
  }
48710
48721
  /**
48711
48722
  * Apply the replace function to all the matches one time.
@@ -59628,7 +59639,7 @@ iconsOnCellRegistry.add("pivot_collapse", (getters, position) => {
59628
59639
  const definition = getters.getPivotCoreDefinition(pivotId);
59629
59640
  const isDashboard = getters.isDashboard();
59630
59641
  const fields = pivotCell.dimension === "COL" ? definition.columns : definition.rows;
59631
- const hasIcon = !isDashboard && pivotCell.domain.length !== fields.length;
59642
+ const hasIcon = !isDashboard && !getters.shouldShowFormulas() && pivotCell.domain.length !== fields.length;
59632
59643
  const isCollapsed = (definition.collapsedDomains?.[pivotCell.dimension] ?? []).some((domain) => deepEquals(domain, pivotCell.domain));
59633
59644
  const indent = pivotCell.dimension === "ROW" ? (pivotCell.domain.length - 1) * 15 : 0;
59634
59645
  return {
@@ -79066,6 +79077,6 @@ const chartHelpers = {
79066
79077
  //#endregion
79067
79078
  export { AbstractCellClipboardHandler, AbstractChart, AbstractFigureClipboardHandler, CellErrorType, ClientDisconnectedError, CommandResult, CorePlugin, CoreViewPlugin, DEFAULT_LOCALE, DEFAULT_LOCALES, DispatchResult, EvaluationError, LocalTransportService, Model, PivotRuntimeDefinition, Registry, Revision, SPREADSHEET_DIMENSIONS, Spreadsheet, SpreadsheetPivotTable, UIPlugin, __info__, addFunction, addRenderingLayer, astToFormula, categories, chartHelpers, components, constants, convertAstNodes, coreTypes, createAutocompleteArgumentsProvider, findCellInNewZone, functionCache, getCaretDownSvg, getCaretUpSvg, helpers, hooks, invalidateCFEvaluationCommands, invalidateChartEvaluationCommands, invalidateDependenciesCommands, invalidateEvaluationCommands, iterateAstNodes, links, load, parse, parseTokens, readonlyAllowedCommands, registries, setDefaultSheetViewSize, setTranslationMethod, stores, tokenColors, tokenize };
79068
79079
 
79069
- __info__.version = "19.1.22";
79070
- __info__.date = "2026-06-06T06:23:19.222Z";
79071
- __info__.hash = "97a02db";
79080
+ __info__.version = "19.1.23";
79081
+ __info__.date = "2026-06-17T08:50:59.790Z";
79082
+ __info__.hash = "53aa85b";
@@ -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 19.1.22
6
- * @date 2026-06-06T06:23:19.222Z
7
- * @hash 97a02db
5
+ * @version 19.1.23
6
+ * @date 2026-06-17T08:50:59.790Z
7
+ * @hash 53aa85b
8
8
  */
9
9
 
10
10
  (function(exports, _odoo_owl) {
@@ -41195,8 +41195,12 @@ stores.inject(MyMetaStore, storeInstance);
41195
41195
  }
41196
41196
  stopEdition(direction) {
41197
41197
  if (this.canStopEdition()) {
41198
+ const { col, row } = this.currentEditedCell;
41198
41199
  this._stopEdition();
41199
- if (direction) this.model.selection.moveAnchorCell(direction, 1);
41200
+ if (direction) {
41201
+ this.model.selection.selectCell(col, row);
41202
+ this.model.selection.moveAnchorCell(direction, 1);
41203
+ }
41200
41204
  return;
41201
41205
  }
41202
41206
  const editedCell = this.currentEditedCell;
@@ -48463,9 +48467,9 @@ stores.inject(MyMetaStore, storeInstance);
48463
48467
  allSheetsMatches = [];
48464
48468
  activeSheetMatches = [];
48465
48469
  specificRangeMatches = [];
48470
+ selectedMatchPosition = null;
48466
48471
  currentSearchRegex = null;
48467
48472
  initialShowFormulaState;
48468
- preserveSelectedMatchIndex = false;
48469
48473
  irreplaceableMatchCount = 0;
48470
48474
  isSearchDirty = false;
48471
48475
  shouldFinalizeUpdateSelection = false;
@@ -48587,7 +48591,10 @@ stores.inject(MyMetaStore, storeInstance);
48587
48591
  */
48588
48592
  _updateSearch(toSearch, searchOptions) {
48589
48593
  this.searchOptions = searchOptions;
48590
- if (toSearch !== this.toSearch) this.selectedMatchIndex = null;
48594
+ if (toSearch !== this.toSearch) {
48595
+ this.selectedMatchIndex = null;
48596
+ this.selectedMatchPosition = null;
48597
+ }
48591
48598
  this.toSearch = toSearch;
48592
48599
  this.currentSearchRegex = getSearchRegex(this.toSearch, this.searchOptions);
48593
48600
  this.refreshSearch({
@@ -48599,8 +48606,14 @@ stores.inject(MyMetaStore, storeInstance);
48599
48606
  * refresh the matches according to the current search options
48600
48607
  */
48601
48608
  refreshSearch(options) {
48602
- if (!this.preserveSelectedMatchIndex) this.selectedMatchIndex = null;
48603
48609
  this.findMatches();
48610
+ if (this.selectedMatchPosition) if (this.selectedMatchPosition.sheetId !== this.getters.getActiveSheetId()) {
48611
+ this.selectedMatchIndex = null;
48612
+ this.selectedMatchPosition = null;
48613
+ } else {
48614
+ const index = this.searchMatches.findIndex((match) => match.sheetId === this.selectedMatchPosition?.sheetId && match.col === this.selectedMatchPosition?.col && match.row === this.selectedMatchPosition?.row);
48615
+ if (index !== -1) this.selectedMatchIndex = index;
48616
+ }
48604
48617
  this.selectNextCell(0, options);
48605
48618
  }
48606
48619
  getSheetsInSearchOrder() {
@@ -48668,6 +48681,7 @@ stores.inject(MyMetaStore, storeInstance);
48668
48681
  const matches = this.searchMatches;
48669
48682
  if (!matches.length) {
48670
48683
  this.selectedMatchIndex = null;
48684
+ this.selectedMatchPosition = null;
48671
48685
  return;
48672
48686
  }
48673
48687
  let nextIndex;
@@ -48681,14 +48695,13 @@ stores.inject(MyMetaStore, storeInstance);
48681
48695
  } else nextIndex = this.selectedMatchIndex + indexChange;
48682
48696
  nextIndex = (nextIndex + matches.length) % matches.length;
48683
48697
  this.selectedMatchIndex = nextIndex;
48698
+ this.selectedMatchPosition = matches[this.selectedMatchIndex];
48684
48699
  const selectedMatch = matches[nextIndex];
48685
48700
  if (options.jumpToMatchSheet && this.getters.getActiveSheetId() !== selectedMatch.sheetId) {
48686
- this.preserveSelectedMatchIndex = true;
48687
48701
  this.model.dispatch("ACTIVATE_SHEET", {
48688
48702
  sheetIdFrom: this.getters.getActiveSheetId(),
48689
48703
  sheetIdTo: selectedMatch.sheetId
48690
48704
  });
48691
- this.preserveSelectedMatchIndex = false;
48692
48705
  this.isSearchDirty = false;
48693
48706
  }
48694
48707
  this.model.selection.getBackToDefault();
@@ -48699,7 +48712,6 @@ stores.inject(MyMetaStore, storeInstance);
48699
48712
  */
48700
48713
  replace() {
48701
48714
  if (this.selectedMatchIndex === null) return;
48702
- this.preserveSelectedMatchIndex = true;
48703
48715
  this.shouldFinalizeUpdateSelection = true;
48704
48716
  this.model.dispatch("REPLACE_SEARCH", {
48705
48717
  searchString: this.toSearch,
@@ -48707,7 +48719,6 @@ stores.inject(MyMetaStore, storeInstance);
48707
48719
  matches: [this.searchMatches[this.selectedMatchIndex]],
48708
48720
  searchOptions: this.searchOptions
48709
48721
  });
48710
- this.preserveSelectedMatchIndex = false;
48711
48722
  }
48712
48723
  /**
48713
48724
  * Apply the replace function to all the matches one time.
@@ -59630,7 +59641,7 @@ stores.inject(MyMetaStore, storeInstance);
59630
59641
  const definition = getters.getPivotCoreDefinition(pivotId);
59631
59642
  const isDashboard = getters.isDashboard();
59632
59643
  const fields = pivotCell.dimension === "COL" ? definition.columns : definition.rows;
59633
- const hasIcon = !isDashboard && pivotCell.domain.length !== fields.length;
59644
+ const hasIcon = !isDashboard && !getters.shouldShowFormulas() && pivotCell.domain.length !== fields.length;
59634
59645
  const isCollapsed = (definition.collapsedDomains?.[pivotCell.dimension] ?? []).some((domain) => deepEquals(domain, pivotCell.domain));
59635
59646
  const indent = pivotCell.dimension === "ROW" ? (pivotCell.domain.length - 1) * 15 : 0;
59636
59647
  return {
@@ -79121,8 +79132,8 @@ exports.stores = stores;
79121
79132
  exports.tokenColors = tokenColors;
79122
79133
  exports.tokenize = tokenize;
79123
79134
 
79124
- __info__.version = "19.1.22";
79125
- __info__.date = "2026-06-06T06:23:19.222Z";
79126
- __info__.hash = "97a02db";
79135
+ __info__.version = "19.1.23";
79136
+ __info__.date = "2026-06-17T08:50:59.790Z";
79137
+ __info__.hash = "53aa85b";
79127
79138
 
79128
79139
  })(this.o_spreadsheet = this.o_spreadsheet || {}, owl);