import { EventEmitter } from "../../stencil-public-runtime"; import { SortableEvent } from "sortablejs"; export type SwirlTableDropRowEvent = Pick & { itemId: string; newNextSiblingItemId: string | undefined; newPrevSiblingItemId: string | undefined; }; /** * @slot columns - Column container, should contain SwirlTableColumns. * @slot rows - Row container, should contain SwirlTableRows. * @slot empty - Optional. Rendered in place of the `emptyStateLabel` when no rows are present. */ export declare class SwirlTable { el: HTMLElement; caption?: string; dragDropHandle?: string; dragDropInstructions: { end: string; initial: string; moved: string; start: string; }; emptyStateLabel?: string; enableDragDrop?: boolean; label: string; loading?: boolean; dropRow: EventEmitter; empty: boolean; liveRegionText: string; scrollable: boolean; scrolled: boolean; scrolledToEnd: boolean; private bodyEl; private columnMutationObserver; private container; private dragDropContainer; private headerEl; private intersectionObserver; private movingViaKeyboard; private positionBeforeKeyboardMove?; private rowMutationObserver; private sortable; componentDidLoad(): Promise; disconnectedCallback(): void; handleEnableDragDropChange(): void; /** * Set up an Intersection Observer to monitor when the table container becomes visible. * This is important because the table's layout may need updating when it becomes visible, * especially if it is rendered within a modal that opens after rendering. */ private setupIntersectionObserver; /** * We are not using shadow DOM for the table, so we cannot use the * `slotchange` event to detect changes in the slotted content. Instead, we * use a MutationObserver to watch for changes of rows. */ private setupMutationObservers; private startRowMutationObserver; private stopRowMutationObserver; private setupDragDrop; private onVisibilityChange; componentDidRender(): Promise; onWindowResize(): Promise; /** * Force a re-render of the table */ rerender(): Promise; private triggerRerender; private resetEmptyRowStyles; private resetRowGroupStyles; private resetColumnStyles; private resetCellStyles; private updateScrolledState; private getColumns; private getCells; private updateLayout; private layoutEmptyRow; private layoutRowGroups; private layOutCellsAndColumns; private getCellsForColumn; private calculateColumnProperties; private applyCellStyles; private applyColumnStyles; private getLeftOffsetForStickyColumn; private hasStickyColumnsToRight; private updateEmptyState; private updateLiveRegionText; private toggleKeyboardMove; private startKeyboardMove; private endKeyboardMove; private cancelKeyboardMove; private moveRow; private focusDragHandleOfRow; private onScroll; private onFocus; private onBlur; private onKeyDown; render(): any; }