@ng-matero/extensions
Version:
Angular Material Extensions
64 lines (63 loc) • 3.13 kB
TypeScript
import { AfterViewInit, ElementRef, Injector, NgZone, OnDestroy, Type, ViewContainerRef, ChangeDetectorRef } from '@angular/core';
import { Directionality } from '@angular/cdk/bidi';
import { Overlay, OverlayRef } from '@angular/cdk/overlay';
import { CdkColumnDef, _CoalescedStyleScheduler } from '@angular/cdk/table';
import { Subject } from 'rxjs';
import { ResizeOverlayHandle } from './overlay-handle';
import { ColumnResize } from './column-resize';
import { ColumnResizeNotifierSource } from './column-resize-notifier';
import { HeaderRowEventDispatcher } from './event-dispatcher';
import { ResizeStrategy } from './resize-strategy';
import * as i0 from "@angular/core";
/**
* Base class for Resizable directives which are applied to column headers to make those columns
* resizable.
*/
export declare abstract class Resizable<HandleComponent extends ResizeOverlayHandle> implements AfterViewInit, OnDestroy {
protected isResizable: boolean;
protected minWidthPxInternal: number;
protected maxWidthPxInternal: number;
protected inlineHandle?: HTMLElement;
protected overlayRef?: OverlayRef;
protected readonly destroyed: Subject<void>;
protected abstract readonly columnDef: CdkColumnDef;
protected abstract readonly columnResize: ColumnResize;
protected abstract readonly directionality: Directionality;
protected abstract readonly document: Document;
protected abstract readonly elementRef: ElementRef;
protected abstract readonly eventDispatcher: HeaderRowEventDispatcher;
protected abstract readonly injector: Injector;
protected abstract readonly ngZone: NgZone;
protected abstract readonly overlay: Overlay;
protected abstract readonly resizeNotifier: ColumnResizeNotifierSource;
protected abstract readonly resizeStrategy: ResizeStrategy;
protected abstract readonly styleScheduler: _CoalescedStyleScheduler;
protected abstract readonly viewContainerRef: ViewContainerRef;
protected abstract readonly changeDetectorRef: ChangeDetectorRef;
private _viewInitialized;
private _isDestroyed;
/** The minimum width to allow the column to be sized to. */
get minWidthPx(): number;
set minWidthPx(value: number);
/** The maximum width to allow the column to be sized to. */
get maxWidthPx(): number;
set maxWidthPx(value: number);
ngAfterViewInit(): void;
ngOnDestroy(): void;
protected abstract getInlineHandleCssClassName(): string;
protected abstract getOverlayHandleComponentType(): Type<HandleComponent>;
private _createOverlayForHandle;
private _listenForRowHoverEvents;
private _listenForResizeEvents;
private _completeResizeOperation;
private _cleanUpAfterResize;
private _createHandlePortal;
private _showHandleOverlay;
private _updateOverlayHandleHeight;
private _applySize;
private _applyMinWidthPx;
private _applyMaxWidthPx;
private _appendInlineHandle;
static ɵfac: i0.ɵɵFactoryDeclaration<Resizable<any>, never>;
static ɵdir: i0.ɵɵDirectiveDeclaration<Resizable<any>, never, never, {}, {}, never, never, false, never>;
}