@progress/kendo-react-grid 7.2.4-develop.2 → 7.2.4-develop.4

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 (174) hide show
  1. package/Grid.js +8 -0
  2. package/Grid.mjs +1108 -0
  3. package/GridColumn.js +8 -0
  4. package/GridColumn.mjs +53 -0
  5. package/GridNoRecords.js +8 -0
  6. package/GridNoRecords.mjs +25 -0
  7. package/GridToolbar.js +8 -0
  8. package/GridToolbar.mjs +39 -0
  9. package/StatusBar.js +8 -0
  10. package/StatusBar.mjs +53 -0
  11. package/VirtualScroll.js +8 -0
  12. package/VirtualScroll.mjs +128 -0
  13. package/VirtualScrollFixed.js +8 -0
  14. package/VirtualScrollFixed.mjs +86 -0
  15. package/cells/GridCell.js +8 -0
  16. package/cells/GridCell.mjs +57 -0
  17. package/cells/GridDetailCell.js +8 -0
  18. package/cells/GridDetailCell.mjs +30 -0
  19. package/cells/GridDetailHierarchyCell.js +8 -0
  20. package/cells/GridDetailHierarchyCell.mjs +17 -0
  21. package/cells/GridEditCell.js +8 -0
  22. package/cells/GridEditCell.mjs +172 -0
  23. package/cells/GridFilterCell.js +8 -0
  24. package/cells/GridFilterCell.mjs +145 -0
  25. package/cells/GridGroupCell.js +8 -0
  26. package/cells/GridGroupCell.mjs +115 -0
  27. package/cells/GridHierarchyCell.js +8 -0
  28. package/cells/GridHierarchyCell.mjs +84 -0
  29. package/cells/GridSelectionCell.js +8 -0
  30. package/cells/GridSelectionCell.mjs +54 -0
  31. package/columnMenu/GridColumnMenuCheckboxFilter.js +8 -0
  32. package/columnMenu/GridColumnMenuCheckboxFilter.mjs +199 -0
  33. package/columnMenu/GridColumnMenuColumnsList.js +8 -0
  34. package/columnMenu/GridColumnMenuColumnsList.mjs +60 -0
  35. package/columnMenu/GridColumnMenuFilter.js +8 -0
  36. package/columnMenu/GridColumnMenuFilter.mjs +188 -0
  37. package/columnMenu/GridColumnMenuFilterCell.js +8 -0
  38. package/columnMenu/GridColumnMenuFilterCell.mjs +96 -0
  39. package/columnMenu/GridColumnMenuFilterUI.js +8 -0
  40. package/columnMenu/GridColumnMenuFilterUI.mjs +36 -0
  41. package/columnMenu/GridColumnMenuGroup.js +8 -0
  42. package/columnMenu/GridColumnMenuGroup.mjs +50 -0
  43. package/columnMenu/GridColumnMenuItem.js +8 -0
  44. package/columnMenu/GridColumnMenuItem.mjs +22 -0
  45. package/columnMenu/GridColumnMenuItemContent.js +8 -0
  46. package/columnMenu/GridColumnMenuItemContent.mjs +30 -0
  47. package/columnMenu/GridColumnMenuItemGroup.js +8 -0
  48. package/columnMenu/GridColumnMenuItemGroup.mjs +30 -0
  49. package/columnMenu/GridColumnMenuSort.js +8 -0
  50. package/columnMenu/GridColumnMenuSort.mjs +75 -0
  51. package/columnMenu/GridColumnMenuWrapper.js +8 -0
  52. package/columnMenu/GridColumnMenuWrapper.mjs +91 -0
  53. package/constants/index.js +8 -0
  54. package/constants/index.mjs +15 -0
  55. package/dist/cdn/js/kendo-react-grid.js +8 -5
  56. package/drag/ColumnDraggable.js +8 -0
  57. package/drag/ColumnDraggable.mjs +43 -0
  58. package/drag/ColumnResize.js +8 -0
  59. package/drag/ColumnResize.mjs +128 -0
  60. package/drag/CommonDragLogic.js +8 -0
  61. package/drag/CommonDragLogic.mjs +104 -0
  62. package/drag/GroupingIndicator.js +8 -0
  63. package/drag/GroupingIndicator.mjs +91 -0
  64. package/filterCommon.js +8 -0
  65. package/filterCommon.mjs +103 -0
  66. package/footer/Footer.js +8 -0
  67. package/footer/Footer.mjs +76 -0
  68. package/footer/FooterRow.js +8 -0
  69. package/footer/FooterRow.mjs +46 -0
  70. package/header/FilterRow.js +8 -0
  71. package/header/FilterRow.mjs +96 -0
  72. package/header/GridHeaderCell.js +8 -0
  73. package/header/GridHeaderCell.mjs +38 -0
  74. package/header/GridHeaderSelectionCell.js +8 -0
  75. package/header/GridHeaderSelectionCell.mjs +44 -0
  76. package/header/GroupPanel.js +8 -0
  77. package/header/GroupPanel.mjs +60 -0
  78. package/header/Header.js +8 -0
  79. package/header/Header.mjs +107 -0
  80. package/header/HeaderRow.js +8 -0
  81. package/header/HeaderRow.mjs +155 -0
  82. package/index.d.mts +2771 -5
  83. package/index.d.ts +2771 -57
  84. package/index.js +8 -5
  85. package/index.mjs +89 -3845
  86. package/interfaces/GridSortSettings.js +8 -0
  87. package/interfaces/GridSortSettings.mjs +12 -0
  88. package/messages/index.js +8 -0
  89. package/messages/index.mjs +105 -0
  90. package/package-metadata.js +8 -0
  91. package/package-metadata.mjs +19 -0
  92. package/package.json +10 -10
  93. package/paging/GridPagerSettings.js +8 -0
  94. package/paging/GridPagerSettings.mjs +28 -0
  95. package/rows/GridDetailRow.js +8 -0
  96. package/rows/GridDetailRow.mjs +20 -0
  97. package/rows/GridRow.js +8 -0
  98. package/rows/GridRow.mjs +51 -0
  99. package/utils/index.js +8 -0
  100. package/utils/index.mjs +180 -0
  101. package/Grid.d.ts +0 -267
  102. package/GridColumn.d.ts +0 -28
  103. package/GridNoRecords.d.ts +0 -40
  104. package/GridToolbar.d.ts +0 -54
  105. package/ScrollMode.d.ts +0 -5
  106. package/StatusBar.d.ts +0 -51
  107. package/VirtualScroll.d.ts +0 -51
  108. package/VirtualScrollFixed.d.ts +0 -53
  109. package/cells/GridCell.d.ts +0 -6
  110. package/cells/GridDetailCell.d.ts +0 -18
  111. package/cells/GridDetailHierarchyCell.d.ts +0 -10
  112. package/cells/GridEditCell.d.ts +0 -9
  113. package/cells/GridFilterCell.d.ts +0 -20
  114. package/cells/GridGroupCell.d.ts +0 -9
  115. package/cells/GridHierarchyCell.d.ts +0 -9
  116. package/cells/GridSelectionCell.d.ts +0 -9
  117. package/columnMenu/GridColumnMenuCheckboxFilter.d.ts +0 -122
  118. package/columnMenu/GridColumnMenuColumnsList.d.ts +0 -31
  119. package/columnMenu/GridColumnMenuFilter.d.ts +0 -165
  120. package/columnMenu/GridColumnMenuFilterCell.d.ts +0 -37
  121. package/columnMenu/GridColumnMenuFilterUI.d.ts +0 -12
  122. package/columnMenu/GridColumnMenuGroup.d.ts +0 -77
  123. package/columnMenu/GridColumnMenuItem.d.ts +0 -40
  124. package/columnMenu/GridColumnMenuItemContent.d.ts +0 -24
  125. package/columnMenu/GridColumnMenuItemGroup.d.ts +0 -20
  126. package/columnMenu/GridColumnMenuSort.d.ts +0 -89
  127. package/columnMenu/GridColumnMenuWrapper.d.ts +0 -49
  128. package/constants/index.d.ts +0 -10
  129. package/drag/ColumnDraggable.d.ts +0 -38
  130. package/drag/ColumnResize.d.ts +0 -37
  131. package/drag/CommonDragLogic.d.ts +0 -44
  132. package/drag/GroupingIndicator.d.ts +0 -41
  133. package/filterCommon.d.ts +0 -73
  134. package/footer/Footer.d.ts +0 -38
  135. package/footer/FooterRow.d.ts +0 -25
  136. package/header/FilterRow.d.ts +0 -38
  137. package/header/GridHeaderCell.d.ts +0 -56
  138. package/header/GridHeaderSelectionCell.d.ts +0 -10
  139. package/header/GroupPanel.d.ts +0 -26
  140. package/header/Header.d.ts +0 -46
  141. package/header/HeaderRow.d.ts +0 -51
  142. package/interfaces/GridCellProps.d.ts +0 -73
  143. package/interfaces/GridCellsSettings.d.ts +0 -115
  144. package/interfaces/GridColumnMenuBaseProps.d.ts +0 -18
  145. package/interfaces/GridColumnMenuColumnProps.d.ts +0 -29
  146. package/interfaces/GridColumnMenuFilterBaseProps.d.ts +0 -28
  147. package/interfaces/GridColumnMenuFilterUIProps.d.ts +0 -35
  148. package/interfaces/GridColumnMenuGroupBaseProps.d.ts +0 -23
  149. package/interfaces/GridColumnMenuProps.d.ts +0 -12
  150. package/interfaces/GridColumnMenuSortBaseProps.d.ts +0 -24
  151. package/interfaces/GridColumnProps.d.ts +0 -92
  152. package/interfaces/GridDetailRowProps.d.ts +0 -17
  153. package/interfaces/GridFilterCellProps.d.ts +0 -68
  154. package/interfaces/GridFilterOperator.d.ts +0 -10
  155. package/interfaces/GridFilterOperators.d.ts +0 -53
  156. package/interfaces/GridFooterCellProps.d.ts +0 -26
  157. package/interfaces/GridGroupableSettings.d.ts +0 -17
  158. package/interfaces/GridHeaderCellProps.d.ts +0 -24
  159. package/interfaces/GridNoRecordsProps.d.ts +0 -13
  160. package/interfaces/GridProps.d.ts +0 -333
  161. package/interfaces/GridRowProps.d.ts +0 -67
  162. package/interfaces/GridRowType.d.ts +0 -13
  163. package/interfaces/GridSelectableSettings.d.ts +0 -22
  164. package/interfaces/GridSortSettings.d.ts +0 -17
  165. package/interfaces/GridToolbarProps.d.ts +0 -37
  166. package/interfaces/VirtualScrollInterface.d.ts +0 -31
  167. package/interfaces/events.d.ts +0 -232
  168. package/messages/index.d.ts +0 -199
  169. package/package-metadata.d.ts +0 -9
  170. package/paging/GridPagerSettings.d.ts +0 -71
  171. package/paging/Page.d.ts +0 -17
  172. package/rows/GridDetailRow.d.ts +0 -55
  173. package/rows/GridRow.d.ts +0 -15
  174. package/utils/index.d.ts +0 -73
