@odoo/o-spreadsheet 18.3.8 → 18.3.10

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.3.8
6
- * @date 2025-06-12T09:51:55.929Z
7
- * @hash 32dedd1
5
+ * @version 18.3.10
6
+ * @date 2025-06-23T15:05:03.747Z
7
+ * @hash 748e300
8
8
  */
9
9
 
10
10
  'use strict';
@@ -143,6 +143,7 @@ const FROZEN_PANE_HEADER_BORDER_COLOR = "#BCBCBC";
143
143
  const FROZEN_PANE_BORDER_COLOR = "#DADFE8";
144
144
  const COMPOSER_ASSISTANT_COLOR = "#9B359B";
145
145
  const COLOR_TRANSPARENT = "#00000000";
146
+ const TABLE_HOVER_BACKGROUND_COLOR = "#017E8414";
146
147
  const CHART_WATERFALL_POSITIVE_COLOR = "#4EA7F2";
147
148
  const CHART_WATERFALL_NEGATIVE_COLOR = "#EA6175";
148
149
  const CHART_WATERFALL_SUBTOTAL_COLOR = "#AAAAAA";
@@ -7122,6 +7123,63 @@ function parseOSClipboardContent(content, clipboardId) {
7122
7123
  };
7123
7124
  return osClipboardContent;
7124
7125
  }
7126
+ /**
7127
+ * Applies each clipboard handler to paste its corresponding data into the target.
7128
+ */
7129
+ const applyClipboardHandlersPaste = (handlers, copiedData, target, options) => {
7130
+ handlers.forEach(({ handlerName, handler }) => {
7131
+ const data = copiedData[handlerName];
7132
+ if (data) {
7133
+ handler.paste(target, data, options);
7134
+ }
7135
+ });
7136
+ };
7137
+ /**
7138
+ * Returns the paste target based on clipboard handlers.
7139
+ * Also includes the full affected zone and the list of pasted zones for selection.
7140
+ */
7141
+ function getPasteTargetFromHandlers(sheetId, zones, copiedData, handlers, options) {
7142
+ let zone = undefined;
7143
+ let selectedZones = [];
7144
+ let target = {
7145
+ sheetId,
7146
+ zones,
7147
+ };
7148
+ for (const { handlerName, handler } of handlers) {
7149
+ const handlerData = copiedData[handlerName];
7150
+ if (!handlerData) {
7151
+ continue;
7152
+ }
7153
+ const currentTarget = handler.getPasteTarget(sheetId, zones, handlerData, options);
7154
+ if (currentTarget.figureId) {
7155
+ target.figureId = currentTarget.figureId;
7156
+ }
7157
+ for (const targetZone of currentTarget.zones) {
7158
+ selectedZones.push(targetZone);
7159
+ if (zone === undefined) {
7160
+ zone = targetZone;
7161
+ continue;
7162
+ }
7163
+ zone = union(zone, targetZone);
7164
+ }
7165
+ }
7166
+ return {
7167
+ target,
7168
+ zone,
7169
+ selectedZones,
7170
+ };
7171
+ }
7172
+ /**
7173
+ * Updates the selection after a paste operation.
7174
+ */
7175
+ const selectPastedZone = (selection, sourceZones, pastedZones) => {
7176
+ const anchorCell = {
7177
+ col: sourceZones[0].left,
7178
+ row: sourceZones[0].top,
7179
+ };
7180
+ selection.getBackToDefault();
7181
+ selection.selectZone({ cell: anchorCell, zone: union(...pastedZones) }, { scrollIntoView: false });
7182
+ };
7125
7183
 
