/** * Copyright Aquera Inc 2025 * * This source code is licensed under the BSD-3-Clause license found in the * LICENSE file in the root directory of this source tree. */ import { CSSResultArray, TemplateResult } from 'lit'; import NileElement from '../internal/nile-element'; import { PrefixColumn } from './types/nile-grid.types'; /** * Nile grid component. * * @tag nile-grid * */ export declare class NileGrid extends NileElement { /** * The styles for nile-grid * @remarks If you are extending this class you can extend the base styles with super. Eg `return [super(), myCustomStyles]` */ static get styles(): CSSResultArray; /** To store the column widths in the beginning and after resizing */ columnWidths: number[]; /** To get the slot element */ slotEl: HTMLSlotElement; /** To get the first resize line to show the resize handle */ resizeStart: HTMLElement; /** To get the last resize line to show the resize handle */ resizeEnd: HTMLElement; /** To get the last resize line to show the resize handle */ shadowLeft: HTMLElement; /** To get the last resize line to show the resize handle */ shadowRight: HTMLElement; /** To enable horizontal scrolling when user is resizing */ enableScroll: boolean; /** To enable hoverable rows */ hoverable: boolean; /** Controls vertical overscroll behavior when the grid is scrollable. */ overflowScrollBehaviour: string; /** To store the mutation observer */ private mo?; /** To store the resize observer */ private resizeObserver?; private resizeObserverStickyShadows?; /** To store the request animation frame */ private raf; /** Minimum column width */ minColumnWidth: number; /** To store the sticky index's */ stickyLeftIndexes: number[]; /** To store the sticky index's */ stickyRightIndexes: number[]; /** To calculate the rowspan height */ cellHeight: number | null; headHeight: number | null; /** To check if the widths are initialized */ widthsInitialized: boolean; /** To check if the widths are initialized */ lockedWidthColumns: boolean[]; /** prefix columns width */ prefixSumColumnsWidth: PrefixColumn[]; /** prefix columns width */ stickyColumns: number[]; /** body rows */ bodyRows: HTMLElement[]; /** head rows */ headRows: HTMLElement[]; needsStructureLayout: boolean; needsWidthLayout: boolean; needsSpanLayout: boolean; colCount: number; isGridReady: boolean; shadowLeftVisibleSticky?: boolean; shadowRightVisibleSticky?: boolean; stickyLeftHeadEls: HTMLElement[]; stickyRightHeadEls: HTMLElement[]; stickyLeftBodyEls: HTMLElement[]; stickyRightBodyEls: HTMLElement[]; private resizeTimer; /** To throttle sticky shadow updates */ private shadowRaf; resizeBaseColumnWidths: number[]; constructor(); connectedCallback(): void; private syncStickyShadowsRaf; private updateOverscrollBehavior; private scheduleLayout; private ensureWidths; private onResize; protected firstUpdated(): void; updated(changed: Map): void; private _attachObserverAndLayout; render(): TemplateResult; disconnectedCallback(): void; } export default NileGrid; declare global { interface HTMLElementTagNameMap { 'nile-grid': NileGrid; } }