@odoo/o-spreadsheet 16.0.66 → 16.0.67

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.
@@ -6956,7 +6956,7 @@ function transformZone(zone, executed) {
6956
6956
  if (executed.type === "ADD_COLUMNS_ROWS") {
6957
6957
  return expandZoneOnInsertion(zone, executed.dimension === "COL" ? "left" : "top", executed.base, executed.position, executed.quantity);
6958
6958
  }
6959
- return { ...zone };
6959
+ return zone;
6960
6960
  }
6961
6961
 
6962
6962
  /**
@@ -18419,7 +18419,13 @@ function tokenizeString(chars) {
18419
18419
  }
18420
18420
  return null;
18421
18421
  }
18422
- const separatorRegexp = /\w|\.|!|\$/;
18422
+ /**
18423
+ - \p{L} is for any letter (from any language)
18424
+ - \p{N} is for any number
18425
+ - the u flag at the end is for unicode, which enables the `\p{...}` syntax
18426
+ */
18427
+ const unicodeSymbolCharRegexp = /\p{L}|\p{N}|_|\.|!|\$/u;
18428
+ const SYMBOL_CHARS = new Set("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_.!$");
18423
18429
  /**
18424
18430
  * A "Symbol" is just basically any word-like element that can appear in a
18425
18431
  * formula, which is not a string. So:
@@ -18459,7 +18465,7 @@ function tokenizeSymbol(chars) {
18459
18465
  };
18460
18466
  }
18461
18467
  }
18462
- while (chars[0] && chars[0].match(separatorRegexp)) {
18468
+ while (chars[0] && (SYMBOL_CHARS.has(chars[0]) || chars[0].match(unicodeSymbolCharRegexp))) {
18463
18469
  result += chars.shift();
18464
18470
  }
18465
18471
  if (result.length) {
@@ -36216,10 +36222,8 @@ function mergeTransformation(cmd, executed) {
36216
36222
  }
36217
36223
  const target = [];
36218
36224
  for (const zone1 of cmd.target) {
36219
- for (const zone2 of executed.target) {
36220
- if (!overlap(zone1, zone2)) {
36221
- target.push({ ...zone1 });
36222
- }
36225
+ if (executed.target.every((zone2) => !overlap(zone1, zone2))) {
36226
+ target.push(zone1);
36223
36227
  }
36224
36228
  }
36225
36229
  if (target.length) {
@@ -43778,6 +43782,6 @@ exports.setTranslationMethod = setTranslationMethod;
43778
43782
  exports.tokenize = tokenize;
43779
43783
 
43780
43784
 
43781
- __info__.version = '16.0.66';
43782
- __info__.date = '2025-03-26T12:44:10.381Z';
43783
- __info__.hash = 'e2c1da2';
43785
+ __info__.version = '16.0.67';
43786
+ __info__.date = '2025-04-18T16:22:13.893Z';
43787
+ __info__.hash = 'efeeb27';
@@ -6952,7 +6952,7 @@ function transformZone(zone, executed) {
6952
6952
  if (executed.type === "ADD_COLUMNS_ROWS") {
6953
6953
  return expandZoneOnInsertion(zone, executed.dimension === "COL" ? "left" : "top", executed.base, executed.position, executed.quantity);
6954
6954
  }
6955
- return { ...zone };
6955
+ return zone;
6956
6956
  }
6957
6957
 
6958
6958
  /**
@@ -18415,7 +18415,13 @@ function tokenizeString(chars) {
18415
18415
  }
18416
18416
  return null;
18417
18417
  }
18418
- const separatorRegexp = /\w|\.|!|\$/;
18418
+ /**
18419
+ - \p{L} is for any letter (from any language)
18420
+ - \p{N} is for any number
18421
+ - the u flag at the end is for unicode, which enables the `\p{...}` syntax
18422
+ */
18423
+ const unicodeSymbolCharRegexp = /\p{L}|\p{N}|_|\.|!|\$/u;
18424
+ const SYMBOL_CHARS = new Set("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_.!$");
18419
18425
  /**
18420
18426
  * A "Symbol" is just basically any word-like element that can appear in a
18421
18427
  * formula, which is not a string. So:
@@ -18455,7 +18461,7 @@ function tokenizeSymbol(chars) {
18455
18461
  };
18456
18462
  }
18457
18463
  }
18458
- while (chars[0] && chars[0].match(separatorRegexp)) {
18464
+ while (chars[0] && (SYMBOL_CHARS.has(chars[0]) || chars[0].match(unicodeSymbolCharRegexp))) {
18459
18465
  result += chars.shift();
18460
18466
  }
18461
18467
  if (result.length) {
@@ -36212,10 +36218,8 @@ function mergeTransformation(cmd, executed) {
36212
36218
  }
36213
36219
  const target = [];
36214
36220
  for (const zone1 of cmd.target) {
36215
- for (const zone2 of executed.target) {
36216
- if (!overlap(zone1, zone2)) {
36217
- target.push({ ...zone1 });
36218
- }
36221
+ if (executed.target.every((zone2) => !overlap(zone1, zone2))) {
36222
+ target.push(zone1);
36219
36223
  }
36220
36224
  }
36221
36225
  if (target.length) {
@@ -43746,6 +43750,6 @@ function addFunction(functionName, functionDescription) {
43746
43750
  export { AbstractChart, CommandResult, CorePlugin, DATETIME_FORMAT, DispatchResult, EvaluationError, Model, Registry, Revision, SPREADSHEET_DIMENSIONS, Spreadsheet, UIPlugin, __info__, addFunction, astToFormula, cellTypes, compile, components, convertAstNodes, coreTypes, findCellInNewZone, functionCache, helpers, invalidateEvaluationCommands, load, parse, readonlyAllowedCommands, registries, setTranslationMethod, tokenize };
43747
43751
 
43748
43752
 
43749
- __info__.version = '16.0.66';
43750
- __info__.date = '2025-03-26T12:44:10.381Z';
43751
- __info__.hash = 'e2c1da2';
43753
+ __info__.version = '16.0.67';
43754
+ __info__.date = '2025-04-18T16:22:13.893Z';
43755
+ __info__.hash = 'efeeb27';
@@ -6953,7 +6953,7 @@
6953
6953
  if (executed.type === "ADD_COLUMNS_ROWS") {
6954
6954
  return expandZoneOnInsertion(zone, executed.dimension === "COL" ? "left" : "top", executed.base, executed.position, executed.quantity);
6955
6955
  }
6956
- return { ...zone };
6956
+ return zone;
6957
6957
  }
6958
6958
 
6959
6959
  /**
@@ -18416,7 +18416,13 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
18416
18416
  }
18417
18417
  return null;
18418
18418
  }
18419
- const separatorRegexp = /\w|\.|!|\$/;
18419
+ /**
18420
+ - \p{L} is for any letter (from any language)
18421
+ - \p{N} is for any number
18422
+ - the u flag at the end is for unicode, which enables the `\p{...}` syntax
18423
+ */
18424
+ const unicodeSymbolCharRegexp = /\p{L}|\p{N}|_|\.|!|\$/u;
18425
+ const SYMBOL_CHARS = new Set("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_.!$");
18420
18426
  /**
18421
18427
  * A "Symbol" is just basically any word-like element that can appear in a
18422
18428
  * formula, which is not a string. So:
@@ -18456,7 +18462,7 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
18456
18462
  };
18457
18463
  }
18458
18464
  }
18459
- while (chars[0] && chars[0].match(separatorRegexp)) {
18465
+ while (chars[0] && (SYMBOL_CHARS.has(chars[0]) || chars[0].match(unicodeSymbolCharRegexp))) {
18460
18466
  result += chars.shift();
18461
18467
  }
18462
18468
  if (result.length) {
@@ -36213,10 +36219,8 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
36213
36219
  }
36214
36220
  const target = [];
36215
36221
  for (const zone1 of cmd.target) {
36216
- for (const zone2 of executed.target) {
36217
- if (!overlap(zone1, zone2)) {
36218
- target.push({ ...zone1 });
36219
- }
36222
+ if (executed.target.every((zone2) => !overlap(zone1, zone2))) {
36223
+ target.push(zone1);
36220
36224
  }
36221
36225
  }
36222
36226
  if (target.length) {
@@ -43777,9 +43781,9 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
43777
43781
  Object.defineProperty(exports, '__esModule', { value: true });
43778
43782
 
43779
43783
 
43780
- __info__.version = '16.0.66';
43781
- __info__.date = '2025-03-26T12:44:10.381Z';
43782
- __info__.hash = 'e2c1da2';
43784
+ __info__.version = '16.0.67';
43785
+ __info__.date = '2025-04-18T16:22:13.893Z';
43786
+ __info__.hash = 'efeeb27';
43783
43787
 
43784
43788
 
43785
43789
  })(this.o_spreadsheet = this.o_spreadsheet || {}, owl);