@odoo/o-spreadsheet 16.0.67 → 16.0.68

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.
@@ -2373,6 +2373,13 @@ function createDefaultRows(rowNumber) {
2373
2373
  rows.push(row);
2374
2374
  }
2375
2375
  return rows;
2376
+ }
2377
+ function isSheetNameEqual(name1, name2) {
2378
+ if (name1 === undefined || name2 === undefined) {
2379
+ return false;
2380
+ }
2381
+ return (getUnquotedSheetName(name1.trim().toUpperCase()) ===
2382
+ getUnquotedSheetName(name2.trim().toUpperCase()));
2376
2383
  }
2377
2384
 
2378
2385
  /*
@@ -19637,7 +19644,7 @@ class EditionPlugin extends UIPlugin {
19637
19644
  const { xc, sheetName: sheet } = splitReference(token.value);
19638
19645
  const sheetName = sheet || this.getters.getSheetName(this.sheetId);
19639
19646
  const activeSheetId = this.getters.getActiveSheetId();
19640
- if (this.getters.getSheetName(activeSheetId) !== sheetName) {
19647
+ if (!isSheetNameEqual(this.getters.getSheetName(activeSheetId), sheetName)) {
19641
19648
  return false;
19642
19649
  }
19643
19650
  const refRange = this.getters.getRangeFromSheetXC(activeSheetId, xc);
@@ -21716,18 +21723,28 @@ figureRegistry.add("chart", { Component: ChartFigure, SidePanelComponent: "Chart
21716
21723
  function useInterval(callback, delay) {
21717
21724
  let intervalId;
21718
21725
  const { setInterval, clearInterval } = window;
21726
+ const pause = () => {
21727
+ clearInterval(intervalId);
21728
+ intervalId = undefined;
21729
+ };
21730
+ const safeCallback = () => {
21731
+ try {
21732
+ callback();
21733
+ }
21734
+ catch (e) {
21735
+ pause();
21736
+ throw e;
21737
+ }
21738
+ };
21719
21739
  owl.useEffect(() => {
21720
- intervalId = setInterval(callback, delay);
21740
+ intervalId = setInterval(safeCallback, delay);
21721
21741
  return () => clearInterval(intervalId);
21722
21742
  }, () => [delay]);
21723
21743
  return {
21724
- pause: () => {
21725
- clearInterval(intervalId);
21726
- intervalId = undefined;
21727
- },
21744
+ pause,
21728
21745
  resume: () => {
21729
21746
  if (intervalId === undefined) {
21730
- intervalId = setInterval(callback, delay);
21747
+ intervalId = setInterval(safeCallback, delay);
21731
21748
  }
21732
21749
  },
21733
21750
  };
@@ -25032,7 +25049,7 @@ function getRangeSize(reference, defaultSheetIndex, data) {
25032
25049
  ({ xc, sheetName } = splitReference(reference));
25033
25050
  let rangeSheetIndex;
25034
25051
  if (sheetName) {
25035
- const index = data.sheets.findIndex((sheet) => sheet.name === sheetName);
25052
+ const index = data.sheets.findIndex((sheet) => isSheetNameEqual(sheet.name, sheetName));
25036
25053
  if (index < 0) {
25037
25054
  throw new Error("Unable to find a sheet with the name " + sheetName);
25038
25055
  }
@@ -25204,7 +25221,7 @@ function convertFormula(formula, data) {
25204
25221
  var _a;
25205
25222
  externalRefId = Number(externalRefId) - 1;
25206
25223
  cellRef = cellRef.replace(/\$/g, "");
25207
- const sheetIndex = data.externalBooks[externalRefId].sheetNames.findIndex((name) => name === sheetName);
25224
+ const sheetIndex = data.externalBooks[externalRefId].sheetNames.findIndex((name) => isSheetNameEqual(name, sheetName));
25208
25225
  if (sheetIndex === -1) {
25209
25226
  return match;
25210
25227
  }
@@ -25543,7 +25560,7 @@ function applyStyleToZone(appliedStyle, zone, cells, styles) {
25543
25560
  */
