@odoo/o-spreadsheet 16.0.19 → 16.0.20

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.
@@ -3693,6 +3693,9 @@ class FilterMenu extends owl.Component {
3693
3693
  });
3694
3694
  this.state.values = this.getFilterValues(this.props.filterPosition);
3695
3695
  }
3696
+ get isReadonly() {
3697
+ return this.env.model.getters.isReadonly();
3698
+ }
3696
3699
  getFilterValues(position) {
3697
3700
  const sheetId = this.env.model.getters.getActiveSheetId();
3698
3701
  const filter = this.env.model.getters.getFilter(sheetId, position.col, position.row);
@@ -10011,9 +10014,9 @@ class FindAndReplacePanel extends owl.Component {
10011
10014
  }
10012
10015
  setup() {
10013
10016
  this.showFormulaState = this.env.model.getters.shouldShowFormulas();
10014
- this.debouncedUpdateSearch = debounce(this.updateSearch.bind(this), 200);
10015
10017
  owl.onMounted(() => this.focusInput());
10016
10018
  owl.onWillUnmount(() => {
10019
+ clearTimeout(this.debounceTimeoutId);
10017
10020
  this.env.model.dispatch("CLEAR_SEARCH");
10018
10021
  this.env.model.dispatch("SET_FORMULA_VISIBILITY", { show: this.showFormulaState });
10019
10022
  });
@@ -10056,6 +10059,13 @@ class FindAndReplacePanel extends owl.Component {
10056
10059
  searchOptions: this.state.searchOptions,
10057
10060
  });
10058
10061
  }
