@odoo/o-spreadsheet 16.5.0-alpha.1 → 16.5.0-alpha.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.
@@ -1,6 +1,6 @@
1
1
  import * as _odoo_owl from '@odoo/owl';
2
2
  import { ComponentConstructor, Component } from '@odoo/owl';
3
- import { ChartConfiguration, ChartData, ChartDataSets, ChartOptions } from 'chart.js';
3
+ import { ChartConfiguration, ChartData, ChartDataset, ChartOptions } from 'chart.js';
4
4
 
5
5
  declare enum CellErrorLevel {
6
6
  silent = 0,
@@ -10,6 +10,7 @@ declare class EvaluationError extends Error {
10
10
  readonly errorType: string;
11
11
  readonly logLevel: number;
12
12
  constructor(errorType: string, message: string, logLevel?: number);
13
+ get isVerbose(): boolean;
13
14
  }
14
15
 
15
16
  declare const functionCache: {
@@ -374,7 +375,7 @@ interface SectionThreshold {
374
375
  }
375
376
  interface GaugeChartConfiguration extends Omit<ChartConfiguration, "data" | "options"> {
376
377
  data?: GaugeChartData;
377
- options?: GaugeChartOptions;
378
+ options: GaugeChartOptions;
378
379
  }
379
380
  interface GaugeChartRuntime {
380
381
  chartJsConfig: GaugeChartConfiguration;
@@ -383,32 +384,40 @@ interface GaugeChartRuntime {
383
384
  interface GaugeChartData extends Omit<ChartData, "datasets"> {
384
385
  datasets: GaugeChartDataSets[];
385
386
  }
386
- interface GaugeChartDataSets extends ChartDataSets {
387
+ interface GaugeChartDataSets extends ChartDataset<"doughnut"> {
387
388
  readonly minValue?: number;
388
389
  readonly value?: number | undefined;
389
390
  readonly backgroundColor?: string[];
390
391
  }
391
392
  interface GaugeChartOptions extends ChartOptions {
392
- needle?: {
393
- radiusPercentage: number;
394
- widthPercentage: number;
395
- lengthPercentage: number;
396
- color: Color;
393
+ needle?: NeedleOptions;
394
+ valueLabel?: ValueLabelOptions;
395
+ }
396
+ interface NeedleOptions {
397
+ display?: boolean;
398
+ borderColor?: Color;
399
+ backgroundColor?: Color;
400
+ /**
401
+ * Needle width as the percentage of the chart area width
402
+ */
403
+ width?: number;
404
+ }
405
+ interface ValueLabelOptions {
406
+ display?: boolean;
407
+ formatter?: (value: any) => string;
408
+ font?: {
409
+ size?: number;
410
+ family?: string;
411
+ color?: Color;
397
412
  };
398
- valueLabel?: {
399
- formatter: (() => string) | null;
400
- display: boolean;
401
- color: Color;
402
- backgroundColor: Color;
403
- borderRadius: number;
404
- fontSize: number;
405
- padding: {
406
- top: number;
407
- right: number;
408
- bottom: number;
409
- left: number;
410
- };
411
- bottomMarginPercentage: number;
413
+ backgroundColor?: Color;
414
+ borderColor?: Color;
415
+ borderRadius?: number;
416
+ padding?: {
417
+ left: number;
418
+ right: number;
419
+ top: number;
420
+ bottom: number;
412
421
  };
413
422
  }
414
423
 
@@ -424,6 +433,7 @@ interface LineChartDefinition {
424
433
  readonly labelsAsText: boolean;
425
434
  readonly stacked: boolean;
426
435
  readonly aggregated?: boolean;
436
+ readonly cumulative: boolean;
427
437
  }
428
438
  type LineChartRuntime = {
429
439
  chartJsConfig: ChartConfiguration;
@@ -490,6 +500,7 @@ interface ExcelChartDefinition {
490
500
  readonly verticalAxisPosition: VerticalAxisPosition;
491
501
  readonly legendPosition: LegendPosition;
492
502
  readonly stacked?: boolean;
503
+ readonly cumulative?: boolean;
493
504
  }
494
505
  interface ChartCreationContext {
495
506
  readonly range?: string[];
@@ -575,7 +586,6 @@ interface IconSetRule {
575
586
  lowerInflectionPoint: IconThreshold;
576
587
  }
577
588
  type ConditionalFormattingOperatorValues = "BeginsWith" | "Between" | "ContainsText" | "IsEmpty" | "IsNotEmpty" | "EndsWith" | "Equal" | "GreaterThan" | "GreaterThanOrEqual" | "LessThan" | "LessThanOrEqual" | "NotBetween" | "NotContains" | "NotEqual";
578
- type UpDown = "up" | "down";
579
589
 
580
590
  interface CellData {
581
591
  content?: string;
@@ -613,10 +623,12 @@ interface SheetData {
613
623
  [key: number]: HeaderData;
614
624
  };
615
625
  conditionalFormats: ConditionalFormat[];
626
+ dataValidationRules?: DataValidationRuleData[];
616
627
  filterTables: FilterTableData[];
617
628
  areGridLinesVisible?: boolean;
618
629
  isVisible: boolean;
619
630
  panes?: PaneDivision;
631
+ headerGroups?: Record<Dimension, HeaderGroup[]>;
620
632
  }
621
633
  interface WorkbookSettings {
622
634
  locale: Locale;
@@ -661,6 +673,9 @@ interface ExcelSheetData extends Omit<SheetData, "figureTables"> {
661
673
  interface FilterTableData {
662
674
  range: string;
663
675
  }
676
+ interface DataValidationRuleData extends Omit<DataValidationRule, "ranges"> {
677
+ ranges: string[];
678
+ }
664
679
  interface ExcelFilterTableData {
665
680
  range: string;
666
681
  filters: ExcelFilterData[];
@@ -960,7 +975,7 @@ declare class RangeImpl implements Range {
960
975
  constructor(args: ConstructorArgs, getSheetSize: (sheetId: UID) => ZoneDimension);
961
976
  static fromRange(range: Range, getters: CoreGetters): RangeImpl;
962
977
  get unboundedZone(): UnboundedZone;
963
- get zone(): Zone;
978
+ get zone(): Readonly<Zone>;
964
979
  static getRangeParts(xc: string, zone: UnboundedZone): RangePart[];
965
980
  get isFullCol(): boolean;
966
981
  get isFullRow(): boolean;
@@ -1046,10 +1061,10 @@ type StatefulStream<Event, State> = {
1046
1061
  interface SelectionProcessor {
1047
1062
  selectZone(anchor: AnchorZone, options?: SelectionEventOptions): DispatchResult;
1048
1063
  selectCell(col: number, row: number): DispatchResult;
1049
- moveAnchorCell(direction: SelectionDirection, step: SelectionStep): DispatchResult;
1064
+ moveAnchorCell(direction: Direction$1, step: SelectionStep): DispatchResult;
1050
1065
  setAnchorCorner(col: number, row: number): DispatchResult;
1051
1066
  addCellToSelection(col: number, row: number): DispatchResult;
1052
- resizeAnchorZone(direction: SelectionDirection, step: SelectionStep): DispatchResult;
1067
+ resizeAnchorZone(direction: Direction$1, step: SelectionStep): DispatchResult;
1053
1068
  selectColumn(index: number, mode: SelectionEvent["mode"]): DispatchResult;
1054
1069
  selectRow(index: number, mode: SelectionEvent["mode"]): DispatchResult;
1055
1070
  selectAll(): DispatchResult;
@@ -1083,11 +1098,6 @@ interface ImageProviderInterface {
1083
1098
  getImageOriginalSize(path: string): Promise<FigureSize>;
1084
1099
  }
1085
1100
 
1086
- interface NotifyUIEvent {
1087
- type: "ERROR";
1088
- text: string;
1089
- }
1090
-
1091
1101
  /**
1092
1102
  * Model
1093
1103
  *
@@ -1133,7 +1143,8 @@ interface ModelConfig {
1133
1143
  readonly transportService: TransportService;
1134
1144
  readonly client: Client;
1135
1145
  readonly snapshotRequested: boolean;
1136
- readonly notifyUI: (payload: NotifyUIEvent) => void;
1146
+ readonly notifyUI: (payload: InformationNotification) => void;
1147
+ readonly raiseBlockingErrorUI: (text: string) => void;
1137
1148
  }
1138
1149
  interface ModelExternalConfig {
1139
1150
  readonly fileStore?: FileStore;
@@ -1363,7 +1374,7 @@ declare class BasePlugin<State = any, C = any> implements CommandHandler<C>, Val
1363
1374
  checkValidations<T>(command: T, ...validations: Validation<T>[]): CommandResult | CommandResult[];
1364
1375
  }
1365
1376
 
1366
- type UIActions = Pick<ModelConfig, "notifyUI">;
1377
+ type UIActions = Pick<ModelConfig, "notifyUI" | "raiseBlockingErrorUI">;
1367
1378
  interface UIPluginConfig {
1368
1379
  readonly getters: Getters;
1369
1380
  readonly stateObserver: StateObserver;
@@ -1383,7 +1394,7 @@ interface UIPluginConstructor {
1383
1394
  * UI plugins handle any transient data required to display a spreadsheet.
1384
1395
  * They can draw on the grid canvas.
1385
1396
  */
1386
- declare class UIPlugin<State = any, C = Command> extends BasePlugin<State, C> {
1397
+ declare class UIPlugin<State = any> extends BasePlugin<State, Command> {
1387
1398
  static layers: LAYERS[];
1388
1399
  protected getters: Getters;
1389
1400
  protected ui: UIActions;
@@ -1453,6 +1464,7 @@ declare class FindAndReplacePlugin extends UIPlugin {
1453
1464
  */
1454
1465
  private selectNextCell;
1455
1466
  private clearSearch;
1467
+ private replaceMatch;
1456
1468
  /**
1457
1469
  * Replace the value of the currently selected match
1458
1470
  */
@@ -1471,7 +1483,7 @@ interface ComposerSelection {
1471
1483
  end: number;
1472
1484
  }
1473
1485
  declare class EditionPlugin extends UIPlugin {
1474
- static getters: readonly ["getEditionMode", "isSelectingForComposer", "showSelectionIndicator", "getCurrentContent", "getComposerSelection", "getCurrentTokens", "getTokenAtCursor", "getComposerHighlights", "getCurrentEditedCell"];
1486
+ static getters: readonly ["getEditionMode", "isSelectingForComposer", "showSelectionIndicator", "getCurrentContent", "getComposerSelection", "getCurrentTokens", "getTokenAtCursor", "getComposerHighlights", "getCurrentEditedCell", "getCycledReference", "getAutoCompleteDataValidationValues"];
1475
1487
  private col;
1476
1488
  private row;
1477
1489
  private mode;
@@ -1480,10 +1492,7 @@ declare class EditionPlugin extends UIPlugin {
1480
1492
  private currentTokens;
1481
1493
  private selectionStart;
1482
1494
  private selectionEnd;
1483
- private selectionInitialStart;
1484
1495
  private initialContent;
1485
- private previousRef;
1486
- private previousRange;
1487
1496
  private colorIndexByRange;
1488
1497
  allowDispatch(cmd: LocalCommand): CommandResult;
1489
1498
  private handleEvent;
@@ -1499,6 +1508,20 @@ declare class EditionPlugin extends UIPlugin {
1499
1508
  * Return the (enriched) token just before the cursor.
1500
1509
  */
1501
1510
  getTokenAtCursor(): EnrichedToken | undefined;
1511
+ /**
1512
+ * Return the cycled reference if any (A1 -> $A$1 -> A$1 -> $A1 -> A1)
1513
+ */
1514
+ getCycledReference(selection: {
1515
+ start: number;
1516
+ end: number;
1517
+ }, content: string): {
1518
+ content: string;
1519
+ selection: {
1520
+ start: number;
1521
+ end: number;
1522
+ };
1523
+ } | undefined;
1524
+ getInitialComposerContent(): string | undefined;
1502
1525
  private cycleReferences;
1503
1526
  private validateSelection;
1504
1527
  private onColumnsRemoved;
@@ -1516,6 +1539,7 @@ declare class EditionPlugin extends UIPlugin {
1516
1539
  */
1517
1540
  private startEdition;
1518
1541
  private stopEdition;
1542
+ private getCurrentCanonicalContent;
1519
1543
  private cancelEditionAndActivateSheet;
1520
1544
  private getComposerContent;
1521
1545
  private numberComposerContent;
@@ -1529,7 +1553,11 @@ declare class EditionPlugin extends UIPlugin {
1529
1553
  /**
1530
1554
  * Replace the current reference selected by the new one.
1531
1555
  * */
1532
- private replaceSelectedRanges;
1556
+ private replaceSelectedRange;
1557
+ /**
1558
+ * Replace the reference of the old zone by the new one.
1559
+ */
1560
+ private updateComposerRange;
1533
1561
  private getZoneReference;
1534
1562
  private getRangeReference;
1535
1563
  /**
@@ -1552,6 +1580,7 @@ declare class EditionPlugin extends UIPlugin {
1552
1580
  * Return ranges currently referenced in the composer
1553
1581
  */
1554
1582
  getReferencedRanges(): Range[];
1583
+ getAutoCompleteDataValidationValues(): string[];
1555
1584
  /**
1556
1585
  * Function used to determine when composer selection can start.
1557
1586
  * Three conditions are necessary:
@@ -1560,11 +1589,7 @@ declare class EditionPlugin extends UIPlugin {
1560
1589
  * - Previous and next tokens can be separated by spaces
1561
1590
  */
1562
1591
  private canStartComposerRangeSelection;
1563
- /**
1564
- * Return all the tokens between selectionStart and selectionEnd.
1565
- * Includes token that begin right on selectionStart or end right on selectionEnd.
1566
- */
1567
- private getTokensInSelection;
1592
+ private checkDataValidation;
1568
1593
  }
1569
1594
 
1570
1595
  /**
@@ -1663,9 +1688,10 @@ type ClipboardPasteOptions = "onlyFormat" | "onlyValue";
1663
1688
  interface SheetDependentCommand {
1664
1689
  sheetId: UID;
1665
1690
  }
1666
- interface GridDependentCommand {
1691
+ interface HeadersDependentCommand {
1667
1692
  sheetId: UID;
1668
1693
  dimension: Dimension;
1694
+ elements: HeaderIndex[];
1669
1695
  }
1670
1696
  interface TargetDependentCommand {
1671
1697
  sheetId: UID;
@@ -1679,11 +1705,15 @@ interface PositionDependentCommand {
1679
1705
  col: number;
1680
1706
  row: number;
1681
1707
  }
1682
- declare const invalidateEvaluationCommands: Set<"UPDATE_CELL" | "UPDATE_CELL_POSITION" | "CLEAR_CELL" | "DELETE_CONTENT" | "ADD_COLUMNS_ROWS" | "REMOVE_COLUMNS_ROWS" | "RESIZE_COLUMNS_ROWS" | "HIDE_COLUMNS_ROWS" | "UNHIDE_COLUMNS_ROWS" | "SET_GRID_LINES_VISIBILITY" | "FREEZE_COLUMNS" | "FREEZE_ROWS" | "UNFREEZE_COLUMNS_ROWS" | "UNFREEZE_COLUMNS" | "UNFREEZE_ROWS" | "ADD_MERGE" | "REMOVE_MERGE" | "CREATE_SHEET" | "DELETE_SHEET" | "DUPLICATE_SHEET" | "MOVE_SHEET" | "RENAME_SHEET" | "HIDE_SHEET" | "SHOW_SHEET" | "MOVE_RANGES" | "ADD_CONDITIONAL_FORMAT" | "REMOVE_CONDITIONAL_FORMAT" | "MOVE_CONDITIONAL_FORMAT" | "CREATE_FIGURE" | "DELETE_FIGURE" | "UPDATE_FIGURE" | "SET_FORMATTING" | "CLEAR_FORMATTING" | "SET_ZONE_BORDERS" | "SET_BORDER" | "CREATE_CHART" | "UPDATE_CHART" | "CREATE_IMAGE" | "CREATE_FILTER_TABLE" | "REMOVE_FILTER_TABLE" | "UPDATE_LOCALE" | "UNDO" | "REDO" | "EVALUATE_CELLS">;
1683
- declare const invalidateDependenciesCommands: Set<"UPDATE_CELL" | "UPDATE_CELL_POSITION" | "CLEAR_CELL" | "DELETE_CONTENT" | "ADD_COLUMNS_ROWS" | "REMOVE_COLUMNS_ROWS" | "RESIZE_COLUMNS_ROWS" | "HIDE_COLUMNS_ROWS" | "UNHIDE_COLUMNS_ROWS" | "SET_GRID_LINES_VISIBILITY" | "FREEZE_COLUMNS" | "FREEZE_ROWS" | "UNFREEZE_COLUMNS_ROWS" | "UNFREEZE_COLUMNS" | "UNFREEZE_ROWS" | "ADD_MERGE" | "REMOVE_MERGE" | "CREATE_SHEET" | "DELETE_SHEET" | "DUPLICATE_SHEET" | "MOVE_SHEET" | "RENAME_SHEET" | "HIDE_SHEET" | "SHOW_SHEET" | "MOVE_RANGES" | "ADD_CONDITIONAL_FORMAT" | "REMOVE_CONDITIONAL_FORMAT" | "MOVE_CONDITIONAL_FORMAT" | "CREATE_FIGURE" | "DELETE_FIGURE" | "UPDATE_FIGURE" | "SET_FORMATTING" | "CLEAR_FORMATTING" | "SET_ZONE_BORDERS" | "SET_BORDER" | "CREATE_CHART" | "UPDATE_CHART" | "CREATE_IMAGE" | "CREATE_FILTER_TABLE" | "REMOVE_FILTER_TABLE" | "UPDATE_LOCALE" | "SORT_CELLS" | "SET_DECIMAL" | "REQUEST_UNDO" | "REQUEST_REDO" | "UNDO" | "REDO" | "ENABLE_NEW_SELECTION_INPUT" | "DISABLE_SELECTION_INPUT" | "UNFOCUS_SELECTION_INPUT" | "FOCUS_RANGE" | "ADD_EMPTY_RANGE" | "ADD_RANGE" | "REMOVE_RANGE" | "CHANGE_RANGE" | "COPY" | "CUT" | "PASTE" | "REPEAT_PASTE" | "CLEAN_CLIPBOARD_HIGHLIGHT" | "AUTOFILL_CELL" | "PASTE_FROM_OS_CLIPBOARD" | "ACTIVATE_PAINT_FORMAT" | "CANCEL_PAINT_FORMAT" | "AUTORESIZE_COLUMNS" | "AUTORESIZE_ROWS" | "MOVE_COLUMNS_ROWS" | "ACTIVATE_SHEET" | "PREPARE_SELECTION_INPUT_EXPANSION" | "STOP_SELECTION_INPUT" | "EVALUATE_CELLS" | "CHANGE_HIGHLIGHT" | "START_CHANGE_HIGHLIGHT" | "SET_HIGHLIGHT_COLOR" | "STOP_COMPOSER_RANGE_SELECTION" | "START_EDITION" | "STOP_EDITION" | "SET_CURRENT_CONTENT" | "CHANGE_COMPOSER_CURSOR_SELECTION" | "REPLACE_COMPOSER_CURSOR_SELECTION" | "CYCLE_EDITION_REFERENCES" | "START" | "AUTOFILL" | "AUTOFILL_SELECT" | "SET_FORMULA_VISIBILITY" | "AUTOFILL_AUTO" | "SELECT_FIGURE" | "UPDATE_SEARCH" | "CLEAR_SEARCH" | "SELECT_SEARCH_PREVIOUS_MATCH" | "SELECT_SEARCH_NEXT_MATCH" | "REPLACE_SEARCH" | "REPLACE_ALL_SEARCH" | "RESIZE_SHEETVIEW" | "SUM_SELECTION" | "DELETE_CELL" | "INSERT_CELL" | "SET_VIEWPORT_OFFSET" | "SHIFT_VIEWPORT_DOWN" | "SHIFT_VIEWPORT_UP" | "OPEN_CELL_POPOVER" | "CLOSE_CELL_POPOVER" | "ACTIVATE_NEXT_SHEET" | "ACTIVATE_PREVIOUS_SHEET" | "UPDATE_FILTER" | "SPLIT_TEXT_INTO_COLUMNS">;
1684
- declare const invalidateCFEvaluationCommands: Set<"UPDATE_CELL" | "UPDATE_CELL_POSITION" | "CLEAR_CELL" | "DELETE_CONTENT" | "ADD_COLUMNS_ROWS" | "REMOVE_COLUMNS_ROWS" | "RESIZE_COLUMNS_ROWS" | "HIDE_COLUMNS_ROWS" | "UNHIDE_COLUMNS_ROWS" | "SET_GRID_LINES_VISIBILITY" | "FREEZE_COLUMNS" | "FREEZE_ROWS" | "UNFREEZE_COLUMNS_ROWS" | "UNFREEZE_COLUMNS" | "UNFREEZE_ROWS" | "ADD_MERGE" | "REMOVE_MERGE" | "CREATE_SHEET" | "DELETE_SHEET" | "DUPLICATE_SHEET" | "MOVE_SHEET" | "RENAME_SHEET" | "HIDE_SHEET" | "SHOW_SHEET" | "MOVE_RANGES" | "ADD_CONDITIONAL_FORMAT" | "REMOVE_CONDITIONAL_FORMAT" | "MOVE_CONDITIONAL_FORMAT" | "CREATE_FIGURE" | "DELETE_FIGURE" | "UPDATE_FIGURE" | "SET_FORMATTING" | "CLEAR_FORMATTING" | "SET_ZONE_BORDERS" | "SET_BORDER" | "CREATE_CHART" | "UPDATE_CHART" | "CREATE_IMAGE" | "CREATE_FILTER_TABLE" | "REMOVE_FILTER_TABLE" | "UPDATE_LOCALE" | "UNDO" | "REDO" | "EVALUATE_CELLS">;
1685
- declare const readonlyAllowedCommands: Set<"UPDATE_CELL" | "UPDATE_CELL_POSITION" | "CLEAR_CELL" | "DELETE_CONTENT" | "ADD_COLUMNS_ROWS" | "REMOVE_COLUMNS_ROWS" | "RESIZE_COLUMNS_ROWS" | "HIDE_COLUMNS_ROWS" | "UNHIDE_COLUMNS_ROWS" | "SET_GRID_LINES_VISIBILITY" | "FREEZE_COLUMNS" | "FREEZE_ROWS" | "UNFREEZE_COLUMNS_ROWS" | "UNFREEZE_COLUMNS" | "UNFREEZE_ROWS" | "ADD_MERGE" | "REMOVE_MERGE" | "CREATE_SHEET" | "DELETE_SHEET" | "DUPLICATE_SHEET" | "MOVE_SHEET" | "RENAME_SHEET" | "HIDE_SHEET" | "SHOW_SHEET" | "MOVE_RANGES" | "ADD_CONDITIONAL_FORMAT" | "REMOVE_CONDITIONAL_FORMAT" | "MOVE_CONDITIONAL_FORMAT" | "CREATE_FIGURE" | "DELETE_FIGURE" | "UPDATE_FIGURE" | "SET_FORMATTING" | "CLEAR_FORMATTING" | "SET_ZONE_BORDERS" | "SET_BORDER" | "CREATE_CHART" | "UPDATE_CHART" | "CREATE_IMAGE" | "CREATE_FILTER_TABLE" | "REMOVE_FILTER_TABLE" | "UPDATE_LOCALE" | "SORT_CELLS" | "SET_DECIMAL" | "REQUEST_UNDO" | "REQUEST_REDO" | "UNDO" | "REDO" | "ENABLE_NEW_SELECTION_INPUT" | "DISABLE_SELECTION_INPUT" | "UNFOCUS_SELECTION_INPUT" | "FOCUS_RANGE" | "ADD_EMPTY_RANGE" | "ADD_RANGE" | "REMOVE_RANGE" | "CHANGE_RANGE" | "COPY" | "CUT" | "PASTE" | "REPEAT_PASTE" | "CLEAN_CLIPBOARD_HIGHLIGHT" | "AUTOFILL_CELL" | "PASTE_FROM_OS_CLIPBOARD" | "ACTIVATE_PAINT_FORMAT" | "CANCEL_PAINT_FORMAT" | "AUTORESIZE_COLUMNS" | "AUTORESIZE_ROWS" | "MOVE_COLUMNS_ROWS" | "ACTIVATE_SHEET" | "PREPARE_SELECTION_INPUT_EXPANSION" | "STOP_SELECTION_INPUT" | "EVALUATE_CELLS" | "CHANGE_HIGHLIGHT" | "START_CHANGE_HIGHLIGHT" | "SET_HIGHLIGHT_COLOR" | "STOP_COMPOSER_RANGE_SELECTION" | "START_EDITION" | "STOP_EDITION" | "SET_CURRENT_CONTENT" | "CHANGE_COMPOSER_CURSOR_SELECTION" | "REPLACE_COMPOSER_CURSOR_SELECTION" | "CYCLE_EDITION_REFERENCES" | "START" | "AUTOFILL" | "AUTOFILL_SELECT" | "SET_FORMULA_VISIBILITY" | "AUTOFILL_AUTO" | "SELECT_FIGURE" | "UPDATE_SEARCH" | "CLEAR_SEARCH" | "SELECT_SEARCH_PREVIOUS_MATCH" | "SELECT_SEARCH_NEXT_MATCH" | "REPLACE_SEARCH" | "REPLACE_ALL_SEARCH" | "RESIZE_SHEETVIEW" | "SUM_SELECTION" | "DELETE_CELL" | "INSERT_CELL" | "SET_VIEWPORT_OFFSET" | "SHIFT_VIEWPORT_DOWN" | "SHIFT_VIEWPORT_UP" | "OPEN_CELL_POPOVER" | "CLOSE_CELL_POPOVER" | "ACTIVATE_NEXT_SHEET" | "ACTIVATE_PREVIOUS_SHEET" | "UPDATE_FILTER" | "SPLIT_TEXT_INTO_COLUMNS">;
1686
- declare const coreTypes: Set<"UPDATE_CELL" | "UPDATE_CELL_POSITION" | "CLEAR_CELL" | "DELETE_CONTENT" | "ADD_COLUMNS_ROWS" | "REMOVE_COLUMNS_ROWS" | "RESIZE_COLUMNS_ROWS" | "HIDE_COLUMNS_ROWS" | "UNHIDE_COLUMNS_ROWS" | "SET_GRID_LINES_VISIBILITY" | "FREEZE_COLUMNS" | "FREEZE_ROWS" | "UNFREEZE_COLUMNS_ROWS" | "UNFREEZE_COLUMNS" | "UNFREEZE_ROWS" | "ADD_MERGE" | "REMOVE_MERGE" | "CREATE_SHEET" | "DELETE_SHEET" | "DUPLICATE_SHEET" | "MOVE_SHEET" | "RENAME_SHEET" | "HIDE_SHEET" | "SHOW_SHEET" | "MOVE_RANGES" | "ADD_CONDITIONAL_FORMAT" | "REMOVE_CONDITIONAL_FORMAT" | "MOVE_CONDITIONAL_FORMAT" | "CREATE_FIGURE" | "DELETE_FIGURE" | "UPDATE_FIGURE" | "SET_FORMATTING" | "CLEAR_FORMATTING" | "SET_ZONE_BORDERS" | "SET_BORDER" | "CREATE_CHART" | "UPDATE_CHART" | "CREATE_IMAGE" | "CREATE_FILTER_TABLE" | "REMOVE_FILTER_TABLE" | "UPDATE_LOCALE">;
1708
+ interface ZoneDependentCommand {
1709
+ sheetId: UID;
1710
+ zone: Zone;
1711
+ }
1712
+ declare const invalidateEvaluationCommands: Set<"UPDATE_CELL" | "UPDATE_CELL_POSITION" | "CLEAR_CELL" | "DELETE_CONTENT" | "ADD_COLUMNS_ROWS" | "REMOVE_COLUMNS_ROWS" | "RESIZE_COLUMNS_ROWS" | "HIDE_COLUMNS_ROWS" | "UNHIDE_COLUMNS_ROWS" | "SET_GRID_LINES_VISIBILITY" | "FREEZE_COLUMNS" | "FREEZE_ROWS" | "UNFREEZE_COLUMNS_ROWS" | "UNFREEZE_COLUMNS" | "UNFREEZE_ROWS" | "ADD_MERGE" | "REMOVE_MERGE" | "CREATE_SHEET" | "DELETE_SHEET" | "DUPLICATE_SHEET" | "MOVE_SHEET" | "RENAME_SHEET" | "HIDE_SHEET" | "SHOW_SHEET" | "MOVE_RANGES" | "ADD_CONDITIONAL_FORMAT" | "REMOVE_CONDITIONAL_FORMAT" | "CHANGE_CONDITIONAL_FORMAT_PRIORITY" | "CREATE_FIGURE" | "DELETE_FIGURE" | "UPDATE_FIGURE" | "SET_FORMATTING" | "CLEAR_FORMATTING" | "SET_ZONE_BORDERS" | "SET_BORDER" | "CREATE_CHART" | "UPDATE_CHART" | "CREATE_IMAGE" | "CREATE_FILTER_TABLE" | "REMOVE_FILTER_TABLE" | "GROUP_HEADERS" | "UNGROUP_HEADERS" | "UNFOLD_HEADER_GROUP" | "FOLD_HEADER_GROUP" | "FOLD_ALL_HEADER_GROUPS" | "UNFOLD_ALL_HEADER_GROUPS" | "UNFOLD_HEADER_GROUPS_IN_ZONE" | "FOLD_HEADER_GROUPS_IN_ZONE" | "ADD_DATA_VALIDATION_RULE" | "REMOVE_DATA_VALIDATION_RULE" | "UPDATE_LOCALE" | "UNDO" | "REDO" | "EVALUATE_CELLS">;
1713
+ declare const invalidateDependenciesCommands: Set<"UPDATE_CELL" | "UPDATE_CELL_POSITION" | "CLEAR_CELL" | "DELETE_CONTENT" | "ADD_COLUMNS_ROWS" | "REMOVE_COLUMNS_ROWS" | "RESIZE_COLUMNS_ROWS" | "HIDE_COLUMNS_ROWS" | "UNHIDE_COLUMNS_ROWS" | "SET_GRID_LINES_VISIBILITY" | "FREEZE_COLUMNS" | "FREEZE_ROWS" | "UNFREEZE_COLUMNS_ROWS" | "UNFREEZE_COLUMNS" | "UNFREEZE_ROWS" | "ADD_MERGE" | "REMOVE_MERGE" | "CREATE_SHEET" | "DELETE_SHEET" | "DUPLICATE_SHEET" | "MOVE_SHEET" | "RENAME_SHEET" | "HIDE_SHEET" | "SHOW_SHEET" | "MOVE_RANGES" | "ADD_CONDITIONAL_FORMAT" | "REMOVE_CONDITIONAL_FORMAT" | "CHANGE_CONDITIONAL_FORMAT_PRIORITY" | "CREATE_FIGURE" | "DELETE_FIGURE" | "UPDATE_FIGURE" | "SET_FORMATTING" | "CLEAR_FORMATTING" | "SET_ZONE_BORDERS" | "SET_BORDER" | "CREATE_CHART" | "UPDATE_CHART" | "CREATE_IMAGE" | "CREATE_FILTER_TABLE" | "REMOVE_FILTER_TABLE" | "GROUP_HEADERS" | "UNGROUP_HEADERS" | "UNFOLD_HEADER_GROUP" | "FOLD_HEADER_GROUP" | "FOLD_ALL_HEADER_GROUPS" | "UNFOLD_ALL_HEADER_GROUPS" | "UNFOLD_HEADER_GROUPS_IN_ZONE" | "FOLD_HEADER_GROUPS_IN_ZONE" | "ADD_DATA_VALIDATION_RULE" | "REMOVE_DATA_VALIDATION_RULE" | "UPDATE_LOCALE" | "ACTIVATE_SHEET" | "REQUEST_UNDO" | "REQUEST_REDO" | "UNDO" | "REDO" | "ENABLE_NEW_SELECTION_INPUT" | "DISABLE_SELECTION_INPUT" | "UNFOCUS_SELECTION_INPUT" | "FOCUS_RANGE" | "ADD_EMPTY_RANGE" | "ADD_RANGE" | "REMOVE_RANGE" | "CHANGE_RANGE" | "COPY" | "CUT" | "PASTE" | "REPEAT_PASTE" | "CLEAN_CLIPBOARD_HIGHLIGHT" | "AUTOFILL_CELL" | "PASTE_FROM_OS_CLIPBOARD" | "ACTIVATE_PAINT_FORMAT" | "CANCEL_PAINT_FORMAT" | "AUTORESIZE_COLUMNS" | "AUTORESIZE_ROWS" | "MOVE_COLUMNS_ROWS" | "EVALUATE_CELLS" | "START_CHANGE_HIGHLIGHT" | "SET_HIGHLIGHT_COLOR" | "STOP_COMPOSER_RANGE_SELECTION" | "START_EDITION" | "STOP_EDITION" | "CANCEL_EDITION" | "SET_CURRENT_CONTENT" | "CHANGE_COMPOSER_CURSOR_SELECTION" | "REPLACE_COMPOSER_CURSOR_SELECTION" | "CYCLE_EDITION_REFERENCES" | "START" | "AUTOFILL" | "AUTOFILL_SELECT" | "SET_FORMULA_VISIBILITY" | "AUTOFILL_AUTO" | "SELECT_FIGURE" | "UPDATE_SEARCH" | "CLEAR_SEARCH" | "SELECT_SEARCH_PREVIOUS_MATCH" | "SELECT_SEARCH_NEXT_MATCH" | "REPLACE_SEARCH" | "REPLACE_ALL_SEARCH" | "SORT_CELLS" | "SET_DECIMAL" | "RESIZE_SHEETVIEW" | "SUM_SELECTION" | "DELETE_CELL" | "INSERT_CELL" | "SET_VIEWPORT_OFFSET" | "SHIFT_VIEWPORT_DOWN" | "SHIFT_VIEWPORT_UP" | "OPEN_CELL_POPOVER" | "CLOSE_CELL_POPOVER" | "ACTIVATE_NEXT_SHEET" | "ACTIVATE_PREVIOUS_SHEET" | "UPDATE_FILTER" | "SPLIT_TEXT_INTO_COLUMNS" | "REMOVE_DUPLICATES" | "TRIM_WHITESPACE">;
1714
+ declare const invalidateCFEvaluationCommands: Set<"UPDATE_CELL" | "UPDATE_CELL_POSITION" | "CLEAR_CELL" | "DELETE_CONTENT" | "ADD_COLUMNS_ROWS" | "REMOVE_COLUMNS_ROWS" | "RESIZE_COLUMNS_ROWS" | "HIDE_COLUMNS_ROWS" | "UNHIDE_COLUMNS_ROWS" | "SET_GRID_LINES_VISIBILITY" | "FREEZE_COLUMNS" | "FREEZE_ROWS" | "UNFREEZE_COLUMNS_ROWS" | "UNFREEZE_COLUMNS" | "UNFREEZE_ROWS" | "ADD_MERGE" | "REMOVE_MERGE" | "CREATE_SHEET" | "DELETE_SHEET" | "DUPLICATE_SHEET" | "MOVE_SHEET" | "RENAME_SHEET" | "HIDE_SHEET" | "SHOW_SHEET" | "MOVE_RANGES" | "ADD_CONDITIONAL_FORMAT" | "REMOVE_CONDITIONAL_FORMAT" | "CHANGE_CONDITIONAL_FORMAT_PRIORITY" | "CREATE_FIGURE" | "DELETE_FIGURE" | "UPDATE_FIGURE" | "SET_FORMATTING" | "CLEAR_FORMATTING" | "SET_ZONE_BORDERS" | "SET_BORDER" | "CREATE_CHART" | "UPDATE_CHART" | "CREATE_IMAGE" | "CREATE_FILTER_TABLE" | "REMOVE_FILTER_TABLE" | "GROUP_HEADERS" | "UNGROUP_HEADERS" | "UNFOLD_HEADER_GROUP" | "FOLD_HEADER_GROUP" | "FOLD_ALL_HEADER_GROUPS" | "UNFOLD_ALL_HEADER_GROUPS" | "UNFOLD_HEADER_GROUPS_IN_ZONE" | "FOLD_HEADER_GROUPS_IN_ZONE" | "ADD_DATA_VALIDATION_RULE" | "REMOVE_DATA_VALIDATION_RULE" | "UPDATE_LOCALE" | "UNDO" | "REDO" | "EVALUATE_CELLS">;
1715
+ declare const readonlyAllowedCommands: Set<"UPDATE_CELL" | "UPDATE_CELL_POSITION" | "CLEAR_CELL" | "DELETE_CONTENT" | "ADD_COLUMNS_ROWS" | "REMOVE_COLUMNS_ROWS" | "RESIZE_COLUMNS_ROWS" | "HIDE_COLUMNS_ROWS" | "UNHIDE_COLUMNS_ROWS" | "SET_GRID_LINES_VISIBILITY" | "FREEZE_COLUMNS" | "FREEZE_ROWS" | "UNFREEZE_COLUMNS_ROWS" | "UNFREEZE_COLUMNS" | "UNFREEZE_ROWS" | "ADD_MERGE" | "REMOVE_MERGE" | "CREATE_SHEET" | "DELETE_SHEET" | "DUPLICATE_SHEET" | "MOVE_SHEET" | "RENAME_SHEET" | "HIDE_SHEET" | "SHOW_SHEET" | "MOVE_RANGES" | "ADD_CONDITIONAL_FORMAT" | "REMOVE_CONDITIONAL_FORMAT" | "CHANGE_CONDITIONAL_FORMAT_PRIORITY" | "CREATE_FIGURE" | "DELETE_FIGURE" | "UPDATE_FIGURE" | "SET_FORMATTING" | "CLEAR_FORMATTING" | "SET_ZONE_BORDERS" | "SET_BORDER" | "CREATE_CHART" | "UPDATE_CHART" | "CREATE_IMAGE" | "CREATE_FILTER_TABLE" | "REMOVE_FILTER_TABLE" | "GROUP_HEADERS" | "UNGROUP_HEADERS" | "UNFOLD_HEADER_GROUP" | "FOLD_HEADER_GROUP" | "FOLD_ALL_HEADER_GROUPS" | "UNFOLD_ALL_HEADER_GROUPS" | "UNFOLD_HEADER_GROUPS_IN_ZONE" | "FOLD_HEADER_GROUPS_IN_ZONE" | "ADD_DATA_VALIDATION_RULE" | "REMOVE_DATA_VALIDATION_RULE" | "UPDATE_LOCALE" | "ACTIVATE_SHEET" | "REQUEST_UNDO" | "REQUEST_REDO" | "UNDO" | "REDO" | "ENABLE_NEW_SELECTION_INPUT" | "DISABLE_SELECTION_INPUT" | "UNFOCUS_SELECTION_INPUT" | "FOCUS_RANGE" | "ADD_EMPTY_RANGE" | "ADD_RANGE" | "REMOVE_RANGE" | "CHANGE_RANGE" | "COPY" | "CUT" | "PASTE" | "REPEAT_PASTE" | "CLEAN_CLIPBOARD_HIGHLIGHT" | "AUTOFILL_CELL" | "PASTE_FROM_OS_CLIPBOARD" | "ACTIVATE_PAINT_FORMAT" | "CANCEL_PAINT_FORMAT" | "AUTORESIZE_COLUMNS" | "AUTORESIZE_ROWS" | "MOVE_COLUMNS_ROWS" | "EVALUATE_CELLS" | "START_CHANGE_HIGHLIGHT" | "SET_HIGHLIGHT_COLOR" | "STOP_COMPOSER_RANGE_SELECTION" | "START_EDITION" | "STOP_EDITION" | "CANCEL_EDITION" | "SET_CURRENT_CONTENT" | "CHANGE_COMPOSER_CURSOR_SELECTION" | "REPLACE_COMPOSER_CURSOR_SELECTION" | "CYCLE_EDITION_REFERENCES" | "START" | "AUTOFILL" | "AUTOFILL_SELECT" | "SET_FORMULA_VISIBILITY" | "AUTOFILL_AUTO" | "SELECT_FIGURE" | "UPDATE_SEARCH" | "CLEAR_SEARCH" | "SELECT_SEARCH_PREVIOUS_MATCH" | "SELECT_SEARCH_NEXT_MATCH" | "REPLACE_SEARCH" | "REPLACE_ALL_SEARCH" | "SORT_CELLS" | "SET_DECIMAL" | "RESIZE_SHEETVIEW" | "SUM_SELECTION" | "DELETE_CELL" | "INSERT_CELL" | "SET_VIEWPORT_OFFSET" | "SHIFT_VIEWPORT_DOWN" | "SHIFT_VIEWPORT_UP" | "OPEN_CELL_POPOVER" | "CLOSE_CELL_POPOVER" | "ACTIVATE_NEXT_SHEET" | "ACTIVATE_PREVIOUS_SHEET" | "UPDATE_FILTER" | "SPLIT_TEXT_INTO_COLUMNS" | "REMOVE_DUPLICATES" | "TRIM_WHITESPACE">;
1716
+ declare const coreTypes: Set<"UPDATE_CELL" | "UPDATE_CELL_POSITION" | "CLEAR_CELL" | "DELETE_CONTENT" | "ADD_COLUMNS_ROWS" | "REMOVE_COLUMNS_ROWS" | "RESIZE_COLUMNS_ROWS" | "HIDE_COLUMNS_ROWS" | "UNHIDE_COLUMNS_ROWS" | "SET_GRID_LINES_VISIBILITY" | "FREEZE_COLUMNS" | "FREEZE_ROWS" | "UNFREEZE_COLUMNS_ROWS" | "UNFREEZE_COLUMNS" | "UNFREEZE_ROWS" | "ADD_MERGE" | "REMOVE_MERGE" | "CREATE_SHEET" | "DELETE_SHEET" | "DUPLICATE_SHEET" | "MOVE_SHEET" | "RENAME_SHEET" | "HIDE_SHEET" | "SHOW_SHEET" | "MOVE_RANGES" | "ADD_CONDITIONAL_FORMAT" | "REMOVE_CONDITIONAL_FORMAT" | "CHANGE_CONDITIONAL_FORMAT_PRIORITY" | "CREATE_FIGURE" | "DELETE_FIGURE" | "UPDATE_FIGURE" | "SET_FORMATTING" | "CLEAR_FORMATTING" | "SET_ZONE_BORDERS" | "SET_BORDER" | "CREATE_CHART" | "UPDATE_CHART" | "CREATE_IMAGE" | "CREATE_FILTER_TABLE" | "REMOVE_FILTER_TABLE" | "GROUP_HEADERS" | "UNGROUP_HEADERS" | "UNFOLD_HEADER_GROUP" | "FOLD_HEADER_GROUP" | "FOLD_ALL_HEADER_GROUPS" | "UNFOLD_ALL_HEADER_GROUPS" | "UNFOLD_HEADER_GROUPS_IN_ZONE" | "FOLD_HEADER_GROUPS_IN_ZONE" | "ADD_DATA_VALIDATION_RULE" | "REMOVE_DATA_VALIDATION_RULE" | "UPDATE_LOCALE">;
1687
1717
  interface UpdateCellCommand extends PositionDependentCommand {
1688
1718
  type: "UPDATE_CELL";
1689
1719
  content?: string;
@@ -1697,31 +1727,32 @@ interface UpdateCellPositionCommand extends PositionDependentCommand {
1697
1727
  type: "UPDATE_CELL_POSITION";
1698
1728
  cellId?: UID;
1699
1729
  }
1700
- interface AddColumnsRowsCommand extends GridDependentCommand {
1730
+ interface AddColumnsRowsCommand extends SheetDependentCommand {
1701
1731
  type: "ADD_COLUMNS_ROWS";
1732
+ dimension: Dimension;
1702
1733
  base: HeaderIndex;
1703
1734
  quantity: number;
1704
1735
  position: "before" | "after";
1705
1736
  }
1706
- interface RemoveColumnsRowsCommand extends GridDependentCommand {
1737
+ interface RemoveColumnsRowsCommand extends HeadersDependentCommand {
1707
1738
  type: "REMOVE_COLUMNS_ROWS";
1708
1739
  elements: HeaderIndex[];
1709
1740
  }
1710
- interface MoveColumnsRowsCommand extends GridDependentCommand {
1741
+ interface MoveColumnsRowsCommand extends HeadersDependentCommand {
1711
1742
  type: "MOVE_COLUMNS_ROWS";
1712
1743
  base: HeaderIndex;
1713
1744
  elements: HeaderIndex[];
1714
1745
  }
1715
- interface ResizeColumnsRowsCommand extends GridDependentCommand {
1746
+ interface ResizeColumnsRowsCommand extends HeadersDependentCommand {
1716
1747
  type: "RESIZE_COLUMNS_ROWS";
1717
1748
  elements: number[];
1718
1749
  size: number | null;
1719
1750
  }
1720
- interface HideColumnsRowsCommand extends GridDependentCommand {
1751
+ interface HideColumnsRowsCommand extends HeadersDependentCommand {
1721
1752
  type: "HIDE_COLUMNS_ROWS";
1722
1753
  elements: HeaderIndex[];
1723
1754
  }
1724
- interface UnhideColumnsRowsCommand extends GridDependentCommand {
1755
+ interface UnhideColumnsRowsCommand extends HeadersDependentCommand {
1725
1756
  type: "UNHIDE_COLUMNS_ROWS";
1726
1757
  elements: HeaderIndex[];
1727
1758
  }
@@ -1814,9 +1845,9 @@ interface RemoveConditionalFormatCommand extends SheetDependentCommand {
1814
1845
  id: string;
1815
1846
  }
1816
1847
  interface MoveConditionalFormatCommand extends SheetDependentCommand {
1817
- type: "MOVE_CONDITIONAL_FORMAT";
1848
+ type: "CHANGE_CONDITIONAL_FORMAT_PRIORITY";
1818
1849
  cfId: UID;
1819
- direction: UpDown;
1850
+ delta: number;
1820
1851
  }
1821
1852
  interface CreateFigureCommand extends SheetDependentCommand {
1822
1853
  type: "CREATE_FIGURE";
@@ -1863,7 +1894,7 @@ interface RemoveFilterTableCommand extends TargetDependentCommand {
1863
1894
  }
1864
1895
  interface UpdateFilterCommand extends PositionDependentCommand {
1865
1896
  type: "UPDATE_FILTER";
1866
- values: string[];
1897
+ hiddenValues: string[];
1867
1898
  }
1868
1899
  interface SetFormattingCommand extends TargetDependentCommand {
1869
1900
  type: "SET_FORMATTING";
@@ -1889,13 +1920,67 @@ interface UpdateLocaleCommand {
1889
1920
  type: "UPDATE_LOCALE";
1890
1921
  locale: Locale;
1891
1922
  }
1923
+ interface RemoveDuplicatesCommand {
1924
+ type: "REMOVE_DUPLICATES";
1925
+ columns: HeaderIndex[];
1926
+ hasHeader: boolean;
1927
+ }
1928
+ interface TrimWhitespaceCommand {
1929
+ type: "TRIM_WHITESPACE";
1930
+ }
1931
+ interface GroupHeadersCommand extends SheetDependentCommand {
1932
+ type: "GROUP_HEADERS";
1933
+ dimension: Dimension;
1934
+ start: HeaderIndex;
1935
+ end: HeaderIndex;
1936
+ }
1937
+ interface UnGroupHeadersCommand extends SheetDependentCommand {
1938
+ type: "UNGROUP_HEADERS";
1939
+ dimension: Dimension;
1940
+ start: HeaderIndex;
1941
+ end: HeaderIndex;
1942
+ }
1943
+ interface FoldHeaderGroupCommand extends SheetDependentCommand {
1944
+ type: "FOLD_HEADER_GROUP";
1945
+ dimension: Dimension;
1946
+ start: HeaderIndex;
1947
+ end: HeaderIndex;
1948
+ }
1949
+ interface UnfoldHeaderGroupCommand extends SheetDependentCommand {
1950
+ type: "UNFOLD_HEADER_GROUP";
1951
+ dimension: Dimension;
1952
+ start: HeaderIndex;
1953
+ end: HeaderIndex;
1954
+ }
1955
+ interface FoldAllHeaderGroupsCommand extends SheetDependentCommand {
1956
+ type: "FOLD_ALL_HEADER_GROUPS";
1957
+ dimension: Dimension;
1958
+ }
1959
+ interface UnfoldAllHeaderGroupsCommand extends SheetDependentCommand {
1960
+ type: "UNFOLD_ALL_HEADER_GROUPS";
1961
+ dimension: Dimension;
1962
+ }
1963
+ interface UnfoldHeaderGroupsInZoneCommand extends ZoneDependentCommand {
1964
+ type: "UNFOLD_HEADER_GROUPS_IN_ZONE";
1965
+ dimension: Dimension;
1966
+ }
1967
+ interface FoldHeaderGroupsInZoneCommand extends ZoneDependentCommand {
1968
+ type: "FOLD_HEADER_GROUPS_IN_ZONE";
1969
+ dimension: Dimension;
1970
+ }
1971
+ interface AddDataValidationCommand extends SheetDependentCommand, RangesDependentCommand {
1972
+ type: "ADD_DATA_VALIDATION_RULE";
1973
+ rule: Omit<DataValidationRule, "ranges">;
1974
+ }
1975
+ interface RemoveDataValidationCommand extends SheetDependentCommand {
1976
+ type: "REMOVE_DATA_VALIDATION_RULE";
1977
+ id: string;
1978
+ }
1892
1979
  interface CopyCommand {
1893
1980
  type: "COPY";
1894
1981
  }
1895
1982
  interface CutCommand {
1896
1983
  type: "CUT";
1897
- /** Zones to cut. If none were given, will copy the zones in the selection*/
1898
- cutTarget?: Zone[];
1899
1984
  }
1900
1985
  interface PasteCommand {
1901
1986
  type: "PASTE";
@@ -1949,22 +2034,6 @@ interface ActivateSheetCommand {
1949
2034
  sheetIdFrom: UID;
1950
2035
  sheetIdTo: UID;
1951
2036
  }
1952
- /**
1953
- * Set the selection mode to `readyToExpand`.
1954
- * The user is ready to expand the selected zones with a new
1955
- * selection (i.e. add an other zone the to currently selected zones).
1956
- * In other words, the next selection will be added to the
1957
- * current selection if this mode is active.
1958
- */
1959
- interface PrepareExpansionCommand {
1960
- type: "PREPARE_SELECTION_INPUT_EXPANSION";
1961
- }
1962
- /**
1963
- * Set the selection mode to `idle`.
1964
- */
1965
- interface StopSelectionCommand {
1966
- type: "STOP_SELECTION_INPUT";
1967
- }
1968
2037
  /**
1969
2038
  * Set a color to be used for the next selection to highlight.
1970
2039
  * The color is only used when selection highlight is enabled.
@@ -1978,11 +2047,7 @@ interface EvaluateCellsCommand {
1978
2047
  }
1979
2048
  interface StartChangeHighlightCommand {
1980
2049
  type: "START_CHANGE_HIGHLIGHT";
1981
- range: RangeData;
1982
- }
1983
- interface ChangeHighlightCommand {
1984
- type: "CHANGE_HIGHLIGHT";
1985
- range: RangeData;
2050
+ zone: Zone;
1986
2051
  }
1987
2052
  interface StopComposerSelectionCommand {
1988
2053
  type: "STOP_COMPOSER_RANGE_SELECTION";
@@ -1994,7 +2059,9 @@ interface StartEditionCommand {
1994
2059
  }
1995
2060
  interface StopEditionCommand {
1996
2061
  type: "STOP_EDITION";
1997
- cancel?: boolean;
2062
+ }
2063
+ interface CancelEditionCommand {
2064
+ type: "CANCEL_EDITION";
1998
2065
  }
1999
2066
  interface SetCurrentContentCommand {
2000
2067
  type: "SET_CURRENT_CONTENT";
@@ -2257,11 +2324,17 @@ UpdateCellCommand | UpdateCellPositionCommand | ClearCellCommand | DeleteContent
2257
2324
  | SetFormattingCommand | ClearFormattingCommand | SetZoneBordersCommand | SetBorderCommand
2258
2325
  /** CHART */
2259
2326
  | CreateChartCommand | UpdateChartCommand
2260
- /** Image */
2327
+ /** IMAGE */
2261
2328
  | CreateImageOverCommand
2262
2329
  /** FILTERS */
2263
- | CreateFilterTableCommand | RemoveFilterTableCommand | UpdateLocaleCommand;
2264
- type LocalCommand = RequestUndoCommand | RequestRedoCommand | UndoCommand | RedoCommand | NewInputCommand | RemoveInputCommand | UnfocusInputCommand | FocusInputCommand | AddEmptyRangeCommand | AddRangeCommand | RemoveRangeCommand | ChangeRangeCommand | CopyCommand | CutCommand | PasteCommand | RepeatPasteCommand | CleanClipBoardHighlightCommand | AutoFillCellCommand | PasteFromOSClipboardCommand | ActivatePaintFormatCommand | CancelPaintFormatCommand | AutoresizeColumnsCommand | AutoresizeRowsCommand | MoveColumnsRowsCommand | ActivateSheetCommand | PrepareExpansionCommand | StopSelectionCommand | EvaluateCellsCommand | ChangeHighlightCommand | StartChangeHighlightCommand | SetColorCommand | StopComposerSelectionCommand | StartEditionCommand | StopEditionCommand | SetCurrentContentCommand | ChangeComposerSelectionCommand | ReplaceComposerSelectionCommand | CycleEditionReferencesCommand | StartCommand | AutofillCommand | AutofillSelectCommand | ShowFormulaCommand | AutofillAutoCommand | SelectFigureCommand | UpdateSearchCommand | ClearSearchCommand | SelectSearchPreviousCommand | SelectSearchNextCommand | ReplaceSearchCommand | ReplaceAllSearchCommand | SortCommand | SetDecimalCommand | ResizeViewportCommand | SumSelectionCommand | DeleteCellCommand | InsertCellCommand | SetViewportOffsetCommand | MoveViewportDownCommand | MoveViewportUpCommand | OpenCellPopoverCommand | CloseCellPopoverCommand | ActivateNextSheetCommand | ActivatePreviousSheetCommand | UpdateFilterCommand | SplitTextIntoColumnsCommand;
2330
+ | CreateFilterTableCommand | RemoveFilterTableCommand
2331
+ /** HEADER GROUP */
2332
+ | GroupHeadersCommand | UnGroupHeadersCommand | UnfoldHeaderGroupCommand | FoldHeaderGroupCommand | FoldAllHeaderGroupsCommand | UnfoldAllHeaderGroupsCommand | UnfoldHeaderGroupsInZoneCommand | FoldHeaderGroupsInZoneCommand
2333
+ /** DATA VALIDATION */
2334
+ | AddDataValidationCommand | RemoveDataValidationCommand
2335
+ /** MISC */
2336
+ | UpdateLocaleCommand;
2337
+ type LocalCommand = RequestUndoCommand | RequestRedoCommand | UndoCommand | RedoCommand | NewInputCommand | RemoveInputCommand | UnfocusInputCommand | FocusInputCommand | AddEmptyRangeCommand | AddRangeCommand | RemoveRangeCommand | ChangeRangeCommand | CopyCommand | CutCommand | PasteCommand | RepeatPasteCommand | CleanClipBoardHighlightCommand | AutoFillCellCommand | PasteFromOSClipboardCommand | ActivatePaintFormatCommand | CancelPaintFormatCommand | AutoresizeColumnsCommand | AutoresizeRowsCommand | MoveColumnsRowsCommand | ActivateSheetCommand | EvaluateCellsCommand | StartChangeHighlightCommand | SetColorCommand | StopComposerSelectionCommand | StartEditionCommand | StopEditionCommand | CancelEditionCommand | SetCurrentContentCommand | ChangeComposerSelectionCommand | ReplaceComposerSelectionCommand | CycleEditionReferencesCommand | StartCommand | AutofillCommand | AutofillSelectCommand | ShowFormulaCommand | AutofillAutoCommand | SelectFigureCommand | UpdateSearchCommand | ClearSearchCommand | SelectSearchPreviousCommand | SelectSearchNextCommand | ReplaceSearchCommand | ReplaceAllSearchCommand | SortCommand | SetDecimalCommand | ResizeViewportCommand | SumSelectionCommand | DeleteCellCommand | InsertCellCommand | SetViewportOffsetCommand | MoveViewportDownCommand | MoveViewportUpCommand | OpenCellPopoverCommand | CloseCellPopoverCommand | ActivateNextSheetCommand | ActivatePreviousSheetCommand | UpdateFilterCommand | SplitTextIntoColumnsCommand | RemoveDuplicatesCommand | TrimWhitespaceCommand;
2265
2338
  type Command = CoreCommand | LocalCommand;
2266
2339
  /**
2267
2340
  * Holds the result of a command dispatch.
@@ -2284,102 +2357,114 @@ declare class DispatchResult {
2284
2357
  }
2285
2358
  type CancelledReason = Exclude<CommandResult, CommandResult.Success>;
2286
2359
  declare const enum CommandResult {
2287
- Success = 0,
2288
- CancelledForUnknownReason = 1,
2289
- WillRemoveExistingMerge = 2,
2290
- MergeIsDestructive = 3,
2291
- CellIsMerged = 4,
2292
- InvalidTarget = 5,
2293
- EmptyUndoStack = 6,
2294
- EmptyRedoStack = 7,
2295
- NotEnoughElements = 8,
2296
- NotEnoughSheets = 9,
2297
- MissingSheetName = 10,
2298
- UnchangedSheetName = 11,
2299
- DuplicatedSheetName = 12,
2300
- DuplicatedSheetId = 13,
2301
- ForbiddenCharactersInSheetName = 14,
2302
- WrongSheetMove = 15,
2303
- WrongSheetPosition = 16,
2304
- InvalidAnchorZone = 17,
2305
- SelectionOutOfBound = 18,
2306
- TargetOutOfSheet = 19,
2307
- WrongCutSelection = 20,
2308
- WrongPasteSelection = 21,
2309
- WrongPasteOption = 22,
2310
- WrongFigurePasteOption = 23,
2311
- EmptyClipboard = 24,
2312
- EmptyRange = 25,
2313
- InvalidRange = 26,
2314
- InvalidZones = 27,
2315
- InvalidSheetId = 28,
2316
- InvalidFigureId = 29,
2317
- InputAlreadyFocused = 30,
2318
- MaximumRangesReached = 31,
2319
- InvalidChartDefinition = 32,
2320
- InvalidDataSet = 33,
2321
- InvalidLabelRange = 34,
2322
- InvalidScorecardKeyValue = 35,
2323
- InvalidScorecardBaseline = 36,
2324
- InvalidGaugeDataRange = 37,
2325
- EmptyGaugeRangeMin = 38,
2326
- GaugeRangeMinNaN = 39,
2327
- EmptyGaugeRangeMax = 40,
2328
- GaugeRangeMaxNaN = 41,
2329
- GaugeRangeMinBiggerThanRangeMax = 42,
2330
- GaugeLowerInflectionPointNaN = 43,
2331
- GaugeUpperInflectionPointNaN = 44,
2332
- GaugeLowerBiggerThanUpper = 45,
2333
- InvalidAutofillSelection = 46,
2334
- WrongComposerSelection = 47,
2335
- MinBiggerThanMax = 48,
2336
- LowerBiggerThanUpper = 49,
2337
- MidBiggerThanMax = 50,
2338
- MinBiggerThanMid = 51,
2339
- FirstArgMissing = 52,
2340
- SecondArgMissing = 53,
2341
- MinNaN = 54,
2342
- MidNaN = 55,
2343
- MaxNaN = 56,
2344
- ValueUpperInflectionNaN = 57,
2345
- ValueLowerInflectionNaN = 58,
2346
- MinInvalidFormula = 59,
2347
- MidInvalidFormula = 60,
2348
- MaxInvalidFormula = 61,
2349
- ValueUpperInvalidFormula = 62,
2350
- ValueLowerInvalidFormula = 63,
2351
- InvalidSortZone = 64,
2352
- WaitingSessionConfirmation = 65,
2353
- MergeOverlap = 66,
2354
- TooManyHiddenElements = 67,
2355
- Readonly = 68,
2356
- InvalidViewportSize = 69,
2357
- InvalidScrollingDirection = 70,
2358
- FigureDoesNotExist = 71,
2359
- InvalidConditionalFormatId = 72,
2360
- InvalidCellPopover = 73,
2361
- EmptyTarget = 74,
2362
- InvalidFreezeQuantity = 75,
2363
- FrozenPaneOverlap = 76,
2364
- ValuesNotChanged = 77,
2365
- InvalidFilterZone = 78,
2366
- FilterOverlap = 79,
2367
- FilterNotFound = 80,
2368
- MergeInFilter = 81,
2369
- NonContinuousTargets = 82,
2370
- DuplicatedFigureId = 83,
2371
- InvalidSelectionStep = 84,
2372
- DuplicatedChartId = 85,
2373
- ChartDoesNotExist = 86,
2374
- InvalidHeaderIndex = 87,
2375
- InvalidQuantity = 88,
2376
- MoreThanOneColumnSelected = 89,
2377
- EmptySplitSeparator = 90,
2378
- SplitWillOverwriteContent = 91,
2379
- NoSplitSeparatorInSelection = 92,
2380
- NoActiveSheet = 93,
2381
- InvalidLocale = 94,
2382
- AlreadyInPaintingFormatMode = 95
2360
+ Success = "Success",
2361
+ CancelledForUnknownReason = "CancelledForUnknownReason",
2362
+ WillRemoveExistingMerge = "WillRemoveExistingMerge",
2363
+ MergeIsDestructive = "MergeIsDestructive",
2364
+ CellIsMerged = "CellIsMerged",
2365
+ InvalidTarget = "InvalidTarget",
2366
+ EmptyUndoStack = "EmptyUndoStack",
2367
+ EmptyRedoStack = "EmptyRedoStack",
2368
+ NotEnoughElements = "NotEnoughElements",
2369
+ NotEnoughSheets = "NotEnoughSheets",
2370
+ MissingSheetName = "MissingSheetName",
2371
+ UnchangedSheetName = "UnchangedSheetName",
2372
+ DuplicatedSheetName = "DuplicatedSheetName",
2373
+ DuplicatedSheetId = "DuplicatedSheetId",
2374
+ ForbiddenCharactersInSheetName = "ForbiddenCharactersInSheetName",
2375
+ WrongSheetMove = "WrongSheetMove",
2376
+ WrongSheetPosition = "WrongSheetPosition",
2377
+ InvalidAnchorZone = "InvalidAnchorZone",
2378
+ SelectionOutOfBound = "SelectionOutOfBound",
2379
+ TargetOutOfSheet = "TargetOutOfSheet",
2380
+ WrongCutSelection = "WrongCutSelection",
2381
+ WrongPasteSelection = "WrongPasteSelection",
2382
+ WrongPasteOption = "WrongPasteOption",
2383
+ WrongFigurePasteOption = "WrongFigurePasteOption",
2384
+ EmptyClipboard = "EmptyClipboard",
2385
+ EmptyRange = "EmptyRange",
2386
+ InvalidRange = "InvalidRange",
2387
+ InvalidZones = "InvalidZones",
2388
+ InvalidSheetId = "InvalidSheetId",
2389
+ InvalidFigureId = "InvalidFigureId",
2390
+ InputAlreadyFocused = "InputAlreadyFocused",
2391
+ MaximumRangesReached = "MaximumRangesReached",
2392
+ InvalidChartDefinition = "InvalidChartDefinition",
2393
+ InvalidDataSet = "InvalidDataSet",
2394
+ InvalidLabelRange = "InvalidLabelRange",
2395
+ InvalidScorecardKeyValue = "InvalidScorecardKeyValue",
2396
+ InvalidScorecardBaseline = "InvalidScorecardBaseline",
2397
+ InvalidGaugeDataRange = "InvalidGaugeDataRange",
2398
+ EmptyGaugeRangeMin = "EmptyGaugeRangeMin",
2399
+ GaugeRangeMinNaN = "GaugeRangeMinNaN",
2400
+ EmptyGaugeRangeMax = "EmptyGaugeRangeMax",
2401
+ GaugeRangeMaxNaN = "GaugeRangeMaxNaN",
2402
+ GaugeRangeMinBiggerThanRangeMax = "GaugeRangeMinBiggerThanRangeMax",
2403
+ GaugeLowerInflectionPointNaN = "GaugeLowerInflectionPointNaN",
2404
+ GaugeUpperInflectionPointNaN = "GaugeUpperInflectionPointNaN",
2405
+ GaugeLowerBiggerThanUpper = "GaugeLowerBiggerThanUpper",
2406
+ InvalidAutofillSelection = "InvalidAutofillSelection",
2407
+ WrongComposerSelection = "WrongComposerSelection",
2408
+ MinBiggerThanMax = "MinBiggerThanMax",
2409
+ LowerBiggerThanUpper = "LowerBiggerThanUpper",
2410
+ MidBiggerThanMax = "MidBiggerThanMax",
2411
+ MinBiggerThanMid = "MinBiggerThanMid",
2412
+ FirstArgMissing = "FirstArgMissing",
2413
+ SecondArgMissing = "SecondArgMissing",
2414
+ MinNaN = "MinNaN",
2415
+ MidNaN = "MidNaN",
2416
+ MaxNaN = "MaxNaN",
2417
+ ValueUpperInflectionNaN = "ValueUpperInflectionNaN",
2418
+ ValueLowerInflectionNaN = "ValueLowerInflectionNaN",
2419
+ MinInvalidFormula = "MinInvalidFormula",
2420
+ MidInvalidFormula = "MidInvalidFormula",
2421
+ MaxInvalidFormula = "MaxInvalidFormula",
2422
+ ValueUpperInvalidFormula = "ValueUpperInvalidFormula",
2423
+ ValueLowerInvalidFormula = "ValueLowerInvalidFormula",
2424
+ InvalidSortZone = "InvalidSortZone",
2425
+ WaitingSessionConfirmation = "WaitingSessionConfirmation",
2426
+ MergeOverlap = "MergeOverlap",
2427
+ TooManyHiddenElements = "TooManyHiddenElements",
2428
+ Readonly = "Readonly",
2429
+ InvalidViewportSize = "InvalidViewportSize",
2430
+ InvalidScrollingDirection = "InvalidScrollingDirection",
2431
+ FigureDoesNotExist = "FigureDoesNotExist",
2432
+ InvalidConditionalFormatId = "InvalidConditionalFormatId",
2433
+ InvalidCellPopover = "InvalidCellPopover",
2434
+ EmptyTarget = "EmptyTarget",
2435
+ InvalidFreezeQuantity = "InvalidFreezeQuantity",
2436
+ FrozenPaneOverlap = "FrozenPaneOverlap",
2437
+ ValuesNotChanged = "ValuesNotChanged",
2438
+ InvalidFilterZone = "InvalidFilterZone",
2439
+ FilterOverlap = "FilterOverlap",
2440
+ FilterNotFound = "FilterNotFound",
2441
+ MergeInFilter = "MergeInFilter",
2442
+ NonContinuousTargets = "NonContinuousTargets",
2443
+ DuplicatedFigureId = "DuplicatedFigureId",
2444
+ InvalidSelectionStep = "InvalidSelectionStep",
2445
+ DuplicatedChartId = "DuplicatedChartId",
2446
+ ChartDoesNotExist = "ChartDoesNotExist",
2447
+ InvalidHeaderIndex = "InvalidHeaderIndex",
2448
+ InvalidQuantity = "InvalidQuantity",
2449
+ MoreThanOneColumnSelected = "MoreThanOneColumnSelected",
2450
+ EmptySplitSeparator = "EmptySplitSeparator",
2451
+ SplitWillOverwriteContent = "SplitWillOverwriteContent",
2452
+ NoSplitSeparatorInSelection = "NoSplitSeparatorInSelection",
2453
+ NoActiveSheet = "NoActiveSheet",
2454
+ InvalidLocale = "InvalidLocale",
2455
+ AlreadyInPaintingFormatMode = "AlreadyInPaintingFormatMode",
2456
+ MoreThanOneRangeSelected = "MoreThanOneRangeSelected",
2457
+ NoColumnsProvided = "NoColumnsProvided",
2458
+ ColumnsNotIncludedInZone = "ColumnsNotIncludedInZone",
2459
+ DuplicatesColumnsSelected = "DuplicatesColumnsSelected",
2460
+ InvalidHeaderGroupStartEnd = "InvalidHeaderGroupStartEnd",
2461
+ HeaderGroupAlreadyExists = "HeaderGroupAlreadyExists",
2462
+ UnknownHeaderGroup = "UnknownHeaderGroup",
2463
+ UnknownDataValidationRule = "UnknownDataValidationRule",
2464
+ UnknownDataValidationCriterionType = "UnknownDataValidationCriterionType",
2465
+ InvalidDataValidationCriterionValue = "InvalidDataValidationCriterionValue",
2466
+ InvalidNumberOfCriterionValues = "InvalidNumberOfCriterionValues",
2467
+ BlockingValidationRule = "BlockingValidationRule"
2383
2468
  }
2384
2469
  interface CommandHandler<T> {
2385
2470
  allowDispatch(command: T): CommandResult | CommandResult[];
@@ -2507,7 +2592,7 @@ interface CellPosition {
2507
2592
  sheetId: UID;
2508
2593
  }
2509
2594
  declare const borderStyles: readonly ["thin", "medium", "thick", "dashed", "dotted"];
2510
- type BorderStyle = typeof borderStyles[number];
2595
+ type BorderStyle = (typeof borderStyles)[number];
2511
2596
  type BorderDescr = {
2512
2597
  style: BorderStyle;
2513
2598
  color: Color;
@@ -2527,44 +2612,20 @@ interface Border$1 {
2527
2612
  right?: BorderDescr;
2528
2613
  }
2529
2614
  type ReferenceDenormalizer = (range: Range, isMeta: boolean, functionName: string, paramNumber: number) => any | any[][];
2530
- type EnsureRange = (range: Range) => MatrixArg;
2531
- type _CompiledFormula = (deps: Range[], refFn: ReferenceDenormalizer, range: EnsureRange, ctx: {}) => FormulaReturn;
2615
+ type EnsureRange = (range: Range) => Matrix<ValueAndFormat>;
2616
+ type _CompiledFormula = (deps: Range[], refFn: ReferenceDenormalizer, range: EnsureRange, ctx: {}) => Matrix<ValueAndFormat> | ValueAndFormat;
2532
2617
  interface CompiledFormula {
2533
2618
  execute: _CompiledFormula;
2534
2619
  tokens: Token[];
2535
2620
  dependencies: string[];
2536
2621
  }
2537
2622
  type Matrix<T = unknown> = T[][];
2538
- type Arg = MatrixArg | PrimitiveArg;
2539
- type MatrixArg = {
2540
- value: MatrixArgValue;
2541
- format?: MatrixArgFormat;
2542
- };
2543
- type PrimitiveArg = {
2544
- value: PrimitiveArgValue;
2545
- format?: PrimitiveFormat;
2546
- };
2547
- type ArgValue = PrimitiveArgValue | MatrixArgValue;
2548
- type MatrixArgValue = Matrix<CellValue | undefined>;
2549
- type PrimitiveArgValue = CellValue | null;
2550
- type MatrixArgFormat = Matrix<PrimitiveFormat>;
2551
- type PrimitiveFormat = Format | undefined;
2552
- type FunctionReturn = MatrixFunctionReturn | PrimitiveFunctionReturn;
2553
- type FunctionReturnValue = CellValue | Matrix<CellValue>;
2554
- type FunctionReturnFormat = PrimitiveFormat | MatrixArgFormat;
2555
- type MatrixFunctionReturn = {
2556
- value: Matrix<CellValue>;
2557
- format?: FunctionReturnFormat;
2558
- };
2559
- type PrimitiveFunctionReturn = {
2623
+ type ValueAndFormat = {
2560
2624
  value: CellValue;
2561
- format?: PrimitiveFormat;
2562
- };
2563
- type FormulaReturn = MatrixFunctionReturn | PrimitiveFormulaReturn;
2564
- type PrimitiveFormulaReturn = {
2565
- value: CellValue | null;
2566
- format?: PrimitiveFormat;
2625
+ format?: Format;
2567
2626
  };
2627
+ type Arg = Maybe<ValueAndFormat> | Matrix<ValueAndFormat>;
2628
+ type ArgValue = Maybe<CellValue> | Matrix<CellValue>;
2568
2629
  interface HeaderDimensions {
2569
2630
  start: Pixel;
2570
2631
  size: Pixel;
@@ -2647,6 +2708,7 @@ interface Lazy<T> {
2647
2708
  */
2648
2709
  map: <U>(callback: (value: T) => U) => Lazy<U>;
2649
2710
  }
2711
+ type Maybe<T> = T | undefined;
2650
2712
  interface Cloneable<T> {
2651
2713
  clone: (args?: Partial<T>) => T;
2652
2714
  }
@@ -2668,6 +2730,13 @@ type ImmutableSet<T> = ReadonlySet<Immutable<T>>;
2668
2730
  type ImmutableObject<T> = {
2669
2731
  readonly [K in keyof T]: Immutable<T[K]>;
2670
2732
  };
2733
+ interface HeaderGroup {
2734
+ start: HeaderIndex;
2735
+ end: HeaderIndex;
2736
+ isFolded?: boolean;
2737
+ }
2738
+ type Direction$1 = "up" | "down" | "left" | "right";
2739
+ type SelectionStep = number | "end";
2671
2740
 
2672
2741
  type LocaleCode = string & Alias;
2673
2742
  interface Locale {
@@ -2718,7 +2787,7 @@ interface EvaluatedCellProperties {
2718
2787
  readonly isAutoSummable: boolean;
2719
2788
  readonly link?: Link;
2720
2789
  }
2721
- type CellValue = string | number | boolean;
2790
+ type CellValue = string | number | boolean | null;
2722
2791
  type EvaluatedCell = NumberCell | TextCell | BooleanCell | EmptyCell | ErrorCell;
2723
2792
  interface NumberCell extends EvaluatedCellProperties {
2724
2793
  readonly type: CellValueType.number;
@@ -2820,6 +2889,123 @@ interface Currency {
2820
2889
  position: "before" | "after";
2821
2890
  }
2822
2891
 
2892
+ interface DataValidationRule {
2893
+ id: UID;
2894
+ criterion: DataValidationCriterion;
2895
+ ranges: Range[];
2896
+ isBlocking?: boolean;
2897
+ }
2898
+ type TextContainsCriterion = {
2899
+ type: "textContains";
2900
+ values: string[];
2901
+ };
2902
+ type TextNotContainsCriterion = {
2903
+ type: "textNotContains";
2904
+ values: string[];
2905
+ };
2906
+ type TextIsCriterion = {
2907
+ type: "textIs";
2908
+ values: string[];
2909
+ };
2910
+ type TextIsEmailCriterion = {
2911
+ type: "textIsEmail";
2912
+ values: string[];
2913
+ };
2914
+ type TextIsLinkCriterion = {
2915
+ type: "textIsLink";
2916
+ values: string[];
2917
+ };
2918
+ type DateIsCriterion = {
2919
+ type: "dateIs";
2920
+ dateValue: DateCriterionValue;
2921
+ values: string[];
2922
+ };
2923
+ type DateIsBeforeCriterion = {
2924
+ type: "dateIsBefore";
2925
+ dateValue: DateCriterionValue;
2926
+ values: string[];
2927
+ };
2928
+ type DateIsOnOrBeforeCriterion = {
2929
+ type: "dateIsOnOrBefore";
2930
+ dateValue: DateCriterionValue;
2931
+ values: string[];
2932
+ };
2933
+ type DateIsAfterCriterion = {
2934
+ type: "dateIsAfter";
2935
+ dateValue: DateCriterionValue;
2936
+ values: string[];
2937
+ };
2938
+ type DateIsOnOrAfterCriterion = {
2939
+ type: "dateIsOnOrAfter";
2940
+ dateValue: DateCriterionValue;
2941
+ values: string[];
2942
+ };
2943
+ type DateIsBetweenCriterion = {
2944
+ type: "dateIsBetween";
2945
+ values: string[];
2946
+ };
2947
+ type DateIsNotBetweenCriterion = {
2948
+ type: "dateIsNotBetween";
2949
+ values: string[];
2950
+ };
2951
+ type DateIsValidCriterion = {
2952
+ type: "dateIsValid";
2953
+ values: string[];
2954
+ };
2955
+ type IsEqualCriterion = {
2956
+ type: "isEqual";
2957
+ values: string[];
2958
+ };
2959
+ type IsNotEqualCriterion = {
2960
+ type: "isNotEqual";
2961
+ values: string[];
2962
+ };
2963
+ type IsGreaterThanCriterion = {
2964
+ type: "isGreaterThan";
2965
+ values: string[];
2966
+ };
2967
+ type IsGreaterOrEqualToCriterion = {
2968
+ type: "isGreaterOrEqualTo";
2969
+ values: string[];
2970
+ };
2971
+ type IsLessThanCriterion = {
2972
+ type: "isLessThan";
2973
+ values: string[];
2974
+ };
2975
+ type IsLessOrEqualToCriterion = {
2976
+ type: "isLessOrEqualTo";
2977
+ values: string[];
2978
+ };
2979
+ type IsBetweenCriterion = {
2980
+ type: "isBetween";
2981
+ values: string[];
2982
+ };
2983
+ type IsNotBetweenCriterion = {
2984
+ type: "isNotBetween";
2985
+ values: string[];
2986
+ };
2987
+ type IsCheckboxCriterion = {
2988
+ type: "isBoolean";
2989
+ values: string[];
2990
+ };
2991
+ type IsValueInListCriterion = {
2992
+ type: "isValueInList";
2993
+ values: string[];
2994
+ displayStyle: "arrow" | "plainText";
2995
+ };
2996
+ type IsValueInRangeCriterion = {
2997
+ type: "isValueInRange";
2998
+ values: string[];
2999
+ displayStyle: "arrow" | "plainText";
3000
+ };
3001
+ type CustomFormulaCriterion = {
3002
+ type: "customFormula";
3003
+ values: string[];
3004
+ };
3005
+ type DataValidationCriterion = TextContainsCriterion | TextNotContainsCriterion | TextIsCriterion | TextIsEmailCriterion | TextIsLinkCriterion | IsBetweenCriterion | DateIsCriterion | DateIsBeforeCriterion | DateIsOnOrBeforeCriterion | DateIsAfterCriterion | DateIsOnOrAfterCriterion | DateIsBetweenCriterion | DateIsNotBetweenCriterion | DateIsValidCriterion | IsEqualCriterion | IsNotEqualCriterion | IsGreaterThanCriterion | IsGreaterOrEqualToCriterion | IsLessThanCriterion | IsLessOrEqualToCriterion | IsNotBetweenCriterion | IsCheckboxCriterion | IsValueInListCriterion | IsValueInRangeCriterion | CustomFormulaCriterion;
3006
+ type DateCriterionValue = "today" | "tomorrow" | "yesterday" | "lastWeek" | "lastMonth" | "lastYear" | "exactDate";
3007
+ type DataValidationCriterionType = DataValidationCriterion["type"];
3008
+
2823
3009
  type ClipboardReadResult = {
2824
3010
  status: "ok";
2825
3011
  content: string;
@@ -2832,28 +3018,16 @@ interface ClipboardInterface {
2832
3018
  readText(): Promise<ClipboardReadResult>;
2833
3019
  }
2834
3020
 
2835
- type TranslationFunction = (string: string, ...values: string[] | [{
2836
- [key: string]: string;
2837
- }]) => string;
2838
- /***
2839
- * Allow to inject a translation function from outside o-spreadsheet.
2840
- * @param tfn the function that will do the translation
2841
- */
2842
- declare function setTranslationMethod(tfn: TranslationFunction): void;
2843
-
2844
- interface EditTextOptions {
2845
- error?: string;
2846
- placeholder?: string;
2847
- }
3021
+ type NotificationType = "danger" | "info" | "success" | "warning";
2848
3022
  interface InformationNotification {
2849
3023
  text: string;
2850
- tag: string;
3024
+ type: NotificationType;
3025
+ sticky: boolean;
2851
3026
  }
2852
3027
  interface SpreadsheetEnv {
2853
3028
  notifyUser: (notification: InformationNotification) => any;
2854
3029
  raiseError: (text: string, callback?: () => void) => any;
2855
3030
  askConfirmation: (content: string, confirm: () => any, cancel?: () => any) => any;
2856
- editText: (title: string, callback: (text: string | null) => any, options?: EditTextOptions) => any;
2857
3031
  }
2858
3032
  interface SpreadsheetChildEnv extends SpreadsheetEnv {
2859
3033
  model: Model;
@@ -2862,8 +3036,7 @@ interface SpreadsheetChildEnv extends SpreadsheetEnv {
2862
3036
  openSidePanel: (panel: string, panelProps?: any) => void;
2863
3037
  toggleSidePanel: (panel: string, panelProps?: any) => void;
2864
3038
  clipboard: ClipboardInterface;
2865
- _t: TranslationFunction;
2866
- startCellEdition: (content: string) => void;
3039
+ startCellEdition: (content?: string) => void;
2867
3040
  loadCurrencies?: () => Promise<Currency[]>;
2868
3041
  loadLocales: () => Promise<Locale[]>;
2869
3042
  }
@@ -2879,24 +3052,32 @@ interface ArgDefinition {
2879
3052
  default?: boolean;
2880
3053
  defaultValue?: any;
2881
3054
  }
2882
- type ComputeFunctionArg<T> = T | (() => T) | undefined;
3055
+ type ComputeFunctionArg<T> = T | (() => T);
2883
3056
  type ComputeFunction<T, R> = (this: EvalContext, ...args: ComputeFunctionArg<T>[]) => R;
2884
- interface AddFunctionDescription {
3057
+ interface AddFunctionDescriptionBase {
2885
3058
  description: string;
2886
- compute: ComputeFunction<ArgValue, FunctionReturnValue>;
2887
- computeFormat?: ComputeFunction<Arg, FunctionReturnFormat>;
2888
3059
  category?: string;
2889
3060
  args: ArgDefinition[];
2890
3061
  returns: [ArgType];
2891
3062
  isExported?: boolean;
2892
3063
  hidden?: boolean;
2893
3064
  }
2894
- interface FunctionDescription extends AddFunctionDescription {
3065
+ interface ComputeValue {
3066
+ compute: ComputeFunction<ArgValue, CellValue | Matrix<CellValue>>;
3067
+ }
3068
+ interface ComputeFormat {
3069
+ computeFormat: ComputeFunction<Arg, Format | undefined | Matrix<Format | undefined>>;
3070
+ }
3071
+ interface ComputeValueAndFormat {
3072
+ computeValueAndFormat: ComputeFunction<Arg, Matrix<ValueAndFormat> | ValueAndFormat>;
3073
+ }
3074
+ type AddFunctionDescription = (AddFunctionDescriptionBase & ComputeValue & Partial<ComputeFormat>) | (AddFunctionDescriptionBase & ComputeValueAndFormat);
3075
+ type FunctionDescription = AddFunctionDescription & {
2895
3076
  minArgRequired: number;
2896
3077
  maxArgPossible: number;
2897
3078
  nbrArgRepeating: number;
2898
3079
  getArgToFocus: (argPosition: number) => number;
2899
- }
3080
+ };
2900
3081
  type EvalContext = {
2901
3082
  __lastFnCalled?: string;
2902
3083
  __originCellXC?: () => string;
@@ -2977,7 +3158,7 @@ interface CorePluginConstructor {
2977
3158
  * persisted state.
2978
3159
  * They should not be concerned about UI parts or transient state.
2979
3160
  */
2980
- declare class CorePlugin<State = any, C = CoreCommand> extends BasePlugin<State, C> implements RangeProvider {
3161
+ declare class CorePlugin<State = any> extends BasePlugin<State, CoreCommand> implements RangeProvider {
2981
3162
  protected getters: CoreGetters;
2982
3163
  protected uuidGenerator: UuidGenerator;
2983
3164
  constructor({ getters, stateObserver, range, dispatch, uuidGenerator }: CorePluginConfig);
@@ -3127,7 +3308,7 @@ interface CoreState {
3127
3308
  * cell and sheet content.
3128
3309
  */
3129
3310
  declare class CellPlugin extends CorePlugin<CoreState> implements CoreState {
3130
- static getters: readonly ["zoneToXC", "getCells", "getFormulaCellContent", "getCellStyle", "buildFormulaContent", "getCellById"];
3311
+ static getters: readonly ["zoneToXC", "getCells", "getFormulaCellContent", "getTranslatedCellFormula", "getCellStyle", "getCellById"];
3131
3312
  readonly nextId = 1;
3132
3313
  readonly cells: {
3133
3314
  [sheetId: string]: {
@@ -3157,14 +3338,15 @@ declare class CellPlugin extends CorePlugin<CoreState> implements CoreState {
3157
3338
  [key: number]: Format;
3158
3339
  }): Cell;
3159
3340
  exportForExcel(data: ExcelWorkbookData): void;
3341
+ private removeDefaultStyleValues;
3160
3342
  getCells(sheetId: UID): Record<UID, Cell>;
3161
3343
  /**
3162
3344
  * get a cell by ID. Used in evaluation when evaluating an async cell, we need to be able to find it back after
3163
3345
  * starting an async evaluation even if it has been moved or re-allocated
3164
3346
  */
3165
3347
  getCellById(cellId: UID): Cell | undefined;
3166
- buildFormulaContent(sheetId: UID, cell: Pick<FormulaCell, "dependencies" | "compiledFormula">, dependencies?: Range[]): string;
3167
- getFormulaCellContent(sheetId: UID, cell: FormulaCell): string;
3348
+ getFormulaCellContent(sheetId: UID, cell: Pick<FormulaCell, "dependencies" | "compiledFormula">, dependencies?: Range[]): string;
3349
+ getTranslatedCellFormula(sheetId: UID, offsetX: number, offsetY: number, compiledFormula: CompiledFormula, dependencies: Range[]): string;
3168
3350
  getCellStyle(position: CellPosition): Style;
3169
3351
  /**
3170
3352
  * Converts a zone to a XC coordinate system
@@ -3336,7 +3518,7 @@ declare class ConditionalFormatPlugin extends CorePlugin<ConditionalFormatState>
3336
3518
  * Add or replace a conditional format rule
3337
3519
  */
3338
3520
  private addConditionalFormatting;
3339
- private checkValidReordering;
3521
+ private checkValidPriorityChange;
3340
3522
  private checkEmptyRange;
3341
3523
  private checkCFRule;
3342
3524
  private checkOperatorArgsNumber;
@@ -3349,7 +3531,36 @@ declare class ConditionalFormatPlugin extends CorePlugin<ConditionalFormatState>
3349
3531
  private checkMidBiggerThanMax;
3350
3532
  private checkMinBiggerThanMid;
3351
3533
  private removeConditionalFormatting;
3352
- private reorderConditionalFormatting;
3534
+ private changeCFPriority;
3535
+ }
3536
+
3537
+ interface DataValidationState {
3538
+ readonly rules: {
3539
+ [sheet: string]: DataValidationRule[];
3540
+ };
3541
+ }
3542
+ declare class DataValidationPlugin extends CorePlugin<DataValidationState> implements DataValidationState {
3543
+ static getters: readonly ["cellHasListDataValidationIcon", "getDataValidationRule", "getDataValidationRules", "getValidationRuleForCell"];
3544
+ readonly rules: {
3545
+ [sheet: string]: DataValidationRule[];
3546
+ };
3547
+ adaptRanges(applyChange: ApplyRangeChange, sheetId?: UID): void;
3548
+ private loopThroughRangesOfSheet;
3549
+ allowDispatch(cmd: Command): CommandResult | CommandResult[];
3550
+ handle(cmd: CoreCommand): void;
3551
+ getDataValidationRules(sheetId: UID): DataValidationRule[];
3552
+ getDataValidationRule(sheetId: UID, id: UID): DataValidationRule | undefined;
3553
+ getValidationRuleForCell({ sheetId, col, row }: CellPosition): DataValidationRule | undefined;
3554
+ cellHasListDataValidationIcon(cellPosition: CellPosition): boolean;
3555
+ private addDataValidationRule;
3556
+ private removeRangesFromRules;
3557
+ private removeDataValidationRule;
3558
+ private setCenterStyleToBooleanCells;
3559
+ import(data: WorkbookData): void;
3560
+ export(data: Partial<WorkbookData>): void;
3561
+ private checkCriterionTypeIsValid;
3562
+ private checkCriterionHasValidNumberOfValues;
3563
+ private checkCriterionValuesAreValid;
3353
3564
  }
3354
3565
 
3355
3566
  interface FigureState {
@@ -3440,6 +3651,85 @@ declare class FiltersPlugin extends CorePlugin<FiltersState> implements FiltersS
3440
3651
  exportForExcel(data: ExcelWorkbookData): void;
3441
3652
  }
3442
3653
 
3654
+ interface State$7 {
3655
+ groups: Record<UID, Record<Dimension, HeaderGroup[]>>;
3656
+ }
3657
+ declare class HeaderGroupingPlugin extends CorePlugin<State$7> {
3658
+ static getters: readonly ["getHeaderGroups", "getGroupsLayers", "getVisibleGroupLayers", "getHeaderGroup", "getHeaderGroupsInZone", "isGroupFolded", "isRowFolded", "isColFolded"];
3659
+ private readonly groups;
3660
+ allowDispatch(cmd: CoreCommand): CommandResult;
3661
+ handle(cmd: CoreCommand): void;
3662
+ getHeaderGroups(sheetId: UID, dim: Dimension): HeaderGroup[];
3663
+ getHeaderGroup(sheetId: UID, dim: Dimension, start: number, end: number): HeaderGroup | undefined;
3664
+ getHeaderGroupsInZone(sheetId: UID, dim: Dimension, zone: Zone): HeaderGroup[];
3665
+ /**
3666
+ * Get all the groups of a sheet in a dimension, and return an array of layers of those groups.
3667
+ *
3668
+ * The layering rules are:
3669
+ * 1) A group containing another group should be on a layer above the group it contains
3670
+ * 2) The widest/highest groups should be on the left/top layer compared to the groups it contains
3671
+ * 3) The group should be on the left/top-most layer possible, barring intersections with other groups (see rules 1 and 2)
3672
+ */
3673
+ getGroupsLayers(sheetId: UID, dimension: Dimension): HeaderGroup[][];
3674
+ /**
3675
+ * Get all the groups of a sheet in a dimension, and return an array of layers of those groups,
3676
+ * excluding the groups that are totally hidden.
3677
+ */
3678
+ getVisibleGroupLayers(sheetId: UID, dimension: Dimension): HeaderGroup[][];
3679
+ isGroupFolded(sheetId: UID, dimension: Dimension, start: number, end: number): boolean;
3680
+ isRowFolded(sheetId: UID, row: HeaderIndex): boolean;
3681
+ isColFolded(sheetId: UID, col: HeaderIndex): boolean;
3682
+ private getGroupId;
3683
+ /**
3684
+ * To get layers of groups, and to add/remove headers from groups, we can see each header of a group as a brick. Each
3685
+ * brick falls down in the pile corresponding to its header, until it hits another brick, or the ground.
3686
+ *
3687
+ * With this abstraction, we can very simply group/ungroup headers from groups, and get the layers of groups.
3688
+ * - grouping headers is done by adding a brick to each header pile
3689
+ * - un-grouping headers is done by removing a brick from each header pile
3690
+ * - getting the layers of groups is done by simply letting the brick fall and checking the result
3691
+ *
3692
+ * Example:
3693
+ * We have 2 groups ([A=>E] and [C=>D]), and we want to group headers [C=>F]
3694
+ *
3695
+ * Headers : A B C D E F G A B C D E F G A B C D E F G
3696
+ * Headers to group: [C=>D]: _ _ [C=>F]: _ _ _ _
3697
+ * | | ==> | | | | ==> ==> Result: 3 groups
3698
+ * | | ˅ ˅ | | _ _ - [C=>D]
3699
+ * Groups: ˅ ˅ _ _ ˅ | _ _ _ - [C=>E]
3700
+ * Groups: _ _ _ _ _ _ _ _ _ _ ˅ _ _ _ _ _ _ - [A=>F]
3701
+
3702
+ * @param groups
3703
+ * @param start start of the range where to add/remove headers
3704
+ * @param end end of the range where to add/remove headers
3705
+ * @param delta -1: remove headers, 1: add headers, 0: get layers (don't add/remove anything)
3706
+ */
3707
+ private bricksFallingAlgorithm;
3708
+ private groupHeaders;
3709
+ /**
3710
+ * Ungroup the given headers. The headers will be taken out of the group they are in. This might split a group into two
3711
+ * if the headers were in the middle of a group. If multiple groups contains a header, it will only be taken out of the
3712
+ * lowest group in the layering of the groups.
3713
+ */
3714
+ private unGroupHeaders;
3715
+ private moveGroupsOnHeaderInsertion;
3716
+ private moveGroupsOnHeaderDeletion;
3717
+ private doGroupOverlap;
3718
+ private removeDuplicateGroups;
3719
+ private findGroupWithStartEnd;
3720
+ /**
3721
+ * Fold the given group, and all the groups starting at the same index that are contained inside the given group.
3722
+ */
3723
+ private foldHeaderGroup;
3724
+ /**
3725
+ * Unfold the given group, and all the groups starting at the same index that contain the given group.
3726
+ */
3727
+ private unfoldHeaderGroup;
3728
+ private getGroupIndex;
3729
+ import(data: WorkbookData): void;
3730
+ export(data: WorkbookData): void;
3731
+ }
3732
+
3443
3733
  interface HeaderSizeState$1 {
3444
3734
  sizes: Record<UID, Record<Dimension, Array<Pixel | undefined>>>;
3445
3735
  }
@@ -3461,11 +3751,12 @@ declare class HeaderSizePlugin extends CorePlugin<HeaderSizeState$1> implements
3461
3751
  }
3462
3752
 
3463
3753
  declare class HeaderVisibilityPlugin extends CorePlugin {
3464
- static getters: readonly ["canRemoveHeaders", "getHiddenColsGroups", "getHiddenRowsGroups", "isRowHiddenByUser", "isColHiddenByUser"];
3754
+ static getters: readonly ["checkElementsIncludeAllVisibleHeaders", "getHiddenColsGroups", "getHiddenRowsGroups", "isHeaderHiddenByUser", "isRowHiddenByUser", "isColHiddenByUser"];
3465
3755
  private readonly hiddenHeaders;
3466
3756
  allowDispatch(cmd: Command): CommandResult.Success | CommandResult.NotEnoughElements | CommandResult.InvalidSheetId | CommandResult.TooManyHiddenElements | CommandResult.InvalidHeaderIndex;
3467
3757
  handle(cmd: Command): void;
3468
- canRemoveHeaders(sheetId: UID, dimension: Dimension, elements: HeaderIndex[]): boolean;
3758
+ checkElementsIncludeAllVisibleHeaders(sheetId: UID, dimension: Dimension, elements: HeaderIndex[]): boolean;
3759
+ isHeaderHiddenByUser(sheetId: UID, dimension: Dimension, index: HeaderIndex): boolean;
3469
3760
  isRowHiddenByUser(sheetId: UID, index: HeaderIndex): boolean;
3470
3761
  isColHiddenByUser(sheetId: UID, index: HeaderIndex): boolean;
3471
3762
  getHiddenColsGroups(sheetId: UID): ConsecutiveIndexes[];
@@ -3511,7 +3802,7 @@ interface MergeState {
3511
3802
  readonly mergeCellMap: Record<UID, SheetMergeCellMap | undefined>;
3512
3803
  }
3513
3804
  declare class MergePlugin extends CorePlugin<MergeState> implements MergeState {
3514
- static getters: readonly ["isInMerge", "isInSameMerge", "isMergeHidden", "getMainCellPosition", "getBottomLeftCell", "expandZone", "doesIntersectMerge", "doesColumnsHaveCommonMerges", "doesRowsHaveCommonMerges", "getMerges", "getMerge", "getMergesInZone", "isSingleCellOrMerge", "getSelectionRangeString"];
3805
+ static getters: readonly ["isInMerge", "isInSameMerge", "isMergeHidden", "getMainCellPosition", "getBottomLeftCell", "expandZone", "doesIntersectMerge", "doesColumnsHaveCommonMerges", "doesRowsHaveCommonMerges", "getMerges", "getMerge", "getMergesInZone", "isSingleCellOrMerge", "getSelectionRangeString", "isMainCellPosition"];
3515
3806
  private nextId;
3516
3807
  readonly merges: Record<UID, Record<number, Range | undefined> | undefined>;
3517
3808
  readonly mergeCellMap: Record<UID, SheetMergeCellMap | undefined>;
@@ -3551,6 +3842,7 @@ declare class MergePlugin extends CorePlugin<MergeState> implements MergeState {
3551
3842
  * Check if the zone represents a single cell or a single merge.
3552
3843
  */
3553
3844
  isSingleCellOrMerge(sheetId: UID, zone: Zone): boolean;
3845
+ isMainCellPosition(position: CellPosition): boolean;
3554
3846
  /**
3555
3847
  * Return true if the current selection requires losing state if it is merged.
3556
3848
  * This happens when there is some textual content in other cells than the
@@ -3595,14 +3887,14 @@ declare class SettingsPlugin extends CorePlugin {
3595
3887
  export(data: WorkbookData): void;
3596
3888
  }
3597
3889
 
3598
- interface SheetState$1 {
3890
+ interface SheetState {
3599
3891
  readonly sheets: Record<UID, Sheet | undefined>;
3600
3892
  readonly orderedSheetIds: UID[];
3601
3893
  readonly sheetIdsMapName: Record<string, UID | undefined>;
3602
3894
  readonly cellPosition: Record<UID, CellPosition | undefined>;
3603
3895
  }
3604
- declare class SheetPlugin extends CorePlugin<SheetState$1> implements SheetState$1 {
3605
- static getters: readonly ["getSheetName", "tryGetSheetName", "getSheet", "tryGetSheet", "getSheetIdByName", "getSheetIds", "getVisibleSheetIds", "isSheetVisible", "getEvaluationSheets", "doesHeaderExist", "getCell", "getCellPosition", "getColsZone", "getRowCells", "getRowsZone", "getNumberCols", "getNumberRows", "getNumberHeaders", "getGridLinesVisibility", "getNextSheetName", "isEmpty", "getSheetSize", "getSheetZone", "getPaneDivisions", "checkZonesExistInSheet", "getCommandZones", "getUnboundedZone"];
3896
+ declare class SheetPlugin extends CorePlugin<SheetState> implements SheetState {
3897
+ static getters: readonly ["getSheetName", "tryGetSheetName", "getSheet", "tryGetSheet", "getSheetIdByName", "getSheetIds", "getVisibleSheetIds", "isSheetVisible", "getEvaluationSheets", "doesHeaderExist", "doesHeadersExist", "getCell", "getCellPosition", "getColsZone", "getRowCells", "getRowsZone", "getNumberCols", "getNumberRows", "getNumberHeaders", "getGridLinesVisibility", "getNextSheetName", "isEmpty", "getSheetSize", "getSheetZone", "getPaneDivisions", "checkZonesExistInSheet", "getCommandZones", "getUnboundedZone", "checkElementsIncludeAllNonFrozenHeaders"];
3606
3898
  readonly sheetIdsMapName: Record<string, UID | undefined>;
3607
3899
  readonly orderedSheetIds: UID[];
3608
3900
  readonly sheets: Record<UID, Sheet | undefined>;
@@ -3630,6 +3922,7 @@ declare class SheetPlugin extends CorePlugin<SheetState$1> implements SheetState
3630
3922
  getVisibleSheetIds(): UID[];
3631
3923
  getEvaluationSheets(): Record<UID, Sheet | undefined>;
3632
3924
  doesHeaderExist(sheetId: UID, dimension: Dimension, index: number): boolean;
3925
+ doesHeadersExist(sheetId: UID, dimension: Dimension, headerIndexes: HeaderIndex[]): boolean;
3633
3926
  getRow(sheetId: UID, index: HeaderIndex): Row;
3634
3927
  getCell({ sheetId, col, row }: CellPosition): Cell | undefined;
3635
3928
  getColsZone(sheetId: UID, start: HeaderIndex, end: HeaderIndex): Zone;
@@ -3645,6 +3938,11 @@ declare class SheetPlugin extends CorePlugin<SheetState$1> implements SheetState
3645
3938
  getUnboundedZone(sheetId: UID, zone: Zone): UnboundedZone;
3646
3939
  getPaneDivisions(sheetId: UID): Readonly<PaneDivision>;
3647
3940
  private setPaneDivisions;
3941
+ /**
3942
+ * Checks if all non-frozen header indices are present in the provided elements of selected rows/columns.
3943
+ * This validation ensures that all rows or columns cannot be deleted when frozen panes exist.
3944
+ */
3945
+ checkElementsIncludeAllNonFrozenHeaders(sheetId: UID, dimension: Dimension, elements: HeaderIndex[]): boolean;
3648
3946
  /**
3649
3947
  * Check if a zone only contains empty cells
3650
3948
  */
@@ -3866,6 +4164,43 @@ declare class EvaluationConditionalFormatPlugin extends UIPlugin {
3866
4164
  private rulePredicate;
3867
4165
  }
3868
4166
 
4167
+ interface InvalidValidationResult {
4168
+ readonly isValid: false;
4169
+ readonly rule: DataValidationRule;
4170
+ readonly error: string;
4171
+ }
4172
+ interface ValidValidationResult {
4173
+ readonly isValid: true;
4174
+ }
4175
+ type ValidationResult = ValidValidationResult | InvalidValidationResult;
4176
+ type SheetValidationResult = {
4177
+ [col: HeaderIndex]: Array<Lazy<ValidationResult>>;
4178
+ };
4179
+ declare class EvaluationDataValidationPlugin extends UIPlugin {
4180
+ static getters: readonly ["getDataValidationInvalidCriterionValueMessage", "getDataValidationCheckBoxCellPositions", "getDataValidationListCellsPositions", "getInvalidDataValidationMessage", "getValidationResultForCellValue", "isCellValidCheckbox", "isDataValidationInvalid"];
4181
+ validationResults: Record<UID, SheetValidationResult>;
4182
+ handle(cmd: CoreViewCommand): void;
4183
+ isDataValidationInvalid(cellPosition: CellPosition): boolean;
4184
+ getInvalidDataValidationMessage(cellPosition: CellPosition): string | undefined;
4185
+ /**
4186
+ * Check if the value is valid for the given criterion, and return an error message if not.
4187
+ *
4188
+ * The value must be canonicalized.
4189
+ */
4190
+ getDataValidationInvalidCriterionValueMessage(criterionType: DataValidationCriterionType, value: string): string | undefined;
4191
+ isCellValidCheckbox(cellPosition: CellPosition): boolean;
4192
+ /** Get the validation result if the cell on the given position had the given value */
4193
+ getValidationResultForCellValue(cellValue: CellValue, cellPosition: CellPosition): ValidationResult;
4194
+ getDataValidationCheckBoxCellPositions(): CellPosition[];
4195
+ getDataValidationListCellsPositions(): CellPosition[];
4196
+ private getValidationResultForCell;
4197
+ private computeSheetValidationResults;
4198
+ private getRuleErrorForCellValue;
4199
+ /** Get the offset of the cell inside the ranges of the rule. Throws an error if the cell isn't inside the rule. */
4200
+ private getCellOffsetInRule;
4201
+ private getEvaluatedCriterionValues;
4202
+ }
4203
+
3869
4204
  interface HeaderSizeState {
3870
4205
  tallestCellInRow: Immutable<Record<UID, Array<CellWithSize | undefined>>>;
3871
4206
  }
@@ -3943,6 +4278,7 @@ declare class AutofillPlugin extends UIPlugin {
3943
4278
  private getDirection;
3944
4279
  private autoFillMerge;
3945
4280
  private autofillCF;
4281
+ private autofillDV;
3946
4282
  drawGrid(renderingContext: GridRenderingContext): void;
3947
4283
  }
3948
4284
 
@@ -4209,8 +4545,7 @@ declare class SelectionInputPlugin extends UIPlugin implements StreamCallbacks<S
4209
4545
  static getters: never[];
4210
4546
  ranges: RangeInputValue[];
4211
4547
  focusedRangeIndex: number | null;
4212
- private activeSheet;
4213
- private willAddNewRange;
4548
+ private inputSheetId;
4214
4549
  constructor(config: UIPluginConfig, initialRanges: string[], inputHasSingleRange: boolean);
4215
4550
  allowDispatch(cmd: LocalCommand): CommandResult;
4216
4551
  handleEvent(event: SelectionEvent): void;
@@ -4223,7 +4558,6 @@ declare class SelectionInputPlugin extends UIPlugin implements StreamCallbacks<S
4223
4558
  private focus;
4224
4559
  private focusLast;
4225
4560
  private unfocus;
4226
- private add;
4227
4561
  private setContent;
4228
4562
  /**
4229
4563
  * Insert new inputs after the given index.
@@ -4391,7 +4725,7 @@ declare class UIOptionsPlugin extends UIPlugin {
4391
4725
  }
4392
4726
 
4393
4727
  declare class SheetUIPlugin extends UIPlugin {
4394
- static getters: readonly ["getCellWidth", "getTextWidth", "getCellText", "getCellMultiLineText", "getColDimensions", "getRowDimensions", "getColRowOffset"];
4728
+ static getters: readonly ["doesCellHaveGridIcon", "getCellWidth", "getTextWidth", "getCellText", "getCellMultiLineText", "getColDimensions", "getRowDimensions", "getColRowOffset"];
4395
4729
  private ctx;
4396
4730
  allowDispatch(cmd: LocalCommand): CommandResult | CommandResult[];
4397
4731
  handle(cmd: Command): void;
@@ -4419,6 +4753,7 @@ declare class SheetUIPlugin extends UIPlugin {
4419
4753
  * i.e. The size from A to B is the distance between A.start and B.end
4420
4754
  */
4421
4755
  getColRowOffset(dimension: Dimension, referenceIndex: HeaderIndex, index: HeaderIndex, sheetId?: UID): Pixel;
4756
+ doesCellHaveGridIcon(position: CellPosition): boolean;
4422
4757
  private getColMaxWidth;
4423
4758
  /**
4424
4759
  * Check that any "sheetId" in the command matches an existing
@@ -4851,7 +5186,9 @@ type ConditionalFormatGetters = Pick<ConditionalFormatPlugin, GetterNames<typeof
4851
5186
  type LocalHistoryGetters = Pick<HistoryPlugin, GetterNames<typeof HistoryPlugin>>;
4852
5187
  type FiltersGetters = Pick<FiltersPlugin, GetterNames<typeof FiltersPlugin>>;
4853
5188
  type SettingsGetters = Pick<SettingsPlugin, GetterNames<typeof SettingsPlugin>>;
4854
- type CoreGetters = SheetGetters & HeaderSizeGetters & HeaderVisibilityGetters & CellGetters & MergeGetters & BordersGetters & ChartGetters & ImageGetters & ConditionalFormatGetters & FigureGetters & RangeAdapterGetters & FiltersGetters & SettingsGetters;
5189
+ type HeaderGroupingGetters = Pick<HeaderGroupingPlugin, GetterNames<typeof HeaderGroupingPlugin>>;
5190
+ type DataValidationGetters = Pick<DataValidationPlugin, GetterNames<typeof DataValidationPlugin>>;
5191
+ type CoreGetters = SheetGetters & HeaderSizeGetters & HeaderVisibilityGetters & CellGetters & MergeGetters & BordersGetters & ChartGetters & ImageGetters & ConditionalFormatGetters & FigureGetters & RangeAdapterGetters & FiltersGetters & SettingsGetters & HeaderGroupingGetters & DataValidationGetters;
4855
5192
  type AutofillGetters = Pick<AutofillPlugin, GetterNames<typeof AutofillPlugin>>;
4856
5193
  type AutomaticSumGetters = Pick<AutomaticSumPlugin, GetterNames<typeof AutomaticSumPlugin>>;
4857
5194
  type ClipboardGetters = Pick<ClipboardPlugin, GetterNames<typeof ClipboardPlugin>>;
@@ -4875,10 +5212,11 @@ type CellPopoverPluginGetters = Pick<CellPopoverPlugin, GetterNames<typeof CellP
4875
5212
  type FilterEvaluationGetters = Pick<FilterEvaluationPlugin, GetterNames<typeof FilterEvaluationPlugin>>;
4876
5213
  type SplitToColumnsGetters = Pick<SplitToColumnsPlugin, GetterNames<typeof SplitToColumnsPlugin>>;
4877
5214
  type UIRowSizeGetters = Pick<UIRowSizePlugin, GetterNames<typeof UIRowSizePlugin>>;
5215
+ type EvaluationDataValidationPluginGetters = Pick<EvaluationDataValidationPlugin, GetterNames<typeof EvaluationDataValidationPlugin>>;
4878
5216
  type Getters = {
4879
5217
  isReadonly: () => boolean;
4880
5218
  isDashboard: () => boolean;
4881
- } & LocalHistoryGetters & CoreGetters & AutofillGetters & AutomaticSumGetters & ClipboardGetters & EditionGetters & EvaluationGetters & EvaluationChartGetters & EvaluationConditionalFormatGetters & FindAndReplaceGetters & HighlightGetters & CustomColorsGetters & RendererGetters & SelectionGetters & SelectionInputGetters & CollaborativeGetters & SortGetters & UIOptionsGetters & SheetUIGetters & ViewportGetters & CellPopoverPluginGetters & FilterEvaluationGetters & HeaderVisibilityIUIGetters & SplitToColumnsGetters & UIRowSizeGetters;
5219
+ } & LocalHistoryGetters & CoreGetters & AutofillGetters & AutomaticSumGetters & ClipboardGetters & EditionGetters & EvaluationGetters & EvaluationChartGetters & EvaluationConditionalFormatGetters & FindAndReplaceGetters & HighlightGetters & CustomColorsGetters & RendererGetters & SelectionGetters & SelectionInputGetters & CollaborativeGetters & SortGetters & UIOptionsGetters & SheetUIGetters & ViewportGetters & CellPopoverPluginGetters & FilterEvaluationGetters & HeaderVisibilityIUIGetters & SplitToColumnsGetters & UIRowSizeGetters & EvaluationDataValidationPluginGetters;
4882
5220
 
4883
5221
  interface HistoryChange {
4884
5222
  root: any;
@@ -4908,9 +5246,6 @@ interface TransformationFactory<T = unknown> {
4908
5246
  with: (operation: T) => Transformation<T>;
4909
5247
  }
4910
5248
 
4911
- type SelectionDirection = "up" | "down" | "left" | "right";
4912
- type SelectionStep = number | "end";
4913
-
4914
5249
  type CellPopoverType = "ErrorToolTip" | "LinkDisplay" | "FilterMenu" | "LinkEditor";
4915
5250
  type PopoverPropsPosition = "TopRight" | "BottomLeft";
4916
5251
  type MaxSizedComponentConstructor = ComponentConstructor & {
@@ -5060,7 +5395,7 @@ interface ChartBuilder {
5060
5395
  sequence: number;
5061
5396
  }
5062
5397
 
5063
- interface Props$F {
5398
+ interface Props$K {
5064
5399
  ranges: () => string[];
5065
5400
  hasSingleRange?: boolean;
5066
5401
  required?: boolean;
@@ -5082,7 +5417,7 @@ interface SelectionRange extends Omit<RangeInputValue, "color"> {
5082
5417
  * onSelectionChanged is called every time the input value
5083
5418
  * changes.
5084
5419
  */
5085
- declare class SelectionInput extends Component<Props$F, SpreadsheetChildEnv> {
5420
+ declare class SelectionInput extends Component<Props$K, SpreadsheetChildEnv> {
5086
5421
  static template: string;
5087
5422
  private id;
5088
5423
  private previousRanges;
@@ -5111,26 +5446,26 @@ declare class SelectionInput extends Component<Props$F, SpreadsheetChildEnv> {
5111
5446
  confirm(): void;
5112
5447
  }
5113
5448
 
5114
- interface Props$E {
5449
+ interface Props$J {
5115
5450
  messages: string[];
5116
5451
  msgType: "warning" | "error";
5117
5452
  }
5118
- declare class SidePanelErrors extends Component<Props$E, SpreadsheetChildEnv> {
5453
+ declare class ValidationMessages extends Component<Props$J, SpreadsheetChildEnv> {
5119
5454
  static template: string;
5120
- get divClasses(): "o-sidepanel-warning text-warning" | "o-sidepanel-error text-danger";
5455
+ get divClasses(): "o-validation-warning text-warning" | "o-validation-error text-danger";
5121
5456
  }
5122
5457
 
5123
- interface Props$D {
5458
+ interface Props$I {
5124
5459
  figureId: UID;
5125
5460
  definition: LineChartDefinition | BarChartDefinition | PieChartDefinition;
5126
5461
  canUpdateChart: (figureId: UID, definition: Partial<LineChartDefinition | BarChartDefinition | PieChartDefinition>) => DispatchResult;
5127
5462
  updateChart: (figureId: UID, definition: Partial<LineChartDefinition | BarChartDefinition | PieChartDefinition>) => DispatchResult;
5128
5463
  }
5129
- declare class LineBarPieConfigPanel extends Component<Props$D, SpreadsheetChildEnv> {
5464
+ declare class LineBarPieConfigPanel extends Component<Props$I, SpreadsheetChildEnv> {
5130
5465
  static template: string;
5131
5466
  static components: {
5132
5467
  SelectionInput: typeof SelectionInput;
5133
- SidePanelErrors: typeof SidePanelErrors;
5468
+ ValidationMessages: typeof ValidationMessages;
5134
5469
  };
5135
5470
  private state;
5136
5471
  private dataSeriesRanges;
@@ -5167,6 +5502,7 @@ declare class BarConfigPanel extends LineBarPieConfigPanel {
5167
5502
  declare enum ComponentsImportance {
5168
5503
  Grid = 0,
5169
5504
  Highlight = 5,
5505
+ HeaderGroupingButton = 6,
5170
5506
  Figure = 10,
5171
5507
  ScrollBar = 15,
5172
5508
  GridPopover = 19,
@@ -5254,7 +5590,7 @@ declare class ColorPicker extends Component<ColorPickerProps, SpreadsheetChildEn
5254
5590
  isSameColor(color1: Color, color2: Color): boolean;
5255
5591
  }
5256
5592
 
5257
- interface Props$C {
5593
+ interface Props$H {
5258
5594
  currentColor: string | undefined;
5259
5595
  toggleColorPicker: () => void;
5260
5596
  showColorPicker: boolean;
@@ -5265,7 +5601,7 @@ interface Props$C {
5265
5601
  dropdownMaxHeight?: Pixel;
5266
5602
  class?: string;
5267
5603
  }
5268
- declare class ColorPickerWidget extends Component<Props$C, SpreadsheetChildEnv> {
5604
+ declare class ColorPickerWidget extends Component<Props$H, SpreadsheetChildEnv> {
5269
5605
  static template: string;
5270
5606
  static components: {
5271
5607
  ColorPicker: typeof ColorPicker;
@@ -5277,13 +5613,13 @@ declare class ColorPickerWidget extends Component<Props$C, SpreadsheetChildEnv>
5277
5613
  get colorPickerAnchorRect(): Rect;
5278
5614
  }
5279
5615
 
5280
- interface Props$B {
5616
+ interface Props$G {
5281
5617
  figureId: UID;
5282
5618
  definition: LineChartDefinition | BarChartDefinition | PieChartDefinition;
5283
5619
  canUpdateChart: (definition: Partial<LineChartDefinition | BarChartDefinition | PieChartDefinition>) => DispatchResult;
5284
5620
  updateChart: (figureId: UID, definition: Partial<LineChartDefinition | BarChartDefinition | PieChartDefinition>) => DispatchResult;
5285
5621
  }
5286
- declare class LineBarPieDesignPanel extends Component<Props$B, SpreadsheetChildEnv> {
5622
+ declare class LineBarPieDesignPanel extends Component<Props$G, SpreadsheetChildEnv> {
5287
5623
  static template: string;
5288
5624
  static components: {
5289
5625
  ColorPickerWidget: typeof ColorPickerWidget;
@@ -5297,17 +5633,17 @@ declare class LineBarPieDesignPanel extends Component<Props$B, SpreadsheetChildE
5297
5633
  updateSelect(attr: string, ev: any): void;
5298
5634
  }
5299
5635
 
5300
- interface Props$A {
5636
+ interface Props$F {
5301
5637
  figureId: UID;
5302
5638
  definition: GaugeChartDefinition;
5303
5639
  canUpdateChart: (figureId: UID, definition: Partial<GaugeChartDefinition>) => DispatchResult;
5304
5640
  updateChart: (figureId: UID, definition: Partial<GaugeChartDefinition>) => DispatchResult;
5305
5641
  }
5306
- declare class GaugeChartConfigPanel extends Component<Props$A, SpreadsheetChildEnv> {
5642
+ declare class GaugeChartConfigPanel extends Component<Props$F, SpreadsheetChildEnv> {
5307
5643
  static template: string;
5308
5644
  static components: {
5309
5645
  SelectionInput: typeof SelectionInput;
5310
- SidePanelErrors: typeof SidePanelErrors;
5646
+ ValidationMessages: typeof ValidationMessages;
5311
5647
  };
5312
5648
  private state;
5313
5649
  private dataRange;
@@ -5319,17 +5655,17 @@ declare class GaugeChartConfigPanel extends Component<Props$A, SpreadsheetChildE
5319
5655
  }
5320
5656
 
5321
5657
  type GaugeMenu = "backgroundColor" | "sectionColor-lowerColor" | "sectionColor-middleColor" | "sectionColor-upperColor";
5322
- interface Props$z {
5658
+ interface Props$E {
5323
5659
  figureId: UID;
5324
5660
  definition: GaugeChartDefinition;
5325
5661
  canUpdateChart: (figureId: UID, definition: Partial<GaugeChartDefinition>) => DispatchResult;
5326
5662
  updateChart: (figureId: UID, definition: Partial<GaugeChartDefinition>) => DispatchResult;
5327
5663
  }
5328
- declare class GaugeChartDesignPanel extends Component<Props$z, SpreadsheetChildEnv> {
5664
+ declare class GaugeChartDesignPanel extends Component<Props$E, SpreadsheetChildEnv> {
5329
5665
  static template: string;
5330
5666
  static components: {
5331
5667
  ColorPickerWidget: typeof ColorPickerWidget;
5332
- SidePanelErrors: typeof SidePanelErrors;
5668
+ ValidationMessages: typeof ValidationMessages;
5333
5669
  };
5334
5670
  private state;
5335
5671
  setup(): void;
@@ -5353,19 +5689,20 @@ declare class LineConfigPanel extends LineBarPieConfigPanel {
5353
5689
  onUpdateLabelsAsText(ev: any): void;
5354
5690
  onUpdateStacked(ev: any): void;
5355
5691
  onUpdateAggregated(ev: any): void;
5692
+ onUpdateCumulative(ev: any): void;
5356
5693
  }
5357
5694
 
5358
- interface Props$y {
5695
+ interface Props$D {
5359
5696
  figureId: UID;
5360
5697
  definition: ScorecardChartDefinition;
5361
5698
  canUpdateChart: (figureId: UID, definition: Partial<ScorecardChartDefinition>) => DispatchResult;
5362
5699
  updateChart: (figureId: UID, definition: Partial<ScorecardChartDefinition>) => DispatchResult;
5363
5700
  }
5364
- declare class ScorecardChartConfigPanel extends Component<Props$y, SpreadsheetChildEnv> {
5701
+ declare class ScorecardChartConfigPanel extends Component<Props$D, SpreadsheetChildEnv> {
5365
5702
  static template: string;
5366
5703
  static components: {
5367
5704
  SelectionInput: typeof SelectionInput;
5368
- SidePanelErrors: typeof SidePanelErrors;
5705
+ ValidationMessages: typeof ValidationMessages;
5369
5706
  };
5370
5707
  private state;
5371
5708
  private keyValue;
@@ -5383,13 +5720,13 @@ declare class ScorecardChartConfigPanel extends Component<Props$y, SpreadsheetCh
5383
5720
  }
5384
5721
 
5385
5722
  type ColorPickerId = undefined | "backgroundColor" | "baselineColorUp" | "baselineColorDown";
5386
- interface Props$x {
5723
+ interface Props$C {
5387
5724
  figureId: UID;
5388
5725
  definition: ScorecardChartDefinition;
5389
5726
  canUpdateChart: (figureId: UID, definition: Partial<ScorecardChartDefinition>) => DispatchResult;
5390
5727
  updateChart: (figureId: UID, definition: Partial<ScorecardChartDefinition>) => DispatchResult;
5391
5728
  }
5392
- declare class ScorecardChartDesignPanel extends Component<Props$x, SpreadsheetChildEnv> {
5729
+ declare class ScorecardChartDesignPanel extends Component<Props$C, SpreadsheetChildEnv> {
5393
5730
  static template: string;
5394
5731
  static components: {
5395
5732
  ColorPickerWidget: typeof ColorPickerWidget;
@@ -5397,6 +5734,7 @@ declare class ScorecardChartDesignPanel extends Component<Props$x, SpreadsheetCh
5397
5734
  private state;
5398
5735
  setup(): void;
5399
5736
  updateTitle(): void;
5737
+ translate(term: any): string;
5400
5738
  updateBaselineDescr(ev: any): void;
5401
5739
  toggleColorPicker(colorPickerId: ColorPickerId): void;
5402
5740
  setColor(color: Color, colorPickerId: ColorPickerId): void;
@@ -5477,6 +5815,8 @@ interface Action {
5477
5815
  }
5478
5816
  type ActionBuilder = (env: SpreadsheetChildEnv) => ActionSpec[];
5479
5817
  type ActionChildren = (ActionSpec | ActionBuilder)[];
5818
+ declare function createActions(menuItems: ActionSpec[]): Action[];
5819
+ declare function createAction(item: ActionSpec): Action;
5480
5820
 
5481
5821
  /**
5482
5822
  * This registry is intended to map a type of figure (tag) to a class of
@@ -5530,10 +5870,10 @@ interface AutofillRule {
5530
5870
  sequence: number;
5531
5871
  }
5532
5872
 
5533
- interface Props$w {
5873
+ interface Props$B {
5534
5874
  figure: Figure;
5535
5875
  }
5536
- declare class ChartJsComponent extends Component<Props$w, SpreadsheetChildEnv> {
5876
+ declare class ChartJsComponent extends Component<Props$B, SpreadsheetChildEnv> {
5537
5877
  static template: string;
5538
5878
  private canvas;
5539
5879
  private chart?;
@@ -5545,10 +5885,10 @@ declare class ChartJsComponent extends Component<Props$w, SpreadsheetChildEnv> {
5545
5885
  private updateChartJs;
5546
5886
  }
5547
5887
 
5548
- interface Props$v {
5888
+ interface Props$A {
5549
5889
  figure: Figure;
5550
5890
  }
5551
- declare class ScorecardChart extends Component<Props$v, SpreadsheetChildEnv> {
5891
+ declare class ScorecardChart extends Component<Props$A, SpreadsheetChildEnv> {
5552
5892
  static template: string;
5553
5893
  private ctx;
5554
5894
  get runtime(): ScorecardChartRuntime;
@@ -5564,6 +5904,7 @@ declare class ScorecardChart extends Component<Props$v, SpreadsheetChildEnv> {
5564
5904
  get chartStyle(): string;
5565
5905
  get chartContentStyle(): string;
5566
5906
  get chartPadding(): number;
5907
+ translate(term: any): string;
5567
5908
  getTextStyles(): {
5568
5909
  titleStyle: string;
5569
5910
  keyStyle: string;
@@ -5580,7 +5921,7 @@ declare class ScorecardChart extends Component<Props$v, SpreadsheetChildEnv> {
5580
5921
  }
5581
5922
 
5582
5923
  type MenuItemOrSeparator = Action | "separator";
5583
- interface Props$u {
5924
+ interface Props$z {
5584
5925
  position: DOMCoordinates;
5585
5926
  menuItems: Action[];
5586
5927
  depth: number;
@@ -5596,7 +5937,7 @@ interface MenuState {
5596
5937
  scrollOffset?: Pixel;
5597
5938
  menuItems: Action[];
5598
5939
  }
5599
- declare class Menu extends Component<Props$u, SpreadsheetChildEnv> {
5940
+ declare class Menu extends Component<Props$z, SpreadsheetChildEnv> {
5600
5941
  static template: string;
5601
5942
  static components: {
5602
5943
  Menu: typeof Menu;
@@ -5634,14 +5975,14 @@ declare class Menu extends Component<Props$u, SpreadsheetChildEnv> {
5634
5975
  }
5635
5976
 
5636
5977
  type ResizeAnchor = "top left" | "top" | "top right" | "right" | "bottom right" | "bottom" | "bottom left" | "left";
5637
- interface Props$t {
5978
+ interface Props$y {
5638
5979
  figure: Figure;
5639
5980
  style: string;
5640
5981
  onFigureDeleted: () => void;
5641
5982
  onMouseDown: (ev: MouseEvent) => void;
5642
5983
  onClickAnchor(dirX: ResizeDirection, dirY: ResizeDirection, ev: MouseEvent): void;
5643
5984
  }
5644
- declare class FigureComponent extends Component<Props$t, SpreadsheetChildEnv> {
5985
+ declare class FigureComponent extends Component<Props$y, SpreadsheetChildEnv> {
5645
5986
  static template: string;
5646
5987
  static components: {
5647
5988
  Menu: typeof Menu;
@@ -5671,11 +6012,11 @@ declare class FigureComponent extends Component<Props$t, SpreadsheetChildEnv> {
5671
6012
  private openContextMenu;
5672
6013
  }
5673
6014
 
5674
- interface Props$s {
6015
+ interface Props$x {
5675
6016
  figure: Figure;
5676
6017
  onFigureDeleted: () => void;
5677
6018
  }
5678
- declare class ChartFigure extends Component<Props$s, SpreadsheetChildEnv> {
6019
+ declare class ChartFigure extends Component<Props$x, SpreadsheetChildEnv> {
5679
6020
  static template: string;
5680
6021
  static components: {};
5681
6022
  onDoubleClick(): void;
@@ -5683,7 +6024,7 @@ declare class ChartFigure extends Component<Props$s, SpreadsheetChildEnv> {
5683
6024
  get chartComponent(): new (...args: any) => Component;
5684
6025
  }
5685
6026
 
5686
- interface Props$r {
6027
+ interface Props$w {
5687
6028
  isVisible: boolean;
5688
6029
  position: Position;
5689
6030
  }
@@ -5691,13 +6032,13 @@ interface Position {
5691
6032
  top: HeaderIndex;
5692
6033
  left: HeaderIndex;
5693
6034
  }
5694
- interface State$5 {
6035
+ interface State$6 {
5695
6036
  position: Position;
5696
6037
  handler: boolean;
5697
6038
  }
5698
- declare class Autofill extends Component<Props$r, SpreadsheetChildEnv> {
6039
+ declare class Autofill extends Component<Props$w, SpreadsheetChildEnv> {
5699
6040
  static template: string;
5700
- state: State$5;
6041
+ state: State$6;
5701
6042
  get style(): string;
5702
6043
  get handlerStyle(): string;
5703
6044
  get styleNextValue(): string;
@@ -5769,13 +6110,13 @@ declare class Ripple extends Component<RippleProps, SpreadsheetChildEnv> {
5769
6110
  getRippleEffectProps(id: number): RippleEffectProps;
5770
6111
  }
5771
6112
 
5772
- interface Props$q {
6113
+ interface Props$v {
5773
6114
  sheetId: string;
5774
6115
  openContextMenu: (registry: MenuItemRegistry, ev: MouseEvent) => void;
5775
6116
  style?: string;
5776
6117
  onMouseDown: (ev: MouseEvent) => void;
5777
6118
  }
5778
- declare class BottomBarSheet extends Component<Props$q, SpreadsheetChildEnv> {
6119
+ declare class BottomBarSheet extends Component<Props$v, SpreadsheetChildEnv> {
5779
6120
  static template: string;
5780
6121
  static components: {
5781
6122
  Ripple: typeof Ripple;
@@ -5809,11 +6150,11 @@ declare class BottomBarSheet extends Component<Props$q, SpreadsheetChildEnv> {
5809
6150
  get sheetName(): string;
5810
6151
  }
5811
6152
 
5812
- interface Props$p {
6153
+ interface Props$u {
5813
6154
  openContextMenu: (x: number, y: number, registry: MenuItemRegistry) => void;
5814
6155
  closeContextMenu: () => void;
5815
6156
  }
5816
- declare class BottomBarStatistic extends Component<Props$p, SpreadsheetChildEnv> {
6157
+ declare class BottomBarStatistic extends Component<Props$u, SpreadsheetChildEnv> {
5817
6158
  static template: string;
5818
6159
  static components: {
5819
6160
  Ripple: typeof Ripple;
@@ -5830,18 +6171,13 @@ interface BottomBarSheetItem {
5830
6171
  id: UID;
5831
6172
  name: string;
5832
6173
  }
5833
- interface SheetState {
5834
- sheetList: BottomBarSheetItem[];
5835
- isDnd: boolean;
5836
- sheetDndPositions: Record<UID, number> | undefined;
5837
- }
5838
- interface Props$o {
6174
+ interface Props$t {
5839
6175
  onClick: () => void;
5840
6176
  }
5841
6177
  interface BottomBarMenuState extends MenuState {
5842
6178
  menuId: UID | undefined;
5843
6179
  }
5844
- declare class BottomBar extends Component<Props$o, SpreadsheetChildEnv> {
6180
+ declare class BottomBar extends Component<Props$t, SpreadsheetChildEnv> {
5845
6181
  static template: string;
5846
6182
  static components: {
5847
6183
  Menu: typeof Menu;
@@ -5851,17 +6187,15 @@ declare class BottomBar extends Component<Props$o, SpreadsheetChildEnv> {
5851
6187
  };
5852
6188
  private bottomBarRef;
5853
6189
  private sheetListRef;
5854
- private dndHelper;
6190
+ private dragAndDrop;
5855
6191
  private targetScroll;
5856
6192
  private state;
5857
6193
  menuMaxHeight: number;
5858
6194
  menuState: BottomBarMenuState;
5859
- sheetState: SheetState;
6195
+ sheetList: BottomBarSheetItem[];
5860
6196
  setup(): void;
5861
- isDragged(sheetId: UID): boolean;
5862
6197
  clickAddSheet(ev: MouseEvent): void;
5863
- private getVisibleSheets;
5864
- getSheets(): BottomBarSheetItem[];
6198
+ getVisibleSheets(): BottomBarSheetItem[];
5865
6199
  clickListSheets(ev: MouseEvent): void;
5866
6200
  openContextMenu(x: Pixel, y: Pixel, menuId: UID, registry: MenuItemRegistry): void;
5867
6201
  onSheetContextMenu(sheetId: UID, registry: MenuItemRegistry, ev: MenuMouseEvent): void;
@@ -5876,32 +6210,44 @@ declare class BottomBar extends Component<Props$o, SpreadsheetChildEnv> {
5876
6210
  onSheetMouseDown(sheetId: UID, event: MouseEvent): void;
5877
6211
  private onDragEnd;
5878
6212
  getSheetStyle(sheetId: UID): string;
5879
- private stopDragging;
5880
6213
  private getSheetItemRects;
5881
- getSheetClasses(sheetId: UID): string;
5882
6214
  get sheetListCurrentScroll(): number;
5883
6215
  get sheetListWidth(): number;
5884
6216
  get sheetListMaxScroll(): number;
5885
6217
  }
5886
6218
 
5887
- interface Props$n {
5888
- position: DOMCoordinates;
5889
- isActive: boolean;
5890
- onClick: () => void;
6219
+ interface GridCellIconProps {
6220
+ cellPosition: CellPosition;
6221
+ horizontalAlign?: Align;
6222
+ verticalAlign?: VerticalAlign;
6223
+ offset?: DOMCoordinates;
5891
6224
  }
5892
- declare class FilterIcon extends Component<Props$n, SpreadsheetEnv> {
6225
+ declare class GridCellIcon extends Component<GridCellIconProps, SpreadsheetChildEnv> {
5893
6226
  static style: string;
5894
6227
  static template: string;
5895
- get style(): string;
6228
+ get iconStyle(): string;
6229
+ private getIconVerticalPosition;
6230
+ private getIconHorizontalPosition;
6231
+ isPositionVisible(position: CellPosition): boolean;
5896
6232
  }
5897
6233
 
5898
- interface Props$m {
5899
- gridPosition: DOMCoordinates;
6234
+ interface Props$s {
6235
+ cellPosition: CellPosition;
5900
6236
  }
5901
- declare class FilterIconsOverlay extends Component<Props$m, SpreadsheetChildEnv> {
6237
+ declare class FilterIcon extends Component<Props$s, SpreadsheetChildEnv> {
5902
6238
  static style: string;
6239
+ static template: string;
6240
+ onClick(): void;
6241
+ get isFilterActive(): boolean;
6242
+ }
6243
+
6244
+ interface Props$r {
6245
+ gridPosition: DOMCoordinates;
6246
+ }
6247
+ declare class FilterIconsOverlay extends Component<Props$r, SpreadsheetChildEnv> {
5903
6248
  static template: string;
5904
6249
  static components: {
6250
+ GridCellIcon: typeof GridCellIcon;
5905
6251
  FilterIcon: typeof FilterIcon;
5906
6252
  };
5907
6253
  static defaultProps: {
@@ -5910,12 +6256,36 @@ declare class FilterIconsOverlay extends Component<Props$m, SpreadsheetChildEnv>
5910
6256
  y: number;
5911
6257
  };
5912
6258
  };
5913
- getVisibleFilterHeaders(): Position$1[];
5914
- getFilterHeaderPosition(position: Position$1): DOMCoordinates;
5915
- private getIconVerticalPosition;
5916
- isFilterActive(position: Position$1): boolean;
5917
- toggleFilterMenu(position: Position$1): void;
5918
- private isPositionVisible;
6259
+ getFilterHeadersPositions(): CellPosition[];
6260
+ }
6261
+
6262
+ interface Props$q {
6263
+ cellPosition: CellPosition;
6264
+ }
6265
+ declare class DataValidationCheckbox extends Component<Props$q, SpreadsheetChildEnv> {
6266
+ static template: string;
6267
+ onCheckboxChange(ev: Event): void;
6268
+ get checkBoxValue(): boolean;
6269
+ get isDisabled(): boolean;
6270
+ }
6271
+
6272
+ interface Props$p {
6273
+ cellPosition: CellPosition;
6274
+ }
6275
+ declare class DataValidationListIcon extends Component<Props$p, SpreadsheetChildEnv> {
6276
+ static template: string;
6277
+ onClick(): void;
6278
+ }
6279
+
6280
+ declare class DataValidationOverlay extends Component<{}, SpreadsheetChildEnv> {
6281
+ static template: string;
6282
+ static components: {
6283
+ GridCellIcon: typeof GridCellIcon;
6284
+ DataValidationCheckbox: typeof DataValidationCheckbox;
6285
+ DataValidationListIcon: typeof DataValidationListIcon;
6286
+ };
6287
+ get checkBoxCellPositions(): CellPosition[];
6288
+ get listIconsCellPositions(): CellPosition[];
5919
6289
  }
5920
6290
 
5921
6291
  type HFigureAxisType = "top" | "bottom" | "vCenter";
@@ -5928,7 +6298,7 @@ interface SnapLine<T extends HFigureAxisType | VFigureAxisType> {
5928
6298
  }
5929
6299
 
5930
6300
  type ContainerType = "topLeft" | "topRight" | "bottomLeft" | "bottomRight" | "dnd";
5931
- interface Props$l {
6301
+ interface Props$o {
5932
6302
  onFigureDeleted: () => void;
5933
6303
  }
5934
6304
  interface Container {
@@ -6007,7 +6377,7 @@ interface DndState {
6007
6377
  * that occurred during the drag & drop, and to position the figure on the correct pane.
6008
6378
  *
6009
6379
  */
6010
- declare class FiguresContainer extends Component<Props$l, SpreadsheetChildEnv> {
6380
+ declare class FiguresContainer extends Component<Props$o, SpreadsheetChildEnv> {
6011
6381
  static template: string;
6012
6382
  static components: {
6013
6383
  FigureComponent: typeof FigureComponent;
@@ -6039,23 +6409,49 @@ declare class FiguresContainer extends Component<Props$l, SpreadsheetChildEnv> {
6039
6409
  private getSnapLineStyle;
6040
6410
  }
6041
6411
 
6042
- interface Props$k {
6043
- onCellHovered: (position: Partial<Position$1>) => void;
6044
- onCellDoubleClicked: (col: HeaderIndex, row: HeaderIndex) => void;
6045
- onCellClicked: (col: HeaderIndex, row: HeaderIndex, modifiers: {
6046
- ctrlKey: boolean;
6047
- shiftKey: boolean;
6048
- }) => void;
6049
- onCellRightClicked: (col: HeaderIndex, row: HeaderIndex, coordinates: DOMCoordinates) => void;
6050
- onGridResized: (dimension: DOMDimension) => void;
6051
- onGridMoved: (deltaX: Pixel, deltaY: Pixel) => void;
6052
- gridOverlayDimensions: string;
6053
- onFigureDeleted: () => void;
6412
+ interface Props$n {
6413
+ focusGrid: () => void;
6414
+ }
6415
+ declare class GridAddRowsFooter extends Component<Props$n, SpreadsheetChildEnv> {
6416
+ static template: string;
6417
+ static components: {
6418
+ ValidationMessages: typeof ValidationMessages;
6419
+ };
6420
+ inputRef: {
6421
+ el: HTMLInputElement | null;
6422
+ };
6423
+ state: {
6424
+ inputValue: string;
6425
+ errorFlag: boolean;
6426
+ };
6427
+ setup(): void;
6428
+ get addRowsPosition(): string;
6429
+ get errorMessages(): string[];
6430
+ onKeydown(ev: KeyboardEvent): void;
6431
+ onInput(ev: InputEvent): void;
6432
+ onConfirm(): void;
6433
+ private onExternalClick;
6434
+ }
6435
+
6436
+ interface Props$m {
6437
+ onCellHovered: (position: Partial<Position$1>) => void;
6438
+ onCellDoubleClicked: (col: HeaderIndex, row: HeaderIndex) => void;
6439
+ onCellClicked: (col: HeaderIndex, row: HeaderIndex, modifiers: {
6440
+ ctrlKey: boolean;
6441
+ shiftKey: boolean;
6442
+ }) => void;
6443
+ onCellRightClicked: (col: HeaderIndex, row: HeaderIndex, coordinates: DOMCoordinates) => void;
6444
+ onGridResized: (dimension: Rect) => void;
6445
+ onGridMoved: (deltaX: Pixel, deltaY: Pixel) => void;
6446
+ gridOverlayDimensions: string;
6447
+ onFigureDeleted: () => void;
6054
6448
  }
6055
- declare class GridOverlay extends Component<Props$k, SpreadsheetChildEnv> {
6449
+ declare class GridOverlay extends Component<Props$m, SpreadsheetChildEnv> {
6056
6450
  static template: string;
6057
6451
  static components: {
6058
6452
  FiguresContainer: typeof FiguresContainer;
6453
+ DataValidationOverlay: typeof DataValidationOverlay;
6454
+ GridAddRowsFooter: typeof GridAddRowsFooter;
6059
6455
  };
6060
6456
  static defaultProps: {
6061
6457
  onCellHovered: () => void;
@@ -6066,6 +6462,7 @@ declare class GridOverlay extends Component<Props$k, SpreadsheetChildEnv> {
6066
6462
  onFigureDeleted: () => void;
6067
6463
  };
6068
6464
  private gridOverlay;
6465
+ private gridOverlayRect;
6069
6466
  setup(): void;
6070
6467
  get gridOverlayEl(): HTMLElement;
6071
6468
  get style(): string;
@@ -6076,13 +6473,13 @@ declare class GridOverlay extends Component<Props$k, SpreadsheetChildEnv> {
6076
6473
  private getCartesianCoordinates;
6077
6474
  }
6078
6475
 
6079
- interface Props$j {
6476
+ interface Props$l {
6080
6477
  hoveredCell: Partial<Position$1>;
6081
6478
  gridRect: Rect;
6082
6479
  onClosePopover: () => void;
6083
6480
  onMouseWheel: (ev: WheelEvent) => void;
6084
6481
  }
6085
- declare class GridPopover extends Component<Props$j, SpreadsheetChildEnv> {
6482
+ declare class GridPopover extends Component<Props$l, SpreadsheetChildEnv> {
6086
6483
  static template: string;
6087
6484
  static components: {
6088
6485
  Popover: typeof Popover;
@@ -6093,7 +6490,7 @@ declare class GridPopover extends Component<Props$j, SpreadsheetChildEnv> {
6093
6490
 
6094
6491
  type ScrollDirection = "horizontal" | "vertical";
6095
6492
 
6096
- interface Props$i {
6493
+ interface Props$k {
6097
6494
  width: Pixel;
6098
6495
  height: Pixel;
6099
6496
  direction: ScrollDirection;
@@ -6101,7 +6498,7 @@ interface Props$i {
6101
6498
  offset: Pixel;
6102
6499
  onScroll: (offset: Pixel) => void;
6103
6500
  }
6104
- declare class ScrollBar extends Component<Props$i> {
6501
+ declare class ScrollBar extends Component<Props$k> {
6105
6502
  static template: string;
6106
6503
  static defaultProps: {
6107
6504
  width: number;
@@ -6115,10 +6512,10 @@ declare class ScrollBar extends Component<Props$i> {
6115
6512
  onScroll(ev: any): void;
6116
6513
  }
6117
6514
 
6118
- interface Props$h {
6515
+ interface Props$j {
6119
6516
  leftOffset: number;
6120
6517
  }
6121
- declare class HorizontalScrollBar extends Component<Props$h, SpreadsheetChildEnv> {
6518
+ declare class HorizontalScrollBar extends Component<Props$j, SpreadsheetChildEnv> {
6122
6519
  static components: {
6123
6520
  ScrollBar: typeof ScrollBar;
6124
6521
  };
@@ -6138,10 +6535,10 @@ declare class HorizontalScrollBar extends Component<Props$h, SpreadsheetChildEnv
6138
6535
  onScroll(offset: any): void;
6139
6536
  }
6140
6537
 
6141
- interface Props$g {
6538
+ interface Props$i {
6142
6539
  topOffset: number;
6143
6540
  }
6144
- declare class VerticalScrollBar extends Component<Props$g, SpreadsheetChildEnv> {
6541
+ declare class VerticalScrollBar extends Component<Props$i, SpreadsheetChildEnv> {
6145
6542
  static components: {
6146
6543
  ScrollBar: typeof ScrollBar;
6147
6544
  };
@@ -6161,7 +6558,7 @@ declare class VerticalScrollBar extends Component<Props$g, SpreadsheetChildEnv>
6161
6558
  onScroll(offset: any): void;
6162
6559
  }
6163
6560
 
6164
- interface Props$f {
6561
+ interface Props$h {
6165
6562
  }
6166
6563
  interface ClickableCell {
6167
6564
  coordinates: Rect;
@@ -6169,7 +6566,7 @@ interface ClickableCell {
6169
6566
  action: (position: CellPosition, env: SpreadsheetChildEnv) => void;
6170
6567
  tKey: string;
6171
6568
  }
6172
- declare class SpreadsheetDashboard extends Component<Props$f, SpreadsheetChildEnv> {
6569
+ declare class SpreadsheetDashboard extends Component<Props$h, SpreadsheetChildEnv> {
6173
6570
  static template: string;
6174
6571
  static components: {
6175
6572
  GridOverlay: typeof GridOverlay;
@@ -6205,17 +6602,77 @@ declare class SpreadsheetDashboard extends Component<Props$f, SpreadsheetChildEn
6205
6602
  private getGridRect;
6206
6603
  }
6207
6604
 
6605
+ interface Props$g {
6606
+ group: HeaderGroup;
6607
+ layerOffset: number;
6608
+ openContextMenu(position: DOMCoordinates, menuItems: Action[]): void;
6609
+ }
6610
+ interface GroupBox {
6611
+ groupRect: Rect;
6612
+ headerRect: Rect;
6613
+ isEndHidden: boolean;
6614
+ }
6615
+ declare abstract class AbstractHeaderGroup extends Component<Props$g, SpreadsheetChildEnv> {
6616
+ static template: string;
6617
+ abstract dimension: Dimension;
6618
+ toggleGroup(): void;
6619
+ get groupBoxStyle(): string;
6620
+ abstract get groupBorderStyle(): string;
6621
+ abstract get groupHeaderStyle(): string;
6622
+ get groupButtonStyle(): string;
6623
+ get groupButtonIcon(): string;
6624
+ get isGroupFolded(): boolean;
6625
+ /** The box that will be used to draw the header group. */
6626
+ abstract get groupBox(): GroupBox;
6627
+ onContextMenu(ev: MouseEvent): void;
6628
+ }
6629
+ declare class RowGroup extends AbstractHeaderGroup {
6630
+ dimension: Dimension;
6631
+ get groupBorderStyle(): string;
6632
+ get groupHeaderStyle(): string;
6633
+ get groupBox(): GroupBox;
6634
+ }
6635
+ declare class ColGroup extends AbstractHeaderGroup {
6636
+ dimension: Dimension;
6637
+ get groupBorderStyle(): string;
6638
+ get groupHeaderStyle(): string;
6639
+ get groupBox(): GroupBox;
6640
+ }
6641
+
6642
+ interface Props$f {
6643
+ dimension: Dimension;
6644
+ layers: HeaderGroup[][];
6645
+ }
6646
+ declare class HeaderGroupContainer extends Component<Props$f, SpreadsheetChildEnv> {
6647
+ static template: string;
6648
+ static components: {
6649
+ RowGroup: typeof RowGroup;
6650
+ ColGroup: typeof ColGroup;
6651
+ Menu: typeof Menu;
6652
+ };
6653
+ menu: MenuState;
6654
+ getLayerOffset(layerIndex: number): number;
6655
+ onContextMenu(event: MouseEvent): void;
6656
+ openContextMenu(position: DOMCoordinates, menuItems: Action[]): void;
6657
+ closeMenu(): void;
6658
+ get groupComponent(): typeof RowGroup;
6659
+ get hasFrozenPane(): boolean;
6660
+ get scrollContainerStyle(): string;
6661
+ get frozenPaneContainerStyle(): string;
6662
+ get frozenPaneContainerSize(): Pixel;
6663
+ }
6664
+
6208
6665
  interface Props$e {
6209
6666
  component: string;
6210
6667
  panelProps: any;
6211
6668
  onCloseSidePanel: () => void;
6212
6669
  }
6213
- interface State$4 {
6670
+ interface State$5 {
6214
6671
  panel: SidePanelContent;
6215
6672
  }
6216
6673
  declare class SidePanel extends Component<Props$e, SpreadsheetChildEnv> {
6217
6674
  static template: string;
6218
- state: State$4;
6675
+ state: State$5;
6219
6676
  setup(): void;
6220
6677
  getTitle(): string;
6221
6678
  }
@@ -6241,48 +6698,48 @@ declare const deleteCellShiftUp: ActionSpec;
6241
6698
  declare const deleteCellShiftLeft: ActionSpec;
6242
6699
  declare const mergeCells: ActionSpec;
6243
6700
 
6244
- declare const ACTION_EDIT_undo: typeof undo;
6245
- declare const ACTION_EDIT_redo: typeof redo;
6701
+ declare const ACTION_EDIT_clearCols: typeof clearCols;
6702
+ declare const ACTION_EDIT_clearRows: typeof clearRows;
6246
6703
  declare const ACTION_EDIT_copy: typeof copy;
6247
6704
  declare const ACTION_EDIT_cut: typeof cut;
6705
+ declare const ACTION_EDIT_deleteCellShiftLeft: typeof deleteCellShiftLeft;
6706
+ declare const ACTION_EDIT_deleteCellShiftUp: typeof deleteCellShiftUp;
6707
+ declare const ACTION_EDIT_deleteCells: typeof deleteCells;
6708
+ declare const ACTION_EDIT_deleteCol: typeof deleteCol;
6709
+ declare const ACTION_EDIT_deleteCols: typeof deleteCols;
6710
+ declare const ACTION_EDIT_deleteRow: typeof deleteRow;
6711
+ declare const ACTION_EDIT_deleteRows: typeof deleteRows;
6712
+ declare const ACTION_EDIT_deleteValues: typeof deleteValues;
6713
+ declare const ACTION_EDIT_findAndReplace: typeof findAndReplace;
6714
+ declare const ACTION_EDIT_mergeCells: typeof mergeCells;
6248
6715
  declare const ACTION_EDIT_paste: typeof paste;
6249
6716
  declare const ACTION_EDIT_pasteSpecial: typeof pasteSpecial;
6250
- declare const ACTION_EDIT_pasteSpecialValue: typeof pasteSpecialValue;
6251
6717
  declare const ACTION_EDIT_pasteSpecialFormat: typeof pasteSpecialFormat;
6252
- declare const ACTION_EDIT_findAndReplace: typeof findAndReplace;
6253
- declare const ACTION_EDIT_deleteValues: typeof deleteValues;
6254
- declare const ACTION_EDIT_deleteRows: typeof deleteRows;
6255
- declare const ACTION_EDIT_deleteRow: typeof deleteRow;
6256
- declare const ACTION_EDIT_clearRows: typeof clearRows;
6257
- declare const ACTION_EDIT_deleteCols: typeof deleteCols;
6258
- declare const ACTION_EDIT_deleteCol: typeof deleteCol;
6259
- declare const ACTION_EDIT_clearCols: typeof clearCols;
6260
- declare const ACTION_EDIT_deleteCells: typeof deleteCells;
6261
- declare const ACTION_EDIT_deleteCellShiftUp: typeof deleteCellShiftUp;
6262
- declare const ACTION_EDIT_deleteCellShiftLeft: typeof deleteCellShiftLeft;
6263
- declare const ACTION_EDIT_mergeCells: typeof mergeCells;
6718
+ declare const ACTION_EDIT_pasteSpecialValue: typeof pasteSpecialValue;
6719
+ declare const ACTION_EDIT_redo: typeof redo;
6720
+ declare const ACTION_EDIT_undo: typeof undo;
6264
6721
  declare namespace ACTION_EDIT {
6265
6722
  export {
6266
- ACTION_EDIT_undo as undo,
6267
- ACTION_EDIT_redo as redo,
6723
+ ACTION_EDIT_clearCols as clearCols,
6724
+ ACTION_EDIT_clearRows as clearRows,
6268
6725
  ACTION_EDIT_copy as copy,
6269
6726
  ACTION_EDIT_cut as cut,
6727
+ ACTION_EDIT_deleteCellShiftLeft as deleteCellShiftLeft,
6728
+ ACTION_EDIT_deleteCellShiftUp as deleteCellShiftUp,
6729
+ ACTION_EDIT_deleteCells as deleteCells,
6730
+ ACTION_EDIT_deleteCol as deleteCol,
6731
+ ACTION_EDIT_deleteCols as deleteCols,
6732
+ ACTION_EDIT_deleteRow as deleteRow,
6733
+ ACTION_EDIT_deleteRows as deleteRows,
6734
+ ACTION_EDIT_deleteValues as deleteValues,
6735
+ ACTION_EDIT_findAndReplace as findAndReplace,
6736
+ ACTION_EDIT_mergeCells as mergeCells,
6270
6737
  ACTION_EDIT_paste as paste,
6271
6738
  ACTION_EDIT_pasteSpecial as pasteSpecial,
6272
- ACTION_EDIT_pasteSpecialValue as pasteSpecialValue,
6273
6739
  ACTION_EDIT_pasteSpecialFormat as pasteSpecialFormat,
6274
- ACTION_EDIT_findAndReplace as findAndReplace,
6275
- ACTION_EDIT_deleteValues as deleteValues,
6276
- ACTION_EDIT_deleteRows as deleteRows,
6277
- ACTION_EDIT_deleteRow as deleteRow,
6278
- ACTION_EDIT_clearRows as clearRows,
6279
- ACTION_EDIT_deleteCols as deleteCols,
6280
- ACTION_EDIT_deleteCol as deleteCol,
6281
- ACTION_EDIT_clearCols as clearCols,
6282
- ACTION_EDIT_deleteCells as deleteCells,
6283
- ACTION_EDIT_deleteCellShiftUp as deleteCellShiftUp,
6284
- ACTION_EDIT_deleteCellShiftLeft as deleteCellShiftLeft,
6285
- ACTION_EDIT_mergeCells as mergeCells,
6740
+ ACTION_EDIT_pasteSpecialValue as pasteSpecialValue,
6741
+ ACTION_EDIT_redo as redo,
6742
+ ACTION_EDIT_undo as undo,
6286
6743
  };
6287
6744
  }
6288
6745
 
@@ -6323,80 +6780,80 @@ declare const fillColor: ActionSpec;
6323
6780
  declare const formatCF: ActionSpec;
6324
6781
  declare const clearFormat: ActionSpec;
6325
6782
 
6783
+ declare const ACTION_FORMAT_clearFormat: typeof clearFormat;
6784
+ declare const ACTION_FORMAT_decraseDecimalPlaces: typeof decraseDecimalPlaces;
6785
+ declare const ACTION_FORMAT_fillColor: typeof fillColor;
6786
+ declare const ACTION_FORMAT_formatAlignment: typeof formatAlignment;
6787
+ declare const ACTION_FORMAT_formatAlignmentBottom: typeof formatAlignmentBottom;
6788
+ declare const ACTION_FORMAT_formatAlignmentCenter: typeof formatAlignmentCenter;
6789
+ declare const ACTION_FORMAT_formatAlignmentHorizontal: typeof formatAlignmentHorizontal;
6790
+ declare const ACTION_FORMAT_formatAlignmentLeft: typeof formatAlignmentLeft;
6791
+ declare const ACTION_FORMAT_formatAlignmentMiddle: typeof formatAlignmentMiddle;
6792
+ declare const ACTION_FORMAT_formatAlignmentRight: typeof formatAlignmentRight;
6793
+ declare const ACTION_FORMAT_formatAlignmentTop: typeof formatAlignmentTop;
6794
+ declare const ACTION_FORMAT_formatAlignmentVertical: typeof formatAlignmentVertical;
6795
+ declare const ACTION_FORMAT_formatBold: typeof formatBold;
6796
+ declare const ACTION_FORMAT_formatCF: typeof formatCF;
6797
+ declare const ACTION_FORMAT_formatCustomCurrency: typeof formatCustomCurrency;
6798
+ declare const ACTION_FORMAT_formatFontSize: typeof formatFontSize;
6799
+ declare const ACTION_FORMAT_formatItalic: typeof formatItalic;
6326
6800
  declare const ACTION_FORMAT_formatNumberAutomatic: typeof formatNumberAutomatic;
6327
- declare const ACTION_FORMAT_formatNumberNumber: typeof formatNumberNumber;
6328
- declare const ACTION_FORMAT_formatPercent: typeof formatPercent;
6329
- declare const ACTION_FORMAT_formatNumberPercent: typeof formatNumberPercent;
6330
6801
  declare const ACTION_FORMAT_formatNumberCurrency: typeof formatNumberCurrency;
6331
6802
  declare const ACTION_FORMAT_formatNumberCurrencyRounded: typeof formatNumberCurrencyRounded;
6332
- declare const ACTION_FORMAT_formatCustomCurrency: typeof formatCustomCurrency;
6333
6803
  declare const ACTION_FORMAT_formatNumberDate: typeof formatNumberDate;
6334
- declare const ACTION_FORMAT_formatNumberTime: typeof formatNumberTime;
6335
6804
  declare const ACTION_FORMAT_formatNumberDateTime: typeof formatNumberDateTime;
6336
6805
  declare const ACTION_FORMAT_formatNumberDuration: typeof formatNumberDuration;
6337
- declare const ACTION_FORMAT_incraseDecimalPlaces: typeof incraseDecimalPlaces;
6338
- declare const ACTION_FORMAT_decraseDecimalPlaces: typeof decraseDecimalPlaces;
6339
- declare const ACTION_FORMAT_formatBold: typeof formatBold;
6340
- declare const ACTION_FORMAT_formatItalic: typeof formatItalic;
6341
- declare const ACTION_FORMAT_formatUnderline: typeof formatUnderline;
6806
+ declare const ACTION_FORMAT_formatNumberNumber: typeof formatNumberNumber;
6807
+ declare const ACTION_FORMAT_formatNumberPercent: typeof formatNumberPercent;
6808
+ declare const ACTION_FORMAT_formatNumberTime: typeof formatNumberTime;
6809
+ declare const ACTION_FORMAT_formatPercent: typeof formatPercent;
6342
6810
  declare const ACTION_FORMAT_formatStrikethrough: typeof formatStrikethrough;
6343
- declare const ACTION_FORMAT_formatFontSize: typeof formatFontSize;
6344
- declare const ACTION_FORMAT_formatAlignment: typeof formatAlignment;
6345
- declare const ACTION_FORMAT_formatAlignmentHorizontal: typeof formatAlignmentHorizontal;
6346
- declare const ACTION_FORMAT_formatAlignmentLeft: typeof formatAlignmentLeft;
6347
- declare const ACTION_FORMAT_formatAlignmentCenter: typeof formatAlignmentCenter;
6348
- declare const ACTION_FORMAT_formatAlignmentRight: typeof formatAlignmentRight;
6349
- declare const ACTION_FORMAT_formatAlignmentVertical: typeof formatAlignmentVertical;
6350
- declare const ACTION_FORMAT_formatAlignmentTop: typeof formatAlignmentTop;
6351
- declare const ACTION_FORMAT_formatAlignmentMiddle: typeof formatAlignmentMiddle;
6352
- declare const ACTION_FORMAT_formatAlignmentBottom: typeof formatAlignmentBottom;
6353
- declare const ACTION_FORMAT_formatWrappingIcon: typeof formatWrappingIcon;
6811
+ declare const ACTION_FORMAT_formatUnderline: typeof formatUnderline;
6354
6812
  declare const ACTION_FORMAT_formatWrapping: typeof formatWrapping;
6813
+ declare const ACTION_FORMAT_formatWrappingClip: typeof formatWrappingClip;
6814
+ declare const ACTION_FORMAT_formatWrappingIcon: typeof formatWrappingIcon;
6355
6815
  declare const ACTION_FORMAT_formatWrappingOverflow: typeof formatWrappingOverflow;
6356
6816
  declare const ACTION_FORMAT_formatWrappingWrap: typeof formatWrappingWrap;
6357
- declare const ACTION_FORMAT_formatWrappingClip: typeof formatWrappingClip;
6817
+ declare const ACTION_FORMAT_incraseDecimalPlaces: typeof incraseDecimalPlaces;
6358
6818
  declare const ACTION_FORMAT_textColor: typeof textColor;
6359
- declare const ACTION_FORMAT_fillColor: typeof fillColor;
6360
- declare const ACTION_FORMAT_formatCF: typeof formatCF;
6361
- declare const ACTION_FORMAT_clearFormat: typeof clearFormat;
6362
6819
  declare namespace ACTION_FORMAT {
6363
6820
  export {
6821
+ ACTION_FORMAT_clearFormat as clearFormat,
6822
+ ACTION_FORMAT_decraseDecimalPlaces as decraseDecimalPlaces,
6823
+ ACTION_FORMAT_fillColor as fillColor,
6824
+ ACTION_FORMAT_formatAlignment as formatAlignment,
6825
+ ACTION_FORMAT_formatAlignmentBottom as formatAlignmentBottom,
6826
+ ACTION_FORMAT_formatAlignmentCenter as formatAlignmentCenter,
6827
+ ACTION_FORMAT_formatAlignmentHorizontal as formatAlignmentHorizontal,
6828
+ ACTION_FORMAT_formatAlignmentLeft as formatAlignmentLeft,
6829
+ ACTION_FORMAT_formatAlignmentMiddle as formatAlignmentMiddle,
6830
+ ACTION_FORMAT_formatAlignmentRight as formatAlignmentRight,
6831
+ ACTION_FORMAT_formatAlignmentTop as formatAlignmentTop,
6832
+ ACTION_FORMAT_formatAlignmentVertical as formatAlignmentVertical,
6833
+ ACTION_FORMAT_formatBold as formatBold,
6834
+ ACTION_FORMAT_formatCF as formatCF,
6835
+ ACTION_FORMAT_formatCustomCurrency as formatCustomCurrency,
6836
+ ACTION_FORMAT_formatFontSize as formatFontSize,
6837
+ ACTION_FORMAT_formatItalic as formatItalic,
6364
6838
  ACTION_FORMAT_formatNumberAutomatic as formatNumberAutomatic,
6365
- ACTION_FORMAT_formatNumberNumber as formatNumberNumber,
6366
- ACTION_FORMAT_formatPercent as formatPercent,
6367
- ACTION_FORMAT_formatNumberPercent as formatNumberPercent,
6368
6839
  ACTION_FORMAT_formatNumberCurrency as formatNumberCurrency,
6369
6840
  ACTION_FORMAT_formatNumberCurrencyRounded as formatNumberCurrencyRounded,
6370
- ACTION_FORMAT_formatCustomCurrency as formatCustomCurrency,
6371
6841
  ACTION_FORMAT_formatNumberDate as formatNumberDate,
6372
- ACTION_FORMAT_formatNumberTime as formatNumberTime,
6373
6842
  ACTION_FORMAT_formatNumberDateTime as formatNumberDateTime,
6374
6843
  ACTION_FORMAT_formatNumberDuration as formatNumberDuration,
6375
- ACTION_FORMAT_incraseDecimalPlaces as incraseDecimalPlaces,
6376
- ACTION_FORMAT_decraseDecimalPlaces as decraseDecimalPlaces,
6377
- ACTION_FORMAT_formatBold as formatBold,
6378
- ACTION_FORMAT_formatItalic as formatItalic,
6379
- ACTION_FORMAT_formatUnderline as formatUnderline,
6844
+ ACTION_FORMAT_formatNumberNumber as formatNumberNumber,
6845
+ ACTION_FORMAT_formatNumberPercent as formatNumberPercent,
6846
+ ACTION_FORMAT_formatNumberTime as formatNumberTime,
6847
+ ACTION_FORMAT_formatPercent as formatPercent,
6380
6848
  ACTION_FORMAT_formatStrikethrough as formatStrikethrough,
6381
- ACTION_FORMAT_formatFontSize as formatFontSize,
6382
- ACTION_FORMAT_formatAlignment as formatAlignment,
6383
- ACTION_FORMAT_formatAlignmentHorizontal as formatAlignmentHorizontal,
6384
- ACTION_FORMAT_formatAlignmentLeft as formatAlignmentLeft,
6385
- ACTION_FORMAT_formatAlignmentCenter as formatAlignmentCenter,
6386
- ACTION_FORMAT_formatAlignmentRight as formatAlignmentRight,
6387
- ACTION_FORMAT_formatAlignmentVertical as formatAlignmentVertical,
6388
- ACTION_FORMAT_formatAlignmentTop as formatAlignmentTop,
6389
- ACTION_FORMAT_formatAlignmentMiddle as formatAlignmentMiddle,
6390
- ACTION_FORMAT_formatAlignmentBottom as formatAlignmentBottom,
6391
- ACTION_FORMAT_formatWrappingIcon as formatWrappingIcon,
6849
+ ACTION_FORMAT_formatUnderline as formatUnderline,
6392
6850
  ACTION_FORMAT_formatWrapping as formatWrapping,
6851
+ ACTION_FORMAT_formatWrappingClip as formatWrappingClip,
6852
+ ACTION_FORMAT_formatWrappingIcon as formatWrappingIcon,
6393
6853
  ACTION_FORMAT_formatWrappingOverflow as formatWrappingOverflow,
6394
6854
  ACTION_FORMAT_formatWrappingWrap as formatWrappingWrap,
6395
- ACTION_FORMAT_formatWrappingClip as formatWrappingClip,
6855
+ ACTION_FORMAT_incraseDecimalPlaces as incraseDecimalPlaces,
6396
6856
  ACTION_FORMAT_textColor as textColor,
6397
- ACTION_FORMAT_fillColor as fillColor,
6398
- ACTION_FORMAT_formatCF as formatCF,
6399
- ACTION_FORMAT_clearFormat as clearFormat,
6400
6857
  };
6401
6858
  }
6402
6859
 
@@ -6419,47 +6876,62 @@ declare const freezeCurrentCol: ActionSpec;
6419
6876
  declare const viewGridlines: ActionSpec;
6420
6877
  declare const viewFormulas: ActionSpec;
6421
6878
  declare const createRemoveFilter: ActionSpec;
6879
+ declare const groupColumns: ActionSpec;
6880
+ declare const groupRows: ActionSpec;
6881
+ declare const ungroupColumns: ActionSpec;
6882
+ declare const ungroupRows: ActionSpec;
6883
+ declare function canUngroupHeaders(env: SpreadsheetChildEnv, dimension: Dimension): boolean;
6422
6884
 
6885
+ declare const ACTION_VIEW_canUngroupHeaders: typeof canUngroupHeaders;
6886
+ declare const ACTION_VIEW_createRemoveFilter: typeof createRemoveFilter;
6887
+ declare const ACTION_VIEW_freezeCurrentCol: typeof freezeCurrentCol;
6888
+ declare const ACTION_VIEW_freezeCurrentRow: typeof freezeCurrentRow;
6889
+ declare const ACTION_VIEW_freezeFirstCol: typeof freezeFirstCol;
6890
+ declare const ACTION_VIEW_freezeFirstRow: typeof freezeFirstRow;
6891
+ declare const ACTION_VIEW_freezePane: typeof freezePane;
6892
+ declare const ACTION_VIEW_freezeSecondCol: typeof freezeSecondCol;
6893
+ declare const ACTION_VIEW_freezeSecondRow: typeof freezeSecondRow;
6894
+ declare const ACTION_VIEW_groupColumns: typeof groupColumns;
6895
+ declare const ACTION_VIEW_groupRows: typeof groupRows;
6423
6896
  declare const ACTION_VIEW_hideCols: typeof hideCols;
6424
- declare const ACTION_VIEW_unhideCols: typeof unhideCols;
6425
- declare const ACTION_VIEW_unhideAllCols: typeof unhideAllCols;
6426
6897
  declare const ACTION_VIEW_hideRows: typeof hideRows;
6427
- declare const ACTION_VIEW_unhideRows: typeof unhideRows;
6428
- declare const ACTION_VIEW_unhideAllRows: typeof unhideAllRows;
6898
+ declare const ACTION_VIEW_unFreezeCols: typeof unFreezeCols;
6429
6899
  declare const ACTION_VIEW_unFreezePane: typeof unFreezePane;
6430
- declare const ACTION_VIEW_freezePane: typeof freezePane;
6431
6900
  declare const ACTION_VIEW_unFreezeRows: typeof unFreezeRows;
6432
- declare const ACTION_VIEW_freezeFirstRow: typeof freezeFirstRow;
6433
- declare const ACTION_VIEW_freezeSecondRow: typeof freezeSecondRow;
6434
- declare const ACTION_VIEW_freezeCurrentRow: typeof freezeCurrentRow;
6435
- declare const ACTION_VIEW_unFreezeCols: typeof unFreezeCols;
6436
- declare const ACTION_VIEW_freezeFirstCol: typeof freezeFirstCol;
6437
- declare const ACTION_VIEW_freezeSecondCol: typeof freezeSecondCol;
6438
- declare const ACTION_VIEW_freezeCurrentCol: typeof freezeCurrentCol;
6439
- declare const ACTION_VIEW_viewGridlines: typeof viewGridlines;
6901
+ declare const ACTION_VIEW_ungroupColumns: typeof ungroupColumns;
6902
+ declare const ACTION_VIEW_ungroupRows: typeof ungroupRows;
6903
+ declare const ACTION_VIEW_unhideAllCols: typeof unhideAllCols;
6904
+ declare const ACTION_VIEW_unhideAllRows: typeof unhideAllRows;
6905
+ declare const ACTION_VIEW_unhideCols: typeof unhideCols;
6906
+ declare const ACTION_VIEW_unhideRows: typeof unhideRows;
6440
6907
  declare const ACTION_VIEW_viewFormulas: typeof viewFormulas;
6441
- declare const ACTION_VIEW_createRemoveFilter: typeof createRemoveFilter;
6908
+ declare const ACTION_VIEW_viewGridlines: typeof viewGridlines;
6442
6909
  declare namespace ACTION_VIEW {
6443
6910
  export {
6911
+ ACTION_VIEW_canUngroupHeaders as canUngroupHeaders,
6912
+ ACTION_VIEW_createRemoveFilter as createRemoveFilter,
6913
+ ACTION_VIEW_freezeCurrentCol as freezeCurrentCol,
6914
+ ACTION_VIEW_freezeCurrentRow as freezeCurrentRow,
6915
+ ACTION_VIEW_freezeFirstCol as freezeFirstCol,
6916
+ ACTION_VIEW_freezeFirstRow as freezeFirstRow,
6917
+ ACTION_VIEW_freezePane as freezePane,
6918
+ ACTION_VIEW_freezeSecondCol as freezeSecondCol,
6919
+ ACTION_VIEW_freezeSecondRow as freezeSecondRow,
6920
+ ACTION_VIEW_groupColumns as groupColumns,
6921
+ ACTION_VIEW_groupRows as groupRows,
6444
6922
  ACTION_VIEW_hideCols as hideCols,
6445
- ACTION_VIEW_unhideCols as unhideCols,
6446
- ACTION_VIEW_unhideAllCols as unhideAllCols,
6447
6923
  ACTION_VIEW_hideRows as hideRows,
6448
- ACTION_VIEW_unhideRows as unhideRows,
6449
- ACTION_VIEW_unhideAllRows as unhideAllRows,
6924
+ ACTION_VIEW_unFreezeCols as unFreezeCols,
6450
6925
  ACTION_VIEW_unFreezePane as unFreezePane,
6451
- ACTION_VIEW_freezePane as freezePane,
6452
6926
  ACTION_VIEW_unFreezeRows as unFreezeRows,
6453
- ACTION_VIEW_freezeFirstRow as freezeFirstRow,
6454
- ACTION_VIEW_freezeSecondRow as freezeSecondRow,
6455
- ACTION_VIEW_freezeCurrentRow as freezeCurrentRow,
6456
- ACTION_VIEW_unFreezeCols as unFreezeCols,
6457
- ACTION_VIEW_freezeFirstCol as freezeFirstCol,
6458
- ACTION_VIEW_freezeSecondCol as freezeSecondCol,
6459
- ACTION_VIEW_freezeCurrentCol as freezeCurrentCol,
6460
- ACTION_VIEW_viewGridlines as viewGridlines,
6927
+ ACTION_VIEW_ungroupColumns as ungroupColumns,
6928
+ ACTION_VIEW_ungroupRows as ungroupRows,
6929
+ ACTION_VIEW_unhideAllCols as unhideAllCols,
6930
+ ACTION_VIEW_unhideAllRows as unhideAllRows,
6931
+ ACTION_VIEW_unhideCols as unhideCols,
6932
+ ACTION_VIEW_unhideRows as unhideRows,
6461
6933
  ACTION_VIEW_viewFormulas as viewFormulas,
6462
- ACTION_VIEW_createRemoveFilter as createRemoveFilter,
6934
+ ACTION_VIEW_viewGridlines as viewGridlines,
6463
6935
  };
6464
6936
  }
6465
6937
 
@@ -6484,7 +6956,7 @@ declare class ActionButton extends Component<Props$d, SpreadsheetChildEnv> {
6484
6956
  }
6485
6957
 
6486
6958
  type Tool = "borderColorTool" | "borderTypeTool";
6487
- interface State$3 {
6959
+ interface State$4 {
6488
6960
  activeTool: Tool | undefined;
6489
6961
  }
6490
6962
  interface BorderEditorProps {
@@ -6509,7 +6981,7 @@ declare class BorderEditor extends Component<BorderEditorProps, SpreadsheetChild
6509
6981
  el: HTMLElement | null;
6510
6982
  };
6511
6983
  borderStyles: readonly ["thin", "medium", "thick", "dashed", "dotted"];
6512
- state: State$3;
6984
+ state: State$4;
6513
6985
  toggleDropdownTool(tool: Tool): void;
6514
6986
  closeDropdown(): void;
6515
6987
  setBorderPosition(position: BorderPosition): void;
@@ -6527,7 +6999,7 @@ interface Props$c {
6527
6999
  dropdownMaxHeight?: Pixel;
6528
7000
  class?: string;
6529
7001
  }
6530
- interface State$2 {
7002
+ interface State$3 {
6531
7003
  currentColor: Color;
6532
7004
  currentStyle: BorderStyle;
6533
7005
  currentPosition: BorderPosition | undefined;
@@ -6540,7 +7012,7 @@ declare class BorderEditorWidget extends Component<Props$c, SpreadsheetChildEnv>
6540
7012
  borderEditorButtonRef: {
6541
7013
  el: HTMLElement | null;
6542
7014
  };
6543
- state: State$2;
7015
+ state: State$3;
6544
7016
  get borderEditorAnchorRect(): Rect;
6545
7017
  onBorderPositionPicked(position: BorderPosition): void;
6546
7018
  onBorderColorPicked(color: Color): void;
@@ -6550,8 +7022,10 @@ declare class BorderEditorWidget extends Component<Props$c, SpreadsheetChildEnv>
6550
7022
 
6551
7023
  interface Props$b {
6552
7024
  values: AutocompleteValue[];
6553
- selectedIndex: number;
7025
+ selectedIndex: number | undefined;
7026
+ getHtmlContent: (value: string) => string;
6554
7027
  onValueSelected: (value: string) => void;
7028
+ onValueHovered: (index: string) => void;
6555
7029
  }
6556
7030
  declare class TextValueProvider extends Component<Props$b> {
6557
7031
  static template: string;
@@ -6657,8 +7131,10 @@ interface ComposerState$1 {
6657
7131
  }
6658
7132
  interface AutoCompleteState {
6659
7133
  showProvider: boolean;
6660
- selectedIndex: number;
7134
+ selectedIndex: number | undefined;
6661
7135
  values: AutocompleteValue[];
7136
+ type: "function" | "dataValidation";
7137
+ getHtmlContent: (text: string) => HtmlContent[];
6662
7138
  }
6663
7139
  interface FunctionDescriptionState {
6664
7140
  showDescription: boolean;
@@ -6705,15 +7181,16 @@ declare class Composer extends Component<ComposerProps, SpreadsheetChildEnv> {
6705
7181
  onCompositionEnd(): void;
6706
7182
  onKeydown(ev: KeyboardEvent): void;
6707
7183
  onInput(ev: InputEvent): void;
6708
- onKeyup(): void;
6709
- showAutocomplete(searchTerm: string): void;
7184
+ onKeyup(ev: KeyboardEvent): void;
7185
+ showFunctionAutocomplete(searchTerm: string): void;
7186
+ updateAutoCompleteIndex(index: number): void;
6710
7187
  /**
6711
7188
  * This is required to ensure the content helper selection is
6712
7189
  * properly updated on "onclick" events. Depending on the browser,
6713
7190
  * the callback onClick from the composer will be executed before
6714
7191
  * the selection was updated in the dom, which means we capture an
6715
7192
  * wrong selection which is then forced upon the content helper on
6716
- * patchContent.
7193
+ * processContent.
6717
7194
  */
6718
7195
  onMousedown(ev: MouseEvent): void;
6719
7196
  onClick(): void;
@@ -6738,6 +7215,7 @@ declare class Composer extends Component<ComposerProps, SpreadsheetChildEnv> {
6738
7215
  */
6739
7216
  private processTokenAtCursor;
6740
7217
  private autoComplete;
7218
+ private showDataValidationAutocomplete;
6741
7219
  }
6742
7220
 
6743
7221
  interface Props$9 {
@@ -6753,7 +7231,7 @@ declare class TopBarComposer extends Component<Props$9, SpreadsheetChildEnv> {
6753
7231
  get containerStyle(): string;
6754
7232
  }
6755
7233
 
6756
- interface State$1 {
7234
+ interface State$2 {
6757
7235
  isOpen: boolean;
6758
7236
  }
6759
7237
  interface Props$8 {
@@ -6765,7 +7243,7 @@ declare class FontSizeEditor extends Component<Props$8, SpreadsheetChildEnv> {
6765
7243
  static template: string;
6766
7244
  static components: {};
6767
7245
  fontSizes: number[];
6768
- dropdown: State$1;
7246
+ dropdown: State$2;
6769
7247
  private inputRef;
6770
7248
  private rootEditorRef;
6771
7249
  setup(): void;
@@ -6790,7 +7268,7 @@ declare class PaintFormatButton extends Component<Props$7, SpreadsheetChildEnv>
6790
7268
  togglePaintFormat(): void;
6791
7269
  }
6792
7270
 
6793
- interface State {
7271
+ interface State$1 {
6794
7272
  menuState: MenuState;
6795
7273
  activeTool: string;
6796
7274
  fillColor: string;
@@ -6815,7 +7293,7 @@ declare class TopBar extends Component<Props$6, SpreadsheetChildEnv> {
6815
7293
  PaintFormatButton: typeof PaintFormatButton;
6816
7294
  BorderEditorWidget: typeof BorderEditorWidget;
6817
7295
  };
6818
- state: State;
7296
+ state: State$1;
6819
7297
  isSelectingMenu: boolean;
6820
7298
  openedEl: HTMLElement | null;
6821
7299
  menus: Action[];
@@ -6860,8 +7338,8 @@ declare class Spreadsheet extends Component<SpreadsheetProps, SpreadsheetChildEn
6860
7338
  BottomBar: typeof BottomBar;
6861
7339
  SidePanel: typeof SidePanel;
6862
7340
  SpreadsheetDashboard: typeof SpreadsheetDashboard;
7341
+ HeaderGroupContainer: typeof HeaderGroupContainer;
6863
7342
  };
6864
- static _t: (s: string) => string;
6865
7343
  sidePanel: SidePanelState;
6866
7344
  composer: ComposerState;
6867
7345
  private _focusGrid?;
@@ -6875,7 +7353,6 @@ declare class Spreadsheet extends Component<SpreadsheetProps, SpreadsheetChildEn
6875
7353
  private bindModelEvents;
6876
7354
  private unbindModelEvents;
6877
7355
  private checkViewportSize;
6878
- private onNotifyUI;
6879
7356
  openSidePanel(panel: string, panelProps: any): void;
6880
7357
  closeSidePanel(): void;
6881
7358
  toggleSidePanel(panel: string, panelProps: any): void;
@@ -6889,6 +7366,9 @@ declare class Spreadsheet extends Component<SpreadsheetProps, SpreadsheetChildEn
6889
7366
  */
6890
7367
  private setComposerContent;
6891
7368
  get gridHeight(): Pixel;
7369
+ get gridContainerStyle(): string;
7370
+ get rowLayers(): HeaderGroup[][];
7371
+ get colLayers(): HeaderGroup[][];
6892
7372
  }
6893
7373
 
6894
7374
  interface Props$5 {
@@ -7087,7 +7567,7 @@ declare class Highlight extends Component<Props$2, SpreadsheetChildEnv> {
7087
7567
  * - a horizontal resizer (to resize columns)
7088
7568
  * - a vertical resizer (same, for rows)
7089
7569
  */
7090
- type ContextMenuType = "ROW" | "COL" | "CELL" | "FILTER";
7570
+ type ContextMenuType = "ROW" | "COL" | "CELL" | "FILTER" | "GROUP_HEADERS" | "UNGROUP_HEADERS";
7091
7571
  interface Props$1 {
7092
7572
  sidePanelIsOpen: boolean;
7093
7573
  exposeFocus: (focus: () => void) => void;
@@ -7157,7 +7637,34 @@ declare class Grid extends Component<Props$1, SpreadsheetChildEnv> {
7157
7637
  private clearFormatting;
7158
7638
  private setHorizontalAlign;
7159
7639
  closeMenu(): void;
7640
+ private processHeaderGroupingKey;
7641
+ private processHeaderGroupingEventOnHeaders;
7642
+ private processHeaderGroupingEventOnWholeSheet;
7643
+ private processHeaderGroupingEventOnGrid;
7644
+ }
7645
+
7646
+ type Direction = "horizontal" | "vertical";
7647
+ interface DragAndDropItemsPartial {
7648
+ id: UID;
7649
+ size: Pixel;
7650
+ position: Pixel;
7651
+ }
7652
+ interface DndPartialArgs {
7653
+ draggedItemId: UID;
7654
+ initialMousePosition: Pixel;
7655
+ items: DragAndDropItemsPartial[];
7656
+ containerEl: HTMLElement;
7657
+ onChange?: () => void;
7658
+ onCancel?: () => void;
7659
+ onDragEnd?: (itemId: UID, indexAtEnd: Pixel) => void;
7160
7660
  }
7661
+ interface State {
7662
+ itemsStyle: Record<UID, string>;
7663
+ draggedItemId: UID | undefined;
7664
+ start: (direction: Direction, args: DndPartialArgs) => void;
7665
+ cancel: () => void;
7666
+ }
7667
+ declare function useDragAndDropListItems(): State;
7161
7668
 
7162
7669
  interface Props {
7163
7670
  onCloseSidePanel: () => void;
@@ -7196,7 +7703,7 @@ declare function chartFontColor(backgroundColor: Color | undefined): Color;
7196
7703
  /**
7197
7704
  * Get a default chart js configuration
7198
7705
  */
7199
- declare function getDefaultChartJsRuntime(chart: AbstractChart, labels: string[], fontColor: Color, { format, locale }: LocaleFormat): ChartConfiguration;
7706
+ declare function getDefaultChartJsRuntime(chart: AbstractChart, labels: string[], fontColor: Color, { format, locale }: LocaleFormat): Required<ChartConfiguration>;
7200
7707
  /** See https://www.chartjs.org/docs/latest/charts/area.html#filling-modes */
7201
7708
  declare function getFillingMode(index: number): "origin" | number;
7202
7709
 
@@ -7214,6 +7721,17 @@ declare function createEmptyExcelSheet(sheetId: UID, name: string): ExcelSheetDa
7214
7721
 
7215
7722
  declare function genericRepeat<T extends Command>(getters: Getters, command: T): T;
7216
7723
 
7724
+ type SprintfValues = (string | String | number)[] | [{
7725
+ [key: string]: string | number;
7726
+ }];
7727
+ type TranslationFunction = (string: string, ...values: SprintfValues) => string;
7728
+ /***
7729
+ * Allow to inject a translation function from outside o-spreadsheet.
7730
+ * @param tfn the function that will do the translation
7731
+ * @param loaded a function that returns true when the translation is loaded
7732
+ */
7733
+ declare function setTranslationMethod(tfn: TranslationFunction, loaded?: () => boolean): void;
7734
+
7217
7735
  /**
7218
7736
  * We export here all entities that needs to be accessed publicly by Odoo.
7219
7737
  *
@@ -7241,7 +7759,7 @@ declare const registries: {
7241
7759
  linkMenuRegistry: MenuItemRegistry;
7242
7760
  functionRegistry: {
7243
7761
  mapping: {
7244
- [key: string]: ComputeFunction<Arg, FunctionReturn>;
7762
+ [key: string]: ComputeFunction<Arg, ValueAndFormat | Matrix<ValueAndFormat>>;
7245
7763
  };
7246
7764
  add(name: string, addDescr: AddFunctionDescription): any;
7247
7765
  content: {
@@ -7317,6 +7835,8 @@ declare const helpers: {
7317
7835
  isDefined: typeof isDefined;
7318
7836
  lazy: typeof lazy;
7319
7837
  genericRepeat: typeof genericRepeat;
7838
+ createAction: typeof createAction;
7839
+ createActions: typeof createActions;
7320
7840
  };
7321
7841
  declare const links: {
7322
7842
  isMarkdownLink: typeof isMarkdownLink;
@@ -7341,10 +7861,16 @@ declare const components: {
7341
7861
  ScorecardChartConfigPanel: typeof ScorecardChartConfigPanel;
7342
7862
  ScorecardChartDesignPanel: typeof ScorecardChartDesignPanel;
7343
7863
  FigureComponent: typeof FigureComponent;
7864
+ Menu: typeof Menu;
7865
+ };
7866
+ declare const hooks: {
7867
+ useDragAndDropListItems: typeof useDragAndDropListItems;
7868
+ };
7869
+ declare function addFunction(functionName: string, functionDescription: AddFunctionDescription): {
7870
+ addFunction: (fName: string, fDescription: AddFunctionDescription) => any;
7344
7871
  };
7345
- declare function addFunction(functionName: string, functionDescription: FunctionDescription): void;
7346
7872
  declare const constants: {
7347
7873
  DEFAULT_LOCALE: Locale;
7348
7874
  };
7349
7875
 
7350
- export { AbstractChart, CancelledReason, Client, ClientJoinedMessage, ClientLeftMessage, ClientMovedMessage, CollaborationMessage, CommandResult, CorePlugin, DispatchResult, EvaluationError, Model, Registry, RemoteRevisionMessage, Revision, RevisionRedoneMessage, RevisionUndoneMessage, SPREADSHEET_DIMENSIONS, Spreadsheet, TransportService, UIPlugin, __info__, addFunction, astToFormula, compile, components, constants, convertAstNodes, coreTypes, findCellInNewZone, functionCache, helpers, invalidateCFEvaluationCommands, invalidateDependenciesCommands, invalidateEvaluationCommands, iterateAstNodes, links, load, parse, readonlyAllowedCommands, registries, setDefaultSheetViewSize, setTranslationMethod, tokenize };
7876
+ export { AbstractChart, CancelledReason, Client, ClientJoinedMessage, ClientLeftMessage, ClientMovedMessage, CollaborationMessage, CommandResult, CorePlugin, DispatchResult, EvaluationError, Model, Registry, RemoteRevisionMessage, Revision, RevisionRedoneMessage, RevisionUndoneMessage, SPREADSHEET_DIMENSIONS, Spreadsheet, TransportService, UIPlugin, __info__, addFunction, astToFormula, compile, components, constants, convertAstNodes, coreTypes, findCellInNewZone, functionCache, helpers, hooks, invalidateCFEvaluationCommands, invalidateDependenciesCommands, invalidateEvaluationCommands, iterateAstNodes, links, load, parse, readonlyAllowedCommands, registries, setDefaultSheetViewSize, setTranslationMethod, tokenize };