@progress/kendo-react-grid 9.0.0-develop.1 → 9.0.0-develop.11

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.
Files changed (68) hide show
  1. package/Grid.js +1 -1
  2. package/Grid.mjs +927 -1042
  3. package/GridNoRecords.js +1 -1
  4. package/GridNoRecords.mjs +7 -14
  5. package/GridToolbar.js +1 -1
  6. package/GridToolbar.mjs +23 -28
  7. package/README.md +34 -33
  8. package/VirtualScroll.js +1 -1
  9. package/VirtualScroll.mjs +63 -58
  10. package/VirtualScrollFixed.js +1 -1
  11. package/VirtualScrollFixed.mjs +16 -14
  12. package/cells/GridCell.mjs +6 -3
  13. package/cells/GridDetailCell.mjs +6 -3
  14. package/cells/GridEditCell.mjs +10 -38
  15. package/cells/GridFilterCell.js +1 -1
  16. package/cells/GridFilterCell.mjs +99 -113
  17. package/cells/GridGroupCell.mjs +24 -30
  18. package/cells/GridHierarchyCell.mjs +2 -13
  19. package/cells/GridSelectionCell.mjs +3 -24
  20. package/columnMenu/GridColumnMenuCheckboxFilter.js +1 -1
  21. package/columnMenu/GridColumnMenuCheckboxFilter.mjs +132 -184
  22. package/columnMenu/GridColumnMenuFilter.js +1 -1
  23. package/columnMenu/GridColumnMenuFilter.mjs +127 -170
  24. package/columnMenu/GridColumnMenuFilterCell.js +1 -1
  25. package/columnMenu/GridColumnMenuFilterCell.mjs +42 -61
  26. package/columnMenu/GridColumnMenuFilterUI.js +1 -1
  27. package/columnMenu/GridColumnMenuFilterUI.mjs +15 -24
  28. package/columnMenu/GridColumnMenuGroup.js +1 -1
  29. package/columnMenu/GridColumnMenuGroup.mjs +29 -40
  30. package/columnMenu/GridColumnMenuItemContent.js +1 -1
  31. package/columnMenu/GridColumnMenuItemContent.mjs +7 -20
  32. package/columnMenu/GridColumnMenuItemGroup.js +1 -1
  33. package/columnMenu/GridColumnMenuItemGroup.mjs +7 -20
  34. package/columnMenu/GridColumnMenuSort.js +1 -1
  35. package/columnMenu/GridColumnMenuSort.mjs +42 -53
  36. package/columnMenu/GridColumnMenuWrapper.mjs +6 -18
  37. package/dist/cdn/js/kendo-react-grid.js +1 -1
  38. package/drag/ColumnDraggable.js +1 -1
  39. package/drag/ColumnDraggable.mjs +34 -33
  40. package/drag/ColumnResize.js +1 -1
  41. package/drag/ColumnResize.mjs +36 -44
  42. package/drag/GroupingIndicator.js +1 -1
  43. package/drag/GroupingIndicator.mjs +51 -83
  44. package/filterCommon.mjs +1 -3
  45. package/footer/Footer.js +1 -1
  46. package/footer/Footer.mjs +40 -57
  47. package/footer/FooterRow.mjs +6 -5
  48. package/header/FilterRow.js +1 -1
  49. package/header/FilterRow.mjs +69 -82
  50. package/header/GridHeaderSelectionCell.js +1 -1
  51. package/header/GridHeaderSelectionCell.mjs +28 -35
  52. package/header/GroupPanel.js +1 -1
  53. package/header/GroupPanel.mjs +43 -49
  54. package/header/Header.js +1 -1
  55. package/header/Header.mjs +70 -74
  56. package/header/HeaderRow.mjs +24 -27
  57. package/index.d.mts +259 -724
  58. package/index.d.ts +259 -724
  59. package/index.js +1 -1
  60. package/index.mjs +78 -80
  61. package/messages/index.mjs +4 -1
  62. package/package-metadata.mjs +1 -1
  63. package/package.json +11 -11
  64. package/rows/GridDetailRow.js +1 -1
  65. package/rows/GridDetailRow.mjs +2 -10
  66. package/rows/GridRow.mjs +10 -8
  67. package/utils/index.js +1 -1
  68. package/utils/index.mjs +35 -39
@@ -6,91 +6,78 @@
6
6
  *-------------------------------------------------------------------------------------------
7
7
  */
8
8
  "use client";