10062
+ debouncedUpdateSearch() {
10063
+ clearTimeout(this.debounceTimeoutId);
10064
+ this.debounceTimeoutId = setTimeout(() => {
10065
+ this.updateSearch();
10066
+ this.debounceTimeoutId = undefined;
10067
+ }, 200);
10068
+ }
10059
10069
  replace() {
10060
10070
  this.env.model.dispatch("REPLACE_SEARCH", {
10061
10071
  replaceWith: this.state.replaceWith,
@@ -31657,7 +31667,7 @@ class ClipboardCellsState extends ClipboardCellsAbstractState {
31657
31667
  });
31658
31668
  for (const filterTable of this.copiedTables) {
31659
31669
  this.dispatch("REMOVE_FILTER_TABLE", {
31660
- sheetId: this.getters.getActiveSheetId(),
31670
+ sheetId: this.sheetId,
31661
31671
  target: [filterTable.zone],
31662
31672
  });
31663
31673
  }
@@ -36316,30 +36326,26 @@ class InternalViewport {
36316
36326
  const { end } = this.getters.getColDimensions(sheetId, targetCol);
36317
36327
  const maxCol = this.getters.getNumberCols(sheetId);
36318
36328
  if (this.offsetX + this.offsetCorrectionX + this.viewportWidth < end) {
36319
- for (let col = this.left; this.offsetX + this.offsetCorrectionX + this.viewportWidth < end; col++) {
36320
- if (col > maxCol) {
36321
- break;
36322
- }
36323
- if (this.getters.isColHidden(sheetId, col)) {
36324
- continue;
36325
- }
36326
- this.offsetX = this.getters.getColDimensions(sheetId, col).end - this.offsetCorrectionX;
36327
- this.offsetScrollbarX = this.offsetX;
36328
- this.adjustViewportZoneX();
36329
+ let finalTarget = targetCol;
36330
+ while (this.getters.isColHidden(sheetId, finalTarget) && targetCol < maxCol) {
36331
+ finalTarget++;
36329
36332
  }
36333
+ const finalTargetEnd = this.getters.getColDimensions(sheetId, finalTarget).end;
36334
+ const startIndex = this.searchHeaderIndex("COL", finalTargetEnd - this.viewportWidth - this.offsetCorrectionX, this.boundaries.left, true);
36335
+ this.offsetX =
36336
+ this.getters.getColDimensions(sheetId, startIndex).end - this.offsetCorrectionX;
36337
+ this.offsetScrollbarX = this.offsetX;
36338
+ this.adjustViewportZoneX();
36330
36339
  }
36331
36340
  else if (this.left > targetCol) {
36332
- for (let col = this.left; col >= targetCol; col--) {
36333
- if (col < 0) {
36334
- break;
36335
- }
36336
- if (this.getters.isColHidden(sheetId, col)) {
36337
- continue;
36338
- }
36339
- this.offsetX = this.getters.getColDimensions(sheetId, col).start - this.offsetCorrectionX;
36340
- this.offsetScrollbarX = this.offsetX;
36341
- this.adjustViewportZoneX();
36341
+ let finalTarget = targetCol;
36342
+ while (this.getters.isColHidden(sheetId, finalTarget) && targetCol > 0) {
36343
+ finalTarget--;
36342
36344
  }
36345
+ this.offsetX =
36346
+ this.getters.getColDimensions(sheetId, finalTarget).start - this.offsetCorrectionX;
36347
+ this.offsetScrollbarX = this.offsetX;
36348
+ this.adjustViewportZoneX();
36343
36349
  }
36344
36350
  }
36345
36351
  adjustPositionY(targetRow) {
@@ -36347,30 +36353,26 @@ class InternalViewport {
36347
36353
  const { end } = this.getters.getRowDimensions(sheetId, targetRow);
36348
36354
  const maxRow = this.getters.getNumberRows(sheetId);
36349
36355
  if (this.offsetY + this.viewportHeight + this.offsetCorrectionY < end) {
36350
- for (let row = this.top; this.offsetY + this.viewportHeight + this.offsetCorrectionY < end; row++) {
36351
- if (row > maxRow) {
36352
- break;
36353
- }
36354
- if (this.getters.isRowHidden(sheetId, row)) {
36355
- continue;
36356
- }
36357
- this.offsetY = this.getters.getRowDimensions(sheetId, row).end - this.offsetCorrectionY;
36358
- this.offsetScrollbarY = this.offsetY;
36359
- this.adjustViewportZoneY();
36356
+ let finalTarget = targetRow;
36357
+ while (this.getters.isRowHidden(sheetId, finalTarget) && targetRow < maxRow) {
36358
+ finalTarget++;
36360
36359
  }
36360
+ const finalTargetEnd = this.getters.getRowDimensions(sheetId, finalTarget).end;
36361
+ const startIndex = this.searchHeaderIndex("ROW", finalTargetEnd - this.viewportHeight - this.offsetCorrectionY, this.boundaries.top, true);
36362
+ this.offsetY =
36363
+ this.getters.getRowDimensions(sheetId, startIndex).end - this.offsetCorrectionY;
36364
+ this.offsetScrollbarY = this.offsetY;
36365
+ this.adjustViewportZoneY();
36361
36366
  }
36362
36367
  else if (this.top > targetRow) {
36363
- for (let row = this.top; row >= targetRow; row--) {
36364
- if (row < 0) {
36365
- break;
36366
- }
36367
- if (this.getters.isRowHidden(sheetId, row)) {
36368
- continue;
36369
- }
36370
- this.offsetY = this.getters.getRowDimensions(sheetId, row).start - this.offsetCorrectionY;
36371
- this.offsetScrollbarY = this.offsetY;
36372
- this.adjustViewportZoneY();
36368
+ let finalTarget = targetRow;
36369
+ while (this.getters.isRowHidden(sheetId, finalTarget) && targetRow > 0) {
36370
+ finalTarget--;
36373
36371
  }
36372
+ this.offsetY =
36373
+ this.getters.getRowDimensions(sheetId, finalTarget).start - this.offsetCorrectionY;
36374
+ this.offsetScrollbarY = this.offsetY;
36375
+ this.adjustViewportZoneY();
36374
36376
  }
36375
36377
  }
36376
36378
  setViewportOffset(offsetX, offsetY) {
@@ -42922,6 +42924,6 @@ exports.setTranslationMethod = setTranslationMethod;
42922
42924
  exports.tokenize = tokenize;
42923
42925
 
42924
42926
 
42925
- __info__.version = '16.0.19';
42926
- __info__.date = '2023-09-21T15:56:31.776Z';
42927
- __info__.hash = '229c563';
42927
+ __info__.version = '16.0.20';
42928
+ __info__.date = '2023-10-03T12:43:02.601Z';
42929
+ __info__.hash = '3be5a75';
@@ -3689,6 +3689,9 @@ class FilterMenu extends Component {
3689
3689
  });
3690
3690
  this.state.values = this.getFilterValues(this.props.filterPosition);
3691
3691
  }
3692
+ get isReadonly() {
3693
+ return this.env.model.getters.isReadonly();
3694
+ }
3692
3695
  getFilterValues(position) {
3693
3696
  const sheetId = this.env.model.getters.getActiveSheetId();
3694
3697
  const filter = this.env.model.getters.getFilter(sheetId, position.col, position.row);
@@ -10007,9 +10010,9 @@ class FindAndReplacePanel extends Component {
10007
10010
  }
10008
10011
  setup() {
10009
10012
  this.showFormulaState = this.env.model.getters.shouldShowFormulas();
10010
- this.debouncedUpdateSearch = debounce(this.updateSearch.bind(this), 200);
10011
10013
  onMounted(() => this.focusInput());
10012
10014
  onWillUnmount(() => {
10015
+ clearTimeout(this.debounceTimeoutId);
10013
10016
  this.env.model.dispatch("CLEAR_SEARCH");
10014
10017
  this.env.model.dispatch("SET_FORMULA_VISIBILITY", { show: this.showFormulaState });
10015
10018
  });
@@ -10052,6 +10055,13 @@ class FindAndReplacePanel extends Component {
10052
10055
  searchOptions: this.state.searchOptions,
10053
10056
  });
10054
10057
  }
10058
+ debouncedUpdateSearch() {
10059
+ clearTimeout(this.debounceTimeoutId);
10060
+ this.debounceTimeoutId = setTimeout(() => {
10061
+ this.updateSearch();
10062
+ this.debounceTimeoutId = undefined;
10063
+ }, 200);
10064
+ }
10055
10065
  replace() {
10056
10066
  this.env.model.dispatch("REPLACE_SEARCH", {
10057
10067
  replaceWith: this.state.replaceWith,
@@ -31653,7 +31663,7 @@ class ClipboardCellsState extends ClipboardCellsAbstractState {
31653
31663
  });
31654
31664
  for (const filterTable of this.copiedTables) {
31655
31665
  this.dispatch("REMOVE_FILTER_TABLE", {
31656
- sheetId: this.getters.getActiveSheetId(),
31666
+ sheetId: this.sheetId,
31657
31667
  target: [filterTable.zone],
31658
31668
  });
31659
31669
  }
@@ -36312,30 +36322,26 @@ class InternalViewport {
36312
36322
  const { end } = this.getters.getColDimensions(sheetId, targetCol);
36313
36323
  const maxCol = this.getters.getNumberCols(sheetId);
36314
36324
  if (this.offsetX + this.offsetCorrectionX + this.viewportWidth < end) {
36315
- for (let col = this.left; this.offsetX + this.offsetCorrectionX + this.viewportWidth < end; col++) {
36316
- if (col > maxCol) {
36317
- break;
36318
- }
36319
- if (this.getters.isColHidden(sheetId, col)) {
36320
- continue;
36321
- }
36322
- this.offsetX = this.getters.getColDimensions(sheetId, col).end - this.offsetCorrectionX;
36323
- this.offsetScrollbarX = this.offsetX;
36324
- this.adjustViewportZoneX();
36325
+ let finalTarget = targetCol;
36326
+ while (this.getters.isColHidden(sheetId, finalTarget) && targetCol < maxCol) {
36327
+ finalTarget++;
36325
36328
  }
36329
+ const finalTargetEnd = this.getters.getColDimensions(sheetId, finalTarget).end;
36330
+ const startIndex = this.searchHeaderIndex("COL", finalTargetEnd - this.viewportWidth - this.offsetCorrectionX, this.boundaries.left, true);
36331
+ this.offsetX =
36332
+ this.getters.getColDimensions(sheetId, startIndex).end - this.offsetCorrectionX;
36333
+ this.offsetScrollbarX = this.offsetX;
36334
+ this.adjustViewportZoneX();
36326
36335
  }
36327
36336
  else if (this.left > targetCol) {
36328
- for (let col = this.left; col >= targetCol; col--) {
36329
- if (col < 0) {
36330
- break;
36331
- }
36332
- if (this.getters.isColHidden(sheetId, col)) {
36333
- continue;
36334
- }
36335
- this.offsetX = this.getters.getColDimensions(sheetId, col).start - this.offsetCorrectionX;
36336
- this.offsetScrollbarX = this.offsetX;
36337
- this.adjustViewportZoneX();
36337
+ let finalTarget = targetCol;
36338
+ while (this.getters.isColHidden(sheetId, finalTarget) && targetCol > 0) {
36339
+ finalTarget--;
36338
36340
  }
36341
+ this.offsetX =
36342
+ this.getters.getColDimensions(sheetId, finalTarget).start - this.offsetCorrectionX;
36343
+ this.offsetScrollbarX = this.offsetX;
36344
+ this.adjustViewportZoneX();
36339
36345
  }
36340
36346
  }
36341
36347
  adjustPositionY(targetRow) {
@@ -36343,30 +36349,26 @@ class InternalViewport {
36343
36349
  const { end } = this.getters.getRowDimensions(sheetId, targetRow);
36344
36350
  const maxRow = this.getters.getNumberRows(sheetId);
36345
36351
  if (this.offsetY + this.viewportHeight + this.offsetCorrectionY < end) {
36346
- for (let row = this.top; this.offsetY + this.viewportHeight + this.offsetCorrectionY < end; row++) {
36347
- if (row > maxRow) {
36348
- break;
36349
- }
36350
- if (this.getters.isRowHidden(sheetId, row)) {
36351
- continue;
36352
- }
36353
- this.offsetY = this.getters.getRowDimensions(sheetId, row).end - this.offsetCorrectionY;
36354
- this.offsetScrollbarY = this.offsetY;
36355
- this.adjustViewportZoneY();
36352
+ let finalTarget = targetRow;
36353
+ while (this.getters.isRowHidden(sheetId, finalTarget) && targetRow < maxRow) {
36354
+ finalTarget++;
36356
36355
  }
36356
+ const finalTargetEnd = this.getters.getRowDimensions(sheetId, finalTarget).end;
36357
+ const startIndex = this.searchHeaderIndex("ROW", finalTargetEnd - this.viewportHeight - this.offsetCorrectionY, this.boundaries.top, true);
36358
+ this.offsetY =
36359
+ this.getters.getRowDimensions(sheetId, startIndex).end - this.offsetCorrectionY;
36360
+ this.offsetScrollbarY = this.offsetY;
36361
+ this.adjustViewportZoneY();
36357
36362
  }
36358
36363
  else if (this.top > targetRow) {
36359
- for (let row = this.top; row >= targetRow; row--) {
36360
- if (row < 0) {
36361
- break;
36362
- }
36363
- if (this.getters.isRowHidden(sheetId, row)) {
36364
- continue;
36365
- }
36366
- this.offsetY = this.getters.getRowDimensions(sheetId, row).start - this.offsetCorrectionY;
36367
- this.offsetScrollbarY = this.offsetY;
36368
- this.adjustViewportZoneY();
36364
+ let finalTarget = targetRow;
36365
+ while (this.getters.isRowHidden(sheetId, finalTarget) && targetRow > 0) {
36366
+ finalTarget--;
36369
36367
  }
36368
+ this.offsetY =
36369
+ this.getters.getRowDimensions(sheetId, finalTarget).start - this.offsetCorrectionY;
36370
+ this.offsetScrollbarY = this.offsetY;
36371
+ this.adjustViewportZoneY();
36370
36372
  }
36371
36373
  }
36372
36374
  setViewportOffset(offsetX, offsetY) {
@@ -42890,6 +42892,6 @@ function addFunction(functionName, functionDescription) {
42890
42892
  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 };
42891
42893
 
42892
42894
 
42893
- __info__.version = '16.0.19';
42894
- __info__.date = '2023-09-21T15:56:31.776Z';
42895
- __info__.hash = '229c563';
42895
+ __info__.version = '16.0.20';
42896
+ __info__.date = '2023-10-03T12:43:02.601Z';
42897
+ __info__.hash = '3be5a75';
@@ -3690,6 +3690,9 @@
3690
3690
  });
3691
3691
  this.state.values = this.getFilterValues(this.props.filterPosition);
3692
3692
  }
3693
+ get isReadonly() {
3694
+ return this.env.model.getters.isReadonly();
3695
+ }
3693
3696
  getFilterValues(position) {
3694
3697
  const sheetId = this.env.model.getters.getActiveSheetId();
3695
3698
  const filter = this.env.model.getters.getFilter(sheetId, position.col, position.row);
@@ -10008,9 +10011,9 @@
10008
10011
  }
10009
10012
  setup() {
10010
10013
  this.showFormulaState = this.env.model.getters.shouldShowFormulas();
10011
- this.debouncedUpdateSearch = debounce(this.updateSearch.bind(this), 200);
10012
10014
  owl.onMounted(() => this.focusInput());
10013
10015
  owl.onWillUnmount(() => {
10016
+ clearTimeout(this.debounceTimeoutId);
10014
10017
  this.env.model.dispatch("CLEAR_SEARCH");
10015
10018
  this.env.model.dispatch("SET_FORMULA_VISIBILITY", { show: this.showFormulaState });
10016
10019
  });
@@ -10053,6 +10056,13 @@
10053
10056
  searchOptions: this.state.searchOptions,
10054
10057
  });
10055
10058
  }
10059
+ debouncedUpdateSearch() {
10060
+ clearTimeout(this.debounceTimeoutId);
10061
+ this.debounceTimeoutId = setTimeout(() => {
10062
+ this.updateSearch();
10063
+ this.debounceTimeoutId = undefined;
10064
+ }, 200);
10065
+ }
10056
10066
  replace() {
10057
10067
  this.env.model.dispatch("REPLACE_SEARCH", {
10058
10068
  replaceWith: this.state.replaceWith,
@@ -31654,7 +31664,7 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
31654
31664
  });
31655
31665
  for (const filterTable of this.copiedTables) {
31656
31666
  this.dispatch("REMOVE_FILTER_TABLE", {
31657
- sheetId: this.getters.getActiveSheetId(),
31667
+ sheetId: this.sheetId,
31658
31668
  target: [filterTable.zone],
31659
31669
  });
31660
31670
  }
@@ -36313,30 +36323,26 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
36313
36323
  const { end } = this.getters.getColDimensions(sheetId, targetCol);
36314
36324
  const maxCol = this.getters.getNumberCols(sheetId);
36315
36325
  if (this.offsetX + this.offsetCorrectionX + this.viewportWidth < end) {
36316
- for (let col = this.left; this.offsetX + this.offsetCorrectionX + this.viewportWidth < end; col++) {
36317
- if (col > maxCol) {
36318
- break;
36319
- }
36320
- if (this.getters.isColHidden(sheetId, col)) {
36321
- continue;
36322
- }
36323
- this.offsetX = this.getters.getColDimensions(sheetId, col).end - this.offsetCorrectionX;
36324
- this.offsetScrollbarX = this.offsetX;
36325
- this.adjustViewportZoneX();
36326
+ let finalTarget = targetCol;
36327
+ while (this.getters.isColHidden(sheetId, finalTarget) && targetCol < maxCol) {
36328
+ finalTarget++;
36326
36329
  }
36330
+ const finalTargetEnd = this.getters.getColDimensions(sheetId, finalTarget).end;
36331
+ const startIndex = this.searchHeaderIndex("COL", finalTargetEnd - this.viewportWidth - this.offsetCorrectionX, this.boundaries.left, true);
36332
+ this.offsetX =
36333
+ this.getters.getColDimensions(sheetId, startIndex).end - this.offsetCorrectionX;
36334
+ this.offsetScrollbarX = this.offsetX;
36335
+ this.adjustViewportZoneX();
36327
36336
  }
36328
36337
  else if (this.left > targetCol) {
36329
- for (let col = this.left; col >= targetCol; col--) {
36330
- if (col < 0) {
36331
- break;
36332
- }
36333
- if (this.getters.isColHidden(sheetId, col)) {
36334
- continue;
36335
- }
36336
- this.offsetX = this.getters.getColDimensions(sheetId, col).start - this.offsetCorrectionX;
36337
- this.offsetScrollbarX = this.offsetX;
36338
- this.adjustViewportZoneX();
36338
+ let finalTarget = targetCol;
36339
+ while (this.getters.isColHidden(sheetId, finalTarget) && targetCol > 0) {
36340
+ finalTarget--;
36339
36341
  }
36342
+ this.offsetX =
36343
+ this.getters.getColDimensions(sheetId, finalTarget).start - this.offsetCorrectionX;
36344
+ this.offsetScrollbarX = this.offsetX;
36345
+ this.adjustViewportZoneX();
36340
36346
  }
36341
36347
  }
36342
36348
  adjustPositionY(targetRow) {
@@ -36344,30 +36350,26 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
36344
36350
  const { end } = this.getters.getRowDimensions(sheetId, targetRow);
36345
36351
  const maxRow = this.getters.getNumberRows(sheetId);
36346
36352
  if (this.offsetY + this.viewportHeight + this.offsetCorrectionY < end) {
36347
- for (let row = this.top; this.offsetY + this.viewportHeight + this.offsetCorrectionY < end; row++) {
36348
- if (row > maxRow) {
36349
- break;
36350
- }
36351
- if (this.getters.isRowHidden(sheetId, row)) {
36352
- continue;
36353
- }
36354
- this.offsetY = this.getters.getRowDimensions(sheetId, row).end - this.offsetCorrectionY;
36355
- this.offsetScrollbarY = this.offsetY;
36356
- this.adjustViewportZoneY();
36353
+ let finalTarget = targetRow;
36354
+ while (this.getters.isRowHidden(sheetId, finalTarget) && targetRow < maxRow) {
36355
+ finalTarget++;
36357
36356
  }
36357
+ const finalTargetEnd = this.getters.getRowDimensions(sheetId, finalTarget).end;
36358
+ const startIndex = this.searchHeaderIndex("ROW", finalTargetEnd - this.viewportHeight - this.offsetCorrectionY, this.boundaries.top, true);
36359
+ this.offsetY =
36360
+ this.getters.getRowDimensions(sheetId, startIndex).end - this.offsetCorrectionY;
36361
+ this.offsetScrollbarY = this.offsetY;
36362
+ this.adjustViewportZoneY();
36358
36363
  }
36359
36364
  else if (this.top > targetRow) {
36360
- for (let row = this.top; row >= targetRow; row--) {
36361
- if (row < 0) {
36362
- break;
36363
- }
36364
- if (this.getters.isRowHidden(sheetId, row)) {
36365
- continue;
36366
- }
36367
- this.offsetY = this.getters.getRowDimensions(sheetId, row).start - this.offsetCorrectionY;
36368
- this.offsetScrollbarY = this.offsetY;
36369
- this.adjustViewportZoneY();
36365
+ let finalTarget = targetRow;
36366
+ while (this.getters.isRowHidden(sheetId, finalTarget) && targetRow > 0) {
36367
+ finalTarget--;
36370
36368
  }
36369
+ this.offsetY =
36370
+ this.getters.getRowDimensions(sheetId, finalTarget).start - this.offsetCorrectionY;
36371
+ this.offsetScrollbarY = this.offsetY;
36372
+ this.adjustViewportZoneY();
36371
36373
  }
36372
36374
  }
36373
36375
  setViewportOffset(offsetX, offsetY) {
@@ -42921,9 +42923,9 @@ day_count_convention (number, default=${DEFAULT_DAY_COUNT_CONVENTION} ) ${_lt("A
42921
42923
  Object.defineProperty(exports, '__esModule', { value: true });
42922
42924
 
42923
42925
 
42924
- __info__.version = '16.0.19';
42925
- __info__.date = '2023-09-21T15:56:31.776Z';
42926
- __info__.hash = '229c563';
42926
+ __info__.version = '16.0.20';
42927
+ __info__.date = '2023-10-03T12:43:02.601Z';
42928
+ __info__.hash = '3be5a75';
42927
42929
 
42928
42930
 
42929
42931
  })(this.o_spreadsheet = this.o_spreadsheet || {}, owl);