@progress/kendo-react-grid 12.3.0-develop.1 → 12.3.0-develop.10

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.
@@ -5,200 +5,303 @@
5
5
  * Licensed under commercial license. See LICENSE.md in the package root for more information
6
6
  *-------------------------------------------------------------------------------------------
7
7
  */
8
- import * as e from "react";
9
- import { GridContext as at } from "../utils/GridContext.mjs";
10
- import { Button as it } from "@progress/kendo-react-buttons";
11
- import { sparklesIcon as lt } from "@progress/kendo-svg-icons";
12
- import G from "axios";
13
- import { useLocalization as ut } from "@progress/kendo-react-intl";
14
- import { toolbarAI as S, messages as w, aIResponseData as F, generatedWithAI as W } from "../messages/index.mjs";
15
- import { useCustomComponent as ct, classNames as pt } from "@progress/kendo-react-common";
16
- import { Window as dt } from "@progress/kendo-react-dialogs";
17
- import { GridAIPrompt as ft } from "./ai-tool/GridAIPrompt.mjs";
18
- import { combineSmartFilters as mt, parseFilterDates as gt } from "../filterCommon.mjs";
19
- const ht = (l, b) => l.map((u) => {
20
- let c = u;
21
- return b.forEach((i) => {
22
- i.field && c.includes(i.field) && (c = c.replace(new RegExp(i.field, "g"), i.title || i.field));
23
- }), c;
24
- }), Ct = e.forwardRef(
25
- (l, b) => {
26
- const o = e.useContext(at), u = ut(), {
27
- requestUrl: c,
28
- requestOptions: i,
29
- onPromptRequest: P,
30
- onResponseSuccess: E,
31
- onResponseError: O,
32
- role: j = "user",
33
- gridAIPrompt: B = ft,
34
- icon: x,
35
- svgIcon: D,
36
- onCloseWindow: A,
37
- promptPlaceHolder: H,
38
- suggestionsList: z,
39
- streaming: M,
40
- loading: N,
41
- outputs: $,
42
- enableSpeechToText: K
43
- } = l, [R, L] = e.useState([]), U = e.useMemo(() => o && Array.isArray(o.columnsRef) ? o.columnsRef.map((t) => ({ field: t.field })) : [], [o]), [X, m] = e.useState(!1), [T, k] = e.useState(!1), [Y, J] = e.useState(), [Q, V] = e.useState(), p = e.useRef(null), I = e.useRef(null), Z = (t) => {
44
- t.preventDefault(), k(!T);
45
- }, g = e.useMemo(() => {
46
- var t;
47
- return (t = l.show) != null ? t : T;
48
- }, [l.show, T]), h = e.useCallback(() => {
49
- var t;
50
- A && A(), L([]), k(!1), p.current && ((t = p.current.element) == null || t.focus());
51
- }, [A]), _ = (t, n, d) => {
52
- var a, C;
53
- if (m(!1), t != null && t.data) {
54
- if (o.sortable && t.data.sort)
55
- if (t.data.sort.length === 0)
56
- o.sortChange([], t);
57
- else {
58
- const r = (a = o.sort) != null ? a : [], s = [];
59
- r.forEach((f) => {
60
- t.data.sort.some((y) => y.field === f.field) || s.push(f);
61
- }), s.push(...t.data.sort), o.sortChange(s, t);
62
- }
63
- if (t.data.filter) {
64
- const r = mt(t.data.filter, o.filter);
65
- o.filterChange(r, t);
66
- }
67
- if (t.data.highlight) {
68
- let r = t.data.highlight;
69
- Array.isArray(r) && (r = r.map((s) => (s != null && s.filters && Array.isArray(s.filters) && gt(s), s))), o.applyHighlightDescriptor(r);
70
- }
71
- if (o && t.data.group)
72
- if (t.data.group.length === 0)
73
- o.groupChange([], t);
74
- else {
75
- const r = (C = o.group) != null ? C : [], s = [];
76
- r.forEach((f) => {
77
- t.data.group.some((y) => y.field === f.field) || s.push(f);
78
- }), s.push(...t.data.group), o.groupChange(s, t);
79
- }
80
- if (t.data.messages) {
81
- const r = [
82
- u.toLanguageString(F, w[F])
83
- ], s = ht(t.data.messages, o.columnsRef).join(
84
- `
85
- `
8
+ import * as a from "react";
9
+ import { GridContext as fe } from "../utils/GridContext.mjs";
10
+ import { Button as ge } from "@progress/kendo-react-buttons";
11
+ import { sparklesIcon as he } from "@progress/kendo-svg-icons";
12
+ import z from "axios";
13
+ import { useLocalization as Ce } from "@progress/kendo-react-intl";
14
+ import { toolbarAI as S, messages as G, aIResponseData as O, generatedWithAI as j } from "../messages/index.mjs";
15
+ import { useCustomComponent as Se, classNames as Ge } from "@progress/kendo-react-common";
16
+ import { Window as me } from "@progress/kendo-react-dialogs";
17
+ import { GridAIPrompt as be } from "./ai-tool/GridAIPrompt.mjs";
18
+ import { combineSmartFilters as ke } from "../filterCommon.mjs";
19
+ var Re = /* @__PURE__ */ ((n) => (n.GridClearFilter = "GridClearFilter", n.GridClearSort = "GridClearSort", n.GridClearGroup = "GridClearGroup", n.GridClearHighlight = "GridClearHighlight", n.GridClearSelect = "GridClearSelect", n.GridSort = "GridSort", n.GridFilter = "GridFilter", n.GridGroup = "GridGroup", n.GridHighlight = "GridHighlight", n.GridSelect = "GridSelect", n.GridExportPDF = "GridExportPDF", n.GridColumnResize = "GridColumnResize", n.GridColumnHide = "GridColumnHide", n.GridColumnShow = "GridColumnShow", n.GridColumnReorder = "GridColumnReorder", n.GridColumnLock = "GridColumnLock", n.GridColumnUnlock = "GridColumnUnlock", n))(Re || {});
20
+ const we = (n, m) => n.map((d) => {
21
+ let p = d;
22
+ return m.forEach((c) => {
23
+ c.field && p.includes(c.field) && (p = p.replace(new RegExp(c.field, "g"), c.title || c.field));
24
+ }), p;
25
+ }), xe = a.forwardRef(
26
+ (n, m) => {
27
+ const t = a.useContext(fe), d = Ce(), {
28
+ requestUrl: p,
29
+ requestOptions: c,
30
+ onPromptRequest: v,
31
+ onResponseSuccess: P,
32
+ onResponseError: b,
33
+ role: W = "user",
34
+ gridAIPrompt: A = be,
35
+ icon: F,
36
+ svgIcon: B,
37
+ onCloseWindow: k,
38
+ promptPlaceHolder: M,
39
+ suggestionsList: N,
40
+ streaming: U,
41
+ loading: I,
42
+ outputs: K,
43
+ enableSpeechToText: V
44
+ } = n, [R, H] = a.useState([]), X = a.useMemo(() => t && Array.isArray(t.columnsRef) && Array.isArray(t.hiddenColumnsRef) ? [...t.columnsRef, ...t.hiddenColumnsRef].map((e) => {
45
+ var r;
46
+ return {
47
+ id: e.id,
48
+ field: e.field,
49
+ values: (r = e.values) != null ? r : []
50
+ };
51
+ }) : [], [t]), [Y, g] = a.useState(!1), [w, x] = a.useState(!1), [$, J] = a.useState(), [Q, Z] = a.useState(), f = a.useRef(null), y = a.useRef(null), _ = (e) => {
52
+ e.preventDefault(), x(!w);
53
+ }, h = a.useMemo(() => {
54
+ var e;
55
+ return (e = n.show) != null ? e : w;
56
+ }, [n.show, w]), C = a.useCallback(() => {
57
+ var e;
58
+ k && k(), H([]), x(!1), f.current && ((e = f.current.element) == null || e.focus());
59
+ }, [k]), q = (e, r) => {
60
+ var i;
61
+ if (t.sortable && e) {
62
+ const o = Array.isArray(e) ? e : [e];
63
+ if (o.length === 0)
64
+ t.sortChange([], r);
65
+ else {
66
+ const u = ((i = t.sort) != null ? i : []).filter(
67
+ (s) => !o.some((T) => T.field === s.field)
86
68
  );
87
- L([
88
- {
89
- id: R.length + 1,
90
- title: u.toLanguageString(W, w[W]),
91
- subTitle: n,
92
- prompt: n,
93
- responseContent: r.concat(s).join(""),
94
- isRetry: d
95
- },
96
- ...R
97
- ]);
69
+ u.push(...o), t.sortChange(u, r);
98
70
  }
99
71
  }
100
- E && E(t, n, d);
101
- }, q = (t) => {
102
- O && O(t), m(!1);
103
- }, tt = (t, n) => {
104
- const d = G.CancelToken.source(), a = {
105
- role: "user",
106
- columns: U || [],
72
+ }, ee = (e, r) => {
73
+ if (!e)
74
+ return;
75
+ const i = ke(
76
+ {
77
+ logic: e.logic ? e.logic : "and",
78
+ filters: e.filters
79
+ },
80
+ t.filter
81
+ );
82
+ t.filterChange(i, r);
83
+ }, te = (e, r) => {
84
+ var o;
85
+ if (!e)
86
+ return;
87
+ const i = Array.isArray(e) ? e : [e];
88
+ if (i.length === 0)
89
+ t.groupChange([], r);
90
+ else {
91
+ const u = ((o = t.group) != null ? o : []).filter(
92
+ (s) => !i.some((T) => T.field === s.field)
93
+ );
94
+ u.push(...i), t.groupChange(u, r);
95
+ }
96
+ }, re = (e, r, i) => {
97
+ const o = [d.toLanguageString(O, G[O])], l = we([e], t.columnsRef).join(`
98
+ `);
99
+ H([
100
+ {
101
+ id: R.length + 1,
102
+ title: d.toLanguageString(j, G[j]),
103
+ subTitle: r,
104
+ prompt: r,
105
+ responseContent: o.concat(l).join(""),
106
+ isRetry: i
107
+ },
108
+ ...R
109
+ ]);
110
+ }, oe = (e, r, i) => {
111
+ const o = t.columnsRef.findIndex((l) => l.id === e);
112
+ t.reorderable && t.columnReorder(o, r, i);
113
+ }, D = (e, r) => {
114
+ const i = t.columnsState.findIndex((l) => l.id === e), o = t.columnsState.map(
115
+ (l) => l.id === e ? { ...l, hidden: r } : l
116
+ );
117
+ i !== -1 && t.onColumnsStateChange(o);
118
+ }, L = (e, r) => {
119
+ const i = t.columnsRef.findIndex((l) => l.id === e), o = t.columnsState.map(
120
+ (l) => l.id === e ? { ...l, locked: r } : l
121
+ );
122
+ i !== -1 && t.onColumnsStateChange(o);
123
+ }, se = (e, r, i) => {
124
+ const o = t.columnsRef.findIndex((s) => s.id === e), l = t.columnsState[o], u = t.columnsState.map(
125
+ (s) => s.id === e ? { ...s, width: parseFloat(r) } : s
126
+ );
127
+ o !== -1 && t.onResize(
128
+ o,
129
+ // index: number
130
+ parseFloat(r),
131
+ // newWidth: 200
132
+ parseFloat(l.width) || 0,
133
+ // oldWidth: current width
134
+ i,
135
+ // nativeEvent: mock event
136
+ !0,
137
+ // end: true (resize is complete)
138
+ u,
139
+ // colState: current columns state
140
+ e
141
+ // targetId: column ID
142
+ );
143
+ }, ne = (e, r, i) => {
144
+ var o, l, u;
145
+ g(!1), (o = e == null ? void 0 : e.data) == null || o.commands.forEach((s) => {
146
+ switch (s.type) {
147
+ case "GridSort":
148
+ q(s.sort, e);
149
+ break;
150
+ case "GridFilter":
151
+ ee(s.filter, e);
152
+ break;
153
+ case "GridHighlight":
154
+ t.applyHighlightDescriptor([s.highlight]);
155
+ break;
156
+ case "GridGroup":
157
+ te(s.group, e);
158
+ break;
159
+ case "GridClearFilter":
160
+ t.filterChange(void 0);
161
+ break;
162
+ case "GridClearGroup":
163
+ t.groupChange([], e);
164
+ break;
165
+ case "GridClearHighlight":
166
+ t.applyHighlightDescriptor([]);
167
+ break;
168
+ case "GridClearSort":
169
+ t.sortChange(void 0);
170
+ break;
171
+ case "GridSelect":
172
+ t.applySelectionDescriptor([s.select]);
173
+ break;
174
+ case "GridClearSelect":
175
+ t.applySelectionDescriptor([]);
176
+ break;
177
+ case "GridExportPDF":
178
+ t.exportAsPdf();
179
+ break;
180
+ case "GridColumnResize":
181
+ se(s.id, s.size, e);
182
+ break;
183
+ case "GridColumnHide":
184
+ D(s.id, !0);
185
+ break;
186
+ case "GridColumnShow":
187
+ D(s.id, !1);
188
+ break;
189
+ case "GridColumnReorder":
190
+ oe(s.id, s.position, e);
191
+ break;
192
+ case "GridColumnLock":
193
+ L(s.id, !0);
194
+ break;
195
+ case "GridColumnUnlock":
196
+ L(s.id, !1);
197
+ break;
198
+ }
199
+ }), (u = (l = e == null ? void 0 : e.data) == null ? void 0 : l.commands) != null && u.length || re(e.data.message, r, i), P && P(e, r, i);
200
+ }, ie = (e) => {
201
+ b == null || b(e), g(!1);
202
+ }, le = (e, r) => {
203
+ const i = z.CancelToken.source(), o = {
204
+ role: W || "user",
205
+ columns: X || [],
107
206
  headers: {
108
207
  Accept: "*/*",
109
208
  "Content-Type": "application/json"
110
209
  },
111
- promptMessage: t,
210
+ promptMessage: e,
112
211
  requestOptions: {
113
- url: c,
212
+ url: p,
114
213
  method: "POST",
115
214
  withCredentials: !1,
116
215
  responseType: "json",
117
- cancelToken: d.token,
118
- ...i
216
+ cancelToken: i.token,
217
+ ...c
119
218
  }
120
219
  };
121
- P && P(a, n), a.requestOptions.url !== void 0 && (m(!0), G({
122
- ...a.requestOptions,
123
- headers: a.headers,
124
- data: {
125
- role: j || a.role,
126
- contents: [
127
- {
128
- $type: "text",
129
- text: a.promptMessage
130
- }
131
- ],
132
- columns: a.columns || []
133
- },
134
- ...l.requestOptions
135
- }).then((C) => _(C, a.promptMessage, n)).catch(q), I.current = d);
136
- }, et = e.useCallback(() => {
137
- I.current && I.current.cancel("Request cancelled by user."), m(!1);
138
- }, []), [ot, v] = ct(
139
- B
140
- ), st = Object.keys(v).length > 0 ? v : {}, nt = /* @__PURE__ */ e.createElement(
141
- ot,
220
+ if (v && v(o, r), o.requestOptions.url !== void 0) {
221
+ g(!0);
222
+ const { url: l, ...u } = o.requestOptions;
223
+ z(l, {
224
+ ...u,
225
+ headers: o.headers,
226
+ data: {
227
+ columns: o.columns,
228
+ contents: [{ text: o.promptMessage }]
229
+ },
230
+ responseType: "json"
231
+ // Ensure correct type
232
+ }).then((s) => ne(s, o.promptMessage, r)).catch(ie), y.current = i;
233
+ }
234
+ }, ae = a.useCallback(() => {
235
+ y.current && y.current.cancel("Request cancelled by user."), g(!1);
236
+ }, []), [ue, E] = Se(
237
+ A
238
+ ), ce = Object.keys(E).length > 0 ? E : {}, de = /* @__PURE__ */ a.createElement(
239
+ ue,
142
240
  {
143
- onPromptRequest: tt,
144
- onCancel: et,
145
- onClose: h,
146
- streaming: M || X,
147
- loading: N,
148
- outputs: $ || R,
149
- promptPlaceHolder: H,
150
- suggestionsList: z,
151
- enableSpeechToText: K,
152
- ...st
241
+ onPromptRequest: le,
242
+ onCancel: ae,
243
+ onClose: C,
244
+ streaming: U || Y,
245
+ loading: I,
246
+ outputs: K || R,
247
+ promptPlaceHolder: M,
248
+ suggestionsList: N,
249
+ enableSpeechToText: V,
250
+ ...ce
153
251
  }
154
- ), rt = /* @__PURE__ */ e.createElement(
155
- it,
252
+ ), pe = /* @__PURE__ */ a.createElement(
253
+ ge,
156
254
  {
157
- ref: p,
255
+ ref: f,
158
256
  togglable: !0,
159
257
  themeColor: "primary",
160
258
  rounded: "full",
161
- selected: g,
162
- svgIcon: D || (x ? void 0 : lt),
163
- icon: x,
164
- size: o.mobileMode ? "large" : "medium",
165
- className: pt("k-toolbar-button", { "k-icon-button": o.mobileMode }),
166
- title: u.toLanguageString(S, w[S]),
167
- onClick: Z
259
+ selected: h,
260
+ svgIcon: B || (F ? void 0 : he),
261
+ icon: F,
262
+ size: t.mobileMode ? "large" : "medium",
263
+ className: Ge("k-toolbar-button", { "k-icon-button": t.mobileMode }),
264
+ title: d.toLanguageString(S, G[S]),
265
+ onClick: _
168
266
  }
169
267
  );
170
- return e.useEffect(() => {
171
- var t;
172
- if (p.current && g) {
173
- const n = (t = p.current.element) == null ? void 0 : t.getBoundingClientRect();
174
- n && (J(n.top + window.scrollY + n.height), V(n.left + window.scrollX + n.width));
268
+ return a.useEffect(() => {
269
+ var e;
270
+ if (f.current && h) {
271
+ const r = (e = f.current.element) == null ? void 0 : e.getBoundingClientRect();
272
+ r && (J(r.top + window.scrollY + r.height), Z(r.left + window.scrollX + r.width));
175
273
  }
176
- }, [g]), e.useImperativeHandle(
177
- b,
274
+ }, [h]), a.useImperativeHandle(
275
+ m,
178
276
  () => ({
179
- show: () => k(!0),
180
- hide: () => h()
277
+ show: () => x(!0),
278
+ hide: () => C()
181
279
  }),
182
- [h]
183
- ), /* @__PURE__ */ e.createElement(e.Fragment, null, rt, g && /* @__PURE__ */ e.createElement(
184
- dt,
280
+ [C]
281
+ ), /* @__PURE__ */ a.createElement(a.Fragment, null, pe, h && /* @__PURE__ */ a.createElement(
282
+ me,
185
283
  {
186
284
  autoFocus: !1,
187
- title: u.toLanguageString(S, w[S]),
188
- initialTop: Y,
285
+ title: d.toLanguageString(S, G[S]),
286
+ initialTop: $,
189
287
  initialLeft: Q,
190
- initialWidth: 520,
191
- initialHeight: 500,
192
- onClose: h,
288
+ initialWidth: 560,
289
+ style: {
290
+ height: "auto",
291
+ minWidth: "90px",
292
+ minHeight: "50px"
293
+ },
294
+ onClose: C,
193
295
  resizable: !0,
194
296
  draggable: !0,
195
297
  className: "k-grid-assistant-window"
196
298
  },
197
- nt
299
+ de
198
300
  ));
199
301
  }
200
302
  );
201
- Ct.displayName = "KendoReactGridToolbarAIAssistant";
303
+ xe.displayName = "KendoReactGridToolbarAIAssistant";
202
304
  export {
203
- Ct as GridToolbarAIAssistant
305
+ Re as GridAICommands,
306
+ xe as GridToolbarAIAssistant
204
307
  };
package/utils/index.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 A=require("react"),w=require("../GridColumn.js"),S=require("@progress/kendo-data-query"),I=require("@progress/kendo-react-data-tools"),G=require("./_serverModule.js"),O=require("./_clientModule.js"),c=require("../contextMenu/enums.js"),T=require("@progress/kendo-react-common");function H(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:()=>e[n]})}}return t.default=e,Object.freeze(t)}const y=H(A);function j(e,t){const n=(e!=null?e:"").split(".");let r=t;return n.forEach(d=>{r=r?r[d]:void 0}),r}function v(e,t,n,r,d,l,a,i,o,s=0,f){var u;let g=s;for(let h=0;h<t.length;h++){let x;if(!d||t[h].value===void 0||t[h].items===void 0){e[e.length]={dataIndex:r.index,dataItem:t[h],rowType:"data",level:s,group:f,expanded:(u=o?!!(l!=null&&l[S.getter(o)(t[h])]):!1)!=null?u:!1},r.index++;continue}else{let m;f!=null&&f.parents?m=[{field:f.field,value:f.value},...f.parents]:f?m=[f]:m=[],x={field:t[h].field,value:t[h].value,parents:m}}g=Math.max(g,s+1);let C=!1;const M=I.findGroupExpand(a||[],x);M?C=M.expanded!==!1:C=i!==!1,e[e.length]={dataIndex:-1,dataItem:t[h],level:s,group:x,rowType:"groupHeader",expanded:C},C&&(x.expanded=C,g=Math.max(v(e,t[h].items,n,r,d,l,a,i,o,s+1,x),g)),(n==="always"||C&&n==="visible")&&(e[e.length]={dataIndex:-1,dataItem:t[h],rowType:"groupFooter",level:s,expanded:C})}return g}const q=(e,t)=>typeof e.colSpan=="function"?e.colSpan({dataItem:t,column:e}):e.colSpan||1;function k(e,t){const n=[[]];let r=0;for(let a=e.length-1;a>=0;a--)r=Math.max(r,e[a].depth),e[a].headerColSpan=e[a].headerColSpan||1,e[a].children.length>0&&(e[a].headerColSpan=e[a].children.reduce((i,o)=>o.hidden?i:i+o.headerColSpan,0));const d=[];let l=1;return e.forEach((a,i)=>{n[a.depth]=n[a.depth]||[];let o=!1;n[a.depth].length===0&&(l<=1?l=1+(a.children.length>0?0:r-a.depth):(l--,o=!0)),a.rowSpan=1+(a.children.length>0?0:r-a.depth),a.kFirst=o,a.index=n[a.depth].length,n[a.depth].push(i),a.ariaColumnIndex=d[a.depth]?d[a.depth]+1:1;for(let s=a.depth;s<a.depth+a.rowSpan;s++)d[s]=(d[s]||0)+a.headerColSpan}),I.updateLeft(n,e,t),I.updateRight(n,e,t),n}function N(e,t,n,r=0,d=!1){const l=[];if(!e)return[];e&&e.length===void 0&&(e=[e]),e.forEach((i,o)=>{i=i.props?i.props:i;const s=i.id?i.id:I.tableKeyboardNavigationTools.generateNavigatableId(`${n.prevId++}`,n.idPrefix,"column"),f=T.canUseDOM&&i.media&&window.matchMedia?!window.matchMedia(i.media).matches:!1,g=d||f||i.hidden,u=t==null?void 0:t.find(x=>x.id===s),h=N(i.children,(u==null?void 0:u.children)||[],n,r+1,g);l.push(Object.assign({depth:r},w.gridDefaultProps,h.length?{cell:()=>null,filterCell:()=>null}:{},i,{id:s,declarationIndex:l.length,children:h,headerColSpan:0,rowSpan:0,columnType:i.columnType||"data",colSpan:i.colSpan||1,isAccessible:!0,hidden:g,left:null,right:null,rowSpannable:i.rowSpannable},u?{width:u.width,orderIndex:u.orderIndex}:{}))});const a=(i,o)=>i.orderIndex===o.orderIndex?i.declarationIndex-o.declarationIndex:(i.orderIndex||0)-(o.orderIndex||0);if(l.sort(a),r===0){const i=[],o=(s,f)=>s.forEach(g=>{g.parentIndex=f,o(g.children,i.push(g)-1)});return o(l,-1),i}return l}const b=e=>Array.isArray(e)?e:e?e.data:[];function B(e,t,n,r){const d=b(e),l=[];if(d.length>0){let a=d[0];if(t)for(let o=0;o<t.length;o++)a=a.items&&a.items[0];Object.getOwnPropertyNames(a).forEach(o=>{o!==n.column&&l.push(Object.assign({id:I.tableKeyboardNavigationTools.generateNavigatableId(`${r.prevId++}`,r.idPrefix,"column"),declarationIndex:-1,parentIndex:-1,depth:0,colSpan:0,headerColSpan:0,rowSpan:0,index:0,columnType:"data",left:0,right:0,rightBorder:!1,children:[],ariaColumnIndex:0,isAccessible:!0},w.gridDefaultProps,{field:o}))})}return l}const _=(e,t)=>{var r;let n=e[t.parentIndex];for(;n;){if((r=n.cells)!=null&&r.footerCell)return!0;n=e[n.parentIndex]}return!1},$=e=>e.filter(t=>{var n;return _(e,t)?!1:!!((n=t.cells)!=null&&n.footerCell)||!(t.children&&t.children.length>0)}),z=e=>e.width!==void 0?Math.floor(parseFloat(e.width.toString()))+"px":void 0,V=(e,t)=>t&&t.filter(n=>n.field===e).length>0,D=e=>(e.sort((t,n)=>t.declarationIndex-n.declarationIndex),e.map(t=>{const{declarationIndex:n,parentIndex:r,depth:d,headerColSpan:l,rowSpan:a,index:i,kFirst:o,children:s,...f}=t;return s.length?{children:D(s),...f}:f})),R=e=>{const{cells:t,rowSpannable:n,defaultCell:r,...d}=e;return e.children.length?{...d,children:e.children.map(R)}:d},p=e=>({id:e.id,field:e.field,title:e.title,width:e.width,orderIndex:e.orderIndex,hidden:!1,children:e.children?E(e.children):null}),E=e=>e.map(p),L=e=>{const t=[],n=r=>r==null?void 0:r.forEach(d=>{t.push(d),n(d.children)});return n(e),t},P=typeof window!="undefined"&&/Firefox/.test(window.navigator.userAgent),W=17895697,K=e=>{let t=[];return e.sortable&&(t=t.concat([c.GridContextMenuItemNames.sortAsc,c.GridContextMenuItemNames.sortDesc])),e.pdf&&(t.length&&(t=t.concat([c.GridContextMenuItemNames.separator])),t=t.concat([c.GridContextMenuItemNames.exportPDF])),t},Q=e=>{let t=[];return e.clipboard&&(t=t.concat([c.GridContextMenuItemNames.copySelection,c.GridContextMenuItemNames.copySelectionNoHeaders,c.GridContextMenuItemNames.paste])),e.editable&&(t.length&&(t=t.concat([c.GridContextMenuItemNames.separator])),t=t.concat([c.GridContextMenuItemNames.create,c.GridContextMenuItemNames.edit,c.GridContextMenuItemNames.delete])),e.selectable&&(t.length&&(t=t.concat([c.GridContextMenuItemNames.separator])),t=t.concat([c.GridContextMenuItemNames.select])),e.rowReorderable&&(t.length&&(t=t.concat([c.GridContextMenuItemNames.separator])),t=t.concat([c.GridContextMenuItemNames.reorderRow])),e.pdf&&(t.length&&(t=t.concat([c.GridContextMenuItemNames.separator])),t=t.concat([c.GridContextMenuItemNames.exportPDF])),t},U=(e,t)=>{if(!(!e&&!t))return t?e?{...e,...t,select:{...e.select||{},...t.select||{}},hierarchy:{...e.hierarchy||{},...t.hierarchy||{}},group:{...e.group||{},...t.group||{}},edit:{...e.edit||{},...t.edit||{}}}:t:e},J=e=>{var n;return typeof e=="object"?(n=e.enabled)!=null?n:!0:e!=null?e:!1},X=()=>G.ServerFragment===O.ClientFragment,Y=e=>!!(e&&e.$$typeof===Symbol.for("react.client.reference")),Z=e=>({id:e.id,ariaColumnIndex:e.ariaColumnIndex,isSelected:e.isSelected,isHighlighted:e.isHighlighted,isInEdit:e.isInEdit,isSorted:e.isSorted,isAlt:e.isAlt,expanded:e.expanded,className:e.className,style:e.style,field:e.field,dataItem:e.dataItem,format:e.format,colSpan:e.colSpan,dataIndex:e.dataIndex,columnIndex:e.columnIndex,columnsCount:e.columnsCount,rowType:e.rowType,level:e.level,editor:e.editor,locked:e.locked,isRtl:e.isRtl,rowDataIndex:e.rowDataIndex,columnPosition:e.columnPosition,group:e.group}),ee=e=>{var r,d;const t=typeof e=="object"?(r=e.enabled)!=null?r:!0:e!=null?e:!1,n=typeof e=="object"?(d=e.valueGetter)!=null?d:(l,a)=>S.getter(a)(l):(l,a)=>S.getter(a)(l);return{enabled:t,valueGetter:n}},F=e=>{var t;return y.isValidElement(e)?e:(t=y.Children.toArray(e))==null?void 0:t[0]},te=(e,t)=>{const n=F(e);return n?y.cloneElement(n,t):null},ne=e=>{let t=0;if(e){const n=e.insertRow(0),r=n.insertCell(0);r.textContent="&nbsp;",t=n.getBoundingClientRect().height,e.deleteRow(0)}return t};exports.autoGenerateColumns=B;exports.calcRowHeight=ne;exports.clientColumn=R;exports.cloneReactElement=te;exports.firefox=P;exports.firefoxMaxHeight=W;exports.flatData=v;exports.footerColumns=$;exports.getClientCellProps=Z;exports.getColSpan=q;exports.getColumnState=p;exports.getColumnWidth=z;exports.getColumnsState=E;exports.getDataAsArray=b;exports.getDefaultBodyContextMenuItems=Q;exports.getDefaultHeadContextMenuItems=K;exports.getFlatColumnsState=L;exports.getNestedValue=j;exports.getReactElement=F;exports.getRowSpanOptions=ee;exports.isClient=X;exports.isClientReference=Y;exports.isRowReorderEnabled=J;exports.isSorted=V;exports.mapColumns=k;exports.readColumns=N;exports.resolveCells=U;exports.sanitizeColumns=D;
8
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const A=require("react"),w=require("../GridColumn.js"),y=require("@progress/kendo-data-query"),I=require("@progress/kendo-react-data-tools"),G=require("./_serverModule.js"),O=require("./_clientModule.js"),f=require("../contextMenu/enums.js"),T=require("@progress/kendo-react-common");function H(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const a in e)if(a!=="default"){const r=Object.getOwnPropertyDescriptor(e,a);Object.defineProperty(t,a,r.get?r:{enumerable:!0,get:()=>e[a]})}}return t.default=e,Object.freeze(t)}const S=H(A);function j(e,t){const a=(e!=null?e:"").split(".");let r=t;return a.forEach(i=>{r=r?r[i]:void 0}),r}function v(e,t,a,r,i,d,c,n,o,s=0,l){var u;let g=s;for(let h=0;h<t.length;h++){let x;if(!i||t[h].value===void 0||t[h].items===void 0){e[e.length]={dataIndex:r.index,dataItem:t[h],rowType:"data",level:s,group:l,expanded:(u=o?!!(d!=null&&d[y.getter(o)(t[h])]):!1)!=null?u:!1},r.index++;continue}else{let m;l!=null&&l.parents?m=[{field:l.field,value:l.value},...l.parents]:l?m=[l]:m=[],x={field:t[h].field,value:t[h].value,parents:m}}g=Math.max(g,s+1);let C=!1;const M=I.findGroupExpand(c||[],x);M?C=M.expanded!==!1:C=n!==!1,e[e.length]={dataIndex:-1,dataItem:t[h],level:s,group:x,rowType:"groupHeader",expanded:C},C&&(x.expanded=C,g=Math.max(v(e,t[h].items,a,r,i,d,c,n,o,s+1,x),g)),(a==="always"||C&&a==="visible")&&(e[e.length]={dataIndex:-1,dataItem:t[h],rowType:"groupFooter",level:s,expanded:C})}return g}function N(e,t){for(let a=0;a<e.length;a++){const r=e[a];if(!r.locked){const i=t[r.index];i&&(r.locked=i.locked)}}}const q=(e,t)=>typeof e.colSpan=="function"?e.colSpan({dataItem:t,column:e}):e.colSpan||1;function B(e,t,a){const r=[[]];let i=0;for(let n=e.length-1;n>=0;n--)i=Math.max(i,e[n].depth),e[n].headerColSpan=e[n].headerColSpan||1,e[n].children.length>0&&(e[n].headerColSpan=e[n].children.reduce((o,s)=>s.hidden?o:o+s.headerColSpan,0));const d=[];let c=1;return e.forEach((n,o)=>{r[n.depth]=r[n.depth]||[];let s=!1;r[n.depth].length===0&&(c<=1?c=1+(n.children.length>0?0:i-n.depth):(c--,s=!0)),n.rowSpan=1+(n.children.length>0?0:i-n.depth),n.kFirst=s,n.index=r[n.depth].length,r[n.depth].push(o),n.ariaColumnIndex=d[n.depth]?d[n.depth]+1:1;for(let l=n.depth;l<n.depth+n.rowSpan;l++)d[l]=(d[l]||0)+n.headerColSpan}),N(e,t),I.updateLeft(r,e,a),I.updateRight(r,e,a),r}function b(e,t,a,r=0,i=!1){const d=[];if(!e)return[];e&&e.length===void 0&&(e=[e]),e.forEach((n,o)=>{n=n.props?n.props:n;const s=n.id?n.id:I.tableKeyboardNavigationTools.generateNavigatableId(`${a.prevId++}`,a.idPrefix,"column"),l=T.canUseDOM&&n.media&&window.matchMedia?!window.matchMedia(n.media).matches:!1,g=i||l||n.hidden,u=t==null?void 0:t.find(x=>x.id===s),h=b(n.children,(u==null?void 0:u.children)||[],a,r+1,g);d.push(Object.assign({depth:r},w.gridDefaultProps,h.length?{cell:()=>null,filterCell:()=>null}:{},n,{id:s,declarationIndex:d.length,children:h,headerColSpan:0,rowSpan:0,columnType:n.columnType||"data",colSpan:n.colSpan||1,isAccessible:!0,hidden:g,left:null,right:null,rowSpannable:n.rowSpannable},u?{width:u.width,orderIndex:u.orderIndex}:{}))});const c=(n,o)=>n.orderIndex===o.orderIndex?n.declarationIndex-o.declarationIndex:(n.orderIndex||0)-(o.orderIndex||0);if(d.sort(c),r===0){const n=[],o=(s,l)=>s.forEach(g=>{g.parentIndex=l,o(g.children,n.push(g)-1)});return o(d,-1),n}return d}const D=e=>Array.isArray(e)?e:e?e.data:[];function _(e,t,a,r){const i=D(e),d=[];if(i.length>0){let c=i[0];if(t)for(let o=0;o<t.length;o++)c=c.items&&c.items[0];Object.getOwnPropertyNames(c).forEach(o=>{o!==a.column&&d.push(Object.assign({id:I.tableKeyboardNavigationTools.generateNavigatableId(`${r.prevId++}`,r.idPrefix,"column"),declarationIndex:-1,parentIndex:-1,depth:0,colSpan:0,headerColSpan:0,rowSpan:0,index:0,columnType:"data",left:0,right:0,rightBorder:!1,children:[],ariaColumnIndex:0,isAccessible:!0},w.gridDefaultProps,{field:o}))})}return d}const L=(e,t)=>{var r;let a=e[t.parentIndex];for(;a;){if((r=a.cells)!=null&&r.footerCell)return!0;a=e[a.parentIndex]}return!1},$=e=>e.filter(t=>{var a;return L(e,t)?!1:!!((a=t.cells)!=null&&a.footerCell)||!(t.children&&t.children.length>0)}),z=e=>e.width!==void 0?Math.floor(parseFloat(e.width.toString()))+"px":void 0,V=(e,t)=>t&&t.filter(a=>a.field===e).length>0,R=e=>(e.sort((t,a)=>t.declarationIndex-a.declarationIndex),e.map(t=>{const{declarationIndex:a,parentIndex:r,depth:i,headerColSpan:d,rowSpan:c,index:n,kFirst:o,children:s,...l}=t;return s.length?{children:R(s),...l}:l})),p=e=>{const{cells:t,rowSpannable:a,defaultCell:r,...i}=e;return e.children.length?{...i,children:e.children.map(p)}:i},E=e=>({id:e.id,field:e.field,title:e.title,width:e.width,orderIndex:e.orderIndex,hidden:!1,children:e.children?F(e.children):null}),F=e=>e.map(E),P=e=>{const t=[],a=r=>r==null?void 0:r.forEach(i=>{t.push(i),a(i.children)});return a(e),t},W=typeof window!="undefined"&&/Firefox/.test(window.navigator.userAgent),K=17895697,Q=e=>{let t=[];return e.sortable&&(t=t.concat([f.GridContextMenuItemNames.sortAsc,f.GridContextMenuItemNames.sortDesc])),e.pdf&&(t.length&&(t=t.concat([f.GridContextMenuItemNames.separator])),t=t.concat([f.GridContextMenuItemNames.exportPDF])),t},U=e=>{let t=[];return e.clipboard&&(t=t.concat([f.GridContextMenuItemNames.copySelection,f.GridContextMenuItemNames.copySelectionNoHeaders,f.GridContextMenuItemNames.paste])),e.editable&&(t.length&&(t=t.concat([f.GridContextMenuItemNames.separator])),t=t.concat([f.GridContextMenuItemNames.create,f.GridContextMenuItemNames.edit,f.GridContextMenuItemNames.delete])),e.selectable&&(t.length&&(t=t.concat([f.GridContextMenuItemNames.separator])),t=t.concat([f.GridContextMenuItemNames.select])),e.rowReorderable&&(t.length&&(t=t.concat([f.GridContextMenuItemNames.separator])),t=t.concat([f.GridContextMenuItemNames.reorderRow])),e.pdf&&(t.length&&(t=t.concat([f.GridContextMenuItemNames.separator])),t=t.concat([f.GridContextMenuItemNames.exportPDF])),t},J=(e,t)=>{if(!(!e&&!t))return t?e?{...e,...t,select:{...e.select||{},...t.select||{}},hierarchy:{...e.hierarchy||{},...t.hierarchy||{}},group:{...e.group||{},...t.group||{}},edit:{...e.edit||{},...t.edit||{}}}:t:e},X=e=>{var a;return typeof e=="object"?(a=e.enabled)!=null?a:!0:e!=null?e:!1},Y=()=>G.ServerFragment===O.ClientFragment,Z=e=>!!(e&&e.$$typeof===Symbol.for("react.client.reference")),ee=e=>({id:e.id,ariaColumnIndex:e.ariaColumnIndex,isSelected:e.isSelected,isHighlighted:e.isHighlighted,isInEdit:e.isInEdit,isSorted:e.isSorted,isAlt:e.isAlt,expanded:e.expanded,className:e.className,style:e.style,field:e.field,dataItem:e.dataItem,format:e.format,colSpan:e.colSpan,dataIndex:e.dataIndex,columnIndex:e.columnIndex,columnsCount:e.columnsCount,rowType:e.rowType,level:e.level,editor:e.editor,locked:e.locked,isRtl:e.isRtl,rowDataIndex:e.rowDataIndex,columnPosition:e.columnPosition,group:e.group}),te=e=>{var r,i;const t=typeof e=="object"?(r=e.enabled)!=null?r:!0:e!=null?e:!1,a=typeof e=="object"?(i=e.valueGetter)!=null?i:(d,c)=>y.getter(c)(d):(d,c)=>y.getter(c)(d);return{enabled:t,valueGetter:a}},k=e=>{var t;return S.isValidElement(e)?e:(t=S.Children.toArray(e))==null?void 0:t[0]},ne=(e,t)=>{const a=k(e);return a?S.cloneElement(a,t):null},ae=e=>{let t=0;if(e){const a=e.insertRow(0),r=a.insertCell(0);r.textContent="&nbsp;",t=a.getBoundingClientRect().height,e.deleteRow(0)}return t};exports.autoGenerateColumns=_;exports.calcRowHeight=ae;exports.clientColumn=p;exports.cloneReactElement=ne;exports.firefox=W;exports.firefoxMaxHeight=K;exports.flatData=v;exports.footerColumns=$;exports.getClientCellProps=ee;exports.getColSpan=q;exports.getColumnState=E;exports.getColumnWidth=z;exports.getColumnsState=F;exports.getDataAsArray=D;exports.getDefaultBodyContextMenuItems=U;exports.getDefaultHeadContextMenuItems=Q;exports.getFlatColumnsState=P;exports.getNestedValue=j;exports.getReactElement=k;exports.getRowSpanOptions=te;exports.isClient=Y;exports.isClientReference=Z;exports.isRowReorderEnabled=X;exports.isSorted=V;exports.mapColumns=B;exports.readColumns=b;exports.resolveCells=J;exports.sanitizeColumns=R;exports.syncLockedColumns=N;