@@ -0,0 +1,172 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ "use client";
9
+ import * as a from "react";
10
+ import { getNestedValue as f } from "../utils/index.mjs";
11
+ import { NumericTextBox as b } from "@progress/kendo-react-inputs";
12
+ import { DatePicker as r } from "@progress/kendo-react-dateinputs";
13
+ import { classNames as s, useId as N } from "@progress/kendo-react-common";
14
+ import { useTableKeyboardNavigation as S } from "@progress/kendo-react-data-tools";
15
+ import { GRID_COL_INDEX_ATTRIBUTE as x } from "../constants/index.mjs";
16
+ const R = (e) => {
17
+ const c = f(e.field, e.dataItem);
18
+ let d = null;
19
+ const i = s("k-table-td", "k-grid-edit-cell", {
20
+ "k-selected": e.isSelected
21
+ }, e.className), C = N(), m = S(e.id);
22
+ let l = null, n = null;
23
+ const I = a.useCallback(
24
+ (t) => {
25
+ if (e.onChange) {
26
+ const h = t.target.type === "checkbox" ? t.target.checked : t.target.value;
27
+ e.onChange({
28
+ dataItem: e.dataItem,
29
+ dataIndex: e.dataIndex,
30
+ field: e.field,
31
+ syntheticEvent: t,
32
+ value: h
33
+ });
34
+ }
35
+ },
36
+ [e.onChange, e.dataItem, e.dataIndex, e.field]
37
+ ), u = a.useCallback((t) => {
38
+ e.onContextMenu && e.onContextMenu.call(void 0, t, e.dataItem, e.field);
39
+ }, [e.onContextMenu, e.dataItem, e.field]), k = a.useCallback(
40
+ (t) => {
41
+ e.onChange && e.onChange({
42
+ dataItem: e.dataItem,
43
+ dataIndex: e.dataIndex,
44
+ field: e.field,
45
+ syntheticEvent: t.syntheticEvent,
46
+ value: t.value
47
+ });
48
+ },
49
+ [e.onChange, e.dataItem, e.dataIndex, e.field]
50
+ );
51
+ switch (e.editor) {
52
+ case "numeric": {
53
+ l = {
54
+ onContextMenu: u,
55
+ colSpan: e.colSpan,
56
+ style: e.style,
57
+ className: i,
58
+ "aria-colindex": e.ariaColumnIndex,
59
+ "aria-selected": e.isSelected,
60
+ [x]: e.columnIndex,
61
+ role: "gridcell",
62
+ ...m
63
+ }, n = /* @__PURE__ */ a.createElement(
64
+ b,
65
+ {
66
+ width: "100%",
67
+ value: c === void 0 ? null : c,
68
+ onChange: k
69
+ }
70
+ ), d = /* @__PURE__ */ a.createElement(
71
+ "td",
72
+ {
73
+ ...l
74
+ },
75
+ n
76
+ );
77
+ break;
78
+ }
79
+ case "date":
80
+ l = {
81
+ onContextMenu: u,
82
+ colSpan: e.colSpan,
83
+ style: e.style,
84
+ className: i,
85
+ "aria-colindex": e.ariaColumnIndex,
86
+ "aria-selected": e.isSelected,
87
+ [x]: e.columnIndex,
88
+ role: "gridcell",
89
+ ...m
90
+ }, n = /* @__PURE__ */ a.createElement(
91
+ r,
92
+ {
93
+ width: "100%",
94
+ value: c,
95
+ onChange: k
96
+ }
97
+ ), d = /* @__PURE__ */ a.createElement(
98
+ "td",
99
+ {
100
+ ...l
101
+ },
102
+ n
103
+ );
104
+ break;
105
+ case "boolean":
106
+ l = {
107
+ onContextMenu: u,
108
+ colSpan: e.colSpan,
109
+ style: e.style,
110
+ className: i,
111
+ "aria-colindex": e.ariaColumnIndex,
112
+ "aria-selected": e.isSelected,
113
+ [x]: e.columnIndex,
114
+ role: "gridcell",
115
+ ...m
116
+ }, n = [
117
+ /* @__PURE__ */ a.createElement("span", { key: 1, className: "k-checkbox-wrap" }, /* @__PURE__ */ a.createElement(
118
+ "input",
119
+ {
120
+ checked: c || !1,
121
+ id: C,
122
+ type: "checkbox",
123
+ className: "k-checkbox k-checkbox-md k-rounded-md",
124
+ onChange: I
125
+ }
126
+ )),
127
+ /* @__PURE__ */ a.createElement("label", { className: "k-checkbox-label", htmlFor: C, key: 2 })
128
+ ], d = /* @__PURE__ */ a.createElement(
129
+ "td",
130
+ {
131
+ ...l
132
+ },
133
+ n
134
+ );
135
+ break;
136
+ default:
137
+ l = {
138
+ onContextMenu: u,
139
+ colSpan: e.colSpan,
140
+ style: e.style,
141
+ className: i,
142
+ "aria-colindex": e.ariaColumnIndex,
143
+ "aria-selected": e.isSelected,
144
+ [x]: e.columnIndex,
145
+ role: "gridcell",
146
+ ...m
147
+ }, n = /* @__PURE__ */ a.createElement(
148
+ "input",
149
+ {
150
+ style: { width: "100%" },
151
+ className: "k-input",
152
+ value: c || "",
153
+ onChange: I
154
+ }
155
+ ), d = /* @__PURE__ */ a.createElement(
156
+ "td",
157
+ {
158
+ ...l
159
+ },
160
+ n
161
+ );
162
+ }
163
+ const g = e.editor || "text", o = e.cells;
164
+ if (o && o.edit && o.edit[g]) {
165
+ const t = o.edit[g];
166
+ return /* @__PURE__ */ a.createElement(t, { ...e, tdProps: l }, n);
167
+ }
168
+ return e.render ? e.render.call(void 0, d, e) : d;
169
+ };
170
+ export {
171
+ R as GridEditCell
172
+ };
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const f=require("react"),g=require("@progress/kendo-react-buttons"),l=require("@progress/kendo-react-dropdowns"),c=require("@progress/kendo-react-inputs"),C=require("@progress/kendo-react-dateinputs"),n=require("../messages/index.js"),u=require("@progress/kendo-react-intl"),h=require("@progress/kendo-svg-icons"),p=require("../filterCommon.js"),m=require("@progress/kendo-react-common");function b(s){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(s){for(const t in s)if(t!=="default"){const o=Object.getOwnPropertyDescriptor(s,t);Object.defineProperty(e,t,o.get?o:{enumerable:!0,get:()=>s[t]})}}return e.default=s,Object.freeze(e)}const i=b(f);class d extends i.Component{constructor(e){super(e),this._inputRef=i.createRef(),this.renderOperatorEditor=t=>{if(this.props.filterType==="boolean")return;const o=this.props.operators.find(r=>r.operator===this.props.operator)||null;return i.createElement(l.DropDownList,{size:this.props.size,value:o,onChange:this.operatorChange,className:"k-dropdown-operator",iconClassName:"k-i-filter k-icon",svgIcon:h.filterIcon,data:this.props.operators,textField:"text",title:t.toLanguageString(n.filterChooseOperator,n.messages[n.filterChooseOperator]),popupSettings:{width:""}})},this.inputChange=this.inputChange.bind(this),this.clear=this.clear.bind(this),this.operatorChange=this.operatorChange.bind(this),this.boolDropdownChange=this.boolDropdownChange.bind(this)}render(){const e=u.provideLocalizationService(this),t=i.createElement("div",{className:"k-filtercell"},i.createElement("div",{className:"k-filtercell-wrapper"},this.filterComponent(this.props.filterType,this.props.value,this.props.booleanValues),i.createElement("div",{className:"k-filtercell-operator"},this.renderOperatorEditor(e)," ",i.createElement(g.Button,{size:this.props.size,icon:"filter-clear",svgIcon:h.filterClearIcon,className:m.classNames({"k-clear-button-visible":!!(!(this.props.value===null||this.props.value==="")||this.props.operator)}),title:e.toLanguageString(n.filterClearButton,n.messages[n.filterClearButton]),type:"button",onClick:this.clear,disabled:!(!(this.props.value===null||this.props.value==="")||this.props.operator)}))));return this.props.render?this.props.render.call(void 0,t,this.props):t}inputChange(e,t){p.cellInputChange(e,t,this.props)}operatorChange(e){p.cellOperatorChange(e,this.props.value,this.props.onChange)}boolDropdownChange(e){p.cellBoolDropdownChange(e,this.props.onChange)}clear(e){e.preventDefault(),this.props.onChange({value:"",operator:"",syntheticEvent:e}),this._inputRef.current&&(this._inputRef.current.element.value="",setTimeout(()=>{this._inputRef.current.element.focus()},0))}filterComponent(e,t,o){switch(e){case"numeric":return i.createElement(c.NumericTextBox,{ref:this._inputRef,size:this.props.size,value:t,onChange:r=>{this.inputChange(r.value,r.syntheticEvent)},title:this.props.title,ariaLabel:this.props.ariaLabel});case"date":return i.createElement(C.DatePicker,{ref:this._inputRef,size:this.props.size,value:t,onChange:r=>{this.inputChange(r.value,r.syntheticEvent)},title:this.props.title,ariaLabel:this.props.ariaLabel});case"boolean":{const r=a=>a==null;return i.createElement(l.DropDownList,{ref:this._inputRef,size:this.props.size,onChange:this.boolDropdownChange,value:o.find(a=>a.operator===(r(t)?"":t)),data:o,textField:"text",title:this.props.title,ariaLabel:this.props.ariaLabel})}default:return i.createElement(c.TextBox,{ref:this._inputRef,size:this.props.size,value:t||"",onChange:r=>{this.inputChange(r.target.value,r.syntheticEvent)},title:this.props.title,"aria-label":this.props.ariaLabel})}}}u.registerForLocalization(d);exports.GridFilterCell=d;
@@ -0,0 +1,145 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ "use client";
9
+ import * as i from "react";
10
+ import { Button as h } from "@progress/kendo-react-buttons";
11
+ import { DropDownList as a } from "@progress/kendo-react-dropdowns";
12
+ import { TextBox as c, NumericTextBox as u } from "@progress/kendo-react-inputs";
13
+ import { DatePicker as m } from "@progress/kendo-react-dateinputs";
14
+ import { filterChooseOperator as n, messages as p, filterClearButton as l } from "../messages/index.mjs";
15
+ import { provideLocalizationService as f, registerForLocalization as d } from "@progress/kendo-react-intl";
16
+ import { filterIcon as g, filterClearIcon as C } from "@progress/kendo-svg-icons";
17
+ import { cellInputChange as v, cellOperatorChange as b, cellBoolDropdownChange as z } from "../filterCommon.mjs";
18
+ import { classNames as E } from "@progress/kendo-react-common";
19
+ class L extends i.Component {
20
+ constructor(e) {
21
+ super(e), this._inputRef = i.createRef(), this.renderOperatorEditor = (t) => {
22
+ if (this.props.filterType === "boolean")
23
+ return;
24
+ const o = this.props.operators.find((r) => r.operator === this.props.operator) || null;
25
+ return /* @__PURE__ */ i.createElement(
26
+ a,
27
+ {
28
+ size: this.props.size,
29
+ value: o,
30
+ onChange: this.operatorChange,
31
+ className: "k-dropdown-operator",
32
+ iconClassName: "k-i-filter k-icon",
33
+ svgIcon: g,
34
+ data: this.props.operators,
35
+ textField: "text",
36
+ title: t.toLanguageString(n, p[n]),
37
+ popupSettings: {
38
+ width: ""
39
+ }
40
+ }
41
+ );
42
+ }, this.inputChange = this.inputChange.bind(this), this.clear = this.clear.bind(this), this.operatorChange = this.operatorChange.bind(this), this.boolDropdownChange = this.boolDropdownChange.bind(this);
43
+ }
44
+ /**
45
+ * @hidden
46
+ */
47
+ render() {
48
+ const e = f(this), t = /* @__PURE__ */ i.createElement("div", { className: "k-filtercell" }, /* @__PURE__ */ i.createElement("div", { className: "k-filtercell-wrapper" }, this.filterComponent(this.props.filterType, this.props.value, this.props.booleanValues), /* @__PURE__ */ i.createElement("div", { className: "k-filtercell-operator" }, this.renderOperatorEditor(e), " ", /* @__PURE__ */ i.createElement(
49
+ h,
50
+ {
51
+ size: this.props.size,
52
+ icon: "filter-clear",
53
+ svgIcon: C,
54
+ className: E({
55
+ "k-clear-button-visible": !!(!(this.props.value === null || this.props.value === "") || this.props.operator)
56
+ }),
57
+ title: e.toLanguageString(l, p[l]),
58
+ type: "button",
59
+ onClick: this.clear,
60
+ disabled: !(!(this.props.value === null || this.props.value === "") || this.props.operator)
61
+ }
62
+ ))));
63
+ return this.props.render ? this.props.render.call(void 0, t, this.props) : t;
64
+ }
65
+ inputChange(e, t) {
66
+ v(e, t, this.props);
67
+ }
68
+ operatorChange(e) {
69
+ b(e, this.props.value, this.props.onChange);
70
+ }
71
+ boolDropdownChange(e) {
72
+ z(e, this.props.onChange);
73
+ }
74
+ clear(e) {
75
+ e.preventDefault(), this.props.onChange({ value: "", operator: "", syntheticEvent: e }), this._inputRef.current && (this._inputRef.current.element.value = "", setTimeout(() => {
76
+ this._inputRef.current.element.focus();
77
+ }, 0));
78
+ }
79
+ filterComponent(e, t, o) {
80
+ switch (e) {
81
+ case "numeric":
82
+ return /* @__PURE__ */ i.createElement(
83
+ u,
84
+ {
85
+ ref: this._inputRef,
86
+ size: this.props.size,
87
+ value: t,
88
+ onChange: (r) => {
89
+ this.inputChange(r.value, r.syntheticEvent);
90
+ },
91
+ title: this.props.title,
92
+ ariaLabel: this.props.ariaLabel
93
+ }
94
+ );
95
+ case "date":
96
+ return /* @__PURE__ */ i.createElement(
97
+ m,
98
+ {
99
+ ref: this._inputRef,
100
+ size: this.props.size,
101
+ value: t,
102
+ onChange: (r) => {
103
+ this.inputChange(r.value, r.syntheticEvent);
104
+ },
105
+ title: this.props.title,
106
+ ariaLabel: this.props.ariaLabel
107
+ }
108
+ );
109
+ case "boolean": {
110
+ const r = (s) => s == null;
111
+ return /* @__PURE__ */ i.createElement(
112
+ a,
113
+ {
114
+ ref: this._inputRef,
115
+ size: this.props.size,
116
+ onChange: this.boolDropdownChange,
117
+ value: o.find((s) => s.operator === (r(t) ? "" : t)),
118
+ data: o,
119
+ textField: "text",
120
+ title: this.props.title,
121
+ ariaLabel: this.props.ariaLabel
122
+ }
123
+ );
124
+ }
125
+ default:
126
+ return /* @__PURE__ */ i.createElement(
127
+ c,
128
+ {
129
+ ref: this._inputRef,
130
+ size: this.props.size,
131
+ value: t || "",
132
+ onChange: (r) => {
133
+ this.inputChange(r.target.value, r.syntheticEvent);
134
+ },
135
+ title: this.props.title,
136
+ "aria-label": this.props.ariaLabel
137
+ }
138
+ );
139
+ }
140
+ }
141
+ }
142
+ d(L);
143
+ export {
144
+ L as GridFilterCell
145
+ };
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const b=require("@progress/kendo-react-common"),j=require("@progress/kendo-react-data-tools"),z=require("@progress/kendo-react-intl"),C=require("@progress/kendo-svg-icons"),A=require("react"),v=require("../messages/index.js");function G(e){const a=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(a,t,c.get?c:{enumerable:!0,get:()=>e[t]})}}return a.default=e,Object.freeze(a)}const n=G(A),K=e=>{let a=null;const{columnIndex:t,level:c,columnsCount:g,rowType:R,dataItem:o,field:w,onChange:d,expanded:r,render:x,dataIndex:f,ariaColumnIndex:M,isRtl:I}=e,s=w||"",N=j.useTableKeyboardNavigation(e.id),T=z.useLocalization();let i=null,m=null,y=null;const q=n.useCallback(l=>{l.isDefaultPrevented()||l.keyCode===b.Keys.enter&&d&&(l.preventDefault(),d({dataItem:o,dataIndex:f,syntheticEvent:l,field:void 0,value:!r}))},[r,d,o,f]),k=n.useCallback(l=>{e.onContextMenu&&e.onContextMenu.call(void 0,l,e.dataItem,e.field)},[e.onContextMenu,e.dataItem,e.field]),E=(l,O)=>{const D=r?v.groupCollapse:v.groupExpand,P=T.toLanguageString(D,v.messages[D]);return i={className:"k-table-td",style:{...e.style,...O},colSpan:l,key:"g-colspan",role:"gridcell","aria-selected":!1,"aria-expanded":r,"aria-colindex":M,onKeyDown:q,onContextMenu:k,...N},y=n.createElement("p",{className:"k-reset"},n.createElement("a",{onClick:h=>{h.preventDefault(),d&&d({dataItem:o,dataIndex:f,syntheticEvent:h,field:void 0,value:!r})},href:"#",tabIndex:-1,"aria-label":P},n.createElement(b.IconWrap,{name:r?"caret-alt-down":I?"caret-alt-left":"caret-alt-right",icon:r?C.caretAltDownIcon:I?C.caretAltLeftIcon:C.caretAltRightIcon})),o[s]instanceof Date&&o[s].toString?o[s].toString():o[s]),n.createElement("td",{...i,key:i.key},y)};t===void 0||c===void 0||t<c||g===void 0||R!=="groupHeader"||o[s]===void 0?(i={style:e.style,key:"g"+t,className:b.classNames("k-table-td","k-group-cell",{"k-grid-content-sticky":e.locked}),role:"gridcell",onContextMenu:k},a=n.createElement("td",{...i,key:i.key})):t<=c&&!e.locked?a=E(g-t,{}):t<=c&&e.locked&&(m={className:"k-table-td",role:"gridcell",colSpan:g-t,style:{borderLeftWidth:0,borderRightWidth:0},onContextMenu:k},a=n.createElement(n.Fragment,null,E(0,{position:"sticky",zIndex:2}),n.createElement("td",{...m})));const S=e.rowType||"data",u=e.cells;if(u&&u.group&&u.group[S]){const l=u.group[S];return n.createElement(l,{...e,tdProps:i,td2Props:m},y)}return x?x.call(void 0,a,e):a};exports.GridGroupCell=K;
@@ -0,0 +1,115 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ "use client";
9
+ import { Keys as K, classNames as L, IconWrap as T } from "@progress/kendo-react-common";
10
+ import { useTableKeyboardNavigation as z } from "@progress/kendo-react-data-tools";
11
+ import { useLocalization as P } from "@progress/kendo-react-intl";
12
+ import { caretAltDownIcon as W, caretAltLeftIcon as F, caretAltRightIcon as G } from "@progress/kendo-svg-icons";
13
+ import * as t from "react";
14
+ import { messages as H, groupCollapse as j, groupExpand as q } from "../messages/index.mjs";
15
+ const V = (e) => {
16
+ let c = null;
17
+ const { columnIndex: a, level: s, columnsCount: m, rowType: h, dataItem: n, field: w, onChange: r, expanded: o, render: C, dataIndex: f, ariaColumnIndex: D, isRtl: v } = e, d = w || "", N = z(e.id), S = P();
18
+ let i = null, g = null, y = null;
19
+ const M = t.useCallback(
20
+ (l) => {
21
+ l.isDefaultPrevented() || l.keyCode === K.enter && r && (l.preventDefault(), r({
22
+ dataItem: n,
23
+ dataIndex: f,
24
+ syntheticEvent: l,
25
+ field: void 0,
26
+ value: !o
27
+ }));
28
+ },
29
+ [o, r, n, f]
30
+ ), k = t.useCallback((l) => {
31
+ e.onContextMenu && e.onContextMenu.call(void 0, l, e.dataItem, e.field);
32
+ }, [e.onContextMenu, e.dataItem, e.field]), x = (l, R) => {
33
+ const I = o ? j : q, A = S.toLanguageString(I, H[I]);
34
+ return i = {
35
+ className: "k-table-td",
36
+ style: { ...e.style, ...R },
37
+ colSpan: l,
38
+ key: "g-colspan",
39
+ role: "gridcell",
40
+ "aria-selected": !1,
41
+ "aria-expanded": o,
42
+ "aria-colindex": D,
43
+ onKeyDown: M,
44
+ onContextMenu: k,
45
+ ...N
46
+ }, y = /* @__PURE__ */ t.createElement("p", { className: "k-reset" }, /* @__PURE__ */ t.createElement(
47
+ "a",
48
+ {
49
+ onClick: (E) => {
50
+ E.preventDefault(), r && r({
51
+ dataItem: n,
52
+ dataIndex: f,
53
+ syntheticEvent: E,
54
+ field: void 0,
55
+ value: !o
56
+ });
57
+ },
58
+ href: "#",
59
+ tabIndex: -1,
60
+ "aria-label": A
61
+ },
62
+ /* @__PURE__ */ t.createElement(
63
+ T,
64
+ {
65
+ name: o ? "caret-alt-down" : v ? "caret-alt-left" : "caret-alt-right",
66
+ icon: o ? W : v ? F : G
67
+ }
68
+ )
69
+ ), n[d] instanceof Date && n[d].toString ? n[d].toString() : n[d]), /* @__PURE__ */ t.createElement(
70
+ "td",
71
+ {
72
+ ...i,
73
+ key: i.key
74
+ },
75
+ y
76
+ );
77
+ };
78
+ a === void 0 || s === void 0 || a < s || m === void 0 || h !== "groupHeader" || n[d] === void 0 ? (i = {
79
+ style: e.style,
80
+ key: "g" + a,
81
+ className: L(
82
+ "k-table-td",
83
+ "k-group-cell",
84
+ { "k-grid-content-sticky": e.locked }
85
+ ),
86
+ role: "gridcell",
87
+ onContextMenu: k
88
+ }, c = /* @__PURE__ */ t.createElement(
89
+ "td",
90
+ {
91
+ ...i,
92
+ key: i.key
93
+ }
94
+ )) : a <= s && !e.locked ? c = x(m - a, {}) : a <= s && e.locked && (g = {
95
+ className: "k-table-td",
96
+ role: "gridcell",
97
+ colSpan: m - a,
98
+ style: { borderLeftWidth: 0, borderRightWidth: 0 },
99
+ onContextMenu: k
100
+ }, c = /* @__PURE__ */ t.createElement(t.Fragment, null, x(0, { position: "sticky", zIndex: 2 }), /* @__PURE__ */ t.createElement(
101
+ "td",
102
+ {
103
+ ...g
104
+ }
105
+ )));
106
+ const b = e.rowType || "data", u = e.cells;
107
+ if (u && u.group && u.group[b]) {
108
+ const l = u.group[b];
109
+ return /* @__PURE__ */ t.createElement(l, { ...e, tdProps: i, td2Props: g }, y);
110
+ }
111
+ return C ? C.call(void 0, c, e) : c;
112
+ };
113
+ export {
114
+ V as GridGroupCell
115
+ };
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const I=require("react"),b=require("../utils/index.js"),C=require("@progress/kendo-react-data-tools"),x=require("@progress/kendo-react-intl"),f=require("@progress/kendo-react-common"),d=require("../messages/index.js"),g=require("@progress/kendo-svg-icons");function k(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 i=k(I),v=e=>{let n=null,t=null,c=null;const l=b.getNestedValue(e.field,e.dataItem),o=C.useTableKeyboardNavigation(e.id),m=x.useLocalization(),y=i.useCallback(a=>{a.isDefaultPrevented()||a.keyCode===f.Keys.enter&&e.onChange&&(a.preventDefault(),e.onChange({dataItem:e.dataItem,dataIndex:e.dataIndex,syntheticEvent:a,field:e.field,value:!l}))},[e.dataItem,e.dataIndex,e.field,e.onChange,l]);if(e.rowType==="groupFooter")t={className:"k-table-td k-hierarchy-cell",role:"gridcell",...o},n=i.createElement("td",{...t});else if(e.rowType!=="groupHeader"){const a=l?d.detailCollapse:d.detailExpand,h=m.toLanguageString(a,d.messages[a]);t={className:"k-table-td k-hierarchy-cell",onKeyDown:y,"aria-expanded":!!l,role:"gridcell","aria-colindex":e.ariaColumnIndex,...o},c=i.createElement("a",{onClick:s=>{s.preventDefault(),e.onChange&&e.onChange({dataItem:e.dataItem,dataIndex:e.dataIndex,syntheticEvent:s,field:e.field,value:!l})},"aria-label":h,href:"#",tabIndex:-1},i.createElement(f.IconWrap,{name:l?"minus":"plus",icon:l?g.minusIcon:g.plusIcon})),n=i.createElement("td",{...t},c)}const u=e.rowType||"data",r=e.cells;if(r&&r.hierarchy&&r.hierarchy[u]){const a=r.hierarchy[u];return i.createElement(a,{...e,tdProps:t},c)}return e.render?e.render.call(void 0,n,e):n};exports.GridHierarchyCell=v;
@@ -0,0 +1,84 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ "use client";
9
+ import * as n from "react";
10
+ import { getNestedValue as s } from "../utils/index.mjs";
11
+ import { useTableKeyboardNavigation as h } from "@progress/kendo-react-data-tools";
12
+ import { useLocalization as y } from "@progress/kendo-react-intl";
13
+ import { Keys as I, IconWrap as C } from "@progress/kendo-react-common";
14
+ import { messages as x, detailCollapse as b, detailExpand as E } from "../messages/index.mjs";
15
+ import { minusIcon as k, plusIcon as v } from "@progress/kendo-svg-icons";
16
+ const z = (e) => {
17
+ let i = null, l = null, r = null;
18
+ const t = s(e.field, e.dataItem), c = h(e.id), u = y(), f = n.useCallback(
19
+ (a) => {
20
+ a.isDefaultPrevented() || a.keyCode === I.enter && e.onChange && (a.preventDefault(), e.onChange({
21
+ dataItem: e.dataItem,
22
+ dataIndex: e.dataIndex,
23
+ syntheticEvent: a,
24
+ field: e.field,
25
+ value: !t
26
+ }));
27
+ },
28
+ [e.dataItem, e.dataIndex, e.field, e.onChange, t]
29
+ );
30
+ if (e.rowType === "groupFooter")
31
+ l = {
32
+ className: "k-table-td k-hierarchy-cell",
33
+ role: "gridcell",
34
+ ...c
35
+ }, i = /* @__PURE__ */ n.createElement(
36
+ "td",
37
+ {
38
+ ...l
39
+ }
40
+ );
41
+ else if (e.rowType !== "groupHeader") {
42
+ const a = t ? b : E, g = u.toLanguageString(a, x[a]);
43
+ l = {
44
+ className: "k-table-td k-hierarchy-cell",
45
+ onKeyDown: f,
46
+ "aria-expanded": !!t,
47
+ role: "gridcell",
48
+ "aria-colindex": e.ariaColumnIndex,
49
+ ...c
50
+ }, r = /* @__PURE__ */ n.createElement(
51
+ "a",
52
+ {
53
+ onClick: (m) => {
54
+ m.preventDefault(), e.onChange && e.onChange({
55
+ dataItem: e.dataItem,
56
+ dataIndex: e.dataIndex,
57
+ syntheticEvent: m,
58
+ field: e.field,
59
+ value: !t
60
+ });
61
+ },
62
+ "aria-label": g,
63
+ href: "#",
64
+ tabIndex: -1
65
+ },
66
+ /* @__PURE__ */ n.createElement(C, { name: t ? "minus" : "plus", icon: t ? k : v })
67
+ ), i = /* @__PURE__ */ n.createElement(
68
+ "td",
69
+ {
70
+ ...l
71
+ },
72
+ r
73
+ );
74
+ }
75
+ const o = e.rowType || "data", d = e.cells;
76
+ if (d && d.hierarchy && d.hierarchy[o]) {
77
+ const a = d.hierarchy[o];
78
+ return /* @__PURE__ */ n.createElement(a, { ...e, tdProps: l }, r);
79
+ }
80
+ return e.render ? e.render.call(void 0, i, e) : i;
81
+ };
82
+ export {
83
+ z as GridHierarchyCell
84
+ };
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const k=require("react"),f=require("../utils/index.js"),i=require("../messages/index.js"),y=require("@progress/kendo-react-intl"),C=require("@progress/kendo-react-data-tools"),h=require("@progress/kendo-react-common");function S(e){const n=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const t in e)if(t!=="default"){const a=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(n,t,a.get?a:{enumerable:!0,get:()=>e[t]})}}return n.default=e,Object.freeze(n)}const c=S(k),x=e=>{const n=y.useLocalization(),t=c.useCallback(o=>{e.selectionChange&&e.selectionChange({syntheticEvent:o})},[e.selectionChange]),a=h.useId(),s=f.getNestedValue(e.field,e.dataItem),b=C.useTableKeyboardNavigation(e.id),r={colSpan:e.colSpan,style:e.style,className:e.className,"aria-colindex":e.ariaColumnIndex,role:"gridcell",...b},d=typeof s=="boolean"&&s,u=c.createElement("span",{key:1,className:"k-checkbox-wrap"},c.createElement("input",{id:a,type:"checkbox",className:"k-checkbox k-checkbox-md k-rounded-md","aria-label":n.toLanguageString(i.selectRow,i.messages[i.selectRow]),"aria-checked":d,checked:d,onChange:t})),g=e.rowType!=="groupHeader"?c.createElement("td",{...r},u):null,m=e.rowType||"data",l=e.cells;if(l&&l.select&&l.select[m]){const o=l.select[m];return c.createElement(o,{...e,tdProps:r},u)}return e.render?e.render.call(void 0,g,e):g};exports.GridSelectionCell=x;
@@ -0,0 +1,54 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ "use client";
9
+ import * as t from "react";
10
+ import { getNestedValue as k } from "../utils/index.mjs";
11
+ import { selectRow as r, messages as f } from "../messages/index.mjs";
12
+ import { useLocalization as C } from "@progress/kendo-react-intl";
13
+ import { useTableKeyboardNavigation as b } from "@progress/kendo-react-data-tools";
14
+ import { useId as y } from "@progress/kendo-react-common";
15
+ const I = (e) => {
16
+ const m = C(), u = t.useCallback(
17
+ (n) => {
18
+ e.selectionChange && e.selectionChange({ syntheticEvent: n });
19
+ },
20
+ [e.selectionChange]
21
+ ), g = y(), c = k(e.field, e.dataItem), h = b(e.id), l = {
22
+ colSpan: e.colSpan,
23
+ style: e.style,
24
+ className: e.className,
25
+ "aria-colindex": e.ariaColumnIndex,
26
+ role: "gridcell",
27
+ ...h
28
+ }, o = typeof c == "boolean" && c, i = /* @__PURE__ */ t.createElement("span", { key: 1, className: "k-checkbox-wrap" }, /* @__PURE__ */ t.createElement(
29
+ "input",
30
+ {
31
+ id: g,
32
+ type: "checkbox",
33
+ className: "k-checkbox k-checkbox-md k-rounded-md",
34
+ "aria-label": m.toLanguageString(r, f[r]),
35
+ "aria-checked": o,
36
+ checked: o,
37
+ onChange: u
38
+ }
39
+ )), s = e.rowType !== "groupHeader" ? /* @__PURE__ */ t.createElement(
40
+ "td",
41
+ {
42
+ ...l
43
+ },
44
+ i
45
+ ) : null, d = e.rowType || "data", a = e.cells;
46
+ if (a && a.select && a.select[d]) {
47
+ const n = a.select[d];
48
+ return /* @__PURE__ */ t.createElement(n, { ...e, tdProps: l }, i);
49
+ }
50
+ return e.render ? e.render.call(void 0, s, e) : s;
51
+ };
52
+ export {
53
+ I as GridSelectionCell
54
+ };
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const I=require("react"),v=require("./GridColumnMenuItem.js"),E=require("./GridColumnMenuItemGroup.js"),S=require("./GridColumnMenuItemContent.js"),d=require("@progress/kendo-react-inputs"),k=require("@progress/kendo-react-intl"),r=require("../messages/index.js"),x=require("@progress/kendo-data-query"),F=require("@progress/kendo-react-common"),f=require("@progress/kendo-react-buttons"),C=require("../utils/index.js"),m=require("@progress/kendo-svg-icons");function b(h){const l=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(h){for(const e in h)if(e!=="default"){const t=Object.getOwnPropertyDescriptor(h,e);Object.defineProperty(l,e,t.get?t:{enumerable:!0,get:()=>h[e]})}}return l.default=h,Object.freeze(l)}const i=b(I),q=(h,l)=>h.length!==l.length?!1:h.every((e,t)=>e===l[t]),g=class g extends i.Component{constructor(l){super(l),this.defaultFilter=()=>this.props.filter?F.clone(this.props.filter):{filters:[],logic:"and"},this.isControlled=()=>this.props.expanded!==void 0,this.parseData=(e,t)=>{const o=this.props.column.field||"",n=e.map(c=>C.getNestedValue(o,c));return t?n.filter((c,s)=>n.indexOf(c)===s):n},this.getFilterIndex=()=>{const e=this.props.column.field;return this.defaultFilter().filters.findIndex(n=>n.filters&&n.filters.length>0&&n.filters[0].field===e)},this.onFilterExpand=()=>{const e=this.isControlled(),t=!(e?this.props.expanded:this.state.expanded);this.props.onExpandChange&&this.props.onExpandChange(t),e||this.setState({expanded:t})},this.handleSearchChange=e=>{const t=this.props.searchBoxFilterOperator?this.props.searchBoxFilterOperator:"startswith",o={logic:"and",filters:[{field:this.props.column.field,operator:t,value:e.target.value,ignoreCase:!0}]};this.setState({value:e.target.value,data:this.parseData(x.filterBy(this.props.data||[],o),this.props.uniqueData)})},this.handleClear=()=>{const e=this.props.searchBoxFilterOperator?this.props.searchBoxFilterOperator:"startswith",t={logic:"and",filters:[{field:this.props.column.field,operator:e,value:"",ignoreCase:!0}]};this.setState({value:"",data:this.parseData(x.filterBy(this.props.data||[],t),this.props.uniqueData)})},this.clear=e=>{if(e.preventDefault(),!this.props.onFilterChange)return;const t=this.state.currentFilter||null;t!==null&&t.filters.length>0?(this.compositeFilterIndex>=0&&t.filters.splice(this.compositeFilterIndex,1),this.props.onFilterChange(t,e)):this.props.onFilterChange(null,e),this.props.onCloseMenu&&this.props.onCloseMenu()},this.submit=e=>{if(e.preventDefault(),!this.props.onFilterChange)return;const t=this.state.currentFilter||null;this.props.onFilterChange(t,e),this.props.onCloseMenu&&this.props.onCloseMenu()},this.handleCheckBoxChange=(e,t)=>{const o=this.props.column.field||"",n={...this.state.currentFilter},c=[...this.state.currentFilter.filters];let s=[];if(this.compositeFilterIndex!==-1&&n.filters[this.compositeFilterIndex].filters&&t!=="all"&&(s=n.filters[this.compositeFilterIndex].filters),e.value&&t==="all")this.state.data.forEach(a=>{s.push({field:o,operator:"eq",value:a})});else if(e.value)s.push({field:o,operator:"eq",value:t});else if(this.state.currentFilter){const a=s.findIndex(p=>p.value===t);s.splice(a,1)}n.logic="and",this.compositeFilterIndex!==-1?c[this.compositeFilterIndex]={logic:"or",filters:s}:c.push({logic:"or",filters:s}),(!e.value&&t==="all"||s.length===0)&&c.splice(this.compositeFilterIndex,1),n.filters=c,this.setState({currentFilter:n})},this.isAllSelected=()=>{let e=!1;if(this.state.currentFilter){const t=[...this.state.currentFilter.filters];return this.compositeFilterIndex===-1?!1:(e=this.state.data.every(o=>this.compositeFilterIndex!==-1&&t[this.compositeFilterIndex].filters?t[this.compositeFilterIndex].filters.findIndex(c=>c.value===o)>=0:!1),e)}return e},this.compositeFilterIndex=this.getFilterIndex(),this.state={expanded:l.expanded||!1,value:"",data:this.parseData(this.props.data,this.props.uniqueData)||[],dataFromProps:this.parseData(this.props.data,!1)||[],currentFilter:this.defaultFilter()}}componentDidUpdate(){const l=this.props.column.field||"",e=this.props.data.map(t=>C.getNestedValue(l,t));q(e,this.state.dataFromProps)||this.setState({data:e,dataFromProps:e})}render(){const{column:l}=this.props;if(!l||!l.field)return i.createElement("div",null);const e=k.provideLocalizationService(this),t=this.isControlled()?this.props.expanded:this.state.expanded,o=[];if(this.state.currentFilter){const s=[...this.state.currentFilter.filters];this.compositeFilterIndex=s.findIndex(a=>a.filters&&a.filters.length>0?a.filters[0].field===l.field:!1),this.compositeFilterIndex!==-1&&s[this.compositeFilterIndex].filters.length>0&&s[this.compositeFilterIndex].filters.forEach(a=>{a.field===this.props.column.field&&o.push(a.value)})}const n=this.props.searchBox?i.createElement(this.props.searchBox,{value:this.state.value,onChange:this.handleSearchChange}):i.createElement("div",{className:"k-searchbox k-textbox k-input k-input-md k-input-solid"},i.createElement(F.IconWrap,{className:"k-input-icon",name:"search",icon:m.searchIcon}),i.createElement(d.Input,{className:"k-input-inner",type:"text",placeholder:e.toLanguageString(r.searchPlaceholder,r.messages[r.searchPlaceholder]),value:this.state.value,onChange:s=>this.handleSearchChange(s.nativeEvent)}),i.createElement(f.Button,{type:"button",rounded:null,className:"k-input-button",onClick:this.handleClear,icon:"x",svgIcon:m.xIcon})),c=o.filter((s,a)=>o.indexOf(s)===a);return i.createElement(E.GridColumnMenuItemGroup,null,i.createElement(v.GridColumnMenuItem,{title:e.toLanguageString(r.filterTitle,r.messages[r.filterTitle]),iconClass:"k-i-filter",svgIcon:m.filterIcon,onClick:this.onFilterExpand}),i.createElement(S.GridColumnMenuItemContent,{show:!!t},i.createElement("form",{className:"k-filter-menu",onSubmit:this.submit,onReset:this.clear},i.createElement("div",{className:"k-filter-menu-container"},n,i.createElement("ul",{className:"k-reset k-multicheck-wrap"},i.createElement("li",{className:"k-item k-check-all-wrap"},i.createElement(d.Checkbox,{label:e.toLanguageString(r.filterCheckAll,r.messages[r.filterCheckAll]),onChange:s=>this.handleCheckBoxChange(s,"all"),checked:this.isAllSelected()})),this.state.data.map((s,a)=>i.createElement("li",{className:"k-item",key:a},i.createElement(d.Checkbox,{label:String(s),onChange:p=>this.handleCheckBoxChange(p,s),checked:c.includes(s)})))),i.createElement("div",{className:"k-filter-selected-items"},c.length+" "+e.toLanguageString(r.filterSelectedItems,r.messages[r.filterSelectedItems])),i.createElement("div",{className:"k-actions k-hstack k-justify-content-stretch"},i.createElement(f.Button,{themeColor:"primary",type:"submit"},e.toLanguageString(r.filterSubmitButton,r.messages[r.filterSubmitButton])),i.createElement(f.Button,{className:"k-button",type:"reset"},e.toLanguageString(r.filterClearButton,r.messages[r.filterClearButton])))))))}};g.defaultProps={uniqueData:!0};let u=g;k.registerForLocalization(u);exports.GridColumnMenuCheckboxFilter=u;