import { OverflowDirection } from "./types/overflow-direction.js"; import { OnOverflowCallBack } from "./types/overflow-callback.js"; export * from "./types/overflow-direction.js"; export * from "./types/overflow-callback.js"; export declare const OVERFLOWED_CLASS_NAME = "overflowed"; export default class OverflowWatcher { private _onResize; private _resizeObserver; private _lastContainerSize; private _lastContainerInstance; private _scrollDirection; private _propSize; private _hiddenItemsProps; private _notOverFlowPros; private _deltaSize; private _notOverFlow; readonly DATA_ELEMENT_ID = "data-element-id"; /** * Cria uma instancia do OverflowWatcher * * @param element - Elemento HTML que o overflow será observado. * @param callback - Função que sera chamada quando ocorrer overflow no elemento. * @param overFlowDirection - Indica direção que o overflow será monitorado. * @param deltaSize - Variação de tamanho que será considerada como overflow. * @param debounce - Tempo até execução do callback em milissegundos. * @param notOverFlow - Lista de ids ou data-element-ids dos elementos que não devem sofrer overFlow. */ constructor({ element, callback, overFlowDirection, debounce, deltaSize, notOverFlow }: OverFlowWatcherParams); addNotOverFlowElement(elementId: string): void; destroy(): void; forceUpdate(): void; private handleResize; private updateOverFlowedItems; private registerNotOverflowProps; private canNotRegisterNotOverFlow; private hasChangedSize; private proccessElements; private clearOverFlow; private proccessElementsOverFlow; private isElementOverFlowing; private canOverFlowElement; private getDataElementId; private exceedsAvaliableSize; private calculateVariation; private canNotOverFlowNotIncludedIds; private registerElementSize; private getElementSizeProps; private calcChildrenSize; private calcElementSize; private isOverFlowed; } export interface OverFlowWatcherParams { element: HTMLElement; callback: OnOverflowCallBack; overFlowDirection?: OverflowDirection; deltaSize?: number; debounce?: number; notOverFlow?: string[]; }