UNPKG

@helveg/ngx-spreadsheet

Version:

Lightweight spreadsheet module for Angular

172 lines (163 loc) 6.96 kB
import * as _angular_core from '@angular/core'; import { EventEmitter, ElementRef } from '@angular/core'; import { Observable } from 'rxjs'; declare class Cell { tableId: string; row: number; col: number; value: string; editable: boolean; id: string; constructor(tableId: string, row: number, col: number, value: string, editable?: boolean); withRow(index: number): Cell; withCol(index: number): Cell; } interface ColumnOptions { header?: string; width?: number; } interface TableOptions { rows?: number; cols?: number; data?: any[][]; columns?: ColumnOptions[]; canInsertRows?: boolean; canInsertCols?: boolean; } type SettableTableOptions = keyof Table & keyof TableOptions; declare class Table { readonly id: string; head: string[]; body: Cell[][]; canInsertRows: boolean; canInsertCols: boolean; protected options: TableOptions; private constructor(); get data(): any[][]; get editing(): boolean; recreate(options: TableOptions): Table; static create(options: TableOptions): Table; findCell(row: number, col: number): Cell | null; findOrCreateCell(row: number, col: number): Cell | null; insertColumn(colIndex: number): void; deleteColumn(colIndex: number): void; insertRow(rowIndex: number): void; deleteRow(rowIndex: number): void; get rowCount(): number; get colCount(): number; resize({ rows, cols }: { rows?: number; cols?: number; }): void; setOption<K extends keyof this & keyof TableOptions>(attr: K, value: this[K]): void; } declare class NgxContextMenuItemComponent { label?: string; disabled?: boolean; divider?: boolean; click: EventEmitter<number>; clicked(index: number): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgxContextMenuItemComponent, never>; static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgxContextMenuItemComponent, "ngx-context-menu-item", never, { "label": { "alias": "label"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "divider": { "alias": "divider"; "required": false; }; }, { "click": "click"; }, never, never, true, never>; } declare class NgxContextMenuComponent { menuElementRef: _angular_core.Signal<ElementRef<any>>; itemTemplates: _angular_core.Signal<readonly NgxContextMenuItemComponent[]>; closed: EventEmitter<any>; target: number; show(ev: MouseEvent, index: number): void; click(): void; private get menuElement(); private get menuStyle(); private get menuWidth(); private get menuHeight(); private get documentWidth(); private get documentHeight(); static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgxContextMenuComponent, never>; static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgxContextMenuComponent, "ngx-context-menu", never, {}, { "closed": "closed"; }, ["itemTemplates"], never, true, never>; } declare class Anchor { r: number; c: number; constructor(r: number, c: number); } declare class Range { r1: number; c1: number; r2: number; c2: number; constructor(r1: number, c1: number, r2: number, c2: number); calc(row: number, col: number): void; includes(row: number, col: number): boolean; equals(range: Range): boolean; static of(row: number, col: number, row2?: number, col2?: number): Range; static marge(a1: Anchor, a2: Anchor): Range; } declare class NgxSpreadsheetComponent { private readonly injector; readonly i18n: Omit<{} & { INSERT_COLUMN_LEFT: string; INSERT_COLUMN_RIGHT: string; DELETE_COLUMN: string; DELETE_ROW: string; INSERT_ROW_BELOW: string; INSERT_ROW_ABOVE: string; }, "__proto__">; theadContextMenu: _angular_core.Signal<NgxContextMenuComponent | undefined>; tbodyContextMenu: _angular_core.Signal<NgxContextMenuComponent | undefined>; data: _angular_core.ModelSignal<any[][] | undefined>; dataChanged: _angular_core.OutputEmitterRef<any[][]>; rows: _angular_core.ModelSignal<number | undefined>; cols: _angular_core.ModelSignal<number | undefined>; columns: _angular_core.ModelSignal<ColumnOptions[] | undefined>; canInsertCols: _angular_core.ModelSignal<boolean>; canInsertRows: _angular_core.ModelSignal<boolean>; data$: Observable<any[][] | undefined>; rows$: Observable<number | undefined>; cols$: Observable<number | undefined>; columns$: Observable<ColumnOptions[] | undefined>; canInsertRows$: Observable<boolean>; canInsertCols$: Observable<boolean>; /** * The table observable integrates all the reactive pipes into a higher order scan that * can mutate or replace the table reference. */ table$: Observable<Table>; copied: EventEmitter<string>; table: Table | null; activatedCell: Cell | null; range: Range | null; anchor: Anchor | null; activeTheadIndex: number; activeTbodyIndex: number; private onMouseDown; private onMouseMove; private onMouseUp; private onKeyDown; private blockArrowKeys; private onKeyUp; trackByCell(index: number, value: Cell): string | null; clickHeader(colIndex: number): void; clickRow(rowIndex: number): void; focus(ev: FocusEvent): void; blur(ev: FocusEvent): void; cellMouseUp(ev: Event, target: Cell): void; setValue(ev: Event, target: Cell): void; setEditable(ev: Event, editable: boolean): void; showTheadMenu(ev: MouseEvent, index: number): boolean; showTbodyMenu(ev: MouseEvent, index: number): boolean; private moveTo; private forceFocus; private findCellByEventTarget; private getPositionFromId; private copy; private paste; private delete; updateValue(table: Table, cell: any, $event: string): void; selectAll(event$?: Event): void; newRow(col: number): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgxSpreadsheetComponent, never>; static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgxSpreadsheetComponent, "ngx-spreadsheet", never, { "data": { "alias": "data"; "required": false; "isSignal": true; }; "rows": { "alias": "rows"; "required": false; "isSignal": true; }; "cols": { "alias": "cols"; "required": false; "isSignal": true; }; "columns": { "alias": "columns"; "required": false; "isSignal": true; }; "canInsertCols": { "alias": "canInsertCols"; "required": false; "isSignal": true; }; "canInsertRows": { "alias": "canInsertRows"; "required": false; "isSignal": true; }; }, { "data": "dataChange"; "dataChanged": "dataChanged"; "rows": "rowsChange"; "cols": "colsChange"; "columns": "columnsChange"; "canInsertCols": "canInsertColsChange"; "canInsertRows": "canInsertRowsChange"; "copied": "copied"; }, never, never, true, never>; } export { NgxSpreadsheetComponent, Table }; export type { ColumnOptions, SettableTableOptions, TableOptions };