@odoo/o-spreadsheet 19.2.12 → 19.2.14

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 19.2.12
6
- * @date 2026-05-12T12:20:55.681Z
7
- * @hash 5282e3c
5
+ * @version 19.2.14
6
+ * @date 2026-05-27T05:57:14.898Z
7
+ * @hash 96730cd
8
8
  */
9
9
 
10
10
  (function(exports, _odoo_owl) {
@@ -2063,6 +2063,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2063
2063
  }
2064
2064
  };
2065
2065
  var StoreFactory = class {
2066
+ get;
2066
2067
  pendingBuilds = /* @__PURE__ */ new Set();
2067
2068
  constructor(get) {
2068
2069
  this.get = get;
@@ -2107,6 +2108,7 @@ stores.inject(MyMetaStore, storeInstance);
2107
2108
  return MetaStore;
2108
2109
  }
2109
2110
  var DisposableStore = class {
2111
+ get;
2110
2112
  disposeCallbacks = [];
2111
2113
  constructor(get) {
2112
2114
  this.get = get;
@@ -2862,6 +2864,7 @@ stores.inject(MyMetaStore, storeInstance);
2862
2864
  else return ALTERNATING_COLORS_XL;
2863
2865
  }
2864
2866
  var ColorGenerator = class {
2867
+ preferredColors;
2865
2868
  currentColorIndex = 0;
2866
2869
  palette;
2867
2870
  constructor(paletteSize, preferredColors = []) {
@@ -3580,6 +3583,7 @@ stores.inject(MyMetaStore, storeInstance);
3580
3583
  return sprintf(_translate(s), ...values);
3581
3584
  };
3582
3585
  var LazyTranslatedString = class extends String {
3586
+ values;
3583
3587
  constructor(str, values) {
3584
3588
  super(str);
3585
3589
  this.values = values;
@@ -3609,6 +3613,8 @@ stores.inject(MyMetaStore, storeInstance);
3609
3613
  };
3610
3614
  const errorTypes = new Set(Object.values(CellErrorType));
3611
3615
  var EvaluationError = class {
3616
+ message;
3617
+ value;
3612
3618
  constructor(message = _t("Error"), value = CellErrorType.GenericError) {
3613
3619
  this.message = message;
3614
3620
  this.value = value;
@@ -3641,6 +3647,7 @@ stores.inject(MyMetaStore, storeInstance);
3641
3647
  }
3642
3648
  };
3643
3649
  var SplillBlockedError = class extends EvaluationError {
3650
+ errorOriginPosition;
3644
3651
  constructor(message = _t("Spill range is not empty"), errorOriginPosition) {
3645
3652
  super(message, CellErrorType.SpilledBlocked);
3646
3653
  this.errorOriginPosition = errorOriginPosition;
@@ -6478,8 +6485,13 @@ stores.inject(MyMetaStore, storeInstance);
6478
6485
  changeType: "NONE",
6479
6486
  range
6480
6487
  };
6488
+ const isUnboundedAtEnd = range.unboundedZone[end] === void 0;
6489
+ if (isUnboundedAtEnd && !range.unboundedZone.hasHeader) return {
6490
+ changeType: "RESIZE",
6491
+ range: createAdaptedRange(range, dimension, "RESIZE", cmd.quantity)
6492
+ };
6481
6493
  if (cmd.position === "after") {
6482
- if (range.zone[start] <= cmd.base && cmd.base < range.zone[end]) return {
6494
+ if (range.zone[start] <= cmd.base && (cmd.base < range.zone[end] || isUnboundedAtEnd)) return {
6483
6495
  changeType: "RESIZE",
6484
6496
  range: createAdaptedRange(range, dimension, "RESIZE", cmd.quantity)
6485
6497
  };
@@ -7423,6 +7435,10 @@ stores.inject(MyMetaStore, storeInstance);
7423
7435
  ROUNDDOWN: [{
7424
7436
  type: "NUMBER",
7425
7437
  value: 0
7438
+ }],
7439
+ IFERROR: [{
7440
+ type: "NUMBER",
7441
+ value: 0
7426
7442
  }]
7427
7443
  };
7428
7444
  /**
@@ -10136,6 +10152,7 @@ stores.inject(MyMetaStore, storeInstance);
10136
10152
  }, runtime).computeDesign();
10137
10153
  }
10138
10154
  var ScorecardChartConfigBuilder = class {
10155
+ runtime;
10139
10156
  context;
10140
10157
  width;
10141
10158
  height;
@@ -16215,6 +16232,10 @@ stores.inject(MyMetaStore, storeInstance);
16215
16232
  * Animation interpolating values using the ease-out quartic curve function (chartJS default easing)
16216
16233
  */
16217
16234
  var Animation = class {
16235
+ startValue;
16236
+ endValue;
16237
+ duration;
16238
+ callback;
16218
16239
  startTime = void 0;
16219
16240
  animationFrameId = null;
16220
16241
  constructor(startValue, endValue, duration, callback) {
@@ -16681,6 +16702,11 @@ stores.inject(MyMetaStore, storeInstance);
16681
16702
  }
16682
16703
  };
16683
16704
  var PopoverPositionContext = class {
16705
+ anchorRect;
16706
+ containerRect;
16707
+ propsMaxSize;
16708
+ spreadsheetOffset;
16709
+ lastPosition;
16684
16710
  constructor(anchorRect, containerRect, propsMaxSize, spreadsheetOffset, lastPosition) {
16685
16711
  this.anchorRect = anchorRect;
16686
16712
  this.containerRect = containerRect;
@@ -25785,6 +25811,7 @@ stores.inject(MyMetaStore, storeInstance);
25785
25811
  * Represent a raw XML string
25786
25812
  */
25787
25813
  var XMLString = class {
25814
+ xmlString;
25788
25815
  /**
25789
25816
  * @param xmlString should be a well formed, properly escaped XML string
25790
25817
  */
@@ -34023,6 +34050,7 @@ stores.inject(MyMetaStore, storeInstance);
34023
34050
  //#endregion
34024
34051
  //#region src/components/composer/standalone_composer/standalone_composer_store.ts
34025
34052
  var StandaloneComposerStore = class extends AbstractComposerStore {
34053
+ args;
34026
34054
  constructor(get, args) {
34027
34055
  super(get);
34028
34056
  this.args = args;
@@ -34926,6 +34954,7 @@ stores.inject(MyMetaStore, storeInstance);
34926
34954
  }
34927
34955
  };
34928
34956
  var ContainerWrapper = class {
34957
+ el;
34929
34958
  constructor(el) {
34930
34959
  this.el = el;
34931
34960
  }
@@ -34997,6 +35026,10 @@ stores.inject(MyMetaStore, storeInstance);
34997
35026
  * This plugin handles this internal state.
34998
35027
  */
34999
35028
  var SelectionInputStore = class extends SpreadsheetStore {
35029
+ initialRanges;
35030
+ inputHasSingleRange;
35031
+ colors;
35032
+ disabledRanges;
35000
35033
  mutators = [
35001
35034
  "resetWithRanges",
35002
35035
  "focusById",
@@ -43090,6 +43123,8 @@ stores.inject(MyMetaStore, storeInstance);
43090
43123
  //#endregion
43091
43124
  //#region src/components/side_panel/pivot/pivot_measure_display_panel/pivot_measure_display_panel_store.ts
43092
43125
  var PivotMeasureDisplayPanelStore = class extends SpreadsheetStore {
43126
+ pivotId;
43127
+ initialMeasure;
43093
43128
  mutators = [
43094
43129
  "cancelMeasureDisplayEdition",
43095
43130
  "updateMeasureDisplayType",
@@ -43281,7 +43316,7 @@ stores.inject(MyMetaStore, storeInstance);
43281
43316
  col,
43282
43317
  row
43283
43318
  };
43284
- if (pivotId === getters.getPivotIdFromPosition(position)) positions.push(position);
43319
+ if (getters.getPivotIdsFromPosition(position).includes(pivotId)) positions.push(position);
43285
43320
  }
43286
43321
  return positions;
43287
43322
  }
@@ -43572,6 +43607,7 @@ stores.inject(MyMetaStore, storeInstance);
43572
43607
  //#endregion
43573
43608
  //#region src/formulas/code_builder.ts
43574
43609
  var FunctionCodeBuilder = class {
43610
+ scope;
43575
43611
  code = "";
43576
43612
  constructor(scope = new Scope()) {
43577
43613
  this.scope = scope;
@@ -43587,6 +43623,8 @@ stores.inject(MyMetaStore, storeInstance);
43587
43623
  }
43588
43624
  };
43589
43625
  var FunctionCodeImpl = class {
43626
+ scope;
43627
+ returnExpression;
43590
43628
  code;
43591
43629
  constructor(scope, code, returnExpression) {
43592
43630
  this.scope = scope;
@@ -43669,6 +43707,13 @@ stores.inject(MyMetaStore, storeInstance);
43669
43707
  * without recompiling it (for example when the formula is copied to another cell, or when we want to replace literal values but keep the same structure).
43670
43708
  * */
43671
43709
  var CompiledFormula = class CompiledFormula {
43710
+ sheetId;
43711
+ tokens;
43712
+ literalValues;
43713
+ symbols;
43714
+ isBadExpression;
43715
+ normalizedFormula;
43716
+ execute;
43672
43717
  rangeDependencies;
43673
43718
  hasDependencies;
43674
43719
  constructor(sheetId, tokens, literalValues, symbols, dependencies, isBadExpression, normalizedFormula, execute) {
@@ -44553,13 +44598,30 @@ stores.inject(MyMetaStore, storeInstance);
44553
44598
  break;
44554
44599
  }
44555
44600
  return {
44601
+ /**
44602
+ * Get the id of the measure, as it is stored in the pivot formula
44603
+ */
44556
44604
  id: measure.id,
44605
+ /**
44606
+ * Display name of the measure
44607
+ * e.g. "__count" -> "Count", "amount_total" -> "Total Amount"
44608
+ */
44557
44609
  get displayName() {
44558
44610
  return measure.userDefinedName ?? field?.string ?? measure.fieldName;
44559
44611
  },
44560
44612
  userDefinedName: measure.userDefinedName,
44613
+ /**
44614
+ * Get the name of the field of the measure
44615
+ */
44561
44616
  fieldName,
44617
+ /**
44618
+ * Get the aggregator of the measure
44619
+ */
44562
44620
  aggregator,
44621
+ /**
44622
+ * Get the type of the measure field
44623
+ * e.g. "stage_id" -> "many2one", "create_date:month" -> "date"
44624
+ */
44563
44625
  type: fieldName === "__count" ? "integer" : field?.type ?? "integer",
44564
44626
  isValid,
44565
44627
  isHidden: measure.isHidden,
@@ -44573,10 +44635,30 @@ stores.inject(MyMetaStore, storeInstance);
44573
44635
  const type = field?.type ?? "integer";
44574
44636
  const granularity = field && isDateOrDatetimeField(field) ? dimension.granularity : void 0;
44575
44637
  return {
44638
+ /**
44639
+ * Get the display name of the dimension
44640
+ * e.g. "stage_id" -> "Stage", "create_date:month" -> "Create Date"
44641
+ */
44576
44642
  displayName: field?.string ?? dimension.fieldName,
44643
+ /**
44644
+ * Get the name of the dimension, as it is stored in the pivot formula
44645
+ * e.g. "stage_id", "create_date:month"
44646
+ */
44577
44647
  nameWithGranularity: dimension.fieldName + (granularity ? `:${granularity}` : ""),
44648
+ /**
44649
+ * Get the name of the field of the dimension
44650
+ * e.g. "stage_id" -> "stage_id", "create_date:month" -> "create_date"
44651
+ */
44578
44652
  fieldName: dimension.fieldName,
44653
+ /**
44654
+ * Get the aggregate operator of the dimension
44655
+ * e.g. "stage_id" -> undefined, "create_date:month" -> "month"
44656
+ */
44579
44657
  granularity,
44658
+ /**
44659
+ * Get the type of the field of the dimension
44660
+ * e.g. "stage_id" -> "many2one", "create_date:month" -> "date"
44661
+ */
44580
44662
  type: field?.isCustomField ? "custom" : type,
44581
44663
  order: dimension.order,
44582
44664
  isValid: !!field,
@@ -45722,6 +45804,9 @@ stores.inject(MyMetaStore, storeInstance);
45722
45804
  function getFirstPivotFunction(compiledFormula, getters) {
45723
45805
  return compiledFormula.getFunctionsFromTokens(PIVOT_FUNCTIONS, getters)[0];
45724
45806
  }
45807
+ function getPivotFunctions(compiledFormula, getters) {
45808
+ return compiledFormula.getFunctionsFromTokens(PIVOT_FUNCTIONS, getters);
45809
+ }
45725
45810
  /**
45726
45811
  * Parse a spreadsheet formula and detect the number of PIVOT functions that are
45727
45812
  * present in the given formula.
@@ -45798,6 +45883,8 @@ stores.inject(MyMetaStore, storeInstance);
45798
45883
  //#endregion
45799
45884
  //#region src/components/side_panel/pivot/pivot_side_panel/pivot_side_panel_store.ts
45800
45885
  var PivotSidePanelStore = class extends SpreadsheetStore {
45886
+ pivotId;
45887
+ updateMode;
45801
45888
  mutators = [
45802
45889
  "reset",
45803
45890
  "deferUpdates",
@@ -60109,6 +60196,8 @@ stores.inject(MyMetaStore, storeInstance);
60109
60196
  return new CompilationParametersBuilder(context, getters, computeCell).getParameters();
60110
60197
  }
60111
60198
  var CompilationParametersBuilder = class {
60199
+ getters;
60200
+ computeCell;
60112
60201
  evalContext;
60113
60202
  rangeCache = {};
60114
60203
  constructor(context, getters, computeCell) {
@@ -61055,6 +61144,7 @@ stores.inject(MyMetaStore, storeInstance);
61055
61144
  }));
61056
61145
  const EMPTY_CELL = Object.freeze(createEvaluatedCell({ value: null }));
61057
61146
  var Evaluator = class {
61147
+ context;
61058
61148
  getters;
61059
61149
  compilationParams;
61060
61150
  evaluatedCells = new PositionMap();
@@ -63445,6 +63535,7 @@ stores.inject(MyMetaStore, storeInstance);
63445
63535
  "getFirstPivotFunction",
63446
63536
  "getPivotCellSortDirection",
63447
63537
  "getPivotIdFromPosition",
63538
+ "getPivotIdsFromPosition",
63448
63539
  "getPivotCellFromPosition",
63449
63540
  "generateNewCalculatedMeasureName",
63450
63541
  "isPivotUnused",
@@ -63504,37 +63595,52 @@ stores.inject(MyMetaStore, storeInstance);
63504
63595
  }
63505
63596
  }
63506
63597
  /**
63507
- * Get the id of the pivot at the given position. Returns undefined if there
63598
+ * Get the id of the first pivot in the formula at the given position. Returns undefined if there
63508
63599
  * is no pivot at this position
63509
63600
  */
63510
63601
  getPivotIdFromPosition(position) {
63602
+ return this.getPivotIdsFromPosition(position)[0];
63603
+ }
63604
+ /**
63605
+ * Get all of the ids of the pivot present in the formula at the given position.
63606
+ */
63607
+ getPivotIdsFromPosition(position) {
63511
63608
  const cell = this.getters.getCorrespondingFormulaCell(position);
63512
- if (cell && cell.isFormula) {
63513
- const pivotFunction = this.getFirstPivotFunction(position.sheetId, cell.compiledFormula);
63514
- if (pivotFunction) {
63515
- const pivotId = pivotFunction.args[0]?.toString();
63516
- return pivotId && this.getters.getPivotId(pivotId);
63517
- }
63518
- }
63609
+ if (cell && cell.isFormula) return this.getPivotIdsFromFormula(position.sheetId, cell.compiledFormula);
63610
+ return [];
63611
+ }
63612
+ getPivotIdsFromFormula(sheetId, formula) {
63613
+ return this.getPivotFunctions(sheetId, formula).map((pivotFunction) => {
63614
+ const pivotId = pivotFunction.args[0]?.toString();
63615
+ return pivotId && this.getters.getPivotId(pivotId);
63616
+ }).filter(isDefined);
63519
63617
  }
63520
63618
  isSpillPivotFormula(position) {
63521
63619
  const cell = this.getters.getCorrespondingFormulaCell(position);
63522
63620
  if (cell && cell.isFormula) return this.getFirstPivotFunction(position.sheetId, cell.compiledFormula)?.functionName === "PIVOT";
63523
63621
  return false;
63524
63622
  }
63525
- getFirstPivotFunction(sheetId, compiledFormula) {
63526
- const pivotFunction = getFirstPivotFunction(compiledFormula, this.getters);
63527
- if (!pivotFunction) return;
63528
- const { functionName, args } = pivotFunction;
63529
- return {
63530
- functionName,
63531
- args: args.map((argAst) => {
63623
+ getPivotFunctions(sheetId, formula) {
63624
+ const pivotFunctions = getPivotFunctions(formula, this.getters);
63625
+ if (!pivotFunctions.length) return [];
63626
+ const evaluatedPivotFunctions = [];
63627
+ for (const pivotFunction of pivotFunctions) {
63628
+ const { functionName, args } = pivotFunction;
63629
+ const evaluatedArgs = args.map((argAst) => {
63532
63630
  if (argAst.type === "EMPTY") return;
63533
63631
  else if (argAst.type === "STRING" || argAst.type === "BOOLEAN" || argAst.type === "NUMBER") return argAst.value;
63534
63632
  const argsString = astToFormula(argAst);
63535
63633
  return this.getters.evaluateFormula(sheetId, argsString);
63536
- })
63537
- };
63634
+ });
63635
+ evaluatedPivotFunctions.push({
63636
+ functionName,
63637
+ args: evaluatedArgs
63638
+ });
63639
+ }
63640
+ return evaluatedPivotFunctions;
63641
+ }
63642
+ getFirstPivotFunction(sheetId, formula) {
63643
+ return this.getPivotFunctions(sheetId, formula)[0];
63538
63644
  }
63539
63645
  /**
63540
63646
  * Returns the domain args of a pivot formula from a position.
@@ -63640,8 +63746,8 @@ stores.inject(MyMetaStore, storeInstance);
63640
63746
  const unusedPivots = new Set(this.getters.getPivotIds());
63641
63747
  for (const sheetId of this.getters.getSheetIds()) for (const cell of this.getters.getCells(sheetId)) {
63642
63748
  const position = this.getters.getCellPosition(cell.id);
63643
- const pivotId = this.getPivotIdFromPosition(position);
63644
- if (pivotId) {
63749
+ const pivotIds = this.getPivotIdsFromPosition(position);
63750
+ for (const pivotId of pivotIds) {
63645
63751
  unusedPivots.delete(pivotId);
63646
63752
  if (!unusedPivots.size) {
63647
63753
  this.unusedPivotsInFormulas = [];
@@ -63649,6 +63755,21 @@ stores.inject(MyMetaStore, storeInstance);
63649
63755
  }
63650
63756
  }
63651
63757
  }
63758
+ for (const pivotId of this.getters.getPivotIds()) {
63759
+ const pivot = this.getters.getPivot(pivotId);
63760
+ for (const measure of pivot.definition.measures) if (measure.computedBy) {
63761
+ const { sheetId } = measure.computedBy;
63762
+ const formula = this.getters.getMeasureCompiledFormula(pivotId, measure);
63763
+ const relatedPivotIds = this.getPivotIdsFromFormula(sheetId, formula);
63764
+ for (const relatedPivotId of relatedPivotIds) {
63765
+ unusedPivots.delete(relatedPivotId);
63766
+ if (!unusedPivots.size) {
63767
+ this.unusedPivotsInFormulas = [];
63768
+ return [];
63769
+ }
63770
+ }
63771
+ }
63772
+ }
63652
63773
  this.unusedPivotsInFormulas = [...unusedPivots];
63653
63774
  return this.unusedPivotsInFormulas;
63654
63775
  }
@@ -63687,6 +63808,8 @@ stores.inject(MyMetaStore, storeInstance);
63687
63808
  //#endregion
63688
63809
  //#region src/clipboard_handlers/abstract_clipboard_handler.ts
63689
63810
  var ClipboardHandler = class {
63811
+ getters;
63812
+ dispatch;
63690
63813
  constructor(getters, dispatch) {
63691
63814
  this.getters = getters;
63692
63815
  this.dispatch = dispatch;
@@ -65981,6 +66104,8 @@ stores.inject(MyMetaStore, storeInstance);
65981
66104
  //#endregion
65982
66105
  //#region src/collaborative/revisions.ts
65983
66106
  var Revision = class {
66107
+ rootCommand;
66108
+ timestamp;
65984
66109
  id;
65985
66110
  clientId;
65986
66111
  _commands = [];
@@ -66017,6 +66142,9 @@ stores.inject(MyMetaStore, storeInstance);
66017
66142
  //#region src/collaborative/session.ts
66018
66143
  var ClientDisconnectedError = class extends Error {};
66019
66144
  var Session = class extends EventBus {
66145
+ revisions;
66146
+ transportService;
66147
+ serverRevisionId;
66020
66148
  /**
66021
66149
  * Positions of the others client.
66022
66150
  */
@@ -69596,6 +69724,9 @@ stores.inject(MyMetaStore, storeInstance);
69596
69724
  //#endregion
69597
69725
  //#region src/helpers/internal_viewport.ts
69598
69726
  var InternalViewport = class {
69727
+ getters;
69728
+ sheetId;
69729
+ boundaries;
69599
69730
  top;
69600
69731
  bottom;
69601
69732
  left;
@@ -74406,6 +74537,7 @@ stores.inject(MyMetaStore, storeInstance);
74406
74537
  return new WebClipboardWrapper(navigator.clipboard);
74407
74538
  }
74408
74539
  var WebClipboardWrapper = class {
74540
+ clipboard;
74409
74541
  constructor(clipboard) {
74410
74542
  this.clipboard = clipboard;
74411
74543
  }
@@ -74677,6 +74809,7 @@ stores.inject(MyMetaStore, storeInstance);
74677
74809
  //#endregion
74678
74810
  //#region src/collaborative/readonly_transport_filter.ts
74679
74811
  var ReadonlyTransportFilter = class {
74812
+ transportService;
74680
74813
  constructor(transportService) {
74681
74814
  this.transportService = transportService;
74682
74815
  }
@@ -74708,6 +74841,8 @@ stores.inject(MyMetaStore, storeInstance);
74708
74841
  * @param operations initial operations
74709
74842
  */
74710
74843
  var Branch = class Branch {
74844
+ buildTransformation;
74845
+ operations;
74711
74846
  constructor(buildTransformation, operations = []) {
74712
74847
  this.buildTransformation = buildTransformation;
74713
74848
  this.operations = operations;
@@ -74824,6 +74959,8 @@ stores.inject(MyMetaStore, storeInstance);
74824
74959
  * to revert it).
74825
74960
  */
74826
74961
  var Operation = class {
74962
+ id;
74963
+ data;
74827
74964
  constructor(id, data) {
74828
74965
  this.id = id;
74829
74966
  this.data = data;
@@ -74833,6 +74970,8 @@ stores.inject(MyMetaStore, storeInstance);
74833
74970
  }
74834
74971
  };
74835
74972
  var LazyOperation = class LazyOperation {
74973
+ id;
74974
+ lazyData;
74836
74975
  constructor(id, lazyData) {
74837
74976
  this.id = id;
74838
74977
  this.lazyData = lazyData;
@@ -74858,6 +74997,7 @@ stores.inject(MyMetaStore, storeInstance);
74858
74997
  * ```
74859
74998
  */
74860
74999
  var OperationSequence = class OperationSequence {
75000
+ operations;
74861
75001
  constructor(operations) {
74862
75002
  this.operations = operations;
74863
75003
  }
@@ -74933,6 +75073,7 @@ stores.inject(MyMetaStore, storeInstance);
74933
75073
  *
74934
75074
  */
74935
75075
  var Tree = class {
75076
+ buildTransformation;
74936
75077
  branches;
74937
75078
  branchingOperationIds = /* @__PURE__ */ new Map();
74938
75079
  constructor(buildTransformation, initialBranch) {
@@ -75747,6 +75888,7 @@ stores.inject(MyMetaStore, storeInstance);
75747
75888
  * with the new selected anchor
75748
75889
  */
75749
75890
  var SelectionStreamProcessorImpl = class {
75891
+ getters;
75750
75892
  stream;
75751
75893
  /**
75752
75894
  * "Active" anchor used as a reference to compute new anchors
@@ -81564,8 +81706,8 @@ exports.stores = stores;
81564
81706
  exports.tokenColors = tokenColors;
81565
81707
  exports.tokenize = tokenize;
81566
81708
 
81567
- __info__.version = "19.2.12";
81568
- __info__.date = "2026-05-12T12:20:55.681Z";
81569
- __info__.hash = "5282e3c";
81709
+ __info__.version = "19.2.14";
81710
+ __info__.date = "2026-05-27T05:57:14.898Z";
81711
+ __info__.hash = "96730cd";
81570
81712
 
81571
81713
  })(this.o_spreadsheet = this.o_spreadsheet || {}, owl);