25544
25561
  function convertTableFormulaReferences(convertedSheets, xlsxSheets) {
25545
25562
  for (let tableSheet of convertedSheets) {
25546
- const tables = xlsxSheets.find((s) => s.sheetName === tableSheet.name).tables;
25563
+ const tables = xlsxSheets.find((s) => isSheetNameEqual(s.sheetName, tableSheet.name)).tables;
25547
25564
  for (let table of tables) {
25548
25565
  const tabRef = table.name + "[";
25549
25566
  for (let sheet of convertedSheets) {
@@ -30741,7 +30758,7 @@ class SheetPlugin extends CorePlugin {
30741
30758
  if (name) {
30742
30759
  const unquotedName = getUnquotedSheetName(name);
30743
30760
  for (const key in this.sheetIdsMapName) {
30744
- if (key.toUpperCase() === unquotedName.toUpperCase()) {
30761
+ if (isSheetNameEqual(key, unquotedName)) {
30745
30762
  return this.sheetIdsMapName[key];
30746
30763
  }
30747
30764
  }
@@ -30996,7 +31013,7 @@ class SheetPlugin extends CorePlugin {
30996
31013
  checkSheetName(cmd) {
30997
31014
  const { orderedSheetIds, sheets } = this;
30998
31015
  const name = cmd.name && cmd.name.trim().toLowerCase();
30999
- if (orderedSheetIds.find((id) => { var _a; return ((_a = sheets[id]) === null || _a === void 0 ? void 0 : _a.name.toLowerCase()) === name; })) {
31016
+ if (orderedSheetIds.find((id) => { var _a; return isSheetNameEqual((_a = sheets[id]) === null || _a === void 0 ? void 0 : _a.name, name); })) {
31000
31017
  return 11 /* CommandResult.DuplicatedSheetName */;
31001
31018
  }
31002
31019
  if (FORBIDDEN_IN_EXCEL_REGEX.test(name)) {
@@ -35261,6 +35278,8 @@ class GridSelectionPlugin extends UIPlugin {
35261
35278
  const { col, row } = this.getters.getNextVisibleCellPosition(cmd.sheetIdTo, 0, 0);
35262
35279
  this.selectCell(col, row);
35263
35280
  }
35281
+ const { col, row } = this.gridSelection.anchor.cell;
35282
+ this.moveClient({ sheetId: this.activeSheet.id, col, row });
35264
35283
  break;
35265
35284
  }
35266
35285
  case "REMOVE_COLUMNS_ROWS": {
@@ -40875,7 +40894,7 @@ class RangeAdapter {
40875
40894
  if (range.sheetId === cmd.sheetId) {
40876
40895
  return { changeType: "CHANGE", range };
40877
40896
  }
40878
- if (cmd.name && range.invalidSheetName === cmd.name) {
40897
+ if (isSheetNameEqual(range.invalidSheetName, cmd.name)) {
40879
40898
  const invalidSheetName = undefined;
40880
40899
  const sheetId = cmd.sheetId;
40881
40900
  const newRange = range.clone({ sheetId, invalidSheetName });
@@ -43782,6 +43801,6 @@ exports.setTranslationMethod = setTranslationMethod;
43782
43801
  exports.tokenize = tokenize;
43783
43802
 
43784
43803
 
43785
- __info__.version = '16.0.67';
43786
- __info__.date = '2025-04-18T16:22:13.893Z';
43787
- __info__.hash = 'efeeb27';
43804
+ __info__.version = '16.0.68';
43805
+ __info__.date = '2025-04-25T08:02:52.716Z';
43806
+ __info__.hash = '682d48e';
@@ -2369,6 +2369,13 @@ function createDefaultRows(rowNumber) {
2369
2369
  rows.push(row);
2370
2370
  }
2371
2371
  return rows;
2372
+ }
2373
+ function isSheetNameEqual(name1, name2) {
2374
+ if (name1 === undefined || name2 === undefined) {
2375
+ return false;
2376
+ }
2377
+ return (getUnquotedSheetName(name1.trim().toUpperCase()) ===
2378
+ getUnquotedSheetName(name2.trim().toUpperCase()));
2372
2379
  }
2373
2380
 
2374
2381
  /*
@@ -19633,7 +19640,7 @@ class EditionPlugin extends UIPlugin {
19633
19640
  const { xc, sheetName: sheet } = splitReference(token.value);
19634
19641
  const sheetName = sheet || this.getters.getSheetName(this.sheetId);
19635
19642
  const activeSheetId = this.getters.getActiveSheetId();
19636
- if (this.getters.getSheetName(activeSheetId) !== sheetName) {
19643
+ if (!isSheetNameEqual(this.getters.getSheetName(activeSheetId), sheetName)) {
19637
19644
  return false;
19638
19645
  }
19639
19646
  const refRange = this.getters.getRangeFromSheetXC(activeSheetId, xc);
@@ -21712,18 +21719,28 @@ figureRegistry.add("chart", { Component: ChartFigure, SidePanelComponent: "Chart
21712
21719
  function useInterval(callback, delay) {
21713
21720
  let intervalId;
21714
21721
  const { setInterval, clearInterval } = window;
21722
+ const pause = () => {
21723
+ clearInterval(intervalId);
21724
+ intervalId = undefined;
21725
+ };
21726
+ const safeCallback = () => {
21727
+ try {
21728
+ callback();
21729
+ }
21730
+ catch (e) {
21731
+ pause();
21732
+ throw e;
21733
+ }
21734
+ };
21715
21735
  useEffect(() => {
21716
- intervalId = setInterval(callback, delay);
21736
+ intervalId = setInterval(safeCallback, delay);
21717
21737
  return () => clearInterval(intervalId);
21718
21738
  }, () => [delay]);
21719
21739
  return {
21720
- pause: () => {
21721
- clearInterval(intervalId);
21722
- intervalId = undefined;
21723
- },
21740
+ pause,
21724
21741
  resume: () => {
21725
21742
  if (intervalId === undefined) {
21726
- intervalId = setInterval(callback, delay);
21743
+ intervalId = setInterval(safeCallback, delay);
21727
21744
  }
21728
21745
  },
21729
21746
  };
@@ -25028,7 +25045,7 @@ function getRangeSize(reference, defaultSheetIndex, data) {
25028
25045
  ({ xc, sheetName } = splitReference(reference));
25029
25046
  let rangeSheetIndex;
25030
25047
  if (sheetName) {
25031
- const index = data.sheets.findIndex((sheet) => sheet.name === sheetName);
25048
+ const index = data.sheets.findIndex((sheet) => isSheetNameEqual(sheet.name, sheetName));
25032
25049
  if (index < 0) {
25033
25050
  throw new Error("Unable to find a sheet with the name " + sheetName);
25034
25051
  }
@@ -25200,7 +25217,7 @@ function convertFormula(formula, data) {
25200
25217
  var _a;
25201
25218
  externalRefId = Number(externalRefId) - 1;
25202
25219
  cellRef = cellRef.replace(/\$/g, "");
25203
- const sheetIndex = data.externalBooks[externalRefId].sheetNames.findIndex((name) => name === sheetName);
25220
+ const sheetIndex = data.externalBooks[externalRefId].sheetNames.findIndex((name) => isSheetNameEqual(name, sheetName));
25204
25221
  if (sheetIndex === -1) {
25205
25222
  return match;
25206
25223
  }
@@ -25539,7 +25556,7 @@ function applyStyleToZone(appliedStyle, zone, cells, styles) {
25539
25556
  */
25540
25557
  function convertTableFormulaReferences(convertedSheets, xlsxSheets) {
25541
25558
  for (let tableSheet of convertedSheets) {
25542
- const tables = xlsxSheets.find((s) => s.sheetName === tableSheet.name).tables;
25559
+ const tables = xlsxSheets.find((s) => isSheetNameEqual(s.sheetName, tableSheet.name)).tables;
25543
25560
  for (let table of tables) {
25544
25561
  const tabRef = table.name + "[";
25545
25562
  for (let sheet of convertedSheets) {
@@ -30737,7 +30754,7 @@ class SheetPlugin extends CorePlugin {
30737
30754
  if (name) {
30738
30755
  const unquotedName = getUnquotedSheetName(name);
30739
30756
  for (const key in this.sheetIdsMapName) {
30740
- if (key.toUpperCase() === unquotedName.toUpperCase()) {
30757
+ if (isSheetNameEqual(key, unquotedName)) {
30741
30758
  return this.sheetIdsMapName[key];
30742
30759
  }
30743
30760
  }
@@ -30992,7 +31009,7 @@ class SheetPlugin extends CorePlugin {
30992
31009
  checkSheetName(cmd) {
30993
31010
  const { orderedSheetIds, sheets } = this;
30994
31011
  const name = cmd.name && cmd.name.trim().toLowerCase();
30995
- if (orderedSheetIds.find((id) => { var _a; return ((_a = sheets[id]) === null || _a === void 0 ? void 0 : _a.name.toLowerCase()) === name; })) {
31012
+ if (orderedSheetIds.find((id) => { var _a; return isSheetNameEqual((_a = sheets[id]) === null || _a === void 0 ? void 0 : _a.name, name); })) {
30996
31013
  return 11 /* CommandResult.DuplicatedSheetName */;
30997
31014
  }
30998
31015
  if (FORBIDDEN_IN_EXCEL_REGEX.test(name)) {
@@ -35257,6 +35274,8 @@ class GridSelectionPlugin extends UIPlugin {
35257
35274
  const { col, row } = this.getters.getNextVisibleCellPosition(cmd.sheetIdTo, 0, 0);
35258
35275
  this.selectCell(col, row);
35259
35276
  }
35277
+ const { col, row } = this.gridSelection.anchor.cell;
35278
+ this.moveClient({ sheetId: this.activeSheet.id, col, row });
35260
35279
  break;
35261
35280
  }
35262
35281
  case "REMOVE_COLUMNS_ROWS": {
@@ -40871,7 +40890,7 @@ class RangeAdapter {
40871
40890
  if (range.sheetId === cmd.sheetId) {
40872
40891
  return { changeType: "CHANGE", range };
40873
40892
  }
40874
- if (cmd.name && range.invalidSheetName === cmd.name) {
40893
+ if (isSheetNameEqual(range.invalidSheetName, cmd.name)) {
40875
40894
  const invalidSheetName = undefined;
40876
40895
  const sheetId = cmd.sheetId;
40877
40896
  const newRange = range.clone({ sheetId, invalidSheetName });
@@ -43750,6 +43769,6 @@ function addFunction(functionName, functionDescription) {
43750
43769
  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 };
43751
43770
 
43752
43771
 
43753
- __info__.version = '16.0.67';
43754
- __info__.date = '2025-04-18T16:22:13.893Z';
43755
- __info__.hash = 'efeeb27';
43772
+ __info__.version = '16.0.68';
43773
+ __info__.date = '2025-04-25T08:02:52.716Z';
43774
+ __info__.hash = '682d48e';
@@ -2370,6 +2370,13 @@
2370
2370
  rows.push(row);
2371
2371
  }
2372
2372
  return rows;
2373
+ }
2374
+ function isSheetNameEqual(name1, name2) {
2375
+ if (name1 === undefined || name2 === undefined) {
2376
+ return false;
2377
+ }
2378
+ return (getUnquotedSheetName(name1.trim().toUpperCase()) ===
2379
+ getUnquotedSheetName(name2.trim().toUpperCase()));
2373
2380
  }
2374
2381
 
2375
2382
  /*
@@ -19634,7 +19641,7 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
19634
19641
  const { xc, sheetName: sheet } = splitReference(token.value);
19635
19642
  const sheetName = sheet || this.getters.getSheetName(this.sheetId);
19636
19643
  const activeSheetId = this.getters.getActiveSheetId();
19637
- if (this.getters.getSheetName(activeSheetId) !== sheetName) {
19644
+ if (!isSheetNameEqual(this.getters.getSheetName(activeSheetId), sheetName)) {
19638
19645
  return false;
19639
19646
  }
19640
19647
  const refRange = this.getters.getRangeFromSheetXC(activeSheetId, xc);
@@ -21713,18 +21720,28 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
21713
21720
  function useInterval(callback, delay) {
21714
21721
  let intervalId;
21715
21722
  const { setInterval, clearInterval } = window;
21723
+ const pause = () => {
21724
+ clearInterval(intervalId);
21725
+ intervalId = undefined;
21726
+ };
21727
+ const safeCallback = () => {
21728
+ try {
21729
+ callback();
21730
+ }
21731
+ catch (e) {
21732
+ pause();
21733
+ throw e;
21734
+ }
21735
+ };
21716
21736
  owl.useEffect(() => {
21717
- intervalId = setInterval(callback, delay);
21737
+ intervalId = setInterval(safeCallback, delay);
21718
21738
  return () => clearInterval(intervalId);
21719
21739
  }, () => [delay]);
21720
21740
  return {
21721
- pause: () => {
21722
- clearInterval(intervalId);
21723
- intervalId = undefined;
21724
- },
21741
+ pause,
21725
21742
  resume: () => {
21726
21743
  if (intervalId === undefined) {
21727
- intervalId = setInterval(callback, delay);
21744
+ intervalId = setInterval(safeCallback, delay);
21728
21745
  }
21729
21746
  },
21730
21747
  };
@@ -25029,7 +25046,7 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
25029
25046
  ({ xc, sheetName } = splitReference(reference));
25030
25047
  let rangeSheetIndex;
25031
25048
  if (sheetName) {
25032
- const index = data.sheets.findIndex((sheet) => sheet.name === sheetName);
25049
+ const index = data.sheets.findIndex((sheet) => isSheetNameEqual(sheet.name, sheetName));
25033
25050
  if (index < 0) {
25034
25051
  throw new Error("Unable to find a sheet with the name " + sheetName);
25035
25052
  }
@@ -25201,7 +25218,7 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
25201
25218
  var _a;
25202
25219
  externalRefId = Number(externalRefId) - 1;
25203
25220
  cellRef = cellRef.replace(/\$/g, "");
25204
- const sheetIndex = data.externalBooks[externalRefId].sheetNames.findIndex((name) => name === sheetName);
25221
+ const sheetIndex = data.externalBooks[externalRefId].sheetNames.findIndex((name) => isSheetNameEqual(name, sheetName));
25205
25222
  if (sheetIndex === -1) {
25206
25223
  return match;
25207
25224
  }
@@ -25540,7 +25557,7 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
25540
25557
  */
25541
25558
  function convertTableFormulaReferences(convertedSheets, xlsxSheets) {
25542
25559
  for (let tableSheet of convertedSheets) {
25543
- const tables = xlsxSheets.find((s) => s.sheetName === tableSheet.name).tables;
25560
+ const tables = xlsxSheets.find((s) => isSheetNameEqual(s.sheetName, tableSheet.name)).tables;
25544
25561
  for (let table of tables) {
25545
25562
  const tabRef = table.name + "[";
25546
25563
  for (let sheet of convertedSheets) {
@@ -30738,7 +30755,7 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
30738
30755
  if (name) {
30739
30756
  const unquotedName = getUnquotedSheetName(name);
30740
30757
  for (const key in this.sheetIdsMapName) {
30741
- if (key.toUpperCase() === unquotedName.toUpperCase()) {
30758
+ if (isSheetNameEqual(key, unquotedName)) {
30742
30759
  return this.sheetIdsMapName[key];
30743
30760
  }
30744
30761
  }
@@ -30993,7 +31010,7 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
30993
31010
  checkSheetName(cmd) {
30994
31011
  const { orderedSheetIds, sheets } = this;
30995
31012
  const name = cmd.name && cmd.name.trim().toLowerCase();
30996
- if (orderedSheetIds.find((id) => { var _a; return ((_a = sheets[id]) === null || _a === void 0 ? void 0 : _a.name.toLowerCase()) === name; })) {
31013
+ if (orderedSheetIds.find((id) => { var _a; return isSheetNameEqual((_a = sheets[id]) === null || _a === void 0 ? void 0 : _a.name, name); })) {
30997
31014
  return 11 /* CommandResult.DuplicatedSheetName */;
30998
31015
  }
30999
31016
  if (FORBIDDEN_IN_EXCEL_REGEX.test(name)) {
@@ -35258,6 +35275,8 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
35258
35275
  const { col, row } = this.getters.getNextVisibleCellPosition(cmd.sheetIdTo, 0, 0);
35259
35276
  this.selectCell(col, row);
35260
35277
  }
35278
+ const { col, row } = this.gridSelection.anchor.cell;
35279
+ this.moveClient({ sheetId: this.activeSheet.id, col, row });
35261
35280
  break;
35262
35281
  }
35263
35282
  case "REMOVE_COLUMNS_ROWS": {
@@ -40872,7 +40891,7 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
40872
40891
  if (range.sheetId === cmd.sheetId) {
40873
40892
  return { changeType: "CHANGE", range };
40874
40893
  }
40875
- if (cmd.name && range.invalidSheetName === cmd.name) {
40894
+ if (isSheetNameEqual(range.invalidSheetName, cmd.name)) {
40876
40895
  const invalidSheetName = undefined;
40877
40896
  const sheetId = cmd.sheetId;
40878
40897
  const newRange = range.clone({ sheetId, invalidSheetName });
@@ -43781,9 +43800,9 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
43781
43800
  Object.defineProperty(exports, '__esModule', { value: true });
43782
43801
 
43783
43802
 
43784
- __info__.version = '16.0.67';
43785
- __info__.date = '2025-04-18T16:22:13.893Z';
43786
- __info__.hash = 'efeeb27';
43803
+ __info__.version = '16.0.68';
43804
+ __info__.date = '2025-04-25T08:02:52.716Z';
43805
+ __info__.hash = '682d48e';
43787
43806
 
43788
43807
 
43789
43808
  })(this.o_spreadsheet = this.o_spreadsheet || {}, owl);