@transunion-ui/tablejs
Version:
Tablejs ========
235 lines (234 loc) • 10.2 kB
TypeScript
import { AfterViewInit, ComponentRef, ComponentFactoryResolver, ElementRef, EventEmitter, OnDestroy, InjectionToken, RendererFactory2 } from '@angular/core';
import { DragAndDropGhostComponent } from './../../components/drag-and-drop-ghost/drag-and-drop-ghost.component';
import { TablejsGridProxy } from './../../shared/classes/tablejs-grid-proxy';
import { GridService } from './../../services/grid/grid.service';
import { DirectiveRegistrationService } from './../../services/directive-registration/directive-registration.service';
import { IColumnData } from './../../shared/interfaces/i-column-data';
import { ScrollViewportDirective } from './../../directives/scroll-viewport/scroll-viewport.directive';
import { ScrollDispatcherService } from './../../services/scroll-dispatcher/scroll-dispatcher.service';
import { OperatingSystemService } from './../../services/operating-system/operating-system.service';
import { ResizeSensor } from 'css-element-queries';
import { Subject, Subscription } from 'rxjs';
import { Overlay, OverlayConfig, OverlayRef, PositionStrategy } from '@angular/cdk/overlay';
import { ComponentType } from '@angular/cdk/portal';
import { IColumnHierarchy } from '../../shared/interfaces/i-column-hierarchy';
import { IColumnHideChange } from '../../shared/interfaces/events/i-column-hide-change';
import * as i0 from "@angular/core";
export declare class GridDirective extends TablejsGridProxy implements AfterViewInit, OnDestroy {
private elementRef;
private resolver;
private gridService;
private directiveRegistrationService;
private document;
private overlay;
private scrollDispatcherService;
private operatingSystem;
private rendererFactory;
dragging: boolean;
reordering: boolean;
startX: number;
startY: number;
stylesByClass: any[];
id: string | null;
viewport: HTMLElement | null | undefined;
viewportID: string | null;
currentClassesToResize: string[];
startingWidths: number[];
minWidths: number[];
totalComputedMinWidth: number;
totalComputedWidth: number;
defaultTableMinWidth: number;
gridTemplateClasses: string[];
gridOrder: number[];
classWidths: any[];
gridTemplateTypes: any[];
draggingColumn: HTMLElement | null;
colRangeGroups: number[][][];
lastDraggedOverElement: any;
lastDraggedGroupIndex: number;
lastDraggedOverRect: ClientRect | null;
lastDraggedGroupBoundingRects: ClientRect[] | null;
lastMoveDirection: number;
resizableColumns: HTMLElement[];
resizableGrips: HTMLElement[];
reorderGrips: HTMLElement[];
reorderableColumns: HTMLElement[];
columnsWithDataClasses: HTMLElement[];
rows: HTMLElement[];
infiniteScrollViewports: HTMLElement[];
mutationResizableColumns: HTMLElement[];
mutationResizableGrips: HTMLElement[];
mutationReorderGrips: HTMLElement[];
mutationReorderableColumns: HTMLElement[];
mutationColumnsWithDataClasses: HTMLElement[];
mutationRows: HTMLElement[];
mutationInfiniteScrollViewports: HTMLElement[];
headTag: HTMLHeadElement;
styleContent: string;
headStyle: HTMLStyleElement | null;
styleList: HTMLStyleElement[];
initialWidths: any[];
initialWidthsAreSet: boolean | undefined;
lastColumns: any[];
contentResizeSensor: ResizeSensor | null;
observer: MutationObserver | null;
isCustomElement: boolean;
pointerListenerFunc: any;
parentGroups: Element[][];
colData: IColumnData | null;
colDataGroups: IColumnData[][];
elementsWithHighlight: any[];
dragAndDropGhostComponent: DragAndDropGhostComponent | null;
dragOffsetX: number;
dragOffsetY: number;
reorderHandleColOffset: number;
scrollbarWidth: number;
initialWidthSettingsSubscription$: Subscription;
reorderableClass: string;
widthStyle: HTMLStyleElement | null;
widthStyleFragment: DocumentFragment | null;
reorderHighlightStyle: HTMLStyleElement | null;
reorderHighlightStyleFragment: DocumentFragment | null;
subGroupStyles: (HTMLStyleElement | null)[];
subGroupFragments: (DocumentFragment | null)[];
gridOrderStyles: (HTMLStyleElement | null)[];
gridOrderFragments: (DocumentFragment | null)[];
subGroupStyleObjs: any;
scrollbarAdjustmentFragment: DocumentFragment | null;
scrollbarAdjustmentStyle: HTMLStyleElement | null;
resizeMakeUpPercent: number;
resizeMakeUpPerColPercent: number;
scrollViewportDirective: ScrollViewportDirective | null;
overlayRef: OverlayRef;
hiddenColumnIndices: number[];
hiddenColumnChanges: Subject<IColumnHideChange | null>;
private hiddenColumnChangesSubscription$;
HIDDEN_COLUMN_CLASS: string;
private injector;
private DRAG_AND_DROP_GHOST_OVERLAY_DATA;
private animationFrameIDs;
linkClass: string | undefined;
resizeColumnWidthByPercent: boolean;
columnResizeStart: EventEmitter<any>;
columnResize: EventEmitter<any>;
columnResizeEnd: EventEmitter<any>;
columnReorder: EventEmitter<any>;
columnReorderStart: EventEmitter<any>;
dragOver: EventEmitter<any>;
columnReorderEnd: EventEmitter<any>;
preGridInitialize: EventEmitter<any>;
gridInitialize: EventEmitter<any>;
constructor(elementRef: ElementRef, resolver: ComponentFactoryResolver, gridService: GridService, directiveRegistrationService: DirectiveRegistrationService, document: any, overlay: Overlay, scrollDispatcherService: ScrollDispatcherService, operatingSystem: OperatingSystemService, rendererFactory: RendererFactory2);
private registerDirectiveToElement;
private attachMutationObserver;
private updateMutations;
private getChildNodes;
ngAfterViewInit(): void;
private onEnterFrame;
canHideColumn(column: Element): boolean;
getFlattenedHierarchy(): IColumnHierarchy[];
private getSubColumns;
getColumnHierarchy(): any;
getHierarchySubColumns(item: IColumnData, levelCount: number): IColumnHierarchy[];
checkForGridInitReady(): void;
private awaitWidths;
private awaitSingleFrame;
private onPointerDown;
private getClassWidthInPixels;
private setMinimumWidths;
private attachReorderGhost;
private getContainerScrollCount;
private onPointerMove;
private getLastVisibleColumnClass;
private getRangePosition;
private columnIsHiddenWithClass;
private getTotalGroupedColumnsVisible;
private getFirstGridOrderIndexAfterColumnGroup;
private getPostColumnWidthTotal;
private getPostColumnMinimumWidthTotal;
private getPreviousColumnWidthTotal;
private updateWidthsInPercent;
private updateWidthsInPixels;
private fitWidthsToOneHundredPercent;
private updateWidths;
private generateWidthStyle;
private getResizableClasses;
private setResizableStyles;
private addStyle;
private setStyleContent;
moveStyleContentToProminent(): void;
private setReorderStyles;
private getColSpan;
private validateColumnSpansAreTheSame;
private onPointerUp;
private addPointerListeners;
private removePointerListeners;
private endDrag;
private initGrid;
private setGridTemplateClasses;
private verifyLinkedTemplateClassesMatch;
private calculateWidthsFromStyles;
private emitGridInitialization;
private createDragAndDropComponent;
openModal(componentType: ComponentType<unknown>, token: InjectionToken<any>, data: any, positionStrategy?: PositionStrategy | null, overlayConfig?: OverlayConfig | null): ComponentRef<unknown>;
private createInjector;
private setDragAndDropPosition;
private removeDragAndDropComponent;
private setParentGroups;
private generateColumnGroups;
private verifyLinkedGroupStructuresMatch;
private setHiddenClassForAllLinkedParentHeaders;
private setHiddenClassForAllLinkedHeaders;
private setHiddenClassForColumnGroup;
getRelatedHeaders(element: Element): (Element | any)[];
getRelatedHeader(element: Element): Element | any;
private setLinkedChildren;
private setLinkedHeaderContainerClasses;
private addClassToLinkedHeader;
private generateSubGroup;
private orderSubGroups;
private setColumnStyle;
private setGridOrder;
private getOffset;
private getParentTablejsGridDirective;
private elementRefUnderPoint;
private getResizeGripUnderPoint;
private getReorderColsUnderPoint;
private getReorderHandlesUnderPoint;
private getResizableElements;
removeHighlights(elToExclude?: HTMLElement | null, moveDirection?: number): void;
removeElementHighlight(el: HTMLElement): void;
private reorderColumns;
private getAverageColumnWidth;
private getFirstVisibleItemWidth;
private setLinkedColumnIndicesFromMaster;
private updateMasterColumnIndices;
private updateHiddenColumnIndices;
private constructGridTemplateColumns;
private getHiddenColumnIndices;
private orderSubCols;
private setReorderHighlightHeight;
private retrieveOrCreateElementID;
private generateGridID;
private generateContainerID;
private generateViewportID;
private attachContentResizeSensor;
private setScrollbarAdjustmentStyle;
private clearSelection;
private addResizableGrip;
private addResizableColumn;
private addReorderGrip;
private addReorderableColumn;
private addColumnsWithDataClasses;
private addRow;
private addInfiniteScrollViewport;
private removeStylesFromHead;
ngOnDestroy(): void;
static ɵfac: i0.ɵɵFactoryDeclaration<GridDirective, never>;
static ɵdir: i0.ɵɵDirectiveDeclaration<GridDirective, "[tablejsGrid],[tablejsgrid]", never, { "linkClass": "linkClass"; "resizeColumnWidthByPercent": "resizeColumnWidthByPercent"; }, { "columnResizeStart": "columnResizeStart"; "columnResize": "columnResize"; "columnResizeEnd": "columnResizeEnd"; "columnReorder": "columnReorder"; "columnReorderStart": "columnReorderStart"; "dragOver": "dragOver"; "columnReorderEnd": "columnReorderEnd"; "preGridInitialize": "preGridInitialize"; "gridInitialize": "gridInitialize"; }, never>;
}
export interface ISortableWidthItem {
minWidth: number;
width: number;
className: string;
}