import { AfterContentChecked, AfterContentInit, ElementRef, EventEmitter, NgZone, OnChanges, OnDestroy, QueryList, Renderer2, SimpleChanges, ViewContainerRef } from '@angular/core'; import { NumberInput } from './coercion/number-property'; import { KtdGridItemComponent } from './grid-item/grid-item.component'; import { KtdGridBackgroundCfg, KtdGridCfg, KtdGridCompactType, KtdGridItemRenderData, KtdGridLayout, KtdGridLayoutItem } from './grid.definitions'; import { KtdDictionary } from '../types'; import { KtdGridService } from './grid.service'; import { BooleanInput } from './coercion/boolean-property'; import * as i0 from "@angular/core"; interface KtdDragResizeEvent { layout: KtdGridLayout; layoutItem: KtdGridLayoutItem; gridItemRef: KtdGridItemComponent; } export type KtdDragStart = KtdDragResizeEvent; export type KtdResizeStart = KtdDragResizeEvent; export type KtdDragEnd = KtdDragResizeEvent; export type KtdResizeEnd = KtdDragResizeEvent; export interface KtdGridItemResizeEvent { width: number; height: number; gridItemRef: KtdGridItemComponent; } export declare function parseRenderItemToPixels(renderItem: KtdGridItemRenderData): KtdGridItemRenderData; export declare function __gridItemGetRenderDataFactoryFunc(gridCmp: KtdGridComponent): (id: string) => KtdGridItemRenderData; export declare function ktdGridItemGetRenderDataFactoryFunc(gridCmp: KtdGridComponent): (id: string) => KtdGridItemRenderData; export declare class KtdGridComponent implements OnChanges, AfterContentInit, AfterContentChecked, OnDestroy { private gridService; private elementRef; private viewContainerRef; private renderer; private ngZone; /** Query list of grid items that are being rendered. */ _gridItems: QueryList; /** Emits when layout change */ layoutUpdated: EventEmitter; /** Emits when drag starts */ dragStarted: EventEmitter; /** Emits when resize starts */ resizeStarted: EventEmitter; /** Emits when drag ends */ dragEnded: EventEmitter; /** Emits when resize ends */ resizeEnded: EventEmitter; /** Emits when a grid item is being resized and its bounds have changed */ gridItemResize: EventEmitter; /** * Parent element that contains the scroll. If an string is provided it would search that element by id on the dom. * If no data provided or null autoscroll is not performed. */ scrollableParent: HTMLElement | Document | string | null; /** Whether or not to update the internal layout when some dependent property change. */ get compactOnPropsChange(): boolean; set compactOnPropsChange(value: boolean); private _compactOnPropsChange; /** If true, grid items won't change position when being dragged over. Handy when using no compaction */ get preventCollision(): boolean; set preventCollision(value: boolean); private _preventCollision; /** Number of CSS pixels that would be scrolled on each 'tick' when auto scroll is performed. */ get scrollSpeed(): number; set scrollSpeed(value: number); private _scrollSpeed; /** Type of compaction that will be applied to the layout (vertical, horizontal or free). Defaults to 'vertical' */ get compactType(): KtdGridCompactType; set compactType(val: KtdGridCompactType); private _compactType; /** * Row height as number or as 'fit'. * If rowHeight is a number value, it means that each row would have those css pixels in height. * if rowHeight is 'fit', it means that rows will fit in the height available. If 'fit' value is set, a 'height' should be also provided. */ get rowHeight(): number | 'fit'; set rowHeight(val: number | 'fit'); private _rowHeight; /** Number of columns */ get cols(): number; set cols(val: number); private _cols; /** Layout of the grid. Array of all the grid items with its 'id' and position on the grid. */ get layout(): KtdGridLayout; set layout(layout: KtdGridLayout); private _layout; /** Grid gap in css pixels */ get gap(): number; set gap(val: number); private _gap; /** * If height is a number, fixes the height of the grid to it, recommended when rowHeight = 'fit' is used. * If height is null, height will be automatically set according to its inner grid items. * Defaults to null. * */ get height(): number | null; set height(val: number | null); private _height; get backgroundConfig(): KtdGridBackgroundCfg | null; set backgroundConfig(val: KtdGridBackgroundCfg | null); private _backgroundConfig; private gridCurrentHeight; get config(): KtdGridCfg; /** Reference to the view of the placeholder element. */ private placeholderRef; /** Element that is rendered as placeholder when a grid item is being dragged */ private placeholder; private _gridItemsRenderData; private subscriptions; constructor(gridService: KtdGridService, elementRef: ElementRef, viewContainerRef: ViewContainerRef, renderer: Renderer2, ngZone: NgZone); ngOnChanges(changes: SimpleChanges): void; ngAfterContentInit(): void; ngAfterContentChecked(): void; resize(): void; ngOnDestroy(): void; compactLayout(): void; getItemsRenderData(): KtdDictionary>; getItemRenderData(itemId: string): KtdGridItemRenderData; calculateRenderData(): void; render(): void; private setBackgroundCssVariables; private updateGridItemsStyles; private setGridBackgroundVisible; private initSubscriptions; /** * Perform a general grid drag action, from start to end. A general grid drag action basically includes creating the placeholder element and adding * some class animations. calcNewStateFunc needs to be provided in order to calculate the new state of the layout. * @param gridItem that is been dragged * @param pointerDownEvent event (mousedown or touchdown) where the user initiated the drag * @param calcNewStateFunc function that return the new layout state and the drag element position */ private performDragSequence$; /** * It adds the `ktd-grid-item-animating` class and removes it when the animated transition is complete. * This function is meant to be executed when the drag has ended. * @param gridItem that has been dragged */ private addGridItemAnimatingClass; /** Creates placeholder element */ private createPlaceholderElement; /** Destroys the placeholder element and its ViewRef. */ private destroyPlaceholder; static ngAcceptInputType_cols: NumberInput; static ngAcceptInputType_rowHeight: NumberInput; static ngAcceptInputType_scrollSpeed: NumberInput; static ngAcceptInputType_compactOnPropsChange: BooleanInput; static ngAcceptInputType_preventCollision: BooleanInput; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } export {};