@odoo/o-spreadsheet 17.4.4 → 17.4.5

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 17.4.4
6
- * @date 2024-08-09T12:24:07.798Z
7
- * @hash a43e855
5
+ * @version 17.4.5
6
+ * @date 2024-08-19T08:12:00.492Z
7
+ * @hash 28579ad
8
8
  */
9
9
 
10
10
  import { useEnv, useSubEnv, onWillUnmount, useComponent, status, Component, useRef, onMounted, useEffect, useState, onPatched, onWillPatch, onWillUpdateProps, useExternalListener, onWillStart, xml, useChildSubEnv, markRaw, toRaw } from '@odoo/owl';
@@ -2008,6 +2008,7 @@ const coreTypes = new Set([
2008
2008
  "UPDATE_CELL",
2009
2009
  "UPDATE_CELL_POSITION",
2010
2010
  "CLEAR_CELL",
2011
+ "CLEAR_CELLS",
2011
2012
  "DELETE_CONTENT",
2012
2013
  /** GRID SHAPE */
2013
2014
  "ADD_COLUMNS_ROWS",
@@ -6743,13 +6744,10 @@ class CellClipboardHandler extends AbstractCellClipboardHandler {
6743
6744
  * Clear the clipped zones: remove the cells and clear the formatting
6744
6745
  */
6745
6746
  clearClippedZones(content) {
6746
- for (const row of content.cells) {
6747
- for (const cell of row) {
6748
- if (cell.cell) {
6749
- this.dispatch("CLEAR_CELL", cell.position);
6750
- }
6751
- }
6752
- }
6747
+ this.dispatch("CLEAR_CELLS", {
6748
+ sheetId: content.sheetId,
6749
+ target: content.zones,
6750
+ });
6753
6751
  this.dispatch("CLEAR_FORMATTING", {
6754
6752
  sheetId: content.sheetId,
6755
6753
  target: content.zones,
@@ -7717,7 +7715,7 @@ function parse(str) {
7717
7715
  }
7718
7716
  function parseTokens(tokens) {
7719
7717
  tokens = tokens.filter((x) => x.type !== "SPACE");
7720
- if (tokens[0].value === "=") {
7718
+ if (tokens[0]?.value === "=") {
7721
7719
  tokens.splice(0, 1);
7722
7720
  }
7723
7721
  const result = parseExpression(tokens);
@@ -9951,7 +9949,7 @@ class ComposerStore extends SpreadsheetStore {
9951
9949
  if (pivotId && pivotCell.type !== "EMPTY" && !cell?.isFormula) {
9952
9950
  const formulaPivotId = this.getters.getPivotFormulaId(pivotId);
9953
9951
  const formula = createPivotFormula(formulaPivotId, pivotCell);
9954
- return formula.slice(1); // strip leading =
9952
+ return localizeFormula(formula, this.getters.getLocale()).slice(1); // strip leading =
9955
9953
  }
9956
9954
  }
9957
9955
  const range = this.getters.getRangeFromZone(sheetId, zone);
@@ -44354,6 +44352,7 @@ function convertChartData(chartData) {
44354
44352
  return {
44355
44353
  dataRange: convertExcelRangeToSheetXC(data.range, dataSetsHaveTitle),
44356
44354
  label,
44355
+ backgroundColor: data.backgroundColor,
44357
44356
  };
44358
44357
  });
44359
44358
  // For doughnut charts, in chartJS first dataset = outer dataset, in excel first dataset = inner dataset
@@ -45547,11 +45546,13 @@ class XlsxChartExtractor extends XlsxBaseExtractor {
45547
45546
  label = { text };
45548
45547
  }
45549
45548
  }
45549
+ const color = this.extractChildAttr(chartDataElement, "c:spPr a:solidFill a:srgbClr", "val");
45550
45550
  return {
45551
45551
  label,
45552
45552
  range: this.extractChildTextContent(chartDataElement, "c:val c:f", {
45553
45553
  required: true,
45554
45554
  }),
45555
+ backgroundColor: color ? `${toHex(color.asString())}` : undefined,
45555
45556
  };
45556
45557
  });
45557
45558
  })
@@ -47757,6 +47758,9 @@ class CellPlugin extends CorePlugin {
47757
47758
  format: "",
47758
47759
  });
47759
47760
  break;
47761
+ case "CLEAR_CELLS":
47762
+ this.clearCells(cmd.sheetId, cmd.target);
47763
+ break;
47760
47764
  case "DELETE_CONTENT":
47761
47765
  this.clearZones(cmd.sheetId, cmd.target);
47762
47766
  break;
@@ -47815,6 +47819,25 @@ class CellPlugin extends CorePlugin {
47815
47819
  }
47816
47820
  }