7126
7184
  class ClipboardHandler {
7127
7185
  getters;
@@ -20953,6 +21011,7 @@ function drawLineOrBarOrRadarChartValues(chart, options, ctx) {
20953
21011
  if (isTrendLineAxis(dataset.xAxisID) || dataset.hidden) {
20954
21012
  continue;
20955
21013
  }
21014
+ const yAxisScale = chart.scales[dataset.yAxisID];
20956
21015
  for (let i = 0; i < dataset._parsed.length; i++) {
20957
21016
  const parsedValue = dataset._parsed[i];
20958
21017
  const value = Number(chart.config.type === "radar" ? parsedValue.r : parsedValue.y);
@@ -20963,10 +21022,18 @@ function drawLineOrBarOrRadarChartValues(chart, options, ctx) {
20963
21022
  const xPosition = point.x;
20964
21023
  let yPosition = 0;
20965
21024
  if (chart.config.type === "line" || chart.config.type === "radar") {
20966
- yPosition = point.y - 10;
21025
+ yPosition = value < 0 ? point.y + 10 : point.y - 10;
20967
21026
  }
20968
21027
  else {
20969
- yPosition = value < 0 ? point.y - point.height / 2 : point.y + point.height / 2;
21028
+ const yZeroLine = yAxisScale.getPixelForValue(0);
21029
+ const distanceFromAxisOrigin = Math.abs(yZeroLine - point.y);
21030
+ const textHeight = 12; // ChartJS default text height
21031
+ if (distanceFromAxisOrigin < textHeight) {
21032
+ yPosition = value < 0 ? yZeroLine + textHeight / 2 : yZeroLine - textHeight / 2;
21033
+ }
21034
+ else {
21035
+ yPosition = value < 0 ? point.y - point.height / 2 : point.y + point.height / 2;
21036
+ }
20970
21037
  }
20971
21038
  yPosition = Math.min(yPosition, yMax);
20972
21039
  yPosition = Math.max(yPosition, yMin);
@@ -20976,7 +21043,7 @@ function drawLineOrBarOrRadarChartValues(chart, options, ctx) {
20976
21043
  }
20977
21044
  for (const otherPosition of textsPositions[xPosition] || []) {
20978
21045
  if (Math.abs(otherPosition - yPosition) < 13) {
20979
- yPosition = otherPosition - 13;
21046
+ yPosition = value < 0 ? otherPosition + 13 : otherPosition - 13;
20980
21047
  }
20981
21048
  }
20982
21049
  textsPositions[xPosition].push(yPosition);
@@ -20995,6 +21062,8 @@ function drawHorizontalBarChartValues(chart, options, ctx) {
20995
21062
  if (isTrendLineAxis(dataset.xAxisID)) {
20996
21063
  return; // ignore trend lines
20997
21064
  }
21065
+ const xAxisScale = chart.scales[dataset.xAxisID];
21066
+ const xZeroLine = xAxisScale.getPixelForValue(0);
20998
21067
  for (let i = 0; i < dataset._parsed.length; i++) {
20999
21068
  const value = Number(dataset._parsed[i].x);
21000
21069
  if (isNaN(value)) {
@@ -21003,17 +21072,27 @@ function drawHorizontalBarChartValues(chart, options, ctx) {
21003
21072
  const displayValue = options.callback(value, dataset, i);
21004
21073
  const point = dataset.data[i];
21005
21074
  const yPosition = point.y;
21006
- let xPosition = value < 0 ? point.x + point.width / 2 : point.x - point.width / 2;
21007
- xPosition = Math.min(xPosition, xMax);
21008
- xPosition = Math.max(xPosition, xMin);
21075
+ const textWidth = computeTextWidth(ctx, displayValue, { fontSize: 12 }, "px");
21076
+ const distanceFromAxisOrigin = Math.abs(point.x - xZeroLine);
21077
+ const PADDING = 3;
21078
+ let xPosition;
21079
+ if (distanceFromAxisOrigin < textWidth) {
21080
+ xPosition =
21081
+ value < 0 ? xZeroLine - textWidth / 2 - PADDING : xZeroLine + textWidth / 2 + PADDING;
21082
+ }
21083
+ else {
21084
+ xPosition = value < 0 ? point.x + point.width / 2 : point.x - point.width / 2;
21085
+ xPosition = Math.min(xPosition, xMax);
21086
+ xPosition = Math.max(xPosition, xMin);
21087
+ }
21009
21088
  // Avoid overlapping texts with same Y
21010
21089
  if (!textsPositions[yPosition]) {
21011
21090
  textsPositions[yPosition] = [];
21012
21091
  }
21013
- const textWidth = computeTextWidth(ctx, displayValue, { fontSize: 12 }, "px");
21014
21092
  for (const otherPosition of textsPositions[yPosition]) {
21015
21093
  if (Math.abs(otherPosition - xPosition) < textWidth) {
21016
- xPosition = otherPosition + textWidth + 3;
21094
+ xPosition =
21095
+ value < 0 ? otherPosition - textWidth - PADDING : otherPosition + textWidth + PADDING;
21017
21096
  }
21018
21097
  }
21019
21098
  textsPositions[yPosition].push(xPosition);
@@ -26400,7 +26479,9 @@ function getPyramidChartShowValues(definition, args) {
26400
26479
  background: definition.background,
26401
26480
  callback: (value, dataset) => {
26402
26481
  value = Math.abs(Number(value));
26403
- return formatChartDatasetValue(axisFormats, locale)(value, dataset.xAxisID || "x");
26482
+ return value === 0
26483
+ ? ""
26484
+ : formatChartDatasetValue(axisFormats, locale)(value, dataset.xAxisID || "x");
26404
26485
  },
26405
26486
  };
26406
26487
  }
@@ -37133,6 +37214,10 @@ const REMOVE_ROWS_ACTION = (env) => {
37133
37214
  });
37134
37215
  };
37135
37216
  const CAN_REMOVE_COLUMNS_ROWS = (dimension, env) => {
37217
+ if ((dimension === "COL" && env.model.getters.getActiveRows().size > 0) ||
37218
+ (dimension === "ROW" && env.model.getters.getActiveCols().size > 0)) {
37219
+ return false;
37220
+ }
37136
37221
  const sheetId = env.model.getters.getActiveSheetId();
37137
37222
  const selectedElements = env.model.getters.getElementsFromSelection(dimension);
37138
37223
  const includesAllVisibleHeaders = env.model.getters.checkElementsIncludeAllVisibleHeaders(sheetId, dimension, selectedElements);
@@ -40030,11 +40115,11 @@ class OTRegistry extends Registry {
40030
40115
  * transformation function given
40031
40116
  */
40032
40117
  addTransformation(executed, toTransforms, fn) {
40033
- for (let toTransform of toTransforms) {
40034
- if (!this.content[toTransform]) {
40035
- this.content[toTransform] = new Map();
40036
- }
40037
- this.content[toTransform].set(executed, fn);
40118
+ if (!this.content[executed]) {
40119
+ this.content[executed] = new Map();
40120
+ }
40121
+ for (const toTransform of toTransforms) {
40122
+ this.content[executed].set(toTransform, fn);
40038
40123
  }
40039
40124
  return this;
40040
40125
  }
@@ -40043,7 +40128,7 @@ class OTRegistry extends Registry {
40043
40128
  * that the executed command happened.
40044
40129
  */
40045
40130
  getTransformation(toTransform, executed) {
40046
- return this.content[toTransform] && this.content[toTransform].get(executed);
40131
+ return this.content[executed] && this.content[executed].get(toTransform);
40047
40132
  }
40048
40133
  }
40049
40134
  const otRegistry = new OTRegistry();
@@ -43333,6 +43418,12 @@ class Composer extends owl.Component {
43333
43418
  owl.useEffect(() => {
43334
43419
  this.processTokenAtCursor();
43335
43420
  }, () => [this.props.composerStore.editionMode !== "inactive"]);
43421
+ owl.useEffect(() => {
43422
+ this.contentHelper.scrollSelectionIntoView();
43423
+ }, () => [
43424
+ this.props.composerStore.composerSelection.start,
43425
+ this.props.composerStore.composerSelection.end,
43426
+ ]);
43336
43427
  }
43337
43428
  // ---------------------------------------------------------------------------
43338
43429
  // Handlers
@@ -43555,6 +43646,7 @@ class Composer extends owl.Component {
43555
43646
  // not main button, probably a context menu
43556
43647
  return;
43557
43648
  }
43649
+ this.debouncedHover.stopDebounce();
43558
43650
  this.contentHelper.removeSelection();
43559
43651
  }
43560
43652
  onMouseup() {
@@ -43633,7 +43725,6 @@ class Composer extends owl.Component {
43633
43725
  const { start, end } = this.props.composerStore.composerSelection;
43634
43726
  this.contentHelper.selectRange(start, end);
43635
43727
  }
43636
- this.contentHelper.scrollSelectionIntoView();
43637
43728
  }
43638
43729
  this.shouldProcessInputEvents = true;
43639
43730
  }
@@ -49790,7 +49881,7 @@ class SpreadsheetPivot {
49790
49881
  }
49791
49882
  getTypeFromZone(sheetId, zone) {
49792
49883
  const cells = this.getters.getEvaluatedCellsInZone(sheetId, zone);
49793
- const nonEmptyCells = cells.filter((cell) => cell.type !== CellValueType.empty);
49884
+ const nonEmptyCells = cells.filter((cell) => !(cell.type === CellValueType.empty || cell.value === ""));
49794
49885
  if (nonEmptyCells.length === 0) {
49795
49886
  return "integer";
49796
49887
  }
@@ -53507,15 +53598,16 @@ class GridAddRowsFooter extends owl.Component {
53507
53598
  }
53508
53599
  }
53509
53600
 
53601
+ const PAINT_FORMAT_HANDLER_KEYS = [
53602
+ "cell",
53603
+ "border",
53604
+ "table",
53605
+ "conditionalFormat",
53606
+ "merge",
53607
+ ];
53510
53608
  class PaintFormatStore extends SpreadsheetStore {
53511
53609
  mutators = ["activate", "cancel", "pasteFormat"];
53512
53610
  highlightStore = this.get(HighlightStore);
53513
- clipboardHandlers = [
53514
- new CellClipboardHandler(this.getters, this.model.dispatch),
53515
- new BorderClipboardHandler(this.getters, this.model.dispatch),
53516
- new TableClipboardHandler(this.getters, this.model.dispatch),
53517
- new ConditionalFormatClipboardHandler(this.getters, this.model.dispatch),
53518
- ];
53519
53611
  status = "inactive";
53520
53612
  copiedData;
53521
53613
  constructor(get) {
@@ -53546,24 +53638,38 @@ class PaintFormatStore extends SpreadsheetStore {
53546
53638
  get isActive() {
53547
53639
  return this.status !== "inactive";
53548
53640
  }
53641
+ get clipboardHandlers() {
53642
+ return PAINT_FORMAT_HANDLER_KEYS.map((handlerName) => {
53643
+ const HandlerClass = clipboardHandlersRegistries.cellHandlers.get(handlerName);
53644
+ return {
53645
+ handlerName,
53646
+ handler: new HandlerClass(this.getters, this.model.dispatch),
53647
+ };
53648
+ });
53649
+ }
53549
53650
  copyFormats() {
53550
53651
  const sheetId = this.getters.getActiveSheetId();
53551
53652
  const zones = this.getters.getSelectedZones();
53552
- const copiedData = {};
53553
- for (const handler of this.clipboardHandlers) {
53554
- Object.assign(copiedData, handler.copy(getClipboardDataPositions(sheetId, zones), false));
53653
+ const copiedData = { zones, sheetId };
53654
+ for (const { handlerName, handler } of this.clipboardHandlers) {
53655
+ const handlerResult = handler.copy(getClipboardDataPositions(sheetId, zones), false);
53656
+ if (handlerResult !== undefined) {
53657
+ copiedData[handlerName] = handlerResult;
53658
+ }
53555
53659
  }
53556
53660
  return copiedData;
53557
53661
  }
53558
53662
  paintFormat(sheetId, target) {
53559
- if (this.copiedData) {
53560
- for (const handler of this.clipboardHandlers) {
53561
- handler.paste({ zones: target, sheetId }, this.copiedData, {
53562
- isCutOperation: false,
53563
- pasteOption: "onlyFormat",
53564
- });
53565
- }
53663
+ if (!this.copiedData) {
53664
+ return;
53566
53665
  }
53666
+ const options = {
53667
+ isCutOperation: false,
53668
+ pasteOption: "onlyFormat",
53669
+ };
53670
+ const { target: pasteTarget, selectedZones } = getPasteTargetFromHandlers(sheetId, target, this.copiedData, this.clipboardHandlers, options);
53671
+ applyClipboardHandlersPaste(this.clipboardHandlers, this.copiedData, pasteTarget, options);
53672
+ selectPastedZone(this.model.selection, target, selectedZones);
53567
53673
  if (this.status === "oneOff") {
53568
53674
  this.cancel();
53569
53675
  }
@@ -53610,12 +53716,8 @@ class HoveredTableStore extends SpreadsheetStore {
53610
53716
  this.row = undefined;
53611
53717
  }
53612
53718
  computeOverlay() {
53613
- if (!this.getters.isDashboard()) {
53614
- return;
53615
- }
53616
53719
  this.overlayColors = new PositionMap();
53617
- const col = this.col;
53618
- const row = this.row;
53720
+ const { col, row } = this;
53619
53721
  if (col === undefined || row === undefined) {
53620
53722
  return;
53621
53723
  }
@@ -53624,9 +53726,16 @@ class HoveredTableStore extends SpreadsheetStore {
53624
53726
  if (!table) {
53625
53727
  return;
53626
53728
  }
53627
- const { left, right } = table.range.zone;
53628
- for (let c = left; c <= right; c++) {
53629
- this.overlayColors.set({ sheetId, col: c, row }, setColorAlpha("#017E84", 0.08));
53729
+ const { left, right, top } = table.range.zone;
53730
+ const isTableHeader = row < top + table.config.numberOfHeaders;
53731
+ const doesTableRowHaveContent = range(left, right + 1).some((col) => {
53732
+ return (!this.getters.isColHidden(sheetId, col) &&
53733
+ this.getters.getEvaluatedCell({ sheetId, col, row }).formattedValue);
53734
+ });
53735
+ if (!isTableHeader && doesTableRowHaveContent) {
53736
+ for (let col = left; col <= right; col++) {
53737
+ this.overlayColors.set({ sheetId, col, row }, TABLE_HOVER_BACKGROUND_COLOR);
53738
+ }
53630
53739
  }
53631
53740
  }
53632
53741
  }
@@ -58973,7 +59082,7 @@ class DataValidationPlugin extends CorePlugin {
58973
59082
  else if (newRule.criterion.type === "isValueInList") {
58974
59083
  newRule.criterion.values = Array.from(new Set(newRule.criterion.values));
58975
59084
  }
58976
- const adaptedRules = this.removeRangesFromRules(sheetId, newRule.ranges, rules);
59085
+ const adaptedRules = this.removeRangesFromRules(sheetId, newRule.ranges, rules, newRule.id);
58977
59086
  const ruleIndex = adaptedRules.findIndex((rule) => rule.id === newRule.id);
58978
59087
  if (ruleIndex !== -1) {
58979
59088
  adaptedRules[ruleIndex] = newRule;
@@ -58983,9 +59092,12 @@ class DataValidationPlugin extends CorePlugin {
58983
59092
  this.history.update("rules", sheetId, [...adaptedRules, newRule]);
58984
59093
  }
58985
59094
  }
58986
- removeRangesFromRules(sheetId, ranges, rules) {
59095
+ removeRangesFromRules(sheetId, ranges, rules, editingRuleId) {
58987
59096
  rules = deepCopy(rules);
58988
59097
  for (const rule of rules) {
59098
+ if (rule.id === editingRuleId) {
59099
+ continue; // Skip the rule being edited to preserve its place in the list
59100
+ }
58989
59101
  rule.ranges = this.getters.recomputeRanges(rule.ranges, ranges);
58990
59102
  }
58991
59103
  return rules.filter((rule) => rule.ranges.length > 0);
@@ -67778,10 +67890,20 @@ function adaptTransform(toTransform, executed) {
67778
67890
  */
67779
67891
  function transformAll(toTransform, executed) {
67780
67892
  let transformedCommands = [...toTransform];
67893
+ const possibleTransformations = new Set(otRegistry.getKeys());
67781
67894
  for (const executedCommand of executed) {
67782
- transformedCommands = transformedCommands
67783
- .map((cmd) => transform(cmd, executedCommand))
67784
- .filter(isDefined);
67895
+ // If the executed command is not in the registry, we skip it
67896
+ // because we know there won't be any transformation impacting the
67897
+ // commands to transform.
67898
+ if (possibleTransformations.has(executedCommand.type)) {
67899
+ transformedCommands = transformedCommands.reduce((acc, cmd) => {
67900
+ const transformed = transform(cmd, executedCommand);
67901
+ if (transformed) {
67902
+ acc.push(transformed);
67903
+ }
67904
+ return acc;
67905
+ }, []);
67906
+ }
67785
67907
  }
67786
67908
  return transformedCommands;
67787
67909
  }
@@ -69483,7 +69605,7 @@ class SheetUIPlugin extends UIPlugin {
69483
69605
  }
69484
69606
  const position = this.getters.getCellPosition(cell.id);
69485
69607
  const colSize = this.getters.getColSize(sheetId, position.col);
69486
- if (cell.isFormula) {
69608
+ if (cell.isFormula || this.getters.getArrayFormulaSpreadingOn(position)) {
69487
69609
  const content = this.getters.getEvaluatedCell(position).formattedValue;
69488
69610
  const evaluatedSize = getCellContentHeight(this.ctx, content, cell?.style, colSize);
69489
69611
  if (evaluatedSize > evaluatedRowSize && evaluatedSize > DEFAULT_CELL_HEIGHT) {
@@ -70803,49 +70925,17 @@ class ClipboardPlugin extends UIPlugin {
70803
70925
  if (!copiedData) {
70804
70926
  return;
70805
70927
  }
70806
- let zone = undefined;
70807
- let selectedZones = [];
70808
70928
  const sheetId = this.getters.getActiveSheetId();
70809
- let target = {
70810
- sheetId,
70811
- zones,
70812
- };
70813
70929
  const handlers = this.selectClipboardHandlers(copiedData);
70814
- for (const { handlerName, handler } of handlers) {
70815
- const handlerData = copiedData[handlerName];
70816
- if (!handlerData) {
70817
- continue;
70818
- }
70819
- const currentTarget = handler.getPasteTarget(sheetId, zones, handlerData, options);
70820
- if (currentTarget.figureId) {
70821
- target.figureId = currentTarget.figureId;
70822
- }
70823
- for (const targetZone of currentTarget.zones) {
70824
- selectedZones.push(targetZone);
70825
- if (zone === undefined) {
70826
- zone = targetZone;
70827
- continue;
70828
- }
70829
- zone = union(zone, targetZone);
70830
- }
70831
- }
70930
+ const { target, zone, selectedZones } = getPasteTargetFromHandlers(sheetId, zones, copiedData, handlers, options);
70832
70931
  if (zone !== undefined) {
70833
- this.addMissingDimensions(this.getters.getActiveSheetId(), zone.right - zone.left + 1, zone.bottom - zone.top + 1, zone.left, zone.top);
70932
+ this.addMissingDimensions(sheetId, zone.right - zone.left + 1, zone.bottom - zone.top + 1, zone.left, zone.top);
70834
70933
  }
70835
- handlers.forEach(({ handlerName, handler }) => {
70836
- const handlerData = copiedData[handlerName];
70837
- if (handlerData) {
70838
- handler.paste(target, handlerData, options);
70839
- }
70840
- });
70934
+ applyClipboardHandlersPaste(handlers, copiedData, target, options);
70841
70935
  if (!options?.selectTarget) {
70842
70936
  return;
70843
70937
  }
70844
- const selection = zones[0];
70845
- const col = selection.left;
70846
- const row = selection.top;
70847
- this.selection.getBackToDefault();
70848
- this.selection.selectZone({ cell: { col, row }, zone: union(...selectedZones) }, { scrollIntoView: false });
70938
+ selectPastedZone(this.selection, zones, selectedZones);
70849
70939
  }
70850
70940
  /**
70851
70941
  * Add columns and/or rows to ensure that col + width and row + height are still
@@ -80668,6 +80758,6 @@ exports.tokenColors = tokenColors;
80668
80758
  exports.tokenize = tokenize;
80669
80759
 
80670
80760
 
80671
- __info__.version = "18.3.8";
80672
- __info__.date = "2025-06-12T09:51:55.929Z";
80673
- __info__.hash = "32dedd1";
80761
+ __info__.version = "18.3.10";
80762
+ __info__.date = "2025-06-23T15:05:03.747Z";
80763
+ __info__.hash = "748e300";
@@ -2102,13 +2102,6 @@ declare class UIPlugin<State = any> extends BasePlugin<State, Command> {
2102
2102
  drawLayer(ctx: GridRenderingContext, layer: LayerName): void;
2103
2103
  }
2104
2104
 
2105
- type MinimalClipboardData = {
2106
- sheetId?: UID;
2107
- cells?: ClipboardCell[][];
2108
- zones?: Zone[];
2109
- figureId?: UID;
2110
- [key: string]: unknown;
2111
- };
2112
2105
  interface SpreadsheetClipboardData extends MinimalClipboardData {
2113
2106
  version?: string;
2114
2107
  clipboardId?: string;
@@ -2582,6 +2575,13 @@ type ClipboardPasteTarget = {
2582
2575
  zones: Zone[];
2583
2576
  figureId?: UID;
2584
2577
  };
2578
+ type MinimalClipboardData = {
2579
+ sheetId?: UID;
2580
+ cells?: ClipboardCell[][];
2581
+ zones?: Zone[];
2582
+ figureId?: UID;
2583
+ [key: string]: unknown;
2584
+ };
2585
2585
 
2586
2586
  /**
2587
2587
  * There are two kinds of commands: CoreCommands and LocalCommands
@@ -12595,4 +12595,4 @@ declare const chartHelpers: {
12595
12595
  WaterfallChart: typeof WaterfallChart;
12596
12596
  };
12597
12597
 
12598
- export { AST, ASTFuncall, AboveAverageRule, AbstractCellClipboardHandler, AbstractChart, AbstractFigureClipboardHandler, ActivateNextSheetCommand, ActivatePreviousSheetCommand, ActivateSheetCommand, AddColumnsRowsCommand, AddConditionalFormatCommand, AddDataValidationCommand, AddFunctionDescription, AddMergeCommand, AddPivotCommand, Aggregator, Alias, Align, AlphanumericIncrementModifier, AnchorOffset, AnchorZone, ApplyRangeChange, ApplyRangeChangeResult, Arg, ArgDefinition, ArgType, AutoFillCellCommand, AutofillAutoCommand, AutofillCellData, AutofillCommand, AutofillData, AutofillModifier, AutofillModifierImplementation, AutofillResult, AutofillSelectCommand, AutofillTableCommand, AutoresizeColumnsCommand, AutoresizeRowsCommand, AxesDesign, AxisDesign, AxisType, BeginsWithRule, BooleanCell, Border$1 as Border, BorderData, BorderDescr, BorderPosition, BorderStyle, Box, BoxTextContent, CHART_TYPES, CSSProperties, CancelledReason, Cell, CellErrorType, CellIsRule, CellPosition, CellValue, CellValueType, ChangeType, ChartAxisFormats, ChartCreationContext, ChartDefinition, ChartJSRuntime, ChartRuntime, ChartRuntimeGenerationArgs, ChartStyle, ChartType, ChartWithAxisDefinition, ChartWithDataSetDefinition, CleanClipBoardHighlightCommand, ClearCellCommand, ClearCellsCommand, ClearFormattingCommand, Client, ClientId, ClientJoinedMessage, ClientLeftMessage, ClientMovedMessage, ClientPosition, ClipboardCell, ClipboardCellData, ClipboardData, ClipboardFigureData, ClipboardMIMEType, ClipboardOperation, ClipboardOptions, ClipboardPasteOptions, ClipboardPasteTarget, Cloneable, CollaborationMessage, CollaborativeEvent, CollaborativeEventReceived, CollaborativeEventTypes, Color, ColorScaleMidPointThreshold, ColorScaleRule, ColorScaleThreshold, ColorSheetCommand, Command, CommandDispatcher, CommandHandler, CommandResult, CommandTypes, CommonPivotCoreDefinition, CompiledFormula, ComposerFocusType, ComputeFunction, ComputedTableStyle, ConditionalFormat, ConditionalFormatInternal, ConditionalFormatRule, ConditionalFormatRuleInternal, ConditionalFormattingOperatorValues, ConsecutiveIndexes, ContainsTextRule, CopyCommand, CopyModifier, CopyPasteCellsAboveCommand, CopyPasteCellsOnLeftCommand, CoreCommand, CoreCommandDispatcher, CoreCommandTypes, CoreGetters, CorePlugin, CoreTable, CoreTableType, CoreViewCommand, CoreViewCommandTypes, CoreViewPlugin, CreateChartCommand, CreateFigureCommand, CreateImageOverCommand, CreateRevisionOptions, CreateSheetCommand, CreateTableCommand, CreateTableStyleCommand, Currency, CustomFormulaCriterion, CustomizedDataSet, CutCommand, DEFAULT_LOCALE, DEFAULT_LOCALES, DIRECTION, DOMCoordinates, DOMDimension, DataBarFill, DataBarRule, DataBarRuleInternal, DataSet, DataValidationCriterion, DataValidationCriterionType, DataValidationDateCriterion, DataValidationRule, DataValidationRuleData, DatasetDesign, DatasetValues, DateCriterionValue, DateIncrementModifier, DateIsAfterCriterion, DateIsBeforeCriterion, DateIsBetweenCriterion, DateIsCriterion, DateIsNotBetweenCriterion, DateIsOnOrAfterCriterion, DateIsOnOrBeforeCriterion, DateIsValidCriterion, DebouncedFunction, DeleteCellCommand, DeleteContentCommand, DeleteFigureCommand, DeleteSheetCommand, DeleteUnfilteredContentCommand, Dependencies, Dimension, DimensionTree, DimensionTreeNode, Direction$1 as Direction, DispatchResult, DuplicatePivotCommand, DuplicatePivotInNewSheetCommand, DuplicateSheetCommand, DynamicTable, EdgeScrollInfo, EditTextOptions, EditionMode, EmptyCell, EndsWithRule, EnrichedToken, EnsureRange, ErrorCell, EvalContext, EvaluateCellsCommand, EvaluateChartsCommand, EvaluatedCell, EvaluationError, ExcelChartDataset, ExcelChartDefinition, ExcelChartType, ExcelFigureSize, ExcelFilterData, ExcelHeaderData, ExcelSheetData, ExcelTableData, ExcelWorkbookData, ExpressionRule, Figure, FigureData, FigureInfo, FigureSize, FigureUI, Filter, FilterId, FoldAllHeaderGroupsCommand, FoldHeaderGroupCommand, FoldHeaderGroupsInZoneCommand, Format, FormattedValue, FormulaCell, FormulaModifier, FormulaToExecute, FreezeColumnsCommand, FreezeRowsCommand, FunctionDescription, FunctionRegistry, FunctionResultNumber, FunctionResultObject, GeneratorCell, GenericDefinition, GetSymbolValue, Getters, Granularity, GridClickModifiers, GridRenderingContext, GroupHeadersCommand, HSLA, HeaderData, HeaderDimensions, HeaderGroup, HeaderIndex, HeadersDependentCommand, HideColumnsRowsCommand, HideSheetCommand, Highlight$1 as Highlight, HistoryChange, IconSet, IconSetRule, IconThreshold, Image, Immutable, Increment, IncrementModifier, InformationNotification, InitPivotParams, InsertCellCommand, InsertNewPivotCommand, InsertPivotCommand, InsertPivotWithTableCommand, IsBetweenCriterion, IsCheckboxCriterion, IsEqualCriterion, IsGreaterOrEqualToCriterion, IsGreaterThanCriterion, IsLessOrEqualToCriterion, IsLessThanCriterion, IsNotBetweenCriterion, IsNotEqualCriterion, IsValueInListCriterion, IsValueInRangeCriterion, LabelValues, LayerName, Lazy, Link, LiteralCell, LocalCommand, Locale, LocaleCode, LocaleFormat, LookupCaches, Matrix, Maybe, MenuMouseEvent, Merge, Model, MoveColumnsRowsCommand, MoveConditionalFormatCommand, MoveRangeCommand, MoveSheetCommand, MoveViewportDownCommand, MoveViewportToCellCommand, MoveViewportUpCommand, NewLocalStateUpdateEvent, NotContainsTextRule, NotificationType, NumberCell, OSClipboardContent, Offset, OperationSequenceNode, OrderedLayers, PaintFormat, PaneDivision, ParsedOSClipboardContent, ParsedOsClipboardContentWithImageData, PasteCommand, PasteFromOSClipboardCommand, Pivot, PivotColRowDomain, PivotCoreDefinition, PivotCoreDimension, PivotCoreMeasure, PivotDimension$1 as PivotDimension, PivotDomain, PivotEmptyCell, PivotField, PivotFields, PivotHeaderCell, PivotMeasure, PivotMeasureDisplay, PivotMeasureDisplayType, PivotMeasureHeaderCell, PivotNode, PivotRuntimeDefinition, PivotSortedColumn, PivotStartPresenceTracking, PivotStopPresenceTracking, PivotTableCell, PivotTableColumn, PivotTableData, PivotTableRow, PivotTimeAdapter, PivotTimeAdapterNotNull, PivotValueCell, Pixel, PixelPosition, Position$1 as Position, PositionDependentCommand, PropsOf, RGBA, Range, RangeAdapter$1 as RangeAdapter, RangeCompiledFormula, RangeData, RangePart, RangeProvider, RangeStringOptions, RangesDependentCommand, Rect, RedoCommand, Ref, ReferenceDenormalizer, RefreshPivotCommand, Registry, RemoteRevisionMessage, RemoteRevisionReceivedEvent, RemoveColumnsRowsCommand, RemoveConditionalFormatCommand, RemoveDataValidationCommand, RemoveDuplicatesCommand, RemoveMergeCommand, RemovePivotCommand, RemoveTableCommand, RemoveTableStyleCommand, RenamePivotCommand, RenameSheetCommand, RepeatPasteCommand, ReplaceSearchCommand, RequestRedoCommand, RequestUndoCommand, ResizeColumnsRowsCommand, ResizeDirection, ResizeTableCommand, ResizeViewportCommand, Revision, RevisionAcknowledgedEvent, RevisionData, RevisionRedone, RevisionRedoneMessage, RevisionUndone, RevisionUndoneMessage, Row, SPREADSHEET_DIMENSIONS, ScrollDirection$1 as ScrollDirection, SelectFigureCommand, Selection, SelectionStep, SetBorderCommand, SetBorderTargetCommand, SetContextualFormatCommand, SetDecimalCommand, SetDecimalStep, SetFormattingCommand, SetGridLinesVisibilityCommand, SetViewportOffsetCommand, SetZoneBordersCommand, Sheet, SheetDOMScrollInfo, SheetData, SheetDependentCommand, SheetEditingCommand, ShowFormulaCommand, ShowSheetCommand, SingleColorRule, SingleColorRules, SnapshotEvent, SortCommand, SortDirection, SortOptions, SplitPivotFormulaCommand, SplitTextIntoColumnsCommand, Spreadsheet, SpreadsheetChildEnv, SpreadsheetPivotCoreDefinition, SpreadsheetPivotTable, StartChangeHighlightCommand, StartCommand, StaticTable, StoreConstructor, StoreParams, Style, SumSelectionCommand, Table, TableBorder, TableConfig, TableData$1 as TableData, TableElementStyle, TableId, TableStyle, TableStyleData, TableStyleTemplateName, TargetDependentCommand, TechnicalName, TextCell, TextContainsCriterion, TextIsCriterion, TextIsEmailCriterion, TextIsLinkCriterion, TextNotContainsCriterion, TextRule, ThresholdType, TimePeriodRule, TitleDesign, Token, Tooltip, Top10Rule, Transformation, TransformationFactory, TransportService, TrendConfiguration, TrendType, TrimWhitespaceCommand, UID, UIPlugin, UnGroupHeadersCommand, UnboundedZone, UndoCommand, UnexpectedRevisionIdEvent, UnfoldAllHeaderGroupsCommand, UnfoldHeaderGroupCommand, UnfoldHeaderGroupsInZoneCommand, UnfreezeColumnsCommand, UnfreezeColumnsRowsCommand, UnfreezeRowsCommand, UnhideColumnsRowsCommand, UpdateCellCommand, UpdateCellData, UpdateCellPositionCommand, UpdateChartCommand, UpdateFigureCommand, UpdateFilterCommand, UpdateLocaleCommand, UpdatePivotCommand, UpdateTableCommand, Validation, VerticalAlign, Viewport, WorkbookData, WorkbookHistory, Wrapping, Zone, ZoneDependentCommand, ZoneDimension, __info__, addFunction, addRenderingLayer, astToFormula, borderStyles, canExecuteInReadonly, chartHelpers, compile, compileTokens, components, constants, containsBlanksRule, containsErrorsRule, convertAstNodes, coreTypes, findCellInNewZone, functionCache, helpers, hooks, invalidateBordersCommands, invalidateCFEvaluationCommands, invalidateChartEvaluationCommands, invalidateDependenciesCommands, invalidateEvaluationCommands, isCoreCommand, isHeadersDependant, isMatrix, isPositionDependent, isRangeDependant, isSheetDependent, isTargetDependent, isZoneDependent, iterateAstNodes, links, load, notContainsBlanksRule, notContainsErrorsRule, parse, parseTokens, readonlyAllowedCommands, registries, setDefaultSheetViewSize, setTranslationMethod, stores, tokenColors, tokenize };
12598
+ export { AST, ASTFuncall, AboveAverageRule, AbstractCellClipboardHandler, AbstractChart, AbstractFigureClipboardHandler, ActivateNextSheetCommand, ActivatePreviousSheetCommand, ActivateSheetCommand, AddColumnsRowsCommand, AddConditionalFormatCommand, AddDataValidationCommand, AddFunctionDescription, AddMergeCommand, AddPivotCommand, Aggregator, Alias, Align, AlphanumericIncrementModifier, AnchorOffset, AnchorZone, ApplyRangeChange, ApplyRangeChangeResult, Arg, ArgDefinition, ArgType, AutoFillCellCommand, AutofillAutoCommand, AutofillCellData, AutofillCommand, AutofillData, AutofillModifier, AutofillModifierImplementation, AutofillResult, AutofillSelectCommand, AutofillTableCommand, AutoresizeColumnsCommand, AutoresizeRowsCommand, AxesDesign, AxisDesign, AxisType, BeginsWithRule, BooleanCell, Border$1 as Border, BorderData, BorderDescr, BorderPosition, BorderStyle, Box, BoxTextContent, CHART_TYPES, CSSProperties, CancelledReason, Cell, CellErrorType, CellIsRule, CellPosition, CellValue, CellValueType, ChangeType, ChartAxisFormats, ChartCreationContext, ChartDefinition, ChartJSRuntime, ChartRuntime, ChartRuntimeGenerationArgs, ChartStyle, ChartType, ChartWithAxisDefinition, ChartWithDataSetDefinition, CleanClipBoardHighlightCommand, ClearCellCommand, ClearCellsCommand, ClearFormattingCommand, Client, ClientId, ClientJoinedMessage, ClientLeftMessage, ClientMovedMessage, ClientPosition, ClipboardCell, ClipboardCellData, ClipboardData, ClipboardFigureData, ClipboardMIMEType, ClipboardOperation, ClipboardOptions, ClipboardPasteOptions, ClipboardPasteTarget, Cloneable, CollaborationMessage, CollaborativeEvent, CollaborativeEventReceived, CollaborativeEventTypes, Color, ColorScaleMidPointThreshold, ColorScaleRule, ColorScaleThreshold, ColorSheetCommand, Command, CommandDispatcher, CommandHandler, CommandResult, CommandTypes, CommonPivotCoreDefinition, CompiledFormula, ComposerFocusType, ComputeFunction, ComputedTableStyle, ConditionalFormat, ConditionalFormatInternal, ConditionalFormatRule, ConditionalFormatRuleInternal, ConditionalFormattingOperatorValues, ConsecutiveIndexes, ContainsTextRule, CopyCommand, CopyModifier, CopyPasteCellsAboveCommand, CopyPasteCellsOnLeftCommand, CoreCommand, CoreCommandDispatcher, CoreCommandTypes, CoreGetters, CorePlugin, CoreTable, CoreTableType, CoreViewCommand, CoreViewCommandTypes, CoreViewPlugin, CreateChartCommand, CreateFigureCommand, CreateImageOverCommand, CreateRevisionOptions, CreateSheetCommand, CreateTableCommand, CreateTableStyleCommand, Currency, CustomFormulaCriterion, CustomizedDataSet, CutCommand, DEFAULT_LOCALE, DEFAULT_LOCALES, DIRECTION, DOMCoordinates, DOMDimension, DataBarFill, DataBarRule, DataBarRuleInternal, DataSet, DataValidationCriterion, DataValidationCriterionType, DataValidationDateCriterion, DataValidationRule, DataValidationRuleData, DatasetDesign, DatasetValues, DateCriterionValue, DateIncrementModifier, DateIsAfterCriterion, DateIsBeforeCriterion, DateIsBetweenCriterion, DateIsCriterion, DateIsNotBetweenCriterion, DateIsOnOrAfterCriterion, DateIsOnOrBeforeCriterion, DateIsValidCriterion, DebouncedFunction, DeleteCellCommand, DeleteContentCommand, DeleteFigureCommand, DeleteSheetCommand, DeleteUnfilteredContentCommand, Dependencies, Dimension, DimensionTree, DimensionTreeNode, Direction$1 as Direction, DispatchResult, DuplicatePivotCommand, DuplicatePivotInNewSheetCommand, DuplicateSheetCommand, DynamicTable, EdgeScrollInfo, EditTextOptions, EditionMode, EmptyCell, EndsWithRule, EnrichedToken, EnsureRange, ErrorCell, EvalContext, EvaluateCellsCommand, EvaluateChartsCommand, EvaluatedCell, EvaluationError, ExcelChartDataset, ExcelChartDefinition, ExcelChartType, ExcelFigureSize, ExcelFilterData, ExcelHeaderData, ExcelSheetData, ExcelTableData, ExcelWorkbookData, ExpressionRule, Figure, FigureData, FigureInfo, FigureSize, FigureUI, Filter, FilterId, FoldAllHeaderGroupsCommand, FoldHeaderGroupCommand, FoldHeaderGroupsInZoneCommand, Format, FormattedValue, FormulaCell, FormulaModifier, FormulaToExecute, FreezeColumnsCommand, FreezeRowsCommand, FunctionDescription, FunctionRegistry, FunctionResultNumber, FunctionResultObject, GeneratorCell, GenericDefinition, GetSymbolValue, Getters, Granularity, GridClickModifiers, GridRenderingContext, GroupHeadersCommand, HSLA, HeaderData, HeaderDimensions, HeaderGroup, HeaderIndex, HeadersDependentCommand, HideColumnsRowsCommand, HideSheetCommand, Highlight$1 as Highlight, HistoryChange, IconSet, IconSetRule, IconThreshold, Image, Immutable, Increment, IncrementModifier, InformationNotification, InitPivotParams, InsertCellCommand, InsertNewPivotCommand, InsertPivotCommand, InsertPivotWithTableCommand, IsBetweenCriterion, IsCheckboxCriterion, IsEqualCriterion, IsGreaterOrEqualToCriterion, IsGreaterThanCriterion, IsLessOrEqualToCriterion, IsLessThanCriterion, IsNotBetweenCriterion, IsNotEqualCriterion, IsValueInListCriterion, IsValueInRangeCriterion, LabelValues, LayerName, Lazy, Link, LiteralCell, LocalCommand, Locale, LocaleCode, LocaleFormat, LookupCaches, Matrix, Maybe, MenuMouseEvent, Merge, MinimalClipboardData, Model, MoveColumnsRowsCommand, MoveConditionalFormatCommand, MoveRangeCommand, MoveSheetCommand, MoveViewportDownCommand, MoveViewportToCellCommand, MoveViewportUpCommand, NewLocalStateUpdateEvent, NotContainsTextRule, NotificationType, NumberCell, OSClipboardContent, Offset, OperationSequenceNode, OrderedLayers, PaintFormat, PaneDivision, ParsedOSClipboardContent, ParsedOsClipboardContentWithImageData, PasteCommand, PasteFromOSClipboardCommand, Pivot, PivotColRowDomain, PivotCoreDefinition, PivotCoreDimension, PivotCoreMeasure, PivotDimension$1 as PivotDimension, PivotDomain, PivotEmptyCell, PivotField, PivotFields, PivotHeaderCell, PivotMeasure, PivotMeasureDisplay, PivotMeasureDisplayType, PivotMeasureHeaderCell, PivotNode, PivotRuntimeDefinition, PivotSortedColumn, PivotStartPresenceTracking, PivotStopPresenceTracking, PivotTableCell, PivotTableColumn, PivotTableData, PivotTableRow, PivotTimeAdapter, PivotTimeAdapterNotNull, PivotValueCell, Pixel, PixelPosition, Position$1 as Position, PositionDependentCommand, PropsOf, RGBA, Range, RangeAdapter$1 as RangeAdapter, RangeCompiledFormula, RangeData, RangePart, RangeProvider, RangeStringOptions, RangesDependentCommand, Rect, RedoCommand, Ref, ReferenceDenormalizer, RefreshPivotCommand, Registry, RemoteRevisionMessage, RemoteRevisionReceivedEvent, RemoveColumnsRowsCommand, RemoveConditionalFormatCommand, RemoveDataValidationCommand, RemoveDuplicatesCommand, RemoveMergeCommand, RemovePivotCommand, RemoveTableCommand, RemoveTableStyleCommand, RenamePivotCommand, RenameSheetCommand, RepeatPasteCommand, ReplaceSearchCommand, RequestRedoCommand, RequestUndoCommand, ResizeColumnsRowsCommand, ResizeDirection, ResizeTableCommand, ResizeViewportCommand, Revision, RevisionAcknowledgedEvent, RevisionData, RevisionRedone, RevisionRedoneMessage, RevisionUndone, RevisionUndoneMessage, Row, SPREADSHEET_DIMENSIONS, ScrollDirection$1 as ScrollDirection, SelectFigureCommand, Selection, SelectionStep, SetBorderCommand, SetBorderTargetCommand, SetContextualFormatCommand, SetDecimalCommand, SetDecimalStep, SetFormattingCommand, SetGridLinesVisibilityCommand, SetViewportOffsetCommand, SetZoneBordersCommand, Sheet, SheetDOMScrollInfo, SheetData, SheetDependentCommand, SheetEditingCommand, ShowFormulaCommand, ShowSheetCommand, SingleColorRule, SingleColorRules, SnapshotEvent, SortCommand, SortDirection, SortOptions, SplitPivotFormulaCommand, SplitTextIntoColumnsCommand, Spreadsheet, SpreadsheetChildEnv, SpreadsheetPivotCoreDefinition, SpreadsheetPivotTable, StartChangeHighlightCommand, StartCommand, StaticTable, StoreConstructor, StoreParams, Style, SumSelectionCommand, Table, TableBorder, TableConfig, TableData$1 as TableData, TableElementStyle, TableId, TableStyle, TableStyleData, TableStyleTemplateName, TargetDependentCommand, TechnicalName, TextCell, TextContainsCriterion, TextIsCriterion, TextIsEmailCriterion, TextIsLinkCriterion, TextNotContainsCriterion, TextRule, ThresholdType, TimePeriodRule, TitleDesign, Token, Tooltip, Top10Rule, Transformation, TransformationFactory, TransportService, TrendConfiguration, TrendType, TrimWhitespaceCommand, UID, UIPlugin, UnGroupHeadersCommand, UnboundedZone, UndoCommand, UnexpectedRevisionIdEvent, UnfoldAllHeaderGroupsCommand, UnfoldHeaderGroupCommand, UnfoldHeaderGroupsInZoneCommand, UnfreezeColumnsCommand, UnfreezeColumnsRowsCommand, UnfreezeRowsCommand, UnhideColumnsRowsCommand, UpdateCellCommand, UpdateCellData, UpdateCellPositionCommand, UpdateChartCommand, UpdateFigureCommand, UpdateFilterCommand, UpdateLocaleCommand, UpdatePivotCommand, UpdateTableCommand, Validation, VerticalAlign, Viewport, WorkbookData, WorkbookHistory, Wrapping, Zone, ZoneDependentCommand, ZoneDimension, __info__, addFunction, addRenderingLayer, astToFormula, borderStyles, canExecuteInReadonly, chartHelpers, compile, compileTokens, components, constants, containsBlanksRule, containsErrorsRule, convertAstNodes, coreTypes, findCellInNewZone, functionCache, helpers, hooks, invalidateBordersCommands, invalidateCFEvaluationCommands, invalidateChartEvaluationCommands, invalidateDependenciesCommands, invalidateEvaluationCommands, isCoreCommand, isHeadersDependant, isMatrix, isPositionDependent, isRangeDependant, isSheetDependent, isTargetDependent, isZoneDependent, iterateAstNodes, links, load, notContainsBlanksRule, notContainsErrorsRule, parse, parseTokens, readonlyAllowedCommands, registries, setDefaultSheetViewSize, setTranslationMethod, stores, tokenColors, tokenize };