UNPKG

@true-directive/grid

Version:

Angular Data Grid from Yopsilon.

174 lines (173 loc) 6.1 kB
/** * Copyright (c) 2018-2019 Aleksey Melnikov, True Directive Company. * @link https://truedirective.com/ * @license MIT */ import { ElementRef, EventEmitter, Renderer2, Injector, OnDestroy, AfterContentInit, DoCheck, OnChanges, ComponentFactoryResolver, ApplicationRef, SimpleChange } from '@angular/core'; import { GridLayout } from '@true-directive/base'; import { Column } from '@true-directive/base'; import { RowCell } from './row-cell.class'; import { GridStateService } from './grid-state.service'; /** * Grid row directive. It's all about speed. */ export declare class RowDirective implements OnDestroy, AfterContentInit, DoCheck, OnChanges { protected _renderer: Renderer2; protected _cfResolver: ComponentFactoryResolver; protected _appRef: ApplicationRef; protected _injector: Injector; elementRef: ElementRef; /** * Row for rendering */ row: any; /** * Grid's state */ state: GridStateService; /** * Index in the list of displayed rows */ axI: number; /** * Layout info */ layout: GridLayout; /** * Indicates we're an empty line and we don't need to do anything. */ empty: boolean; /** * Horizontal scroll position */ viewPortLeft: number; /** * Scrollbox width */ viewPortWidth: number; /** * Locale */ locale: string; /** * Event - clicking on the checkbox - will cause the value to change */ toggleCheckbox: EventEmitter<any>; /** * Data of the displayed row */ protected readonly rowData: any; private _left_rendered; private _right_rendered; /** * Cell list */ private readonly cells; /** * Cell selection levels */ private selectionMap; /** * View was initialized */ private _viewInitialized; /** * One of the cells was in edit mode before destroying the row */ private _wasEditor; /** * Row height in previous render */ protected _height0: number; /** * Locale in previous render */ private _locale0; private _checkedAppearance; protected _subscribes: any[]; /** * Предыдущее значение общего текстового фильтра */ private _filter0; protected readonly st: import("@true-directive/base").GridSettings; protected readonly sta: import("@true-directive/base").GridAppearance; protected readonly currentRowIndex: number; protected readonly children: any; protected _editorRef: any; protected readonly _customCellRefs: any[]; protected readonly _skips: { element: HTMLElement; fromIndex: number; toIndex: number; }[]; firstCellRect(): any; private firstCellClientHeight; /** * Получение поля по координатам * @param x Координата поля * @return [description] */ cellByXY(x: number, y: number): string; /** * Вызывается для получения Х-координаты ячейки с целью прокрутки * компонента к заданной ячейке * @param fieldName Наименование поля ячейки * @return Координаты левого и правого края */ cellHorizontalPos(fieldName: string): { l: number; r: number; }; clearSelection(): void; private getSelectionMap; protected setCellSelection(cell: RowCell, idx: number): number; setSelection(): void; protected clear(saveH?: boolean): void; protected clearEditor(): void; protected renderStub(rowData: any, cell: RowCell, col: Column): void; protected renderBoolean(rowData: any, cell: RowCell, col: Column, v: any): void; protected renderCheckbox(cell: RowCell, col: Column, v: any): void; protected getEditorComponentType(col: Column): any; protected getDh(): number; protected setEditorHeight(cell: RowCell): void; protected renderEditor(rowData: any, cell: RowCell, col: Column, v: any): void; private renderCustomCell; protected getDisplayedValue(col: Column, rowData: any, v: any): string; protected fillCell(cell: RowCell, col: Column, rowData: any, isFirst: boolean, v: any, v_displayed: any): RowCell; private needRender; protected createTd(span: number): HTMLElement; /** * Создание ячейки * @param col Колонка * @param span Количество объединенных ячеек * @return Объект RowCell */ protected createCell(col: Column, span?: number, isFirst?: boolean, xPos?: number, render?: boolean): RowCell; protected needApplySpan(): number; private createSkipCell; protected renderRowEditor(): RowCell; protected renderRow(): void; private nextEl; protected unskip(cell: RowCell, i: number): void; protected renderByViewPort(): void; private checkEditor; /** * We check whether it is necessary to recreate the string when changing the * column. If there were simple changes (two columns swapped or one of them * just disappeared), we try to apply these changes without a full rerendering. * @return True if we don't need a rerender. */ protected checkColumns(): boolean; protected checkValues(): boolean; setDisabledFields(): void; protected setParams(byInit?: boolean): void; protected checkViewPort(): boolean; protected check(): boolean; ngOnChanges(changes: { [property: string]: SimpleChange; }): void; ngDoCheck(): void; ngAfterContentInit(): void; ngOnDestroy(): void; constructor(_renderer: Renderer2, _cfResolver: ComponentFactoryResolver, _appRef: ApplicationRef, _injector: Injector, elementRef: ElementRef); }