@odoo/o-spreadsheet 19.2.24 → 19.2.25

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.2.24
6
- * @date 2026-08-10T12:32:28.468Z
7
- * @hash 31fa530
5
+ * @version 19.2.25
6
+ * @date 2026-08-12T09:16:52.703Z
7
+ * @hash 685ffda
8
8
  */
9
9
  :root {
10
10
  --os-gray-100: light-dark(#f9fafb, #1b1d26);
@@ -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.2.24
6
- * @date 2026-08-10T12:32:26.974Z
7
- * @hash 31fa530
5
+ * @version 19.2.25
6
+ * @date 2026-08-12T09:16:51.116Z
7
+ * @hash 685ffda
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";
@@ -25841,6 +25841,9 @@ for (const category of categories) {
25841
25841
  });
25842
25842
  }
25843
25843
  }
25844
+ /** Formulas using one of these functions are never squished: they are always exported
25845
+ * as a full formula string, and they don't become the base formula of the next cells. */
25846
+ const NonSquishableFunctionRegistry = new Registry();
25844
25847
 
25845
25848
  //#endregion
25846
25849
  //#region src/types/xlsx.ts
@@ -55899,7 +55902,8 @@ var Squisher = class {
55899
55902
  * The result of this method is:
55900
55903
  * - if the cell is not a formula, returns the content as is and resets the base formula
55901
55904
  * - if the cell is a formula:
55902
- * - if there is no previous formula, or the normalized formula is different from the previous one, resets the base formula to this one and returns the full formula string
55905
+ * - if there is no previous formula, or the normalized formula is different from the previous one or it contains blacklisted functions (see NonSquishableFunctionRegistry),
55906
+ * resets the base formula to this one and returns the full formula string
55903
55907
  * - else, compares the literal values and range dependencies to the previous formula, and for each parameter:
55904
55908
  * - for numbers: returns a relative change (+N or -N) if possible, else the full number or "=" if unchanged
55905
55909
  * - for strings: returns the full string if changed, else "="
@@ -55910,6 +55914,10 @@ var Squisher = class {
55910
55914
  this.resetBase();
55911
55915
  return cell.content;
55912
55916
  }
55917
+ if (NonSquishableFunctionRegistry.getAll().some((functionName) => cell.compiledFormula.usesSymbol(functionName))) {
55918
+ this.resetBase();
55919
+ return cell.compiledFormula.toFormulaString(this.getters, this.rangeToStringOptions);
55920
+ }
55913
55921
  let numbers = [];
55914
55922
  let strings = [];
55915
55923
  let references = [];
@@ -81610,7 +81618,8 @@ const registries = {
81610
81618
  supportedPivotPositionalFormulaRegistry,
81611
81619
  pivotToFunctionValueRegistry,
81612
81620
  migrationStepRegistry,
81613
- chartJsExtensionRegistry
81621
+ chartJsExtensionRegistry,
81622
+ NonSquishableFunctionRegistry
81614
81623
  };
81615
81624
  const helpers = {
81616
81625
  arg,
@@ -81802,6 +81811,6 @@ const chartHelpers = {
81802
81811
  //#endregion
81803
81812
  export { AbstractCellClipboardHandler, AbstractChart, AbstractFigureClipboardHandler, CellErrorType, ClientDisconnectedError, CommandResult, CompiledFormula, CorePlugin, CoreViewPlugin, DEFAULT_LOCALE, DEFAULT_LOCALES, DispatchResult, EvaluationError, LocalTransportService, Model, PivotRuntimeDefinition, Registry, Revision, SPREADSHEET_DIMENSIONS, Spreadsheet, SpreadsheetPivotTable, UIPlugin, __info__, addFunction, addRenderingLayer, astToFormula, canExecuteInReadonly, categories, chartHelpers, components, constants, convertAstNodes, coreTypes, createAutocompleteArgumentsProvider, findCellInNewZone, functionCache, getCaretDownSvg, getCaretUpSvg, helpers, hooks, invalidateCFEvaluationCommands, invalidateChartEvaluationCommands, invalidateDependenciesCommands, invalidateEvaluationCommands, isCoreCommand, isSheetDependent, iterateAstNodes, links, load, lockedSheetAllowedCommands, parse, parseTokens, readonlyAllowedCommands, registries, setDefaultSheetViewSize, setTranslationMethod, stores, tokenColors, tokenize };
81804
81813
 
81805
- __info__.version = "19.2.24";
81806
- __info__.date = "2026-08-10T12:32:26.974Z";
81807
- __info__.hash = "31fa530";
81814
+ __info__.version = "19.2.25";
81815
+ __info__.date = "2026-08-12T09:16:51.116Z";
81816
+ __info__.hash = "685ffda";
@@ -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.2.24
6
- * @date 2026-08-10T12:32:26.974Z
7
- * @hash 31fa530
5
+ * @version 19.2.25
6
+ * @date 2026-08-12T09:16:51.116Z
7
+ * @hash 685ffda
8
8
  */
9
9
 
10
10
  (function(exports, _odoo_owl) {
@@ -25843,6 +25843,9 @@ stores.inject(MyMetaStore, storeInstance);
25843
25843
  });
25844
25844
  }
25845
25845
  }
25846
+ /** Formulas using one of these functions are never squished: they are always exported
25847
+ * as a full formula string, and they don't become the base formula of the next cells. */
25848
+ const NonSquishableFunctionRegistry = new Registry();
25846
25849
 
25847
25850
  //#endregion
25848
25851
  //#region src/types/xlsx.ts
@@ -55901,7 +55904,8 @@ stores.inject(MyMetaStore, storeInstance);
55901
55904
  * The result of this method is:
55902
55905
  * - if the cell is not a formula, returns the content as is and resets the base formula
55903
55906
  * - if the cell is a formula:
55904
- * - if there is no previous formula, or the normalized formula is different from the previous one, resets the base formula to this one and returns the full formula string
55907
+ * - if there is no previous formula, or the normalized formula is different from the previous one or it contains blacklisted functions (see NonSquishableFunctionRegistry),
55908
+ * resets the base formula to this one and returns the full formula string
55905
55909
  * - else, compares the literal values and range dependencies to the previous formula, and for each parameter:
55906
55910
  * - for numbers: returns a relative change (+N or -N) if possible, else the full number or "=" if unchanged
55907
55911
  * - for strings: returns the full string if changed, else "="
@@ -55912,6 +55916,10 @@ stores.inject(MyMetaStore, storeInstance);
55912
55916
  this.resetBase();
55913
55917
  return cell.content;
55914
55918
  }
