UNPKG

@ctodev/cclibrary-typings

Version:

Library typings for use with CLARC INFINITY

235 lines (234 loc) 8.42 kB
import { EventEmitter, OnInit, TemplateRef, QueryList, WritableSignal, AfterContentInit, ElementRef } from '@angular/core'; import { MatSort } from '@angular/material/sort'; import { MatTable, MatTableDataSource } from '@angular/material/table'; import { TccContextMenu } from '../../../shared/components/tcc-context-menu/tcc-context-menu.component'; import { TccTableCheckboxControllerDirective } from '../../../shared/directives/tcc-table-checkbox-controller/tcc-table-checkbox-controller.directive'; import { TccInfinityScroll, TccInfinityScrollComponent } from '../../../shared/components/tcc-infinity-scroll/tcc-infinity-scroll.component'; import { TccContextMenuServiceNamespace } from '../../../shared/services/tcc-context-menu/tcc-context-menu.service'; import { TccClarcDateFormat, TccClarcDatePipe } from '../../../shared/pipes/tcc-clarc-date/tcc-clarc-date.pipe'; import { SpecialColDirective } from './directives/special-col.directive'; import { EditColDirective } from './directives/edit-col.directive'; export declare namespace TccTable { interface TableInputs<T> { tableOptions: TccTable.TableOptions<T>; columnDef: Array<TccTable.ColumnDef<T>>; } interface TableOptions<T> { rowHover: boolean; dragAndDrop: boolean; sort: sortConfig; infinityScroll: infinityScrollConfig; classes?: Array<string>; checkbox: boolean; disabledCheckboxes?: Array<string>; contextMenuOptions?: contextMenuConfig; placeholder: placeholderConfig; density?: tableDensity; stickyHeader?: boolean; rowSelected?: boolean; initSort?: { field: string; direction: "asc" | "desc"; }; editableRows?: boolean; deleteConfig?: deleteRowConfig<T>; lockRow?: (row: T) => boolean; } interface ColumnDef<T> { id: string; path: Array<string>; tooltip?: boolean; transformFunction?: ((value: any, row?: T) => string); useDatePipe?: TccClarcDateFormat; useTranslationPipe?: boolean; useResolveIdPipe?: boolean; ngContent?: ngContentConfig; hover?: boolean; displayName: string; disableSort?: boolean; breakCol?: breakColConfig; colSize?: cellSize; textAlign?: textAlign; sortingDataAccessorFunction?: ((value?: any) => string | number); editableCol?: editColConfig; } enum textAlign { left = "left", center = "center", right = "right" } interface contextMenuConfig { MenuOptions: TccContextMenu.option[]; Name?: string[]; Id?: string[]; Delete?: boolean; /** * If entities can be duplicated. * Default: true. */ Duplicate?: boolean; GetSelectedEntities?: TccContextMenu.getSelectedEntitiesFunction; } enum tableDensity { density1 = "density1", density2 = "density2", density3 = "density3", density4 = "density4" } interface sortConfig { sortEnabled: boolean; sortLocally: boolean; } interface rowClickEvent { rowObject: Object; index: number; isDoubleClick?: boolean; } interface checkboxEvent { Entity?: Object; Value: boolean; } interface sortTableEvent { active: string; direction: "asc" | "desc" | ""; } interface infinityScrollConfig { enabled: boolean; firstElementPath?: Array<string | number>; altMode?: boolean; } interface ngContentConfig { enabled: boolean; index?: number; } interface placeholderConfig { placeholderText: string; placeholderImage: string; placeholderImageSize?: placeholderImageSize; } enum breakColConfig { single = "single", all = "all" } enum placeholderImageSize { sizeMedium = "mediumSize", sizeLarge = "largeSize" } enum cellSize { small = "smallCell", medium = "mediumCell", large = "largeCell", extraLarge = "extraLargeCell" } interface editColConfig { active?: true; index?: number; onlyCreate?: boolean; } interface deleteRowConfig<T> { enableDeleteButton?: boolean; skipCols?: number; deleteText?: (entity: T) => string; } } export declare class TccTableComponent<T> implements OnInit, AfterContentInit { private clarcDatePipe; specialColumnsList: QueryList<SpecialColDirective>; editColumnsList: QueryList<EditColDirective>; table: MatTable<any>; checkDir: TccTableCheckboxControllerDirective<T>; infinityScroll: TccInfinityScrollComponent; set content(sort: MatSort); tableRows: QueryList<ElementRef<HTMLTableRowElement>>; set TableInput(value: TccTable.TableInputs<any>); set TableData(value: Array<object>); set DisplayedColumns(value: Array<string>); _hide: boolean; /** sets the table to display: none */ set hide(value: boolean); get hide(): boolean; cellClickEmitter: EventEmitter<any>; rowClickEmitter: EventEmitter<TccTable.rowClickEvent>; scrollDownEmitter: EventEmitter<boolean>; checkboxEmitter: EventEmitter<TccTable.checkboxEvent>; sortTableEmitter: EventEmitter<TccTable.sortTableEvent>; contextMenuEmitter: EventEmitter<TccContextMenuServiceNamespace.contextMenuClickEvent>; tableLoadedEmitter: EventEmitter<boolean>; rowEditEmitter: EventEmitter<any>; deleteRowEmitter: EventEmitter<any>; createRowEmitter: EventEmitter<T>; createRowAcceptEmitter: EventEmitter<T>; createRowDismissEmitter: EventEmitter<T>; _tableInput: TccTable.TableInputs<any>; _rawData: Array<any & { Id: string; }>; _dataSource: MatTableDataSource<any>; _displayedColumns: Array<string>; _tableOptions: TccTable.TableOptions<T>; _columnDef: Array<TccTable.ColumnDef<any>>; tableClasses: Array<string>; backupColumns: Array<string>; columndef: { [columnId: string]: TccTable.ColumnDef<any>; }; selectedRows: string[]; isSingleClick: boolean; selectedRow: string; _refreshTransform: number; infinityScrollContentType: TccInfinityScroll.contentType; specialColumns: Array<TemplateRef<any>>; editColumns: Array<TemplateRef<any>>; disabledCheckboxesIndex: Array<number>; breakColConfig: typeof TccTable.breakColConfig; textAlignEnum: typeof TccTable.textAlign; editingRow$: WritableSignal<number | null>; editBackup: Object; creatingRow$: WritableSignal<boolean>; deletingRow$: WritableSignal<number | null>; constructor(clarcDatePipe: TccClarcDatePipe); ngOnInit(): void; ngAfterContentInit(): void; generateDisplayedColumns(coldef: Array<TccTable.ColumnDef<any>>, displayCols?: Array<string>): void; cellClickEvent($event: Object, column: string, row: number, cell: HTMLElement): void; rowClickEvent($event: any, isDoubleClick?: boolean, index?: number): void; scrollDownEvent($event: boolean): void; checkboxEvent($event: { Entity: Object; Value: boolean; } | { Value: boolean; }): void; sortTable($event: { active: string; direction: "asc" | "desc" | ""; }): void; dropEvent($event: any): void; contextMenuOptionClick(event: TccContextMenuServiceNamespace.contextMenuClickEvent): void; getCheckedBoxes(): T[]; getCheckedIndex(): { [rowIndex: number]: Object; }; toggleCheckbox(index: number): void; filterLocal(filter: any): any[]; setDisplayedColumns(cols: Array<string>): void; refreshTransformedValues(): void; checkForSystemEntities(entities: Array<any>): void; private buildSortingDataAccessor; private getColumnDefById; setSelectedRow(id: string): void; private objectHasId; getSelectedRowIndex(): number; editRow(row: number): void; editRowAccept(): void; editRowDismiss(): void; deleteRow(rowIndex: number): void; deleteAccept(row: any): void; deleteDismiss(): void; createRow(): void; createRowAccept(row: T): void; createRowAccepted(): void; createRowDismiss(row: T): void; scrollToRow(index: number): void; getRowByIndex(index: number): any; }