UNPKG

@sheetxl/models

Version:

Models - A Headless javascript spreadsheet library.

88 lines 3.88 kB
import { RemoveListener } from "@sheetxl/common"; import { TransactionStore, ITransaction } from "../transaction"; import { ListenerEmitter, Listener, ListenerOptions } from "../listener"; import { Run, RunCoords } from "../run/RunUtils"; import { ICellHeader, CellHeaderCreator, CellHeaderJSON, CellsHeaderAddressValuePair, CellHeaderUpdate, ISheetStyle, AutoFitOptions, CellHeaderRangeAddress, HeaderOrientation } from "../cell"; import { ISheetModel } from "./ISheetModel"; import { ISheetHeadersModel, SheetHeadersEvent, SheetHeaderJSON, SetHeaderOptions, ISheetHeaderRange } from "./ISheetHeadersModel"; export interface SheetHeadersModelOptions<T extends ICellHeader, P extends CellHeaderJSON> { createCellHeader: CellHeaderCreator<T>; orientation: HeaderOrientation; sheetModel: ISheetModel; transactionStore?: TransactionStore; /** * Takes a list of runs and returns the best sizes for each. */ findBestFits?: (runs: RunCoords[], options: AutoFitOptions) => Run<number>[]; getUpdateId?: () => number; isProtected?: () => boolean; defaultAutoFitOptions?: AutoFitOptions; getHeaderText?(index: number): string; /** * A number that represents a scaling factor. */ scaleFactor?: () => number; defaultSize?: () => number; minSize?: number; maxSize?: number; maxIndex?: number; initialJSON?: SheetHeaderJSON<P>; } /** * For updating and working with headers (rows/columns) */ export default class SheetHeadersModel<T extends ICellHeader, P extends CellHeaderJSON, U extends CellHeaderUpdate> implements ISheetHeadersModel<T, P, U> { protected _emitter: ListenerEmitter; private _options; private _sheetModelListenerRemove; private _transactionStore; private _transactionStoreRemoveListener; private _emptyHeader; private _scaleFactor; private _indexedHeaderLocations; private _headerBounds; private _hasCustomFormats; private _hasCustomStyles; private _lastHeaderRead; private _lastHeaders; constructor(options: SheetHeadersModelOptions<T, P>); addEventListener(type: string, listener: Listener<SheetHeadersEvent>, options?: ListenerOptions): RemoveListener; private _onHeaderChange; sheetStyle(): ISheetStyle; sheet(): ISheetModel; orientation(): HeaderOrientation; getHeaderText(index: number): string; private _scanHeaders; getRange(address?: CellHeaderRangeAddress): ISheetHeaderRange<U>; getHeader(offset: number): T; setHeaderPairs(pairs: CellsHeaderAddressValuePair<U>[], options?: SetHeaderOptions): RunCoords[] | null; private _parseHeaderRangeAddress; update(address: CellHeaderRangeAddress, update: ICellHeader | U | null, options?: SetHeaderOptions): void; isProtected(): boolean; scaleFactor(): number; private get _headers(); private _setHeaderPairsInternal; getHeaderBounds(): RunCoords; getMaxHeaderBounds(): RunCoords; hasCustomFormats(): boolean; hasCustomStyles(): boolean; autoFit(addresses: CellHeaderRangeAddress[] | CellHeaderRangeAddress, options?: AutoFitOptions): void; getDefaultHeaderSize(): number; getMaxHeaderSize(): number; getMinHeaderSize(): number; findOffset(index: number): number; findIndex(offset: number): number; getHeaderSize(indexFrom: number, indexTo?: number): number; hiddenHeadersAt(index: number, forward?: boolean): number; insertHeaders(index: number, amount: number): void; removeHeaders(index: number, amount: number): void; pushTransaction(description?: string): ITransaction; private _getTransactionState; private _pushTransaction; private _updateTransactionState; close(): void; fromJSON(json: SheetHeaderJSON<P>): void; toJSON(): SheetHeaderJSON<P>; } export { SheetHeadersModel }; //# sourceMappingURL=SheetHeadersModel.d.ts.map