@odoo/o-spreadsheet 19.5.0-alpha.10 → 19.5.0-alpha.11

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.5.0-alpha.10
6
- * @date 2026-08-10T12:33:47.263Z
7
- * @hash 39a6fbc
5
+ * @version 19.5.0-alpha.11
6
+ * @date 2026-08-12T09:17:24.237Z
7
+ * @hash bc056d7
8
8
  */
9
9
 
10
10
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
@@ -5986,6 +5986,9 @@ var FunctionRegistry = class extends Registry {
5986
5986
  }
5987
5987
  };
5988
5988
  const functionRegistry = new FunctionRegistry();
5989
+ /** Formulas using one of these functions are never squished: they are always exported
5990
+ * as a full formula string, and they don't become the base formula of the next cells. */
5991
+ const NonSquishableFunctionRegistry = new Registry();
5989
5992
 
5990
5993
  //#endregion
5991
5994
  //#region src/helpers/references.ts
@@ -55514,7 +55517,8 @@ var Squisher = class {
55514
55517
  * The result of this method is:
55515
55518
  * - if the cell is not a formula, returns the content as is and resets the base formula
55516
55519
  * - if the cell is a formula:
55517
- * - 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
55520
+ * - if there is no previous formula, or the normalized formula is different from the previous one or it contains blacklisted functions (see NonSquishableFunctionRegistry),
55521
+ * resets the base formula to this one and returns the full formula string
55518
55522
  * - else, compares the literal values and range dependencies to the previous formula, and for each parameter:
55519
55523
  * - for numbers: returns a relative change (+N or -N) if possible, else the full number or "=" if unchanged
55520
55524
  * - for strings: returns the full string if changed, else "="
@@ -55522,6 +55526,10 @@ var Squisher = class {
55522
55526
  * */
55523
55527
  squish(cell, forSheetId) {
55524
55528
  if (cell.isFormula) {
55529
+ if (NonSquishableFunctionRegistry.getAll().some((functionName) => cell.compiledFormula.usesSymbol(functionName))) {
55530
+ this.resetBaseFormula();
55531
+ return cell.compiledFormula.toFormulaString(this.getters, this.rangeToStringOptions);
55532
+ }
55525
55533
  let numbers = [];
55526
55534
  let strings = [];
55527
55535
  let references = [];
@@ -65508,7 +65516,7 @@ var Session = class extends EventBus {
65508
65516
  }
65509
65517
  message = {
65510
65518
  ...message,
65511
- commands: this.commandSquisher.squish(revision.commands)
65519
+ commands: revision.commands
65512
65520
  };
65513
65521
  }
65514
65522
  if (this.isReplayingInitialRevisions) throw new Error(`Trying to send a new revision while replaying initial revision. This can lead to endless dispatches every time the spreadsheet is open.
@@ -89213,7 +89221,8 @@ const registries = {
89213
89221
  chartJsExtensionRegistry,
89214
89222
  onIterationEndEvaluationRegistry,
89215
89223
  specificRangeTransformRegistry,
89216
- unusedDataSourceRegistry
89224
+ unusedDataSourceRegistry,
89225
+ NonSquishableFunctionRegistry
89217
89226
  };
89218
89227
  const helpers = {
89219
89228
  arg,
@@ -89527,6 +89536,6 @@ exports.stores = stores;
89527
89536
  exports.tokenColors = tokenColors;
89528
89537
  exports.tokenize = tokenize;
89529
89538
 
89530
- __info__.version = "19.5.0-alpha.10";
89531
- __info__.date = "2026-08-10T12:33:47.263Z";
89532
- __info__.hash = "39a6fbc";
89539
+ __info__.version = "19.5.0-alpha.11";
89540
+ __info__.date = "2026-08-12T09:17:24.237Z";
89541
+ __info__.hash = "bc056d7";
@@ -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.5.0-alpha.10
6
- * @date 2026-08-10T12:33:48.907Z
7
- * @hash 39a6fbc
5
+ * @version 19.5.0-alpha.11
6
+ * @date 2026-08-12T09:17:26.024Z
7
+ * @hash bc056d7
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.5.0-alpha.10
6
- * @date 2026-08-10T12:33:47.263Z
7
- * @hash 39a6fbc
5
+ * @version 19.5.0-alpha.11
6
+ * @date 2026-08-12T09:17:24.237Z
7
+ * @hash bc056d7
8
8
  */
9
9
 
10
10
  import * as owl from "@odoo/owl";
@@ -5985,6 +5985,9 @@ var FunctionRegistry = class extends Registry {
5985
5985
  }
5986
5986
  };
5987
5987
  const functionRegistry = new FunctionRegistry();
5988
+ /** Formulas using one of these functions are never squished: they are always exported
5989
+ * as a full formula string, and they don't become the base formula of the next cells. */
5990
+ const NonSquishableFunctionRegistry = new Registry();
5988
5991
 
5989
5992
  //#endregion
5990
5993
  //#region src/helpers/references.ts
@@ -55513,7 +55516,8 @@ var Squisher = class {
55513
55516
  * The result of this method is:
55514
55517
  * - if the cell is not a formula, returns the content as is and resets the base formula
55515
55518
  * - if the cell is a formula:
55516
- * - 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
55519
+ * - if there is no previous formula, or the normalized formula is different from the previous one or it contains blacklisted functions (see NonSquishableFunctionRegistry),
55520
+ * resets the base formula to this one and returns the full formula string
55517
55521
  * - else, compares the literal values and range dependencies to the previous formula, and for each parameter:
55518
55522
  * - for numbers: returns a relative change (+N or -N) if possible, else the full number or "=" if unchanged
55519
55523
  * - for strings: returns the full string if changed, else "="
@@ -55521,6 +55525,10 @@ var Squisher = class {
55521
55525
  * */
55522
55526
  squish(cell, forSheetId) {
55523
55527
  if (cell.isFormula) {
55528
+ if (NonSquishableFunctionRegistry.getAll().some((functionName) => cell.compiledFormula.usesSymbol(functionName))) {
55529
+ this.resetBaseFormula();
55530
+ return cell.compiledFormula.toFormulaString(this.getters, this.rangeToStringOptions);
55531
+ }
55524
55532
  let numbers = [];
55525
55533
  let strings = [];
55526
55534
  let references = [];
@@ -65323,7 +65331,7 @@ var Session = class extends EventBus {
65323
65331
  }
65324
65332
  message = {
65325
65333
  ...message,
65326
- commands: this.commandSquisher.squish(revision.commands)
65334
+ commands: revision.commands
65327
65335
  };
65328
65336
  }
65329
65337
  if (this.isReplayingInitialRevisions) throw new Error(`Trying to send a new revision while replaying initial revision. This can lead to endless dispatches every time the spreadsheet is open.
@@ -89028,7 +89036,8 @@ const registries = {
89028
89036
  chartJsExtensionRegistry,
89029
89037
  onIterationEndEvaluationRegistry,
89030
89038
  specificRangeTransformRegistry,
89031
- unusedDataSourceRegistry
89039
+ unusedDataSourceRegistry,
89040
+ NonSquishableFunctionRegistry
89032
89041
  };
89033
89042
  const helpers = {
89034
89043
  arg,
@@ -89248,6 +89257,6 @@ const chartHelpers = {
89248
89257
  //#endregion
89249
89258
  export { AbstractCellClipboardHandler, AbstractChart, AbstractFigureClipboardHandler, BadExpressionError, CHART_TYPES, CellErrorType, CellValueType, CircularDependencyError, ClientDisconnectedError, ClipboardMIMEType, CommandResult, CompiledFormula, CorePlugin, CoreViewPlugin, DEFAULT_LOCALE, DEFAULT_LOCALES, DEFAULT_LOCALE_DIGIT_GROUPING, DIRECTION, DispatchResult, DivisionByZeroError, EvaluationError, InvalidReferenceError, LocalTransportService, Model, NEXT_VALUE, NotAvailableError, NumberTooLargeError, OrderedLayers, PREVIOUS_VALUE, PivotRuntimeDefinition, Registry, Revision, SPREADSHEET_DIMENSIONS, SplillBlockedError, Spreadsheet, SpreadsheetPivotTable, UIPlugin, UnknownFunctionError, __info__, addFunction, addRenderingLayer, astToFormula, availableConditionalFormatOperators, availableDataValidationOperators, availableFiltersOperators, borderPositions, borderStyles, canExecuteInReadonly, categories, chartHelpers, compatibility, components, composerFocusTypes, constants, convertAstNodes, coreTypes, createAutocompleteArgumentsProvider, errorTypes, filterDateCriterionOperators, filterNumberCriterionOperators, filterTextCriterionOperators, findCellInNewZone, functionCache, getCaretDownSvg, getCaretUpSvg, helpers, hooks, invalidSubtotalFormulasCommands, invalidateBordersCommands, invalidateCFEvaluationCommands, invalidateChartEvaluationCommands, invalidateDependenciesCommands, invalidateEvaluationCommands, isCoreCommand, isHeadersDependant, isMatrix, isPositionDependent, isRangeDependant, isSheetDependent, isTargetDependent, isZoneDependent, iterateAstNodes, links, load, lockedSheetAllowedCommands, parse, parseTokens, readonlyAllowedCommands, registries, schemeToColorScale, setDefaultSheetViewSize, setTranslationMethod, stores, tokenColors, tokenize };
89250
89259
 
89251
- __info__.version = "19.5.0-alpha.10";
89252
- __info__.date = "2026-08-10T12:33:47.263Z";
89253
- __info__.hash = "39a6fbc";
89260
+ __info__.version = "19.5.0-alpha.11";
89261
+ __info__.date = "2026-08-12T09:17:24.237Z";
89262
+ __info__.hash = "bc056d7";
@@ -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.5.0-alpha.10
6
- * @date 2026-08-10T12:33:47.263Z
7
- * @hash 39a6fbc
5
+ * @version 19.5.0-alpha.11
6
+ * @date 2026-08-12T09:17:24.237Z
7
+ * @hash bc056d7
8
8
  */
9
9
 
10
10
  (function(exports, _odoo_owl) {
@@ -5987,6 +5987,9 @@ set(value) {
5987
5987
  }
5988
5988
  };
5989
5989
  const functionRegistry = new FunctionRegistry();
5990
+ /** Formulas using one of these functions are never squished: they are always exported
5991
+ * as a full formula string, and they don't become the base formula of the next cells. */
5992
+ const NonSquishableFunctionRegistry = new Registry();
5990
5993
 
5991
5994
  //#endregion
5992
5995
  //#region src/helpers/references.ts
@@ -55515,7 +55518,8 @@ set(value) {
55515
55518
  * The result of this method is:
55516
55519
  * - if the cell is not a formula, returns the content as is and resets the base formula
55517
55520
  * - if the cell is a formula:
55518
- * - 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
55521
+ * - if there is no previous formula, or the normalized formula is different from the previous one or it contains blacklisted functions (see NonSquishableFunctionRegistry),
55522
+ * resets the base formula to this one and returns the full formula string
55519
55523
  * - else, compares the literal values and range dependencies to the previous formula, and for each parameter:
55520
55524
  * - for numbers: returns a relative change (+N or -N) if possible, else the full number or "=" if unchanged
55521
55525
  * - for strings: returns the full string if changed, else "="
@@ -55523,6 +55527,10 @@ set(value) {
55523
55527
  * */
55524
55528
  squish(cell, forSheetId) {
55525
55529
  if (cell.isFormula) {
55530
+ if (NonSquishableFunctionRegistry.getAll().some((functionName) => cell.compiledFormula.usesSymbol(functionName))) {
55531
+ this.resetBaseFormula();
55532
+ return cell.compiledFormula.toFormulaString(this.getters, this.rangeToStringOptions);
55533
+ }
55526
55534
  let numbers = [];
55527
55535
  let strings = [];
55528
55536
  let references = [];
@@ -65325,7 +65333,7 @@ set(value) {
65325
65333
  }
65326
65334
  message = {
65327
65335
  ...message,
65328
- commands: this.commandSquisher.squish(revision.commands)
65336
+ commands: revision.commands
65329
65337
  };
65330
65338
  }
65331
65339
  if (this.isReplayingInitialRevisions) throw new Error(`Trying to send a new revision while replaying initial revision. This can lead to endless dispatches every time the spreadsheet is open.
@@ -89030,7 +89038,8 @@ set(value) {
89030
89038
  chartJsExtensionRegistry,
89031
89039
  onIterationEndEvaluationRegistry,
89032
89040
  specificRangeTransformRegistry,
89033
- unusedDataSourceRegistry
89041
+ unusedDataSourceRegistry,
89042
+ NonSquishableFunctionRegistry
89034
89043
  };
89035
89044
  const helpers = {
89036
89045
  arg,
@@ -89344,8 +89353,8 @@ exports.stores = stores;
89344
89353
  exports.tokenColors = tokenColors;
89345
89354
  exports.tokenize = tokenize;
89346
89355
 
89347
- __info__.version = "19.5.0-alpha.10";
89348
- __info__.date = "2026-08-10T12:33:47.263Z";
89349
- __info__.hash = "39a6fbc";
89356
+ __info__.version = "19.5.0-alpha.11";
89357
+ __info__.date = "2026-08-12T09:17:24.237Z";
89358
+ __info__.hash = "bc056d7";
89350
89359
 
89351
89360
  })(this.o_spreadsheet = this.o_spreadsheet || {}, owl);