@odoo/o-spreadsheet 18.4.16 → 18.4.17

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.16
6
- * @date 2025-11-03T12:31:57.153Z
7
- * @hash 1ba569f
5
+ * @version 18.4.17
6
+ * @date 2025-11-12T14:15:30.592Z
7
+ * @hash a8ebab8
8
8
  */
9
9
 
10
10
  'use strict';
@@ -5928,7 +5928,10 @@ function isInside(col, row, zone) {
5928
5928
  * Check if a zone is inside another
5929
5929
  */
5930
5930
  function isZoneInside(smallZone, biggerZone) {
5931
- return isEqual(union(biggerZone, smallZone), biggerZone);
5931
+ return (smallZone.left >= biggerZone.left &&
5932
+ smallZone.right <= biggerZone.right &&
5933
+ smallZone.top >= biggerZone.top &&
5934
+ smallZone.bottom <= biggerZone.bottom);
5932
5935
  }
5933
5936
  function zoneToDimension(zone) {
5934
5937
  return {
@@ -6489,7 +6492,7 @@ function getRangeString(range, forSheetId, getSheetName, options = { useBoundedR
6489
6492
  let sheetName = "";
6490
6493
  if (prefixSheet) {
6491
6494
  if (range.invalidSheetName) {
6492
- sheetName = range.invalidSheetName;
6495
+ sheetName = getCanonicalSymbolName(range.invalidSheetName);
6493
6496
  }
6494
6497
  else {
6495
6498
  sheetName = getCanonicalSymbolName(getSheetName(range.sheetId));
@@ -23107,7 +23110,7 @@ let ScorecardChart$1 = class ScorecardChart extends AbstractChart {
23107
23110
  return {
23108
23111
  background: context.background,
23109
23112
  type: "scorecard",
23110
- keyValue: context.range ? context.range[0].dataRange : undefined,
23113
+ keyValue: context.range?.[0]?.dataRange,
23111
23114
  title: context.title || { text: "" },
23112
23115
  baselineMode: DEFAULT_SCORECARD_BASELINE_MODE,
23113
23116
  baselineColorUp: DEFAULT_SCORECARD_BASELINE_COLOR_UP,
@@ -27428,7 +27431,7 @@ class GaugeChart extends AbstractChart {
27428
27431
  background: context.background,
27429
27432
  title: context.title || { text: "" },
27430
27433
  type: "gauge",
27431
- dataRange: context.range ? context.range[0].dataRange : undefined,
27434
+ dataRange: context.range?.[0]?.dataRange,
27432
27435
  sectionRule: {
27433
27436
  colors: {
27434
27437
  lowerColor: DEFAULT_GAUGE_LOWER_COLOR,
@@ -32606,6 +32609,7 @@ class AbstractComposerStore extends SpreadsheetStore {
32606
32609
  this.highlightStore.register(this);
32607
32610
  this.onDispose(() => {
32608
32611
  this.highlightStore.unRegister(this);
32612
+ this._cancelEdition();
32609
32613
  });
32610
32614
  }
32611
32615
  handleEvent(event) {
@@ -47996,6 +48000,9 @@ class GridRenderer extends SpreadsheetStore {
47996
48000
  break;
47997
48001
  }
47998
48002
  }
48003
+ finalize() {
48004
+ this.zonesWithPreventedAnimationsInNextFrame = recomputeZones(this.zonesWithPreventedAnimationsInNextFrame);
48005
+ }
47999
48006
  get renderingLayers() {
48000
48007
  return ["Background", "Headers"];
48001
48008
  }
@@ -76597,6 +76604,7 @@ topbarMenuRegistry
76597
76604
  .add("file", {
76598
76605
  name: _t("File"),
76599
76606
  sequence: 10,
76607
+ isReadonlyAllowed: true,
76600
76608
  })
76601
76609
  .addChild("settings", ["file"], {
76602
76610
  name: _t("Settings"),
@@ -76611,6 +76619,7 @@ topbarMenuRegistry
76611
76619
  .add("edit", {
76612
76620
  name: _t("Edit"),
76613
76621
  sequence: 20,
76622
+ isReadonlyAllowed: true,
76614
76623
  })
76615
76624
  .addChild("undo", ["edit"], {
76616
76625
  ...undo,
@@ -76695,6 +76704,7 @@ topbarMenuRegistry
76695
76704
  .add("view", {
76696
76705
  name: _t("View"),
76697
76706
  sequence: 30,
76707
+ isReadonlyAllowed: true,
76698
76708
  })
76699
76709
  .addChild("unfreeze_panes", ["view"], {
76700
76710
  ...unFreezePane,
@@ -76786,6 +76796,7 @@ topbarMenuRegistry
76786
76796
  .add("insert", {
76787
76797
  name: _t("Insert"),
76788
76798
  sequence: 40,
76799
+ isReadonlyAllowed: true,
76789
76800
  })
76790
76801
  .addChild("insert_row", ["insert"], {
76791
76802
  ...insertRow,
@@ -76893,7 +76904,11 @@ topbarMenuRegistry
76893
76904
  // ---------------------------------------------------------------------
76894
76905
  // FORMAT MENU ITEMS
76895
76906
  // ---------------------------------------------------------------------
76896
- .add("format", { name: _t("Format"), sequence: 50 })
76907
+ .add("format", {
76908
+ name: _t("Format"),
76909
+ sequence: 50,
76910
+ isReadonlyAllowed: true,
76911
+ })
76897
76912
  .addChild("format_number", ["format"], {
76898
76913
  ...formatNumberMenuItemSpec,
76899
76914
  name: _t("Number"),
@@ -76985,6 +77000,7 @@ topbarMenuRegistry
76985
77000
  .add("data", {
76986
77001
  name: _t("Data"),
76987
77002
  sequence: 60,
77003
+ isReadonlyAllowed: true,
76988
77004
  })
76989
77005
  .addChild("sort_range", ["data"], {
76990
77006
  ...sortRange,
@@ -84922,6 +84938,6 @@ exports.tokenColors = tokenColors;
84922
84938
  exports.tokenize = tokenize;
84923
84939
 
84924
84940
 
84925
- __info__.version = "18.4.16";
84926
- __info__.date = "2025-11-03T12:31:57.153Z";
84927
- __info__.hash = "1ba569f";
84941
+ __info__.version = "18.4.17";
84942
+ __info__.date = "2025-11-12T14:15:30.592Z";
84943
+ __info__.hash = "a8ebab8";
@@ -11696,6 +11696,7 @@ declare class GridRenderer extends SpreadsheetStore {
11696
11696
  private animations;
11697
11697
  constructor(get: Get);
11698
11698
  handle(cmd: Command): void;
11699
+ finalize(): void;
11699
11700
  get renderingLayers(): readonly ["Background", "Headers"];
11700
11701
  drawLayer(renderingContext: GridRenderingContext, layer: LayerName, timeStamp: number | undefined): void;
11701
11702
  private drawGlobalBackground;
@@ -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.16
6
- * @date 2025-11-03T12:31:57.153Z
7
- * @hash 1ba569f
5
+ * @version 18.4.17
6
+ * @date 2025-11-12T14:15:30.592Z
7
+ * @hash a8ebab8
8
8
  */
9
9
 
10
10
  import { useEnv, useSubEnv, onWillUnmount, useComponent, status, Component, useRef, onMounted, useEffect, App, blockDom, useState, onPatched, useExternalListener, onWillUpdateProps, onWillStart, onWillPatch, xml, useChildSubEnv, markRaw, toRaw } from '@odoo/owl';
@@ -5926,7 +5926,10 @@ function isInside(col, row, zone) {
5926
5926
  * Check if a zone is inside another
5927
5927
  */
5928
5928
  function isZoneInside(smallZone, biggerZone) {
5929
- return isEqual(union(biggerZone, smallZone), biggerZone);
5929
+ return (smallZone.left >= biggerZone.left &&
5930
+ smallZone.right <= biggerZone.right &&
5931
+ smallZone.top >= biggerZone.top &&
5932
+ smallZone.bottom <= biggerZone.bottom);
5930
5933
  }
5931
5934
  function zoneToDimension(zone) {
5932
5935
  return {
@@ -6487,7 +6490,7 @@ function getRangeString(range, forSheetId, getSheetName, options = { useBoundedR
6487
6490
  let sheetName = "";
6488
6491
  if (prefixSheet) {
6489
6492
  if (range.invalidSheetName) {
6490
- sheetName = range.invalidSheetName;
6493
+ sheetName = getCanonicalSymbolName(range.invalidSheetName);
6491
6494
  }
6492
6495
  else {
6493
6496
  sheetName = getCanonicalSymbolName(getSheetName(range.sheetId));
@@ -23105,7 +23108,7 @@ let ScorecardChart$1 = class ScorecardChart extends AbstractChart {
23105
23108
  return {
23106
23109
  background: context.background,
23107
23110
  type: "scorecard",
23108
- keyValue: context.range ? context.range[0].dataRange : undefined,
23111
+ keyValue: context.range?.[0]?.dataRange,
23109
23112
  title: context.title || { text: "" },
23110
23113
  baselineMode: DEFAULT_SCORECARD_BASELINE_MODE,
23111
23114
  baselineColorUp: DEFAULT_SCORECARD_BASELINE_COLOR_UP,
@@ -27426,7 +27429,7 @@ class GaugeChart extends AbstractChart {
27426
27429
  background: context.background,
27427
27430
  title: context.title || { text: "" },
27428
27431
  type: "gauge",
27429
- dataRange: context.range ? context.range[0].dataRange : undefined,
27432
+ dataRange: context.range?.[0]?.dataRange,
27430
27433
  sectionRule: {
27431
27434
  colors: {
27432
27435
  lowerColor: DEFAULT_GAUGE_LOWER_COLOR,
@@ -32604,6 +32607,7 @@ class AbstractComposerStore extends SpreadsheetStore {
32604
32607
  this.highlightStore.register(this);
32605
32608
  this.onDispose(() => {
32606
32609
  this.highlightStore.unRegister(this);
32610
+ this._cancelEdition();
32607
32611
  });
32608
32612
  }
32609
32613
  handleEvent(event) {
@@ -47994,6 +47998,9 @@ class GridRenderer extends SpreadsheetStore {
47994
47998
  break;
47995
47999
  }
47996
48000
  }
48001
+ finalize() {
48002
+ this.zonesWithPreventedAnimationsInNextFrame = recomputeZones(this.zonesWithPreventedAnimationsInNextFrame);
48003
+ }
47997
48004
  get renderingLayers() {
47998
48005
  return ["Background", "Headers"];
47999
48006
  }
@@ -76595,6 +76602,7 @@ topbarMenuRegistry
76595
76602
  .add("file", {
76596
76603
  name: _t("File"),
76597
76604
  sequence: 10,
76605
+ isReadonlyAllowed: true,
76598
76606
  })
76599
76607
  .addChild("settings", ["file"], {
76600
76608
  name: _t("Settings"),
@@ -76609,6 +76617,7 @@ topbarMenuRegistry
76609
76617
  .add("edit", {
76610
76618
  name: _t("Edit"),
76611
76619
  sequence: 20,
76620
+ isReadonlyAllowed: true,
76612
76621
  })
76613
76622
  .addChild("undo", ["edit"], {
76614
76623
  ...undo,
@@ -76693,6 +76702,7 @@ topbarMenuRegistry
76693
76702
  .add("view", {
76694
76703
  name: _t("View"),
76695
76704
  sequence: 30,
76705
+ isReadonlyAllowed: true,
76696
76706
  })
76697
76707
  .addChild("unfreeze_panes", ["view"], {
76698
76708
  ...unFreezePane,
@@ -76784,6 +76794,7 @@ topbarMenuRegistry
76784
76794
  .add("insert", {
76785
76795
  name: _t("Insert"),
76786
76796
  sequence: 40,
76797
+ isReadonlyAllowed: true,
76787
76798
  })
76788
76799
  .addChild("insert_row", ["insert"], {
76789
76800
  ...insertRow,
@@ -76891,7 +76902,11 @@ topbarMenuRegistry
76891
76902
  // ---------------------------------------------------------------------
76892
76903
  // FORMAT MENU ITEMS
76893
76904
  // ---------------------------------------------------------------------
76894
- .add("format", { name: _t("Format"), sequence: 50 })
76905
+ .add("format", {
76906
+ name: _t("Format"),
76907
+ sequence: 50,
76908
+ isReadonlyAllowed: true,
76909
+ })
76895
76910
  .addChild("format_number", ["format"], {
76896
76911
  ...formatNumberMenuItemSpec,
76897
76912
  name: _t("Number"),
@@ -76983,6 +76998,7 @@ topbarMenuRegistry
76983
76998
  .add("data", {
76984
76999
  name: _t("Data"),
76985
77000
  sequence: 60,
77001
+ isReadonlyAllowed: true,
76986
77002
  })
76987
77003
  .addChild("sort_range", ["data"], {
76988
77004
  ...sortRange,
@@ -84872,6 +84888,6 @@ const chartHelpers = { ...CHART_HELPERS, ...CHART_RUNTIME_HELPERS };
84872
84888
  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 };
84873
84889
 
84874
84890
 
84875
- __info__.version = "18.4.16";
84876
- __info__.date = "2025-11-03T12:31:57.153Z";
84877
- __info__.hash = "1ba569f";
84891
+ __info__.version = "18.4.17";
84892
+ __info__.date = "2025-11-12T14:15:30.592Z";
84893
+ __info__.hash = "a8ebab8";
@@ -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.16
6
- * @date 2025-11-03T12:31:57.153Z
7
- * @hash 1ba569f
5
+ * @version 18.4.17
6
+ * @date 2025-11-12T14:15:30.592Z
7
+ * @hash a8ebab8
8
8
  */
9
9
 
10
10
  (function (exports, owl) {
@@ -5927,7 +5927,10 @@
5927
5927
  * Check if a zone is inside another
5928
5928
  */
5929
5929
  function isZoneInside(smallZone, biggerZone) {
5930
- return isEqual(union(biggerZone, smallZone), biggerZone);
5930
+ return (smallZone.left >= biggerZone.left &&
5931
+ smallZone.right <= biggerZone.right &&
5932
+ smallZone.top >= biggerZone.top &&
5933
+ smallZone.bottom <= biggerZone.bottom);
5931
5934
  }
5932
5935
  function zoneToDimension(zone) {
5933
5936
  return {
@@ -6488,7 +6491,7 @@
6488
6491
  let sheetName = "";
6489
6492
  if (prefixSheet) {
6490
6493
  if (range.invalidSheetName) {
6491
- sheetName = range.invalidSheetName;
6494
+ sheetName = getCanonicalSymbolName(range.invalidSheetName);
6492
6495
  }
6493
6496
  else {
6494
6497
  sheetName = getCanonicalSymbolName(getSheetName(range.sheetId));
@@ -23106,7 +23109,7 @@ stores.inject(MyMetaStore, storeInstance);
23106
23109
  return {
23107
23110
  background: context.background,
23108
23111
  type: "scorecard",
23109
- keyValue: context.range ? context.range[0].dataRange : undefined,
23112
+ keyValue: context.range?.[0]?.dataRange,
23110
23113
  title: context.title || { text: "" },
23111
23114
  baselineMode: DEFAULT_SCORECARD_BASELINE_MODE,
23112
23115
  baselineColorUp: DEFAULT_SCORECARD_BASELINE_COLOR_UP,
@@ -27427,7 +27430,7 @@ stores.inject(MyMetaStore, storeInstance);
27427
27430
  background: context.background,
27428
27431
  title: context.title || { text: "" },
27429
27432
  type: "gauge",
27430
- dataRange: context.range ? context.range[0].dataRange : undefined,
27433
+ dataRange: context.range?.[0]?.dataRange,
27431
27434
  sectionRule: {
27432
27435
  colors: {
27433
27436
  lowerColor: DEFAULT_GAUGE_LOWER_COLOR,
@@ -32605,6 +32608,7 @@ stores.inject(MyMetaStore, storeInstance);
32605
32608
  this.highlightStore.register(this);
32606
32609
  this.onDispose(() => {
32607
32610
  this.highlightStore.unRegister(this);
32611
+ this._cancelEdition();
32608
32612
  });
32609
32613
  }
32610
32614
  handleEvent(event) {
@@ -47995,6 +47999,9 @@ stores.inject(MyMetaStore, storeInstance);
47995
47999
  break;
47996
48000
  }
47997
48001
  }
48002
+ finalize() {
48003
+ this.zonesWithPreventedAnimationsInNextFrame = recomputeZones(this.zonesWithPreventedAnimationsInNextFrame);
48004
+ }
47998
48005
  get renderingLayers() {
47999
48006
  return ["Background", "Headers"];
48000
48007
  }
@@ -76596,6 +76603,7 @@ stores.inject(MyMetaStore, storeInstance);
76596
76603
  .add("file", {
76597
76604
  name: _t("File"),
76598
76605
  sequence: 10,
76606
+ isReadonlyAllowed: true,
76599
76607
  })
76600
76608
  .addChild("settings", ["file"], {
76601
76609
  name: _t("Settings"),
@@ -76610,6 +76618,7 @@ stores.inject(MyMetaStore, storeInstance);
76610
76618
  .add("edit", {
76611
76619
  name: _t("Edit"),
76612
76620
  sequence: 20,
76621
+ isReadonlyAllowed: true,
76613
76622
  })
76614
76623
  .addChild("undo", ["edit"], {
76615
76624
  ...undo,
@@ -76694,6 +76703,7 @@ stores.inject(MyMetaStore, storeInstance);
76694
76703
  .add("view", {
76695
76704
  name: _t("View"),
76696
76705
  sequence: 30,
76706
+ isReadonlyAllowed: true,
76697
76707
  })
76698
76708
  .addChild("unfreeze_panes", ["view"], {
76699
76709
  ...unFreezePane,
@@ -76785,6 +76795,7 @@ stores.inject(MyMetaStore, storeInstance);
76785
76795
  .add("insert", {
76786
76796
  name: _t("Insert"),
76787
76797
  sequence: 40,
76798
+ isReadonlyAllowed: true,
76788
76799
  })
76789
76800
  .addChild("insert_row", ["insert"], {
76790
76801
  ...insertRow,
@@ -76892,7 +76903,11 @@ stores.inject(MyMetaStore, storeInstance);
76892
76903
  // ---------------------------------------------------------------------
76893
76904
  // FORMAT MENU ITEMS
76894
76905
  // ---------------------------------------------------------------------
76895
- .add("format", { name: _t("Format"), sequence: 50 })
76906
+ .add("format", {
76907
+ name: _t("Format"),
76908
+ sequence: 50,
76909
+ isReadonlyAllowed: true,
76910
+ })
76896
76911
  .addChild("format_number", ["format"], {
76897
76912
  ...formatNumberMenuItemSpec,
76898
76913
  name: _t("Number"),
@@ -76984,6 +76999,7 @@ stores.inject(MyMetaStore, storeInstance);
76984
76999
  .add("data", {
76985
77000
  name: _t("Data"),
76986
77001
  sequence: 60,
77002
+ isReadonlyAllowed: true,
76987
77003
  })
76988
77004
  .addChild("sort_range", ["data"], {
76989
77005
  ...sortRange,
@@ -84921,9 +84937,9 @@ stores.inject(MyMetaStore, storeInstance);
84921
84937
  exports.tokenize = tokenize;
84922
84938
 
84923
84939
 
84924
- __info__.version = "18.4.16";
84925
- __info__.date = "2025-11-03T12:31:57.153Z";
84926
- __info__.hash = "1ba569f";
84940
+ __info__.version = "18.4.17";
84941
+ __info__.date = "2025-11-12T14:15:30.592Z";
84942
+ __info__.hash = "a8ebab8";
84927
84943
 
84928
84944
 
84929
84945
  })(this.o_spreadsheet = this.o_spreadsheet || {}, owl);