@progress/kendo-vue-grid 8.1.0-develop.2 → 8.1.0-develop.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/Grid.d.ts +56 -5
  2. package/Grid.js +1 -1
  3. package/Grid.mjs +667 -649
  4. package/GridNav.d.ts +24 -4
  5. package/GridNav.js +1 -1
  6. package/GridNav.mjs +62 -22
  7. package/GridState.d.ts +4 -0
  8. package/RootGrid.d.ts +32 -11
  9. package/RootGrid.js +1 -1
  10. package/RootGrid.mjs +96 -57
  11. package/cells/GridCell.js +1 -1
  12. package/cells/GridCell.mjs +35 -26
  13. package/cells/GridGroupCell.d.ts +10 -0
  14. package/cells/GridGroupCell.js +1 -1
  15. package/cells/GridGroupCell.mjs +95 -53
  16. package/columnMenu/GridColumnMenuCheckboxFilter.d.ts +1 -1
  17. package/columnMenu/GridColumnMenuCheckboxFilter.js +1 -1
  18. package/columnMenu/GridColumnMenuCheckboxFilter.mjs +11 -11
  19. package/common.d.ts +2 -0
  20. package/common.js +1 -1
  21. package/common.mjs +2 -0
  22. package/components/StickyGroupTable.d.ts +85 -0
  23. package/components/StickyGroupTable.js +8 -0
  24. package/components/StickyGroupTable.mjs +113 -0
  25. package/dist/cdn/js/kendo-vue-grid.js +1 -1
  26. package/drag/ColumnResize.d.ts +10 -1
  27. package/drag/ColumnResize.js +1 -1
  28. package/drag/ColumnResize.mjs +129 -104
  29. package/drag/GroupingIndicator.d.ts +1 -0
  30. package/drag/GroupingIndicator.js +1 -1
  31. package/drag/GroupingIndicator.mjs +28 -18
  32. package/footer/FooterCell.d.ts +43 -0
  33. package/footer/FooterCell.js +8 -0
  34. package/footer/FooterCell.mjs +68 -0
  35. package/footer/FooterRow.d.ts +5 -6
  36. package/footer/FooterRow.js +1 -1
  37. package/footer/FooterRow.mjs +16 -39
  38. package/getRowContents.d.ts +85 -0
  39. package/getRowContents.js +8 -0
  40. package/getRowContents.mjs +172 -0
  41. package/header/GridHeaderGroupSpacerCell.d.ts +11 -0
  42. package/hooks/useStickyGroups.d.ts +72 -0
  43. package/hooks/useStickyGroups.js +8 -0
  44. package/hooks/useStickyGroups.mjs +350 -0
  45. package/index.d.mts +1 -0
  46. package/index.d.ts +1 -0
  47. package/index.js +1 -1
  48. package/index.mjs +74 -73
  49. package/interfaces/GridCellProps.d.ts +4 -0
  50. package/interfaces/GridCellsSettings.d.ts +320 -0
  51. package/interfaces/GridColumnProps.d.ts +11 -1
  52. package/interfaces/GridGroupableSettings.d.ts +23 -0
  53. package/interfaces/GridProps.d.ts +33 -0
  54. package/messages/main.d.ts +5 -0
  55. package/messages/main.js +2 -2
  56. package/messages/main.mjs +15 -13
  57. package/package-metadata.js +1 -1
  58. package/package-metadata.mjs +2 -2
  59. package/package.json +12 -12
  60. package/utils/main.js +1 -1
  61. package/utils/main.mjs +80 -76
package/Grid.d.ts CHANGED
@@ -8,12 +8,14 @@
8
8
  import { Page, SearchField, DetailExpandAction, GroupExpandAction, SelectDescriptor, DetailExpandDescriptor, GroupExpandDescriptor, PagerTargetEvent, TableSelectionChangeEvent } from '@progress/kendo-vue-data-tools';
9
9
  import { ExtendedColumnProps } from './interfaces/ExtendedColumnProps';
10
10
  import { SortDescriptor, CompositeFilterDescriptor, GroupDescriptor, State } from '@progress/kendo-data-query';
11
+ import { VirtualScroll } from './VirtualScroll';
11
12
  import { GridExpandChangeEvent, GridItemChangeEvent, GridDragSelectionReleaseEvent } from './interfaces/events';
12
13
  import { GridColumnProps } from './interfaces/GridColumnProps';
13
14
  import { GridSearchBoxChangeEvent } from './GridSearchBox';
14
15
  import { GridColumnState } from './interfaces/GridColumnState';
15
16
  import { GridCellRenderModel } from './interfaces/GridCellRenderModel';
16
17
  import { GridCellProps } from './interfaces/GridCellProps';
18
+ import { GridGroupableSettings } from './interfaces/GridGroupableSettings';
17
19
  /**
18
20
  * @hidden
19
21
  */
@@ -49,6 +51,7 @@ declare const Grid: import('vue').DefineComponent<import('vue').ExtractPropTypes
49
51
  type: import('vue').PropType<GridColumnState[]>;
50
52
  default: () => any;
51
53
  };
54
+ cells: import('vue').PropType<import('.').GridCellsSettings>;
52
55
  defaultColumnsState: {
53
56
  type: import('vue').PropType<GridColumnState[]>;
54
57
  default: () => any;
@@ -67,6 +70,7 @@ declare const Grid: import('vue').DefineComponent<import('vue').ExtractPropTypes
67
70
  default: any;
68
71
  };
69
72
  loader: import('vue').PropType<string | Object | Function>;
73
+ lockGroups: import('vue').PropType<boolean>;
70
74
  defaultFilter: import('vue').PropType<CompositeFilterDescriptor>;
71
75
  filter: import('vue').PropType<CompositeFilterDescriptor>;
72
76
  defaultSearch: import('vue').PropType<CompositeFilterDescriptor>;
@@ -95,7 +99,7 @@ declare const Grid: import('vue').DefineComponent<import('vue').ExtractPropTypes
95
99
  reorderable: import('vue').PropType<boolean>;
96
100
  group: import('vue').PropType<GroupDescriptor[]>;
97
101
  defaultGroup: import('vue').PropType<GroupDescriptor[]>;
98
- groupable: import('vue').PropType<boolean | import('.').GridGroupableSettings>;
102
+ groupable: import('vue').PropType<boolean | GridGroupableSettings>;
99
103
  groupExpand: import('vue').PropType<GroupExpandDescriptor[]>;
100
104
  defaultGroupExpand: import('vue').PropType<GroupExpandDescriptor[]>;
101
105
  detailExpand: import('vue').PropType<DetailExpandDescriptor>;
@@ -201,6 +205,25 @@ declare const Grid: import('vue').DefineComponent<import('vue').ExtractPropTypes
201
205
  onGroupexpandchange: import('vue').PropType<(event: import('./interfaces/events').GridGroupExpandChangeEvent) => void>;
202
206
  onDetailexpandchange: import('vue').PropType<(event: import('./interfaces/events').GridDetailExpandChangeEvent) => void>;
203
207
  }>, {
208
+ rowIndexRef: import('vue').Ref<any, any>;
209
+ observerRef: import('vue').Ref<{
210
+ readonly root: Document | Element;
211
+ readonly rootMargin: string;
212
+ readonly thresholds: readonly number[];
213
+ disconnect: () => void;
214
+ observe: (target: Element) => void;
215
+ takeRecords: () => IntersectionObserverEntry[];
216
+ unobserve: (target: Element) => void;
217
+ }, IntersectionObserver | {
218
+ readonly root: Document | Element;
219
+ readonly rootMargin: string;
220
+ readonly thresholds: readonly number[];
221
+ disconnect: () => void;
222
+ observe: (target: Element) => void;
223
+ takeRecords: () => IntersectionObserverEntry[];
224
+ unobserve: (target: Element) => void;
225
+ }>;
226
+ dataRef: import('vue').Ref<any[], any[]>;
204
227
  groupPanelDivRef: import('vue').Ref<any, any>;
205
228
  dropElementClueRef: import('vue').Ref<any, any>;
206
229
  dragElementClueRef: import('vue').Ref<any, any>;
@@ -209,12 +232,29 @@ declare const Grid: import('vue').DefineComponent<import('vue').ExtractPropTypes
209
232
  gridNavRef: import('vue').Ref<any, any>;
210
233
  colGroupRef: import('vue').Ref<any, any>;
211
234
  scrollContainerRef: import('vue').Ref<any, any>;
212
- scrollTableRef: import('vue').Ref<any, any>;
213
- scrollTableBodyRef: import('vue').Ref<any, any>;
214
- gridContext: {};
235
+ tableBodyRef: import('vue').Ref<any, any>;
236
+ gridContext: any;
215
237
  shouldUpdateLeftRightRef: import('vue').Ref<boolean, boolean>;
216
238
  resizedRef: import('vue').Ref<boolean, boolean>;
217
239
  currentColumnsState: GridColumnState[];
240
+ vsRef: VirtualScroll;
241
+ virtualSkipRef: import('vue').Ref<number, number>;
242
+ stickyHeaderItems: import('vue').Ref<any[], any[]>;
243
+ stickyHeaderRef: import('vue').Ref<any, any>;
244
+ stickyFooterItems: import('vue').Ref<any[], any[]>;
245
+ stickyFooterRef: import('vue').Ref<any, any>;
246
+ sticky: import('vue').Ref<{
247
+ headerItems: any[];
248
+ footerItems: any[];
249
+ }, {
250
+ headerItems: any[];
251
+ footerItems: any[];
252
+ } | {
253
+ headerItems: any[];
254
+ footerItems: any[];
255
+ }>;
256
+ scrollToStickyGroup: (group: import('@progress/kendo-vue-data-tools').GroupState) => void;
257
+ updateStickyGroups: () => void;
218
258
  }, {
219
259
  isRtl: boolean;
220
260
  context: any;
@@ -251,6 +291,13 @@ declare const Grid: import('vue').DefineComponent<import('vue').ExtractPropTypes
251
291
  getAriaColCount(): any;
252
292
  isVirtualScroll(): boolean;
253
293
  }, {
294
+ handleIntersection(entries: IntersectionObserverEntry[]): void;
295
+ scrollIntoView(options: {
296
+ rowIndex: number;
297
+ }): void;
298
+ setCurrentOnTop(options: {
299
+ rowIndex: number;
300
+ }): void;
254
301
  getTotal(): any;
255
302
  readColumnElements(): ExtendedColumnProps[];
256
303
  getResolvedFlatColumnsState(): GridColumnState[];
@@ -385,6 +432,7 @@ declare const Grid: import('vue').DefineComponent<import('vue').ExtractPropTypes
385
432
  type: import('vue').PropType<GridColumnState[]>;
386
433
  default: () => any;
387
434
  };
435
+ cells: import('vue').PropType<import('.').GridCellsSettings>;
388
436
  defaultColumnsState: {
389
437
  type: import('vue').PropType<GridColumnState[]>;
390
438
  default: () => any;
@@ -403,6 +451,7 @@ declare const Grid: import('vue').DefineComponent<import('vue').ExtractPropTypes
403
451
  default: any;
404
452
  };
405
453
  loader: import('vue').PropType<string | Object | Function>;
454
+ lockGroups: import('vue').PropType<boolean>;
406
455
  defaultFilter: import('vue').PropType<CompositeFilterDescriptor>;
407
456
  filter: import('vue').PropType<CompositeFilterDescriptor>;
408
457
  defaultSearch: import('vue').PropType<CompositeFilterDescriptor>;
@@ -431,7 +480,7 @@ declare const Grid: import('vue').DefineComponent<import('vue').ExtractPropTypes
431
480
  reorderable: import('vue').PropType<boolean>;
432
481
  group: import('vue').PropType<GroupDescriptor[]>;
433
482
  defaultGroup: import('vue').PropType<GroupDescriptor[]>;
434
- groupable: import('vue').PropType<boolean | import('.').GridGroupableSettings>;
483
+ groupable: import('vue').PropType<boolean | GridGroupableSettings>;
435
484
  groupExpand: import('vue').PropType<GroupExpandDescriptor[]>;
436
485
  defaultGroupExpand: import('vue').PropType<GroupExpandDescriptor[]>;
437
486
  detailExpand: import('vue').PropType<DetailExpandDescriptor>;
@@ -553,6 +602,8 @@ declare const Grid: import('vue').DefineComponent<import('vue').ExtractPropTypes
553
602
  selectionRelease: any;
554
603
  dispatchGroupExpand: any;
555
604
  dispatchDetailExpand: any;
605
+ scrollToStickyGroup: any;
556
606
  };
607
+ sticky: any;
557
608
  }, true, {}, any>;
558
609
  export { Grid };
package/Grid.js CHANGED
@@ -5,4 +5,4 @@
5
5
  * Licensed under commercial license. See LICENSE.md in the package root for more information
6
6
  *-------------------------------------------------------------------------------------------
7
7
  */
