/** * @license *------------------------------------------------------------------------------------------- * Copyright © 2026 Progress Software Corporation. All rights reserved. * Licensed under commercial license. See LICENSE.md in the package root for more information *------------------------------------------------------------------------------------------- */ import { Page, SearchField, DetailExpandAction, GroupExpandAction, SelectDescriptor, DetailExpandDescriptor, GroupExpandDescriptor, PagerTargetEvent, TableSelectionChangeEvent } from '@progress/kendo-vue-data-tools'; import { ExtendedColumnProps } from './interfaces/ExtendedColumnProps'; import { SortDescriptor, CompositeFilterDescriptor, GroupDescriptor, State } from '@progress/kendo-data-query'; import { VirtualScroll } from './VirtualScroll'; import { GridExpandChangeEvent, GridItemChangeEvent, GridDragSelectionReleaseEvent, GridContextMenuEvent, GridContextMenuItemClickEvent } from './interfaces/events'; import { GridColumnProps } from './interfaces/GridColumnProps'; import { GridSearchBoxChangeEvent } from './GridSearchBox'; import { GridColumnState } from './interfaces/GridColumnState'; import { GridCellRenderModel } from './interfaces/GridCellRenderModel'; import { GridCellProps } from './interfaces/GridCellProps'; import { GridGroupableSettings } from './interfaces/GridGroupableSettings'; import { GridContextMenuOptions } from './contextMenu/GridContextMenu'; import { GridContextMenuItemNames } from './contextMenu/enums'; /** * @hidden */ declare const Grid: import('vue').DefineComponent; autoProcessData: import('vue').PropType; topCacheCount: { type: import('vue').PropType; default: number; }; collapsedGroups: { type: import('vue').PropType; default: () => any[]; }; uniqueField: import('vue').PropType; totalGroupedHeight: import('vue').PropType; allGroupedItems: import('vue').PropType; alternatePerGroup: import('vue').PropType; columns: import('vue').PropType; columnsState: { type: import('vue').PropType; default: () => any; }; cells: import('vue').PropType; contextMenu: import('vue').PropType boolean | GridContextMenuOptions)>; rows: import('vue').PropType; defaultColumnsState: { type: import('vue').PropType; default: () => any; }; columnVirtualization: import('vue').PropType; dataItems: import('vue').PropType; sortable: import('vue').PropType; defaultSort: import('vue').PropType; sort: import('vue').PropType; filterable: import('vue').PropType; filterOperators: import('vue').PropType; filterCellRender: import('vue').PropType; headerCellRender: import('vue').PropType; showLoader: { type: import('vue').PropType; default: any; }; loader: import('vue').PropType; lockGroups: import('vue').PropType; pinnable: import('vue').PropType; defaultPinnedTopRows: import('vue').PropType; defaultPinnedBottomRows: import('vue').PropType; pinnedTopRows: import('vue').PropType; pinnedBottomRows: import('vue').PropType; defaultFilter: import('vue').PropType; filter: import('vue').PropType; defaultSearch: import('vue').PropType; search: import('vue').PropType; searchFields: import('vue').PropType<(string | SearchField)[]>; highlight: import('vue').PropType<{ [id: string]: boolean | { [id: string]: boolean; }; }>; pageable: import('vue').PropType; pageSize: import('vue').PropType; total: import('vue').PropType; fixedScroll: import('vue').PropType; skip: import('vue').PropType; defaultSkip: import('vue').PropType; take: import('vue').PropType; defaultTake: import('vue').PropType; expandField: import('vue').PropType; expandColumn: import('vue').PropType; selectedField: import('vue').PropType; cellRender: import('vue').PropType any)>; rowRender: import('vue').PropType any)>; rowSpannable: import('vue').PropType; resizable: import('vue').PropType; reorderable: import('vue').PropType; group: import('vue').PropType; defaultGroup: import('vue').PropType; groupable: import('vue').PropType; groupExpand: import('vue').PropType; defaultGroupExpand: import('vue').PropType; detailExpand: import('vue').PropType; defaultDetailExpand: import('vue').PropType; editField: import('vue').PropType; rowClass: import('vue').PropType; select: import('vue').PropType; defaultSelect: import('vue').PropType; selectable: import('vue').PropType; scrollable: { type: import('vue').PropType; default: string; }; size: { type: import('vue').PropType; default: string; validator: (value: string) => any; }; pager: import('vue').PropType; rowHeight: import('vue').PropType; detailRowHeight: import('vue').PropType; detail: import('vue').PropType; columnMenu: import('vue').PropType; columnMenuAnimate: { type: import('vue').PropType; default: () => boolean; }; columnMenuIcon: import('vue').DefineComponent, {}, {}, { wrapperClass(this: import('@progress/kendo-vue-common').SvgIconAll): { [x: string]: any; [x: number]: any; 'k-icon': boolean; 'k-svg-icon': boolean; 'k-flip-h': boolean; 'k-flip-v': boolean; }; }, { handleClick(e: any): void; }, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, { click: any; }, string, import('vue').PublicProps, Readonly> & Readonly<{ onClick?: (...args: any[] | unknown[]) => any; }>, { viewBox: string; }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>; dataItemKey: StringConstructor; navigatable: { type: import('vue').PropType; default: boolean; }; onItemchange: import('vue').PropType<(event: GridItemChangeEvent) => void>; onExpandchange: import('vue').PropType<(event: GridExpandChangeEvent) => void>; onDatastatechange: import('vue').PropType<(event: import('./interfaces/events').GridDataStateChangeEvent) => void>; onPagechange: import('vue').PropType<(event: import('./interfaces/events').GridPageChangeEvent) => void>; onSortchange: import('vue').PropType<(event: import('./interfaces/events').GridSortChangeEvent) => void>; onFilterchange: import('vue').PropType<(event: import('./interfaces/events').GridFilterChangeEvent) => void>; onGroupchange: import('vue').PropType<(event: import('./interfaces/events').GridGroupChangeEvent) => void>; onSearchchange: import('vue').PropType<(event: import('./interfaces/events').GridSearchChangeEvent) => void>; onGroupexpandchange: import('vue').PropType<(event: import('./interfaces/events').GridGroupExpandChangeEvent) => void>; onDetailexpandchange: import('vue').PropType<(event: import('./interfaces/events').GridDetailExpandChangeEvent) => void>; onContextmenu: import('vue').PropType<(event: GridContextMenuEvent) => void>; onContextmenuitemclick: import('vue').PropType<(event: GridContextMenuItemClickEvent) => void>; }>, { rowIndexRef: import('vue').Ref; observerRef: IntersectionObserver; dataRef: import('vue').Ref; groupPanelDivRef: import('vue').Ref; dropElementClueRef: import('vue').Ref; dragElementClueRef: import('vue').Ref; headerRef: import('vue').Ref; footerRef: import('vue').Ref; gridNavRef: import('vue').Ref; colGroupRef: import('vue').Ref; scrollContainerRef: import('vue').Ref; tableBodyRef: import('vue').Ref; gridStateContext: any; shouldUpdateLeftRightRef: import('vue').Ref; resizedRef: import('vue').Ref; currentColumnsState: GridColumnState[]; vsRef: VirtualScroll; virtualSkipRef: import('vue').Ref; stickyHeaderItems: import('vue').Ref; stickyHeaderRef: import('vue').Ref; stickyFooterItems: import('vue').Ref; stickyFooterRef: import('vue').Ref; pinnedTopRef: import('vue').Ref; pinnedBottomRef: import('vue').Ref; sticky: import('vue').Ref<{ headerItems: any[]; footerItems: any[]; }, { headerItems: any[]; footerItems: any[]; } | { headerItems: any[]; footerItems: any[]; }>; scrollToStickyGroup: (group: import('@progress/kendo-vue-data-tools').GroupState) => void; updateStickyGroups: () => void; }, { isRtl: boolean; context: any; navigation: any; showLicenseWatermark: boolean; licenseMessage: any; notHiddenColumns: any[]; contextMenuState: { show: boolean; offset: { left: number; top: number; }; dataItem: any; field: string; }; }, { gridId(): string; idPrefix(): any; groupExpandable(): import('@progress/kendo-vue-data-tools').TableGroupExpandableSettings; hierarchClass(): string | { [key: string]: boolean; }; computedRowSpannable(): Required; computedSelectable(): Required; detailExpandable(): import('@progress/kendo-vue-data-tools').TableExpandableSettings; nonscrollableWrapperClass(): { [x: string]: any; 'k-grid': boolean; 'k-grid-md': boolean; }; scrollableWrapperClass(): any; gridTableClass(): { [x: string]: any; 'k-table': boolean; 'k-grid-table': boolean; 'k-grid-md': boolean; }; getCorrectHeight(): any; currentGroupable(): any; computedCollapsed(): any[]; getAriaRowCount(): any; getAriaColCount(): any; isVirtualScroll(): boolean; pinnedSourceSet(): Set; sortedPinnedTopRows(): any; sortedPinnedBottomRows(): any; hasPinnedTopRows(): boolean; hasPinnedBottomRows(): boolean; contextMenuColumn(): any; headMenuItems(): GridContextMenuItemNames[]; bodyMenuItems(): GridContextMenuItemNames[]; contextMenuItems(): any; }, { getCellPositionStyle(cellPosition: { left?: number; right?: number; }, isRtl: boolean): Record; handleContextMenuOpen(event: MouseEvent, dataItem?: any, field?: string): void; handleContextMenuClose(): void; handleContextMenuSelect(e: any): void; renderContextMenu(): import("vue/jsx-runtime").JSX.Element; filterPinContextMenuItems(items: any[]): any[]; handleContextMenuItemClick(e: { event: any; dataItem?: any; field?: string; }): void; triggerCellContextMenu(nativeEvent: MouseEvent, dataItem?: any, field?: string): void; handleIntersection(entries: IntersectionObserverEntry[]): void; scrollIntoView(options: { rowIndex: number; }): void; setCurrentOnTop(options: { rowIndex: number; }): void; getTotal(): any; readColumnElements(): ExtendedColumnProps[]; getResolvedFlatColumnsState(): GridColumnState[]; filterColumns(columns: ExtendedColumnProps[]): ExtendedColumnProps[][]; getFlatData(initialData: Array, groupingFooter: 'always' | 'visible' | 'none', skip: number, group: any, expand?: DetailExpandDescriptor, groupExpand?: GroupExpandDescriptor[], dataItemKey?: string): { flattedData: any[]; resolvedGroupsCount: number; }; getColumnsEssentialProps(columns: any[]): string; calculateMedia(): void; filterHiddenColumns(columns: GridColumnProps[]): GridColumnProps[]; /** * A getter of the current columns. Gets the current column width or current columns, * or any other [`GridColumnProps`]({% slug api_grid_gridcolumnprops %}) for each defined column. * Can be used on each Grid instance. To obtain the instance of the rendered Grid, use the `ref` * callback. The following example demonstrates how to reorder the columns by dragging their handlers * and check the properties afterwards. You can check the result in the browser console. */ getColumns(): GridColumnProps[]; setRefs(): void; gridUnmounted(): void; isAllData(): boolean; resetVirtualSkip(): void; virtualPageChange(page: Page, targetEvent?: PagerTargetEvent): void; initializeVirtualization(): void; setContainerHeight(): void; setMinRowHeight(): void; onRowHeightChanged(_value: number, _oldValue: number): void; onHeaderScroll(event: Event): void; scrollHandler(event: any): void; rowClick(e: any, item: any): void; rowDoubleClick(e: any, item: any): void; loopGroupedItems(dataItems: any, func: any, level?: number, item?: any): any; updateGroupCollapsed(event: { dataItem: any; event: any; level: number; field?: string; value?: any; }): any; itemChange(event: { dataItem: any; event: any; field?: string; value?: any; }): void; cellClickHandler(event: any): void; cellKeydownHandler(event: any): void; editHandler(dataItem: any): void; removeHandler(dataItem: any): void; saveHandler(dataItem: any): void; cancelHandler(dataItem: any): void; selectionChangeHandler(options: { event: { event: any; }; dataItem: any; dataIndex: number; columnIndex: number; }): void; onKeyboardSelectionChangeHandler(event: KeyboardEvent): void; onHeaderSelectionChangeHandler(event: any): void; selectionRelease(event: GridDragSelectionReleaseEvent): void; clearSelection(event: TableSelectionChangeEvent): void; raiseSelectionEvent(selectionEvent: TableSelectionChangeEvent, newSelectedState: SelectDescriptor): void; moveToNextPage(event: KeyboardEvent): void; moveToPrevPage(event: KeyboardEvent): void; pageChangeHandler(page: Page, event: any): void; sortChangeHandler(sort: SortDescriptor[], event: any): void; filterChangeHandler(filter: CompositeFilterDescriptor, event: any): void; groupChangeHandler(groups: GroupDescriptor[], event: any): void; handleDetailExpandAction(action: DetailExpandAction, event: any): void; handleGroupExpandAction(action: GroupExpandAction, event: any): void; raiseDataEvent(handler: string, data: {}, moreData: State, event: any): void; columnReorder(prev: number, next: number, event: any): void; groupReorder(prevIndex: number, nextIndex: number, event: any): void; columnToGroup(columnIndex: number, groupIndex: number, event: any): void; resetTableWidth(): void; setStickyFooterOffset(): void; onResize(index: number, newWidth: number, oldWidth: number, event: any, end: boolean, colState: GridColumnState[], targetId?: string): void; initColumnsState(columns: ExtendedColumnProps[], oldColumnsState: GridColumnState[]): void; configureColumns(columns: ExtendedColumnProps[], groupCount: number): void; initColumns(data: any[], groupCount: number): void; resolveTitle(field: string): string; findColumnByField(field: string): any; searchColumn(column: any, field: String): any; getDataState(): { filter: any; sort: any; skip: any; take: any; group: any; }; getArguments(event: any): { event: any; target: any; }; getLeafDataItems(): any; totalGroupedRows(gridData: Array): number; addSubItems(gridData: Array, allRowsCount: number): number; searchChange(event: GridSearchBoxChangeEvent): void; getCellsToRender(dataItem: any, leafColumns: any[]): GridCellRenderModel[]; calcVirtualPageSize(): any; getRowPinPosition(dataItem: any): string; handleRowPin(action: string, dataItem: any): void; pinnedSelectionRelease(event: GridDragSelectionReleaseEvent, dataItem: any): void; }, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly; autoProcessData: import('vue').PropType; topCacheCount: { type: import('vue').PropType; default: number; }; collapsedGroups: { type: import('vue').PropType; default: () => any[]; }; uniqueField: import('vue').PropType; totalGroupedHeight: import('vue').PropType; allGroupedItems: import('vue').PropType; alternatePerGroup: import('vue').PropType; columns: import('vue').PropType; columnsState: { type: import('vue').PropType; default: () => any; }; cells: import('vue').PropType; contextMenu: import('vue').PropType boolean | GridContextMenuOptions)>; rows: import('vue').PropType; defaultColumnsState: { type: import('vue').PropType; default: () => any; }; columnVirtualization: import('vue').PropType; dataItems: import('vue').PropType; sortable: import('vue').PropType; defaultSort: import('vue').PropType; sort: import('vue').PropType; filterable: import('vue').PropType; filterOperators: import('vue').PropType; filterCellRender: import('vue').PropType; headerCellRender: import('vue').PropType; showLoader: { type: import('vue').PropType; default: any; }; loader: import('vue').PropType; lockGroups: import('vue').PropType; pinnable: import('vue').PropType; defaultPinnedTopRows: import('vue').PropType; defaultPinnedBottomRows: import('vue').PropType; pinnedTopRows: import('vue').PropType; pinnedBottomRows: import('vue').PropType; defaultFilter: import('vue').PropType; filter: import('vue').PropType; defaultSearch: import('vue').PropType; search: import('vue').PropType; searchFields: import('vue').PropType<(string | SearchField)[]>; highlight: import('vue').PropType<{ [id: string]: boolean | { [id: string]: boolean; }; }>; pageable: import('vue').PropType; pageSize: import('vue').PropType; total: import('vue').PropType; fixedScroll: import('vue').PropType; skip: import('vue').PropType; defaultSkip: import('vue').PropType; take: import('vue').PropType; defaultTake: import('vue').PropType; expandField: import('vue').PropType; expandColumn: import('vue').PropType; selectedField: import('vue').PropType; cellRender: import('vue').PropType any)>; rowRender: import('vue').PropType any)>; rowSpannable: import('vue').PropType; resizable: import('vue').PropType; reorderable: import('vue').PropType; group: import('vue').PropType; defaultGroup: import('vue').PropType; groupable: import('vue').PropType; groupExpand: import('vue').PropType; defaultGroupExpand: import('vue').PropType; detailExpand: import('vue').PropType; defaultDetailExpand: import('vue').PropType; editField: import('vue').PropType; rowClass: import('vue').PropType; select: import('vue').PropType; defaultSelect: import('vue').PropType; selectable: import('vue').PropType; scrollable: { type: import('vue').PropType; default: string; }; size: { type: import('vue').PropType; default: string; validator: (value: string) => any; }; pager: import('vue').PropType; rowHeight: import('vue').PropType; detailRowHeight: import('vue').PropType; detail: import('vue').PropType; columnMenu: import('vue').PropType; columnMenuAnimate: { type: import('vue').PropType; default: () => boolean; }; columnMenuIcon: import('vue').DefineComponent, {}, {}, { wrapperClass(this: import('@progress/kendo-vue-common').SvgIconAll): { [x: string]: any; [x: number]: any; 'k-icon': boolean; 'k-svg-icon': boolean; 'k-flip-h': boolean; 'k-flip-v': boolean; }; }, { handleClick(e: any): void; }, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, { click: any; }, string, import('vue').PublicProps, Readonly> & Readonly<{ onClick?: (...args: any[] | unknown[]) => any; }>, { viewBox: string; }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>; dataItemKey: StringConstructor; navigatable: { type: import('vue').PropType; default: boolean; }; onItemchange: import('vue').PropType<(event: GridItemChangeEvent) => void>; onExpandchange: import('vue').PropType<(event: GridExpandChangeEvent) => void>; onDatastatechange: import('vue').PropType<(event: import('./interfaces/events').GridDataStateChangeEvent) => void>; onPagechange: import('vue').PropType<(event: import('./interfaces/events').GridPageChangeEvent) => void>; onSortchange: import('vue').PropType<(event: import('./interfaces/events').GridSortChangeEvent) => void>; onFilterchange: import('vue').PropType<(event: import('./interfaces/events').GridFilterChangeEvent) => void>; onGroupchange: import('vue').PropType<(event: import('./interfaces/events').GridGroupChangeEvent) => void>; onSearchchange: import('vue').PropType<(event: import('./interfaces/events').GridSearchChangeEvent) => void>; onGroupexpandchange: import('vue').PropType<(event: import('./interfaces/events').GridGroupExpandChangeEvent) => void>; onDetailexpandchange: import('vue').PropType<(event: import('./interfaces/events').GridDetailExpandChangeEvent) => void>; onContextmenu: import('vue').PropType<(event: GridContextMenuEvent) => void>; onContextmenuitemclick: import('vue').PropType<(event: GridContextMenuItemClickEvent) => void>; }>> & Readonly<{}>, { size: string; scrollable: string; navigatable: boolean; columnMenuAnimate: boolean; topCacheCount: number; collapsedGroups: any[][]; columnsState: GridColumnState[]; defaultColumnsState: GridColumnState[]; showLoader: boolean; }, {}, {}, {}, string, () => { gridContext: { dataItemKey: any; searchChange: any; selectionRelease: any; pinnedSelectionRelease: any; dispatchGroupExpand: any; dispatchDetailExpand: any; scrollToStickyGroup: any; getCellPositionStyle: any; onRowPin: any; getRowPinPosition: any; onContextMenu: any; }; sticky: any; }, true, {}, any>; export { Grid };