@sheetxl/models
Version:
Models - A Headless javascript spreadsheet library.
68 lines • 3.31 kB
TypeScript
import { RemoveListener } from "@sheetxl/common";
import { SerializableProperties } from "../primitives";
import { TransactionStore, ITransaction } from "../transaction";
import { IWorkbookRangeListener, IWorkbookModel } from "../workbook";
import { RangeListenerOptions } from "../sheet";
import { SheetCellRangeCoordsAddresses, SheetCellRangeCoordsAddress, SheetCellRangeCoords, SheetCellCoords } from "../range";
import { NamedItem } from "./NamedItem";
import { INamedItems, INamedItemsListener, NamedItemsJSON, NamedRangeItem, NamedItemsSearchOptions } from "./INamedItems";
export interface NamedItemsOptions {
/**
* Required for resolving ranges.
* @param address
*/
decodeAddress: (address: SheetCellRangeCoordsAddresses) => SheetCellRangeCoords[];
/**
* Required for resolving ranges.
* @param addresses
*/
encodeAddress: (addresses: SheetCellRangeCoords) => string;
/**
* If provided then the named ranges will update when the ranges update.
*/
addRangeListener?: (address: SheetCellRangeCoordsAddress, listener: IWorkbookRangeListener, options?: RangeListenerOptions) => RemoveListener;
/**
* A transaction store that can be used to undo/redo changes to the namedRanges.
*/
transactionStore?: TransactionStore;
workbook?: IWorkbookModel;
initialJSON?: NamedItemsJSON;
}
export declare const REGEX_INVALID_NAME_FIRST_CHARS: RegExp;
export declare const REGEX_INVALID_NAME_TRAILING_CHARS: RegExp;
export declare class NamedItems implements INamedItems {
private _listeners;
private _options;
private _transactionStore;
private _transactionStoreRemoveListener;
private _closed;
constructor(options: NamedItemsOptions);
search(options: NamedItemsSearchOptions): NamedItem[];
lookupByName(name: string, anchor: SheetCellCoords): NamedItem | null;
lookupByRanges(ranges: SheetCellRangeCoords[]): NamedItem[] | null;
decodeAddress(address: SheetCellRangeCoordsAddresses): SheetCellRangeCoords[] | null;
findValidateName(ranges: SheetCellRangeCoords[], scope?: string, template?: string, replaceHidden?: boolean): string;
validateNamedItem(namedRangeItem: SerializableProperties<NamedRangeItem>, scope?: string, replaceHidden?: boolean): void;
_validateSheetAddress(address: string): void;
_validateRangeName(name: string, scope: string, replaceHidden?: boolean): void;
addNamedRange(namedRange: SerializableProperties<NamedRangeItem> | string, replaceHidden?: boolean): NamedRangeItem;
updateNamedRange(name: string, namedRange: SerializableProperties<NamedRangeItem>): NamedRangeItem;
deleteNamedRange(namedRange: NamedRangeItem | string): NamedRangeItem | null;
private _indexRange;
private _addNamedItems;
pushTransaction(description?: string): ITransaction;
private _getTransactionState;
private _pushTransaction;
private _updateTransactionState;
notifyNamedItemsChange(): void;
notifyOnClose(): void;
fromJSON(json: NamedItemsJSON): void;
private _fromJSON;
toJSON(): NamedItemsJSON | null;
addListener(listener: INamedItemsListener): RemoveListener;
isClosed(): boolean;
close(): void;
get isNamedItems(): true;
}
export default NamedItems;
//# sourceMappingURL=NamedItems.d.ts.map