@progress/kendo-vue-grid 7.1.0-develop.7 → 8.0.0-develop.2
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.
- package/Grid.js +1 -1
- package/Grid.mjs +220 -214
- package/GridSearchBox.js +1 -1
- package/GridSearchBox.mjs +18 -17
- package/GridState.js +1 -1
- package/GridState.mjs +2 -2
- package/common.js +1 -1
- package/common.mjs +1 -1
- package/dist/cdn/js/kendo-vue-grid.js +1 -1
- package/footer/FooterRow.js +1 -1
- package/footer/FooterRow.mjs +6 -6
- package/header/FilterRow.js +1 -1
- package/header/FilterRow.mjs +71 -60
- package/header/HeaderRow.js +1 -1
- package/header/HeaderRow.mjs +99 -89
- package/index.d.mts +21 -20
- package/index.d.ts +21 -20
- package/package-metadata.js +1 -1
- package/package-metadata.mjs +2 -2
- package/package.json +12 -12
- package/rows/GridRow.js +1 -1
- package/rows/GridRow.mjs +13 -10
- package/utils/main.js +1 -1
- package/utils/main.mjs +171 -146
- package/utils/virtualColumns.js +1 -1
- package/utils/virtualColumns.mjs +40 -20
package/footer/FooterRow.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"),
|
|
8
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("vue"),d=require("@progress/kendo-vue-common"),i=require("../utils/main.js"),a=r.defineComponent({name:"FooterRow",props:{isRtl:Boolean,columns:Array,rowIndex:Number},methods:{columnStyles(t){return t.locked&&t.left!==void 0?this.$props.isRtl?{left:t.right+"px",right:t.left+"px"}:{left:t.left+"px",right:t.right+"px"}:void 0}},render(){const t=function(e,s){let o=null;const l=e.locked&&e.left!==void 0?"k-grid-footer-sticky":"",n=e.footerClassName?`k-table-td ${e.footerClassName} ${l}`:"k-table-td "+l;return o=d.getTemplate.call(this,{h:r.h,template:e.footerCell,defaultRendering:null,additionalProps:{field:e.field,colSpan:e.colSpan!==1?e.colSpan:void 0,defaultStyle:this.columnStyles(e)}}),r.createVNode("td",{key:s,colspan:e.colSpan!==1?e.colSpan:void 0,style:this.columnStyles(e),class:n,role:"gridcell"},[o])};return r.createVNode("tr",{class:"k-table-row",role:"row","aria-rowIndex":this.$props.rowIndex},[i.footerColumns(this.$props.columns).map(t,this)])}});exports.FooterRow=a;
|
package/footer/FooterRow.mjs
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Licensed under commercial license. See LICENSE.md in the package root for more information
|
|
6
6
|
*-------------------------------------------------------------------------------------------
|
|
7
7
|
*/
|
|
8
|
-
import { defineComponent as i, createVNode as l, h as
|
|
8
|
+
import { defineComponent as i, createVNode as l, h as a } from "vue";
|
|
9
9
|
import { getTemplate as n } from "@progress/kendo-vue-common";
|
|
10
10
|
import { footerColumns as p } from "../utils/main.mjs";
|
|
11
11
|
const g = /* @__PURE__ */ i({
|
|
@@ -17,21 +17,21 @@ const g = /* @__PURE__ */ i({
|
|
|
17
17
|
},
|
|
18
18
|
methods: {
|
|
19
19
|
columnStyles(t) {
|
|
20
|
-
return t.left !== void 0 ? this.$props.isRtl ? {
|
|
20
|
+
return t.locked && t.left !== void 0 ? this.$props.isRtl ? {
|
|
21
21
|
left: t.right + "px",
|
|
22
22
|
right: t.left + "px"
|
|
23
23
|
} : {
|
|
24
24
|
left: t.left + "px",
|
|
25
25
|
right: t.right + "px"
|
|
26
|
-
} :
|
|
26
|
+
} : void 0;
|
|
27
27
|
}
|
|
28
28
|
},
|
|
29
29
|
render() {
|
|
30
30
|
const t = function(e, s) {
|
|
31
31
|
let r = null;
|
|
32
|
-
const o = e.locked && e.left !== void 0 ? "k-grid-footer-sticky" : "",
|
|
32
|
+
const o = e.locked && e.left !== void 0 ? "k-grid-footer-sticky" : "", d = e.footerClassName ? `k-table-td ${e.footerClassName} ${o}` : "k-table-td " + o;
|
|
33
33
|
return r = n.call(this, {
|
|
34
|
-
h:
|
|
34
|
+
h: a,
|
|
35
35
|
template: e.footerCell,
|
|
36
36
|
defaultRendering: null,
|
|
37
37
|
additionalProps: {
|
|
@@ -43,7 +43,7 @@ const g = /* @__PURE__ */ i({
|
|
|
43
43
|
key: s,
|
|
44
44
|
colspan: e.colSpan !== 1 ? e.colSpan : void 0,
|
|
45
45
|
style: this.columnStyles(e),
|
|
46
|
-
class:
|
|
46
|
+
class: d,
|
|
47
47
|
role: "gridcell"
|
|
48
48
|
}, [r]);
|
|
49
49
|
};
|
package/header/FilterRow.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"),
|
|
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;
|
package/header/FilterRow.mjs
CHANGED
|
@@ -5,16 +5,17 @@
|
|
|
5
5
|
* Licensed under commercial license. See LICENSE.md in the package root for more information
|
|
6
6
|
*-------------------------------------------------------------------------------------------
|
|
7
7
|
*/
|
|
8
|
-
import { defineComponent as
|
|
9
|
-
import { getFilterType as
|
|
10
|
-
import { GridFilterCell as
|
|
11
|
-
import { provideLocalizationService as
|
|
12
|
-
import { filterAriaLabel as
|
|
13
|
-
import { HeaderTdElement as
|
|
14
|
-
|
|
15
|
-
|
|
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) {
|
|
16
|
+
return typeof t == "function" || Object.prototype.toString.call(t) === "[object Object]" && !j(t);
|
|
16
17
|
}
|
|
17
|
-
const
|
|
18
|
+
const Q = /* @__PURE__ */ z({
|
|
18
19
|
name: "kendoFilterRow",
|
|
19
20
|
props: {
|
|
20
21
|
grid: Object,
|
|
@@ -26,6 +27,8 @@ const B = /* @__PURE__ */ I({
|
|
|
26
27
|
isRtl: Boolean,
|
|
27
28
|
ariaRowIndex: Number,
|
|
28
29
|
size: String,
|
|
30
|
+
cellsToRender: Array,
|
|
31
|
+
columnVirtualization: Boolean,
|
|
29
32
|
onFilterchange: Function
|
|
30
33
|
},
|
|
31
34
|
inject: {
|
|
@@ -34,96 +37,104 @@ const B = /* @__PURE__ */ I({
|
|
|
34
37
|
}
|
|
35
38
|
},
|
|
36
39
|
methods: {
|
|
37
|
-
headerCellClassName(t,
|
|
38
|
-
let
|
|
39
|
-
return this.$props.sort && this.$props.sort.filter((s) => s.field === t).length > 0 && (
|
|
40
|
+
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;
|
|
40
43
|
},
|
|
41
|
-
setFilter(t,
|
|
42
|
-
const
|
|
43
|
-
(t !== "" && t !== null ||
|
|
44
|
-
field:
|
|
45
|
-
operator:
|
|
44
|
+
setFilter(t, r, i, s) {
|
|
45
|
+
const o = [];
|
|
46
|
+
(t !== "" && t !== null || r !== "") && o.push({
|
|
47
|
+
field: i,
|
|
48
|
+
operator: r,
|
|
46
49
|
value: t
|
|
47
|
-
}), this.$props.filter && this.$props.filter.filters && (this.$props.filter.filters || []).forEach((
|
|
48
|
-
const
|
|
49
|
-
|
|
50
|
+
}), 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);
|
|
50
53
|
});
|
|
51
|
-
const
|
|
54
|
+
const h = o.length > 0 ? {
|
|
52
55
|
logic: "and",
|
|
53
|
-
filters:
|
|
56
|
+
filters: o
|
|
54
57
|
} : null;
|
|
55
|
-
this.$emit("filterchange",
|
|
58
|
+
this.$emit("filterchange", h, s);
|
|
56
59
|
}
|
|
57
60
|
},
|
|
58
61
|
setup() {
|
|
59
62
|
return {
|
|
60
|
-
kendoLocalizationService:
|
|
63
|
+
kendoLocalizationService: L("kendoLocalizationService", {})
|
|
61
64
|
};
|
|
62
65
|
},
|
|
63
66
|
render() {
|
|
64
|
-
const t =
|
|
65
|
-
const
|
|
66
|
-
return
|
|
67
|
+
const t = A(this), r = this.$props.filter && this.$props.filter.filters || [], i = (e, l = null) => {
|
|
68
|
+
const n = r.filter((a) => a.field === e)[0];
|
|
69
|
+
return n ? n.value : l;
|
|
67
70
|
}, s = (e) => {
|
|
68
|
-
const
|
|
69
|
-
return
|
|
71
|
+
const l = r.filter((n) => n.field === e)[0];
|
|
72
|
+
return l ? l.operator : null;
|
|
70
73
|
};
|
|
71
|
-
let
|
|
72
|
-
const
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
74
|
+
let o = 0, h = -1;
|
|
75
|
+
const p = E({
|
|
76
|
+
cellsToRender: this.$props.cellsToRender || [],
|
|
77
|
+
columns: this.$props.columns,
|
|
78
|
+
rowIndex: 0,
|
|
79
|
+
// 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) {
|
|
82
|
+
const n = (b) => {
|
|
83
|
+
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, {
|
|
76
85
|
grid: this.$props.grid,
|
|
77
86
|
field: e.field,
|
|
78
87
|
title: e.filterTitle,
|
|
79
|
-
value:
|
|
88
|
+
value: i(e.field, a === "text" ? "" : null),
|
|
80
89
|
operator: s(e.field),
|
|
81
|
-
operators:
|
|
82
|
-
booleanValues:
|
|
83
|
-
filterType:
|
|
84
|
-
onChange:
|
|
90
|
+
operators: $(this.$props.filterOperators[a] || [], t),
|
|
91
|
+
booleanValues: $(w, t),
|
|
92
|
+
filterType: a,
|
|
93
|
+
onChange: n,
|
|
85
94
|
render: e.filterCell || this.$props.cellRender,
|
|
86
|
-
"aria-label":
|
|
95
|
+
"aria-label": u,
|
|
87
96
|
size: this.$props.size
|
|
88
|
-
}, null),
|
|
89
|
-
ariaLabel: e.filterable ? t.toLanguageString(
|
|
97
|
+
}, null), m = e.declarationIndex >= 0 ? ++h : --o, F = {
|
|
98
|
+
ariaLabel: e.filterable ? t.toLanguageString(v, B[v]) : void 0,
|
|
90
99
|
ariaColumnIndex: e.ariaColumnIndex
|
|
91
|
-
},
|
|
100
|
+
}, x = e.locked && e.left !== void 0 ? this.$props.isRtl ? {
|
|
92
101
|
left: e.right + "px",
|
|
93
102
|
right: e.left + "px"
|
|
94
103
|
} : {
|
|
95
104
|
left: e.left + "px",
|
|
96
105
|
right: e.right + "px"
|
|
97
|
-
} :
|
|
98
|
-
key:
|
|
106
|
+
} : void 0, R = d && C[l] !== void 0 ? C[l] : void 0, T = c(k, {
|
|
107
|
+
key: m,
|
|
99
108
|
role: "gridcell",
|
|
100
|
-
columnId:
|
|
109
|
+
columnId: y.getFilterColumnId(e.id),
|
|
101
110
|
navigatable: e.navigatable,
|
|
102
|
-
style:
|
|
111
|
+
style: x,
|
|
103
112
|
class: this.headerCellClassName(e.field, e.locked) || void 0,
|
|
104
|
-
ariaColumnIndex:
|
|
105
|
-
"aria-label":
|
|
106
|
-
|
|
107
|
-
|
|
113
|
+
ariaColumnIndex: F.ariaColumnIndex,
|
|
114
|
+
"aria-label": u,
|
|
115
|
+
colSpan: R
|
|
116
|
+
}, H(g) ? g : {
|
|
117
|
+
default: () => [g]
|
|
108
118
|
});
|
|
109
|
-
return e.filterable &&
|
|
110
|
-
key:
|
|
119
|
+
return e.filterable && T || c(k, {
|
|
120
|
+
key: m,
|
|
111
121
|
role: "gridcell",
|
|
112
|
-
columnId:
|
|
122
|
+
columnId: y.getFilterColumnId(e.id),
|
|
113
123
|
navigatable: e.navigatable,
|
|
114
|
-
style:
|
|
124
|
+
style: x,
|
|
115
125
|
class: this.headerCellClassName(e.field, e.locked) || void 0,
|
|
116
|
-
ariaColumnIndex:
|
|
117
|
-
"aria-label":
|
|
126
|
+
ariaColumnIndex: F.ariaColumnIndex,
|
|
127
|
+
"aria-label": u,
|
|
128
|
+
colSpan: R
|
|
118
129
|
}, null);
|
|
119
130
|
}, this);
|
|
120
|
-
return
|
|
131
|
+
return c("tr", {
|
|
121
132
|
class: "k-table-row k-filter-row",
|
|
122
133
|
"aria-rowindex": this.ariaRowIndex,
|
|
123
134
|
role: "row"
|
|
124
|
-
}, [
|
|
135
|
+
}, [S]);
|
|
125
136
|
}
|
|
126
137
|
});
|
|
127
138
|
export {
|
|
128
|
-
|
|
139
|
+
Q as FilterRow
|
|
129
140
|
};
|
package/header/HeaderRow.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
|
|
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;
|