55919
+ if (NonSquishableFunctionRegistry.getAll().some((functionName) => cell.compiledFormula.usesSymbol(functionName))) {
55920
+ this.resetBase();
55921
+ return cell.compiledFormula.toFormulaString(this.getters, this.rangeToStringOptions);
55922
+ }
55915
55923
  let numbers = [];
55916
55924
  let strings = [];
55917
55925
  let references = [];
@@ -81612,7 +81620,8 @@ stores.inject(MyMetaStore, storeInstance);
81612
81620
  supportedPivotPositionalFormulaRegistry,
81613
81621
  pivotToFunctionValueRegistry,
81614
81622
  migrationStepRegistry,
81615
- chartJsExtensionRegistry
81623
+ chartJsExtensionRegistry,
81624
+ NonSquishableFunctionRegistry
81616
81625
  };
81617
81626
  const helpers = {
81618
81627
  arg,
@@ -81862,8 +81871,8 @@ exports.stores = stores;
81862
81871
  exports.tokenColors = tokenColors;
81863
81872
  exports.tokenize = tokenize;
81864
81873
 
81865
- __info__.version = "19.2.24";
81866
- __info__.date = "2026-08-10T12:32:26.974Z";
81867
- __info__.hash = "31fa530";
81874
+ __info__.version = "19.2.25";
81875
+ __info__.date = "2026-08-12T09:16:51.116Z";
81876
+ __info__.hash = "685ffda";
81868
81877
 
81869
81878
  })(this.o_spreadsheet = this.o_spreadsheet || {}, owl);