@progress/kendo-vue-grid 8.0.3-develop.4 → 8.1.0-develop.1

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 (60) hide show
  1. package/Grid.d.ts +18 -2
  2. package/Grid.js +1 -1
  3. package/Grid.mjs +655 -511
  4. package/GridNav.d.ts +12 -2
  5. package/GridNav.js +1 -1
  6. package/GridNav.mjs +52 -24
  7. package/GridState.d.ts +12 -5
  8. package/GridState.js +1 -1
  9. package/GridState.mjs +84 -77
  10. package/RootGrid.d.ts +6 -0
  11. package/RootGrid.js +1 -1
  12. package/RootGrid.mjs +25 -25
  13. package/StatusBar.d.ts +55 -5
  14. package/StatusBar.js +8 -0
  15. package/StatusBar.mjs +81 -0
  16. package/cells/GridCell.d.ts +3 -0
  17. package/cells/GridCell.js +1 -1
  18. package/cells/GridCell.mjs +32 -29
  19. package/cells/GridEditCell.d.ts +2 -0
  20. package/cells/GridEditCell.js +1 -1
  21. package/cells/GridEditCell.mjs +1 -0
  22. package/cells/GridSelectionCell.js +1 -1
  23. package/cells/GridSelectionCell.mjs +16 -16
  24. package/common.d.ts +3 -0
  25. package/common.js +1 -1
  26. package/common.mjs +3 -0
  27. package/components/table/GridTable.d.ts +18 -0
  28. package/components/table/GridTable.js +8 -0
  29. package/components/table/GridTable.mjs +41 -0
  30. package/components/table/GridTableScrollable.d.ts +20 -0
  31. package/components/table/GridTableScrollable.js +8 -0
  32. package/components/table/GridTableScrollable.mjs +45 -0
  33. package/dist/cdn/js/kendo-vue-grid.js +1 -1
  34. package/drag/ColumnDraggable.js +1 -1
  35. package/drag/ColumnDraggable.mjs +5 -4
  36. package/header/FilterRow.d.ts +3 -0
  37. package/header/FilterRow.js +1 -1
  38. package/header/FilterRow.mjs +46 -44
  39. package/header/Header.d.ts +5 -2
  40. package/header/Header.js +1 -1
  41. package/header/Header.mjs +10 -5
  42. package/header/HeaderRow.d.ts +3 -0
  43. package/header/HeaderRow.js +1 -1
  44. package/header/HeaderRow.mjs +148 -139
  45. package/index.d.mts +1 -0
  46. package/index.d.ts +1 -0
  47. package/index.js +1 -1
  48. package/index.mjs +20 -16
  49. package/interfaces/GridCellProps.d.ts +11 -0
  50. package/interfaces/GridColumnProps.d.ts +10 -6
  51. package/interfaces/GridProps.d.ts +31 -3
  52. package/interfaces/events.d.ts +26 -3
  53. package/package-metadata.js +1 -1
  54. package/package-metadata.mjs +2 -2
  55. package/package.json +12 -12
  56. package/utils/main.js +1 -1
  57. package/utils/main.mjs +68 -67
  58. package/utils/virtualColumns.d.ts +17 -0
  59. package/utils/virtualColumns.js +1 -1
  60. package/utils/virtualColumns.mjs +132 -39
@@ -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 r=require("vue"),a=require("@progress/kendo-vue-common"),n=r.defineComponent({props:{onPressHandler:Function,onDragHandler:Function,onReleaseHandler:Function},mounted(){this.$el&&(this.draggable=this.$refs.draggable)},methods:{onPress(t){const e=this.draggable&&this.draggable.element;e&&this.$emit("pressHandler",t,e)},onDrag(t){const e=this.draggable&&this.draggable.element;e&&this.$emit("dragHandler",t,e)},onRelease(t){const e=this.draggable&&this.draggable.element;e&&this.$emit("releaseHandler",t,e)}},render(){const t=a.getDefaultSlots(this);return r.createVNode(a.Draggable,{onPress:this.onPress,onDrag:this.onDrag,onRelease:this.onRelease,ref:"draggable"},{default:()=>[r.createVNode("tr",{class:"k-table-row",role:"row"},[t])]})}});exports.ColumnDraggable=n;
8
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("vue"),a=require("@progress/kendo-vue-common"),n=r.defineComponent({props:{onPressHandler:Function,onDragHandler:Function,onReleaseHandler:Function},mounted(){this.$el&&(this.draggable=this.$refs.draggable)},methods:{onPress(t){const e=this.draggable&&this.draggable.element;e&&this.$emit("pressHandler",t,e)},onDrag(t){const e=this.draggable&&this.draggable.element;e&&this.$emit("dragHandler",t,e)},onRelease(t){const e=this.draggable&&this.draggable.element;e&&this.$emit("releaseHandler",t,e)}},render(){const t=a.getDefaultSlots(this);return r.createVNode(a.Draggable,{onPress:this.onPress,onDrag:this.onDrag,onRelease:this.onRelease,ref:"draggable"},{default:()=>[r.createVNode("tr",{class:"k-table-row",role:"row","aria-rowindex":this.$props.key},[t])]})}});exports.ColumnDraggable=n;
@@ -6,7 +6,7 @@
6
6
  *-------------------------------------------------------------------------------------------
7
7
  */
8
8
  import { defineComponent as a, createVNode as r } from "vue";
