import { Property, NotifyPropertyChanges, INotifyPropertyChanged, ModuleDeclaration, Event, isUndefined, attributes } from '@syncfusion/ej2-base';import { addClass, removeClass, EmitType, Complex, formatUnit, L10n, isNullOrUndefined, Browser } from '@syncfusion/ej2-base';import { detach, select, closest, setStyleAttribute, EventHandler } from '@syncfusion/ej2-base';import { MenuItemModel, BeforeOpenCloseMenuEventArgs, ItemModel } from '@syncfusion/ej2-navigations';import { mouseDown, spreadsheetDestroyed, keyUp, BeforeOpenEventArgs, clearViewer, refreshSheetTabs, positionAutoFillElement, readonlyAlert, deInitProperties, UndoRedoEventArgs, isColumnRange, isRowRange, findDlg, refreshCommentsPane, unProtectSheetPassword, removeWorkbookProtection, getHashPassword } from '../common/index';import { performUndoRedo, overlay, DialogBeforeOpenEventArgs, createImageElement, deleteImage, removeHyperlink } from '../common/index';import { HideShowEventArgs, sheetNameUpdate, updateUndoRedoCollection, getUpdateUsingRaf, setAutoFit } from '../common/index';import { actionEvents, CollaborativeEditArgs, keyDown, enableFileMenuItems, hideToolbarItems, updateAction } from '../common/index';import { ICellRenderer, colWidthChanged, rowHeightChanged, hideRibbonTabs, addFileMenuItems, getSiblingsHeight } from '../common/index';import { defaultLocale, locale, setResize, initiateFilterUI, clearFilter, focus, removeDesignChart } from '../common/index';import { CellEditEventArgs, CellSaveEventArgs, ribbon, formulaBar, sheetTabs, formulaOperation, addRibbonTabs } from '../common/index';import { addContextMenuItems, removeContextMenuItems, enableContextMenuItems, selectRange, addToolbarItems } from '../common/index';import { cut, copy, paste, PasteSpecialType, dialog, editOperation, activeSheetChanged, refreshFormulaDatasource } from '../common/index';import { Render } from '../renderer/render';import { Scroll, VirtualScroll, Edit, CellFormat, Selection, KeyboardNavigation, KeyboardShortcut, WrapText } from '../actions/index';import { Clipboard, ShowHide, UndoRedo, SpreadsheetHyperlink, Resize, Insert, Delete, FindAndReplace, Merge, AutoFill, SpreadsheetNote, SpreadsheetComment } from '../actions/index';import { ProtectSheet } from '../actions/index';import { CellRenderEventArgs, IRenderer, IViewport, OpenOptions, MenuSelectEventArgs, click, hideFileMenuItems } from '../common/index';import { Dialog, ActionEvents, Overlay } from '../services/index';import { ServiceLocator } from '../../workbook/services/index';import { SheetModel, getColumnsWidth, getSheetIndex, WorkbookHyperlink, HyperlinkModel, DefineNameModel } from './../../workbook/index';import { BeforeHyperlinkArgs, AfterHyperlinkArgs, FindOptions, ValidationModel, getCellAddress, getColumnHeaderText, SortCollectionModel, PrintOptions, getSwapRange, getSheetIndexFromAddress, isReadOnlyCells, updateSortCollection } from './../../workbook/common/index';import { BeforeCellFormatArgs, afterHyperlinkCreate, getColIndex, CellStyleModel, setLinkModel } from './../../workbook/index';import { BeforeSaveEventArgs, SaveCompleteEventArgs, WorkbookInsert, WorkbookDelete, WorkbookMerge } from './../../workbook/index';import { getSheetNameFromAddress, DataBind, CellModel, beforeHyperlinkCreate, DataSourceChangedEventArgs } from './../../workbook/index';import { BeforeSortEventArgs, SortOptions, sortComplete, SortEventArgs, dataSourceChanged, isHiddenRow, isHiddenCol } from './../../workbook/index';import { getSheetIndexFromId, WorkbookEdit, WorkbookOpen, WorkbookSave, WorkbookCellFormat, WorkbookSort, getSheet } from './../../workbook/index';import { FilterOptions, FilterEventArgs, ProtectSettingsModel, findKeyUp, refreshRibbonIcons, hideShow } from './../../workbook/index';import { Workbook } from '../../workbook/base/workbook';import { getRequiredModules, ScrollSettings, ScrollSettingsModel, SelectionSettingsModel, enableToolbarItems } from '../common/index';import { SelectionSettings, BeforeSelectEventArgs, SelectEventArgs, getStartEvent, enableRibbonTabs, getDPRValue } from '../common/index';import { createSpinner, showSpinner, hideSpinner } from '@syncfusion/ej2-popups';import { setRowHeight, getRowsHeight, getColumnWidth, getRowHeight, getCell, setColumn, setCell, ColumnModel, RowModel, setRow } from './../../workbook/base/index';import { getRangeIndexes, getIndexesFromAddress, getCellIndexes, WorkbookNumberFormat, WorkbookFormula } from '../../workbook/index';import { Ribbon, FormulaBar, SheetTabs, Open, ContextMenu, Save, NumberFormat, Formula } from '../integrations/index';import { Sort, Filter, SpreadsheetImage, SpreadsheetChart } from '../integrations/index';import { getColumn, getRow, WorkbookFilter, refreshInsertDelete, InsertDeleteEventArgs, RangeModel } from '../../workbook/index';import { PredicateModel, fltrPrevent } from '@syncfusion/ej2-grids';import { RibbonItemModel } from '../../ribbon/index';import { DataValidation, spreadsheetCreated, showAggregate } from './../index';import { WorkbookDataValidation, WorkbookConditionalFormat, WorkbookFindAndReplace, WorkbookAutoFill } from '../../workbook/actions/index';import { FindAllArgs, findAllValues, ClearOptions, ConditionalFormatModel, ImageModel, getFormattedCellObject } from './../../workbook/common/index';import { ConditionalFormatting } from '../actions/conditional-formatting';import { WorkbookImage, WorkbookChart, updateView, focusChartBorder, ExtendedRange, NumberFormatArgs } from '../../workbook/index';import { WorkbookProtectSheet, isImported } from '../../workbook/index';import { contentLoaded, completeAction, freeze, ConditionalFormatEventArgs, refreshOverlayElem, insertDesignChart } from '../common/index';import { beginAction, sheetsDestroyed, workbookFormulaOperation, getRangeAddress } from './../../workbook/common/index';import { updateScroll, SelectionMode, clearCopy, clearUndoRedoCollection, clearChartBorder, propertyChange } from '../common/index';import { Print } from '../renderer/print'; import {WorkbookModel} from "../../workbook/base/workbook-model"; /** * Interface for a class Spreadsheet */ export interface SpreadsheetModel extends WorkbookModel{ /** * To specify a CSS class or multiple CSS class separated by a space, add it in the Spreadsheet root element. * This allows you to customize the appearance of component. * * {% codeBlock src='spreadsheet/cssClass/index.md' %}{% endcodeBlock %} * * @default '' */ cssClass?: string; /** * It specifies whether the Spreadsheet should be rendered with scrolling or not. * To customize the Spreadsheet scrolling behavior, use the [`scrollSettings`](https://ej2.syncfusion.com/documentation/api/spreadsheet/#scrollSettings) property. * * @default true */ allowScrolling?: boolean; /** * If `allowResizing` is set to true, spreadsheet columns and rows can be resized. * * @default true */ allowResizing?: boolean; /** * If `showAggregate` is set to true, spreadsheet will show the AVERAGE, SUM, COUNT, MIN and MAX values based on the selected cells. * * @default true */ showAggregate?: boolean; /** * Determines whether the comments pane is visible in the spreadsheet. * When set to `true`, the comments pane is displayed; otherwise, it remains hidden. * If not set, the pane remains hidden by default. * * @default false */ showCommentsPane?: boolean; /** * It enables or disables the clipboard operations (cut, copy, and paste) of the Spreadsheet. * * @default true */ enableClipboard?: boolean; /** * It enables or disables the context menu option of spreadsheet. By default, context menu will opens for row header, * column header, sheet tabs, and cell. * * @default true */ enableContextMenu?: boolean; /** * It allows you to interact with cell, sheet tabs, formula bar, and ribbon through the keyboard device. * * @default true */ enableKeyboardNavigation?: boolean; /** * It enables shortcut keys to perform Spreadsheet operations like open, save, copy, paste, and more. * * @default true */ enableKeyboardShortcut?: boolean; /** * It allows to enable/disable undo and redo functionalities. * * @default true */ allowUndoRedo?: boolean; /** * It allows to enable/disable wrap text feature. By using this feature the wrapping applied cell text can wrap to the next line, * if the text width exceeds the column width. * * @default true */ allowWrap?: boolean; /** * Configures the selection settings. * * The selectionSettings `mode` property has three values and is described below: * * * None: Disables UI selection. * * Single: Allows single selection of cell, row, or column and disables multiple selection. * * Multiple: Allows multiple selection of cell, row, or column and disables single selection. * * {% codeBlock src='spreadsheet/selectionSettings/index.md' %}{% endcodeBlock %} * * @default { mode: 'Multiple' } */ selectionSettings?: SelectionSettingsModel; /** * Configures the scroll settings. * * {% codeBlock src='spreadsheet/scrollSettings/index.md' %}{% endcodeBlock %} * * > The `allowScrolling` property should be `true`. * * @default { isFinite: false, enableVirtualization: true } */ scrollSettings?: ScrollSettingsModel; /** * Triggers before the cell appended to the DOM. * ```html *
* ``` * ```typescript * new Spreadsheet({ * beforeCellRender: (args: CellRenderEventArgs) => { * } * ... * }, '#Spreadsheet'); * ``` * * @event beforeCellRender */ beforeCellRender?: EmitType