@ux-aspects/ux-aspects
Version:
Open source user interface framework for building modern, responsive, mobile big data applications
38 lines (37 loc) • 1.64 kB
TypeScript
import { OnDestroy, QueryList } from '@angular/core';
import { BehaviorSubject, Subject } from 'rxjs';
import { ResizableTableColumnComponent } from './resizable-table-column.component';
import * as i0 from "@angular/core";
export declare abstract class BaseResizableTableService implements OnDestroy {
abstract type: ResizableTableType;
/** Emit an event whenever a column is resized */
onResize$: Subject<void>;
/** Store the current width of the table */
tableWidth: number;
/** Determine if we are currently resizing */
isResizing$: BehaviorSubject<boolean>;
/** Indicate when the columns are ready */
isInitialised$: BehaviorSubject<boolean>;
/** Store the percentage widths of each column */
columns: ReadonlyArray<number>;
abstract resizeColumn(index: number, delta: number, isDragging?: boolean): void;
abstract setColumns(columns: QueryList<ResizableTableColumnComponent>): void;
abstract setUniformWidths(): void;
abstract getColumnDisabled(index: number): boolean;
/** Cleanup when service is disposed */
ngOnDestroy(): void;
/** Update the resizing state */
setResizing(isResizing: boolean): void;
/** Get the width of a column in a specific unit */
getColumnWidth(index: number, unit: ColumnUnit, columns?: ReadonlyArray<number>): number;
static ɵfac: i0.ɵɵFactoryDeclaration<BaseResizableTableService, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<BaseResizableTableService>;
}
export declare enum ColumnUnit {
Pixel = 0,
Percentage = 1
}
export declare enum ResizableTableType {
Standard = 0,
Expand = 1
}