@odoo/o-spreadsheet 18.0.48 → 18.0.50

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.0.48
6
- * @date 2025-11-12T14:15:38.406Z
7
- * @hash d1efb0b
5
+ * @version 18.0.50
6
+ * @date 2025-12-02T05:32:00.480Z
7
+ * @hash 7ed20c4
8
8
  */
9
9
 
10
10
  'use strict';
@@ -3272,7 +3272,6 @@ const invalidateEvaluationCommands = new Set([
3272
3272
  "REDO",
3273
3273
  "ADD_MERGE",
3274
3274
  "REMOVE_MERGE",
3275
- "DUPLICATE_SHEET",
3276
3275
  "UPDATE_LOCALE",
3277
3276
  "ADD_PIVOT",
3278
3277
  "UPDATE_PIVOT",
@@ -28373,7 +28372,6 @@ class Composer extends owl.Component {
28373
28372
  return;
28374
28373
  }
28375
28374
  const newSelection = this.contentHelper.getCurrentSelection();
28376
- this.props.composerStore.stopComposerRangeSelection();
28377
28375
  this.props.onComposerContentFocused();
28378
28376
  this.props.composerStore.changeComposerCursorSelection(newSelection.start, newSelection.end);
28379
28377
  this.processTokenAtCursor();
@@ -28656,7 +28654,6 @@ function insertTokenAfterArgSeparator(tokenAtCursor, value) {
28656
28654
  // replace the whole token
28657
28655
  start = tokenAtCursor.start;
28658
28656
  }
28659
- this.composer.stopComposerRangeSelection();
28660
28657
  this.composer.changeComposerCursorSelection(start, end);
28661
28658
  this.composer.replaceComposerCursorSelection(value);
28662
28659
  }
@@ -28674,7 +28671,6 @@ function insertTokenAfterLeftParenthesis(tokenAtCursor, value) {
28674
28671
  // replace the whole token
28675
28672
  start = tokenAtCursor.start;
28676
28673
  }
28677
- this.composer.stopComposerRangeSelection();
28678
28674
  this.composer.changeComposerCursorSelection(start, end);
28679
28675
  this.composer.replaceComposerCursorSelection(value);
28680
28676
  }
