@progress/kendo-react-data-tools 11.2.0-develop.1 → 11.2.0-develop.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/columnmenu/ColumnMenu.js +1 -1
- package/columnmenu/ColumnMenu.mjs +46 -46
- package/dist/cdn/js/kendo-react-datatools.js +1 -1
- package/index.d.mts +1 -1
- package/index.d.ts +1 -1
- package/navigation/TableKeyboardNavigation.js +1 -1
- package/navigation/TableKeyboardNavigation.mjs +37 -37
- package/navigation/utils.js +1 -1
- package/navigation/utils.mjs +74 -71
- package/package-metadata.js +1 -1
- package/package-metadata.mjs +2 -2
- package/package.json +10 -10
- package/selection/TableSelection.js +1 -1
- package/selection/TableSelection.mjs +63 -61
package/columnmenu/ColumnMenu.js
CHANGED
|
@@ -6,4 +6,4 @@
|
|
|
6
6
|
*-------------------------------------------------------------------------------------------
|
|
7
7
|
*/
|
|
8
8
|
"use client";
|
|
9
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const ue=require("react"),ae=require("@progress/kendo-react-popup"),me=require("@progress/kendo-react-intl"),fe=require("@progress/kendo-data-query"),T=require("./ColumnMenuItem.js"),F=require("./ColumnMenuFilters.js"),A=require("./ColumnMenuFilterLogic.js"),de=require("./ColumnMenuFilterForm.js"),g=require("../messages/index.js"),L=require("@progress/kendo-react-common"),Ce=require("../package-metadata.js"),S=require("@progress/kendo-svg-icons");function ge(l){const m=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(l){for(const c in l)if(c!=="default"){const t=Object.getOwnPropertyDescriptor(l,c);Object.defineProperty(m,c,t.get?t:{enumerable:!0,get:()=>l[c]})}}return m.default=l,Object.freeze(m)}const e=ge(ue),
|
|
9
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const ue=require("react"),ae=require("@progress/kendo-react-popup"),me=require("@progress/kendo-react-intl"),fe=require("@progress/kendo-data-query"),T=require("./ColumnMenuItem.js"),F=require("./ColumnMenuFilters.js"),A=require("./ColumnMenuFilterLogic.js"),de=require("./ColumnMenuFilterForm.js"),g=require("../messages/index.js"),L=require("@progress/kendo-react-common"),Ce=require("../package-metadata.js"),S=require("@progress/kendo-svg-icons");function ge(l){const m=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(l){for(const c in l)if(c!=="default"){const t=Object.getOwnPropertyDescriptor(l,c);Object.defineProperty(m,c,t.get?t:{enumerable:!0,get:()=>l[c]})}}return m.default=l,Object.freeze(m)}const e=ge(ue),D=l=>{const m=!L.validatePackage(Ce.packageMetadata,{component:"ColumnMenu"}),c=e.useRef([]),{field:t,filter:n,sort:f=c.current,onSortChange:s,onFilterChange:M,initialFilter:k,sortAsc:B=!1,sortDesc:O=!1,filterContent:N=[],expandFilters:E=!1}=l,[d,P]=e.useState(!1),[I,j]=e.useState(E),[r,b]=e.useState(t&&k?k(t):null),q=e.useRef(null),w=e.useRef(null),x=e.useRef(null),R=e.useRef(!1),p=e.useCallback(()=>(n||[]).find(o=>o.filters.every(i=>!fe.isCompositeFilterDescriptor(i)&&i.field===t)),[n,t]),C=e.useCallback(()=>{P(!1)},[]),V=e.useCallback(()=>{if(R.current){R.current=!1;return}clearTimeout(x.current),x.current=window.setTimeout(()=>{C()})},[C]),X=e.useCallback(()=>clearTimeout(x.current),[]),Y=e.useCallback(o=>{R.current=d&&o.currentTarget===q.current},[d]),Z=e.useCallback(()=>{P(!d),t&&k&&(j(d?!1:E),b(d?r:p()||k(t)))},[p,t,d,r,k,E]);e.useEffect(()=>{d&&w.current&&w.current.focus()},[d]);const $=e.useCallback(()=>j(!I),[I]),h=e.useCallback((o,i)=>{const u=[...f],a=u.findIndex(se=>se.field===t),v={field:t,dir:i};a>=0?u[a].dir!==v.dir?u.splice(a,1,v):u.splice(a,1):u.push(v),C(),s&&s.call(void 0,o,u,t)},[f,t,s,C]),W=e.useCallback((o,i,u)=>{const a={...r,filters:[...r.filters]},v=a.filters.indexOf(u);a.filters.splice(v,1,i),b(a)},[r]),ee=e.useCallback(o=>{o.preventDefault();const i=(n||[]).slice(),u=p(),a=u?i.indexOf(u):-1;a>=0?i.splice(a,1,r):i.push(r),C(),M&&M.call(void 0,o,i,t)},[n,r,t,M,C,p]),te=e.useCallback(o=>{const i=(n||[]).slice(),u=p(),a=u?i.indexOf(u):-1;a>=0&&i.splice(a,1),k&&b(k(t)),C(),M&&M.call(void 0,o,i,t)},[n,t,M,k,C,p]),ne=e.useCallback(o=>h(o,"asc"),[h]),le=e.useCallback(o=>h(o,"desc"),[h]),oe=e.useCallback(o=>r&&b({...r,logic:o.value.logic}),[r]),_=f.find(o=>o.field===t)||{dir:""},[z,Q,G]=N,y=me.useLocalization(),re=B||O?e.createElement("div",{className:"k-columnmenu-item-wrapper",key:"sorting"},B&&e.createElement(T.ColumnMenuItem,{title:y.toLanguageString(g.columnMenuSortAscending,g.messages[g.columnMenuSortAscending]),iconClass:"k-i-sort-asc-small",svgIcon:S.sortAscSmallIcon,selected:_.dir==="asc",onClick:ne}),O&&e.createElement(T.ColumnMenuItem,{title:y.toLanguageString(g.columnMenuSortDescending,g.messages[g.columnMenuSortDescending]),iconClass:"k-i-sort-desc-small",svgIcon:S.sortDescSmallIcon,selected:_.dir==="desc",onClick:le})):null,ie=r&&N.length>0?e.createElement("div",{className:"k-columnmenu-item-wrapper",key:"filtering"},e.createElement(T.ColumnMenuItem,{iconClass:"k-i-filter",svgIcon:S.filterIcon,title:y.toLanguageString(g.columnMenuFilterTitle,g.messages[g.columnMenuFilterTitle]),onClick:$}),e.createElement(de.ColumnMenuFilterForm,{show:I,onSubmit:ee,onReset:te},z&&e.createElement(z,{filter:r.filters[0],onFilterChange:W}),Q&&e.createElement(Q,{value:r.logic,onChange:oe}),G&&e.createElement(G,{filter:r.filters[1],onFilterChange:W}))):null,H=[re,ie],J=e.createElement("span",{ref:q,onClick:Z,onMouseDown:Y,className:"k-grid-header-menu k-grid-column-menu"+(p()?" k-active":""),key:"button"},e.createElement(L.IconWrap,{name:"filter",icon:S.filterIcon})),K=e.createElement(ae.Popup,{anchor:q.current,show:d,key:"popup",popupClass:"k-column-menu k-column-menu-popup"},e.createElement("div",{ref:w,tabIndex:0,onBlur:V,onFocus:X,style:{outline:"none"}},l.itemsRender?l.itemsRender.call(void 0,H,{closeMenu:C,field:t}):H)),ce=e.createElement(L.WatermarkOverlay,null),U=m?[J,K,ce]:[J,K];return l.render?l.render.call(void 0,U):U},ke=l=>{const{field:m,...c}=l,t=e.useCallback(s=>({logic:"and",filters:[{operator:"contains",field:s,value:""},{operator:"contains",field:s,value:""}]}),[]),n=!!l.field,f=n?[F.ColumnMenuTextFilter,A.ColumnMenuFilterLogic,F.ColumnMenuTextFilter]:[];return e.createElement(D,{sortAsc:n,sortDesc:n,filterContent:f,initialFilter:n?t:void 0,field:m,...c})},pe=l=>{const{field:m,...c}=l,t=e.useCallback(s=>({logic:"or",filters:[{operator:"eq",field:s,value:null},{operator:"eq",field:s,value:null}]}),[]),n=!!l.field,f=n?[F.ColumnMenuNumericFilter,A.ColumnMenuFilterLogic,F.ColumnMenuNumericFilter]:[];return e.createElement(D,{sortAsc:n,sortDesc:n,filterContent:f,initialFilter:n?t:void 0,field:m,...c})},Fe=l=>{const{field:m,...c}=l,t=e.useCallback(s=>({logic:"or",filters:[{operator:"eq",field:s,value:null},{operator:"eq",field:s,value:null}]}),[]),n=!!l.field,f=n?[F.ColumnMenuDateFilter,A.ColumnMenuFilterLogic,F.ColumnMenuDateFilter]:[];return e.createElement(D,{sortAsc:n,sortDesc:n,filterContent:f,initialFilter:n?t:void 0,field:m,...c})},Me=l=>{const{field:m,...c}=l,t=e.useCallback(s=>({logic:"and",filters:[{operator:"eq",field:s,value:!1}]}),[]),n=!!l.field,f=n?[F.ColumnMenuBooleanFilter]:[];return e.createElement(D,{sortAsc:n,sortDesc:n,filterContent:f,initialFilter:n?t:void 0,field:m,...c})};exports.ColumnMenuBooleanColumn=Me;exports.ColumnMenuDateColumn=Fe;exports.ColumnMenuNumericColumn=pe;exports.ColumnMenuTextColumn=ke;
|
|
@@ -7,19 +7,19 @@
|
|
|
7
7
|
*/
|
|
8
8
|
"use client";
|
|
9
9
|
import * as e from "react";
|
|
10
|
-
import { Popup as
|
|
11
|
-
import { useLocalization as
|
|
12
|
-
import { isCompositeFilterDescriptor as
|
|
10
|
+
import { Popup as fe } from "@progress/kendo-react-popup";
|
|
11
|
+
import { useLocalization as de } from "@progress/kendo-react-intl";
|
|
12
|
+
import { isCompositeFilterDescriptor as Ce } from "@progress/kendo-data-query";
|
|
13
13
|
import { ColumnMenuItem as R } from "./ColumnMenuItem.mjs";
|
|
14
|
-
import { ColumnMenuTextFilter as
|
|
14
|
+
import { ColumnMenuTextFilter as K, ColumnMenuNumericFilter as Q, ColumnMenuDateFilter as U, ColumnMenuBooleanFilter as pe } from "./ColumnMenuFilters.mjs";
|
|
15
15
|
import { ColumnMenuFilterLogic as B } from "./ColumnMenuFilterLogic.mjs";
|
|
16
|
-
import { ColumnMenuFilterForm as
|
|
17
|
-
import { columnMenuSortAscending as
|
|
18
|
-
import { validatePackage as
|
|
19
|
-
import { packageMetadata as
|
|
20
|
-
import { sortAscSmallIcon as
|
|
16
|
+
import { ColumnMenuFilterForm as ge } from "./ColumnMenuFilterForm.mjs";
|
|
17
|
+
import { columnMenuSortAscending as V, messages as A, columnMenuSortDescending as X, columnMenuFilterTitle as Y } from "../messages/index.mjs";
|
|
18
|
+
import { validatePackage as ke, IconWrap as Fe, WatermarkOverlay as ve } from "@progress/kendo-react-common";
|
|
19
|
+
import { packageMetadata as he } from "../package-metadata.mjs";
|
|
20
|
+
import { sortAscSmallIcon as be, sortDescSmallIcon as Ee, filterIcon as Z } from "@progress/kendo-svg-icons";
|
|
21
21
|
const b = (o) => {
|
|
22
|
-
const m = !
|
|
22
|
+
const m = !ke(he, { component: "ColumnMenu" }), f = e.useRef([]), {
|
|
23
23
|
field: t,
|
|
24
24
|
filter: n,
|
|
25
25
|
sort: u = f.current,
|
|
@@ -32,12 +32,12 @@ const b = (o) => {
|
|
|
32
32
|
expandFilters: E = !1
|
|
33
33
|
} = o, [d, q] = e.useState(!1), [M, N] = e.useState(E), [r, v] = e.useState(t && p ? p(t) : null), S = e.useRef(null), w = e.useRef(null), x = e.useRef(null), D = e.useRef(!1), g = e.useCallback(
|
|
34
34
|
() => (n || []).find(
|
|
35
|
-
(l) => l.filters.every((i) => !
|
|
35
|
+
(l) => l.filters.every((i) => !Ce(i) && i.field === t)
|
|
36
36
|
),
|
|
37
37
|
[n, t]
|
|
38
38
|
), C = e.useCallback(() => {
|
|
39
39
|
q(!1);
|
|
40
|
-
}, []),
|
|
40
|
+
}, []), $ = e.useCallback(() => {
|
|
41
41
|
if (D.current) {
|
|
42
42
|
D.current = !1;
|
|
43
43
|
return;
|
|
@@ -45,20 +45,20 @@ const b = (o) => {
|
|
|
45
45
|
clearTimeout(x.current), x.current = window.setTimeout(() => {
|
|
46
46
|
C();
|
|
47
47
|
});
|
|
48
|
-
}, [C]),
|
|
48
|
+
}, [C]), ee = e.useCallback(() => clearTimeout(x.current), []), te = e.useCallback(
|
|
49
49
|
(l) => {
|
|
50
50
|
D.current = d && l.currentTarget === S.current;
|
|
51
51
|
},
|
|
52
52
|
[d]
|
|
53
|
-
),
|
|
53
|
+
), ne = e.useCallback(() => {
|
|
54
54
|
q(!d), t && p && (N(d ? !1 : E), v(d ? r : g() || p(t)));
|
|
55
55
|
}, [g, t, d, r, p, E]);
|
|
56
56
|
e.useEffect(() => {
|
|
57
57
|
d && w.current && w.current.focus();
|
|
58
58
|
}, [d]);
|
|
59
|
-
const
|
|
59
|
+
const le = e.useCallback(() => N(!M), [M]), h = e.useCallback(
|
|
60
60
|
(l, i) => {
|
|
61
|
-
const c = [...u], a = c.findIndex((
|
|
61
|
+
const c = [...u], a = c.findIndex((me) => me.field === t), F = { field: t, dir: i };
|
|
62
62
|
a >= 0 ? c[a].dir !== F.dir ? c.splice(a, 1, F) : c.splice(a, 1) : c.push(F), C(), s && s.call(void 0, l, c, t);
|
|
63
63
|
},
|
|
64
64
|
[u, t, s, C]
|
|
@@ -68,84 +68,84 @@ const b = (o) => {
|
|
|
68
68
|
a.filters.splice(F, 1, i), v(a);
|
|
69
69
|
},
|
|
70
70
|
[r]
|
|
71
|
-
),
|
|
71
|
+
), oe = e.useCallback(
|
|
72
72
|
(l) => {
|
|
73
73
|
l.preventDefault();
|
|
74
74
|
const i = (n || []).slice(), c = g(), a = c ? i.indexOf(c) : -1;
|
|
75
75
|
a >= 0 ? i.splice(a, 1, r) : i.push(r), C(), k && k.call(void 0, l, i, t);
|
|
76
76
|
},
|
|
77
77
|
[n, r, t, k, C, g]
|
|
78
|
-
),
|
|
78
|
+
), re = e.useCallback(
|
|
79
79
|
(l) => {
|
|
80
80
|
const i = (n || []).slice(), c = g(), a = c ? i.indexOf(c) : -1;
|
|
81
81
|
a >= 0 && i.splice(a, 1), p && v(p(t)), C(), k && k.call(void 0, l, i, t);
|
|
82
82
|
},
|
|
83
83
|
[n, t, k, p, C, g]
|
|
84
|
-
),
|
|
84
|
+
), ie = e.useCallback(
|
|
85
85
|
(l) => h(l, "asc"),
|
|
86
86
|
[h]
|
|
87
|
-
),
|
|
87
|
+
), se = e.useCallback(
|
|
88
88
|
(l) => h(l, "desc"),
|
|
89
89
|
[h]
|
|
90
|
-
),
|
|
90
|
+
), ce = e.useCallback(
|
|
91
91
|
(l) => r && v({ ...r, logic: l.value.logic }),
|
|
92
92
|
[r]
|
|
93
|
-
), W = u.find((l) => l.field === t) || { dir: "" }, [z, P, _] = T, I =
|
|
93
|
+
), W = u.find((l) => l.field === t) || { dir: "" }, [z, P, _] = T, I = de(), ae = y || L ? /* @__PURE__ */ e.createElement("div", { className: "k-columnmenu-item-wrapper", key: "sorting" }, y && /* @__PURE__ */ e.createElement(
|
|
94
94
|
R,
|
|
95
95
|
{
|
|
96
96
|
title: I.toLanguageString(
|
|
97
|
-
|
|
98
|
-
A[
|
|
97
|
+
V,
|
|
98
|
+
A[V]
|
|
99
99
|
),
|
|
100
100
|
iconClass: "k-i-sort-asc-small",
|
|
101
|
-
svgIcon:
|
|
101
|
+
svgIcon: be,
|
|
102
102
|
selected: W.dir === "asc",
|
|
103
|
-
onClick:
|
|
103
|
+
onClick: ie
|
|
104
104
|
}
|
|
105
105
|
), L && /* @__PURE__ */ e.createElement(
|
|
106
106
|
R,
|
|
107
107
|
{
|
|
108
108
|
title: I.toLanguageString(
|
|
109
|
-
|
|
110
|
-
A[
|
|
109
|
+
X,
|
|
110
|
+
A[X]
|
|
111
111
|
),
|
|
112
112
|
iconClass: "k-i-sort-desc-small",
|
|
113
|
-
svgIcon:
|
|
113
|
+
svgIcon: Ee,
|
|
114
114
|
selected: W.dir === "desc",
|
|
115
|
-
onClick:
|
|
115
|
+
onClick: se
|
|
116
116
|
}
|
|
117
|
-
)) : null,
|
|
117
|
+
)) : null, ue = r && T.length > 0 ? /* @__PURE__ */ e.createElement("div", { className: "k-columnmenu-item-wrapper", key: "filtering" }, /* @__PURE__ */ e.createElement(
|
|
118
118
|
R,
|
|
119
119
|
{
|
|
120
120
|
iconClass: "k-i-filter",
|
|
121
|
-
svgIcon:
|
|
122
|
-
title: I.toLanguageString(
|
|
123
|
-
onClick:
|
|
121
|
+
svgIcon: Z,
|
|
122
|
+
title: I.toLanguageString(Y, A[Y]),
|
|
123
|
+
onClick: le
|
|
124
124
|
}
|
|
125
|
-
), /* @__PURE__ */ e.createElement(
|
|
125
|
+
), /* @__PURE__ */ e.createElement(ge, { show: M, onSubmit: oe, onReset: re }, z && /* @__PURE__ */ e.createElement(
|
|
126
126
|
z,
|
|
127
127
|
{
|
|
128
128
|
filter: r.filters[0],
|
|
129
129
|
onFilterChange: O
|
|
130
130
|
}
|
|
131
|
-
), P && /* @__PURE__ */ e.createElement(P, { value: r.logic, onChange:
|
|
131
|
+
), P && /* @__PURE__ */ e.createElement(P, { value: r.logic, onChange: ce }), _ && /* @__PURE__ */ e.createElement(
|
|
132
132
|
_,
|
|
133
133
|
{
|
|
134
134
|
filter: r.filters[1],
|
|
135
135
|
onFilterChange: O
|
|
136
136
|
}
|
|
137
|
-
))) : null, j = [
|
|
137
|
+
))) : null, j = [ae, ue], G = /* @__PURE__ */ e.createElement(
|
|
138
138
|
"span",
|
|
139
139
|
{
|
|
140
140
|
ref: S,
|
|
141
|
-
onClick:
|
|
142
|
-
onMouseDown:
|
|
141
|
+
onClick: ne,
|
|
142
|
+
onMouseDown: te,
|
|
143
143
|
className: "k-grid-header-menu k-grid-column-menu" + (g() ? " k-active" : ""),
|
|
144
144
|
key: "button"
|
|
145
145
|
},
|
|
146
|
-
/* @__PURE__ */ e.createElement(
|
|
147
|
-
),
|
|
148
|
-
return
|
|
146
|
+
/* @__PURE__ */ e.createElement(Fe, { name: "filter", icon: Z })
|
|
147
|
+
), H = /* @__PURE__ */ e.createElement(fe, { anchor: S.current, show: d, key: "popup", popupClass: "k-column-menu k-column-menu-popup" }, /* @__PURE__ */ e.createElement("div", { ref: w, tabIndex: 0, onBlur: $, onFocus: ee, style: { outline: "none" } }, o.itemsRender ? o.itemsRender.call(void 0, j, { closeMenu: C, field: t }) : j)), J = m ? [G, H, /* @__PURE__ */ e.createElement(ve, null)] : [G, H];
|
|
148
|
+
return o.render ? o.render.call(void 0, J) : J;
|
|
149
149
|
}, qe = (o) => {
|
|
150
150
|
const { field: m, ...f } = o, t = e.useCallback(
|
|
151
151
|
(s) => ({
|
|
@@ -156,7 +156,7 @@ const b = (o) => {
|
|
|
156
156
|
]
|
|
157
157
|
}),
|
|
158
158
|
[]
|
|
159
|
-
), n = !!o.field, u = n ? [
|
|
159
|
+
), n = !!o.field, u = n ? [K, B, K] : [];
|
|
160
160
|
return /* @__PURE__ */ e.createElement(
|
|
161
161
|
b,
|
|
162
162
|
{
|
|
@@ -178,7 +178,7 @@ const b = (o) => {
|
|
|
178
178
|
]
|
|
179
179
|
}),
|
|
180
180
|
[]
|
|
181
|
-
), n = !!o.field, u = n ? [
|
|
181
|
+
), n = !!o.field, u = n ? [Q, B, Q] : [];
|
|
182
182
|
return /* @__PURE__ */ e.createElement(
|
|
183
183
|
b,
|
|
184
184
|
{
|
|
@@ -200,7 +200,7 @@ const b = (o) => {
|
|
|
200
200
|
]
|
|
201
201
|
}),
|
|
202
202
|
[]
|
|
203
|
-
), n = !!o.field, u = n ? [
|
|
203
|
+
), n = !!o.field, u = n ? [U, B, U] : [];
|
|
204
204
|
return /* @__PURE__ */ e.createElement(
|
|
205
205
|
b,
|
|
206
206
|
{
|
|
@@ -219,7 +219,7 @@ const b = (o) => {
|
|
|
219
219
|
filters: [{ operator: "eq", field: s, value: !1 }]
|
|
220
220
|
}),
|
|
221
221
|
[]
|
|
222
|
-
), n = !!o.field, u = n ? [
|
|
222
|
+
), n = !!o.field, u = n ? [pe] : [];
|
|
223
223
|
return /* @__PURE__ */ e.createElement(
|
|
224
224
|
b,
|
|
225
225
|
{
|