@progress/kendo-react-grid 8.3.0-develop.3 → 8.3.0-develop.5
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 +337 -341
- package/cells/GridCell.js +1 -1
- package/cells/GridCell.mjs +20 -21
- package/cells/GridDetailCell.js +1 -1
- package/cells/GridDetailCell.mjs +14 -13
- package/cells/GridDetailHierarchyCell.js +1 -1
- package/cells/GridDetailHierarchyCell.mjs +7 -3
- package/cells/GridEditCell.js +1 -1
- package/cells/GridEditCell.mjs +26 -28
- package/dist/cdn/js/kendo-react-grid.js +1 -1
- package/drag/ColumnDraggable.js +1 -1
- package/drag/ColumnDraggable.mjs +17 -15
- package/header/GridHeaderCell.js +1 -1
- package/header/GridHeaderCell.mjs +22 -28
- package/header/GridHeaderSelectionCell.js +1 -1
- package/header/GridHeaderSelectionCell.mjs +3 -3
- package/header/Header.js +1 -1
- package/header/Header.mjs +21 -33
- package/header/HeaderRow.js +1 -1
- package/header/HeaderRow.mjs +83 -77
- package/index.d.mts +7 -12
- package/index.d.ts +7 -12
- package/index.js +1 -1
- package/index.mjs +80 -80
- package/package-metadata.mjs +1 -1
- package/package.json +10 -10
- package/rows/GridRow.js +1 -1
- package/rows/GridRow.mjs +32 -40
- package/utils/index.js +1 -1
- package/utils/index.mjs +39 -38
package/drag/ColumnDraggable.mjs
CHANGED
|
@@ -6,23 +6,24 @@
|
|
|
6
6
|
*-------------------------------------------------------------------------------------------
|
|
7
7
|
*/
|
|
8
8
|
"use client";
|
|
9
|
-
import * as
|
|
10
|
-
import { Draggable as
|
|
11
|
-
class
|
|
9
|
+
import * as r from "react";
|
|
10
|
+
import { uGrid as s, Draggable as n, classNames as a, UnstyledContext as o } from "@progress/kendo-react-common";
|
|
11
|
+
class i extends r.PureComponent {
|
|
12
12
|
constructor() {
|
|
13
|
-
super(...arguments), this.draggable = null, this.onPress = (
|
|
14
|
-
const
|
|
15
|
-
|
|
16
|
-
}, this.onDrag = (
|
|
17
|
-
const
|
|
18
|
-
|
|
19
|
-
}, this.onRelease = (
|
|
20
|
-
this.draggable && this.draggable.element && this.props.releaseHandler && this.props.releaseHandler(
|
|
13
|
+
super(...arguments), this.draggable = null, this.onPress = (t) => {
|
|
14
|
+
const e = this.draggable && this.draggable.element;
|
|
15
|
+
e && this.props.pressHandler && this.props.pressHandler(t.event, e);
|
|
16
|
+
}, this.onDrag = (t) => {
|
|
17
|
+
const e = this.draggable && this.draggable.element;
|
|
18
|
+
e && this.props.dragHandler && this.props.dragHandler(t.event, e);
|
|
19
|
+
}, this.onRelease = (t) => {
|
|
20
|
+
this.draggable && this.draggable.element && this.props.releaseHandler && this.props.releaseHandler(t.event);
|
|
21
21
|
};
|
|
22
22
|
}
|
|
23
23
|
render() {
|
|
24
|
-
|
|
25
|
-
|
|
24
|
+
const t = this.context && this.context.uGrid ? this.context.uGrid : s;
|
|
25
|
+
return /* @__PURE__ */ r.createElement(
|
|
26
|
+
n,
|
|
26
27
|
{
|
|
27
28
|
onPress: this.onPress,
|
|
28
29
|
onDrag: this.onDrag,
|
|
@@ -34,10 +35,11 @@ class o extends s.PureComponent {
|
|
|
34
35
|
this.draggable = e;
|
|
35
36
|
}
|
|
36
37
|
},
|
|
37
|
-
/* @__PURE__ */
|
|
38
|
+
/* @__PURE__ */ r.createElement("tr", { className: a(t.simpleTr({})), style: { touchAction: "none" }, role: "row", "aria-rowindex": this.props.ariaRowIndex }, this.props.children)
|
|
38
39
|
);
|
|
39
40
|
}
|
|
40
41
|
}
|
|
42
|
+
i.contextType = o;
|
|
41
43
|
export {
|
|
42
|
-
|
|
44
|
+
i as ColumnDraggable
|
|
43
45
|
};
|
package/header/GridHeaderCell.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 client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
8
|
+
"use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("@progress/kendo-react-common"),u=require("react"),i=require("../columnMenu/GridColumnMenuWrapper.js");function o(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 c=o(u),d=e=>{const t=l.useUnstyled(),n=t&&t.uGrid?t.uGrid:l.uGrid,{columnMenuWrapperProps:r}=e,s=e.onClick?{onClick:e.onClick}:{},a=c.createElement("span",{className:l.classNames(n.headerCellInner({}))},c.createElement("span",{className:l.classNames(n.headerCellLink({sortable:e.columnMenuWrapperProps.sortable})),...s},c.createElement("span",{className:l.classNames(n.columnTitle({}))},e.title||e.field||" "),e.children),r.columnMenu&&c.createElement(i.GridColumnMenuWrapper,{...r}));return e.render?e.render.call(void 0,a,e):a};exports.GridHeaderCell=d;
|
|
@@ -6,33 +6,27 @@
|
|
|
6
6
|
*-------------------------------------------------------------------------------------------
|
|
7
7
|
*/
|
|
8
8
|
"use client";
|
|
9
|
-
import { classNames as
|
|
10
|
-
import * as
|
|
11
|
-
import { GridColumnMenuWrapper as
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
/* @__PURE__ */ e.createElement("span", { className: "k-column-title" }, this.props.title || this.props.field || " "),
|
|
31
|
-
this.props.children
|
|
32
|
-
), r.columnMenu && /* @__PURE__ */ e.createElement(p, { ...r }));
|
|
33
|
-
return this.props.render ? this.props.render.call(void 0, s, this.props) : s;
|
|
34
|
-
}
|
|
35
|
-
}
|
|
9
|
+
import { useUnstyled as s, uGrid as m, classNames as t } from "@progress/kendo-react-common";
|
|
10
|
+
import * as n from "react";
|
|
11
|
+
import { GridColumnMenuWrapper as d } from "../columnMenu/GridColumnMenuWrapper.mjs";
|
|
12
|
+
const C = (e) => {
|
|
13
|
+
const l = s(), r = l && l.uGrid ? l.uGrid : m, { columnMenuWrapperProps: a } = e, i = e.onClick ? {
|
|
14
|
+
onClick: e.onClick
|
|
15
|
+
} : {}, c = /* @__PURE__ */ n.createElement("span", { className: t(r.headerCellInner({})) }, /* @__PURE__ */ n.createElement(
|
|
16
|
+
"span",
|
|
17
|
+
{
|
|
18
|
+
className: t(
|
|
19
|
+
r.headerCellLink({
|
|
20
|
+
sortable: e.columnMenuWrapperProps.sortable
|
|
21
|
+
})
|
|
22
|
+
),
|
|
23
|
+
...i
|
|
24
|
+
},
|
|
25
|
+
/* @__PURE__ */ n.createElement("span", { className: t(r.columnTitle({})) }, e.title || e.field || " "),
|
|
26
|
+
e.children
|
|
27
|
+
), a.columnMenu && /* @__PURE__ */ n.createElement(d, { ...a }));
|
|
28
|
+
return e.render ? e.render.call(void 0, c, e) : c;
|
|
29
|
+
};
|
|
36
30
|
export {
|
|
37
|
-
|
|
31
|
+
C as GridHeaderCell
|
|
38
32
|
};
|
|
@@ -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 client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
8
|
+
"use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=require("react"),p=require("../columnMenu/GridColumnMenuWrapper.js"),i=require("../messages/index.js"),s=require("@progress/kendo-react-intl"),c=require("@progress/kendo-react-common");function u(t){const r=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const e in t)if(e!=="default"){const n=Object.getOwnPropertyDescriptor(t,e);Object.defineProperty(r,e,n.get?n:{enumerable:!0,get:()=>t[e]})}}return r.default=t,Object.freeze(r)}const o=u(d);class a extends o.Component{get _inputId(){return this.props.id}render(){const r=s.provideLocalizationService(this),{columnMenuWrapperProps:e}=this.props,n=[o.createElement("span",{key:0,className:"k-checkbox-wrap"},o.createElement("input",{id:this._inputId,type:"checkbox",tabIndex:-1,className:"k-checkbox k-checkbox-md k-rounded-md","aria-label":r.toLanguageString(i.selectRow,i.messages[i.selectRow]),"aria-checked":this.props.selectionValue,checked:this.props.selectionValue,onChange:l=>this.props.selectionChange({field:this.props.field,syntheticEvent:l})})),e.columnMenu&&o.createElement(p.GridColumnMenuWrapper,{...e})];return this.props.render?this.props.render.call(void 0,n,this.props):n}}s.registerForLocalization(a);const h=c.withIdHOC(c.withUnstyledHOC(a));exports.GridHeaderSelectionCell=h;
|
|
@@ -10,7 +10,7 @@ import * as e from "react";
|
|
|
10
10
|
import { GridColumnMenuWrapper as c } from "../columnMenu/GridColumnMenuWrapper.mjs";
|
|
11
11
|
import { selectRow as o, messages as a } from "../messages/index.mjs";
|
|
12
12
|
import { registerForLocalization as p, provideLocalizationService as l } from "@progress/kendo-react-intl";
|
|
13
|
-
import { withIdHOC as d } from "@progress/kendo-react-common";
|
|
13
|
+
import { withIdHOC as d, withUnstyledHOC as h } from "@progress/kendo-react-common";
|
|
14
14
|
class i extends e.Component {
|
|
15
15
|
get _inputId() {
|
|
16
16
|
return this.props.id;
|
|
@@ -39,7 +39,7 @@ class i extends e.Component {
|
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
41
|
p(i);
|
|
42
|
-
const
|
|
42
|
+
const C = d(h(i));
|
|
43
43
|
export {
|
|
44
|
-
|
|
44
|
+
C as GridHeaderSelectionCell
|
|
45
45
|
};
|
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 client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("react"),
|
|
8
|
+
"use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("react"),r=require("@progress/kendo-react-common"),o=require("@progress/kendo-react-data-tools");function c(l){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(l){for(const s in l)if(s!=="default"){const t=Object.getOwnPropertyDescriptor(l,s);Object.defineProperty(e,s,t.get?t:{enumerable:!0,get:()=>l[s]})}}return e.default=l,Object.freeze(e)}const a=c(i);class n extends a.Component{constructor(){super(...arguments),this.headerWrap=null,this.table=null,this.syncScroll=!1,this.scrollbarWidth=r.getScrollbarWidth(),this.onScroll=e=>{if(this.syncScroll){this.syncScroll=!1;return}if(!this.headerWrap)return;const s=this.headerWrap.scrollLeft,t=this.props.scrollableDataElement();t&&t.scrollLeft!==s&&(t.scrollLeft=s)}}get element(){return this.props.elemRef.current}componentDidMount(){const e=o.isRtl(this.element);this.props.columnResize&&this.props.columnResize.setIsRtl(e),this.forceUpdate()}setScrollLeft(e){this.headerWrap&&this.headerWrap.scrollLeft!==e&&(this.syncScroll=!0,this.headerWrap.scrollLeft=e)}setWidth(e){this.table&&(this.table.style.width=e+"px")}render(){const e=this.context&&this.context.uGrid?this.context.uGrid:r.uGrid,{size:s="md"}=this.props;return this.props.staticHeaders?a.createElement("div",{ref:this.props.elemRef,className:r.classNames(e.header({draggable:this.props.draggable}),this.props.className),role:"presentation"},a.createElement("div",{ref:t=>{this.headerWrap=t},className:r.classNames(e.headerWrap({})),style:this.props.hasScrollbarWidth?{}:{borderWidth:0},onScroll:this.onScroll,role:"presentation"},a.createElement("table",{ref:t=>{this.table=t},className:r.classNames(e.headerTable({size:s}),this.props.className),role:"presentation"},a.createElement("colgroup",{ref:t=>{this.props.columnResize.colGroupHeader=t}},this.props.cols),a.createElement("thead",{className:r.classNames(e.tableThead({})),role:"rowgroup",...o.tableKeyboardNavigationHeaderAttributes},this.props.headerRow,this.props.filterRow)))):a.createElement("thead",{role:"presentation",className:r.classNames(e.thead({draggable:this.props.draggable}),this.props.className),...o.tableKeyboardNavigationHeaderAttributes},this.props.headerRow,this.props.filterRow)}}exports.Header=n;
|
package/header/Header.mjs
CHANGED
|
@@ -6,10 +6,10 @@
|
|
|
6
6
|
*-------------------------------------------------------------------------------------------
|
|
7
7
|
*/
|
|
8
8
|
"use client";
|
|
9
|
-
import * as
|
|
10
|
-
import { getScrollbarWidth as o,
|
|
9
|
+
import * as s from "react";
|
|
10
|
+
import { getScrollbarWidth as o, uGrid as i, classNames as r } from "@progress/kendo-react-common";
|
|
11
11
|
import { isRtl as h, tableKeyboardNavigationHeaderAttributes as a } from "@progress/kendo-react-data-tools";
|
|
12
|
-
class d extends
|
|
12
|
+
class d extends s.Component {
|
|
13
13
|
constructor() {
|
|
14
14
|
super(...arguments), this.headerWrap = null, this.table = null, this.syncScroll = !1, this.scrollbarWidth = o(), this.onScroll = (e) => {
|
|
15
15
|
if (this.syncScroll) {
|
|
@@ -18,8 +18,8 @@ class d extends t.Component {
|
|
|
18
18
|
}
|
|
19
19
|
if (!this.headerWrap)
|
|
20
20
|
return;
|
|
21
|
-
const l = this.headerWrap.scrollLeft,
|
|
22
|
-
|
|
21
|
+
const l = this.headerWrap.scrollLeft, t = this.props.scrollableDataElement();
|
|
22
|
+
t && t.scrollLeft !== l && (t.scrollLeft = l);
|
|
23
23
|
};
|
|
24
24
|
}
|
|
25
25
|
get element() {
|
|
@@ -44,57 +44,45 @@ class d extends t.Component {
|
|
|
44
44
|
this.table && (this.table.style.width = e + "px");
|
|
45
45
|
}
|
|
46
46
|
render() {
|
|
47
|
-
|
|
47
|
+
const e = this.context && this.context.uGrid ? this.context.uGrid : i, { size: l = "md" } = this.props;
|
|
48
|
+
return this.props.staticHeaders ? /* @__PURE__ */ s.createElement(
|
|
48
49
|
"div",
|
|
49
50
|
{
|
|
50
51
|
ref: this.props.elemRef,
|
|
51
|
-
className:
|
|
52
|
-
"k-grid-header",
|
|
53
|
-
{ "k-grid-draggable-header": this.props.draggable }
|
|
54
|
-
),
|
|
52
|
+
className: r(e.header({ draggable: this.props.draggable }), this.props.className),
|
|
55
53
|
role: "presentation"
|
|
56
54
|
},
|
|
57
|
-
/* @__PURE__ */
|
|
55
|
+
/* @__PURE__ */ s.createElement(
|
|
58
56
|
"div",
|
|
59
57
|
{
|
|
60
|
-
ref: (
|
|
61
|
-
this.headerWrap =
|
|
58
|
+
ref: (t) => {
|
|
59
|
+
this.headerWrap = t;
|
|
62
60
|
},
|
|
63
|
-
className:
|
|
61
|
+
className: r(e.headerWrap({})),
|
|
64
62
|
style: this.props.hasScrollbarWidth ? {} : { borderWidth: 0 },
|
|
65
63
|
onScroll: this.onScroll,
|
|
66
64
|
role: "presentation"
|
|
67
65
|
},
|
|
68
|
-
/* @__PURE__ */
|
|
66
|
+
/* @__PURE__ */ s.createElement(
|
|
69
67
|
"table",
|
|
70
68
|
{
|
|
71
|
-
ref: (
|
|
72
|
-
this.table =
|
|
69
|
+
ref: (t) => {
|
|
70
|
+
this.table = t;
|
|
73
71
|
},
|
|
74
|
-
className:
|
|
75
|
-
"k-table k-grid-header-table",
|
|
76
|
-
{
|
|
77
|
-
"k-table-md": !this.props.size,
|
|
78
|
-
[`k-table-${i.sizeMap[this.props.size] || this.props.size}`]: this.props.size
|
|
79
|
-
},
|
|
80
|
-
this.props.className
|
|
81
|
-
),
|
|
72
|
+
className: r(e.headerTable({ size: l }), this.props.className),
|
|
82
73
|
role: "presentation"
|
|
83
74
|
},
|
|
84
|
-
/* @__PURE__ */
|
|
85
|
-
this.props.columnResize.colGroupHeader =
|
|
75
|
+
/* @__PURE__ */ s.createElement("colgroup", { ref: (t) => {
|
|
76
|
+
this.props.columnResize.colGroupHeader = t;
|
|
86
77
|
} }, this.props.cols),
|
|
87
|
-
/* @__PURE__ */
|
|
78
|
+
/* @__PURE__ */ s.createElement("thead", { className: r(e.tableThead({})), role: "rowgroup", ...a }, this.props.headerRow, this.props.filterRow)
|
|
88
79
|
)
|
|
89
80
|
)
|
|
90
|
-
) : /* @__PURE__ */
|
|
81
|
+
) : /* @__PURE__ */ s.createElement(
|
|
91
82
|
"thead",
|
|
92
83
|
{
|
|
93
84
|
role: "presentation",
|
|
94
|
-
className:
|
|
95
|
-
"k-table-thead",
|
|
96
|
-
{ "k-grid-draggable-header": this.props.draggable }
|
|
97
|
-
),
|
|
85
|
+
className: r(e.thead({ draggable: this.props.draggable }), this.props.className),
|
|
98
86
|
...a
|
|
99
87
|
},
|
|
100
88
|
this.props.headerRow,
|
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 client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
8
|
+
"use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const T=require("react"),F=require("../interfaces/GridSortSettings.js"),_=require("../drag/ColumnDraggable.js"),U=require("./GridHeaderCell.js"),r=require("@progress/kendo-react-common"),N=require("@progress/kendo-react-data-tools"),V=require("@progress/kendo-react-intl"),D=require("../messages/index.js"),E=require("@progress/kendo-svg-icons"),W=require("../utils/index.js");function $(e){const m=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const i in e)if(i!=="default"){const g=Object.getOwnPropertyDescriptor(e,i);Object.defineProperty(m,i,g.get?g:{enumerable:!0,get:()=>e[i]})}}return m.default=e,Object.freeze(m)}const o=$(T),B={true:{asc:"desc",desc:"","":"asc"},false:{asc:"desc",desc:"asc","":"asc"}},J={none:"none",asc:"ascending",desc:"descending"},Q=e=>{const[m,i]=o.useState(),g=V.useLocalization(),h=r.useUnstyled(),C=h&&h.uGrid?h.uGrid:r.uGrid,b=o.useRef(null);let q=0,v=-1;const I=(l,n)=>{if(l.preventDefault(),!e.sortChange)return;const{allowUnsort:t,mode:d}=F.normalize(e.sortable||!1,n.sortable||!1),s=(e.sort||[]).filter(c=>c.field===n.field)[0],f=B[t][s&&s.dir||""],u=d==="single"?[]:(e.sort||[]).filter(c=>c.field!==n.field);f!==""&&n.field&&u.push({field:n.field,dir:f}),e.sortChange(u,l)},x=(l,n)=>{if(l.isDefaultPrevented())return;const{keyCode:t,metaKey:d,ctrlKey:s,altKey:f}=l,u=e.sortable&&n.sortable,c=l.target;if(u&&l.keyCode===r.Keys.enter&&c.className.indexOf("k-table-th")!==-1&&I(l,n),e.navigatable){if(e.groupable&&(d&&t===r.Keys.enter||s&&t===r.Keys.space)){l.preventDefault();const y=e.columns.findIndex(k=>k.field===n.field);e.columnGroupChange&&e.columnGroupChange(y,l)}f&&t===r.Keys.down&&(l.preventDefault(),i(n.field),b.current=c)}},O=()=>{i(void 0),b.current&&b.current.getAttribute("tabindex")!=="-1"&&b.current.focus()},G=l=>{if(!e.sort)return null;const n=r.classNames(C.sortIcon({}));return l>=0&&[o.createElement("span",{key:1,className:n},o.createElement(r.IconWrap,{name:"sort-"+e.sort[l].dir+"-small",icon:e.sort[l].dir==="asc"?E.sortAscSmallIcon:E.sortDescSmallIcon})),e.sort.length>1&&o.createElement("span",{key:2,className:n},o.createElement("span",{className:r.classNames(C.sortOrder({}))},l+1))]},M=l=>l.map(n=>{const t=e.columns[n],d=e.sortable&&t.sortable,s=e.sort?e.sort.findIndex(a=>a.field===t.field):-1,f=s>=0&&e.sort[s].dir||"none",u=t.columnMenu===null?null:t.columnMenu||e.columnMenu,c=t.menuIcon||e.columnMenuIcon,y=r.classNames(r.classNames(C.headerTh({first:t.kFirst,filterable:!!u,locked:t.locked,sorted:e.sort&&e.sort.some(a=>a.field===t.field)})),t.headerClassName);t.locked===!1&&(t.left=0);const k=t.left!==void 0?e.isRtl?{left:t.right,right:t.left}:{left:t.left,right:t.right}:{},K=g.toLanguageString(D.sortAriaLabel,D.messages[D.sortAriaLabel]),A=t.isAccessible?{ariaSort:J[f],role:"columnheader",ariaColumnIndex:t.ariaColumnIndex,ariaSelected:!1,ariaDescription:d?K:""}:{role:"presentation"},R=t.declarationIndex>=0?++v:--q,P=t.headerCell?t.headerCell:U.GridHeaderCell,w=o.createElement(P,{key:1,field:t.field,onClick:d&&(a=>I(a,t))||void 0,selectionChange:e.selectionChange,title:t.title,selectionValue:t.headerSelectionValue,render:e.cellRender,children:G(s),columnMenuWrapperProps:{column:{field:t.field,title:t.title,locked:t.locked,filter:t.filter,id:t.id},sortable:d&&e.sortable,sort:e.sort,onSortChange:e.sortChange,filter:e.filter,filterable:e.filterable&&t.filterable,filterOperators:e.filterOperators,onFilterChange:e.filterChange,show:m===t.field?!0:void 0,onCloseMenu:O,navigatable:e.navigatable,group:e.group,groupable:e.groupable,onGroupChange:e.groupChange,columnMenu:u,columnMenuIcon:c}}),H={...A,key:R,colSpan:t.colSpan,rowSpan:t.rowSpan,className:y,style:k,columnId:t.id,navigatable:t.navigatable,onKeyDown:a=>x(a,t),role:"columnheader"},z=[w,e.columnResize&&e.columnResize.resizable&&t.resizable&&o.createElement(N.ColumnResizer,{key:2,resize:(a,j,L)=>e.columnResize&&e.columnResize.dragHandler(a,t,j,L),autofit:a=>e.columnResize&&e.columnResize.dblClickHandler(a,[t.id])})],S=W.resolveCells(e.cells,t.cells);if(S&&S.headerCell){const a=S.headerCell;return o.createElement(a,{...w.props,key:R,thProps:H,index:n},z)}return o.createElement(N.HeaderThElement,{...H,key:R},z)});return e.columnsMap.map((l,n)=>e.pressHandler&&o.createElement(_.ColumnDraggable,{key:n,pressHandler:e.pressHandler,dragHandler:e.dragHandler,releaseHandler:e.releaseHandler,ariaRowIndex:n+1,dragClue:e.dragClue,headerRef:e.headerRef,containerRef:e.containerRef},M(l))||o.createElement("tr",{key:n,className:r.classNames(C.simpletr({})),role:"row","aria-rowindex":n+1},M(l)))};exports.HeaderRow=Q;
|
package/header/HeaderRow.mjs
CHANGED
|
@@ -7,82 +7,88 @@
|
|
|
7
7
|
*/
|
|
8
8
|
"use client";
|
|
9
9
|
import * as r from "react";
|
|
10
|
-
import { normalize as
|
|
11
|
-
import { ColumnDraggable as
|
|
12
|
-
import { GridHeaderCell as
|
|
13
|
-
import { classNames as
|
|
14
|
-
import { ColumnResizer as
|
|
15
|
-
import { useLocalization as
|
|
16
|
-
import { sortAriaLabel as
|
|
17
|
-
import { sortAscSmallIcon as
|
|
18
|
-
import { resolveCells as
|
|
19
|
-
const
|
|
10
|
+
import { normalize as T } from "../interfaces/GridSortSettings.mjs";
|
|
11
|
+
import { ColumnDraggable as U } from "../drag/ColumnDraggable.mjs";
|
|
12
|
+
import { GridHeaderCell as V } from "./GridHeaderCell.mjs";
|
|
13
|
+
import { useUnstyled as W, uGrid as q, classNames as u, Keys as g, IconWrap as B } from "@progress/kendo-react-common";
|
|
14
|
+
import { ColumnResizer as j, HeaderThElement as J } from "@progress/kendo-react-data-tools";
|
|
15
|
+
import { useLocalization as Q } from "@progress/kendo-react-intl";
|
|
16
|
+
import { sortAriaLabel as H, messages as X } from "../messages/index.mjs";
|
|
17
|
+
import { sortAscSmallIcon as Y, sortDescSmallIcon as Z } from "@progress/kendo-svg-icons";
|
|
18
|
+
import { resolveCells as _ } from "../utils/index.mjs";
|
|
19
|
+
const $ = {
|
|
20
20
|
true: { asc: "desc", desc: "", "": "asc" },
|
|
21
21
|
false: { asc: "desc", desc: "asc", "": "asc" }
|
|
22
|
-
},
|
|
22
|
+
}, p = {
|
|
23
23
|
none: "none",
|
|
24
24
|
asc: "ascending",
|
|
25
25
|
desc: "descending"
|
|
26
|
-
},
|
|
27
|
-
const [
|
|
28
|
-
let
|
|
29
|
-
const
|
|
26
|
+
}, ce = (e) => {
|
|
27
|
+
const [D, R] = r.useState(), E = Q(), C = W(), f = C && C.uGrid ? C.uGrid : q, m = r.useRef(null);
|
|
28
|
+
let x = 0, v = -1;
|
|
29
|
+
const S = (t, n) => {
|
|
30
30
|
if (t.preventDefault(), !e.sortChange)
|
|
31
31
|
return;
|
|
32
|
-
const { allowUnsort: l, mode:
|
|
33
|
-
d !== "" && n.field &&
|
|
34
|
-
},
|
|
32
|
+
const { allowUnsort: l, mode: s } = T(e.sortable || !1, n.sortable || !1), o = (e.sort || []).filter((i) => i.field === n.field)[0], d = $[l][o && o.dir || ""], c = s === "single" ? [] : (e.sort || []).filter((i) => i.field !== n.field);
|
|
33
|
+
d !== "" && n.field && c.push({ field: n.field, dir: d }), e.sortChange(c, t);
|
|
34
|
+
}, N = (t, n) => {
|
|
35
35
|
if (t.isDefaultPrevented())
|
|
36
36
|
return;
|
|
37
|
-
const { keyCode: l, metaKey:
|
|
38
|
-
if (
|
|
39
|
-
if (e.groupable && (
|
|
37
|
+
const { keyCode: l, metaKey: s, ctrlKey: o, altKey: d } = t, c = e.sortable && n.sortable, i = t.target;
|
|
38
|
+
if (c && t.keyCode === g.enter && i.className.indexOf("k-table-th") !== -1 && S(t, n), e.navigatable) {
|
|
39
|
+
if (e.groupable && (s && l === g.enter || o && l === g.space)) {
|
|
40
40
|
t.preventDefault();
|
|
41
|
-
const
|
|
42
|
-
e.columnGroupChange && e.columnGroupChange(
|
|
41
|
+
const h = e.columns.findIndex((b) => b.field === n.field);
|
|
42
|
+
e.columnGroupChange && e.columnGroupChange(h, t);
|
|
43
43
|
}
|
|
44
|
-
d && l ===
|
|
44
|
+
d && l === g.down && (t.preventDefault(), R(n.field), m.current = i);
|
|
45
45
|
}
|
|
46
|
-
},
|
|
47
|
-
|
|
48
|
-
},
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
"
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
46
|
+
}, G = () => {
|
|
47
|
+
R(void 0), m.current && m.current.getAttribute("tabindex") !== "-1" && m.current.focus();
|
|
48
|
+
}, K = (t) => {
|
|
49
|
+
if (!e.sort)
|
|
50
|
+
return null;
|
|
51
|
+
const n = u(f.sortIcon({}));
|
|
52
|
+
return t >= 0 && [
|
|
53
|
+
/* @__PURE__ */ r.createElement("span", { key: 1, className: n }, /* @__PURE__ */ r.createElement(
|
|
54
|
+
B,
|
|
55
|
+
{
|
|
56
|
+
name: "sort-" + e.sort[t].dir + "-small",
|
|
57
|
+
icon: e.sort[t].dir === "asc" ? Y : Z
|
|
58
|
+
}
|
|
59
|
+
)),
|
|
60
|
+
e.sort.length > 1 && /* @__PURE__ */ r.createElement("span", { key: 2, className: n }, /* @__PURE__ */ r.createElement("span", { className: u(f.sortOrder({})) }, t + 1))
|
|
61
|
+
];
|
|
62
|
+
}, I = (t) => t.map((n) => {
|
|
63
|
+
const l = e.columns[n], s = e.sortable && l.sortable, o = e.sort ? e.sort.findIndex((a) => a.field === l.field) : -1, d = o >= 0 && e.sort[o].dir || "none", c = l.columnMenu === null ? null : l.columnMenu || e.columnMenu, i = l.menuIcon || e.columnMenuIcon, h = u(
|
|
64
|
+
u(f.headerTh({
|
|
65
|
+
first: l.kFirst,
|
|
66
|
+
filterable: !!c,
|
|
67
|
+
locked: l.locked,
|
|
68
|
+
sorted: e.sort && e.sort.some((a) => a.field === l.field)
|
|
69
|
+
})),
|
|
70
|
+
l.headerClassName
|
|
71
|
+
);
|
|
66
72
|
l.locked === !1 && (l.left = 0);
|
|
67
|
-
const
|
|
68
|
-
ariaSort:
|
|
73
|
+
const b = l.left !== void 0 ? e.isRtl ? { left: l.right, right: l.left } : { left: l.left, right: l.right } : {}, A = E.toLanguageString(H, X[H]), F = l.isAccessible ? {
|
|
74
|
+
ariaSort: p[d],
|
|
69
75
|
role: "columnheader",
|
|
70
76
|
ariaColumnIndex: l.ariaColumnIndex,
|
|
71
77
|
ariaSelected: !1,
|
|
72
|
-
ariaDescription:
|
|
78
|
+
ariaDescription: s ? A : ""
|
|
73
79
|
} : {
|
|
74
80
|
role: "presentation"
|
|
75
|
-
},
|
|
76
|
-
|
|
81
|
+
}, k = l.declarationIndex >= 0 ? ++v : --x, L = l.headerCell ? l.headerCell : V, M = /* @__PURE__ */ r.createElement(
|
|
82
|
+
L,
|
|
77
83
|
{
|
|
78
84
|
key: 1,
|
|
79
85
|
field: l.field,
|
|
80
|
-
onClick:
|
|
86
|
+
onClick: s && ((a) => S(a, l)) || void 0,
|
|
81
87
|
selectionChange: e.selectionChange,
|
|
82
88
|
title: l.title,
|
|
83
89
|
selectionValue: l.headerSelectionValue,
|
|
84
90
|
render: e.cellRender,
|
|
85
|
-
children:
|
|
91
|
+
children: K(o),
|
|
86
92
|
columnMenuWrapperProps: {
|
|
87
93
|
column: {
|
|
88
94
|
field: l.field,
|
|
@@ -91,60 +97,60 @@ const X = {
|
|
|
91
97
|
filter: l.filter,
|
|
92
98
|
id: l.id
|
|
93
99
|
},
|
|
94
|
-
sortable:
|
|
100
|
+
sortable: s && e.sortable,
|
|
95
101
|
sort: e.sort,
|
|
96
102
|
onSortChange: e.sortChange,
|
|
97
103
|
filter: e.filter,
|
|
98
104
|
filterable: e.filterable && l.filterable,
|
|
99
105
|
filterOperators: e.filterOperators,
|
|
100
106
|
onFilterChange: e.filterChange,
|
|
101
|
-
show:
|
|
102
|
-
onCloseMenu:
|
|
107
|
+
show: D === l.field ? !0 : void 0,
|
|
108
|
+
onCloseMenu: G,
|
|
103
109
|
navigatable: e.navigatable,
|
|
104
110
|
group: e.group,
|
|
105
111
|
groupable: e.groupable,
|
|
106
112
|
onGroupChange: e.groupChange,
|
|
107
|
-
columnMenu:
|
|
113
|
+
columnMenu: c,
|
|
108
114
|
columnMenuIcon: i
|
|
109
115
|
}
|
|
110
116
|
}
|
|
111
|
-
),
|
|
112
|
-
...
|
|
113
|
-
key:
|
|
117
|
+
), w = {
|
|
118
|
+
...F,
|
|
119
|
+
key: k,
|
|
114
120
|
colSpan: l.colSpan,
|
|
115
121
|
rowSpan: l.rowSpan,
|
|
116
|
-
className:
|
|
117
|
-
style:
|
|
122
|
+
className: h,
|
|
123
|
+
style: b,
|
|
118
124
|
columnId: l.id,
|
|
119
125
|
navigatable: l.navigatable,
|
|
120
|
-
onKeyDown: (a) =>
|
|
126
|
+
onKeyDown: (a) => N(a, l),
|
|
121
127
|
role: "columnheader"
|
|
122
|
-
},
|
|
123
|
-
|
|
128
|
+
}, z = [
|
|
129
|
+
M,
|
|
124
130
|
e.columnResize && e.columnResize.resizable && l.resizable && /* @__PURE__ */ r.createElement(
|
|
125
|
-
|
|
131
|
+
j,
|
|
126
132
|
{
|
|
127
133
|
key: 2,
|
|
128
|
-
resize: (a,
|
|
134
|
+
resize: (a, O, P) => e.columnResize && e.columnResize.dragHandler(a, l, O, P),
|
|
129
135
|
autofit: (a) => e.columnResize && e.columnResize.dblClickHandler(a, [l.id])
|
|
130
136
|
}
|
|
131
137
|
)
|
|
132
|
-
],
|
|
133
|
-
if (
|
|
134
|
-
const a =
|
|
135
|
-
return /* @__PURE__ */ r.createElement(a, { ...
|
|
138
|
+
], y = _(e.cells, l.cells);
|
|
139
|
+
if (y && y.headerCell) {
|
|
140
|
+
const a = y.headerCell;
|
|
141
|
+
return /* @__PURE__ */ r.createElement(a, { ...M.props, key: k, thProps: w, index: n }, z);
|
|
136
142
|
}
|
|
137
143
|
return /* @__PURE__ */ r.createElement(
|
|
138
|
-
|
|
144
|
+
J,
|
|
139
145
|
{
|
|
140
|
-
...
|
|
141
|
-
key:
|
|
146
|
+
...w,
|
|
147
|
+
key: k
|
|
142
148
|
},
|
|
143
|
-
|
|
149
|
+
z
|
|
144
150
|
);
|
|
145
151
|
});
|
|
146
152
|
return e.columnsMap.map((t, n) => e.pressHandler && /* @__PURE__ */ r.createElement(
|
|
147
|
-
|
|
153
|
+
U,
|
|
148
154
|
{
|
|
149
155
|
key: n,
|
|
150
156
|
pressHandler: e.pressHandler,
|
|
@@ -155,9 +161,9 @@ const X = {
|
|
|
155
161
|
headerRef: e.headerRef,
|
|
156
162
|
containerRef: e.containerRef
|
|
157
163
|
},
|
|
158
|
-
|
|
159
|
-
) || /* @__PURE__ */ r.createElement("tr", { key: n, className:
|
|
164
|
+
I(t)
|
|
165
|
+
) || /* @__PURE__ */ r.createElement("tr", { key: n, className: u(f.simpletr({})), role: "row", "aria-rowindex": n + 1 }, I(t)));
|
|
160
166
|
};
|
|
161
167
|
export {
|
|
162
|
-
|
|
168
|
+
ce as HeaderRow
|
|
163
169
|
};
|
package/index.d.mts
CHANGED
|
@@ -20,6 +20,7 @@ import { FilterOperator } from '@progress/kendo-react-data-tools';
|
|
|
20
20
|
import { ForwardRefExoticComponent } from 'react';
|
|
21
21
|
import { getSelectedState } from '@progress/kendo-react-data-tools';
|
|
22
22
|
import { getSelectedStateFromKeyDown } from '@progress/kendo-react-data-tools';
|
|
23
|
+
import { GridClassStructure } from '@progress/kendo-react-common';
|
|
23
24
|
import { GroupDescriptor } from '@progress/kendo-data-query';
|
|
24
25
|
import { HeaderCellBaseProps } from '@progress/kendo-react-data-tools';
|
|
25
26
|
import { HeaderThElementProps } from '@progress/kendo-react-data-tools';
|
|
@@ -1861,12 +1862,7 @@ export declare interface GridHandle extends Pick<GridClassComponent, keyof GridC
|
|
|
1861
1862
|
* ReactDOM.render(<App />, document.querySelector('my-app'));
|
|
1862
1863
|
* ```
|
|
1863
1864
|
*/
|
|
1864
|
-
export declare
|
|
1865
|
-
/**
|
|
1866
|
-
* @hidden
|
|
1867
|
-
*/
|
|
1868
|
-
render(): string | number | boolean | Iterable<React_2.ReactNode> | JSX_2.Element | null | undefined;
|
|
1869
|
-
}
|
|
1865
|
+
export declare const GridHeaderCell: (props: GridHeaderCellProps) => string | number | boolean | Iterable<React_2.ReactNode> | JSX_2.Element | null | undefined;
|
|
1870
1866
|
|
|
1871
1867
|
/**
|
|
1872
1868
|
* The props of the GridHeaderCell component
|
|
@@ -2407,17 +2403,16 @@ export declare interface GridProps extends KendoReactComponentBaseProps {
|
|
|
2407
2403
|
* Sets the `id` property of the top div element of the component.
|
|
2408
2404
|
*/
|
|
2409
2405
|
id?: string;
|
|
2406
|
+
/**
|
|
2407
|
+
* @hidden
|
|
2408
|
+
*/
|
|
2409
|
+
unstyled?: GridClassStructure;
|
|
2410
2410
|
}
|
|
2411
2411
|
|
|
2412
2412
|
/**
|
|
2413
2413
|
* The component for each of the items in the `data` property which the Grid renders.
|
|
2414
2414
|
*/
|
|
2415
|
-
export declare
|
|
2416
|
-
/**
|
|
2417
|
-
* @hidden
|
|
2418
|
-
*/
|
|
2419
|
-
render(): string | number | boolean | Iterable<React_2.ReactNode> | JSX_2.Element | null | undefined;
|
|
2420
|
-
}
|
|
2415
|
+
export declare const GridRow: (props: GridRowProps) => string | number | boolean | Iterable<React_2.ReactNode> | JSX_2.Element | null | undefined;
|
|
2421
2416
|
|
|
2422
2417
|
/**
|
|
2423
2418
|
* Represents the object of the `onRowClick` Grid event.
|