@progress/kendo-react-grid 7.4.0-develop.9 → 7.4.0

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.
@@ -6,156 +6,157 @@
6
6
  *-------------------------------------------------------------------------------------------
7
7
  */
8
8
  "use client";
9
- import * as o from "react";
10
- import { normalize as z } from "../interfaces/GridSortSettings.mjs";
11
- import { ColumnDraggable as H } from "../drag/ColumnDraggable.mjs";
12
- import { GridHeaderCell as I } from "./GridHeaderCell.mjs";
13
- import { Keys as m, classNames as w, IconWrap as D } from "@progress/kendo-react-common";
14
- import { ColumnResizer as E, HeaderThElement as v } from "@progress/kendo-react-data-tools";
15
- import { provideLocalizationService as M, registerForLocalization as N } from "@progress/kendo-react-intl";
16
- import { sortAriaLabel as C, messages as K } from "../messages/index.mjs";
17
- import { sortAscSmallIcon as L, sortDescSmallIcon as A } from "@progress/kendo-svg-icons";
18
- import { resolveCells as G } from "../utils/index.mjs";
19
- const F = {
9
+ import * as r from "react";
10
+ import { normalize as G } from "../interfaces/GridSortSettings.mjs";
11
+ import { ColumnDraggable as L } from "../drag/ColumnDraggable.mjs";
12
+ import { GridHeaderCell as O } from "./GridHeaderCell.mjs";
13
+ import { classNames as P, Keys as u, IconWrap as V } from "@progress/kendo-react-common";
14
+ import { ColumnResizer as W, HeaderThElement as q } from "@progress/kendo-react-data-tools";
15
+ import { useLocalization as B } from "@progress/kendo-react-intl";
16
+ import { sortAriaLabel as z, messages as T } from "../messages/index.mjs";
17
+ import { sortAscSmallIcon as U, sortDescSmallIcon as j } from "@progress/kendo-svg-icons";
18
+ import { resolveCells as J } from "../utils/index.mjs";
19
+ const Q = {
20
20
  true: { asc: "desc", desc: "", "": "asc" },
21
21
  false: { asc: "desc", desc: "asc", "": "asc" }
22
- }, P = {
22
+ }, X = {
23
23
  none: "none",
24
24
  asc: "ascending",
25
25
  desc: "descending"
26
- };
27
- class O extends o.Component {
28
- constructor(t) {
29
- super(t), this.serviceIndex = 0, this.index = -1, this.cellKeyDown = (s, l) => {
30
- if (s.isDefaultPrevented())
31
- return;
32
- const { keyCode: e, metaKey: i, ctrlKey: a } = s;
33
- if (this.props.sortable && l.sortable && s.keyCode === m.enter && this.cellClick(s, l), i && e === m.enter || a && e === m.space) {
34
- const n = this.props.columns.findIndex((c) => c.field === l.field);
35
- this.props.columnGroupChange && this.props.columnGroupChange(n, s);
26
+ }, ne = (e) => {
27
+ const [H, b] = r.useState(), D = B(), f = r.useRef(null);
28
+ let E = 0, M = -1;
29
+ const k = (t, a) => {
30
+ if (t.preventDefault(), !e.sortChange)
31
+ return;
32
+ const { allowUnsort: l, mode: c } = G(e.sortable || !1, a.sortable || !1), o = (e.sort || []).filter((i) => i.field === a.field)[0], d = Q[l][o && o.dir || ""], s = c === "single" ? [] : (e.sort || []).filter((i) => i.field !== a.field);
33
+ d !== "" && a.field && s.push({ field: a.field, dir: d }), e.sortChange(s, t);
34
+ }, x = (t, a) => {
35
+ if (t.isDefaultPrevented())
36
+ return;
37
+ const { keyCode: l, metaKey: c, ctrlKey: o, altKey: d } = t, s = e.sortable && a.sortable, i = t.target;
38
+ if (s && t.keyCode === u.enter && i.className.indexOf("k-table-th") !== -1 && k(t, a), e.navigatable) {
39
+ if (e.groupable && (c && l === u.enter || o && l === u.space)) {
40
+ t.preventDefault();
41
+ const m = e.columns.findIndex((g) => g.field === a.field);
42
+ e.columnGroupChange && e.columnGroupChange(m, t);
36
43
  }
37
- }, this.cells = (s) => s.map((l) => {
38
- const e = this.props.columns[l], i = this.props.sortable && e.sortable, a = this.props.sort ? this.props.sort.findIndex((r) => r.field === e.field) : -1, p = a >= 0 && this.props.sort[a].dir || "none", n = e.columnMenu === null ? null : e.columnMenu || this.props.columnMenu, c = w({
39
- "k-first": e.kFirst,
40
- "k-filterable": !!n,
41
- "k-table-th": !0,
42
- "k-header": !0,
43
- "k-grid-header-sticky": e.locked,
44
- "k-sorted": this.props.sort && this.props.sort.some((r) => r.field === e.field)
45
- }, e.headerClassName);
46
- e.locked === !1 && (e.left = 0);
47
- const k = e.left !== void 0 ? this.props.isRtl ? { left: e.right, right: e.left } : { left: e.left, right: e.right } : {}, b = M(this).toLanguageString(C, K[C]), y = e.isAccessible ? {
48
- ariaSort: P[p],
49
- role: "columnheader",
50
- ariaColumnIndex: e.ariaColumnIndex,
51
- ariaSelected: !1,
52
- ariaDescription: i ? b : ""
53
- } : {
54
- role: "presentation"
55
- }, d = e.declarationIndex >= 0 ? ++this.index : --this.serviceIndex, R = e.headerCell ? e.headerCell : I, f = /* @__PURE__ */ o.createElement(
56
- R,
57
- {
58
- key: 1,
59
- field: e.field,
60
- onClick: i && ((r) => this.cellClick(r, e)) || void 0,
61
- selectionChange: this.props.selectionChange,
62
- title: e.title,
63
- selectionValue: e.headerSelectionValue,
64
- render: this.props.cellRender,
65
- children: this.sortIcon(a),
66
- columnMenuWrapperProps: {
67
- column: {
68
- field: e.field,
69
- title: e.title,
70
- locked: e.locked,
71
- filter: e.filter,
72
- id: e.id
73
- },
74
- sortable: i && this.props.sortable,
75
- sort: this.props.sort,
76
- onSortChange: this.props.sortChange,
77
- filter: this.props.filter,
78
- filterable: this.props.filterable && e.filterable,
79
- filterOperators: this.props.filterOperators,
80
- onFilterChange: this.props.filterChange,
81
- group: this.props.group,
82
- groupable: this.props.groupable,
83
- onGroupChange: this.props.groupChange,
84
- columnMenu: n
85
- }
44
+ d && l === u.down && (t.preventDefault(), b(a.field), f.current = i);
45
+ }
46
+ }, I = () => {
47
+ b(void 0), f.current && f.current.getAttribute("tabindex") !== "-1" && f.current.focus();
48
+ }, v = (t) => e.sort ? t >= 0 && [
49
+ /* @__PURE__ */ r.createElement("span", { key: 1, className: "k-sort-icon" }, /* @__PURE__ */ r.createElement(
50
+ V,
51
+ {
52
+ name: "sort-" + e.sort[t].dir + "-small",
53
+ icon: e.sort[t].dir === "asc" ? U : j
54
+ }
55
+ )),
56
+ e.sort.length > 1 && /* @__PURE__ */ r.createElement("span", { key: 2, className: "k-sort-icon" }, /* @__PURE__ */ r.createElement("span", { className: "k-sort-order" }, t + 1))
57
+ ] : null, y = (t) => t.map((a) => {
58
+ const l = e.columns[a], c = e.sortable && l.sortable, o = e.sort ? e.sort.findIndex((n) => n.field === l.field) : -1, d = o >= 0 && e.sort[o].dir || "none", s = l.columnMenu === null ? null : l.columnMenu || e.columnMenu, i = P({
59
+ "k-first": l.kFirst,
60
+ "k-filterable": !!s,
61
+ "k-table-th": !0,
62
+ "k-header": !0,
63
+ "k-grid-header-sticky": l.locked,
64
+ "k-sorted": e.sort && e.sort.some((n) => n.field === l.field)
65
+ }, l.headerClassName);
66
+ l.locked === !1 && (l.left = 0);
67
+ const m = l.left !== void 0 ? e.isRtl ? { left: l.right, right: l.left } : { left: l.left, right: l.right } : {}, g = D.toLanguageString(z, T[z]), N = l.isAccessible ? {
68
+ ariaSort: X[d],
69
+ role: "columnheader",
70
+ ariaColumnIndex: l.ariaColumnIndex,
71
+ ariaSelected: !1,
72
+ ariaDescription: c ? g : ""
73
+ } : {
74
+ role: "presentation"
75
+ }, h = l.declarationIndex >= 0 ? ++M : --E, K = l.headerCell ? l.headerCell : O, R = /* @__PURE__ */ r.createElement(
76
+ K,
77
+ {
78
+ key: 1,
79
+ field: l.field,
80
+ onClick: c && ((n) => k(n, l)) || void 0,
81
+ selectionChange: e.selectionChange,
82
+ title: l.title,
83
+ selectionValue: l.headerSelectionValue,
84
+ render: e.cellRender,
85
+ children: v(o),
86
+ columnMenuWrapperProps: {
87
+ column: {
88
+ field: l.field,
89
+ title: l.title,
90
+ locked: l.locked,
91
+ filter: l.filter,
92
+ id: l.id
93
+ },
94
+ sortable: c && e.sortable,
95
+ sort: e.sort,
96
+ onSortChange: e.sortChange,
97
+ filter: e.filter,
98
+ filterable: e.filterable && l.filterable,
99
+ filterOperators: e.filterOperators,
100
+ onFilterChange: e.filterChange,
101
+ show: H === l.field ? !0 : void 0,
102
+ onCloseMenu: I,
103
+ navigatable: e.navigatable,
104
+ group: e.group,
105
+ groupable: e.groupable,
106
+ onGroupChange: e.groupChange,
107
+ columnMenu: s
86
108
  }
87
- ), u = {
88
- ...y,
89
- key: d,
90
- colSpan: e.colSpan,
91
- rowSpan: e.rowSpan,
92
- className: c,
93
- style: k,
94
- columnId: e.id,
95
- navigatable: e.navigatable,
96
- onKeyDown: (r) => this.cellKeyDown(r, e),
97
- role: "columnheader"
98
- }, g = [
99
- f,
100
- this.props.columnResize && this.props.columnResize.resizable && e.resizable && /* @__PURE__ */ o.createElement(
101
- E,
102
- {
103
- key: 2,
104
- resize: (r, S, x) => this.props.columnResize && this.props.columnResize.dragHandler(r, e, S, x),
105
- autofit: (r) => this.props.columnResize && this.props.columnResize.dblClickHandler(r, [e.id])
106
- }
107
- )
108
- ], h = G(this.props.cells, e.cells);
109
- if (h && h.headerCell) {
110
- const r = h.headerCell;
111
- return /* @__PURE__ */ o.createElement(r, { ...f.props, key: d, thProps: u, index: l }, g);
112
109
  }
113
- return /* @__PURE__ */ o.createElement(
114
- v,
110
+ ), S = {
111
+ ...N,
112
+ key: h,
113
+ colSpan: l.colSpan,
114
+ rowSpan: l.rowSpan,
115
+ className: i,
116
+ style: m,
117
+ columnId: l.id,
118
+ navigatable: l.navigatable,
119
+ onKeyDown: (n) => x(n, l),
120
+ role: "columnheader"
121
+ }, w = [
122
+ R,
123
+ e.columnResize && e.columnResize.resizable && l.resizable && /* @__PURE__ */ r.createElement(
124
+ W,
115
125
  {
116
- ...u,
117
- key: d
118
- },
119
- g
120
- );
121
- }), this.cellClick = this.cellClick.bind(this);
122
- }
123
- cellClick(t, s) {
124
- if (t.preventDefault(), !this.props.sortChange)
125
- return;
126
- const { allowUnsort: l, mode: e } = z(this.props.sortable || !1, s.sortable || !1), i = (this.props.sort || []).filter((n) => n.field === s.field)[0], a = F[l][i && i.dir || ""], p = e === "single" ? [] : (this.props.sort || []).filter((n) => n.field !== s.field);
127
- a !== "" && s.field && p.push({ field: s.field, dir: a }), this.props.sortChange(p, t);
128
- }
129
- sortIcon(t) {
130
- return this.props.sort ? t >= 0 && [
131
- /* @__PURE__ */ o.createElement("span", { key: 1, className: "k-sort-icon" }, /* @__PURE__ */ o.createElement(
132
- D,
133
- {
134
- name: "sort-" + this.props.sort[t].dir + "-small",
135
- icon: this.props.sort[t].dir === "asc" ? L : A
126
+ key: 2,
127
+ resize: (n, A, F) => e.columnResize && e.columnResize.dragHandler(n, l, A, F),
128
+ autofit: (n) => e.columnResize && e.columnResize.dblClickHandler(n, [l.id])
136
129
  }
137
- )),
138
- this.props.sort.length > 1 && /* @__PURE__ */ o.createElement("span", { key: 2, className: "k-sort-icon" }, /* @__PURE__ */ o.createElement("span", { className: "k-sort-order" }, t + 1))
139
- ] : null;
140
- }
141
- render() {
142
- return this.serviceIndex = 0, this.index = -1, this.props.columnsMap.map((t, s) => this.props.pressHandler && /* @__PURE__ */ o.createElement(
143
- H,
130
+ )
131
+ ], C = J(e.cells, l.cells);
132
+ if (C && C.headerCell) {
133
+ const n = C.headerCell;
134
+ return /* @__PURE__ */ r.createElement(n, { ...R.props, key: h, thProps: S, index: a }, w);
135
+ }
136
+ return /* @__PURE__ */ r.createElement(
137
+ q,
144
138
  {
145
- key: s,
146
- pressHandler: this.props.pressHandler,
147
- dragHandler: this.props.dragHandler,
148
- releaseHandler: this.props.releaseHandler,
149
- ariaRowIndex: s + 1,
150
- dragClue: this.props.dragClue,
151
- headerRef: this.props.headerRef,
152
- containerRef: this.props.containerRef
139
+ ...S,
140
+ key: h
153
141
  },
154
- this.cells(t)
155
- ) || /* @__PURE__ */ o.createElement("tr", { key: s, className: "k-table-row", role: "row", "aria-rowindex": s + 1 }, this.cells(t)));
156
- }
157
- }
158
- N(O);
142
+ w
143
+ );
144
+ });
145
+ return e.columnsMap.map((t, a) => e.pressHandler && /* @__PURE__ */ r.createElement(
146
+ L,
147
+ {
148
+ key: a,
149
+ pressHandler: e.pressHandler,
150
+ dragHandler: e.dragHandler,
151
+ releaseHandler: e.releaseHandler,
152
+ ariaRowIndex: a + 1,
153
+ dragClue: e.dragClue,
154
+ headerRef: e.headerRef,
155
+ containerRef: e.containerRef
156
+ },
157
+ y(t)
158
+ ) || /* @__PURE__ */ r.createElement("tr", { key: a, className: "k-table-row", role: "row", "aria-rowindex": a + 1 }, y(t)));
159
+ };
159
160
  export {
160
- O as HeaderRow
161
+ ne as HeaderRow
161
162
  };
package/index.d.mts CHANGED
@@ -70,13 +70,6 @@ export declare const cellInputChange: (value: any, e: React_2.SyntheticEvent<any
70
70
  */
71
71
  export declare const cellOperatorChange: (event: any, currentValue: any, onChange: Function) => void;
72
72
 
73
- /**
74
- * @hidden
75
- */
76
- declare interface ColumnMenuStateProps {
77
- show: boolean;
78
- }
79
-
80
73
  /**
81
74
  * @hidden
82
75
  */
@@ -1008,12 +1001,7 @@ declare interface GridColumnMenuGroupProps extends GridColumnMenuGroupBaseProps
1008
1001
  /**
1009
1002
  * The GridColumnMenuItem component that is used inside the Grid ColumnMenu.
1010
1003
  */
1011
- export declare class GridColumnMenuItem extends React_2.Component<GridColumnMenuItemProps, {}> {
1012
- /**
1013
- * @hidden
1014
- */
1015
- render(): JSX_2.Element;
1016
- }
1004
+ export declare const GridColumnMenuItem: (props: GridColumnMenuItemProps) => JSX_2.Element;
1017
1005
 
1018
1006
  /**
1019
1007
  * The GridColumnMenuItemContent that will be used inside the Grid ColumnMenu.
@@ -1081,6 +1069,8 @@ declare interface GridColumnMenuItemProps {
1081
1069
  * The props which the ColumnMenu passes to its children.
1082
1070
  */
1083
1071
  export declare interface GridColumnMenuProps extends GridColumnMenuFilterBaseProps, GridColumnMenuSortBaseProps, GridColumnMenuGroupBaseProps {
1072
+ navigatable?: boolean;
1073
+ show?: boolean;
1084
1074
  }
1085
1075
 
1086
1076
  /**
@@ -1188,31 +1178,7 @@ declare interface GridColumnMenuSortProps extends GridColumnMenuSortBaseProps {
1188
1178
  /**
1189
1179
  * The GridColumnMenuWrapper component.
1190
1180
  */
1191
- export declare class GridColumnMenuWrapper extends React_2.Component<GridColumnMenuWrapperProps, ColumnMenuStateProps> {
1192
- /** @hidden */
1193
- readonly state: ColumnMenuStateProps;
1194
- /** @hidden */
1195
- _anchor: HTMLAnchorElement | null;
1196
- /** @hidden */
1197
- _content: HTMLDivElement | null;
1198
- /** @hidden */
1199
- blurTimeout: any;
1200
- /** @hidden */
1201
- willBlur: boolean;
1202
- /** @hidden */
1203
- blur: () => void;
1204
- /** @hidden */
1205
- focus: () => void;
1206
- /** @hidden */
1207
- anchorClick: (event: React_2.MouseEvent<HTMLAnchorElement>) => void;
1208
- /** @hidden */
1209
- closeMenu: () => void;
1210
- /** @hidden */
1211
- onAnchorMouseDown: (event: React_2.MouseEvent<HTMLAnchorElement>) => void;
1212
- /** @hidden */
1213
- onAnchorKeyDown: (event: React_2.KeyboardEvent<HTMLAnchorElement>) => void;
1214
- render(): JSX_2.Element;
1215
- }
1181
+ export declare const GridColumnMenuWrapper: (props: GridColumnMenuWrapperProps) => JSX_2.Element;
1216
1182
 
1217
1183
  /**
1218
1184
  * The props of the GridColumnMenuWrapper component.
package/index.d.ts CHANGED
@@ -70,13 +70,6 @@ export declare const cellInputChange: (value: any, e: React_2.SyntheticEvent<any
70
70
  */
71
71
  export declare const cellOperatorChange: (event: any, currentValue: any, onChange: Function) => void;
72
72
 
73
- /**
74
- * @hidden
75
- */
76
- declare interface ColumnMenuStateProps {
77
- show: boolean;
78
- }
79
-
80
73
  /**
81
74
  * @hidden
82
75
  */
@@ -1008,12 +1001,7 @@ declare interface GridColumnMenuGroupProps extends GridColumnMenuGroupBaseProps
1008
1001
  /**
1009
1002
  * The GridColumnMenuItem component that is used inside the Grid ColumnMenu.
1010
1003
  */
1011
- export declare class GridColumnMenuItem extends React_2.Component<GridColumnMenuItemProps, {}> {
1012
- /**
1013
- * @hidden
1014
- */
1015
- render(): JSX_2.Element;
1016
- }
1004
+ export declare const GridColumnMenuItem: (props: GridColumnMenuItemProps) => JSX_2.Element;
1017
1005
 
1018
1006
  /**
1019
1007
  * The GridColumnMenuItemContent that will be used inside the Grid ColumnMenu.
@@ -1081,6 +1069,8 @@ declare interface GridColumnMenuItemProps {
1081
1069
  * The props which the ColumnMenu passes to its children.
1082
1070
  */
1083
1071
  export declare interface GridColumnMenuProps extends GridColumnMenuFilterBaseProps, GridColumnMenuSortBaseProps, GridColumnMenuGroupBaseProps {
1072
+ navigatable?: boolean;
1073
+ show?: boolean;
1084
1074
  }
1085
1075
 
1086
1076
  /**
@@ -1188,31 +1178,7 @@ declare interface GridColumnMenuSortProps extends GridColumnMenuSortBaseProps {
1188
1178
  /**
1189
1179
  * The GridColumnMenuWrapper component.
1190
1180
  */
1191
- export declare class GridColumnMenuWrapper extends React_2.Component<GridColumnMenuWrapperProps, ColumnMenuStateProps> {
1192
- /** @hidden */
1193
- readonly state: ColumnMenuStateProps;
1194
- /** @hidden */
1195
- _anchor: HTMLAnchorElement | null;
1196
- /** @hidden */
1197
- _content: HTMLDivElement | null;
1198
- /** @hidden */
1199
- blurTimeout: any;
1200
- /** @hidden */
1201
- willBlur: boolean;
1202
- /** @hidden */
1203
- blur: () => void;
1204
- /** @hidden */
1205
- focus: () => void;
1206
- /** @hidden */
1207
- anchorClick: (event: React_2.MouseEvent<HTMLAnchorElement>) => void;
1208
- /** @hidden */
1209
- closeMenu: () => void;
1210
- /** @hidden */
1211
- onAnchorMouseDown: (event: React_2.MouseEvent<HTMLAnchorElement>) => void;
1212
- /** @hidden */
1213
- onAnchorKeyDown: (event: React_2.KeyboardEvent<HTMLAnchorElement>) => void;
1214
- render(): JSX_2.Element;
1215
- }
1181
+ export declare const GridColumnMenuWrapper: (props: GridColumnMenuWrapperProps) => JSX_2.Element;
1216
1182
 
1217
1183
  /**
1218
1184
  * The props of the GridColumnMenuWrapper component.
@@ -10,7 +10,7 @@ const e = {
10
10
  name: "@progress/kendo-react-grid",
11
11
  productName: "KendoReact",
12
12
  productCodes: ["KENDOUIREACT", "KENDOUICOMPLETE"],
13
- publishDate: 1711533312,
13
+ publishDate: 1712846838,
14
14
  version: "",
15
15
  licensingDocsUrl: "https://www.telerik.com/kendo-react-ui/components/my-license/"
16
16
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@progress/kendo-react-grid",
3
- "version": "7.4.0-develop.9",
3
+ "version": "7.4.0",
4
4
  "description": "React Data Grid (Table) provides 100+ ready-to-use data grid features. KendoReact Grid package",
5
5
  "author": "Progress",
6
6
  "license": "SEE LICENSE IN LICENSE.md",
@@ -25,15 +25,15 @@
25
25
  "@progress/kendo-data-query": "^1.0.0",
26
26
  "@progress/kendo-drawing": "^1.19.0",
27
27
  "@progress/kendo-licensing": "^1.3.4",
28
- "@progress/kendo-react-animation": "7.4.0-develop.9",
29
- "@progress/kendo-react-buttons": "7.4.0-develop.9",
30
- "@progress/kendo-react-common": "7.4.0-develop.9",
31
- "@progress/kendo-react-data-tools": "7.4.0-develop.9",
32
- "@progress/kendo-react-dateinputs": "7.4.0-develop.9",
33
- "@progress/kendo-react-dropdowns": "7.4.0-develop.9",
34
- "@progress/kendo-react-inputs": "7.4.0-develop.9",
35
- "@progress/kendo-react-intl": "7.4.0-develop.9",
36
- "@progress/kendo-react-popup": "7.4.0-develop.9",
28
+ "@progress/kendo-react-animation": "7.4.0",
29
+ "@progress/kendo-react-buttons": "7.4.0",
30
+ "@progress/kendo-react-common": "7.4.0",
31
+ "@progress/kendo-react-data-tools": "7.4.0",
32
+ "@progress/kendo-react-dateinputs": "7.4.0",
33
+ "@progress/kendo-react-dropdowns": "7.4.0",
34
+ "@progress/kendo-react-inputs": "7.4.0",
35
+ "@progress/kendo-react-intl": "7.4.0",
36
+ "@progress/kendo-react-popup": "7.4.0",
37
37
  "@progress/kendo-svg-icons": "^2.1.0",
38
38
  "react": "^16.8.2 || ^17.0.0 || ^18.0.0",
39
39
  "react-dom": "^16.8.2 || ^17.0.0 || ^18.0.0"