9
- import * as a from "react";
10
- import { provideLocalizationService as k, registerForLocalization as u } from "@progress/kendo-react-intl";
11
- import { GridFilterCell as I } from "../cells/GridFilterCell.mjs";
12
- import { getFilterType as y, operatorMap as F, booleanFilterValues as L } from "../filterCommon.mjs";
13
- import { tableKeyboardNavigationTools as R, HeaderThElement as w } from "@progress/kendo-react-data-tools";
14
- import { filterAriaLabel as b, messages as N } from "../messages/index.mjs";
15
- import { classNames as T } from "@progress/kendo-react-common";
16
- import { resolveCells as z } from "../utils/index.mjs";
17
- const A = "k-table-row k-filter-row";
18
- class S extends a.Component {
19
- headerCellClassName(r, o) {
20
- let l = `${o ? "k-grid-header-sticky" : ""}`;
21
- return this.props.sort && this.props.sort.filter((n) => n.field === r).length > 0 && (l += " k-sorted"), l;
22
- }
23
- setFilter(r, o, l, n) {
24
- if (!this.props.filterChange)
9
+ import * as f from "react";
10
+ import { useLocalization as y } from "@progress/kendo-react-intl";
11
+ import { GridFilterCell as R } from "../cells/GridFilterCell.mjs";
12
+ import { getFilterType as w, operatorMap as b, booleanFilterValues as T } from "../filterCommon.mjs";
13
+ import { tableKeyboardNavigationTools as N, HeaderThElement as z } from "@progress/kendo-react-data-tools";
14
+ import { filterAriaLabel as F, messages as A } from "../messages/index.mjs";
15
+ import { classNames as S } from "@progress/kendo-react-common";
16
+ import { resolveCells as O } from "../utils/index.mjs";
17
+ const P = "k-table-row k-filter-row", $ = (t) => {
18
+ const c = y(), u = (e, r) => {
19
+ let l = `${r ? "k-grid-header-sticky" : ""}`;
20
+ return t.sort && t.sort.filter((a) => a.field === e).length > 0 && (l += " k-sorted"), l;
21
+ }, x = (e, r, l, a) => {
22
+ if (!t.filterChange)
25
23
  return;
26
- const s = [];
27
- (r !== "" && r !== null || o !== "") && s.push({
24
+ const i = [];
25
+ (e !== "" && e !== null || r !== "") && i.push({
28
26
  field: l,
29
- operator: o,
30
- value: r
31
- }), this.props.filter && this.props.filter.filters && (this.props.filter.filters || []).forEach((i) => {
32
- const t = i;
33
- t && t.field !== l && s.push(t);
27
+ operator: r,
28
+ value: e
29
+ }), t.filter && t.filter.filters && (t.filter.filters || []).forEach((g) => {
30
+ const n = g;
31
+ n && n.field !== l && i.push(n);
34
32
  });
35
- const h = this.props.filter && this.props.filter.logic ? this.props.filter.logic : "and";
36
- this.props.filterChange(s.length > 0 ? { logic: h, filters: s } : null, n);
37
- }
38
- render() {
39
- const r = k(this), o = this.props.filter && this.props.filter.filters || [], l = (e) => {
40
- if (e === void 0)
41
- return;
42
- const i = o.filter((t) => t.field === e);
43
- return i.length ? i[0] : void 0;
44
- };
45
- let n = 0, s = -1;
46
- const h = this.props.columns.filter((e) => e.children.length === 0).map(
47
- (e) => {
48
- const i = y(e.filter), t = l(e.field), g = e.filterable ? r.toLanguageString(b, N[b]) : void 0;
49
- let d = t && t.value;
50
- d === void 0 && (d = i === "text" ? "" : null);
51
- const f = e.filterable && {
52
- render: this.props.cellRender,
53
- field: e.field,
54
- title: e.filterTitle,
55
- value: d,
56
- operator: t && t.operator,
57
- operators: F(this.props.filterOperators[i] || [], r),
58
- booleanValues: F(L, r),
59
- filterType: i,
60
- ariaLabel: g,
61
- onChange: (p) => {
62
- this.setFilter(p.value, p.operator, e.field, p.syntheticEvent);
63
- }
64
- }, C = e.declarationIndex >= 0 ? ++s : --n, x = {
65
- ariaLabel: g,
66
- ariaColumnIndex: e.ariaColumnIndex
67
- }, E = e.left !== void 0 ? this.props.isRtl ? { left: e.right, right: e.left } : { left: e.left, right: e.right } : {}, m = {
68
- columnId: R.getFilterColumnId(e.id),
69
- navigatable: e.navigatable || this.props.navigatable,
70
- style: E,
71
- className: T("k-table-th", this.headerCellClassName(e.field, e.locked) || void 0),
72
- role: "columnheader",
73
- ...x
74
- }, v = f && (e.filterCell ? /* @__PURE__ */ a.createElement(e.filterCell, { ...f }) : /* @__PURE__ */ a.createElement(I, { size: this.props.size, ...f })), c = z(this.props.cells, e.cells);
75
- if (c && c.filterCell) {
76
- const p = c.filterCell;
77
- return /* @__PURE__ */ a.createElement(p, { key: C, ...f, thProps: m, index: s }, v);
78
- }
79
- return /* @__PURE__ */ a.createElement(
80
- w,
81
- {
82
- key: C,
83
- ...m
84
- },
85
- v
86
- );
87
- }
33
+ const o = t.filter && t.filter.logic ? t.filter.logic : "and";
34
+ t.filterChange(i.length > 0 ? { logic: o, filters: i } : null, a);
35
+ }, E = t.filter && t.filter.filters || [], k = (e) => {
36
+ if (e === void 0)
37
+ return;
38
+ const r = E.filter(
39
+ (l) => l.field === e
88
40
  );
89
- return /* @__PURE__ */ a.createElement("tr", { className: A, "aria-rowindex": this.props.ariaRowIndex, role: "row" }, h);
90
- }
91
- }
92
- u(S);
41
+ return r.length ? r[0] : void 0;
42
+ };
43
+ let I = 0, C = -1;
44
+ const L = t.columns.filter((e) => e.children.length === 0).map((e) => {
45
+ const r = w(e.filter), l = k(e.field), a = e.filterable ? c.toLanguageString(F, A[F]) : void 0;
46
+ let i = l && l.value;
47
+ i === void 0 && (i = r === "text" ? "" : null);
48
+ const o = e.filterable && {
49
+ render: t.cellRender,
50
+ field: e.field,
51
+ title: e.filterTitle,
52
+ value: i,
53
+ operator: l && l.operator,
54
+ operators: b(t.filterOperators[r] || [], c),
55
+ booleanValues: b(T, c),
56
+ filterType: r,
57
+ ariaLabel: a,
58
+ onChange: (s) => {
59
+ x(s.value, s.operator, e.field, s.syntheticEvent);
60
+ }
61
+ }, d = e.declarationIndex >= 0 ? ++C : --I, g = {
62
+ ariaLabel: a,
63
+ ariaColumnIndex: e.ariaColumnIndex
64
+ }, n = e.left !== void 0 ? t.isRtl ? { left: e.right, right: e.left } : { left: e.left, right: e.right } : {}, m = {
65
+ columnId: N.getFilterColumnId(e.id),
66
+ navigatable: e.navigatable || t.navigatable,
67
+ style: n,
68
+ className: S("k-table-th", u(e.field, e.locked) || void 0),
69
+ role: "columnheader",
70
+ ...g
71
+ }, v = o && (e.filterCell ? /* @__PURE__ */ f.createElement(e.filterCell, { ...o }) : /* @__PURE__ */ f.createElement(R, { size: t.size, ...o })), h = O(t.cells, e.cells);
72
+ if (h && h.filterCell) {
73
+ const s = h.filterCell;
74
+ return /* @__PURE__ */ f.createElement(s, { key: d, ...o, thProps: m, index: C }, v);
75
+ }
76
+ return /* @__PURE__ */ f.createElement(z, { key: d, ...m }, v);
77
+ });
78
+ return /* @__PURE__ */ f.createElement("tr", { className: P, "aria-rowindex": t.ariaRowIndex, role: "row" }, L);
79
+ };
93
80
  export {
94
- A as FILTER_ROW_CLASS,
95
- S as FilterRow
81
+ P as FILTER_ROW_CLASS,
82
+ $ as FilterRow
96
83
  };
@@ -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 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;
8
+ "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("react"),d=require("../columnMenu/GridColumnMenuWrapper.js"),a=require("../messages/index.js"),s=require("@progress/kendo-react-intl"),m=require("@progress/kendo-react-common");function b(e){const n=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const t in e)if(t!=="default"){const c=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(n,t,c.get?c:{enumerable:!0,get:()=>e[t]})}}return n.default=e,Object.freeze(n)}const r=b(u),g=e=>{const n=m.useId(),t=s.useLocalization(),c=e.id||n,{columnMenuWrapperProps:l}=e,o=[r.createElement("span",{key:0,className:"k-checkbox-wrap"},r.createElement("input",{id:c,type:"checkbox",tabIndex:-1,className:"k-checkbox k-checkbox-md k-rounded-md","aria-label":t.toLanguageString(a.selectRow,a.messages[a.selectRow]),"aria-checked":e.selectionValue,checked:e.selectionValue,onChange:i=>e.selectionChange({field:e.field,syntheticEvent:i})})),l.columnMenu&&r.createElement(d.GridColumnMenuWrapper,{...l})];return e.render?e.render.call(void 0,o,e):o};exports.GridHeaderSelectionCell=g;
@@ -6,40 +6,33 @@
6
6
  *-------------------------------------------------------------------------------------------
7
7
  */
8
8
  "use client";
9
- import * as e from "react";
10
- import { GridColumnMenuWrapper as c } from "../columnMenu/GridColumnMenuWrapper.mjs";
11
- import { selectRow as o, messages as a } from "../messages/index.mjs";
12
- import { registerForLocalization as p, provideLocalizationService as l } from "@progress/kendo-react-intl";
13
- import { withIdHOC as d, withUnstyledHOC as h } from "@progress/kendo-react-common";
14
- class i extends e.Component {
15
- get _inputId() {
16
- return this.props.id;
17
- }
18
- render() {
19
- const n = l(this), { columnMenuWrapperProps: t } = this.props, r = [
20
- /* @__PURE__ */ e.createElement("span", { key: 0, className: "k-checkbox-wrap" }, /* @__PURE__ */ e.createElement(
21
- "input",
22
- {
23
- id: this._inputId,
24
- type: "checkbox",
25
- tabIndex: -1,
26
- className: "k-checkbox k-checkbox-md k-rounded-md",
27
- "aria-label": n.toLanguageString(o, a[o]),
28
- "aria-checked": this.props.selectionValue,
29
- checked: this.props.selectionValue,
30
- onChange: (s) => this.props.selectionChange({
31
- field: this.props.field,
32
- syntheticEvent: s
33
- })
34
- }
35
- )),
36
- t.columnMenu && /* @__PURE__ */ e.createElement(c, { ...t })
37
- ];
38
- return this.props.render ? this.props.render.call(void 0, r, this.props) : r;
39
- }
40
- }
41
- p(i);
42
- const C = d(h(i));
9
+ import * as n from "react";
10
+ import { GridColumnMenuWrapper as d } from "../columnMenu/GridColumnMenuWrapper.mjs";
11
+ import { selectRow as a, messages as m } from "../messages/index.mjs";
12
+ import { useLocalization as u } from "@progress/kendo-react-intl";
13
+ import { useId as s } from "@progress/kendo-react-common";
14
+ const b = (e) => {
15
+ const l = s(), o = u(), i = e.id || l, { columnMenuWrapperProps: t } = e, c = [
16
+ /* @__PURE__ */ n.createElement("span", { key: 0, className: "k-checkbox-wrap" }, /* @__PURE__ */ n.createElement(
17
+ "input",
18
+ {
19
+ id: i,
20
+ type: "checkbox",
21
+ tabIndex: -1,
22
+ className: "k-checkbox k-checkbox-md k-rounded-md",
23
+ "aria-label": o.toLanguageString(a, m[a]),
24
+ "aria-checked": e.selectionValue,
25
+ checked: e.selectionValue,
26
+ onChange: (r) => e.selectionChange({
27
+ field: e.field,
28
+ syntheticEvent: r
29
+ })
30
+ }
31
+ )),
32
+ t.columnMenu && /* @__PURE__ */ n.createElement(d, { ...t })
33
+ ];
34
+ return e.render ? e.render.call(void 0, c, e) : c;
35
+ };
43
36
  export {
44
- C as GridHeaderSelectionCell
37
+ b as GridHeaderSelectionCell
45
38
  };
@@ -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 u=require("react"),g=require("../drag/GroupingIndicator.js"),l=require("@progress/kendo-react-intl"),s=require("../messages/index.js");function h(t){const o=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const e in t)if(e!=="default"){const r=Object.getOwnPropertyDescriptor(t,e);Object.defineProperty(o,e,r.get?r:{enumerable:!0,get:()=>t[e]})}}return o.default=t,Object.freeze(o)}const i=h(u);class c extends i.Component{constructor(){super(...arguments),this.onGroupRemove=(o,e)=>{const r=this.props.group.slice();r.splice(e,1),this.props.groupChange(r,o)},this.onGroupSortChange=(o,e,r,n)=>{const a=Object.assign({},r,{dir:n}),p=this.props.group.slice();p.splice(e,1,a),this.props.groupChange(p,o)}}render(){const e=(this.props.group||[]).map((r,n)=>i.createElement(g.GroupingIndicator,{key:n,index:n,dir:r.dir||"asc",title:this.props.resolveTitle(r.field),onRemove:a=>{this.onGroupRemove(a,n)},onSortChange:(a,p)=>{this.onGroupSortChange(a,n,r,p)},onPress:this.props.pressHandler,onDrag:this.props.dragHandler,onRelease:this.props.releaseHandler,onContextMenu:this.props.onContextMenu}));return i.createElement("div",{ref:this.props.refCallback,className:"k-grouping-header",role:"toolbar","aria-label":l.provideLocalizationService(this).toLanguageString(s.groupPanelAriaLabel,s.messages[s.groupPanelAriaLabel]),"aria-controls":this.props.ariaControls||""},i.createElement("div",{className:"k-chip-list k-chip-list-md",role:"none"},e),i.createElement("div",{className:"k-grouping-drop-container"},!e.length&&l.provideLocalizationService(this).toLanguageString(s.groupPanelEmpty,s.messages[s.groupPanelEmpty])," "))}}l.registerForLocalization(c);exports.GroupPanel=c;
8
+ "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const m=require("react"),p=require("../drag/GroupingIndicator.js"),b=require("@progress/kendo-react-intl"),a=require("../messages/index.js");function f(e){const l=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const r in e)if(r!=="default"){const c=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(l,r,c.get?c:{enumerable:!0,get:()=>e[r]})}}return l.default=e,Object.freeze(l)}const i=f(m),P=e=>{const l=(o,n)=>{const t=e.group.slice();t.splice(n,1),e.groupChange(t,o)},r=(o,n,t,s)=>{const d=Object.assign({},t,{dir:s}),g=e.group.slice();g.splice(n,1,d),e.groupChange(g,o)},c=b.useLocalization(),u=(e.group||[]).map((o,n)=>i.createElement(p.GroupingIndicator,{key:n,index:n,dir:o.dir||"asc",title:e.resolveTitle(o.field),onRemove:t=>{l(t,n)},onSortChange:(t,s)=>{r(t,n,o,s)},onPress:e.pressHandler,onDrag:e.dragHandler,onRelease:e.releaseHandler,onContextMenu:e.onContextMenu}));return i.createElement("div",{ref:e.refCallback,className:"k-grouping-header",role:"toolbar","aria-label":c.toLanguageString(a.groupPanelAriaLabel,a.messages[a.groupPanelAriaLabel]),"aria-controls":e.ariaControls||""},i.createElement("div",{className:"k-chip-list k-chip-list-md",role:"none"},u),i.createElement("div",{className:"k-grouping-drop-container"},!u.length&&c.toLanguageString(a.groupPanelEmpty,a.messages[a.groupPanelEmpty])," "))};exports.GroupPanel=P;
@@ -6,55 +6,49 @@
6
6
  *-------------------------------------------------------------------------------------------
7
7
  */
8
8
  "use client";
9
- import * as t from "react";
10
- import { GroupingIndicator as c } from "../drag/GroupingIndicator.mjs";
11
- import { provideLocalizationService as a, registerForLocalization as u } from "@progress/kendo-react-intl";
12
- import { groupPanelAriaLabel as i, messages as l, groupPanelEmpty as g } from "../messages/index.mjs";
13
- class h extends t.Component {
14
- constructor() {
15
- super(...arguments), this.onGroupRemove = (p, r) => {
16
- const o = this.props.group.slice();
17
- o.splice(r, 1), this.props.groupChange(o, p);
18
- }, this.onGroupSortChange = (p, r, o, e) => {
19
- const s = Object.assign({}, o, { dir: e }), n = this.props.group.slice();
20
- n.splice(r, 1, s), this.props.groupChange(n, p);
21
- };
22
- }
23
- render() {
24
- const r = (this.props.group || []).map((o, e) => /* @__PURE__ */ t.createElement(
25
- c,
26
- {
27
- key: e,
28
- index: e,
29
- dir: o.dir || "asc",
30
- title: this.props.resolveTitle(o.field),
31
- onRemove: (s) => {
32
- this.onGroupRemove(s, e);
33
- },
34
- onSortChange: (s, n) => {
35
- this.onGroupSortChange(s, e, o, n);
36
- },
37
- onPress: this.props.pressHandler,
38
- onDrag: this.props.dragHandler,
39
- onRelease: this.props.releaseHandler,
40
- onContextMenu: this.props.onContextMenu
41
- }
42
- ));
43
- return /* @__PURE__ */ t.createElement(
44
- "div",
45
- {
46
- ref: this.props.refCallback,
47
- className: "k-grouping-header",
48
- role: "toolbar",
49
- "aria-label": a(this).toLanguageString(i, l[i]),
50
- "aria-controls": this.props.ariaControls || ""
9
+ import * as r from "react";
10
+ import { GroupingIndicator as h } from "../drag/GroupingIndicator.mjs";
11
+ import { useLocalization as C } from "@progress/kendo-react-intl";
12
+ import { groupPanelAriaLabel as c, messages as g, groupPanelEmpty as u } from "../messages/index.mjs";
13
+ const P = (e) => {
14
+ const m = (a, o) => {
15
+ const n = e.group.slice();
16
+ n.splice(o, 1), e.groupChange(n, a);
17
+ }, d = (a, o, n, t) => {
18
+ const p = Object.assign({}, n, { dir: t }), s = e.group.slice();
19
+ s.splice(o, 1, p), e.groupChange(s, a);
20
+ }, l = C(), i = (e.group || []).map((a, o) => /* @__PURE__ */ r.createElement(
21
+ h,
22
+ {
23
+ key: o,
24
+ index: o,
25
+ dir: a.dir || "asc",
26
+ title: e.resolveTitle(a.field),
27
+ onRemove: (n) => {
28
+ m(n, o);
51
29
  },
52
- /* @__PURE__ */ t.createElement("div", { className: "k-chip-list k-chip-list-md", role: "none" }, r),
53
- /* @__PURE__ */ t.createElement("div", { className: "k-grouping-drop-container" }, !r.length && a(this).toLanguageString(g, l[g]), " ")
54
- );
55
- }
56
- }
57
- u(h);
30
+ onSortChange: (n, t) => {
31
+ d(n, o, a, t);
32
+ },
33
+ onPress: e.pressHandler,
34
+ onDrag: e.dragHandler,
35
+ onRelease: e.releaseHandler,
36
+ onContextMenu: e.onContextMenu
37
+ }
38
+ ));
39
+ return /* @__PURE__ */ r.createElement(
40
+ "div",
41
+ {
42
+ ref: e.refCallback,
43
+ className: "k-grouping-header",
44
+ role: "toolbar",
45
+ "aria-label": l.toLanguageString(c, g[c]),
46
+ "aria-controls": e.ariaControls || ""
47
+ },
48
+ /* @__PURE__ */ r.createElement("div", { className: "k-chip-list k-chip-list-md", role: "none" }, i),
49
+ /* @__PURE__ */ r.createElement("div", { className: "k-grouping-drop-container" }, !i.length && l.toLanguageString(u, g[u]), " ")
50
+ );
51
+ };
58
52
  export {
59
- h as GroupPanel
53
+ P as GroupPanel
60
54
  };
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"),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;
8
+ "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const N=require("react"),r=require("@progress/kendo-react-common"),f=require("@progress/kendo-react-data-tools");function h(e){const n=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const t in e)if(t!=="default"){const l=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(n,t,l.get?l:{enumerable:!0,get:()=>e[t]})}}return n.default=e,Object.freeze(n)}const a=h(N),m=a.forwardRef((e,n)=>{const t=a.useRef(null),l=a.useRef(null),o=a.useRef(!1),b=r.useRtl(e.elemRef);e.columnResize&&e.columnResize.setIsRtl(b==="rtl"),a.useImperativeHandle(n,()=>({setScrollLeft:c=>{t.current&&t.current.scrollLeft!==c&&(o.current=!0,t.current.scrollLeft=c)},setWidth:c=>{l.current&&(l.current.style.width=c+"px")},table:()=>l.current}));const g=c=>{if(o.current){o.current=!1;return}if(!t.current)return;const d=t.current.scrollLeft,i=e.scrollableDataElement();i&&i.scrollLeft!==d&&(i.scrollLeft=d)},u=r.useUnstyled(),s=u&&u.uGrid?u.uGrid:r.uGrid,{size:R="md"}=e;return e.staticHeaders?a.createElement("div",{ref:e.elemRef,className:r.classNames(s.header({draggable:e.draggable}),e.className),role:"presentation"},a.createElement("div",{ref:t,className:r.classNames(s.headerWrap({})),style:e.hasScrollbarWidth?{}:{borderWidth:0},onScroll:g,role:"presentation"},a.createElement("table",{ref:l,className:r.classNames(s.headerTable({size:R}),e.className),role:"presentation"},a.createElement("colgroup",{ref:c=>{e.columnResize.colGroupHeader=c}},e.cols),a.createElement("thead",{className:r.classNames(s.tableThead({})),role:"rowgroup",...f.tableKeyboardNavigationHeaderAttributes},e.headerRow,e.filterRow)))):a.createElement("thead",{role:"presentation",className:r.classNames(s.thead({draggable:e.draggable}),e.className),...f.tableKeyboardNavigationHeaderAttributes},e.headerRow,e.filterRow)});m.displayName="KendoReactHeader";exports.Header=m;
package/header/Header.mjs CHANGED
@@ -6,90 +6,86 @@
6
6
  *-------------------------------------------------------------------------------------------
7
7
  */
8
8
  "use client";
9
- import * as s from "react";
10
- import { getScrollbarWidth as o, uGrid as i, classNames as r } from "@progress/kendo-react-common";
11
- import { isRtl as h, tableKeyboardNavigationHeaderAttributes as a } from "@progress/kendo-react-data-tools";
12
- class d extends s.Component {
13
- constructor() {
14
- super(...arguments), this.headerWrap = null, this.table = null, this.syncScroll = !1, this.scrollbarWidth = o(), this.onScroll = (e) => {
15
- if (this.syncScroll) {
16
- this.syncScroll = !1;
17
- return;
18
- }
19
- if (!this.headerWrap)
20
- return;
21
- const l = this.headerWrap.scrollLeft, t = this.props.scrollableDataElement();
22
- t && t.scrollLeft !== l && (t.scrollLeft = l);
23
- };
24
- }
25
- get element() {
26
- return this.props.elemRef.current;
27
- }
28
- componentDidMount() {
29
- const e = h(this.element);
30
- this.props.columnResize && this.props.columnResize.setIsRtl(e), this.forceUpdate();
31
- }
32
- /**
33
- *
34
- * @param scrollLeft - Scrolls to the left (in pixels).
35
- */
36
- setScrollLeft(e) {
37
- this.headerWrap && this.headerWrap.scrollLeft !== e && (this.syncScroll = !0, this.headerWrap.scrollLeft = e);
38
- }
39
- /**
40
- *
41
- * @param width - Scrolls the width (in pixels).
42
- */
43
- setWidth(e) {
44
- this.table && (this.table.style.width = e + "px");
45
- }
46
- render() {
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(
9
+ import * as t from "react";
10
+ import { useRtl as h, useUnstyled as g, uGrid as N, classNames as c } from "@progress/kendo-react-common";
11
+ import { tableKeyboardNavigationHeaderAttributes as u } from "@progress/kendo-react-data-tools";
12
+ const E = t.forwardRef((e, f) => {
13
+ const l = t.useRef(null), n = t.useRef(null), s = t.useRef(!1), m = h(e.elemRef);
14
+ e.columnResize && e.columnResize.setIsRtl(m === "rtl"), t.useImperativeHandle(f, () => ({
15
+ setScrollLeft: (r) => {
16
+ l.current && l.current.scrollLeft !== r && (s.current = !0, l.current.scrollLeft = r);
17
+ },
18
+ setWidth: (r) => {
19
+ n.current && (n.current.style.width = r + "px");
20
+ },
21
+ table: () => n.current
22
+ }));
23
+ const R = (r) => {
24
+ if (s.current) {
25
+ s.current = !1;
26
+ return;
27
+ }
28
+ if (!l.current)
29
+ return;
30
+ const i = l.current.scrollLeft, d = e.scrollableDataElement();
31
+ d && d.scrollLeft !== i && (d.scrollLeft = i);
32
+ }, o = g(), a = o && o.uGrid ? o.uGrid : N, { size: b = "md" } = e;
33
+ return e.staticHeaders ? /* @__PURE__ */ t.createElement(
34
+ "div",
35
+ {
36
+ ref: e.elemRef,
37
+ className: c(a.header({ draggable: e.draggable }), e.className),
38
+ role: "presentation"
39
+ },
40
+ /* @__PURE__ */ t.createElement(
49
41
  "div",
50
42
  {
51
- ref: this.props.elemRef,
52
- className: r(e.header({ draggable: this.props.draggable }), this.props.className),
43
+ ref: l,
44
+ className: c(a.headerWrap({})),
45
+ style: e.hasScrollbarWidth ? {} : { borderWidth: 0 },
46
+ onScroll: R,
53
47
  role: "presentation"
54
48
  },
55
- /* @__PURE__ */ s.createElement(
56
- "div",
49
+ /* @__PURE__ */ t.createElement(
50
+ "table",
57
51
  {
58
- ref: (t) => {
59
- this.headerWrap = t;
60
- },
61
- className: r(e.headerWrap({})),
62
- style: this.props.hasScrollbarWidth ? {} : { borderWidth: 0 },
63
- onScroll: this.onScroll,
52
+ ref: n,
53
+ className: c(a.headerTable({ size: b }), e.className),
64
54
  role: "presentation"
65
55
  },
66
- /* @__PURE__ */ s.createElement(
67
- "table",
56
+ /* @__PURE__ */ t.createElement(
57
+ "colgroup",
58
+ {
59
+ ref: (r) => {
60
+ e.columnResize.colGroupHeader = r;
61
+ }
62
+ },
63
+ e.cols
64
+ ),
65
+ /* @__PURE__ */ t.createElement(
66
+ "thead",
68
67
  {
69
- ref: (t) => {
70
- this.table = t;
71
- },
72
- className: r(e.headerTable({ size: l }), this.props.className),
73
- role: "presentation"
68
+ className: c(a.tableThead({})),
69
+ role: "rowgroup",
70
+ ...u
74
71
  },
75
- /* @__PURE__ */ s.createElement("colgroup", { ref: (t) => {
76
- this.props.columnResize.colGroupHeader = t;
77
- } }, this.props.cols),
78
- /* @__PURE__ */ s.createElement("thead", { className: r(e.tableThead({})), role: "rowgroup", ...a }, this.props.headerRow, this.props.filterRow)
72
+ e.headerRow,
73
+ e.filterRow
79
74
  )
80
75
  )
81
- ) : /* @__PURE__ */ s.createElement(
82
- "thead",
83
- {
84
- role: "presentation",
85
- className: r(e.thead({ draggable: this.props.draggable }), this.props.className),
86
- ...a
87
- },
88
- this.props.headerRow,
89
- this.props.filterRow
90
- );
91
- }
92
- }
76
+ )
77
+ ) : /* @__PURE__ */ t.createElement(
78
+ "thead",
79
+ {
80
+ role: "presentation",
81
+ className: c(a.thead({ draggable: e.draggable }), e.className),
82
+ ...u
83
+ },
84
+ e.headerRow,
85
+ e.filterRow
86
+ );
87
+ });
88
+ E.displayName = "KendoReactHeader";
93
89
  export {
94
- d as Header
90
+ E as Header
95
91
  };
@@ -61,12 +61,14 @@ const $ = {
61
61
  ];
62
62
  }, I = (t) => t.map((n) => {
63
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
- })),
64
+ u(
65
+ f.headerTh({
66
+ first: l.kFirst,
67
+ filterable: !!c,
68
+ locked: l.locked,
69
+ sorted: e.sort && e.sort.some((a) => a.field === l.field)
70
+ })
71
+ ),
70
72
  l.headerClassName
71
73
  );
72
74
  l.locked === !1 && (l.left = 0);
@@ -140,29 +142,24 @@ const $ = {
140
142
  const a = y.headerCell;
141
143
  return /* @__PURE__ */ r.createElement(a, { ...M.props, key: k, thProps: w, index: n }, z);
142
144
  }
143
- return /* @__PURE__ */ r.createElement(
144
- J,
145
+ return /* @__PURE__ */ r.createElement(J, { ...w, key: k }, z);
146
+ });
147
+ return e.columnsMap.map(
148
+ (t, n) => e.pressHandler && /* @__PURE__ */ r.createElement(
149
+ U,
145
150
  {
146
- ...w,
147
- key: k
151
+ key: n,
152
+ pressHandler: e.pressHandler,
153
+ dragHandler: e.dragHandler,
154
+ releaseHandler: e.releaseHandler,
155
+ ariaRowIndex: n + 1,
156
+ dragClue: e.dragClue,
157
+ headerRef: e.headerRef,
158
+ containerRef: e.containerRef
148
159
  },
149
- z
150
- );
151
- });
152
- return e.columnsMap.map((t, n) => e.pressHandler && /* @__PURE__ */ r.createElement(
153
- U,
154
- {
155
- key: n,
156
- pressHandler: e.pressHandler,
157
- dragHandler: e.dragHandler,
158
- releaseHandler: e.releaseHandler,
159
- ariaRowIndex: n + 1,
160
- dragClue: e.dragClue,
161
- headerRef: e.headerRef,
162
- containerRef: e.containerRef
163
- },
164
- I(t)
165
- ) || /* @__PURE__ */ r.createElement("tr", { key: n, className: u(f.simpletr({})), role: "row", "aria-rowindex": n + 1 }, I(t)));
160
+ I(t)
161
+ ) || /* @__PURE__ */ r.createElement("tr", { key: n, className: u(f.simpletr({})), role: "row", "aria-rowindex": n + 1 }, I(t))
162
+ );
166
163
  };
167
164
  export {
168
165
  ce as HeaderRow