9
- import { getDefaultSlots as n, Draggable as s } from "@progress/kendo-vue-common";
9
+ import { getDefaultSlots as s, Draggable as n } from "@progress/kendo-vue-common";
10
10
  const i = /* @__PURE__ */ a({
11
11
  props: {
12
12
  onPressHandler: Function,
@@ -31,8 +31,8 @@ const i = /* @__PURE__ */ a({
31
31
  }
32
32
  },
33
33
  render() {
34
- const t = n(this);
35
- return r(s, {
34
+ const t = s(this);
35
+ return r(n, {
36
36
  onPress: this.onPress,
37
37
  onDrag: this.onDrag,
38
38
  onRelease: this.onRelease,
@@ -40,7 +40,8 @@ const i = /* @__PURE__ */ a({
40
40
  }, {
41
41
  default: () => [r("tr", {
42
42
  class: "k-table-row",
43
- role: "row"
43
+ role: "row",
44
+ "aria-rowindex": this.$props.key
44
45
  }, [t])]
45
46
  });
46
47
  }
@@ -25,6 +25,7 @@ export interface FilterRowProps {
25
25
  size?: null | 'small' | 'medium' | 'large';
26
26
  cellsToRender?: GridCellRenderModel[];
27
27
  columnVirtualization?: boolean;
28
+ columnsMap?: number[][];
28
29
  onFilterchange: (filters: CompositeFilterDescriptor) => void;
29
30
  }
30
31
  /**
@@ -42,6 +43,7 @@ declare const FilterRow: import('vue').DefineComponent<import('vue').ExtractProp
42
43
  size: PropType<"small" | "medium" | "large">;
43
44
  cellsToRender: PropType<GridCellRenderModel[]>;
44
45
  columnVirtualization: PropType<boolean>;
46
+ columnsMap: PropType<number[][]>;
45
47
  onFilterchange: PropType<(filters: CompositeFilterDescriptor) => void>;
46
48
  }>, {
47
49
  kendoLocalizationService: {};
@@ -60,6 +62,7 @@ declare const FilterRow: import('vue').DefineComponent<import('vue').ExtractProp
60
62
  size: PropType<"small" | "medium" | "large">;
61
63
  cellsToRender: PropType<GridCellRenderModel[]>;
62
64
  columnVirtualization: PropType<boolean>;
65
+ columnsMap: PropType<number[][]>;
63
66
  onFilterchange: PropType<(filters: CompositeFilterDescriptor) => void>;
64
67
  }>> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
65
68
  export { FilterRow };
@@ -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"),p=require("../filterCommon.js"),m=require("../cells/GridFilterCell.js"),V=require("@progress/kendo-vue-intl"),v=require("../messages/main.js"),h=require("@progress/kendo-vue-data-tools"),L=require("../utils/virtualColumns.js");function z(t){return typeof t=="function"||Object.prototype.toString.call(t)==="[object Object]"&&!o.isVNode(t)}const j=o.defineComponent({name:"kendoFilterRow",props:{grid:Object,columns:Array,filter:Object,filterOperators:Object,sort:[Object,Array],cellRender:[String,Function,Object],isRtl:Boolean,ariaRowIndex:Number,size:String,cellsToRender:Array,columnVirtualization:Boolean,onFilterchange:Function},inject:{kendoLocalizationService:{default:null}},methods:{headerCellClassName(t,r){let l=r?" k-grid-header-sticky":"";return this.$props.sort&&this.$props.sort.filter(d=>d.field===t).length>0&&(l+=" k-sorted"),l},setFilter(t,r,l,d){const n=[];(t!==""&&t!==null||r!=="")&&n.push({field:l,operator:r,value:t}),this.$props.filter&&this.$props.filter.filters&&(this.$props.filter.filters||[]).forEach(c=>{const f=c;f&&f.field!==l&&n.push(f)});const g=n.length>0?{logic:"and",filters:n}:null;this.$emit("filterchange",g,d)}},setup(){return{kendoLocalizationService:o.inject("kendoLocalizationService",{})}},render(){const t=V.provideLocalizationService(this),r=this.$props.filter&&this.$props.filter.filters||[],l=(e,i=null)=>{const a=r.filter(s=>s.field===e)[0];return a?a.value:i},d=e=>{const i=r.filter(a=>a.field===e)[0];return i?i.operator:null};let n=0,g=-1;const u=L.getVirtualHeaderCellsToRender({cellsToRender:this.$props.cellsToRender||[],columns:this.$props.columns,rowIndex:0,enableVirtualization:this.$props.columnVirtualization}),c=u.columnsToRender.length>0,f=this.$props.columns.filter(e=>e.children.length===0),S=c?u.columnsToRender.map(e=>this.$props.columns[e]).filter(e=>e.children.length===0):f,y=c?u.colSpans:[],T=S.map(function(e,i){const a=F=>{this.setFilter(F.value,F.operator,e.field,F)},s=p.getFilterType(e.filter),b=(e.title||e.field)+" "+p.getAriaLabel(s,t),C=o.createVNode(m.GridFilterCell,{grid:this.$props.grid,field:e.field,title:e.filterTitle,value:l(e.field,s==="text"?"":null),operator:d(e.field),operators:p.operatorMap(this.$props.filterOperators[s]||[],t),booleanValues:p.operatorMap(p.booleanFilterValues,t),filterType:s,onChange:a,render:e.filterCell||this.$props.cellRender,"aria-label":b,size:this.$props.size},null),R=e.declarationIndex>=0?++g:--n,k={ariaLabel:e.filterable?t.toLanguageString(v.filterAriaLabel,v.messages[v.filterAriaLabel]):void 0,ariaColumnIndex:e.ariaColumnIndex},$=e.locked&&e.left!==void 0?this.$props.isRtl?{left:e.right+"px",right:e.left+"px"}:{left:e.left+"px",right:e.right+"px"}:void 0,x=c&&y[i]!==void 0?y[i]:void 0,I=o.createVNode(h.HeaderTdElement,{key:R,role:"gridcell",columnId:h.tableKeyboardNavigationTools.getFilterColumnId(e.id),navigatable:e.navigatable,style:$,class:this.headerCellClassName(e.field,e.locked)||void 0,ariaColumnIndex:k.ariaColumnIndex,"aria-label":b,colSpan:x},z(C)?C:{default:()=>[C]});return e.filterable&&I||o.createVNode(h.HeaderTdElement,{key:R,role:"gridcell",columnId:h.tableKeyboardNavigationTools.getFilterColumnId(e.id),navigatable:e.navigatable,style:$,class:this.headerCellClassName(e.field,e.locked)||void 0,ariaColumnIndex:k.ariaColumnIndex,"aria-label":b,colSpan:x},null)},this);return o.createVNode("tr",{class:"k-table-row k-filter-row","aria-rowindex":this.ariaRowIndex,role:"row"},[T])}});exports.FilterRow=j;
8
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("vue"),f=require("../filterCommon.js"),I=require("../cells/GridFilterCell.js"),V=require("@progress/kendo-vue-intl"),v=require("../messages/main.js"),h=require("@progress/kendo-vue-data-tools"),L=require("../utils/virtualColumns.js");function z(t){return typeof t=="function"||Object.prototype.toString.call(t)==="[object Object]"&&!o.isVNode(t)}const j=o.defineComponent({name:"kendoFilterRow",props:{grid:Object,columns:Array,filter:Object,filterOperators:Object,sort:[Object,Array],cellRender:[String,Function,Object],isRtl:Boolean,ariaRowIndex:Number,size:String,cellsToRender:Array,columnVirtualization:Boolean,columnsMap:Array,onFilterchange:Function},inject:{kendoLocalizationService:{default:null}},methods:{headerCellClassName(t,r){let l=r?" k-grid-header-sticky":"";return this.$props.sort&&this.$props.sort.filter(d=>d.field===t).length>0&&(l+=" k-sorted"),l},setFilter(t,r,l,d){const a=[];(t!==""&&t!==null||r!=="")&&a.push({field:l,operator:r,value:t}),this.$props.filter&&this.$props.filter.filters&&(this.$props.filter.filters||[]).forEach(c=>{const p=c;p&&p.field!==l&&a.push(p)});const g=a.length>0?{logic:"and",filters:a}:null;this.$emit("filterchange",g,d)}},setup(){return{kendoLocalizationService:o.inject("kendoLocalizationService",{})}},render(){const t=V.provideLocalizationService(this),r=this.$props.filter&&this.$props.filter.filters||[],l=(e,i=null)=>{const n=r.filter(s=>s.field===e)[0];return n?n.value:i},d=e=>{const i=r.filter(n=>n.field===e)[0];return i?i.operator:null};let a=0,g=-1;const u=L.getVirtualHeaderCellsToRender({cellsToRender:this.$props.cellsToRender||[],columns:this.$props.columns,rowIndex:0,enableVirtualization:this.$props.columnVirtualization,columnsMap:this.$props.columnsMap}),c=u.columnsToRender.length>0,p=this.$props.columns.filter(e=>e.children.length===0),x=c?u.columnsToRender.map(e=>this.$props.columns[e]).filter(e=>e.children.length===0):p,y=c?u.colSpans:[],S=x.map(function(e,i){const n=F=>{this.setFilter(F.value,F.operator,e.field,F)},s=f.getFilterType(e.filter),b=(e.title||e.field)+" "+f.getAriaLabel(s,t),C=o.createVNode(I.GridFilterCell,{grid:this.$props.grid,field:e.field,title:e.filterTitle,value:l(e.field,s==="text"?"":null),operator:d(e.field),operators:f.operatorMap(this.$props.filterOperators[s]||[],t),booleanValues:f.operatorMap(f.booleanFilterValues,t),filterType:s,onChange:n,render:e.filterCell||this.$props.cellRender,"aria-label":b,size:this.$props.size},null),R=e.declarationIndex>=0?++g:--a,$={ariaLabel:e.filterable?t.toLanguageString(v.filterAriaLabel,v.messages[v.filterAriaLabel]):void 0,ariaColumnIndex:e.ariaColumnIndex},k=e.locked&&e.left!==void 0?this.$props.isRtl?{left:e.right+"px",right:e.left+"px"}:{left:e.left+"px",right:e.right+"px"}:void 0,m=c&&y[i]!==void 0?y[i]:void 0,T=o.createVNode(h.HeaderTdElement,{key:R,role:"gridcell",columnId:h.tableKeyboardNavigationTools.getFilterColumnId(e.id),navigatable:e.navigatable,style:k,class:this.headerCellClassName(e.field,e.locked)||void 0,ariaColumnIndex:$.ariaColumnIndex,"aria-label":b,colSpan:m},z(C)?C:{default:()=>[C]});return e.filterable&&T||o.createVNode(h.HeaderTdElement,{key:R,role:"gridcell",columnId:h.tableKeyboardNavigationTools.getFilterColumnId(e.id),navigatable:e.navigatable,style:k,class:this.headerCellClassName(e.field,e.locked)||void 0,ariaColumnIndex:$.ariaColumnIndex,"aria-label":b,colSpan:m},null)},this);return o.createVNode("tr",{class:"k-table-row k-filter-row","aria-rowindex":this.ariaRowIndex,role:"row"},[S])}});exports.FilterRow=j;
@@ -6,13 +6,13 @@
6
6
  *-------------------------------------------------------------------------------------------
7
7
  */
8
8
  import { defineComponent as z, createVNode as c, inject as L, isVNode as j } from "vue";
9
- import { getFilterType as O, getAriaLabel as V, operatorMap as $, booleanFilterValues as w } from "../filterCommon.mjs";
10
- import { GridFilterCell as N } from "../cells/GridFilterCell.mjs";
11
- import { provideLocalizationService as A } from "@progress/kendo-vue-intl";
12
- import { filterAriaLabel as v, messages as B } from "../messages/main.mjs";
13
- import { HeaderTdElement as k, tableKeyboardNavigationTools as y } from "@progress/kendo-vue-data-tools";
14
- import { getVirtualHeaderCellsToRender as E } from "../utils/virtualColumns.mjs";
15
- function H(t) {
9
+ import { getFilterType as O, getAriaLabel as V, operatorMap as R, booleanFilterValues as w } from "../filterCommon.mjs";
10
+ import { GridFilterCell as A } from "../cells/GridFilterCell.mjs";
11
+ import { provideLocalizationService as N } from "@progress/kendo-vue-intl";
12
+ import { filterAriaLabel as v, messages as M } from "../messages/main.mjs";
13
+ import { HeaderTdElement as y, tableKeyboardNavigationTools as k } from "@progress/kendo-vue-data-tools";
14
+ import { getVirtualHeaderCellsToRender as B } from "../utils/virtualColumns.mjs";
15
+ function E(t) {
16
16
  return typeof t == "function" || Object.prototype.toString.call(t) === "[object Object]" && !j(t);
17
17
  }
18
18
  const Q = /* @__PURE__ */ z({
@@ -29,6 +29,7 @@ const Q = /* @__PURE__ */ z({
29
29
  size: String,
30
30
  cellsToRender: Array,
31
31
  columnVirtualization: Boolean,
32
+ columnsMap: Array,
32
33
  onFilterchange: Function
33
34
  },
34
35
  inject: {
@@ -38,24 +39,24 @@ const Q = /* @__PURE__ */ z({
38
39
  },
39
40
  methods: {
40
41
  headerCellClassName(t, r) {
41
- let i = r ? " k-grid-header-sticky" : "";
42
- return this.$props.sort && this.$props.sort.filter((s) => s.field === t).length > 0 && (i += " k-sorted"), i;
42
+ let l = r ? " k-grid-header-sticky" : "";
43
+ return this.$props.sort && this.$props.sort.filter((s) => s.field === t).length > 0 && (l += " k-sorted"), l;
43
44
  },
44
- setFilter(t, r, i, s) {
45
+ setFilter(t, r, l, s) {
45
46
  const o = [];
46
47
  (t !== "" && t !== null || r !== "") && o.push({
47
- field: i,
48
+ field: l,
48
49
  operator: r,
49
50
  value: t
50
51
  }), this.$props.filter && this.$props.filter.filters && (this.$props.filter.filters || []).forEach((d) => {
51
- const f = d;
52
- f && f.field !== i && o.push(f);
52
+ const p = d;
53
+ p && p.field !== l && o.push(p);
53
54
  });
54
- const h = o.length > 0 ? {
55
+ const u = o.length > 0 ? {
55
56
  logic: "and",
56
57
  filters: o
57
58
  } : null;
58
- this.$emit("filterchange", h, s);
59
+ this.$emit("filterchange", u, s);
59
60
  }
60
61
  },
61
62
  setup() {
@@ -64,68 +65,69 @@ const Q = /* @__PURE__ */ z({
64
65
  };
65
66
  },
66
67
  render() {
67
- const t = A(this), r = this.$props.filter && this.$props.filter.filters || [], i = (e, l = null) => {
68
+ const t = N(this), r = this.$props.filter && this.$props.filter.filters || [], l = (e, i = null) => {
68
69
  const n = r.filter((a) => a.field === e)[0];
69
- return n ? n.value : l;
70
+ return n ? n.value : i;
70
71
  }, s = (e) => {
71
- const l = r.filter((n) => n.field === e)[0];
72
- return l ? l.operator : null;
72
+ const i = r.filter((n) => n.field === e)[0];
73
+ return i ? i.operator : null;
73
74
  };
74
- let o = 0, h = -1;
75
- const p = E({
75
+ let o = 0, u = -1;
76
+ const f = B({
76
77
  cellsToRender: this.$props.cellsToRender || [],
77
78
  columns: this.$props.columns,
78
79
  rowIndex: 0,
79
80
  // FilterRow is always a single row
80
- enableVirtualization: this.$props.columnVirtualization
81
- }), d = p.columnsToRender.length > 0, f = this.$props.columns.filter((e) => e.children.length === 0), I = d ? p.columnsToRender.map((e) => this.$props.columns[e]).filter((e) => e.children.length === 0) : f, C = d ? p.colSpans : [], S = I.map(function(e, l) {
81
+ enableVirtualization: this.$props.columnVirtualization,
82
+ columnsMap: this.$props.columnsMap
83
+ }), d = f.columnsToRender.length > 0, p = this.$props.columns.filter((e) => e.children.length === 0), I = d ? f.columnsToRender.map((e) => this.$props.columns[e]).filter((e) => e.children.length === 0) : p, m = d ? f.colSpans : [], S = I.map(function(e, i) {
82
84
  const n = (b) => {
83
85
  this.setFilter(b.value, b.operator, e.field, b);
84
- }, a = O(e.filter), u = (e.title || e.field) + " " + V(a, t), g = c(N, {
86
+ }, a = O(e.filter), h = (e.title || e.field) + " " + V(a, t), g = c(A, {
85
87
  grid: this.$props.grid,
86
88
  field: e.field,
87
89
  title: e.filterTitle,
88
- value: i(e.field, a === "text" ? "" : null),
90
+ value: l(e.field, a === "text" ? "" : null),
89
91
  operator: s(e.field),
90
- operators: $(this.$props.filterOperators[a] || [], t),
91
- booleanValues: $(w, t),
92
+ operators: R(this.$props.filterOperators[a] || [], t),
93
+ booleanValues: R(w, t),
92
94
  filterType: a,
93
95
  onChange: n,
94
96
  render: e.filterCell || this.$props.cellRender,
95
- "aria-label": u,
97
+ "aria-label": h,
96
98
  size: this.$props.size
97
- }, null), m = e.declarationIndex >= 0 ? ++h : --o, F = {
98
- ariaLabel: e.filterable ? t.toLanguageString(v, B[v]) : void 0,
99
+ }, null), C = e.declarationIndex >= 0 ? ++u : --o, F = {
100
+ ariaLabel: e.filterable ? t.toLanguageString(v, M[v]) : void 0,
99
101
  ariaColumnIndex: e.ariaColumnIndex
100
- }, x = e.locked && e.left !== void 0 ? this.$props.isRtl ? {
102
+ }, $ = e.locked && e.left !== void 0 ? this.$props.isRtl ? {
101
103
  left: e.right + "px",
102
104
  right: e.left + "px"
103
105
  } : {
104
106
  left: e.left + "px",
105
107
  right: e.right + "px"
106
- } : void 0, R = d && C[l] !== void 0 ? C[l] : void 0, T = c(k, {
107
- key: m,
108
+ } : void 0, x = d && m[i] !== void 0 ? m[i] : void 0, T = c(y, {
109
+ key: C,
108
110
  role: "gridcell",
109
- columnId: y.getFilterColumnId(e.id),
111
+ columnId: k.getFilterColumnId(e.id),
110
112
  navigatable: e.navigatable,
111
- style: x,
113
+ style: $,
112
114
  class: this.headerCellClassName(e.field, e.locked) || void 0,
113
115
  ariaColumnIndex: F.ariaColumnIndex,
114
- "aria-label": u,
115
- colSpan: R
116
- }, H(g) ? g : {
116
+ "aria-label": h,
117
+ colSpan: x
118
+ }, E(g) ? g : {
117
119
  default: () => [g]
118
120
  });
119
- return e.filterable && T || c(k, {
120
- key: m,
121
+ return e.filterable && T || c(y, {
122
+ key: C,
121
123
  role: "gridcell",
122
- columnId: y.getFilterColumnId(e.id),
124
+ columnId: k.getFilterColumnId(e.id),
123
125
  navigatable: e.navigatable,
124
- style: x,
126
+ style: $,
125
127
  class: this.headerCellClassName(e.field, e.locked) || void 0,
126
128
  ariaColumnIndex: F.ariaColumnIndex,
127
- "aria-label": u,
128
- colSpan: R
129
+ "aria-label": h,
130
+ colSpan: x
129
131
  }, null);
130
132
  }, this);
131
133
  return c("tr", {
@@ -56,7 +56,8 @@ declare const Header: import('vue').DefineComponent<import('vue').ExtractPropTyp
56
56
  }, {
57
57
  setScrollLeft(scrollLeft: number): void;
58
58
  setWidth(width: number): void;
59
- }, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
59
+ handleHeaderScroll(e: Event): void;
60
+ }, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, "headerscroll"[], "headerscroll", import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
60
61
  staticHeaders: PropType<boolean>;
61
62
  headerRow: PropType<any>;
62
63
  columnResize: PropType<{
@@ -66,5 +67,7 @@ declare const Header: import('vue').DefineComponent<import('vue').ExtractPropTyp
66
67
  cols: PropType<Element[]>;
67
68
  size: PropType<string>;
68
69
  draggable: PropType<boolean>;
69
- }>> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
70
+ }>> & Readonly<{
71
+ onHeaderscroll?: (...args: any[]) => any;
72
+ }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
70
73
  export { Header };
package/header/Header.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 r=require("vue"),l=require("../utils/main.js"),t=require("@progress/kendo-vue-common"),o=r.defineComponent({props:{staticHeaders:Boolean,headerRow:Object,columnResize:Object,cols:Array,size:String,draggable:Boolean},data(){return{divStyle:{},element:null,headerWrap:null,table:null}},computed:{wrapperClass(){return{"k-grid-header":!0,"k-grid-draggable-header":this.$props.draggable}},tableClass(){const{size:e}=this.$props;return{"k-table":!0,"k-grid-header-table":!0,[`k-table-${t.kendoThemeMaps.sizeMap[e]||e}`]:e}}},mounted(){this.headerWrap=t.getRef(this,"headerWrap"),this.table=t.getRef(this,"table"),this.$props.columnResize.colGroupHeader=t.getRef(this,"colGroupHeader");const e=l.isRtl(this.$el);this.$props.columnResize&&this.$props.columnResize.setIsRtl(e)},methods:{setScrollLeft(e){this.headerWrap&&(this.headerWrap.scrollLeft=e)},setWidth(e){this.table&&(this.table.style.width=e+"px")}},setup(){const e=r.ref(null),s=r.ref(null),a=r.ref(null);return{headerWrapRef:e,tableRef:s,colGroupHeaderRef:a}},render(){return this.$props.staticHeaders?r.createVNode("div",{class:this.wrapperClass},[r.createVNode("div",{ref:t.setRef(this,"headerWrap"),class:"k-grid-header-wrap"},[r.createVNode("table",{class:this.tableClass,ref:t.setRef(this,"table"),role:"none"},[r.createVNode("colgroup",{ref:t.setRef(this,"colGroupHeader")},[this.$props.cols]),this.$props.headerRow])])]):this.$props.headerRow}});exports.Header=o;
8
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("vue"),l=require("../utils/main.js"),t=require("@progress/kendo-vue-common"),o=r.defineComponent({props:{staticHeaders:Boolean,headerRow:Object,columnResize:Object,cols:Array,size:String,draggable:Boolean},emits:["headerscroll"],data(){return{divStyle:{},element:null,headerWrap:null,table:null}},computed:{wrapperClass(){return{"k-grid-header":!0,"k-grid-draggable-header":this.$props.draggable}},tableClass(){const{size:e}=this.$props;return{"k-table":!0,"k-grid-header-table":!0,[`k-table-${t.kendoThemeMaps.sizeMap[e]||e}`]:e}}},mounted(){this.headerWrap=t.getRef(this,"headerWrap"),this.table=t.getRef(this,"table"),this.$props.columnResize.colGroupHeader=t.getRef(this,"colGroupHeader");const e=l.isRtl(this.$el);this.$props.columnResize&&this.$props.columnResize.setIsRtl(e)},methods:{setScrollLeft(e){this.headerWrap&&(this.headerWrap.scrollLeft=e)},setWidth(e){this.table&&(this.table.style.width=e+"px")},handleHeaderScroll(e){this.$emit("headerscroll",e)}},setup(){const e=r.ref(null),s=r.ref(null),a=r.ref(null);return{headerWrapRef:e,tableRef:s,colGroupHeaderRef:a}},render(){return this.$props.staticHeaders?r.createVNode("div",{class:this.wrapperClass},[r.createVNode("div",{ref:t.setRef(this,"headerWrap"),class:"k-grid-header-wrap",onScroll:this.handleHeaderScroll},[r.createVNode("table",{class:this.tableClass,ref:t.setRef(this,"table"),role:"none"},[r.createVNode("colgroup",{ref:t.setRef(this,"colGroupHeader")},[this.$props.cols]),this.$props.headerRow])])]):this.$props.headerRow}});exports.Header=o;
package/header/Header.mjs CHANGED
@@ -6,8 +6,8 @@
6
6
  *-------------------------------------------------------------------------------------------
7
7
  */
8
8
  import { defineComponent as i, createVNode as r, ref as t } from "vue";
9
- import { isRtl as p } from "../utils/main.mjs";
10
- import { setRef as s, getRef as a, kendoThemeMaps as h } from "@progress/kendo-vue-common";
9
+ import { isRtl as h } from "../utils/main.mjs";
10
+ import { setRef as s, getRef as a, kendoThemeMaps as d } from "@progress/kendo-vue-common";
11
11
  const u = /* @__PURE__ */ i({
12
12
  props: {
13
13
  staticHeaders: Boolean,
@@ -17,6 +17,7 @@ const u = /* @__PURE__ */ i({
17
17
  size: String,
18
18
  draggable: Boolean
19
19
  },
20
+ emits: ["headerscroll"],
20
21
  data() {
21
22
  return {
22
23
  divStyle: {},
@@ -39,13 +40,13 @@ const u = /* @__PURE__ */ i({
39
40
  return {
40
41
  "k-table": !0,
41
42
  "k-grid-header-table": !0,
42
- [`k-table-${h.sizeMap[e] || e}`]: e
43
+ [`k-table-${d.sizeMap[e] || e}`]: e
43
44
  };
44
45
  }
45
46
  },
46
47
  mounted() {
47
48
  this.headerWrap = a(this, "headerWrap"), this.table = a(this, "table"), this.$props.columnResize.colGroupHeader = a(this, "colGroupHeader");
48
- const e = p(this.$el);
49
+ const e = h(this.$el);
49
50
  this.$props.columnResize && this.$props.columnResize.setIsRtl(e);
50
51
  },
51
52
  methods: {
@@ -54,6 +55,9 @@ const u = /* @__PURE__ */ i({
54
55
  },
55
56
  setWidth(e) {
56
57
  this.table && (this.table.style.width = e + "px");
58
+ },
59
+ handleHeaderScroll(e) {
60
+ this.$emit("headerscroll", e);
57
61
  }
58
62
  },
59
63
  setup() {
@@ -69,7 +73,8 @@ const u = /* @__PURE__ */ i({
69
73
  class: this.wrapperClass
70
74
  }, [r("div", {
71
75
  ref: s(this, "headerWrap"),
72
- class: "k-grid-header-wrap"
76
+ class: "k-grid-header-wrap",
77
+ onScroll: this.handleHeaderScroll
73
78
  }, [r("table", {
74
79
  class: this.tableClass,
75
80
  ref: s(this, "table"),
@@ -24,6 +24,7 @@ export interface HeaderRowProps extends ColumnDraggableProps {
24
24
  sortable?: GridSortSettings;
25
25
  groupable?: any;
26
26
  reorderable?: boolean;
27
+ headerSelectionValue?: boolean | any[];
27
28
  onSortChange?: (descriptors: SortDescriptor[], e: any) => void;
28
29
  sort?: any;
29
30
  filter?: CompositeFilterDescriptor;
@@ -76,6 +77,7 @@ declare const HeaderRow: import('vue').DefineComponent<import('vue').ExtractProp
76
77
  columnMenuIcon: PropType<SVGIcon>;
77
78
  isRtl: PropType<boolean>;
78
79
  isColCountDefined: PropType<boolean>;
80
+ headerSelectionValue: PropType<boolean | any[]>;
79
81
  columnsInitial: PropType<ExtendedColumnProps[]>;
80
82
  onSortChange: PropType<(descriptors: SortDescriptor[], e: any) => void>;
81
83
  onFilterChange: PropType<Function>;
@@ -127,6 +129,7 @@ declare const HeaderRow: import('vue').DefineComponent<import('vue').ExtractProp
127
129
  columnMenuIcon: PropType<SVGIcon>;
128
130
  isRtl: PropType<boolean>;
129
131
  isColCountDefined: PropType<boolean>;
132
+ headerSelectionValue: PropType<boolean | any[]>;
130
133
  columnsInitial: PropType<ExtendedColumnProps[]>;
131
134
  onSortChange: PropType<(descriptors: SortDescriptor[], e: any) => void>;
132
135
  onFilterChange: PropType<Function>;
@@ -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 r=require("vue"),x=require("../interfaces/GridSortSettings.js"),B=require("../drag/ColumnResizer.js"),K=require("../drag/ColumnDraggable.js"),P=require("./GridHeaderCell.js"),_=require("../columnMenu/ColumnMenu.js"),d=require("@progress/kendo-vue-common"),G=require("@progress/kendo-vue-data-tools"),o=require("../messages/main.js"),E=require("@progress/kendo-vue-intl"),V=require("@progress/kendo-svg-icons"),U=require("../utils/virtualColumns.js");function H(n){return typeof n=="function"||Object.prototype.toString.call(n)==="[object Object]"&&!r.isVNode(n)}const R={none:"none",asc:"ascending",desc:"descending"},J={true:{asc:"desc",desc:"","":"asc"},false:{asc:"desc",desc:"asc","":"asc"}},Q=r.defineComponent({name:"KendoHeaderRow",props:{grid:Object,cellRender:[String,Function,Object],groupable:[Boolean,Object],reorderable:Boolean,sortable:[Boolean,Object],sort:{type:Array},filter:Object,filterable:Boolean,filterOperators:Object,filterChange:Function,filterRow:Object,columns:Array,cellsToRender:Array,columnVirtualization:Boolean,columnsMap:Array,columnResize:Object,columnMenu:[Boolean,String,Function,Object],columnMenuAnimate:{type:[Boolean,Object],default:function(){return!0}},columnMenuIcon:Object,isRtl:Boolean,isColCountDefined:Boolean,columnsInitial:Array,onSortChange:Function,onFilterChange:Function,onSelectionchange:Function,onPressHandler:Function,onDragHandler:Function,onReleaseHandler:Function},inject:{onNavFocus:{default:d.noop},kendoLocalizationService:{default:null}},data(){return{columnMenuOpened:{}}},created(){this.serviceIndex=0,this.index=-1,this._element=null,this.cellClick=this.cellClick.bind(this)},methods:{pressHandler(n,t){this.$emit("pressHandler",n,t)},dragHandler(n,t){this.$emit("dragHandler",n,t)},releaseHandler(n){this.$emit("releaseHandler",n)},selectionChangeHandler(n){this.$emit("selectionchange",n)},cellClick(n,t){if(n.preventDefault(),!d.hasListener.call(this,"sortChange"))return;const{allowUnsort:f,mode:m}=x.normalize(this.$props.sortable||!1,t.sortable||!1),i=(this.$props.sort||[]).filter(s=>s.field===t.field)[0],u=J[f][i&&i.dir||""],g=m==="single"?[]:(this.$props.sort||[]).filter(s=>s.field!==t.field);u!==""&&t.field&&g.push({field:t.field,dir:u}),this.sortChangeHandler(g,{event:n,field:t.field})},sortChangeHandler(n,t){this.$emit("sortChange",n,t)},filterChangeHandler(n,t){this.$emit("filterChange",n,t)},cellClass(n,t,f){const m=t?" "+t:"";let i="k-header"+(f?" k-grid-header-sticky":"")+m;return this.$props.sort&&this.$props.sort.filter(u=>u.field===n).length>0&&(i+=" k-sorted"),i},cellKeyDown(n,t){n.defaultPrevented||(n.keyCode===d.Keys.enter&&this.cellClick(n,t),n.altKey&&n.keyCode===d.Keys.down&&t.field&&(n.preventDefault(),this.columnMenuOpened={[t.field]:!0}))},getTemplate(n){return d.templateRendering.call(this.$props.grid,n,d.getListeners.call(this.$props.grid))},columnMenuClose(){this.onNavFocus({}),this.columnMenuOpened={}}},computed:{element(){return this._element},theadClasses(){return{"k-table-thead":!0}}},render(){const n=E.provideLocalizationService(this),t=n.toLanguageString(o.sortableColumnAriaLabel,o.messages[o.sortableColumnAriaLabel]),f=n.toLanguageString(o.sortableColumnAscendingAriaLabel,o.messages[o.sortableColumnAscendingAriaLabel]),m=n.toLanguageString(o.sortableColumnDescendingAriaLabel,o.messages[o.sortableColumnDescendingAriaLabel]);this.serviceIndex=0,this.index=-1;const i=this.$props.columnsMap&&this.$props.columnsMap.length===1,u=this.$props.columnVirtualization&&i,g=function(s,b){const a=U.getVirtualHeaderCellsToRender({cellsToRender:this.$props.cellsToRender||[],columns:this.$props.columns,rowIndex:b,enableVirtualization:u}),y=a.columnsToRender.length>0,O=y?a.columnsToRender:s,I=y?a.colSpans:[];return O.map(function(L,A){var M;const e=this.$props.columns[L],C=this.$props.sortable&&e.sortable,k=this.$props.sort?this.$props.sort.findIndex(l=>l.field===e.field):-1,S=k>=0&&this.$props.sort[k].dir||"none",p=function(l){if(!this.$props.sort)return null;const $=l>=0?this.$props.sort[l].dir:"";return l>=0&&[r.createVNode("span",{key:1,class:"k-sort-icon"},[r.createVNode(d.Icon,{name:"sort-"+$+"-small",icon:$==="asc"?V.sortAscSmallIcon:V.sortDescSmallIcon},null)]),this.$props.sort.length>1&&r.createVNode("span",{key:2,class:"k-sort-icon"},[r.createVNode("span",{class:"k-sort-order"},[l+1])])]}.call(this,k),c=e.columnMenu||e.columnMenu===!1?e.columnMenu:this.$props.columnMenu,z=e.menuIcon||this.$props.columnMenuIcon,D=(e.kFirst?"k-first ":"")+this.cellClass(e.field,e.headerClassName,e.locked)+(c?" k-filterable":""),N=!c||typeof c=="boolean"?!!c:this.getTemplate(c),v=e.locked&&e.left!==void 0?this.$props.isRtl?{left:e.right+"px",right:e.left+"px"}:{left:e.left+"px",right:e.right+"px"}:void 0,w=R[S]==="none"?t:R[S]==="ascending"?f:m;let h=e.isAccessible?{ariaSort:R[S],ariaLabel:w,role:"columnheader",ariaColumnIndex:this.$props.isColCountDefined?this.$props.columnsInitial.findIndex(l=>l.field===e.field)+1:void 0,ariaSelected:!1,ariaHaspopup:c?"menu":this.$props.filterable&&e.filterable?"dialog":void 0}:{role:"columnheader"};const j=e.declarationIndex>=0?++this.index:--this.serviceIndex,F=e.columnMenuOpened!==void 0?e.columnMenuOpened:this.columnMenuOpened[e.field],T=(M=I[A])!=null?M:e.headerColSpan;return r.createVNode(G.HeaderThElement,{ariaSort:C?h.ariaSort:void 0,ariaLabel:C?h.ariaLabel:void 0,role:h.role,ariaColumnIndex:h.ariaColumnIndex,ariaSelected:h.ariaSelected,ariaHaspopup:h.ariaHaspopup,key:j,colSpan:T,rowSpan:e.rowSpan,class:D,style:v,columnId:e.id,navigatable:e.navigatable,onKeydown:l=>this.cellKeyDown(l,e)},{default:()=>[[e.children.length===0&&c&&r.createVNode(_.ColumnMenu,{key:0,column:{field:e.field,filter:e.filter},opened:F,animate:this.$props.columnMenuAnimate,sortable:C,sort:this.$props.sort,onClose:this.columnMenuClose,onSortchange:this.sortChangeHandler,filter:this.$props.filter,filterable:this.$props.filterable&&e.filterable,filterOperators:this.$props.filterOperators,onFilterchange:this.filterChangeHandler,render:N,columnMenuIcon:z},null),e.internalHeaderCell&&r.createVNode("span",{class:"k-cell-inner"},[r.createVNode(e.internalHeaderCell,{key:1,field:e.field,sortable:C,onHeadercellclick:l=>this.cellClick(l,e),onSelectionchange:this.selectionChangeHandler,selectionValue:e.headerSelectionValue,title:e.title,render:(e.headerCell||this.$props.cellRender)&&this.getTemplate(e.headerCell||this.$props.cellRender)},H(p)?p:{default:()=>[p]})])||r.createVNode("span",{class:"k-cell-inner"},[r.createVNode(P.GridHeaderCell,{key:1,field:e.field,sortable:C,onHeadercellclick:l=>this.cellClick(l,e),selectionValue:e.headerSelectionValue,title:e.title,render:(e.headerCell||this.$props.cellRender)&&this.getTemplate(e.headerCell||this.$props.cellRender)},H(p)?p:{default:()=>[p]})]),this.$props.columnResize&&this.$props.columnResize.resizable&&e.resizable&&r.createVNode(B.ColumnResizer,{key:2,onResize:(l,$,q)=>this.$props.columnResize&&this.$props.columnResize.dragHandler(l,e,$,q)},null)]]})},this)};return r.createVNode("thead",{role:"rowgroup",class:this.theadClasses,"data-keyboardnavheader":!0},[this.$props.columnsMap.map(function(s,b){let a;return(this.$props.groupable||this.$props.reorderable)&&r.createVNode(K.ColumnDraggable,{key:b,onPressHandler:this.pressHandler,onDragHandler:this.dragHandler,onReleaseHandler:this.releaseHandler},H(a=g.call(this,s,b))?a:{default:()=>[a]})||r.createVNode("tr",{class:"k-table-row",role:"row","aria-rowindex":this.columnsMap.length},[g.call(this,s,b)])},this),this.$props.filterRow])}});exports.HeaderRow=Q;
8
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("vue"),K=require("../interfaces/GridSortSettings.js"),P=require("../drag/ColumnResizer.js"),_=require("../drag/ColumnDraggable.js"),G=require("./GridHeaderCell.js"),E=require("../columnMenu/ColumnMenu.js"),p=require("@progress/kendo-vue-common"),U=require("@progress/kendo-vue-data-tools"),s=require("../messages/main.js"),W=require("@progress/kendo-vue-intl"),O=require("@progress/kendo-svg-icons"),J=require("../utils/virtualColumns.js");function y(n){return typeof n=="function"||Object.prototype.toString.call(n)==="[object Object]"&&!l.isVNode(n)}const R={none:"none",asc:"ascending",desc:"descending"},Q={true:{asc:"desc",desc:"","":"asc"},false:{asc:"desc",desc:"asc","":"asc"}},X=l.defineComponent({name:"KendoHeaderRow",props:{grid:Object,cellRender:[String,Function,Object],groupable:[Boolean,Object],reorderable:Boolean,sortable:[Boolean,Object],sort:{type:Array},filter:Object,filterable:Boolean,filterOperators:Object,filterChange:Function,filterRow:Object,columns:Array,cellsToRender:Array,columnVirtualization:Boolean,columnsMap:Array,columnResize:Object,columnMenu:[Boolean,String,Function,Object],columnMenuAnimate:{type:[Boolean,Object],default:function(){return!0}},columnMenuIcon:Object,isRtl:Boolean,isColCountDefined:Boolean,headerSelectionValue:[Boolean,Array],columnsInitial:Array,onSortChange:Function,onFilterChange:Function,onSelectionchange:Function,onPressHandler:Function,onDragHandler:Function,onReleaseHandler:Function},inject:{onNavFocus:{default:p.noop},kendoLocalizationService:{default:null}},data(){return{columnMenuOpened:{}}},created(){this.serviceIndex=0,this.index=-1,this._element=null,this.cellClick=this.cellClick.bind(this)},methods:{pressHandler(n,t){this.$emit("pressHandler",n,t)},dragHandler(n,t){this.$emit("dragHandler",n,t)},releaseHandler(n){this.$emit("releaseHandler",n)},selectionChangeHandler(n){this.$emit("selectionchange",n)},cellClick(n,t){if(n.preventDefault(),!p.hasListener.call(this,"sortChange"))return;const{allowUnsort:m,mode:g}=K.normalize(this.$props.sortable||!1,t.sortable||!1),a=(this.$props.sort||[]).filter(o=>o.field===t.field)[0],c=Q[m][a&&a.dir||""],d=g==="single"?[]:(this.$props.sort||[]).filter(o=>o.field!==t.field);c!==""&&t.field&&d.push({field:t.field,dir:c}),this.sortChangeHandler(d,{event:n,field:t.field})},sortChangeHandler(n,t){this.$emit("sortChange",n,t)},filterChangeHandler(n,t){this.$emit("filterChange",n,t)},cellClass(n,t,m){const g=t?" "+t:"";let a="k-header"+(m?" k-grid-header-sticky":"")+g;return this.$props.sort&&this.$props.sort.filter(c=>c.field===n).length>0&&(a+=" k-sorted"),a},cellKeyDown(n,t){n.defaultPrevented||(n.keyCode===p.Keys.enter&&this.cellClick(n,t),n.altKey&&n.keyCode===p.Keys.down&&t.field&&(n.preventDefault(),this.columnMenuOpened={[t.field]:!0}))},getTemplate(n){return p.templateRendering.call(this.$props.grid,n,p.getListeners.call(this.$props.grid))},columnMenuClose(){this.onNavFocus({}),this.columnMenuOpened={}}},computed:{element(){return this._element},theadClasses(){return{"k-table-thead":!0}}},render(){const n=W.provideLocalizationService(this),t=n.toLanguageString(s.sortableColumnAriaLabel,s.messages[s.sortableColumnAriaLabel]),m=n.toLanguageString(s.sortableColumnAscendingAriaLabel,s.messages[s.sortableColumnAscendingAriaLabel]),g=n.toLanguageString(s.sortableColumnDescendingAriaLabel,s.messages[s.sortableColumnDescendingAriaLabel]);this.serviceIndex=0,this.index=-1;const a=this.$props.columnVirtualization,c=function(d,o){const i=J.getVirtualHeaderCellsToRender({cellsToRender:this.$props.cellsToRender||[],columns:this.$props.columns,rowIndex:o,enableVirtualization:a,columnsMap:this.$props.columnsMap}),M=a;let k=M&&i.columnsToRender?i.columnsToRender:d;const I=M?i.colSpans:[];return!k||k.length===0?[]:k.map(function(A,L){var V;const e=this.$props.columns[A],b=this.$props.sortable&&e.sortable,S=this.$props.sort?this.$props.sort.findIndex(r=>r.field===e.field):-1,H=S>=0&&this.$props.sort[S].dir||"none",h=function(r){if(!this.$props.sort)return null;const C=r>=0?this.$props.sort[r].dir:"";return r>=0&&[l.createVNode("span",{key:1,class:"k-sort-icon"},[l.createVNode(p.Icon,{name:"sort-"+C+"-small",icon:C==="asc"?O.sortAscSmallIcon:O.sortDescSmallIcon},null)]),this.$props.sort.length>1&&l.createVNode("span",{key:2,class:"k-sort-icon"},[l.createVNode("span",{class:"k-sort-order"},[r+1])])]}.call(this,S),u=e.columnMenu||e.columnMenu===!1?e.columnMenu:this.$props.columnMenu,z=e.menuIcon||this.$props.columnMenuIcon,D=(e.kFirst?"k-first ":"")+this.cellClass(e.field,e.headerClassName,e.locked)+(u?" k-filterable":""),N=!u||typeof u=="boolean"?!!u:this.getTemplate(u),v=i.skipOffset?{borderLeftWidth:"1px"}:void 0,w=e.locked&&e.left!==void 0?this.$props.isRtl?{left:e.right+"px",right:e.left+"px"}:{left:e.left+"px",right:e.right+"px"}:v,j=R[H]==="none"?t:R[H]==="ascending"?m:g;let f=e.isAccessible?{ariaSort:R[H],ariaLabel:j,role:"columnheader",ariaColumnIndex:this.$props.isColCountDefined?this.$props.columnsInitial.findIndex(r=>r.field===e.field)+1:void 0,ariaSelected:!1,ariaHaspopup:u?"menu":this.$props.filterable&&e.filterable?"dialog":void 0}:{role:"columnheader"};const F=e.declarationIndex>=0?++this.index:--this.serviceIndex,T=e.columnMenuOpened!==void 0?e.columnMenuOpened:this.columnMenuOpened[e.field],q=(V=I[L])!=null?V:e.headerColSpan;return l.createVNode(U.HeaderThElement,{ariaSort:b?f.ariaSort:void 0,ariaLabel:b?f.ariaLabel:void 0,role:f.role,ariaColumnIndex:f.ariaColumnIndex,ariaSelected:f.ariaSelected,ariaHaspopup:f.ariaHaspopup,key:F,colSpan:q,rowSpan:e.rowSpan,class:D,style:w,columnId:e.id,navigatable:e.navigatable,onKeydown:r=>this.cellKeyDown(r,e)},{default:()=>{var r,C;return[[e.children.length===0&&u&&l.createVNode(E.ColumnMenu,{key:0,column:{field:e.field,filter:e.filter},opened:T,animate:this.$props.columnMenuAnimate,sortable:b,sort:this.$props.sort,onClose:this.columnMenuClose,onSortchange:this.sortChangeHandler,filter:this.$props.filter,filterable:this.$props.filterable&&e.filterable,filterOperators:this.$props.filterOperators,onFilterchange:this.filterChangeHandler,render:N,columnMenuIcon:z},null),e.internalHeaderCell&&l.createVNode("span",{class:"k-cell-inner"},[l.createVNode(e.internalHeaderCell,{key:1,field:e.field,sortable:b,onHeadercellclick:$=>this.cellClick($,e),onSelectionchange:this.selectionChangeHandler,selectionValue:(r=e.headerSelectionValue)!=null?r:this.$props.headerSelectionValue,title:e.title,render:(e.headerCell||this.$props.cellRender)&&this.getTemplate(e.headerCell||this.$props.cellRender)},y(h)?h:{default:()=>[h]})])||l.createVNode("span",{class:"k-cell-inner"},[l.createVNode(G.GridHeaderCell,{key:1,field:e.field,sortable:b,onHeadercellclick:$=>this.cellClick($,e),selectionValue:(C=e.headerSelectionValue)!=null?C:this.$props.headerSelectionValue,title:e.title,render:(e.headerCell||this.$props.cellRender)&&this.getTemplate(e.headerCell||this.$props.cellRender)},y(h)?h:{default:()=>[h]})]),this.$props.columnResize&&this.$props.columnResize.resizable&&e.resizable&&l.createVNode(P.ColumnResizer,{key:2,onResize:($,x,B)=>this.$props.columnResize&&this.$props.columnResize.dragHandler($,e,x,B)},null)]]}})},this)};return l.createVNode("thead",{role:"rowgroup",class:this.theadClasses,"data-keyboardnavheader":!0},[this.$props.columnsMap.map(function(d,o){let i;return(this.$props.groupable||this.$props.reorderable)&&l.createVNode(_.ColumnDraggable,{key:o,onPressHandler:this.pressHandler,onDragHandler:this.dragHandler,onReleaseHandler:this.releaseHandler},y(i=c.call(this,d,o))?i:{default:()=>[i]})||l.createVNode("tr",{class:"k-table-row",role:"row","aria-rowindex":o+1},[c.call(this,d,o)])},this),this.$props.filterRow])}});exports.HeaderRow=X;