@odoo/o-spreadsheet 18.4.50 → 18.4.51

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.50
6
- * @date 2026-07-30T06:52:56.556Z
7
- * @hash 0a41352
5
+ * @version 18.4.51
6
+ * @date 2026-08-10T12:29:38.748Z
7
+ * @hash fd60cf8
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.50
6
- * @date 2026-07-30T06:52:55.061Z
7
- * @hash 0a41352
5
+ * @version 18.4.51
6
+ * @date 2026-08-10T12:29:37.148Z
7
+ * @hash fd60cf8
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";
@@ -3037,19 +3037,58 @@ function applyVectorization(formula, args, acceptToVectorize = void 0) {
3037
3037
  }
3038
3038
  }
3039
3039
  if (countVectorizedCol === 1 && countVectorizedRow === 1) return formula(...args);
3040
- const getArgOffset = (i, j) => args.map((arg, index) => {
3041
- switch (vectorArgsType?.[index]) {
3042
- case "matrix": return arg[i][j];
3043
- case "horizontal": return arg[i][0];
3044
- case "vertical": return arg[0][j];
3045
- case void 0: return arg;
3040
+ const argsBuffer = new Array(args.length);
3041
+ const argGetters = [];
3042
+ const vectorizedIndices = [];
3043
+ for (let k = 0; k < args.length; k++) {
3044
+ const arg = args[k];
3045
+ switch (vectorArgsType?.[k]) {
3046
+ case "matrix":
3047
+ argGetters.push((i, j) => arg[i][j]);
3048
+ vectorizedIndices.push(k);
3049
+ break;
3050
+ case "horizontal":
3051
+ argGetters.push((i) => arg[i][0]);
3052
+ vectorizedIndices.push(k);
3053
+ break;
3054
+ case "vertical":
3055
+ argGetters.push((_i, j) => arg[0][j]);
3056
+ vectorizedIndices.push(k);
3057
+ break;
3058
+ case void 0:
3059
+ argsBuffer[k] = arg;
3060
+ break;
3046
3061
  }
3047
- });
3048
- return generateMatrix(countVectorizedCol, countVectorizedRow, (col, row) => {
3049
- if (col > vectorizedColLimit - 1 || row > vectorizedRowLimit - 1) return new NotAvailableError(_t("Array arguments to [[FUNCTION_NAME]] are of different size."));
3050
- const singleCellComputeResult = formula(...getArgOffset(col, row));
3051
- return isMatrix(singleCellComputeResult) ? singleCellComputeResult[0][0] : singleCellComputeResult;
3052
- });
3062
+ }
3063
+ const nbVectorized = vectorizedIndices.length;
3064
+ let callFormula;
3065
+ switch (argsBuffer.length) {
3066
+ case 1:
3067
+ callFormula = () => formula(argsBuffer[0]);
3068
+ break;
3069
+ case 2:
3070
+ callFormula = () => formula(argsBuffer[0], argsBuffer[1]);
3071
+ break;
3072
+ case 3:
3073
+ callFormula = () => formula(argsBuffer[0], argsBuffer[1], argsBuffer[2]);
3074
+ break;
3075
+ default: callFormula = () => formula(...argsBuffer);
3076
+ }
3077
+ const result = new Array(countVectorizedCol);
3078
+ for (let col = 0; col < countVectorizedCol; col++) {
3079
+ const column = new Array(countVectorizedRow);
3080
+ result[col] = column;
3081
+ for (let row = 0; row < countVectorizedRow; row++) {
3082
+ if (col > vectorizedColLimit - 1 || row > vectorizedRowLimit - 1) {
3083
+ column[row] = new NotAvailableError(_t("Array arguments to [[FUNCTION_NAME]] are of different size."));
3084
+ continue;
3085
+ }
3086
+ for (let k = 0; k < nbVectorized; k++) argsBuffer[vectorizedIndices[k]] = argGetters[k](col, row);
3087
+ const singleCellComputeResult = callFormula();
3088
+ column[row] = isMatrix(singleCellComputeResult) ? singleCellComputeResult[0][0] : singleCellComputeResult;
3089
+ }
3090
+ }
3091
+ return result;
3053
3092
  }