47817
47821
  }
47822
+ /**
47823
+ * Clear the styles, the format and the content of zones
47824
+ */
47825
+ clearCells(sheetId, zones) {
47826
+ for (const zone of zones) {
47827
+ for (let col = zone.left; col <= zone.right; col++) {
47828
+ for (let row = zone.top; row <= zone.bottom; row++) {
47829
+ this.dispatch("UPDATE_CELL", {
47830
+ sheetId: sheetId,
47831
+ col,
47832
+ row,
47833
+ content: "",
47834
+ style: null,
47835
+ format: "",
47836
+ });
47837
+ }
47838
+ }
47839
+ }
47840
+ }
47818
47841
  /**
47819
47842
  * Copy the style of the reference column/row to the new columns/rows.
47820
47843
  */
@@ -51275,19 +51298,23 @@ class SheetPlugin extends CorePlugin {
51275
51298
  }
51276
51299
  }
51277
51300
  moveCellOnColumnsDeletion(sheet, deletedColumn) {
51301
+ this.dispatch("CLEAR_CELLS", {
51302
+ sheetId: sheet.id,
51303
+ target: [
51304
+ {
51305
+ left: deletedColumn,
51306
+ top: 0,
51307
+ right: deletedColumn,
51308
+ bottom: sheet.rows.length - 1,
51309
+ },
51310
+ ],
51311
+ });
51278
51312
  for (let rowIndex = 0; rowIndex < sheet.rows.length; rowIndex++) {
51279
51313
  const row = sheet.rows[rowIndex];
51280
51314
  for (let i in row.cells) {
51281
51315
  const colIndex = Number(i);
51282
51316
  const cellId = row.cells[i];
51283
51317
  if (cellId) {
51284
- if (colIndex === deletedColumn) {
51285
- this.dispatch("CLEAR_CELL", {
51286
- sheetId: sheet.id,
51287
- col: colIndex,
51288
- row: rowIndex,
51289
- });
51290
- }
51291
51318
  if (colIndex > deletedColumn) {
51292
51319
  this.setNewPosition(cellId, sheet.id, colIndex - 1, rowIndex);
51293
51320
  }
@@ -51333,22 +51360,20 @@ class SheetPlugin extends CorePlugin {
51333
51360
  *
51334
51361
  */
51335
51362
  moveCellOnRowsDeletion(sheet, deleteFromRow, deleteToRow) {
51363
+ this.dispatch("CLEAR_CELLS", {
51364
+ sheetId: sheet.id,
51365
+ target: [
51366
+ {
51367
+ left: 0,
51368
+ top: deleteFromRow,
51369
+ right: this.getters.getNumberCols(sheet.id),
51370
+ bottom: deleteToRow,
51371
+ },
51372
+ ],
51373
+ });
51336
51374
  const numberRows = deleteToRow - deleteFromRow + 1;
51337
51375
  for (let rowIndex = 0; rowIndex < sheet.rows.length; rowIndex++) {
51338
51376
  const row = sheet.rows[rowIndex];
51339
- if (rowIndex >= deleteFromRow && rowIndex <= deleteToRow) {
51340
- for (let i in row.cells) {
51341
- const colIndex = Number(i);
51342
- const cellId = row.cells[i];
51343
- if (cellId) {
51344
- this.dispatch("CLEAR_CELL", {
51345
- sheetId: sheet.id,
51346
- col: colIndex,
51347
- row: rowIndex,
51348
- });
51349
- }
51350
- }
51351
- }
51352
51377
  if (rowIndex > deleteToRow) {
51353
51378
  for (let i in row.cells) {
51354
51379
  const colIndex = Number(i);
@@ -55768,6 +55793,10 @@ class PivotUIPlugin extends UIPlugin {
55768
55793
  this.setupPivot(cmd.pivotId, { recreate: true });
55769
55794
  break;
55770
55795
  }
55796
+ case "REMOVE_PIVOT": {
55797
+ delete this.pivots[cmd.pivotId];
55798
+ break;
55799
+ }
55771
55800
  case "DELETE_SHEET":
55772
55801
  case "UPDATE_CELL": {
55773
55802
  this.unusedPivots = undefined;
@@ -57202,7 +57231,7 @@ class Session extends EventBus {
57202
57231
  */
57203
57232
  leave(data) {
57204
57233
  if (Object.keys(this.clients).length === 1 && this.processedRevisions.size) {
57205
- this.snapshot(data);
57234
+ this.snapshot(data());
57206
57235
  }
57207
57236
  delete this.clients[this.clientId];
57208
57237
  this.transportService.leave(this.clientId);
@@ -57624,9 +57653,7 @@ class DataCleanupPlugin extends UIPlugin {
57624
57653
  if (!data) {
57625
57654
  return;
57626
57655
  }
57627
- for (const { col, row } of positions(zone)) {
57628
- this.dispatch("CLEAR_CELL", { col, row, sheetId });
57629
- }
57656
+ this.dispatch("CLEAR_CELLS", { target: [zone], sheetId });
57630
57657
  const zonePasted = {
57631
57658
  left: zone.left,
57632
57659
  top: zone.top,
@@ -58299,6 +58326,9 @@ class SheetUIPlugin extends UIPlugin {
58299
58326
  if (showFormula && cell?.isFormula) {
58300
58327
  return localizeFormula(cell.content, this.getters.getLocale());
58301
58328
  }
58329
+ else if (showFormula && !cell?.content) {
58330
+ return "";
58331
+ }
58302
58332
  else {
58303
58333
  return this.getters.getEvaluatedCell(position).formattedValue;
58304
58334
  }
@@ -58797,6 +58827,7 @@ function repeatGroupHeadersCommand(getters, cmd) {
58797
58827
  const repeatCommandTransformRegistry = new Registry();
58798
58828
  repeatCommandTransformRegistry.add("UPDATE_CELL", genericRepeat);
58799
58829
  repeatCommandTransformRegistry.add("CLEAR_CELL", genericRepeat);
58830
+ repeatCommandTransformRegistry.add("CLEAR_CELLS", genericRepeat);
58800
58831
  repeatCommandTransformRegistry.add("DELETE_CONTENT", genericRepeat);
58801
58832
  repeatCommandTransformRegistry.add("ADD_MERGE", genericRepeat);
58802
58833
  repeatCommandTransformRegistry.add("REMOVE_MERGE", genericRepeat);
@@ -59421,9 +59452,10 @@ class ClipboardPlugin extends UIPlugin {
59421
59452
  case "DELETE_CELL": {
59422
59453
  const { cut, paste } = this.getDeleteCellsTargets(cmd.zone, cmd.shiftDimension);
59423
59454
  if (!isZoneValid(cut[0])) {
59424
- for (const { col, row } of positions(cmd.zone)) {
59425
- this.dispatch("CLEAR_CELL", { col, row, sheetId: this.getters.getActiveSheetId() });
59426
- }
59455
+ this.dispatch("CLEAR_CELLS", {
59456
+ target: [cmd.zone],
59457
+ sheetId: this.getters.getActiveSheetId(),
59458
+ });
59427
59459
  break;
59428
59460
  }
59429
59461
  const copiedData = this.copy(cut);
@@ -67825,7 +67857,7 @@ class Model extends EventBus {
67825
67857
  this.session.join(this.config.client);
67826
67858
  }
67827
67859
  leaveSession() {
67828
- this.session.leave(this.exportData());
67860
+ this.session.leave(lazy(() => this.exportData()));
67829
67861
  }
67830
67862
  setupUiPlugin(Plugin) {
67831
67863
  const plugin = new Plugin(this.uiPluginConfig);
@@ -68384,6 +68416,6 @@ const constants = {
68384
68416
  export { AbstractCellClipboardHandler, AbstractChart, AbstractFigureClipboardHandler, CellErrorType, CommandResult, CorePlugin, DispatchResult, EvaluationError, Model, PivotRuntimeDefinition, Registry, Revision, SPREADSHEET_DIMENSIONS, Spreadsheet, SpreadsheetPivotTable, UIPlugin, __info__, addFunction, addRenderingLayer, astToFormula, compile, compileTokens, components, constants, convertAstNodes, coreTypes, findCellInNewZone, functionCache, helpers, hooks, invalidateCFEvaluationCommands, invalidateDependenciesCommands, invalidateEvaluationCommands, iterateAstNodes, links, load, parse, parseTokens, readonlyAllowedCommands, registries, setDefaultSheetViewSize, setTranslationMethod, stores, tokenColors, tokenize };
68385
68417
 
68386
68418
 
68387
- __info__.version = "17.4.4";
68388
- __info__.date = "2024-08-09T12:24:07.798Z";
68389
- __info__.hash = "a43e855";
68419
+ __info__.version = "17.4.5";
68420
+ __info__.date = "2024-08-19T08:12:00.492Z";
68421
+ __info__.hash = "28579ad";
@@ -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 17.4.4
6
- * @date 2024-08-09T12:24:07.798Z
7
- * @hash a43e855
5
+ * @version 17.4.5
6
+ * @date 2024-08-19T08:12:00.492Z
7
+ * @hash 28579ad
8
8
  */
9
9
 
10
10
  (function (exports, owl) {
@@ -2009,6 +2009,7 @@
2009
2009
  "UPDATE_CELL",
2010
2010
  "UPDATE_CELL_POSITION",
2011
2011
  "CLEAR_CELL",
2012
+ "CLEAR_CELLS",
2012
2013
  "DELETE_CONTENT",
2013
2014
  /** GRID SHAPE */
2014
2015
  "ADD_COLUMNS_ROWS",
@@ -6744,13 +6745,10 @@
6744
6745
  * Clear the clipped zones: remove the cells and clear the formatting
6745
6746
  */
6746
6747
  clearClippedZones(content) {
6747
- for (const row of content.cells) {
6748
- for (const cell of row) {
6749
- if (cell.cell) {
6750
- this.dispatch("CLEAR_CELL", cell.position);
6751
- }
6752
- }
6753
- }
6748
+ this.dispatch("CLEAR_CELLS", {
6749
+ sheetId: content.sheetId,
6750
+ target: content.zones,
6751
+ });
6754
6752
  this.dispatch("CLEAR_FORMATTING", {
6755
6753
  sheetId: content.sheetId,
6756
6754
  target: content.zones,
@@ -7718,7 +7716,7 @@
7718
7716
  }
7719
7717
  function parseTokens(tokens) {
7720
7718
  tokens = tokens.filter((x) => x.type !== "SPACE");
7721
- if (tokens[0].value === "=") {
7719
+ if (tokens[0]?.value === "=") {
7722
7720
  tokens.splice(0, 1);
7723
7721
  }
7724
7722
  const result = parseExpression(tokens);
@@ -9952,7 +9950,7 @@ stores.inject(MyMetaStore, storeInstance);
9952
9950
  if (pivotId && pivotCell.type !== "EMPTY" && !cell?.isFormula) {
9953
9951
  const formulaPivotId = this.getters.getPivotFormulaId(pivotId);
9954
9952
  const formula = createPivotFormula(formulaPivotId, pivotCell);
9955
- return formula.slice(1); // strip leading =
9953
+ return localizeFormula(formula, this.getters.getLocale()).slice(1); // strip leading =
9956
9954
  }
9957
9955
  }
9958
9956
  const range = this.getters.getRangeFromZone(sheetId, zone);
@@ -44355,6 +44353,7 @@ stores.inject(MyMetaStore, storeInstance);
44355
44353
  return {
44356
44354
  dataRange: convertExcelRangeToSheetXC(data.range, dataSetsHaveTitle),
44357
44355
  label,
44356
+ backgroundColor: data.backgroundColor,
44358
44357
  };
44359
44358
  });
44360
44359
  // For doughnut charts, in chartJS first dataset = outer dataset, in excel first dataset = inner dataset
@@ -45548,11 +45547,13 @@ stores.inject(MyMetaStore, storeInstance);
45548
45547
  label = { text };
45549
45548
  }
45550
45549
  }
45550
+ const color = this.extractChildAttr(chartDataElement, "c:spPr a:solidFill a:srgbClr", "val");
45551
45551
  return {
45552
45552
  label,
45553
45553
  range: this.extractChildTextContent(chartDataElement, "c:val c:f", {
45554
45554
  required: true,
45555
45555
  }),
45556
+ backgroundColor: color ? `${toHex(color.asString())}` : undefined,
45556
45557
  };
45557
45558
  });
45558
45559
  })
@@ -47758,6 +47759,9 @@ stores.inject(MyMetaStore, storeInstance);
47758
47759
  format: "",
47759
47760
  });
47760
47761
  break;
47762
+ case "CLEAR_CELLS":
47763
+ this.clearCells(cmd.sheetId, cmd.target);
47764
+ break;
47761
47765
  case "DELETE_CONTENT":
47762
47766
  this.clearZones(cmd.sheetId, cmd.target);
47763
47767
  break;
@@ -47816,6 +47820,25 @@ stores.inject(MyMetaStore, storeInstance);
47816
47820
  }
47817
47821
  }
47818
47822
  }
47823
+ /**
47824
+ * Clear the styles, the format and the content of zones
47825
+ */
47826
+ clearCells(sheetId, zones) {
47827
+ for (const zone of zones) {
47828
+ for (let col = zone.left; col <= zone.right; col++) {
47829
+ for (let row = zone.top; row <= zone.bottom; row++) {
47830
+ this.dispatch("UPDATE_CELL", {
47831
+ sheetId: sheetId,
47832
+ col,
47833
+ row,
47834
+ content: "",
47835
+ style: null,
47836
+ format: "",
47837
+ });
47838
+ }
47839
+ }
47840
+ }
47841
+ }
47819
47842
  /**
47820
47843
  * Copy the style of the reference column/row to the new columns/rows.
47821
47844
  */
@@ -51276,19 +51299,23 @@ stores.inject(MyMetaStore, storeInstance);
51276
51299
  }
51277
51300
  }
51278
51301
  moveCellOnColumnsDeletion(sheet, deletedColumn) {
51302
+ this.dispatch("CLEAR_CELLS", {
51303
+ sheetId: sheet.id,
51304
+ target: [
51305
+ {
51306
+ left: deletedColumn,
51307
+ top: 0,
51308
+ right: deletedColumn,
51309
+ bottom: sheet.rows.length - 1,
51310
+ },
51311
+ ],
51312
+ });
51279
51313
  for (let rowIndex = 0; rowIndex < sheet.rows.length; rowIndex++) {
51280
51314
  const row = sheet.rows[rowIndex];
51281
51315
  for (let i in row.cells) {
51282
51316
  const colIndex = Number(i);
51283
51317
  const cellId = row.cells[i];
51284
51318
  if (cellId) {
51285
- if (colIndex === deletedColumn) {
51286
- this.dispatch("CLEAR_CELL", {
51287
- sheetId: sheet.id,
51288
- col: colIndex,
51289
- row: rowIndex,
51290
- });
51291
- }
51292
51319
  if (colIndex > deletedColumn) {
51293
51320
  this.setNewPosition(cellId, sheet.id, colIndex - 1, rowIndex);
51294
51321
  }
@@ -51334,22 +51361,20 @@ stores.inject(MyMetaStore, storeInstance);
51334
51361
  *
51335
51362
  */
51336
51363
  moveCellOnRowsDeletion(sheet, deleteFromRow, deleteToRow) {
51364
+ this.dispatch("CLEAR_CELLS", {
51365
+ sheetId: sheet.id,
51366
+ target: [
51367
+ {
51368
+ left: 0,
51369
+ top: deleteFromRow,
51370
+ right: this.getters.getNumberCols(sheet.id),
51371
+ bottom: deleteToRow,
51372
+ },
51373
+ ],
51374
+ });
51337
51375
  const numberRows = deleteToRow - deleteFromRow + 1;
51338
51376
  for (let rowIndex = 0; rowIndex < sheet.rows.length; rowIndex++) {
51339
51377
  const row = sheet.rows[rowIndex];
51340
- if (rowIndex >= deleteFromRow && rowIndex <= deleteToRow) {
51341
- for (let i in row.cells) {
51342
- const colIndex = Number(i);
51343
- const cellId = row.cells[i];
51344
- if (cellId) {
51345
- this.dispatch("CLEAR_CELL", {
51346
- sheetId: sheet.id,
51347
- col: colIndex,
51348
- row: rowIndex,
51349
- });
51350
- }
51351
- }
51352
- }
51353
51378
  if (rowIndex > deleteToRow) {
51354
51379
  for (let i in row.cells) {
51355
51380
  const colIndex = Number(i);
@@ -55769,6 +55794,10 @@ stores.inject(MyMetaStore, storeInstance);
55769
55794
  this.setupPivot(cmd.pivotId, { recreate: true });
55770
55795
  break;
55771
55796
  }
55797
+ case "REMOVE_PIVOT": {
55798
+ delete this.pivots[cmd.pivotId];
55799
+ break;
55800
+ }
55772
55801
  case "DELETE_SHEET":
55773
55802
  case "UPDATE_CELL": {
55774
55803
  this.unusedPivots = undefined;
@@ -57203,7 +57232,7 @@ stores.inject(MyMetaStore, storeInstance);
57203
57232
  */
57204
57233
  leave(data) {
57205
57234
  if (Object.keys(this.clients).length === 1 && this.processedRevisions.size) {
57206
- this.snapshot(data);
57235
+ this.snapshot(data());
57207
57236
  }
57208
57237
  delete this.clients[this.clientId];
57209
57238
  this.transportService.leave(this.clientId);
@@ -57625,9 +57654,7 @@ stores.inject(MyMetaStore, storeInstance);
57625
57654
  if (!data) {
57626
57655
  return;
57627
57656
  }
57628
- for (const { col, row } of positions(zone)) {
57629
- this.dispatch("CLEAR_CELL", { col, row, sheetId });
57630
- }
57657
+ this.dispatch("CLEAR_CELLS", { target: [zone], sheetId });
57631
57658
  const zonePasted = {
57632
57659
  left: zone.left,
57633
57660
  top: zone.top,
@@ -58300,6 +58327,9 @@ stores.inject(MyMetaStore, storeInstance);
58300
58327
  if (showFormula && cell?.isFormula) {
58301
58328
  return localizeFormula(cell.content, this.getters.getLocale());
58302
58329
  }
58330
+ else if (showFormula && !cell?.content) {
58331
+ return "";
58332
+ }
58303
58333
  else {
58304
58334
  return this.getters.getEvaluatedCell(position).formattedValue;
58305
58335
  }
@@ -58798,6 +58828,7 @@ stores.inject(MyMetaStore, storeInstance);
58798
58828
  const repeatCommandTransformRegistry = new Registry();
58799
58829
  repeatCommandTransformRegistry.add("UPDATE_CELL", genericRepeat);
58800
58830
  repeatCommandTransformRegistry.add("CLEAR_CELL", genericRepeat);
58831
+ repeatCommandTransformRegistry.add("CLEAR_CELLS", genericRepeat);
58801
58832
  repeatCommandTransformRegistry.add("DELETE_CONTENT", genericRepeat);
58802
58833
  repeatCommandTransformRegistry.add("ADD_MERGE", genericRepeat);
58803
58834
  repeatCommandTransformRegistry.add("REMOVE_MERGE", genericRepeat);
@@ -59422,9 +59453,10 @@ stores.inject(MyMetaStore, storeInstance);
59422
59453
  case "DELETE_CELL": {
59423
59454
  const { cut, paste } = this.getDeleteCellsTargets(cmd.zone, cmd.shiftDimension);
59424
59455
  if (!isZoneValid(cut[0])) {
59425
- for (const { col, row } of positions(cmd.zone)) {
59426
- this.dispatch("CLEAR_CELL", { col, row, sheetId: this.getters.getActiveSheetId() });
59427
- }
59456
+ this.dispatch("CLEAR_CELLS", {
59457
+ target: [cmd.zone],
59458
+ sheetId: this.getters.getActiveSheetId(),
59459
+ });
59428
59460
  break;
59429
59461
  }
59430
59462
  const copiedData = this.copy(cut);
@@ -67826,7 +67858,7 @@ stores.inject(MyMetaStore, storeInstance);
67826
67858
  this.session.join(this.config.client);
67827
67859
  }
67828
67860
  leaveSession() {
67829
- this.session.leave(this.exportData());
67861
+ this.session.leave(lazy(() => this.exportData()));
67830
67862
  }
67831
67863
  setupUiPlugin(Plugin) {
67832
67864
  const plugin = new Plugin(this.uiPluginConfig);
@@ -68428,9 +68460,9 @@ stores.inject(MyMetaStore, storeInstance);
68428
68460
  exports.tokenize = tokenize;
68429
68461
 
68430
68462
 
68431
- __info__.version = "17.4.4";
68432
- __info__.date = "2024-08-09T12:24:07.798Z";
68433
- __info__.hash = "a43e855";
68463
+ __info__.version = "17.4.5";
68464
+ __info__.date = "2024-08-19T08:12:00.492Z";
68465
+ __info__.hash = "28579ad";
68434
68466
 
68435
68467
 
68436
68468
  })(this.o_spreadsheet = this.o_spreadsheet || {}, owl);