8
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("vue"),h=require("@progress/kendo-vue-common"),p=require("@progress/kendo-vue-data-tools"),tt=require("@progress/kendo-vue-indicators"),ze=require("./GridNav.js"),_e=require("./cells/GridSelectionCell.js"),Q=require("./cells/GridHierarchyCell.js"),it=require("./cells/GridDetailHierarchyCell.js"),st=require("./cells/GridDetailCell.js"),at=require("./cells/GridEditCell.js"),rt=require("./header/Header.js"),lt=require("./header/HeaderRow.js"),ot=require("./header/FilterRow.js"),nt=require("./header/GroupPanel.js"),dt=require("./footer/Footer.js"),ht=require("./footer/FooterRow.js"),ct=require("./components/table/GridTable.js"),pt=require("./components/table/GridTableScrollable.js"),Le=require("./filterCommon.js"),ut=require("./VirtualScroll.js"),gt=require("./drag/ColumnResize.js"),ft=require("./drag/CommonDragLogic.js"),mt=require("./drag/DragClue.js"),Ct=require("./drag/DropClue.js"),v=require("./utils/main.js"),Rt=require("./cells/GridCell.js"),X=require("./cells/GridGroupCell.js"),bt=require("./rows/GridRow.js"),$t=require("./common.js"),Me=require("./header/GridHeaderSelectionCell.js"),Fe=require("./components/noRecords/GridNoRecords.js"),Pe=require("./components/noRecords/GridNoRecordsContainer.js"),Y=require("./package-metadata.js"),Ke=require("./messages/messagesMap.js"),It=require("@progress/kendo-data-query"),vt=require("./key.js"),St=require("./utils/virtualColumns.js"),xt=o.defineComponent({name:"KendoGrid",inheritAttrs:!1,props:{...$t.gridProps,toolbar:{type:Object},noRecords:{type:Object}},data(){return{isRtl:!1,context:void 0,navigation:void 0,showLicenseWatermark:!1,licenseMessage:void 0,notHiddenColumns:[]}},watch:{rowHeight:function(e,t){var i;this.onRowHeightChanged(e,t),(i=this.vsRef)==null||i.reset()},scrollable:function(){var e;(e=this.vsRef)==null||e.reset()},filter:function(){var e;(e=this.vsRef)==null||e.reset()},group:function(){var e;(e=this.vsRef)==null||e.reset()},currentGroupable:function(){var e;(e=this.vsRef)==null||e.reset()},sort:function(){var e;(e=this.vsRef)==null||e.reset()}},created(){h.validatePackage(Y.packageMetadata),this.showLicenseWatermark=h.shouldShowValidationUI(Y.packageMetadata),this.licenseMessage=h.getLicenseMessage(Y.packageMetadata),this.initialHeight=null,this.columnsRef=[],this.vsRef=new ut.VirtualScroll,this.dragLogic=new ft.CommonDragLogic(this.columnReorder.bind(this),this.groupReorder.bind(this),this.columnToGroup.bind(this)),this.columnResize=new gt.ColumnResize(this.onResize.bind(this)),this._columnsMap=[[]],this._header=null,this._footer=null,this.tableBodyRef=null,this.tableRef=null,this.scrollHeightContainerRef=null,this.forceUpdateTimeout=void 0,this._gridId=h.guid(),this._gridRoleElementId=h.guid(),this.slicedCurrentData=void 0,this._prevTotal=void 0,this._containerHeightRef=0,this._minRowHeightRef=0,this._virtualSkipRef=0,this.wrapperScrollTopRef=0,this.scrollLeftRef=0},mounted(){var t,i;this.setRefs();const e=h.isRtl(this._element);this._prevTotal=this.$props.total,this.isRtl=e,this.initialHeight=((i=(t=this._element)==null?void 0:t.style)==null?void 0:i.height)||null,this.resizeObserver=h.canUseDOM&&(window==null?void 0:window.ResizeObserver)&&new ResizeObserver(this.calculateMedia),document!=null&&document.body&&this.resizeObserver&&this.resizeObserver.observe(document.body)},updated(){var t;this.setRefs();const e=h.isRtl(this._element);this.isRtl=e,this._prevTotal=this.$props.total,this.vsRef.tableTransform&&this.vsRef.table&&(this.vsRef.table.style.transform=this.vsRef.tableTransform,this.vsRef.tableTransform=""),this.isVirtualScroll&&(this.setContainerHeight(),this.setMinRowHeight(),(t=this.vsRef)==null||t.update())},unmounted(){this.gridUnmounted()},computed:{gridId(){return this.$props.id+"-role-element-id"},idPrefix(){return this.$props.navigatable?this.gridId:""},groupExpandable(){return p.getGroupExpandableOptions(typeof this.$props.groupable=="object"&&this.$props.groupable.enabled!==!1?this.$props.groupable.expandable:this.$props.groupable)},hierarchClass(){return h.uGrid.hierarchyCell({})},computedRowSpannable(){return v.getRowSpanOptions(this.$props.rowSpannable)},computedSelectable(){return p.getSelectionOptions(this.$props.selectable)},detailExpandable(){return p.getDetailExpandableOptions(!!this.$props.detail)},nonscrollableWrapperClass(){const{size:e}=this.$props,t=this.$attrs.class;return{"k-grid":!0,"k-grid-md":!e,[`k-grid-${h.kendoThemeMaps.sizeMap[e]||e}`]:e,[t]:!!t}},scrollableWrapperClass(){const{scrollable:e}=this.$props;return{...this.nonscrollableWrapperClass,"k-grid-virtual":e==="virtual"}},gridTableClass(){const{size:e}=this.$props;return{"k-table":!0,"k-grid-table":!0,"k-grid-md":!e,[`k-table-${h.kendoThemeMaps.sizeMap[e]||e}`]:e}},getCorrectHeight(){return this.$props.scrollable==="virtual"?this.initialHeight||"450px":null},currentGroupable(){var t;const e=(t=this.gridContext.group)==null?void 0:t.value;return this.$props.groupable===!0&&(e==null?void 0:e.length)||h.isObject(this.$props.groupable)&&this.$props.groupable.enabled!==!1},computedCollapsed(){let e=[];if(this.$props.group)for(let t=0;t<this.$props.group.length;t++)this.$props.collapsedGroups[t]?e.push(this.$props.collapsedGroups[t]):e.push([]);return e},getAriaRowCount(){const e=this.$props.dataItems,t=this.$props.total||(e==null?void 0:e.total)||(e==null?void 0:e.length)||0;return this.$props.detail?this._columnsMap.length+(this.$props.filterable?1:0)+t*2+(this.columnsRef.some(i=>!!i.footerCell)?1:0):!this.$props.pageable&&this.$props.scrollable==="scrollable"?void 0:this.$props.groupable?-1:this._columnsMap.length+(this.$props.filterable?1:0)+t+(this.columnsRef.some(i=>!!i.footerCell)?1:0)},getAriaColCount(){const e=this.$props.columns,t=this.$props.columnVirtualization,i=(e==null?void 0:e.filter(s=>s.hidden!==void 0).length)!==0;if(t||i)return(e==null?void 0:e.length)!==0?e==null?void 0:e.length:-1},isVirtualScroll(){return this.$props.scrollable==="virtual"||this.$props.scrollable===void 0||!1}},methods:{getTotal(){let e=this.$props.total||0;return Array.isArray(this.$props.dataItems)?e=e||this.$props.dataItems.length:this.$props.dataItems&&(e=e||this.$props.dataItems.total),e},readColumnElements(){return v.readColumns(this.$props.columns,this.currentColumnsState,{prevId:0,idPrefix:this.idPrefix})},getResolvedFlatColumnsState(){const e=[],t=(i,s)=>i==null?void 0:i.forEach(a=>{const r=a.hidden||s;e.push({...a,hidden:r}),t(a.children,r)});return t(this.currentColumnsState,!1),e},filterColumns(e){const t=this.getResolvedFlatColumnsState();return[e.filter(i=>{var s;return!i.hidden&&!((s=t.find(a=>a.id===i.id))!=null&&s.hidden)}),e.filter(i=>{var s;return i.hidden||((s=t.find(a=>a.id===i.id))==null?void 0:s.hidden)})]},getFlatData(e,t,i,s,a,r,n){const c=[],g=v.flatData(c,e,t,{index:i},s!==void 0,a,r,this.groupExpandable.defaultExpand,n,this.$props.expandField);return{flattedData:c,resolvedGroupsCount:g}},getColumnsEssentialProps(e){return e&&JSON.stringify(e.map(t=>({id:t.id,field:t.field,title:t.title,children:t.children})))},calculateMedia(){const e=this.filterHiddenColumns(this.$props.columns||[]);this.getColumnsEssentialProps(this.notHiddenColumns)!==this.getColumnsEssentialProps(e)&&this.$forceUpdate()},filterHiddenColumns(e){if(!e||e.length===0)return e;const t=i=>({...i,children:i.children&&i.children.length>0?this.filterHiddenColumns(i.children):i.children});return[...e].filter(i=>!i.hidden).filter(i=>h.canUseDOM&&i&&i.media?window.matchMedia(i.media).matches:i).map(i=>t(i))},getColumns(){const e=this.columnsRef.filter(i=>i.declarationIndex>=0&&i.parentIndex===-1),t=i=>(i.sort((s,a)=>s.declarationIndex-a.declarationIndex),i.map(s=>{const{declarationIndex:a,parentIndex:r,depth:n,colSpan:c,rowSpan:g,index:R,kFirst:f,children:m,...b}=s;return m.length?{children:t(m),...b}:b}));return t(e)},setRefs(){let e="$el";const t=h.getRef(this,"gridNav");t&&(this._element=t[e]);const i=h.getRef(this,"groupPanelDiv");if(i){let r=i[e]||null;this.dragLogic.refGroupPanelDiv(r)}const s=h.getRef(this,"dropElementClue"),a=h.getRef(this,"dragElementClue");this.dragLogic.refDropElementClue(s),this.dragLogic.refDragElementClue(a),this.columnResize.colGroupMain=h.getRef(this,"colGroup"),this._header=h.getRef(this,"header"),this._footer=h.getRef(this,"footer"),this.resetTableWidth(),h.setScrollbarWidth()},gridUnmounted(){clearTimeout(this.forceUpdateTimeout),this.columnResize.columns=[],this.dragLogic.columns=[],this.dragLogic&&this.dragLogic.dragElementClue&&(this.dragLogic.dragElementClue.$el.remove(),this.dragLogic.dropElementClue.$el.remove()),this.currentData=[],this.columnsRef=[],document!=null&&document.body&&this.resizeObserver&&this.resizeObserver.disconnect()},isAllData(){const{dataItems:e,total:t}=this.$props;return Array.isArray(e)?e.length===t:e?t===e.total:!1},resetVirtualSkip(){this.isVirtualScroll&&this._virtualSkipRef&&(this._virtualSkipRef=0)},virtualPageChange(e,t){var i;this.$props.pageable||(i=this.$props.group)!=null&&i.length?(this._virtualSkipRef=e.skip,this.$forceUpdate()):this.pageChangeHandler(e,t)},initializeVirtualization(){const e=this.vsRef,t=this.$props.rowHeight||this._minRowHeightRef||0;e&&(e.fixedScroll=this.$props.fixedScroll||!1,e.PageChange=this.virtualPageChange,e.pageSize=this._virtualPageSize,e.scrollableVirtual=this.isVirtualScroll,e.container=h.getRef(this,"scrollContainer"),e.tableBody=h.getRef(this,"tableBody"),e.scrollHeightContainer=h.getRef(this,"scrollHeightContainer"),e.table=h.getComponentElementRef(this,"table"),(!e.rowHeightService||e.total!==this._virtualTotal)&&t&&(e.total=this._virtualTotal,e.rowHeightService=new h.RowHeightService(this._virtualTotal,t)))},setContainerHeight(){const e=h.getRef(this,"scrollContainer");this._containerHeightRef=(e==null?void 0:e.offsetHeight)||0},setMinRowHeight(){if(!this._minRowHeightRef&&!this.$props.rowHeight){const t=v.calcRowHeight(h.getRef(this,"tableBody"));t&&(this._minRowHeightRef=t,this.$forceUpdate())}},onRowHeightChanged(e,t){this.setRefs()},onHeaderScroll(e){const i=e.target.scrollLeft,s=h.getRef(this,"scrollContainer");s&&(s.scrollLeft=i),this.scrollLeftRef=i},scrollHandler(e){clearTimeout(this.forceUpdateTimeout);const t=e.currentTarget.scrollLeft,i=e.currentTarget.scrollTop;this.$props.columnVirtualization&&(!this.isVirtualScroll||i===this.wrapperScrollTopRef)&&(this.forceUpdateTimeout=setTimeout(()=>{this.$forceUpdate()},0)),this.scrollLeftRef=t,this._header&&this._header.setScrollLeft(e.currentTarget.scrollLeft),this._footer&&this._footer.setScrollLeft(e.currentTarget.scrollLeft),this.vsRef&&i!==this.wrapperScrollTopRef&&this.vsRef.scrollHandler(e),this.$emit("scroll",e),this.wrapperScrollTopRef=i},rowClick(e,t){e.target.type!=="checkbox"&&this.$emit("rowclick",{dataItem:t.dataItem,...this.getArguments(e)})},rowDoubleClick(e,t){e.target.type!=="checkbox"&&this.$emit("rowdblclick",{dataItem:t.dataItem,...this.getArguments(e)})},loopGroupedItems(e,t,i=0,s=null){return e.forEach(a=>{!s&&t(a,i)&&(s=a),a.items&&a.items.length&&!s&&(s=this.loopGroupedItems(a.items,t,i+1,s))}),s},updateGroupCollapsed(e){let t=this.computedCollapsed,i=t[e.level];const s=this.$props.uniqueField,a=function(c,g){return c.value===e.dataItem.value&&g===e.level},r=this.allGroupedItems?this.loopGroupedItems(this.allGroupedItems.data,a,0,null):e.dataItem,n=v.groupedFirstItemValue(r||e.dataItem,s);if(e.value){if(i&&i.length){const c=i.indexOf(n);c>-1&&i.splice(c,1)}}else i?i.includes(n)||i.push(n):i=[n];return t},itemChange(e){var s;const t=h.hasListener.call(this,"itemchange"),i=(s=this.gridContext.group)==null?void 0:s.value;if(e.field===this.$props.expandField||(i||this.$props.detail)&&e.field===void 0){h.hasListener.call(this,"expandchange")&&e.dataItem&&this.$emit("expandchange",{...this.getArguments(e.event),collapsedGroups:this.updateGroupCollapsed(e),dataItem:e.dataItem,value:e.value});return}t&&this.$emit("itemchange",{...this.getArguments(e.event),dataItem:e.dataItem,field:e.field,value:e.value})},cellClickHandler(e){this.$emit("cellclick",{dataItem:e.dataItem,field:e.field})},cellKeydownHandler(e){this.$emit("cellkeydown",e)},editHandler(e){this.$emit("edit",{dataItem:e})},removeHandler(e){this.$emit("remove",{dataItem:e})},saveHandler(e){this.$emit("save",{dataItem:e})},cancelHandler(e){this.$emit("cancel",{dataItem:e})},selectionChangeHandler(e){var t;if(this.computedSelectable.enabled){const{event:i,dataItem:s,dataIndex:a,columnIndex:r}=e,n={...this.getArguments(i),dataItem:s,startColIndex:r,endColIndex:r,startRowIndex:a,endRowIndex:a,dataItems:this.getLeafDataItems(),altKey:!1,ctrlKey:!1,shiftKey:!1,metaKey:!1,mode:this.computedSelectable.mode,cell:this.computedSelectable.cell,isDrag:!1,componentId:this.$props.id||this._gridId,selectedField:this.$props.selectedField||""};this.gridContext.selectionchange({...n,select:this.$props.dataItemKey?p.getSelectedState({event:n,selectedState:(t=this.$props.select)!=null?t:{},dataItemKey:this.$props.dataItemKey}):{}})}},onKeyboardSelectionChangeHandler(e){var R,f;if(!this.computedSelectable.enabled||!this.$props.dataItemKey)return;const t=(R=this.gridContext.select)==null?void 0:R.value,i={dataItems:this.getLeafDataItems(),mode:this.computedSelectable.mode,cell:this.computedSelectable.cell,componentId:this.$props.id,selectedField:"",...this.getArguments(e)},s=p.getSelectedStateFromKeyDown({event:i,selectedState:t!=null?t:{},dataItemKey:this.$props.dataItemKey});if(s===t)return;const a=e.target,r=p.closestTagName(a,"TD"),n=p.closestTagName(a,"TR"),c=p.getColumnIndex(r),g=p.getRowIndex(n);if(c!==void 0&&g!==void 0){const m=(f=v.getDataAsArray(this.$props.dataItems))==null?void 0:f[g];this.gridContext.selectionchange({...i,select:s,dataItem:m,startRowIndex:g,startColIndex:c,startDataItem:m,endDataItem:m,endRowIndex:g,endColIndex:c,ctrlKey:e.ctrlKey,altKey:e.altKey,metaKey:e.metaKey,shiftKey:e.shiftKey,isDrag:!1})}},onHeaderSelectionChangeHandler(e){if(this.computedSelectable.enabled){const t=this.getLeafDataItems();this.gridContext.headerselectionchange({select:e.event.target.checked?t.reduce((i,s)=>(this.$props.dataItemKey&&h.getter(this.$props.dataItemKey)(s)!==void 0&&(i[h.getter(this.$props.dataItemKey)(s)]=!0),i),{}):{},field:e.field,event:e.event,target:this,dataItems:t})}},selectionRelease(e){var t;if(this.computedSelectable.enabled){const i=this.getLeafDataItems(),s=i[e.startRowIndex],a=i[e.endRowIndex],r={event:void 0,target:this,selectedField:"",componentId:this.$props.id||this._gridId,dataItems:i,dataItem:null,startDataItem:s,endDataItem:a,...e},n=p.getSelectedState({event:r,selectedState:(t=this.$props.select)!=null?t:{},dataItemKey:this.$props.dataItemKey});this.raiseSelectionEvent(r,n)}},clearSelection(e){this.computedSelectable.enabled&&this.raiseSelectionEvent(e,{})},raiseSelectionEvent(e,t){this.computedSelectable.enabled&&this.gridContext.selectionchange({...e,select:t})},moveToNextPage(e){var a,r,n,c;const t=(n=(r=(a=this.gridContext.take)==null?void 0:a.value)!=null?r:this.$props.pageSize)!=null?n:0,i=(((c=this.gridContext.skip)==null?void 0:c.value)||0)+t,s=this.getTotal();i<s&&this.pageChangeHandler({skip:i,take:t},e)},moveToPrevPage(e){var s,a,r,n;const t=(r=(a=(s=this.gridContext.take)==null?void 0:s.value)!=null?a:this.$props.pageSize)!=null?r:0,i=(((n=this.gridContext.skip)==null?void 0:n.value)||0)-t;i>=0&&this.pageChangeHandler({skip:i,take:t},e)},pageChangeHandler(e,t){this.raiseDataEvent("pagechange",{page:e,event:t},{skip:e.skip,take:e.take},t)},sortChangeHandler(e,t){this.raiseDataEvent("sortchange",{sort:e},{sort:e},t)},filterChangeHandler(e,t){this.raiseDataEvent("filterchange",{filter:e},{filter:e,skip:0},t)},groupChangeHandler(e,t){this.raiseDataEvent("groupchange",{group:e},{group:e,skip:0},t)},handleDetailExpandAction(e,t){var i;if(this.detailExpandable.enabled){const s=(i=this.gridContext.detailExpand)==null?void 0:i.value,a=p.detailExpandReducer(s!=null?s:{},e);this.gridContext.detailexpandchange({...this.getArguments(t),detailExpand:a})}},handleGroupExpandAction(e,t){var i;if(this.groupExpandable.enabled){const s=(i=this.gridContext.groupExpand)==null?void 0:i.value,a=p.groupExpandReducer(s!=null?s:[],e,this.groupExpandable);this.$props.expandField||this.gridContext.groupexpandchange({...this.getArguments(t),groupExpand:a})}},raiseDataEvent(e,t,i,s){if(this.resetVirtualSkip(),this.$props.autoProcessData)this.gridContext[e]({...this.getArguments(s),...t});else if(h.hasListener.call(this,e))this.$emit(e,{...this.getArguments(s),...t});else if(h.hasListener.call(this,"datastatechange")){const a={...this.getDataState(),...i};this.gridContext.datastatechange({...this.getArguments(s),data:a,dataState:a})}},columnReorder(e,t,i){const s=this.columnsRef[e],a=v.getFlatColumnsState(this.currentColumnsState),r=s.depth,n=f=>{do f++;while(f<this.columnsRef.length&&this.columnsRef[f].depth>r);return f},c=this.columnsRef.splice(e,n(e)-e);this.columnsRef.splice(e<t?n(t-c.length):t,0,...c),this.columnsRef.filter(f=>f.declarationIndex>=0).forEach((f,m)=>{f.orderIndex=m;const b=a.find(k=>k.id===f.id);b&&(b.orderIndex=m)});const g=this.columnsRef[e].locked&&this.columnsRef[t].locked;p.updateLeft(this._columnsMap,this.columnsRef,g||this.shouldUpdateLeftRightRef),p.updateRight(this._columnsMap,this.columnsRef,g||this.shouldUpdateLeftRightRef),this.resizedRef&&(this.shouldUpdateLeftRightRef=!1,this.resizedRef=!1);const R=this.getColumns();this.$emit("columnreorder",{target:this,columns:R,event:i,prev:e,next:t}),this.gridContext.columnsstatechange({columnsState:this.currentColumnsState})},groupReorder(e,t,i){var a;const s=(a=this.gridContext.group)==null?void 0:a.value;s!==void 0&&(s.splice(t,0,...s.splice(e,1)),this.groupChangeHandler(s,i))},columnToGroup(e,t,i){var r;const s=this.columnsRef[e].field;if(!s)return;const a=(((r=this.gridContext.group)==null?void 0:r.value)||[]).slice();a.splice(t,0,{field:s}),this.groupChangeHandler(a,i)},resetTableWidth(){var s;let e=0;if(!this.columnResize.colGroupMain)return;const t=(s=this.columnResize.colGroupMain)==null?void 0:s.children;for(let a=0;a<t.length;a++){const r=t[a].width;if(!r)return;e+=parseFloat(r.toString())}e=Math.round(e),this._header&&this._header.setWidth(e),this._footer&&this._footer.setWidth(e);const i=h.getComponentElementRef(this,"table");i&&e&&(i.style.width=e+"px")},onResize(e,t,i,s,a,r,n){this.resetTableWidth(),this.shouldUpdateLeftRightRef=!0,this.resizedRef=!0,this.$emit("columnresize",{columns:this.getColumns(),index:e,targetColumnId:n,event:s,newWidth:t,oldWidth:i,end:a,target:this}),a&&this.gridContext.columnsstatechange({columnsState:r})},initColumnsState(e,t){const i=s=>{var r;const a=t.find(n=>n.id===s.id);if(a){const n={...a};return n.children=(r=s.children)==null?void 0:r.map(i),n}return s};this.currentColumnsState=e.filter(s=>s.parentIndex===-1).map(i)},configureColumns(e,t){e.filter(r=>r.columnType==="checkbox").forEach(r=>{r.width=r.width||"50px",r.internalCell=o.markRaw(_e.GridSelectionCell),r.internalHeaderCell=o.markRaw(Me.GridHeaderSelectionCell),r._type="edit",r.columnMenu=!1}),this.$props.selectedField&&this.columnsRef.filter(r=>r.field===this.$props.selectedField).forEach(r=>{r.width=r.width||"50px",r.internalCell=o.markRaw(_e.GridSelectionCell),r.internalHeaderCell=o.markRaw(Me.GridHeaderSelectionCell),r.columnMenu=!1});const i=v.getFlatColumnsState(this.currentColumnsState);this.initColumnsState(e,i);const s={id:"",resizable:!0,width:"32px",title:" ",declarationIndex:-1,orderIndex:-1,children:[],parentIndex:-1,depth:0,colSpan:0,headerColSpan:0,rowSpan:0,left:0,right:0,index:0,rightBorder:!1,ariaColumnIndex:0,isAccessible:!0};let a=0;if(this.detailExpandable.enabled&&this.$props.detail&&!this.$props.expandField){const r={...s,_type:"expand",id:p.tableKeyboardNavigationTools.generateNavigatableId(`${a++}`,"expand","column"),defaultCell:o.markRaw(Q.GridHierarchyCell),internalCell:o.markRaw(Q.GridHierarchyCell),field:this.detailExpandable.column,headerClassName:this.hierarchClass};e.unshift(r),this.currentColumnsState.unshift(i.find(n=>n.id===r.id)||r)}this.$props.expandField&&h.hasListener.call(this,"expandchange")&&this.$props.detail&&(e.unshift({...s,internalCell:o.markRaw(Q.GridHierarchyCell),field:this.$props.expandField,headerClassName:"k-hierarchy-cell k-header",id:p.tableKeyboardNavigationTools.generateNavigatableId(`${e.length}`,this.idPrefix,"column"),...this.expandColumn}),a++);for(let r=0;r<t;r++){const n={...s,isAccessible:!1,defaultCell:o.markRaw(X.GridGroupCell),internalCell:o.markRaw(X.GridGroupCell),id:p.tableKeyboardNavigationTools.generateNavigatableId(`${a++}`,"group","column"),field:"value",locked:this.$props.lockGroups,columnMenu:!1};e.unshift(n),this.currentColumnsState.unshift(i.find(c=>c.id===n.id)||n)}e.slice(a).forEach(r=>{r.parentIndex>=0&&(r.parentIndex+=a),r.rowSpannable=r.rowSpannable!==void 0?v.getRowSpanOptions(r.rowSpannable):this.computedRowSpannable})},initColumns(e,t){var r;this.columnsRef=this.readColumnElements();const i=(r=this.gridContext.group)==null?void 0:r.value;this.columnsRef.filter(n=>!n.hidden).length===0&&(this.columnsRef=v.autoGenerateColumns(e,i,{column:this.$props.expandField?this.$props.expandField:this.groupExpandable.column},{prevId:0,idPrefix:this.idPrefix})),this.configureColumns(this.columnsRef,t);const[s,a]=this.filterColumns(this.columnsRef);this.columnsRef=s,this.hiddenColumnsRef=a,this._columnsMap=v.mapColumns(this.columnsRef,!0)},resolveTitle(e){const t=this.findColumnByField(e),i=t&&(t.title||t.field);return i===void 0?e:i},findColumnByField(e){let t;return this.$props.columns.forEach(i=>{const s=this.searchColumn(i,e);s&&(t=s)}),t},searchColumn(e,t){if(e.field===t)return e;if(e.children){let i,s=null;for(i=0;s==null&&i<e.children.length;i++)s=this.searchColumn(e.children[i],t);return s}return null},getDataState(){var r,n,c,g,R;const e=(r=this.gridContext.sort)==null?void 0:r.value,t=(n=this.gridContext.filter)==null?void 0:n.value,i=(c=this.gridContext.skip)==null?void 0:c.value,s=(g=this.gridContext.take)==null?void 0:g.value,a=(R=this.gridContext.group)==null?void 0:R.value;return{filter:t,sort:e,skip:i,take:s!==void 0?s:this.$props.pageSize,group:a}},getArguments(e){return{event:e,target:this}},getLeafDataItems(){return this.currentData.filter(e=>e.rowType==="data").map(e=>e.dataItem)},totalGroupedRows(e){let t=0;return e&&(t=this.addSubItems(e,t)),t},addSubItems(e,t){return e.forEach(i=>{t++,i.expanded!==!1&&i.items&&(t=this.addSubItems(i.items,t)),this.group&&this.group.length&&(this.$props.groupable.footer==="always"||i.expanded!==!1&&i.items&&this.$props.groupable.footer==="visible")&&t++}),t},searchChange(e){const t=this.$props.searchFields||this.columnsRef.map(a=>a.field)||[],i=e.event.target.value,s={logic:"or",filters:t.filter(a=>a!==void 0).map(a=>{var r;return typeof a=="string"?{field:a,value:i,operator:"contains"}:{value:i,operator:(r=a.operator)!=null?r:"contains",field:a.field,ignoreCase:a.ignoreCase}})};this.raiseDataEvent("searchchange",{search:s},{skip:0},e)},getCellsToRender(e,t){var r;const i=[];let s=null,a=0;if(t.forEach((n,c)=>{const g=parseFloat((n.width||"").toString())||10;if(a){a--,s&&(s.width+=g);return}const R=Math.min(v.getColSpan(n,e),t.length-c);a=R-1,s={width:g,colSpan:R,columnIndex:c},i.push(s)}),this.$props.columnVirtualization){const n=this.scrollLeftRef||0,c=this.tableWidth||parseFloat((((r=this.$attrs.style)==null?void 0:r.width)||"").toString());return St.getVirtualCellsToRender({cellModels:i,columns:t,tableViewPortWidth:c,scrollLeft:n})}return i},calcVirtualPageSize(){const{pageable:e,take:t,pageSize:i}=this.$props;if(!this.isVirtualScroll)return 0;if(!e){if(t)return t;if(i)return i}const s=this.$props.rowHeight||this._minRowHeightRef,a=this._containerHeightRef;return a&&s?Math.ceil(a/s*1.5):0}},provide(){return{kendo:{dataItemKey:this.$props.dataItemKey,searchChange:this.searchChange,selectionRelease:this.selectionRelease,dispatchGroupExpand:this.handleGroupExpandAction,dispatchDetailExpand:this.handleDetailExpandAction}}},setup(e){const t=o.ref(null),i=o.ref(null),s=o.ref(null),a=o.ref(null),r=o.ref(null),n=o.ref(null),c=o.ref(null),g=o.ref(null),R=o.ref(null),f=o.ref(null),m=o.ref(!0),b=o.ref(!1),k=o.inject(vt.KendoKey,{});return{groupPanelDivRef:t,dropElementClueRef:i,dragElementClueRef:s,headerRef:a,footerRef:r,gridNavRef:n,colGroupRef:c,scrollContainerRef:g,scrollTableRef:R,scrollTableBodyRef:f,gridContext:k,shouldUpdateLeftRightRef:m,resizedRef:b,currentColumnsState:e.columnsState}},render(){var ce,pe,ue,ge,fe,me,Ce,Re,be,$e,Ie,ve,Se,xe,ye,we,ke;const e=(ce=this.gridContext.sort)==null?void 0:ce.value,t=(pe=this.gridContext.filter)==null?void 0:pe.value,i=(ue=this.gridContext.search)==null?void 0:ue.value,s=(ge=this.gridContext.select)==null?void 0:ge.value,a=(fe=this.gridContext.skip)==null?void 0:fe.value,r=(me=this.gridContext.take)==null?void 0:me.value,n=(Ce=this.gridContext.group)==null?void 0:Ce.value,c=(Re=this.gridContext.groupExpand)==null?void 0:Re.value,g=(be=this.gridContext.detailExpand)==null?void 0:be.value,R=!!(n!=null&&n.length);let f;this.currentColumnsState=($e=this.gridContext.columnsState)==null?void 0:$e.value;const m=this.$props.autoProcessData===!0?{group:!0,sort:!0,filter:!0,search:!0,page:!0}:this.$props.autoProcessData;let b;const k=p.tableKeyboardNavigationTools.getIdPrefix(this.navigation);let N=[];Array.isArray(this.$props.dataItems)?(N=this.$props.dataItems,b=(Ie=this.$props.total)!=null?Ie:N.length):(N=((ve=v.applyExpandedState(this.$props.dataItems,this.$props.collapsedGroups.length?this.computedCollapsed:[],this.$props.uniqueField))==null?void 0:ve.data)||[],b=(ye=(xe=this.$props.total)!=null?xe:(Se=this.$props.dataItems)==null?void 0:Se.total)!=null?ye:N.length);const Z=this.$props.groupable===!0||h.isObject(this.$props.groupable)&&this.$props.groupable.enabled!==!1;this.dragLogic.reorderable=this.$props.reorderable||!1,this.dragLogic.groupable=Z,this._virtualPageSize=this.calcVirtualPageSize();const M=N.length===b,Ae=h.isObject(this.$props.groupable)&&this.$props.groupable.footer||"none";if(this.currentData=[],m){const l=m.page&&!(this.isVirtualScroll&&!this.$props.pageable),{data:$,total:w}=It.process(N,{group:m.group?n:void 0,sort:m.sort?e:void 0,filter:p.combineFilters(m.filter?t:void 0,m.search?i:void 0),...l?{take:this.$props.pageable?r||10:r,skip:a||0}:{}});N=$,b=(we=this.$props.total)!=null?we:w}const{resolvedGroupsCount:qe,flattedData:Oe}=this.getFlatData(N,Ae,M?0:this.$props.skip||0,n,g,c,this.$props.dataItemKey);this.currentData=Oe;const F=this._virtualSkipRef||0;if(this._virtualTotal=b,this.isVirtualScroll){let l=a||0;if((R||this.$props.pageable)&&(l=F,this._virtualTotal=this.currentData.length),M||R||this.$props.pageable)if(this._virtualPageSize===0){const $=Math.min(r||this.$props.pageSize||20,this.currentData.length);f=this.currentData.slice(l,l+$)}else f=this.currentData.slice(l,l+this._virtualPageSize)}this.initializeVirtualization();const We=(ke=this.selectable)!=null&&ke.drag?"none":void 0;this.initColumns(this.$props.dataItems,qe),this.columnResize.resizable=this.$props.resizable||!1,this.columnResize.columns=this.columnsRef,this.columnResize.columnsState=h.cloneArray(this.currentColumnsState||[]),this.dragLogic.columns=this.columnsRef;const ee=this.$props.toolbar,z=this.$props.noRecords,H=this.columnsRef.filter(l=>l.children.length===0),te=Z&&o.createVNode(nt.GroupPanel,{ref:l=>{this.groupPanelDivRef=l},group:n||[],ariaControls:this._gridRoleElementId,onGroupChange:this.groupChangeHandler,onPressHandler:this.dragLogic.pressHandler,onDragHandler:this.dragLogic.dragHandler,onReleaseHandler:this.dragLogic.releaseHandler,resolveTitle:this.resolveTitle},null),ie=(this.dragLogic.reorderable||this.dragLogic.groupable)&&h.canUseDOM&&document&&document.body,se=[ie&&o.createVNode(Ct.DropClue,{ref:l=>{this.dropElementClueRef=l}},null),ie&&o.createVNode(mt.DragClue,{ref:l=>{this.dragElementClueRef=l}},null)],Ue=this.showLicenseWatermark?o.createVNode(h.WatermarkOverlay,{message:this.licenseMessage},null):null,P=this.$attrs.style,Be=P&&h.isObject(P)&&P["width"]||"";this.tableWidth=parseFloat(Be.toString());const je=H.findIndex(l=>typeof l.colSpan=="function")>-1;let G;G=this.getCellsToRender({},H);const ae=(this.$props.columnVirtualization?this.getCellsToRender({},H).map(({columnIndex:l})=>H[l]):H).map(function(l,$){return o.createVNode("col",{key:l.id||`col-${$}`,width:l.width!==void 0?Math.floor(parseFloat(l.width.toString())):void 0},null)},this),re=o.createVNode(rt.Header,{size:this.$props.size,columnResize:this.columnResize,staticHeaders:this.$props.scrollable!=="none",ref:l=>{this.headerRef=l},onHeaderscroll:this.onHeaderScroll,headerRow:o.createVNode(lt.HeaderRow,{grid:this,sort:e,groupable:this.$props.groupable,reorderable:this.$props.reorderable,sortable:this.$props.sortable,onSortChange:this.sortChangeHandler,filter:t,filterable:this.$props.filterable,filterOperators:this.$props.filterOperators||Le.operators,onFilterChange:this.filterChangeHandler,columnMenu:this.$props.columnMenu,columnMenuIcon:this.$props.columnMenuIcon,columnMenuAnimate:this.$props.columnMenuAnimate,onSelectionchange:this.onHeaderSelectionChangeHandler,columns:this.columnsRef,cellsToRender:G,columnVirtualization:this.$props.columnVirtualization,columnsInitial:this.$props.columns,columnResize:this.columnResize,onPressHandler:this.dragLogic.pressHandler,onDragHandler:this.dragLogic.dragHandler,onReleaseHandler:this.dragLogic.releaseHandler,columnsMap:this._columnsMap,cellRender:this.$props.headerCellRender,isRtl:this.isRtl,isColCountDefined:this.getAriaColCount!==void 0,headerSelectionValue:!!(s&&this.currentData.filter(l=>l.rowType==="data").every(l=>s&&this.$props.dataItemKey&&h.getter(this.$props.dataItemKey)(l.dataItem)!==void 0?s[h.getter(this.$props.dataItemKey)(l.dataItem)]:void 0)),filterRow:this.$props.filterable&&o.createVNode(ot.FilterRow,{grid:this,size:this.$props.size,columns:this.columnsRef,columnsMap:this._columnsMap,cellsToRender:G,columnVirtualization:this.$props.columnVirtualization,filter:t,filterOperators:this.$props.filterOperators||Le.operators,onFilterchange:this.filterChangeHandler,sort:this.$props.sort,cellRender:this.$props.filterCellRender,isRtl:this.isRtl,ariaRowIndex:this._columnsMap.length+1},null)||void 0},null),cols:ae},null),le=this.columnsRef.some(l=>!!l.footerCell)?o.createVNode(dt.Footer,{size:this.$props.size,columnResize:this.columnResize,staticHeaders:this.$props.scrollable!=="none",ref:l=>{this.footerRef=l},row:o.createVNode(ht.FooterRow,{isRtl:this.isRtl,rowIndex:this.getAriaRowCount+1,columns:this.columnsRef},null),cols:ae},null):o.createVNode("span",null,null),Je=function(l,$,w,He,T){let u=!1;const V=this.$props.selectedField,E=this.$props.dataItemKey,_=s&&E&&h.getter(E)(l.dataItem)!==void 0?s[h.getter(E)(l.dataItem)]:void 0,x=V?h.getNestedValue(V,l.dataItem):_,y=this.$props.highlight&&this.$props.dataItemKey&&h.getter(this.$props.dataItemKey)(l.dataItem)!==void 0?this.$props.highlight[h.getter(this.$props.dataItemKey)(l.dataItem)]:void 0;return je&&(G=this.getCellsToRender(l.dataItem,H)),{row:G.map(function({columnIndex:I,colSpan:D}){var Ve,De,Ee,Ge;const d=H[I];let S;if((Ve=d.rowSpannable)!=null&&Ve.enabled&&l.rowType==="data"&&d.field&&T){const C=d.field?(Ee=(De=d.rowSpannable).valueGetter)==null?void 0:Ee.call(De,l.dataItem,d.field):null;S={value:C,count:1},T[d.field]&&((Ge=T[d.field])==null?void 0:Ge.value)===C&&T[d.field]!==null?(T[d.field].count++,S.count=null):T[d.field]=S}const W=`${d.className?d.className+" ":""}${d.locked?"k-grid-content-sticky":""}`,U=d.locked&&d.left!==void 0?this.isRtl?{left:d.right+"px",right:d.left+"px"}:{left:d.left+"px",right:d.right+"px"}:void 0;let Te=!1;if(d.editable&&this.$props.editField){const C=h.getNestedValue(this.$props.editField,l.dataItem);(C===!0||C===d.field)&&(u=!0,Te=!0)}let L;d.cell&&(L=d.cell);const Ne=this.computedCollapsed&&this.computedCollapsed[l.level]&&this.computedCollapsed[l.level].some(C=>C===v.groupedFirstItemValue(l.dataItem,this.$props.uniqueField)),B=d.id?d.id:I,j=Ne?!Ne:l.expanded||l.dataItem.expanded,et=d._type==="expand",J=p.tableKeyboardNavigationTools.generateNavigatableId(`${$}-${String(I)}`,k,et||l.rowType==="groupHeader"||l.rowType==="groupFooter"||d.field==="value"?"nodata":"cell");return d.internalCell?o.createVNode(d.internalCell,{key:B,id:J,colSpan:D,dataItem:l.dataItem,field:d.field||"",editor:d.editor,format:d.format,readFormat:d.readFormat,type:d.type,columnType:d.columnType,className:W,render:L||this.$props.cellRender,onChange:this.itemChange,onSelectionchange:C=>this.selectionChangeHandler({event:C,dataItem:l.dataItem,dataIndex:w,columnIndex:I}),columnIndex:I,columnsCount:this.columnsRef.filter(C=>!C.children.length).length,rowType:l.rowType,level:l.level,expanded:j,dataIndex:l.dataIndex,style:U,ariaColumnIndex:d.ariaColumnIndex,isRtl:this.isRtl,isSelected:!!((d==null?void 0:d._type)==="edit"?x:Array.isArray(x)&&x.indexOf(I)>-1),isHighlighted:!!(typeof y!="boolean"&&y&&d.field&&y[d.field]===!0),group:l.group,rowSpan:S},null):Te?o.createVNode(at.GridEditCell,{id:J,key:B,colSpan:D,dataItem:l.dataItem,field:d.field||"",editor:d.editor,format:d.format,readFormat:d.readFormat,type:d.type,columnType:d.columnType,className:W,render:L||this.$props.cellRender,onEdit:this.editHandler,onRemove:this.removeHandler,onSave:this.saveHandler,onCancel:this.cancelHandler,onChange:this.itemChange,columnIndex:I,columnsCount:this.columnsRef.filter(C=>!C.children.length).length,rowType:l.rowType,level:l.level,expanded:j,dataIndex:l.dataIndex,style:U},null):o.createVNode(Rt.GridCell,{key:B,id:J,colSpan:D,dataItem:l.dataItem,field:d.field||"",editor:d.editor,format:d.format,readFormat:d.readFormat,type:d.type,columnType:d.columnType,className:W,render:L||this.$props.cellRender,onCellclick:this.cellClickHandler,onCellkeydown:this.cellKeydownHandler,onEdit:this.editHandler,onRemove:this.removeHandler,onSave:this.saveHandler,onCancel:this.cancelHandler,onChange:this.itemChange,onSelectionchange:C=>this.selectionChangeHandler({event:C,dataItem:l.dataItem,dataIndex:w,columnIndex:I}),columnIndex:I,columnsCount:this.columnsRef.filter(C=>!C.children.length).length,rowType:l.rowType,level:l.level,expanded:j,dataIndex:l.dataIndex,style:U,rowSpan:S,isSelected:!!((d==null?void 0:d._type)==="edit"?x:Array.isArray(x)&&x.indexOf(I)>-1),isHighlighted:!!(typeof y!="boolean"&&y&&d.field&&y[d.field]===!0)},null)},this),isInEdit:u,isSelected:typeof x=="boolean"&&x,isHighlighted:typeof y=="boolean"&&y}};let Qe=0,K=[];const A=!this.currentData.length,oe=l=>l>=this.currentData.length-Qe;let q=0;if(this.currentData.length){const l=this._columnsMap.length+(this.$props.filterable?1:0)+1;let $=this.$props.skip||0,w=-1,He=0;const T=this.computedRowSpannable.enabled?{}:void 0;if(this.isVirtualScroll){if(F>0){const u=this.currentData.slice(0,F).filter(V=>V.rowType==="data").length;w+=u,$+=u}!this.$props.pageable&&M&&(w+=this.$props.skip||0)}K=(f||this.currentData).map(function(u,V){u.rowType==="data"&&w++;const E=u.dataIndex%2!==0,_=this.$props.dataItemKey&&h.getter(this.$props.dataItemKey)(u.dataItem),x=V+$,y=_||"ai"+x,I=y+"_1",D=Je.call(this,u,y,w,E,T),d=H.length-(this.detailExpandable.enabled?1:0)-((n==null?void 0:n.length)||0)||1;return q=x+l+He,[o.createVNode(bt.GridRow,{key:y,item:u,dataIndex:w,ariaRowIndex:q,absoluteRowIndex:x,isAltRow:E,isHidden:oe(V),rowHeight:this.$props.rowHeight,isSelected:D.isSelected,isHighlighted:D.isHighlighted,isInEdit:D.isInEdit,rowType:u.rowType,onRowclick:S=>this.rowClick(S,u),onRowdblclick:S=>this.rowDoubleClick(S,u),render:this.$props.rowRender,class:this.$props.rowClass?this.$props.rowClass(u):""},{default:()=>[D.row]}),this.$props.detail&&u.rowType==="data"&&(u.expanded||u.dataItem.expanded)&&o.createVNode("tr",{key:I,class:E?"k-table-row k-table-alt-row k-detail-row":"k-table-row k-detail-row",style:{visibility:oe(V)?"hidden":"",height:this.$props.detailRowHeight+"px"},role:"row","aria-rowindex":q},[n==null?void 0:n.map(function(S){return o.createVNode(X.GridGroupCell,{id:"",dataIndex:u.dataIndex,field:S.field,dataItem:u.dataItem,key:`group-${S.field}-${u.dataIndex}`,group:u.group},null)},this),(this.$props.expandField||this.detailExpandable.enabled)&&o.createVNode(it.GridDetailHierarchyCell,{id:p.tableKeyboardNavigationTools.generateNavigatableId(`${I}-dhcell`,k)},null),o.createVNode(st.GridDetailCell,{dataItem:u.dataItem,dataIndex:u.dataIndex,colSpan:d,ariaColIndex:2+(n?n.length:0),detail:this.$props.detail?this.$props.detail:void 0,id:p.tableKeyboardNavigationTools.generateNavigatableId(`${I}-dcell`,k)},null)])]},this)}const Xe=this.$props.pageable&&o.createVNode(p.Pager,{class:"k-grid-pager",onPagesizechange:this.pageChangeHandler,onPagechange:this.pageChangeHandler,size:this.$props.size,total:b,skip:a||0,pageSize:(r!==void 0?r:this.$props.pageSize)||10,messagesMap:Ke.pagerMessagesMap,settings:p.normalize(this.$props.pageable||{})},null),ne=h.getTemplate.call(this,{h:o.h,template:this.$props.pager,defaultRendering:Xe,additionalProps:{...this.$props,skip:this.$props.skip||0,messagesMap:Ke.pagerMessagesMap},additionalListeners:{pagesizechange:this.pageChangeHandler,pagechange:this.pageChangeHandler}}),Ye=l=>e&&e.filter($=>$.field===l).length>0,de=o.createVNode("colgroup",{ref:h.setRef(this,"colGroup")},[H.map(function(l,$){return o.createVNode("col",{key:l.id||`col-${$}`,class:Ye(l.field)?"k-sorted":void 0,width:l.width!==void 0?l.width.toString().indexOf("%")!==-1?l.width:Math.floor(parseFloat(l.width.toString()))+"px":void 0},null)},this)]),he={height:this.getCorrectHeight,...this.$attrs.style},Ze=o.createVNode("div",{class:"k-loading-mask"},[o.createVNode("div",{class:"k-loading-color"},null),o.createVNode("div",{style:{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"}},[o.createVNode(tt.Loader,{size:"large",type:"converging-spinner"},null)])]),O=this.$props.showLoader&&h.getTemplate.call(this,{h:o.h,template:this.$props.loader,defaultRendering:Ze});return this.$props.scrollable==="none"?o.createVNode(p.TableKeyboardNavigationProvider,{ref:"navRef",id:this._gridId,navigatable:this.$props.navigatable,scrollable:this.$props.scrollable,columnVirtualization:this.$props.columnVirtualization},{default:()=>[o.createVNode(ze.GridNav,{ref:l=>{this.gridNavRef=l},columnsRef:this.columnsRef,currentData:this.currentData,id:this.$props.id,style:he,class:this.nonscrollableWrapperClass,onMovetonextpage:this.moveToNextPage,onMovetoprevpage:this.moveToPrevPage,onColumnreorder:this.columnReorder,onKeyboardselectionchange:this.onKeyboardSelectionChangeHandler},{default:()=>[ee,te,o.createVNode("div",{role:"grid",class:"k-grid-aria-root",id:this._gridRoleElementId,"aria-colcount":this.getAriaColCount,"aria-rowcount":this.getAriaRowCount},[o.createVNode(ct.GridTable,{selectable:this.computedSelectable,class:"k-table",ref:h.setRef(this,"table")},{default:()=>[de,re,o.createVNode("tbody",{class:"k-table-tbody","data-keyboardnavbody":!0},[K,o.createTextVNode(" "),O]),le]}),A&&o.createVNode(Pe.GridNoRecordsContainer,{id:p.tableKeyboardNavigationTools.generateNavigatableId("no-records",k)},{default:()=>[z.length?z:o.createVNode(Fe.GridNoRecords,null,null)]})]),ne,O,se]})]}):o.createVNode(p.TableKeyboardNavigationProvider,{ref:"navRef",id:this._gridId,navigatable:this.$props.navigatable,scrollable:this.$props.scrollable,columnVirtualization:this.$props.columnVirtualization},{default:()=>[o.createVNode(ze.GridNav,{ref:l=>{this.gridNavRef=l},currentData:this.currentData,id:this.$props.id,style:he,class:this.scrollableWrapperClass,onMovetonextpage:this.moveToNextPage,onMovetoprevpage:this.moveToPrevPage,onColumnreorder:this.columnReorder,onKeyboardselectionchange:this.onKeyboardSelectionChangeHandler},{default:()=>[ee,te,o.createVNode("div",{role:"grid",class:"k-grid-aria-root",id:this._gridRoleElementId,"aria-colcount":this.getAriaColCount,"aria-rowcount":this.getAriaRowCount},[re,o.createVNode("div",{class:"k-grid-container",role:"presentation"},[o.createVNode("div",{role:"presentation",ref:h.setRef(this,"scrollContainer"),class:"k-grid-content k-virtual-content",onScroll:this.scrollHandler},[o.createVNode("div",{class:"k-grid-table-wrap",role:"presentation"},[o.createVNode(pt.GridTableScrollable,{selectable:this.computedSelectable,tableClassName:this.gridTableClass,tableStyle:{userSelect:We},ref:h.setRef(this,"table")},{default:()=>[de,o.createVNode("tbody",{class:"k-table-tbody",role:"rowgroup","data-keyboardnavbody":!0,ref:h.setRef(this,"tableBody")},[K])]}),A&&o.createVNode(Pe.GridNoRecordsContainer,{id:p.tableKeyboardNavigationTools.generateNavigatableId("no-records",k)},{default:()=>[z.length?z:o.createVNode(Fe.GridNoRecords,null,null)]})]),!A&&o.createVNode("div",{class:"k-height-container",role:"presentation"},[o.createVNode("div",{ref:h.setRef(this,"scrollHeightContainer"),style:this.$props.scrollable==="virtual"?{height:this._containerHeightRef+"px"}:{}},null)])])]),le,Ue]),ne,O,se]})]})}});exports.Grid=xt;
8
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("vue"),n=require("@progress/kendo-vue-common"),c=require("@progress/kendo-vue-data-tools"),Be=require("@progress/kendo-vue-indicators"),Ge=require("./GridNav.js"),Ve=require("./cells/GridSelectionCell.js"),te=require("./cells/GridHierarchyCell.js"),je=require("./cells/GridDetailHierarchyCell.js"),Je=require("./cells/GridDetailCell.js"),Qe=require("./header/Header.js"),Xe=require("./header/HeaderRow.js"),Ye=require("./header/FilterRow.js"),Ze=require("./header/GroupPanel.js"),et=require("./footer/Footer.js"),tt=require("./footer/FooterRow.js"),st=require("./components/table/GridTable.js"),it=require("./components/table/GridTableScrollable.js"),ze=require("./filterCommon.js"),rt=require("./VirtualScroll.js"),ot=require("./drag/ColumnResize.js"),at=require("./drag/CommonDragLogic.js"),lt=require("./drag/DragClue.js"),nt=require("./drag/DropClue.js"),b=require("./utils/main.js"),se=require("./cells/GridGroupCell.js"),dt=require("./rows/GridRow.js"),ht=require("./common.js"),Ne=require("./header/GridHeaderSelectionCell.js"),Ee=require("./components/noRecords/GridNoRecords.js"),De=require("./components/noRecords/GridNoRecordsContainer.js"),ie=require("./package-metadata.js"),Fe=require("./messages/messagesMap.js"),ct=require("@progress/kendo-data-query"),pt=require("./key.js"),ut=require("./utils/virtualColumns.js"),Le=require("./components/StickyGroupTable.js"),ft=require("./getRowContents.js"),gt=require("./hooks/useStickyGroups.js"),mt=a.defineComponent({name:"KendoGrid",inheritAttrs:!1,props:{...ht.gridProps,toolbar:{type:Object},noRecords:{type:Object}},data(){return{isRtl:!1,context:void 0,navigation:void 0,showLicenseWatermark:!1,licenseMessage:void 0,notHiddenColumns:[]}},watch:{rowHeight:function(e,t){var s;this.onRowHeightChanged(e,t),(s=this.vsRef)==null||s.reset()},scrollable:function(){var e;(e=this.vsRef)==null||e.reset()},filter:function(){var e;(e=this.vsRef)==null||e.reset()},group:function(){var e;(e=this.vsRef)==null||e.reset()},currentGroupable:function(){var e;(e=this.vsRef)==null||e.reset()},sort:function(){var e;(e=this.vsRef)==null||e.reset()}},created(){n.validatePackage(ie.packageMetadata),this.showLicenseWatermark=n.shouldShowValidationUI(ie.packageMetadata),this.licenseMessage=n.getLicenseMessage(ie.packageMetadata),this.initialHeight=null,this.columnsRef=[],this.dragLogic=new at.CommonDragLogic(this.columnReorder.bind(this),this.groupReorder.bind(this),this.columnToGroup.bind(this)),this.columnResize=new ot.ColumnResize(this.onResize.bind(this)),this._columnsMap=[[]],this._header=null,this._footer=null,this.tableRef=null,this.scrollHeightContainerRef=null,this.forceUpdateTimeout=void 0,this._gridId=n.guid(),this._gridRoleElementId=n.guid(),this.slicedCurrentData=void 0,this._prevTotal=void 0,this._containerHeightRef=0,this._minRowHeightRef=0,this.wrapperScrollTopRef=0,this.scrollLeftRef=0},mounted(){var t,s;this.setRefs();const e=n.isRtl(this._element);if(this._prevTotal=this.$props.total,this.isRtl=e,this.initialHeight=((s=(t=this._element)==null?void 0:t.style)==null?void 0:s.height)||null,this.resizeObserver=n.canUseDOM&&(window==null?void 0:window.ResizeObserver)&&new ResizeObserver(this.calculateMedia),document!=null&&document.body&&this.resizeObserver&&this.resizeObserver.observe(document.body),n.canUseDOM){const i={rootMargin:"0px",threshold:.9};this.observerRef=window.IntersectionObserver&&new window.IntersectionObserver(this.handleIntersection,i)||null}},updated(){var s;this.setRefs();const e=n.isRtl(this._element);this.isRtl=e,this._prevTotal=this.$props.total,this.vsRef.tableTransform&&this.vsRef.table&&(this.vsRef.table.style.transform=this.vsRef.tableTransform,this.vsRef.tableTransform="");const t=this.updateStickyGroups();this.sticky.headerItems=t==null?void 0:t.stickyHeaderItems,this.sticky.footerItems=t==null?void 0:t.stickyFooterItems,this.isVirtualScroll&&(this.setContainerHeight(),this.setMinRowHeight(),(s=this.vsRef)==null||s.update())},unmounted(){this.gridUnmounted()},computed:{gridId(){return this.$props.id+"-role-element-id"},idPrefix(){return this.$props.navigatable?this.gridId:""},groupExpandable(){return c.getGroupExpandableOptions(typeof this.$props.groupable=="object"&&this.$props.groupable.enabled!==!1?this.$props.groupable.expandable:this.$props.groupable)},hierarchClass(){return n.uGrid.hierarchyCell({})},computedRowSpannable(){return b.getRowSpanOptions(this.$props.rowSpannable)},computedSelectable(){return c.getSelectionOptions(this.$props.selectable)},detailExpandable(){return c.getDetailExpandableOptions(!!this.$props.detail)},nonscrollableWrapperClass(){const{size:e}=this.$props,t=this.$attrs.class;return{"k-grid":!0,"k-grid-md":!e,[`k-grid-${n.kendoThemeMaps.sizeMap[e]||e}`]:e,[t]:!!t}},scrollableWrapperClass(){const{scrollable:e}=this.$props;return{...this.nonscrollableWrapperClass,"k-grid-virtual":e==="virtual"}},gridTableClass(){const{size:e}=this.$props;return{"k-table":!0,"k-grid-table":!0,"k-grid-md":!e,[`k-table-${n.kendoThemeMaps.sizeMap[e]||e}`]:e}},getCorrectHeight(){return this.$props.scrollable==="virtual"?this.initialHeight||"450px":null},currentGroupable(){var t;const e=(t=this.gridContext.group)==null?void 0:t.value;return this.$props.groupable===!0&&(e==null?void 0:e.length)||n.isObject(this.$props.groupable)&&this.$props.groupable.enabled!==!1},computedCollapsed(){let e=[];if(this.$props.group)for(let t=0;t<this.$props.group.length;t++)this.$props.collapsedGroups[t]?e.push(this.$props.collapsedGroups[t]):e.push([]);return e},getAriaRowCount(){var s,i;const e=this.$props.dataItems,t=this.$props.total||(e==null?void 0:e.total)||(e==null?void 0:e.length)||0;return this.$props.detail?this._columnsMap.length+(this.$props.filterable?1:0)+t*2+(this.columnsRef.some(r=>{var o;return!!(r.footerCell||(o=r.cells)!=null&&o.footerCell)})||(s=this.$props.cells)!=null&&s.footerCell?1:0):!this.$props.pageable&&this.$props.scrollable==="scrollable"?void 0:this.$props.groupable?-1:this._columnsMap.length+(this.$props.filterable?1:0)+t+(this.columnsRef.some(r=>{var o;return!!(r.footerCell||(o=r.cells)!=null&&o.footerCell)})||(i=this.$props.cells)!=null&&i.footerCell?1:0)},getAriaColCount(){const e=this.$props.columns,t=this.$props.columnVirtualization,s=(e==null?void 0:e.filter(i=>i.hidden!==void 0).length)!==0;if(t||s)return(e==null?void 0:e.length)!==0?e==null?void 0:e.length:-1},isVirtualScroll(){return this.$props.scrollable==="virtual"||this.$props.scrollable===void 0||!1}},methods:{handleIntersection(e){const t={rowIndex:this.rowIndexRef.value};e.forEach(s=>{s.boundingClientRect.height!==s.intersectionRect.height&&this.setCurrentOnTop(t)})},scrollIntoView(e){var i;if(!((i=this.vsRef)!=null&&i.container)||this.$props.scrollable==="none")return;const{rowIndex:t}=e;this.rowIndexRef.value=t;const s=this._element;if(this.observerRef.value&&s){this.observerRef.value.disconnect();const r=s.querySelector(`[absolute-row-index="${this.rowIndexRef.value}"]`);r?this.observerRef.value.observe(r):this.setCurrentOnTop(e)}},setCurrentOnTop(e){var i,r;if(!((i=this.vsRef)!=null&&i.container)||this.$props.scrollable==="none")return;this.observerRef.value&&this.observerRef.value.disconnect();const{rowIndex:t}=e,s=this._element;if(this.isVirtualScroll){const o=((r=this.vsRef.rowHeightService)==null?void 0:r.offset(t))||0;this.vsRef.container.scroll(0,o)}else if(s){const o=t<1?s.querySelector("tbody > tr:nth-child(1)"):s.querySelector(`tbody > tr:nth-child(${t+1})`);o&&this.containerElementRef&&(this.containerElementRef.scrollTop=o.offsetTop)}},getTotal(){let e=this.$props.total||0;return Array.isArray(this.$props.dataItems)?e=e||this.$props.dataItems.length:this.$props.dataItems&&(e=e||this.$props.dataItems.total),e},readColumnElements(){return b.readColumns(this.$props.columns,this.currentColumnsState,{prevId:0,idPrefix:this.idPrefix})},getResolvedFlatColumnsState(){const e=[],t=(s,i)=>s==null?void 0:s.forEach(r=>{const o=r.hidden||i;e.push({...r,hidden:o}),t(r.children,o)});return t(this.currentColumnsState,!1),e},filterColumns(e){const t=this.getResolvedFlatColumnsState();return[e.filter(s=>{var i;return!s.hidden&&!((i=t.find(r=>r.id===s.id))!=null&&i.hidden)}),e.filter(s=>{var i;return s.hidden||((i=t.find(r=>r.id===s.id))==null?void 0:i.hidden)})]},getFlatData(e,t,s,i,r,o,l){const h=[],p=b.flatData(h,e,t,{index:s},i!==void 0,r,o,this.groupExpandable.defaultExpand,l,this.$props.expandField);return{flattedData:h,resolvedGroupsCount:p}},getColumnsEssentialProps(e){return e&&JSON.stringify(e.map(t=>({id:t.id,field:t.field,title:t.title,children:t.children})))},calculateMedia(){const e=this.filterHiddenColumns(this.$props.columns||[]);this.getColumnsEssentialProps(this.notHiddenColumns)!==this.getColumnsEssentialProps(e)&&this.$forceUpdate()},filterHiddenColumns(e){if(!e||e.length===0)return e;const t=s=>({...s,children:s.children&&s.children.length>0?this.filterHiddenColumns(s.children):s.children});return[...e].filter(s=>!s.hidden).filter(s=>n.canUseDOM&&s&&s.media?window.matchMedia(s.media).matches:s).map(s=>t(s))},getColumns(){const e=this.columnsRef.filter(s=>s.declarationIndex>=0&&s.parentIndex===-1),t=s=>(s.sort((i,r)=>i.declarationIndex-r.declarationIndex),s.map(i=>{const{declarationIndex:r,parentIndex:o,depth:l,colSpan:h,rowSpan:p,index:m,kFirst:f,children:R,...C}=i;return R.length?{children:t(R),...C}:C}));return t(e)},setRefs(){var o,l;let e="$el";const t=n.getRef(this,"gridNav");t&&(this._element=t[e]);const s=n.getRef(this,"groupPanelDiv");if(s){let h=s[e]||null;this.dragLogic.refGroupPanelDiv(h)}this.stickyHeaderRef=n.getRef(this,"stickyHeader"),this.stickyFooterRef=n.getRef(this,"stickyFooter");const i=n.getRef(this,"dropElementClue"),r=n.getRef(this,"dragElementClue");this.dragLogic.refDropElementClue(i),this.dragLogic.refDragElementClue(r),this.columnResize.colGroupMain=n.getRef(this,"colGroup"),this.columnResize.colGroupStickyHeader=(o=this.stickyHeaderRef)==null?void 0:o.colGroupRef,this.columnResize.colGroupStickyFooter=(l=this.stickyFooterRef)==null?void 0:l.colGroupRef,this._header=n.getRef(this,"header"),this._footer=n.getRef(this,"footer"),this.resetTableWidth(),n.setScrollbarWidth()},gridUnmounted(){clearTimeout(this.forceUpdateTimeout),this.columnResize.columns=[],this.dragLogic.columns=[],this.dragLogic&&this.dragLogic.dragElementClue&&(this.dragLogic.dragElementClue.$el.remove(),this.dragLogic.dropElementClue.$el.remove()),this.dataRef=[],this.columnsRef=[],document!=null&&document.body&&this.resizeObserver&&this.resizeObserver.disconnect()},isAllData(){const{dataItems:e,total:t}=this.$props;return Array.isArray(e)?e.length===t:e?t===e.total:!1},resetVirtualSkip(){this.isVirtualScroll&&this.virtualSkipRef&&(this.virtualSkipRef=0)},virtualPageChange(e,t){var i;const s=(i=this.gridContext.group)==null?void 0:i.value;this.$props.pageable||s!=null&&s.length?(this.virtualSkipRef=e.skip,this.$forceUpdate()):this.pageChangeHandler(e,t)},initializeVirtualization(){const e=this.vsRef,t=this.$props.rowHeight||this._minRowHeightRef||0;this.tableBodyRef=n.getRef(this,"tableBody"),this.scrollTableRef=n.getComponentElementRef(this,"table"),e&&(e.fixedScroll=this.$props.fixedScroll||!1,e.PageChange=this.virtualPageChange,e.pageSize=this._virtualPageSize,e.scrollableVirtual=this.isVirtualScroll,this.scrollContainerRef=e.container=n.getRef(this,"scrollContainer"),e.tableBody=this.tableBodyRef,e.scrollHeightContainer=n.getRef(this,"scrollHeightContainer"),e.table=this.scrollTableRef,(!e.rowHeightService||e.total!==this._virtualTotal)&&t&&(e.total=this._virtualTotal,e.rowHeightService=new n.RowHeightService(this._virtualTotal,t)))},setContainerHeight(){const e=n.getRef(this,"scrollContainer");this._containerHeightRef=(e==null?void 0:e.offsetHeight)||0},setMinRowHeight(){if(!this._minRowHeightRef&&!this.$props.rowHeight){const t=b.calcRowHeight(n.getRef(this,"tableBody"));t&&(this._minRowHeightRef=t,this.$forceUpdate())}},onRowHeightChanged(e,t){this.setRefs()},onHeaderScroll(e){const s=e.target.scrollLeft,i=n.getRef(this,"scrollContainer");i&&(i.scrollLeft=s),this.scrollLeftRef=s},scrollHandler(e){var o,l;clearTimeout(this.forceUpdateTimeout);const t=e.currentTarget.scrollLeft,s=e.currentTarget.scrollTop;this.$props.columnVirtualization&&(!this.isVirtualScroll||s===this.wrapperScrollTopRef)&&(this.forceUpdateTimeout=setTimeout(()=>{this.$forceUpdate()},0)),this.scrollLeftRef=t,this._header&&this._header.setScrollLeft(e.currentTarget.scrollLeft),this._footer&&this._footer.setScrollLeft(e.currentTarget.scrollLeft),this.stickyHeaderRef&&this.stickyHeaderRef.setScrollLeft(e.currentTarget.scrollLeft),this.stickyFooterRef&&this.stickyFooterRef.setScrollLeft(e.currentTarget.scrollLeft),this.vsRef&&s!==this.wrapperScrollTopRef&&this.vsRef.scrollHandler(e);const i=(o=this.virtualSkipRef)==null?void 0:o.current;this.vsRef.current&&s!==this.wrapperScrollTopRef&&this.vsRef.current.scrollHandler(e);const r=this.isVirtualScroll&&((l=this.virtualSkipRef)==null?void 0:l.current)!==i;if(this.$emit("scroll",e),this.wrapperScrollTopRef=s,!r){const h=this.updateStickyGroups();this.sticky.headerItems=h==null?void 0:h.stickyHeaderItems,this.sticky.footerItems=h==null?void 0:h.stickyFooterItems}},rowClick(e,t){e.target.type!=="checkbox"&&this.$emit("rowclick",{dataItem:t.dataItem,...this.getArguments(e)})},rowDoubleClick(e,t){e.target.type!=="checkbox"&&this.$emit("rowdblclick",{dataItem:t.dataItem,...this.getArguments(e)})},loopGroupedItems(e,t,s=0,i=null){return e.forEach(r=>{!i&&t(r,s)&&(i=r),r.items&&r.items.length&&!i&&(i=this.loopGroupedItems(r.items,t,s+1,i))}),i},updateGroupCollapsed(e){let t=this.computedCollapsed,s=t[e.level];const i=this.$props.uniqueField,r=function(h,p){return h.value===e.dataItem.value&&p===e.level},o=this.allGroupedItems?this.loopGroupedItems(this.allGroupedItems.data,r,0,null):e.dataItem,l=b.groupedFirstItemValue(o||e.dataItem,i);if(e.value){if(s&&s.length){const h=s.indexOf(l);h>-1&&s.splice(h,1)}}else s?s.includes(l)||s.push(l):s=[l];return t},itemChange(e){var i;const t=n.hasListener.call(this,"itemchange"),s=(i=this.gridContext.group)==null?void 0:i.value;if(e.field===this.$props.expandField||(s||this.$props.detail)&&e.field===void 0){n.hasListener.call(this,"expandchange")&&e.dataItem&&this.$emit("expandchange",{...this.getArguments(e.event),collapsedGroups:this.updateGroupCollapsed(e),dataItem:e.dataItem,value:e.value});return}t&&this.$emit("itemchange",{...this.getArguments(e.event),dataItem:e.dataItem,field:e.field,value:e.value})},cellClickHandler(e){this.$emit("cellclick",{dataItem:e.dataItem,field:e.field})},cellKeydownHandler(e){this.$emit("cellkeydown",e)},editHandler(e){this.$emit("edit",{dataItem:e})},removeHandler(e){this.$emit("remove",{dataItem:e})},saveHandler(e){this.$emit("save",{dataItem:e})},cancelHandler(e){this.$emit("cancel",{dataItem:e})},selectionChangeHandler(e){var t;if(this.computedSelectable.enabled){const{event:s,dataItem:i,dataIndex:r,columnIndex:o}=e,l={...this.getArguments(s),dataItem:i,startColIndex:o,endColIndex:o,startRowIndex:r,endRowIndex:r,dataItems:this.getLeafDataItems(),altKey:!1,ctrlKey:!1,shiftKey:!1,metaKey:!1,mode:this.computedSelectable.mode,cell:this.computedSelectable.cell,isDrag:!1,componentId:this.$props.id||this._gridId,selectedField:this.$props.selectedField||""};this.gridContext.selectionchange({...l,select:this.$props.dataItemKey?c.getSelectedState({event:l,selectedState:(t=this.$props.select)!=null?t:{},dataItemKey:this.$props.dataItemKey}):{}})}},onKeyboardSelectionChangeHandler(e){var m,f;if(!this.computedSelectable.enabled||!this.$props.dataItemKey)return;const t=(m=this.gridContext.select)==null?void 0:m.value,s={dataItems:this.getLeafDataItems(),mode:this.computedSelectable.mode,cell:this.computedSelectable.cell,componentId:this.$props.id,selectedField:"",...this.getArguments(e)},i=c.getSelectedStateFromKeyDown({event:s,selectedState:t!=null?t:{},dataItemKey:this.$props.dataItemKey});if(i===t)return;const r=e.target,o=c.closestTagName(r,"TD"),l=c.closestTagName(r,"TR"),h=c.getColumnIndex(o),p=c.getRowIndex(l);if(h!==void 0&&p!==void 0){const R=(f=b.getDataAsArray(this.$props.dataItems))==null?void 0:f[p];this.gridContext.selectionchange({...s,select:i,dataItem:R,startRowIndex:p,startColIndex:h,startDataItem:R,endDataItem:R,endRowIndex:p,endColIndex:h,ctrlKey:e.ctrlKey,altKey:e.altKey,metaKey:e.metaKey,shiftKey:e.shiftKey,isDrag:!1})}},onHeaderSelectionChangeHandler(e){if(this.computedSelectable.enabled){const t=this.getLeafDataItems();this.gridContext.headerselectionchange({select:e.event.target.checked?t.reduce((s,i)=>(this.$props.dataItemKey&&n.getter(this.$props.dataItemKey)(i)!==void 0&&(s[n.getter(this.$props.dataItemKey)(i)]=!0),s),{}):{},field:e.field,event:e.event,target:this,dataItems:t})}},selectionRelease(e){var t;if(this.computedSelectable.enabled){const s=this.getLeafDataItems(),i=s[e.startRowIndex],r=s[e.endRowIndex],o={event:void 0,target:this,selectedField:"",componentId:this.$props.id||this._gridId,dataItems:s,dataItem:null,startDataItem:i,endDataItem:r,...e},l=c.getSelectedState({event:o,selectedState:(t=this.$props.select)!=null?t:{},dataItemKey:this.$props.dataItemKey});this.raiseSelectionEvent(o,l)}},clearSelection(e){this.computedSelectable.enabled&&this.raiseSelectionEvent(e,{})},raiseSelectionEvent(e,t){this.computedSelectable.enabled&&this.gridContext.selectionchange({...e,select:t})},moveToNextPage(e){var r,o,l,h;const t=(l=(o=(r=this.gridContext.take)==null?void 0:r.value)!=null?o:this.$props.pageSize)!=null?l:0,s=(((h=this.gridContext.skip)==null?void 0:h.value)||0)+t,i=this.getTotal();s<i&&this.pageChangeHandler({skip:s,take:t},e)},moveToPrevPage(e){var i,r,o,l;const t=(o=(r=(i=this.gridContext.take)==null?void 0:i.value)!=null?r:this.$props.pageSize)!=null?o:0,s=(((l=this.gridContext.skip)==null?void 0:l.value)||0)-t;s>=0&&this.pageChangeHandler({skip:s,take:t},e)},pageChangeHandler(e,t){this.raiseDataEvent("pagechange",{page:e,event:t},{skip:e.skip,take:e.take},t)},sortChangeHandler(e,t){this.raiseDataEvent("sortchange",{sort:e},{sort:e},t)},filterChangeHandler(e,t){this.raiseDataEvent("filterchange",{filter:e},{filter:e,skip:0},t)},groupChangeHandler(e,t){this.raiseDataEvent("groupchange",{group:e},{group:e,skip:0},t)},handleDetailExpandAction(e,t){var s;if(this.detailExpandable.enabled){const i=(s=this.gridContext.detailExpand)==null?void 0:s.value,r=c.detailExpandReducer(i!=null?i:{},e);this.gridContext.detailexpandchange({...this.getArguments(t),detailExpand:r})}},handleGroupExpandAction(e,t){var s;if(this.groupExpandable.enabled){const i=(s=this.gridContext.groupExpand)==null?void 0:s.value,r=c.groupExpandReducer(i!=null?i:[],e,this.groupExpandable);this.$props.expandField||this.gridContext.groupexpandchange({...this.getArguments(t),groupExpand:r})}this.scrollToStickyGroup(e.group)},raiseDataEvent(e,t,s,i){if(this.resetVirtualSkip(),this.$props.autoProcessData)this.gridContext[e]({...this.getArguments(i),...t});else if(n.hasListener.call(this,e))this.$emit(e,{...this.getArguments(i),...t});else if(n.hasListener.call(this,"datastatechange")){const r={...this.getDataState(),...s};this.gridContext.datastatechange({...this.getArguments(i),data:r,dataState:r})}},columnReorder(e,t,s){const i=this.columnsRef[e],r=b.getFlatColumnsState(this.currentColumnsState),o=i.depth,l=f=>{do f++;while(f<this.columnsRef.length&&this.columnsRef[f].depth>o);return f},h=this.columnsRef.splice(e,l(e)-e);this.columnsRef.splice(e<t?l(t-h.length):t,0,...h),this.columnsRef.filter(f=>f.declarationIndex>=0).forEach((f,R)=>{f.orderIndex=R;const C=r.find(y=>y.id===f.id);C&&(C.orderIndex=R)});const p=this.columnsRef[e].locked&&this.columnsRef[t].locked;c.updateLeft(this._columnsMap,this.columnsRef,p||this.shouldUpdateLeftRightRef),c.updateRight(this._columnsMap,this.columnsRef,p||this.shouldUpdateLeftRightRef),this.resizedRef&&(this.shouldUpdateLeftRightRef=!1,this.resizedRef=!1);const m=this.getColumns();this.$emit("columnreorder",{target:this,columns:m,event:s,prev:e,next:t}),this.gridContext.columnsstatechange({columnsState:this.currentColumnsState})},groupReorder(e,t,s){var r;const i=(r=this.gridContext.group)==null?void 0:r.value;i!==void 0&&(i.splice(t,0,...i.splice(e,1)),this.groupChangeHandler(i,s))},columnToGroup(e,t,s){var o;const i=this.columnsRef[e].field;if(!i)return;const r=(((o=this.gridContext.group)==null?void 0:o.value)||[]).slice();r.splice(t,0,{field:i}),this.groupChangeHandler(r,s)},resetTableWidth(){var i;let e=0;if(!this.columnResize.colGroupMain)return;const t=(i=this.columnResize.colGroupMain)==null?void 0:i.children;for(let r=0;r<t.length;r++){const o=t[r].width;if(!o)return;e+=parseFloat(o.toString())}e=Math.round(e),this._header&&this._header.setWidth(e),this._footer&&this._footer.setWidth(e),this.stickyHeaderRef&&this.stickyHeaderRef.setWidth(e),this.stickyFooterRef&&this.stickyFooterRef.setWidth(e);const s=n.getComponentElementRef(this,"table");s&&e&&(s.style.width=e+"px")},onResize(e,t,s,i,r,o,l){this.resetTableWidth(),this.shouldUpdateLeftRightRef=!0,this.resizedRef=!0,this.$emit("columnresize",{columns:this.getColumns(),index:e,targetColumnId:l,event:i,newWidth:t,oldWidth:s,end:r,target:this}),r&&this.gridContext.columnsstatechange({columnsState:o})},initColumnsState(e,t){const s=i=>{var o;const r=t.find(l=>l.id===i.id);if(r){const l={...r};return l.children=(o=i.children)==null?void 0:o.map(s),l}return i};this.currentColumnsState=e.filter(i=>i.parentIndex===-1).map(s)},configureColumns(e,t){e.filter(o=>o.columnType==="checkbox").forEach(o=>{o.width=o.width||"50px",o.internalCell=a.markRaw(Ve.GridSelectionCell),o.internalHeaderCell=a.markRaw(Ne.GridHeaderSelectionCell),o._type="edit",o.columnMenu=!1}),this.$props.selectedField&&this.columnsRef.filter(o=>o.field===this.$props.selectedField).forEach(o=>{o.width=o.width||"50px",o.internalCell=a.markRaw(Ve.GridSelectionCell),o.internalHeaderCell=a.markRaw(Ne.GridHeaderSelectionCell),o.columnMenu=!1});const s=b.getFlatColumnsState(this.currentColumnsState);this.initColumnsState(e,s);const i={id:"",resizable:!0,width:"32px",title:" ",declarationIndex:-1,orderIndex:-1,children:[],parentIndex:-1,depth:0,colSpan:0,headerColSpan:0,rowSpan:0,left:0,right:0,index:0,rightBorder:!1,ariaColumnIndex:0,isAccessible:!0};let r=0;if(this.detailExpandable.enabled&&this.$props.detail&&!this.$props.expandField){const o={...i,_type:"expand",id:c.tableKeyboardNavigationTools.generateNavigatableId(`${r++}`,"expand","column"),defaultCell:a.markRaw(te.GridHierarchyCell),internalCell:a.markRaw(te.GridHierarchyCell),field:this.detailExpandable.column,headerClassName:this.hierarchClass};e.unshift(o),this.currentColumnsState.unshift(s.find(l=>l.id===o.id)||o)}this.$props.expandField&&n.hasListener.call(this,"expandchange")&&this.$props.detail&&(e.unshift({...i,internalCell:a.markRaw(te.GridHierarchyCell),field:this.$props.expandField,headerClassName:"k-hierarchy-cell k-header",id:c.tableKeyboardNavigationTools.generateNavigatableId(`${e.length}`,this.idPrefix,"column"),...this.expandColumn}),r++);for(let o=0;o<t;o++){const l={...i,isAccessible:!1,defaultCell:a.markRaw(se.GridGroupCell),internalCell:a.markRaw(se.GridGroupCell),id:c.tableKeyboardNavigationTools.generateNavigatableId(`${r++}`,"group","column"),field:"value",locked:this.$props.lockGroups,columnMenu:!1};e.unshift(l),this.currentColumnsState.unshift(s.find(h=>h.id===l.id)||l)}e.slice(r).forEach(o=>{o.parentIndex>=0&&(o.parentIndex+=r),o.rowSpannable=o.rowSpannable!==void 0?b.getRowSpanOptions(o.rowSpannable):this.computedRowSpannable})},initColumns(e,t){var o;this.columnsRef=this.readColumnElements();const s=(o=this.gridContext.group)==null?void 0:o.value;this.columnsRef.filter(l=>!l.hidden).length===0&&(this.columnsRef=b.autoGenerateColumns(e,s,{column:this.$props.expandField?this.$props.expandField:this.groupExpandable.column},{prevId:0,idPrefix:this.idPrefix})),this.configureColumns(this.columnsRef,t);const[i,r]=this.filterColumns(this.columnsRef);this.columnsRef=i,this.hiddenColumnsRef=r,this._columnsMap=b.mapColumns(this.columnsRef,!0)},resolveTitle(e){const t=this.findColumnByField(e),s=t&&(t.title||t.field);return s===void 0?e:s},findColumnByField(e){let t;return this.$props.columns.forEach(s=>{const i=this.searchColumn(s,e);i&&(t=i)}),t},searchColumn(e,t){if(e.field===t)return e;if(e.children){let s,i=null;for(s=0;i==null&&s<e.children.length;s++)i=this.searchColumn(e.children[s],t);return i}return null},getDataState(){var o,l,h,p,m;const e=(o=this.gridContext.sort)==null?void 0:o.value,t=(l=this.gridContext.filter)==null?void 0:l.value,s=(h=this.gridContext.skip)==null?void 0:h.value,i=(p=this.gridContext.take)==null?void 0:p.value,r=(m=this.gridContext.group)==null?void 0:m.value;return{filter:t,sort:e,skip:s,take:i!==void 0?i:this.$props.pageSize,group:r}},getArguments(e){return{event:e,target:this}},getLeafDataItems(){return this.dataRef.filter(e=>e.rowType==="data").map(e=>e.dataItem)},totalGroupedRows(e){let t=0;return e&&(t=this.addSubItems(e,t)),t},addSubItems(e,t){return e.forEach(s=>{t++,s.expanded!==!1&&s.items&&(t=this.addSubItems(s.items,t)),this.group&&this.group.length&&(this.$props.groupable.footer==="always"||s.expanded!==!1&&s.items&&this.$props.groupable.footer==="visible")&&t++}),t},searchChange(e){const t=this.$props.searchFields||this.columnsRef.map(r=>r.field)||[],s=e.event.target.value,i={logic:"or",filters:t.filter(r=>r!==void 0).map(r=>{var o;return typeof r=="string"?{field:r,value:s,operator:"contains"}:{value:s,operator:(o=r.operator)!=null?o:"contains",field:r.field,ignoreCase:r.ignoreCase}})};this.raiseDataEvent("searchchange",{search:i},{skip:0},e)},getCellsToRender(e,t){var o;const s=[];let i=null,r=0;if(t.forEach((l,h)=>{const p=parseFloat((l.width||"").toString())||10;if(r){r--,i&&(i.width+=p);return}const m=Math.min(b.getColSpan(l,e),t.length-h);r=m-1,i={width:p,colSpan:m,columnIndex:h},s.push(i)}),this.$props.columnVirtualization){const l=this.scrollLeftRef||0,h=this.tableWidth||parseFloat((((o=this.$attrs.style)==null?void 0:o.width)||"").toString());return ut.getVirtualCellsToRender({cellModels:s,columns:t,tableViewPortWidth:h,scrollLeft:l})}return s},calcVirtualPageSize(){const{pageable:e,take:t,pageSize:s}=this.$props;if(!this.isVirtualScroll)return 0;if(!e){if(t)return t;if(s)return s}const i=this.$props.rowHeight||this._minRowHeightRef,r=this._containerHeightRef;return r&&i?Math.ceil(r/i*1.5):0}},provide(){return{kendo:{dataItemKey:this.$props.dataItemKey,searchChange:this.searchChange,selectionRelease:this.selectionRelease,dispatchGroupExpand:this.handleGroupExpandAction,dispatchDetailExpand:this.handleDetailExpandAction,scrollToStickyGroup:this.scrollToStickyGroup},sticky:this.sticky}},setup(e){const t=a.ref(null),s=a.ref(null),i=a.ref(null),r=a.ref(null),o=a.ref(null),l=a.ref(null),h=a.ref(null),p=a.ref([]),m=a.ref([]),f=a.ref(null),R=a.ref(null),C=a.ref(null),y=a.ref(null),S=a.ref(!0),x=a.ref(!1),v=new rt.VirtualScroll,$=a.ref(0),G=a.inject(pt.KendoKey,{}),V=typeof e.groupable=="object"&&!!e.groupable.stickyHeaders,P=typeof e.groupable=="object"&&!!e.groupable.stickyFooters,D=a.ref([]),K=a.computed(()=>{var z,N;return!!((N=(z=G.group)==null?void 0:z.value)!=null&&N.length)}),k=a.ref(null),q=a.ref(void 0),F=a.ref({headerItems:[],footerItems:[]}),{scrollToStickyGroup:H,update:I}=gt.useStickyGroups({enabled:V,enabledFooters:P,flatData:D,containerRef:f,stickyHeaderRef:R,stickyFooterRef:C,tableBodyRef:y,rowHeight:e.rowHeight,isGrouped:K,virtualSkipRef:$,rowHeightServiceRef:a.computed(()=>v==null?void 0:v.rowHeightService)});return{rowIndexRef:q,observerRef:k,dataRef:D,groupPanelDivRef:t,dropElementClueRef:s,dragElementClueRef:i,headerRef:r,footerRef:o,gridNavRef:l,colGroupRef:h,scrollContainerRef:f,tableBodyRef:y,gridContext:G,shouldUpdateLeftRightRef:S,resizedRef:x,currentColumnsState:e.columnsState,vsRef:v,virtualSkipRef:$,stickyHeaderItems:p,stickyHeaderRef:R,stickyFooterItems:m,stickyFooterRef:C,sticky:F,scrollToStickyGroup:H,updateStickyGroups:I}},render(){var ce,pe,ue,fe,ge,me,Re,Ce,be,$e,ve,Ie,we,ye,Se,xe,ke,He;const e=(ce=this.gridContext.sort)==null?void 0:ce.value,t=(pe=this.gridContext.filter)==null?void 0:pe.value,s=(ue=this.gridContext.search)==null?void 0:ue.value,i=(fe=this.gridContext.select)==null?void 0:fe.value,r=(ge=this.gridContext.skip)==null?void 0:ge.value,o=(me=this.gridContext.take)==null?void 0:me.value,l=(Re=this.gridContext.group)==null?void 0:Re.value,h=(Ce=this.gridContext.groupExpand)==null?void 0:Ce.value,p=(be=this.gridContext.detailExpand)==null?void 0:be.value,m=(l==null?void 0:l.length)||0,f=typeof this.$props.groupable=="object"&&!!this.$props.groupable.stickyHeaders,R=typeof this.$props.groupable=="object"&&!!this.$props.groupable.stickyFooters,C=!!(l!=null&&l.length);let y;this.currentColumnsState=($e=this.gridContext.columnsState)==null?void 0:$e.value;const S=this.$props.autoProcessData===!0?{group:!0,sort:!0,filter:!0,search:!0,page:!0}:this.$props.autoProcessData;let x;const v=c.tableKeyboardNavigationTools.getIdPrefix(this.navigation);let $=[];Array.isArray(this.$props.dataItems)?($=this.$props.dataItems,x=(ve=this.$props.total)!=null?ve:$.length):($=((Ie=b.applyExpandedState(this.$props.dataItems,this.$props.collapsedGroups.length?this.computedCollapsed:[],this.$props.uniqueField))==null?void 0:Ie.data)||[],x=(Se=(ye=this.$props.total)!=null?ye:(we=this.$props.dataItems)==null?void 0:we.total)!=null?Se:$.length);const G=this.$props.groupable===!0||n.isObject(this.$props.groupable)&&this.$props.groupable.enabled!==!1;this.dragLogic.reorderable=this.$props.reorderable||!1,this.dragLogic.groupable=G,this._virtualPageSize=this.calcVirtualPageSize();const V=$.length===x,P=n.isObject(this.$props.groupable)&&this.$props.groupable.footer||"none";if(S){const d=S.page&&!(this.isVirtualScroll&&!this.$props.pageable),{data:g,total:w}=ct.process($,{group:S.group?l:void 0,sort:S.sort?e:void 0,filter:c.combineFilters(S.filter?t:void 0,S.search?s:void 0),...d?{take:this.$props.pageable?o||10:o,skip:r||0}:{}});$=g,x=(xe=this.$props.total)!=null?xe:w}const{resolvedGroupsCount:D,flattedData:K}=this.getFlatData($,P,V?0:this.$props.skip||0,l,p,h,this.$props.dataItemKey);this.dataRef=K;const k=this.virtualSkipRef||0;if(this._virtualTotal=x,this.isVirtualScroll){let d=r||0;if((C||this.$props.pageable)&&(d=k,this._virtualTotal=this.dataRef.length),V||C||this.$props.pageable)if(this._virtualPageSize===0){const g=Math.min(o||this.$props.pageSize||20,this.dataRef.length);y=this.dataRef.slice(d,d+g)}else y=this.dataRef.slice(d,d+this._virtualPageSize)}this.initializeVirtualization();const q=(ke=this.selectable)!=null&&ke.drag?"none":void 0;this.initColumns(this.$props.dataItems,D),this.columnResize.resizable=this.$props.resizable||!1,this.columnResize.columns=this.columnsRef,this.columnResize.columnsState=n.cloneArray(this.currentColumnsState||[]),this.dragLogic.columns=this.columnsRef;const F=this.$props.toolbar,H=this.$props.noRecords,I=this.columnsRef.filter(d=>d.children.length===0),z=G&&a.createVNode(Ze.GroupPanel,{ref:d=>{this.groupPanelDivRef=d},group:l||[],ariaControls:this._gridRoleElementId,onGroupChange:this.groupChangeHandler,onPressHandler:this.dragLogic.pressHandler,onDragHandler:this.dragLogic.dragHandler,onReleaseHandler:this.dragLogic.releaseHandler,resolveTitle:this.resolveTitle},null),N=(this.dragLogic.reorderable||this.dragLogic.groupable)&&n.canUseDOM&&document&&document.body,re=[N&&a.createVNode(nt.DropClue,{ref:d=>{this.dropElementClueRef=d}},null),N&&a.createVNode(lt.DragClue,{ref:d=>{this.dragElementClueRef=d}},null)],Me=this.showLicenseWatermark?a.createVNode(n.WatermarkOverlay,{message:this.licenseMessage},null):null,A=this.$attrs.style,_e=A&&n.isObject(A)&&A["width"]||"";this.tableWidth=parseFloat(_e.toString());const Pe=I.findIndex(d=>typeof d.colSpan=="function")>-1;let L;L=this.getCellsToRender({},I);const M=(this.$props.columnVirtualization?this.getCellsToRender({},I).map(({columnIndex:d})=>I[d]):I).map(function(d,g){return a.createVNode("col",{key:d.id||`col-${g}`,width:d.width!==void 0?Math.floor(parseFloat(d.width.toString())):void 0},null)},this),oe=a.createVNode(Qe.Header,{size:this.$props.size,columnResize:this.columnResize,staticHeaders:this.$props.scrollable!=="none",ref:d=>{this.headerRef=d},onHeaderscroll:this.onHeaderScroll,headerRow:a.createVNode(Xe.HeaderRow,{grid:this,sort:e,groupable:this.$props.groupable,reorderable:this.$props.reorderable,sortable:this.$props.sortable,onSortChange:this.sortChangeHandler,filter:t,filterable:this.$props.filterable,filterOperators:this.$props.filterOperators||ze.operators,onFilterChange:this.filterChangeHandler,columnMenu:this.$props.columnMenu,columnMenuIcon:this.$props.columnMenuIcon,columnMenuAnimate:this.$props.columnMenuAnimate,onSelectionchange:this.onHeaderSelectionChangeHandler,columns:this.columnsRef,cellsToRender:L,columnVirtualization:this.$props.columnVirtualization,columnsInitial:this.$props.columns,columnResize:this.columnResize,onPressHandler:this.dragLogic.pressHandler,onDragHandler:this.dragLogic.dragHandler,onReleaseHandler:this.dragLogic.releaseHandler,columnsMap:this._columnsMap,cellRender:this.$props.headerCellRender,isRtl:this.isRtl,isColCountDefined:this.getAriaColCount!==void 0,headerSelectionValue:!!(i&&this.dataRef.filter(d=>d.rowType==="data").every(d=>i&&this.$props.dataItemKey&&n.getter(this.$props.dataItemKey)(d.dataItem)!==void 0?i[n.getter(this.$props.dataItemKey)(d.dataItem)]:void 0)),filterRow:this.$props.filterable&&a.createVNode(Ye.FilterRow,{grid:this,size:this.$props.size,columns:this.columnsRef,columnsMap:this._columnsMap,cellsToRender:L,columnVirtualization:this.$props.columnVirtualization,filter:t,filterOperators:this.$props.filterOperators||ze.operators,onFilterchange:this.filterChangeHandler,sort:this.$props.sort,cellRender:this.$props.filterCellRender,isRtl:this.isRtl,ariaRowIndex:this._columnsMap.length+1},null)||void 0},null),cols:M},null),ae=this.columnsRef.some(d=>{var g;return!!(d.footerCell||(g=d.cells)!=null&&g.footerCell)})||(He=this.$props.cells)!=null&&He.footerCell?a.createVNode(et.Footer,{size:this.$props.size,columnResize:this.columnResize,staticHeaders:this.$props.scrollable!=="none",ref:d=>{this.footerRef=d},row:a.createVNode(tt.FooterRow,{isRtl:this.isRtl,rowIndex:this.getAriaRowCount+1,columns:this.columnsRef,cells:this.$props.cells},null),cols:M},null):a.createVNode("span",null,null),O={leafColumns:I,cellsToRender:L,selectedField:this.$props.selectedField,dataItemKey:this.$props.dataItemKey,select:i,highlight:this.$props.highlight,editField:this.$props.editField,cellRender:this.$props.cellRender,cells:this.$props.cells,getCellsToRender:this.getCellsToRender,hasDynamicColSpan:Pe,itemChange:this.itemChange,selectionChangeHandler:this.selectionChangeHandler,editHandler:this.editHandler,removeHandler:this.removeHandler,saveHandler:this.saveHandler,cancelHandler:this.cancelHandler,cellClickHandler:this.cellClickHandler,cellKeydownHandler:this.cellKeydownHandler,computedCollapsed:this.computedCollapsed,uniqueField:this.$props.uniqueField,columnsRef:this.columnsRef,isRtl:this.isRtl,idPrefix:v},Ke=function(d,g,w,J,Q){return ft.getRowContents(O,d,g,w,J,Q)};let qe=0,W=[];const U=!this.dataRef.length,le=d=>d>=this.dataRef.length-qe;let B=0;if(this.dataRef.length){const d=this._columnsMap.length+(this.$props.filterable?1:0)+1;let g=this.$props.skip||0,w=-1,J=0;const Q=this.computedRowSpannable.enabled?{}:void 0;if(this.isVirtualScroll){if(k>0){const u=this.dataRef.slice(0,k).filter(E=>E.rowType==="data").length;w+=u,g+=k}!this.$props.pageable&&V&&(w+=this.$props.skip||0)}W=(y||this.dataRef).map(function(u,E){u.rowType==="data"&&w++;const X=u.dataIndex%2!==0,Te=this.$props.dataItemKey&&n.getter(this.$props.dataItemKey)(u.dataItem),Y=E+g,Z=Te||"ai"+Y,ee=Z+"_1",_=Ke.call(this,u,Z,w,X,Q),Ue=I.length-(this.detailExpandable.enabled?1:0)-((l==null?void 0:l.length)||0)||1;return B=Y+d+J,[a.createVNode(dt.GridRow,{key:Z,item:u,dataIndex:w,ariaRowIndex:B,absoluteRowIndex:Y,isAltRow:X,isHidden:le(E),rowHeight:this.$props.rowHeight,isSelected:_.isSelected,isHighlighted:_.isHighlighted,isInEdit:_.isInEdit,rowType:u.rowType,onRowclick:T=>this.rowClick(T,u),onRowdblclick:T=>this.rowDoubleClick(T,u),render:this.$props.rowRender,class:this.$props.rowClass?this.$props.rowClass(u):""},{default:()=>[_.row]}),this.$props.detail&&u.rowType==="data"&&(u.expanded||u.dataItem.expanded)&&a.createVNode("tr",{key:ee,class:X?"k-table-row k-table-alt-row k-detail-row":"k-table-row k-detail-row",style:{visibility:le(E)?"hidden":"",height:this.$props.detailRowHeight+"px"},role:"row","aria-rowindex":B},[l==null?void 0:l.map(function(T){return a.createVNode(se.GridGroupCell,{id:"",dataIndex:u.dataIndex,field:T.field,dataItem:u.dataItem,key:`group-${T.field}-${u.dataIndex}`,locked:this.$props.lockGroups,group:u.group},null)},this),(this.$props.expandField||this.detailExpandable.enabled)&&a.createVNode(je.GridDetailHierarchyCell,{id:c.tableKeyboardNavigationTools.generateNavigatableId(`${ee}-dhcell`,v)},null),a.createVNode(Je.GridDetailCell,{dataItem:u.dataItem,dataIndex:u.dataIndex,colSpan:Ue,ariaColIndex:2+(l?l.length:0),detail:this.$props.detail?this.$props.detail:void 0,id:c.tableKeyboardNavigationTools.generateNavigatableId(`${ee}-dcell`,v)},null)])]},this)}const Ae=this.$props.pageable&&a.createVNode(c.Pager,{class:"k-grid-pager",onPagesizechange:this.pageChangeHandler,onPagechange:this.pageChangeHandler,size:this.$props.size,total:x,skip:r||0,pageSize:(o!==void 0?o:this.$props.pageSize)||10,messagesMap:Fe.pagerMessagesMap,settings:c.normalize(this.$props.pageable||{})},null),ne=n.getTemplate.call(this,{h:a.h,template:this.$props.pager,defaultRendering:Ae,additionalProps:{...this.$props,skip:this.$props.skip||0,messagesMap:Fe.pagerMessagesMap},additionalListeners:{pagesizechange:this.pageChangeHandler,pagechange:this.pageChangeHandler}}),Oe=d=>e&&e.filter(g=>g.field===d).length>0,de=a.createVNode("colgroup",{ref:n.setRef(this,"colGroup")},[I.map(function(d,g){return a.createVNode("col",{key:d.id||`col-${g}`,class:Oe(d.field)?"k-sorted":void 0,width:d.width!==void 0?d.width.toString().indexOf("%")!==-1?d.width:Math.floor(parseFloat(d.width.toString()))+"px":void 0},null)},this)]),he={height:this.getCorrectHeight,...this.$attrs.style},We=a.createVNode("div",{class:"k-loading-mask"},[a.createVNode("div",{class:"k-loading-color"},null),a.createVNode("div",{style:{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"}},[a.createVNode(Be.Loader,{size:"large",type:"converging-spinner"},null)])]),j=this.$props.showLoader&&n.getTemplate.call(this,{h:a.h,template:this.$props.loader,defaultRendering:We});return this.$props.scrollable==="none"?a.createVNode(c.TableKeyboardNavigationProvider,{ref:"navRef",id:this._gridId,navigatable:this.$props.navigatable,scrollable:this.$props.scrollable,columnVirtualization:this.$props.columnVirtualization},{default:()=>[a.createVNode(Ge.GridNav,{ref:d=>{this.gridNavRef=d},columnsRef:this.columnsRef,dataRef:this.dataRef,id:this.$props.id,style:he,class:this.nonscrollableWrapperClass,onMovetonextpage:this.moveToNextPage,onMovetoprevpage:this.moveToPrevPage,onColumnreorder:this.columnReorder,onKeyboardselectionchange:this.onKeyboardSelectionChangeHandler},{default:()=>[F,z,a.createVNode("div",{role:"grid",class:"k-grid-aria-root",id:this._gridRoleElementId,"aria-colcount":this.getAriaColCount,"aria-rowcount":this.getAriaRowCount},[a.createVNode(st.GridTable,{selectable:this.computedSelectable,class:"k-table",ref:n.setRef(this,"table")},{default:()=>[de,oe,a.createVNode("tbody",{class:"k-table-tbody","data-keyboardnavbody":!0,ref:n.setRef(this,"tableBody")},[W,a.createTextVNode(" "),j]),ae]}),U&&a.createVNode(De.GridNoRecordsContainer,{id:c.tableKeyboardNavigationTools.generateNavigatableId("no-records",v)},{default:()=>[H.length?H:a.createVNode(Ee.GridNoRecords,null,null)]})]),ne,j,re]})]}):a.createVNode(c.TableKeyboardNavigationProvider,{ref:"navRef",id:this._gridId,navigatable:this.$props.navigatable,scrollable:this.$props.scrollable,columnVirtualization:this.$props.columnVirtualization},{default:()=>[a.createVNode(Ge.GridNav,{ref:d=>{this.gridNavRef=d},dataRef:this.dataRef,id:this.$props.id,style:he,class:this.scrollableWrapperClass,onMovetonextpage:this.moveToNextPage,onMovetoprevpage:this.moveToPrevPage,onColumnreorder:this.columnReorder,onKeyboardselectionchange:this.onKeyboardSelectionChangeHandler,onSetcurrentontop:this.setCurrentOnTop},{default:()=>[F,z,a.createVNode("div",{role:"grid",class:"k-grid-aria-root",id:this._gridRoleElementId,"aria-colcount":this.getAriaColCount,"aria-rowcount":this.getAriaRowCount},[oe,a.createVNode("div",{class:"k-grid-container",role:"presentation"},[C&&f&&a.createVNode(Le.StickyGroupTable,{ref:n.setRef(this,"stickyHeader"),size:this.$props.size,cols:M,dataRowContext:O,position:"top",groupLevelCount:m,rowHeight:this.$props.rowHeight},null),a.createVNode("div",{role:"presentation",ref:n.setRef(this,"scrollContainer"),class:"k-grid-content k-virtual-content",onScroll:this.scrollHandler},[a.createVNode("div",{class:"k-grid-table-wrap",role:"presentation"},[a.createVNode(it.GridTableScrollable,{selectable:this.computedSelectable,tableClassName:this.gridTableClass,tableStyle:{userSelect:q},ref:n.setRef(this,"table")},{default:()=>[de,a.createVNode("tbody",{class:"k-table-tbody",role:"rowgroup","data-keyboardnavbody":!0,ref:n.setRef(this,"tableBody")},[W])]}),U&&a.createVNode(De.GridNoRecordsContainer,{id:c.tableKeyboardNavigationTools.generateNavigatableId("no-records",v)},{default:()=>[H.length?H:a.createVNode(Ee.GridNoRecords,null,null)]})]),!U&&a.createVNode("div",{class:"k-height-container",role:"presentation"},[a.createVNode("div",{ref:n.setRef(this,"scrollHeightContainer"),style:this.$props.scrollable==="virtual"?{height:this._containerHeightRef+"px"}:{}},null)])]),C&&R&&a.createVNode(Le.StickyGroupTable,{ref:n.setRef(this,"stickyFooter"),size:this.$props.size,cols:M,dataRowContext:O,position:"bottom",groupLevelCount:m,rowHeight:this.$props.rowHeight},null)]),ae,Me]),ne,j,re]})]})}});exports.Grid=mt;