3054
3093
  /**
3055
3094
  * This function allows to visit arguments and stop the visit if necessary.
@@ -17176,12 +17215,15 @@ for (const category of categories) {
17176
17215
  }
17177
17216
  }
17178
17217
  function createComputeFunction(descr) {
17218
+ let currentArgDefinitions = [];
17179
17219
  function vectorizedCompute(...args) {
17180
17220
  const acceptToVectorize = [];
17221
+ currentArgDefinitions = new Array(args.length);
17181
17222
  const getArgToFocus = argTargeting(descr, args.length);
17182
17223
  for (let i = 0; i < args.length; i++) {
17183
17224
  const argIndex = getArgToFocus(i) ?? -1;
17184
17225
  const argDefinition = descr.args[argIndex];
17226
+ currentArgDefinitions[i] = argDefinition;
17185
17227
  const arg = args[i];
17186
17228
  if (!isMatrix(arg) && argDefinition.acceptMatrixOnly) throw new BadExpressionError(_t("Function %s expects the parameter '%s' to be reference to a cell or range.", descr.name, (i + 1).toString()));
17187
17229
  acceptToVectorize.push(!argDefinition.acceptMatrix);
@@ -17196,8 +17238,7 @@ function createComputeFunction(descr) {
17196
17238
  function errorHandlingCompute(...args) {
17197
17239
  for (let i = 0; i < args.length; i++) {
17198
17240
  const arg = args[i];
17199
- const getArgToFocus = argTargeting(descr, args.length);
17200
- if (!descr.args[getArgToFocus(i) || i].acceptErrors && !isMatrix(arg) && isEvaluationError(arg?.value)) return arg;
17241
+ if (!currentArgDefinitions[i].acceptErrors && !isMatrix(arg) && isEvaluationError(arg?.value)) return arg;
17201
17242
  }
17202
17243
  try {
17203
17244
  return computeFunctionToObject.apply(this, args);
@@ -75380,6 +75421,6 @@ const chartHelpers = {
75380
75421
  //#endregion
75381
75422
  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 };
75382
75423
 
75383
- __info__.version = "18.4.50";
75384
- __info__.date = "2026-07-30T06:52:55.061Z";
75385
- __info__.hash = "0a41352";
75424
+ __info__.version = "18.4.51";
75425
+ __info__.date = "2026-08-10T12:29:37.148Z";
75426
+ __info__.hash = "fd60cf8";
@@ -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.50
6
- * @date 2026-07-30T06:52:55.061Z
7
- * @hash 0a41352
5
+ * @version 18.4.51
6
+ * @date 2026-08-10T12:29:37.148Z
7
+ * @hash fd60cf8
8
8
  */
9
9
 
10
10
  (function(exports, _odoo_owl) {
@@ -3039,19 +3039,58 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
3039
3039
  }
3040
3040
  }
3041
3041
  if (countVectorizedCol === 1 && countVectorizedRow === 1) return formula(...args);