@@ -31852,7 +31848,6 @@ class ChartFigure extends owl.Component {
31852
31848
  static template = "o-spreadsheet-ChartFigure";
31853
31849
  static props = {
31854
31850
  figure: Object,
31855
- onFigureDeleted: Function,
31856
31851
  };
31857
31852
  static components = {};
31858
31853
  onDoubleClick() {
@@ -31876,7 +31871,6 @@ class ImageFigure extends owl.Component {
31876
31871
  static template = "o-spreadsheet-ImageFigure";
31877
31872
  static props = {
31878
31873
  figure: Object,
31879
- onFigureDeleted: Function,
31880
31874
  };
31881
31875
  static components = {};
31882
31876
  // ---------------------------------------------------------------------------
@@ -31934,7 +31928,7 @@ figureRegistry.add("image", {
31934
31928
  borderWidth: 0,
31935
31929
  menuBuilder: getImageMenuRegistry,
31936
31930
  });
31937
- function getChartMenu(figureId, onFigureDeleted, env) {
31931
+ function getChartMenu(figureId, env) {
31938
31932
  const menuItemSpecs = [
31939
31933
  {
31940
31934
  id: "edit",
@@ -31948,11 +31942,11 @@ function getChartMenu(figureId, onFigureDeleted, env) {
31948
31942
  },
31949
31943
  getCopyMenuItem(figureId, env),
31950
31944
  getCutMenuItem(figureId, env),
31951
- getDeleteMenuItem(figureId, onFigureDeleted, env),
31945
+ getDeleteMenuItem(figureId, env),
31952
31946
  ];
31953
31947
  return createActions(menuItemSpecs);
31954
31948
  }
31955
- function getImageMenuRegistry(figureId, onFigureDeleted, env) {
31949
+ function getImageMenuRegistry(figureId, env) {
31956
31950
  const menuItemSpecs = [
31957
31951
  getCopyMenuItem(figureId, env),
31958
31952
  getCutMenuItem(figureId, env),
@@ -31978,7 +31972,7 @@ function getImageMenuRegistry(figureId, onFigureDeleted, env) {
31978
31972
  },
31979
31973
  icon: "o-spreadsheet-Icon.REFRESH",
31980
31974
  },
31981
- getDeleteMenuItem(figureId, onFigureDeleted, env),
31975
+ getDeleteMenuItem(figureId, env),
31982
31976
  ];
31983
31977
  return createActions(menuItemSpecs);
31984
31978
  }
@@ -32010,7 +32004,7 @@ function getCutMenuItem(figureId, env) {
32010
32004
  icon: "o-spreadsheet-Icon.CUT",
32011
32005
  };
32012
32006
  }
32013
- function getDeleteMenuItem(figureId, onFigureDeleted, env) {
32007
+ function getDeleteMenuItem(figureId, env) {
32014
32008
  return {
32015
32009
  id: "delete",
32016
32010
  name: _t("Delete"),
@@ -32020,7 +32014,6 @@ function getDeleteMenuItem(figureId, onFigureDeleted, env) {
32020
32014
  sheetId: env.model.getters.getActiveSheetId(),
32021
32015
  id: figureId,
32022
32016
  });
32023
- onFigureDeleted();
32024
32017
  },
32025
32018
  icon: "o-spreadsheet-Icon.TRASH",
32026
32019
  };
@@ -39383,6 +39376,7 @@ class AbstractComposerStore extends SpreadsheetStore {
39383
39376
  }
39384
39377
  this.selectionStart = start;
39385
39378
  this.selectionEnd = end;
39379
+ this.stopComposerRangeSelection();
39386
39380
  }
39387
39381
  stopComposerRangeSelection() {
39388
39382
  if (this.isSelectingRange) {
@@ -44992,7 +44986,6 @@ const dateGranularities = [
44992
44986
  pivotRegistry.add("SPREADSHEET", {
44993
44987
  ui: SpreadsheetPivot,
44994
44988
  definition: SpreadsheetPivotRuntimeDefinition,
44995
- externalData: false,
44996
44989
  dateGranularities: [...dateGranularities],
44997
44990
  datetimeGranularities: [...dateGranularities, "hour_number", "minute_number", "second_number"],
44998
44991
  isMeasureCandidate: (field) => !["datetime", "boolean"].includes(field.type),
@@ -46613,13 +46606,11 @@ class FigureComponent extends owl.Component {
46613
46606
  static props = {
46614
46607
  figure: Object,
46615
46608
  style: { type: String, optional: true },
46616
- onFigureDeleted: { type: Function, optional: true },
46617
46609
  onMouseDown: { type: Function, optional: true },
46618
46610
  onClickAnchor: { type: Function, optional: true },
46619
46611
  };
46620
46612
  static components = { Menu };
46621
46613
  static defaultProps = {
46622
- onFigureDeleted: () => { },
46623
46614
  onMouseDown: () => { },
46624
46615
  onClickAnchor: () => { },
46625
46616
  };
@@ -46693,9 +46684,6 @@ class FigureComponent extends owl.Component {
46693
46684
  el?.focus({ preventScroll: true });
46694
46685
  }
46695
46686
  }, () => [this.env.model.getters.getSelectedFigureId(), this.props.figure.id, this.figureRef.el]);
46696
- owl.onWillUnmount(() => {
46697
- this.props.onFigureDeleted();
46698
- });
46699
46687
  }
46700
46688
  clickAnchor(dirX, dirY, ev) {
46701
46689
  this.props.onClickAnchor(dirX, dirY, ev);
@@ -46713,7 +46701,6 @@ class FigureComponent extends owl.Component {
46713
46701
  sheetId: this.env.model.getters.getActiveSheetId(),
46714
46702
  id: figure.id,
46715
46703
  });
46716
- this.props.onFigureDeleted();
46717
46704
  ev.preventDefault();
46718
46705
  ev.stopPropagation();
46719
46706
  break;
@@ -46777,7 +46764,7 @@ class FigureComponent extends owl.Component {
46777
46764
  this.menuState.position = position;
46778
46765
  this.menuState.menuItems = figureRegistry
46779
46766
  .get(this.props.figure.tag)
46780
- .menuBuilder(this.props.figure.id, this.props.onFigureDeleted, this.env);
46767
+ .menuBuilder(this.props.figure.id, this.env);
46781
46768
  }
46782
46769
  }
46783
46770
 
@@ -47977,9 +47964,7 @@ css /*SCSS*/ `
47977
47964
  */
47978
47965
  class FiguresContainer extends owl.Component {
47979
47966
  static template = "o-spreadsheet-FiguresContainer";
47980
- static props = {
47981
- onFigureDeleted: Function,
47982
- };
47967
+ static props = {};
47983
47968
  static components = { FigureComponent };
47984
47969
  dnd = owl.useState({
47985
47970
  draggedFigure: undefined,
@@ -48336,16 +48321,16 @@ css /* scss */ `
48336
48321
  `;
48337
48322
  class GridAddRowsFooter extends owl.Component {
48338
48323
  static template = "o-spreadsheet-GridAddRowsFooter";
48339
- static props = {
48340
- focusGrid: Function,
48341
- };
48324
+ static props = {};
48342
48325
  static components = { ValidationMessages };
48326
+ DOMFocusableElementStore;
48343
48327
  inputRef = owl.useRef("inputRef");
48344
48328
  state = owl.useState({
48345
48329
  inputValue: "100",
48346
48330
  errorFlag: false,
48347
48331
  });
48348
48332
  setup() {
48333
+ this.DOMFocusableElementStore = useStore(DOMFocusableElementStore);
48349
48334
  owl.useExternalListener(window, "click", this.onExternalClick, { capture: true });
48350
48335
  }
48351
48336
  get addRowsPosition() {
@@ -48363,7 +48348,7 @@ class GridAddRowsFooter extends owl.Component {
48363
48348
  }
48364
48349
  onKeydown(ev) {
48365
48350
  if (ev.key.toUpperCase() === "ESCAPE") {
48366
- this.props.focusGrid();
48351
+ this.focusDefaultElement();
48367
48352
  }
48368
48353
  else if (ev.key.toUpperCase() === "ENTER") {
48369
48354
  this.onConfirm();
@@ -48389,7 +48374,7 @@ class GridAddRowsFooter extends owl.Component {
48389
48374
  quantity,
48390
48375
  dimension: "ROW",
48391
48376
  });
48392
- this.props.focusGrid();
48377
+ this.focusDefaultElement();
48393
48378
  // After adding new rows, scroll down to the new last row
48394
48379
  const { scrollX } = this.env.model.getters.getActiveSheetDOMScrollInfo();
48395
48380
  const { end } = this.env.model.getters.getRowDimensions(activeSheetId, rowNumber + quantity - 1);
@@ -48402,7 +48387,12 @@ class GridAddRowsFooter extends owl.Component {
48402
48387
  if (this.inputRef.el !== document.activeElement || ev.target === this.inputRef.el) {
48403
48388
  return;
48404
48389
  }
48405
- this.props.focusGrid();
48390
+ this.focusDefaultElement();
48391
+ }
48392
+ focusDefaultElement() {
48393
+ if (document.activeElement === this.inputRef.el) {
48394
+ this.DOMFocusableElementStore.focus();
48395
+ }
48406
48396
  }
48407
48397
  }
48408
48398
 
@@ -48591,7 +48581,6 @@ class GridOverlay extends owl.Component {
48591
48581
  onCellClicked: { type: Function, optional: true },
48592
48582
  onCellRightClicked: { type: Function, optional: true },
48593
48583
  onGridResized: { type: Function, optional: true },
48594
- onFigureDeleted: { type: Function, optional: true },
48595
48584
  onGridMoved: Function,
48596
48585
  gridOverlayDimensions: String,
48597
48586
  };
@@ -48607,7 +48596,6 @@ class GridOverlay extends owl.Component {
48607
48596
  onCellClicked: () => { },
48608
48597
  onCellRightClicked: () => { },
48609
48598
  onGridResized: () => { },
48610
- onFigureDeleted: () => { },
48611
48599
  };
48612
48600
  gridOverlay = owl.useRef("gridOverlay");
48613
48601
  gridOverlayRect = useAbsoluteBoundingRect(this.gridOverlay);
@@ -48768,7 +48756,10 @@ class AbstractResizer extends owl.Component {
48768
48756
  this.state.waitingForMove = false;
48769
48757
  }
48770
48758
  onMouseMove(ev) {
48771
- if (this.state.isResizing || this.state.isMoving || this.state.isSelecting) {
48759
+ if (this.env.model.getters.isReadonly() ||
48760
+ this.state.isResizing ||
48761
+ this.state.isMoving ||
48762
+ this.state.isSelecting) {
48772
48763
  return;
48773
48764
  }
48774
48765
  this._computeHandleDisplay(ev);
@@ -48821,6 +48812,10 @@ class AbstractResizer extends owl.Component {
48821
48812
  if (index < 0) {
48822
48813
  return;
48823
48814
  }
48815
+ if (this.env.model.getters.isReadonly()) {
48816
+ this._selectElement(index, false);
48817
+ return;
48818
+ }
48824
48819
  if (this.state.waitingForMove === true) {
48825
48820
  if (!this.env.model.getters.isGridSelectionActive()) {
48826
48821
  this._selectElement(index, false);
@@ -50463,24 +50458,24 @@ const DEFAULT_SIDE_PANEL_SIZE = 350;
50463
50458
  const MIN_SHEET_VIEW_WIDTH = 150;
50464
50459
  class SidePanelStore extends SpreadsheetStore {
50465
50460
  mutators = ["open", "toggle", "close", "changePanelSize", "resetPanelSize"];
50466
- initialPanelProps = {};
50461
+ currentPanelProps = {};
50467
50462
  componentTag = "";
50468
50463
  panelSize = DEFAULT_SIDE_PANEL_SIZE;
50469
50464
  get isOpen() {
50470
50465
  if (!this.componentTag) {
50471
50466
  return false;
50472
50467
  }
50473
- return this.computeState(this.componentTag, this.initialPanelProps).isOpen;
50468
+ return this.computeState(this.componentTag, this.currentPanelProps).isOpen;
50474
50469
  }
50475
50470
  get panelProps() {
50476
- const state = this.computeState(this.componentTag, this.initialPanelProps);
50471
+ const state = this.computeState(this.componentTag, this.currentPanelProps);
50477
50472
  if (state.isOpen) {
50478
50473
  return state.props ?? {};
50479
50474
  }
50480
50475
  return {};
50481
50476
  }
50482
50477
  get panelKey() {
50483
- const state = this.computeState(this.componentTag, this.initialPanelProps);
50478
+ const state = this.computeState(this.componentTag, this.currentPanelProps);
50484
50479
  if (state.isOpen) {
50485
50480
  return state.key;
50486
50481
  }
@@ -50492,10 +50487,10 @@ class SidePanelStore extends SpreadsheetStore {
50492
50487
  return;
50493
50488
  }
50494
50489
  if (this.isOpen && componentTag !== this.componentTag) {
50495
- this.initialPanelProps?.onCloseSidePanel?.();
50490
+ this.currentPanelProps?.onCloseSidePanel?.();
50496
50491
  }
50497
50492
  this.componentTag = componentTag;
50498
- this.initialPanelProps = state.props ?? {};
50493
+ this.currentPanelProps = state.props ?? {};
50499
50494
  }
50500
50495
  toggle(componentTag, panelProps) {
50501
50496
  if (this.isOpen && componentTag === this.componentTag) {
@@ -50506,8 +50501,8 @@ class SidePanelStore extends SpreadsheetStore {
50506
50501
  }
50507
50502
  }
50508
50503
  close() {
50509
- this.initialPanelProps.onCloseSidePanel?.();
50510
- this.initialPanelProps = {};
50504
+ this.currentPanelProps.onCloseSidePanel?.();
50505
+ this.currentPanelProps = {};
50511
50506
  this.componentTag = "";
50512
50507
  }
50513
50508
  changePanelSize(size, spreadsheetElWidth) {
@@ -50533,7 +50528,11 @@ class SidePanelStore extends SpreadsheetStore {
50533
50528
  };
50534
50529
  }
50535
50530
  else {
50536
- return customComputeState(this.getters, panelProps);
50531
+ const state = customComputeState(this.getters, panelProps);
50532
+ if (state.isOpen) {
50533
+ this.currentPanelProps = state.props ?? this.currentPanelProps;
50534
+ }
50535
+ return state;
50537
50536
  }
50538
50537
  }
50539
50538
  }
@@ -57388,10 +57387,17 @@ class PivotCorePlugin extends CorePlugin {
57388
57387
  if (!pivot) {
57389
57388
  continue;
57390
57389
  }
57391
- for (const measure of pivot.definition.measures) {
57390
+ const def = deepCopy(pivot.definition);
57391
+ for (const measure of def.measures) {
57392
57392
  if (measure.computedBy?.formula === formulaString) {
57393
- const measureIndex = pivot.definition.measures.indexOf(measure);
57394
- this.history.update("pivots", pivotId, "definition", "measures", measureIndex, "computedBy", { formula: newFormulaString, sheetId });
57393
+ const measureIndex = def.measures.indexOf(measure);
57394
+ if (measureIndex !== -1) {
57395
+ def.measures[measureIndex].computedBy = {
57396
+ formula: newFormulaString,
57397
+ sheetId,
57398
+ };
57399
+ }
57400
+ this.dispatch("UPDATE_PIVOT", { pivotId, pivot: def });
57395
57401
  }
57396
57402
  }
57397
57403
  }
@@ -57524,6 +57530,9 @@ class SpreadsheetPivotCorePlugin extends CorePlugin {
57524
57530
  const { sheetId, zone } = definition.dataSet;
57525
57531
  const range = this.getters.getRangeFromZone(sheetId, zone);
57526
57532
  const adaptedRange = adaptPivotRange(range, applyChange);
57533
+ if (adaptedRange === range) {
57534
+ return;
57535
+ }
57527
57536
  const dataSet = adaptedRange && {
57528
57537
  sheetId: adaptedRange.sheetId,
57529
57538
  zone: adaptedRange.zone,
@@ -61279,9 +61288,7 @@ class PivotUIPlugin extends UIPlugin {
61279
61288
  handle(cmd) {
61280
61289
  if (invalidateEvaluationCommands.has(cmd.type)) {
61281
61290
  for (const pivotId of this.getters.getPivotIds()) {
61282
- if (!pivotRegistry.get(this.getters.getPivotCoreDefinition(pivotId).type).externalData) {
61283
- this.setupPivot(pivotId, { recreate: true });
61284
- }
61291
+ this.setupPivot(pivotId, { recreate: true });
61285
61292
  }
61286
61293
  }
61287
61294
  switch (cmd.type) {
@@ -61486,7 +61493,7 @@ class PivotUIPlugin extends UIPlugin {
61486
61493
  pivot.init({ reload: true });
61487
61494
  }
61488
61495
  setupPivot(pivotId, { recreate } = { recreate: false }) {
61489
- const definition = this.getters.getPivotCoreDefinition(pivotId);
61496
+ const definition = deepCopy(this.getters.getPivotCoreDefinition(pivotId));
61490
61497
  if (!(pivotId in this.pivots)) {
61491
61498
  const Pivot = withPivotPresentationLayer(pivotRegistry.get(definition.type).ui);
61492
61499
  this.pivots[pivotId] = new Pivot(this.custom, { definition, getters: this.getters });
@@ -70280,7 +70287,7 @@ class Spreadsheet extends owl.Component {
70280
70287
  document.activeElement?.contains(this.spreadsheetRef.el)) {
70281
70288
  this.focusGrid();
70282
70289
  }
70283
- }, () => [this.env.model.getters.getActiveSheetId()]);
70290
+ });
70284
70291
  owl.useExternalListener(window, "resize", () => this.render(true));
70285
70292
  // For some reason, the wheel event is not properly registered inside templates
70286
70293
  // in Chromium-based browsers based on chromium 125
@@ -74763,6 +74770,6 @@ exports.tokenColors = tokenColors;
74763
74770
  exports.tokenize = tokenize;
74764
74771
 
74765
74772
 
74766
- __info__.version = "18.0.48";
74767
- __info__.date = "2025-11-12T14:15:38.406Z";
74768
- __info__.hash = "d1efb0b";
74773
+ __info__.version = "18.0.50";
74774
+ __info__.date = "2025-12-02T05:32:00.480Z";
74775
+ __info__.hash = "7ed20c4";
@@ -6189,7 +6189,6 @@ type PivotDefinitionConstructor = new (definition: PivotCoreDefinition, fields:
6189
6189
  interface PivotRegistryItem {
6190
6190
  ui: PivotUIConstructor;
6191
6191
  definition: PivotDefinitionConstructor;
6192
- externalData: boolean;
6193
6192
  dateGranularities: string[];
6194
6193
  datetimeGranularities: string[];
6195
6194
  isMeasureCandidate: (field: PivotField) => boolean;
@@ -7705,7 +7704,7 @@ interface ChartSidePanel {
7705
7704
  */
7706
7705
  interface FigureContent {
7707
7706
  Component: any;
7708
- menuBuilder: (figureId: UID, onFigureDeleted: () => void, env: SpreadsheetChildEnv) => Action[];
7707
+ menuBuilder: (figureId: UID, env: SpreadsheetChildEnv) => Action[];
7709
7708
  SidePanelComponent?: string;
7710
7709
  keepRatio?: boolean;
7711
7710
  minFigSize?: number;
@@ -7727,7 +7726,7 @@ interface ClosedSidePanel {
7727
7726
  type SidePanelState = OpenSidePanel | ClosedSidePanel;
7728
7727
  declare class SidePanelStore extends SpreadsheetStore {
7729
7728
  mutators: readonly ["open", "toggle", "close", "changePanelSize", "resetPanelSize"];
7730
- initialPanelProps: SidePanelProps;
7729
+ currentPanelProps: SidePanelProps;
7731
7730
  componentTag: string;
7732
7731
  panelSize: number;
7733
7732
  get isOpen(): boolean;
@@ -8432,7 +8431,6 @@ type ResizeAnchor = "top left" | "top" | "top right" | "right" | "bottom right"
8432
8431
  interface Props$K {
8433
8432
  figure: Figure;
8434
8433
  style: string;
8435
- onFigureDeleted: () => void;
8436
8434
  onMouseDown: (ev: MouseEvent) => void;
8437
8435
  onClickAnchor(dirX: ResizeDirection, dirY: ResizeDirection, ev: MouseEvent): void;
8438
8436
  }
@@ -8444,10 +8442,6 @@ declare class FigureComponent extends Component<Props$K, SpreadsheetChildEnv> {
8444
8442
  type: StringConstructor;
8445
8443
  optional: boolean;
8446
8444
  };
8447
- onFigureDeleted: {
8448
- type: FunctionConstructor;
8449
- optional: boolean;
8450
- };
8451
8445
  onMouseDown: {
8452
8446
  type: FunctionConstructor;
8453
8447
  optional: boolean;
@@ -8461,7 +8455,6 @@ declare class FigureComponent extends Component<Props$K, SpreadsheetChildEnv> {
8461
8455
  Menu: typeof Menu;
8462
8456
  };
8463
8457
  static defaultProps: {
8464
- onFigureDeleted: () => void;
8465
8458
  onMouseDown: () => void;
8466
8459
  onClickAnchor: () => void;
8467
8460
  };
@@ -8487,13 +8480,11 @@ declare class FigureComponent extends Component<Props$K, SpreadsheetChildEnv> {
8487
8480
 
8488
8481
  interface Props$J {
8489
8482
  figure: Figure;
8490
- onFigureDeleted: () => void;
8491
8483
  }
8492
8484
  declare class ChartFigure extends Component<Props$J, SpreadsheetChildEnv> {
8493
8485
  static template: string;
8494
8486
  static props: {
8495
8487
  figure: ObjectConstructor;
8496
- onFigureDeleted: FunctionConstructor;
8497
8488
  };
8498
8489
  static components: {};
8499
8490
  onDoubleClick(): void;
@@ -8664,7 +8655,6 @@ interface SnapLine<T extends HFigureAxisType | VFigureAxisType> {
8664
8655
 
8665
8656
  type ContainerType = "topLeft" | "topRight" | "bottomLeft" | "bottomRight" | "dnd";
8666
8657
  interface Props$E {
8667
- onFigureDeleted: () => void;
8668
8658
  }
8669
8659
  interface Container {
8670
8660
  type: ContainerType;
@@ -8745,9 +8735,7 @@ interface DndState {
8745
8735
  */
8746
8736
  declare class FiguresContainer extends Component<Props$E, SpreadsheetChildEnv> {
8747
8737
  static template: string;
8748
- static props: {
8749
- onFigureDeleted: FunctionConstructor;
8750
- };
8738
+ static props: {};
8751
8739
  static components: {
8752
8740
  FigureComponent: typeof FigureComponent;
8753
8741
  };
@@ -8824,16 +8812,14 @@ declare class FilterIconsOverlay extends Component<{}, SpreadsheetChildEnv> {
8824
8812
  }
8825
8813
 
8826
8814
  interface Props$C {
8827
- focusGrid: () => void;
8828
8815
  }
8829
8816
  declare class GridAddRowsFooter extends Component<Props$C, SpreadsheetChildEnv> {
8830
8817
  static template: string;
8831
- static props: {
8832
- focusGrid: FunctionConstructor;
8833
- };
8818
+ static props: {};
8834
8819
  static components: {
8835
8820
  ValidationMessages: typeof ValidationMessages;
8836
8821
  };
8822
+ private DOMFocusableElementStore;
8837
8823
  inputRef: {
8838
8824
  el: HTMLInputElement | null;
8839
8825
  };
@@ -8848,6 +8834,7 @@ declare class GridAddRowsFooter extends Component<Props$C, SpreadsheetChildEnv>
8848
8834
  onInput(ev: InputEvent): void;
8849
8835
  onConfirm(): void;
8850
8836
  private onExternalClick;
8837
+ private focusDefaultElement;
8851
8838
  }
8852
8839
 
8853
8840
  interface Props$B {
@@ -8858,7 +8845,6 @@ interface Props$B {
8858
8845
  onGridResized: (dimension: Rect) => void;
8859
8846
  onGridMoved: (deltaX: Pixel, deltaY: Pixel) => void;
8860
8847
  gridOverlayDimensions: string;
8861
- onFigureDeleted: () => void;
8862
8848
  }
8863
8849
  declare class GridOverlay extends Component<Props$B, SpreadsheetChildEnv> {
8864
8850
  static template: string;
@@ -8883,10 +8869,6 @@ declare class GridOverlay extends Component<Props$B, SpreadsheetChildEnv> {
8883
8869
  type: FunctionConstructor;
8884
8870
  optional: boolean;
8885
8871
  };
8886
- onFigureDeleted: {
8887
- type: FunctionConstructor;
8888
- optional: boolean;
8889
- };
8890
8872
  onGridMoved: FunctionConstructor;
8891
8873
  gridOverlayDimensions: StringConstructor;
8892
8874
  };
@@ -8902,7 +8884,6 @@ declare class GridOverlay extends Component<Props$B, SpreadsheetChildEnv> {
8902
8884
  onCellClicked: () => void;
8903
8885
  onCellRightClicked: () => void;
8904
8886
  onGridResized: () => void;
8905
- onFigureDeleted: () => void;
8906
8887
  };
8907
8888
  private gridOverlay;
8908
8889
  private gridOverlayRect;