UNPKG

@progress/kendo-vue-grid

Version:
503 lines (502 loc) • 23.6 kB
/** * @license *------------------------------------------------------------------------------------------- * Copyright © 2026 Progress Software Corporation. All rights reserved. * Licensed under commercial license. See LICENSE.md in the package root for more information *------------------------------------------------------------------------------------------- */ import { GridProps } from './interfaces/GridProps'; import { GridColumnProps } from './interfaces/GridColumnProps'; /** * Represent the `ref` of the Grid component. */ export interface GridHandle { /** * Returns the HTML element of the Grid component. */ element: HTMLDivElement | null; /** * The props values of the Grid. */ props: GridProps; /** * 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. * */ columns: GridColumnProps[]; /** * Method to allow the scroll to be set to a specific row index when the Grid is scrollable. It is zero based. * * @param options - Object, containing the rowIndex to which is going to be scrolled. */ scrollIntoView: (options: { rowIndex: number; }) => void; /** * Method to fit columns according to their content. * * @param columnIds - Array of column ids to be fitted. */ fitColumns: (columnIds: string[]) => void; /** * Method to trigger a PDF export of the Grid. * The 'pdf' prop of the Grid should be set to true or object of setting that will be applied the exported Grid. */ exportAsPdf: () => void; } /** * Represents the [KendoVue Grid component]({% slug overview_grid %}). * * @remarks * Supported children components are: {@link GridColumn}, {@link GridToolbar}, {@link GridNoRecords}, {@link StatusBar}. * * @hidden * */ export declare const RootGrid: import('vue').DefineComponent<import('vue').ExtractPropTypes<{ id: import('vue').PropType<string>; autoProcessData: import('vue').PropType<boolean | import('./utils/dataProcessing').AutoProcessDataConfig>; topCacheCount: { type: import('vue').PropType<number>; /** * Represent the `ref` of the Grid component. */ default: number; }; collapsedGroups: { type: import('vue').PropType<any[][]>; default: () => any[]; }; uniqueField: import('vue').PropType<string>; totalGroupedHeight: import('vue').PropType<number>; allGroupedItems: import('vue').PropType<import('@progress/kendo-data-query').DataResult>; alternatePerGroup: import('vue').PropType<boolean>; columns: import('vue').PropType<GridColumnProps[]>; columnsState: { type: import('vue').PropType<import('.').GridColumnState[]>; default: () => any; }; cells: import('vue').PropType<import('.').GridCellsSettings>; contextMenu: import('vue').PropType<boolean | import('.').GridContextMenuOptions | ((options: import('.').GridCellBaseOptions) => boolean | import('.').GridContextMenuOptions)>; rows: import('vue').PropType<import('./interfaces/GridRowsSettings').GridRowsSettings>; defaultColumnsState: { type: import('vue').PropType<import('.').GridColumnState[]>; default: () => any; }; columnVirtualization: import('vue').PropType<boolean>; dataItems: import('vue').PropType<any[] | import('@progress/kendo-data-query').DataResult>; sortable: import('vue').PropType<import('.').GridSortSettings>; defaultSort: import('vue').PropType<import('@progress/kendo-data-query').SortDescriptor[]>; sort: import('vue').PropType<import('@progress/kendo-data-query').SortDescriptor[]>; filterable: import('vue').PropType<boolean>; filterOperators: import('vue').PropType<import('./interfaces/GridFilterOperators').GridFilterOperators>; filterCellRender: import('vue').PropType<any>; headerCellRender: import('vue').PropType<any>; showLoader: { type: import('vue').PropType<boolean>; default: any; }; loader: import('vue').PropType<string | Object | Function>; lockGroups: import('vue').PropType<boolean>; pinnable: import('vue').PropType<boolean>; defaultPinnedTopRows: import('vue').PropType<any[]>; defaultPinnedBottomRows: import('vue').PropType<any[]>; pinnedTopRows: import('vue').PropType<any[]>; pinnedBottomRows: import('vue').PropType<any[]>; defaultFilter: import('vue').PropType<import('@progress/kendo-data-query').CompositeFilterDescriptor>; filter: import('vue').PropType<import('@progress/kendo-data-query').CompositeFilterDescriptor>; defaultSearch: import('vue').PropType<import('@progress/kendo-data-query').CompositeFilterDescriptor>; search: import('vue').PropType<import('@progress/kendo-data-query').CompositeFilterDescriptor>; searchFields: import('vue').PropType<(string | import('@progress/kendo-vue-data-tools').SearchField)[]>; highlight: import('vue').PropType<{ [id: string]: boolean | { [id: string]: boolean; }; }>; pageable: import('vue').PropType<any>; pageSize: import('vue').PropType<number>; total: import('vue').PropType<number>; fixedScroll: import('vue').PropType<boolean>; skip: import('vue').PropType<number>; defaultSkip: import('vue').PropType<number>; take: import('vue').PropType<number>; defaultTake: import('vue').PropType<number>; expandField: import('vue').PropType<string>; expandColumn: import('vue').PropType<GridColumnProps>; selectedField: import('vue').PropType<string>; cellRender: import('vue').PropType<string | boolean | ((h: any, defaultRendering: any, props: import('.').GridCellProps, listeners: any) => any)>; rowRender: import('vue').PropType<string | boolean | ((h: any, defaultRendering: any, defaultSlots: any, props: any, listeners: any) => any)>; rowSpannable: import('vue').PropType<boolean | import('./interfaces/GridRowSpannableSettings').GridRowSpannableSettings>; resizable: import('vue').PropType<boolean>; reorderable: import('vue').PropType<boolean>; group: import('vue').PropType<import('@progress/kendo-data-query').GroupDescriptor[]>; defaultGroup: import('vue').PropType<import('@progress/kendo-data-query').GroupDescriptor[]>; groupable: import('vue').PropType<boolean | import('.').GridGroupableSettings>; groupExpand: import('vue').PropType<import('@progress/kendo-vue-data-tools').GroupExpandDescriptor[]>; defaultGroupExpand: import('vue').PropType<import('@progress/kendo-vue-data-tools').GroupExpandDescriptor[]>; detailExpand: import('vue').PropType<import('@progress/kendo-vue-data-tools').DetailExpandDescriptor>; defaultDetailExpand: import('vue').PropType<import('@progress/kendo-vue-data-tools').DetailExpandDescriptor>; editField: import('vue').PropType<string>; rowClass: import('vue').PropType<Function>; select: import('vue').PropType<import('@progress/kendo-vue-data-tools').SelectDescriptor>; defaultSelect: import('vue').PropType<import('@progress/kendo-vue-data-tools').SelectDescriptor>; selectable: import('vue').PropType<boolean | import('./interfaces/GridSelectableSettings').GridSelectableSettings>; scrollable: { type: import('vue').PropType<string>; default: string; }; size: { type: import('vue').PropType<string>; default: string; validator: (value: string) => any; }; dir: import('vue').PropType<string>; pager: import('vue').PropType<string | boolean | Object | Function>; rowHeight: import('vue').PropType<number>; detailRowHeight: import('vue').PropType<number>; detail: import('vue').PropType<any>; columnMenu: import('vue').PropType<any>; columnMenuAnimate: { type: import('vue').PropType<boolean | import('@progress/kendo-vue-popup').PopupAnimation>; default: () => boolean; }; columnMenuIcon: import('vue').DefineComponent<import('vue').ExtractPropTypes<{ name: StringConstructor; icon: ObjectConstructor; themeColor: { type: StringConstructor; }; size: { type: StringConstructor; }; flip: { type: StringConstructor; }; fillMode: { type: StringConstructor; }; variant: { type: StringConstructor; }; id: StringConstructor; ariaLabel: StringConstructor; title: StringConstructor; viewBox: { type: StringConstructor; default: string; }; tabIndex: NumberConstructor; svgClassName: StringConstructor; svgStyle: ObjectConstructor; }>, {}, {}, { 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<import('vue').ExtractPropTypes<{ name: StringConstructor; icon: ObjectConstructor; themeColor: { type: StringConstructor; }; size: { type: StringConstructor; }; flip: { type: StringConstructor; }; fillMode: { type: StringConstructor; }; variant: { type: StringConstructor; }; id: StringConstructor; ariaLabel: StringConstructor; title: StringConstructor; viewBox: { type: StringConstructor; default: string; }; tabIndex: NumberConstructor; svgClassName: StringConstructor; svgStyle: ObjectConstructor; }>> & Readonly<{ onClick?: (...args: any[] | unknown[]) => any; }>, { viewBox: string; }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>; dataItemKey: StringConstructor; navigatable: { type: import('vue').PropType<boolean>; default: boolean; }; onItemchange: import('vue').PropType<(event: import('.').GridItemChangeEvent) => void>; onExpandchange: import('vue').PropType<(event: import('.').GridExpandChangeEvent) => void>; onDatastatechange: import('vue').PropType<(event: import('.').GridDataStateChangeEvent) => void>; onPagechange: import('vue').PropType<(event: import('.').GridPageChangeEvent) => void>; onSortchange: import('vue').PropType<(event: import('.').GridSortChangeEvent) => void>; onFilterchange: import('vue').PropType<(event: import('.').GridFilterChangeEvent) => void>; onGroupchange: import('vue').PropType<(event: import('.').GridGroupChangeEvent) => void>; onSearchchange: import('vue').PropType<(event: import('.').GridSearchChangeEvent) => void>; onGroupexpandchange: import('vue').PropType<(event: import('.').GridGroupExpandChangeEvent) => void>; onDetailexpandchange: import('vue').PropType<(event: import('.').GridDetailExpandChangeEvent) => void>; onContextmenu: import('vue').PropType<(event: import('.').GridContextMenuEvent) => void>; onContextmenuitemclick: import('vue').PropType<(event: import('.').GridContextMenuItemClickEvent) => void>; clipboard: import('vue').PropType<boolean | import('@progress/kendo-vue-data-tools').ClipboardSettings>; onClipboard: import('vue').PropType<(event: import('@progress/kendo-vue-data-tools').GridClipboardEvent) => void>; csv: import('vue').PropType<boolean | import('./interfaces/GridProps').GridCSVExportOptions>; onCsvexport: import('vue').PropType<(data: any[]) => any[]>; }>, void, {}, { columnsWithTemplates(): any[]; cellsWithTemplates(): any; rowsWithTemplates(): any; }, { transformTemplate(template: any, listeners: any): any; transformGroupTemplates(group: any, listeners: any): { groupHeader: any; data: any; groupFooter: any; }; transformCellTemplates(cells: any, listeners: any): { headerCell: any; filterCell: any; footerCell: any; groupHeader: any; data: any; groupFooter: any; select: any; hierarchy: any; group: any; edit: { text: any; numeric: any; boolean: any; date: any; }; }; transformRowTemplates(rows: any, listeners: any): { groupHeader: any; data: any; groupFooter: any; pinnedData: any; }; }, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{ id: import('vue').PropType<string>; autoProcessData: import('vue').PropType<boolean | import('./utils/dataProcessing').AutoProcessDataConfig>; topCacheCount: { type: import('vue').PropType<number>; /** * Represent the `ref` of the Grid component. */ default: number; }; collapsedGroups: { type: import('vue').PropType<any[][]>; default: () => any[]; }; uniqueField: import('vue').PropType<string>; totalGroupedHeight: import('vue').PropType<number>; allGroupedItems: import('vue').PropType<import('@progress/kendo-data-query').DataResult>; alternatePerGroup: import('vue').PropType<boolean>; columns: import('vue').PropType<GridColumnProps[]>; columnsState: { type: import('vue').PropType<import('.').GridColumnState[]>; default: () => any; }; cells: import('vue').PropType<import('.').GridCellsSettings>; contextMenu: import('vue').PropType<boolean | import('.').GridContextMenuOptions | ((options: import('.').GridCellBaseOptions) => boolean | import('.').GridContextMenuOptions)>; rows: import('vue').PropType<import('./interfaces/GridRowsSettings').GridRowsSettings>; defaultColumnsState: { type: import('vue').PropType<import('.').GridColumnState[]>; default: () => any; }; columnVirtualization: import('vue').PropType<boolean>; dataItems: import('vue').PropType<any[] | import('@progress/kendo-data-query').DataResult>; sortable: import('vue').PropType<import('.').GridSortSettings>; defaultSort: import('vue').PropType<import('@progress/kendo-data-query').SortDescriptor[]>; sort: import('vue').PropType<import('@progress/kendo-data-query').SortDescriptor[]>; filterable: import('vue').PropType<boolean>; filterOperators: import('vue').PropType<import('./interfaces/GridFilterOperators').GridFilterOperators>; filterCellRender: import('vue').PropType<any>; headerCellRender: import('vue').PropType<any>; showLoader: { type: import('vue').PropType<boolean>; default: any; }; loader: import('vue').PropType<string | Object | Function>; lockGroups: import('vue').PropType<boolean>; pinnable: import('vue').PropType<boolean>; defaultPinnedTopRows: import('vue').PropType<any[]>; defaultPinnedBottomRows: import('vue').PropType<any[]>; pinnedTopRows: import('vue').PropType<any[]>; pinnedBottomRows: import('vue').PropType<any[]>; defaultFilter: import('vue').PropType<import('@progress/kendo-data-query').CompositeFilterDescriptor>; filter: import('vue').PropType<import('@progress/kendo-data-query').CompositeFilterDescriptor>; defaultSearch: import('vue').PropType<import('@progress/kendo-data-query').CompositeFilterDescriptor>; search: import('vue').PropType<import('@progress/kendo-data-query').CompositeFilterDescriptor>; searchFields: import('vue').PropType<(string | import('@progress/kendo-vue-data-tools').SearchField)[]>; highlight: import('vue').PropType<{ [id: string]: boolean | { [id: string]: boolean; }; }>; pageable: import('vue').PropType<any>; pageSize: import('vue').PropType<number>; total: import('vue').PropType<number>; fixedScroll: import('vue').PropType<boolean>; skip: import('vue').PropType<number>; defaultSkip: import('vue').PropType<number>; take: import('vue').PropType<number>; defaultTake: import('vue').PropType<number>; expandField: import('vue').PropType<string>; expandColumn: import('vue').PropType<GridColumnProps>; selectedField: import('vue').PropType<string>; cellRender: import('vue').PropType<string | boolean | ((h: any, defaultRendering: any, props: import('.').GridCellProps, listeners: any) => any)>; rowRender: import('vue').PropType<string | boolean | ((h: any, defaultRendering: any, defaultSlots: any, props: any, listeners: any) => any)>; rowSpannable: import('vue').PropType<boolean | import('./interfaces/GridRowSpannableSettings').GridRowSpannableSettings>; resizable: import('vue').PropType<boolean>; reorderable: import('vue').PropType<boolean>; group: import('vue').PropType<import('@progress/kendo-data-query').GroupDescriptor[]>; defaultGroup: import('vue').PropType<import('@progress/kendo-data-query').GroupDescriptor[]>; groupable: import('vue').PropType<boolean | import('.').GridGroupableSettings>; groupExpand: import('vue').PropType<import('@progress/kendo-vue-data-tools').GroupExpandDescriptor[]>; defaultGroupExpand: import('vue').PropType<import('@progress/kendo-vue-data-tools').GroupExpandDescriptor[]>; detailExpand: import('vue').PropType<import('@progress/kendo-vue-data-tools').DetailExpandDescriptor>; defaultDetailExpand: import('vue').PropType<import('@progress/kendo-vue-data-tools').DetailExpandDescriptor>; editField: import('vue').PropType<string>; rowClass: import('vue').PropType<Function>; select: import('vue').PropType<import('@progress/kendo-vue-data-tools').SelectDescriptor>; defaultSelect: import('vue').PropType<import('@progress/kendo-vue-data-tools').SelectDescriptor>; selectable: import('vue').PropType<boolean | import('./interfaces/GridSelectableSettings').GridSelectableSettings>; scrollable: { type: import('vue').PropType<string>; default: string; }; size: { type: import('vue').PropType<string>; default: string; validator: (value: string) => any; }; dir: import('vue').PropType<string>; pager: import('vue').PropType<string | boolean | Object | Function>; rowHeight: import('vue').PropType<number>; detailRowHeight: import('vue').PropType<number>; detail: import('vue').PropType<any>; columnMenu: import('vue').PropType<any>; columnMenuAnimate: { type: import('vue').PropType<boolean | import('@progress/kendo-vue-popup').PopupAnimation>; default: () => boolean; }; columnMenuIcon: import('vue').DefineComponent<import('vue').ExtractPropTypes<{ name: StringConstructor; icon: ObjectConstructor; themeColor: { type: StringConstructor; }; size: { type: StringConstructor; }; flip: { type: StringConstructor; }; fillMode: { type: StringConstructor; }; variant: { type: StringConstructor; }; id: StringConstructor; ariaLabel: StringConstructor; title: StringConstructor; viewBox: { type: StringConstructor; default: string; }; tabIndex: NumberConstructor; svgClassName: StringConstructor; svgStyle: ObjectConstructor; }>, {}, {}, { 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<import('vue').ExtractPropTypes<{ name: StringConstructor; icon: ObjectConstructor; themeColor: { type: StringConstructor; }; size: { type: StringConstructor; }; flip: { type: StringConstructor; }; fillMode: { type: StringConstructor; }; variant: { type: StringConstructor; }; id: StringConstructor; ariaLabel: StringConstructor; title: StringConstructor; viewBox: { type: StringConstructor; default: string; }; tabIndex: NumberConstructor; svgClassName: StringConstructor; svgStyle: ObjectConstructor; }>> & Readonly<{ onClick?: (...args: any[] | unknown[]) => any; }>, { viewBox: string; }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>; dataItemKey: StringConstructor; navigatable: { type: import('vue').PropType<boolean>; default: boolean; }; onItemchange: import('vue').PropType<(event: import('.').GridItemChangeEvent) => void>; onExpandchange: import('vue').PropType<(event: import('.').GridExpandChangeEvent) => void>; onDatastatechange: import('vue').PropType<(event: import('.').GridDataStateChangeEvent) => void>; onPagechange: import('vue').PropType<(event: import('.').GridPageChangeEvent) => void>; onSortchange: import('vue').PropType<(event: import('.').GridSortChangeEvent) => void>; onFilterchange: import('vue').PropType<(event: import('.').GridFilterChangeEvent) => void>; onGroupchange: import('vue').PropType<(event: import('.').GridGroupChangeEvent) => void>; onSearchchange: import('vue').PropType<(event: import('.').GridSearchChangeEvent) => void>; onGroupexpandchange: import('vue').PropType<(event: import('.').GridGroupExpandChangeEvent) => void>; onDetailexpandchange: import('vue').PropType<(event: import('.').GridDetailExpandChangeEvent) => void>; onContextmenu: import('vue').PropType<(event: import('.').GridContextMenuEvent) => void>; onContextmenuitemclick: import('vue').PropType<(event: import('.').GridContextMenuItemClickEvent) => void>; clipboard: import('vue').PropType<boolean | import('@progress/kendo-vue-data-tools').ClipboardSettings>; onClipboard: import('vue').PropType<(event: import('@progress/kendo-vue-data-tools').GridClipboardEvent) => void>; csv: import('vue').PropType<boolean | import('./interfaces/GridProps').GridCSVExportOptions>; onCsvexport: import('vue').PropType<(data: any[]) => any[]>; }>> & Readonly<{}>, { size: string; scrollable: string; navigatable: boolean; columnMenuAnimate: boolean; topCacheCount: number; collapsedGroups: any[][]; columnsState: import('.').GridColumnState[]; defaultColumnsState: import('.').GridColumnState[]; showLoader: boolean; }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;