3042
- const getArgOffset = (i, j) => args.map((arg, index) => {
3043
- switch (vectorArgsType?.[index]) {
3044
- case "matrix": return arg[i][j];
3045
- case "horizontal": return arg[i][0];
3046
- case "vertical": return arg[0][j];
3047
- case void 0: return arg;
3042
+ const argsBuffer = new Array(args.length);
3043
+ const argGetters = [];
3044
+ const vectorizedIndices = [];
3045
+ for (let k = 0; k < args.length; k++) {
3046
+ const arg = args[k];
3047
+ switch (vectorArgsType?.[k]) {
3048
+ case "matrix":
3049
+ argGetters.push((i, j) => arg[i][j]);
3050
+ vectorizedIndices.push(k);
3051
+ break;
3052
+ case "horizontal":
3053
+ argGetters.push((i) => arg[i][0]);
3054
+ vectorizedIndices.push(k);
3055
+ break;
3056
+ case "vertical":
3057
+ argGetters.push((_i, j) => arg[0][j]);
3058
+ vectorizedIndices.push(k);
3059
+ break;
3060
+ case void 0:
3061
+ argsBuffer[k] = arg;
3062
+ break;
3048
3063
  }
3049
- });
3050
- return generateMatrix(countVectorizedCol, countVectorizedRow, (col, row) => {
3051
- if (col > vectorizedColLimit - 1 || row > vectorizedRowLimit - 1) return new NotAvailableError(_t("Array arguments to [[FUNCTION_NAME]] are of different size."));
3052
- const singleCellComputeResult = formula(...getArgOffset(col, row));
3053
- return isMatrix(singleCellComputeResult) ? singleCellComputeResult[0][0] : singleCellComputeResult;
3054
- });
3064
+ }
3065
+ const nbVectorized = vectorizedIndices.length;
3066
+ let callFormula;
3067
+ switch (argsBuffer.length) {
3068
+ case 1:
3069
+ callFormula = () => formula(argsBuffer[0]);
3070
+ break;
3071
+ case 2:
3072
+ callFormula = () => formula(argsBuffer[0], argsBuffer[1]);
3073
+ break;
3074
+ case 3:
3075
+ callFormula = () => formula(argsBuffer[0], argsBuffer[1], argsBuffer[2]);
3076
+ break;
3077
+ default: callFormula = () => formula(...argsBuffer);
3078
+ }
3079
+ const result = new Array(countVectorizedCol);
3080
+ for (let col = 0; col < countVectorizedCol; col++) {
3081
+ const column = new Array(countVectorizedRow);
3082
+ result[col] = column;
3083
+ for (let row = 0; row < countVectorizedRow; row++) {
3084
+ if (col > vectorizedColLimit - 1 || row > vectorizedRowLimit - 1) {
3085
+ column[row] = new NotAvailableError(_t("Array arguments to [[FUNCTION_NAME]] are of different size."));
3086
+ continue;
3087
+ }
3088
+ for (let k = 0; k < nbVectorized; k++) argsBuffer[vectorizedIndices[k]] = argGetters[k](col, row);
3089
+ const singleCellComputeResult = callFormula();
3090
+ column[row] = isMatrix(singleCellComputeResult) ? singleCellComputeResult[0][0] : singleCellComputeResult;
3091
+ }
3092
+ }
3093
+ return result;
3055
3094
  }
3056
3095
  /**
3057
3096
  * This function allows to visit arguments and stop the visit if necessary.
@@ -17178,12 +17217,15 @@ stores.inject(MyMetaStore, storeInstance);
17178
17217
  }
17179
17218
  }
17180
17219
  function createComputeFunction(descr) {
17220
+ let currentArgDefinitions = [];
17181
17221
  function vectorizedCompute(...args) {
17182
17222
  const acceptToVectorize = [];
17223
+ currentArgDefinitions = new Array(args.length);
17183
17224
  const getArgToFocus = argTargeting(descr, args.length);
17184
17225
  for (let i = 0; i < args.length; i++) {
17185
17226
  const argIndex = getArgToFocus(i) ?? -1;
17186
17227
  const argDefinition = descr.args[argIndex];
17228
+ currentArgDefinitions[i] = argDefinition;
17187
17229
  const arg = args[i];
17188
17230
  if (!isMatrix(arg) && argDefinition.acceptMatrixOnly) throw new BadExpressionError(_t("Function %s expects the parameter '%s' to be reference to a cell or range.", descr.name, (i + 1).toString()));
17189
17231
  acceptToVectorize.push(!argDefinition.acceptMatrix);
@@ -17198,8 +17240,7 @@ stores.inject(MyMetaStore, storeInstance);
17198
17240
  function errorHandlingCompute(...args) {
17199
17241
  for (let i = 0; i < args.length; i++) {
17200
17242
  const arg = args[i];
17201
- const getArgToFocus = argTargeting(descr, args.length);
17202
- if (!descr.args[getArgToFocus(i) || i].acceptErrors && !isMatrix(arg) && isEvaluationError(arg?.value)) return arg;
17243
+ if (!currentArgDefinitions[i].acceptErrors && !isMatrix(arg) && isEvaluationError(arg?.value)) return arg;
17203
17244
  }
17204
17245
  try {
17205
17246
  return computeFunctionToObject.apply(this, args);
@@ -75431,8 +75472,8 @@ exports.stores = stores;
75431
75472
  exports.tokenColors = tokenColors;
75432
75473
  exports.tokenize = tokenize;
75433
75474
 
75434
- __info__.version = "18.4.50";
75435
- __info__.date = "2026-07-30T06:52:55.061Z";
75436
- __info__.hash = "0a41352";
75475
+ __info__.version = "18.4.51";
75476
+ __info__.date = "2026-08-10T12:29:37.148Z";
75477
+ __info__.hash = "fd60cf8";
75437
75478
 
75438
75479
  })(this.o_spreadsheet = this.o_spreadsheet || {}, owl);