@progress/kendo-react-grid 7.2.4-develop.3 → 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,199 @@
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 s from "react";
10
+ import { GridColumnMenuItem as S } from "./GridColumnMenuItem.mjs";
11
+ import { GridColumnMenuItemGroup as B } from "./GridColumnMenuItemGroup.mjs";
12
+ import { GridColumnMenuItemContent as N } from "./GridColumnMenuItemContent.mjs";
13
+ import { Input as D, Checkbox as m } from "@progress/kendo-react-inputs";
14
+ import { provideLocalizationService as b, registerForLocalization as y } from "@progress/kendo-react-intl";
15
+ import { searchPlaceholder as x, messages as h, filterTitle as g, filterCheckAll as F, filterSelectedItems as C, filterSubmitButton as I, filterClearButton as k } from "../messages/index.mjs";
16
+ import { filterBy as v } from "@progress/kendo-data-query";
17
+ import { clone as q, IconWrap as L } from "@progress/kendo-react-common";
18
+ import { Button as p } from "@progress/kendo-react-buttons";
19
+ import { getNestedValue as E } from "../utils/index.mjs";
20
+ import { searchIcon as O, xIcon as w, filterIcon as M } from "@progress/kendo-svg-icons";
21
+ const P = (f, o) => f.length !== o.length ? !1 : f.every((e, t) => e === o[t]), u = class u extends s.Component {
22
+ constructor(o) {
23
+ super(o), this.defaultFilter = () => this.props.filter ? q(this.props.filter) : { filters: [], logic: "and" }, this.isControlled = () => this.props.expanded !== void 0, this.parseData = (e, t) => {
24
+ const n = this.props.column.field || "", r = e.map((a) => E(n, a));
25
+ return t ? r.filter((a, i) => r.indexOf(a) === i) : r;
26
+ }, this.getFilterIndex = () => {
27
+ const e = this.props.column.field;
28
+ return this.defaultFilter().filters.findIndex((r) => r.filters && r.filters.length > 0 && r.filters[0].field === e);
29
+ }, this.onFilterExpand = () => {
30
+ const e = this.isControlled(), t = !(e ? this.props.expanded : this.state.expanded);
31
+ this.props.onExpandChange && this.props.onExpandChange(t), e || this.setState({
32
+ expanded: t
33
+ });
34
+ }, this.handleSearchChange = (e) => {
35
+ const t = this.props.searchBoxFilterOperator ? this.props.searchBoxFilterOperator : "startswith", n = {
36
+ logic: "and",
37
+ filters: [
38
+ { field: this.props.column.field, operator: t, value: e.target.value, ignoreCase: !0 }
39
+ ]
40
+ };
41
+ this.setState({
42
+ value: e.target.value,
43
+ data: this.parseData(v(this.props.data || [], n), this.props.uniqueData)
44
+ });
45
+ }, this.handleClear = () => {
46
+ const e = this.props.searchBoxFilterOperator ? this.props.searchBoxFilterOperator : "startswith", t = {
47
+ logic: "and",
48
+ filters: [
49
+ { field: this.props.column.field, operator: e, value: "", ignoreCase: !0 }
50
+ ]
51
+ };
52
+ this.setState({
53
+ value: "",
54
+ data: this.parseData(v(this.props.data || [], t), this.props.uniqueData)
55
+ });
56
+ }, this.clear = (e) => {
57
+ if (e.preventDefault(), !this.props.onFilterChange)
58
+ return;
59
+ const t = this.state.currentFilter || null;
60
+ 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();
61
+ }, this.submit = (e) => {
62
+ if (e.preventDefault(), !this.props.onFilterChange)
63
+ return;
64
+ const t = this.state.currentFilter || null;
65
+ this.props.onFilterChange(t, e), this.props.onCloseMenu && this.props.onCloseMenu();
66
+ }, this.handleCheckBoxChange = (e, t) => {
67
+ const n = this.props.column.field || "", r = { ...this.state.currentFilter }, a = [...this.state.currentFilter.filters];
68
+ let i = [];
69
+ if (this.compositeFilterIndex !== -1 && r.filters[this.compositeFilterIndex].filters && t !== "all" && (i = r.filters[this.compositeFilterIndex].filters), e.value && t === "all")
70
+ this.state.data.forEach((l) => {
71
+ i.push({ field: n, operator: "eq", value: l });
72
+ });
73
+ else if (e.value)
74
+ i.push({ field: n, operator: "eq", value: t });
75
+ else if (this.state.currentFilter) {
76
+ const l = i.findIndex((c) => c.value === t);
77
+ i.splice(l, 1);
78
+ }
79
+ r.logic = "and", this.compositeFilterIndex !== -1 ? a[this.compositeFilterIndex] = {
80
+ logic: "or",
81
+ filters: i
82
+ } : a.push({
83
+ logic: "or",
84
+ filters: i
85
+ }), (!e.value && t === "all" || i.length === 0) && a.splice(this.compositeFilterIndex, 1), r.filters = a, this.setState({ currentFilter: r });
86
+ }, this.isAllSelected = () => {
87
+ let e = !1;
88
+ if (this.state.currentFilter) {
89
+ const t = [...this.state.currentFilter.filters];
90
+ return this.compositeFilterIndex === -1 ? !1 : (e = this.state.data.every((n) => this.compositeFilterIndex !== -1 && t[this.compositeFilterIndex].filters ? t[this.compositeFilterIndex].filters.findIndex((a) => a.value === n) >= 0 : !1), e);
91
+ }
92
+ return e;
93
+ }, this.compositeFilterIndex = this.getFilterIndex(), this.state = {
94
+ expanded: o.expanded || !1,
95
+ value: "",
96
+ data: this.parseData(this.props.data, this.props.uniqueData) || [],
97
+ dataFromProps: this.parseData(this.props.data, !1) || [],
98
+ currentFilter: this.defaultFilter()
99
+ };
100
+ }
101
+ /**
102
+ * @hidden
103
+ */
104
+ componentDidUpdate() {
105
+ const o = this.props.column.field || "", e = this.props.data.map((t) => E(o, t));
106
+ P(e, this.state.dataFromProps) || this.setState({
107
+ data: e,
108
+ dataFromProps: e
109
+ });
110
+ }
111
+ /**
112
+ * @hidden
113
+ */
114
+ render() {
115
+ const { column: o } = this.props;
116
+ if (!o || !o.field)
117
+ return /* @__PURE__ */ s.createElement("div", null);
118
+ const e = b(this), t = this.isControlled() ? this.props.expanded : this.state.expanded, n = [];
119
+ if (this.state.currentFilter) {
120
+ const i = [...this.state.currentFilter.filters];
121
+ this.compositeFilterIndex = i.findIndex((l) => l.filters && l.filters.length > 0 ? l.filters[0].field === o.field : !1), this.compositeFilterIndex !== -1 && i[this.compositeFilterIndex].filters.length > 0 && i[this.compositeFilterIndex].filters.forEach((l) => {
122
+ l.field === this.props.column.field && n.push(l.value);
123
+ });
124
+ }
125
+ const r = this.props.searchBox ? /* @__PURE__ */ s.createElement(this.props.searchBox, { value: this.state.value, onChange: this.handleSearchChange }) : /* @__PURE__ */ s.createElement("div", { className: "k-searchbox k-textbox k-input k-input-md k-input-solid" }, /* @__PURE__ */ s.createElement(L, { className: "k-input-icon", name: "search", icon: O }), /* @__PURE__ */ s.createElement(
126
+ D,
127
+ {
128
+ className: "k-input-inner",
129
+ type: "text",
130
+ placeholder: e.toLanguageString(x, h[x]),
131
+ value: this.state.value,
132
+ onChange: (i) => this.handleSearchChange(i.nativeEvent)
133
+ }
134
+ ), /* @__PURE__ */ s.createElement(
135
+ p,
136
+ {
137
+ type: "button",
138
+ rounded: null,
139
+ className: "k-input-button",
140
+ onClick: this.handleClear,
141
+ icon: "x",
142
+ svgIcon: w
143
+ }
144
+ )), a = n.filter((i, l) => n.indexOf(i) === l);
145
+ return /* @__PURE__ */ s.createElement(B, null, /* @__PURE__ */ s.createElement(
146
+ S,
147
+ {
148
+ title: e.toLanguageString(g, h[g]),
149
+ iconClass: "k-i-filter",
150
+ svgIcon: M,
151
+ onClick: this.onFilterExpand
152
+ }
153
+ ), /* @__PURE__ */ s.createElement(N, { show: !!t }, /* @__PURE__ */ s.createElement(
154
+ "form",
155
+ {
156
+ className: "k-filter-menu",
157
+ onSubmit: this.submit,
158
+ onReset: this.clear
159
+ },
160
+ /* @__PURE__ */ s.createElement("div", { className: "k-filter-menu-container" }, r, /* @__PURE__ */ s.createElement("ul", { className: "k-reset k-multicheck-wrap" }, /* @__PURE__ */ s.createElement("li", { className: "k-item k-check-all-wrap" }, /* @__PURE__ */ s.createElement(
161
+ m,
162
+ {
163
+ label: e.toLanguageString(F, h[F]),
164
+ onChange: (i) => this.handleCheckBoxChange(i, "all"),
165
+ checked: this.isAllSelected()
166
+ }
167
+ )), this.state.data.map((i, l) => /* @__PURE__ */ s.createElement("li", { className: "k-item", key: l }, /* @__PURE__ */ s.createElement(
168
+ m,
169
+ {
170
+ label: String(i),
171
+ onChange: (c) => this.handleCheckBoxChange(c, i),
172
+ checked: a.includes(i)
173
+ }
174
+ )))), /* @__PURE__ */ s.createElement("div", { className: "k-filter-selected-items" }, a.length + " " + e.toLanguageString(C, h[C])), /* @__PURE__ */ s.createElement("div", { className: "k-actions k-hstack k-justify-content-stretch" }, /* @__PURE__ */ s.createElement(
175
+ p,
176
+ {
177
+ themeColor: "primary",
178
+ type: "submit"
179
+ },
180
+ e.toLanguageString(I, h[I])
181
+ ), /* @__PURE__ */ s.createElement(
182
+ p,
183
+ {
184
+ className: "k-button",
185
+ type: "reset"
186
+ },
187
+ e.toLanguageString(k, h[k])
188
+ )))
189
+ )));
190
+ }
191
+ };
192
+ u.defaultProps = {
193
+ uniqueData: !0
194
+ };
195
+ let d = u;
196
+ y(d);
197
+ export {
198
+ d as GridColumnMenuCheckboxFilter
199
+ };
@@ -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 y=require("react"),r=require("@progress/kendo-react-inputs"),v=require("@progress/kendo-react-common"),N=require("@progress/kendo-svg-icons"),C=require("@progress/kendo-react-buttons");function M(t){const c=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const o in t)if(o!=="default"){const s=Object.getOwnPropertyDescriptor(t,o);Object.defineProperty(c,o,s.get?s:{enumerable:!0,get:()=>t[o]})}}return c.default=t,Object.freeze(c)}const e=M(y),h=t=>{const[c,o]=e.useState(""),s=e.useMemo(()=>new Set(t.columnsState.map(n=>n.id)),[t.columnsState]),f=e.useMemo(()=>t.columns.filter(n=>{var l;return(l=n.title||n.field)==null?void 0:l.toLowerCase().includes(c.toLowerCase())}),[t.columns,c]),[a,i]=e.useState(t.columns.map(n=>s.has(n.id))),b=e.useCallback(()=>{const n=t.columns.filter((l,u)=>a[u]);t.onColumnsChange.call(void 0,n),t.onCloseMenu.call(void 0)},[a,t.columns,t.onColumnsChange,t.onCloseMenu]),g=e.useCallback(()=>{i(t.columns.map(n=>s.has(n.id)))},[s,t.columns]),d=a.filter(n=>n).length,m=d===a.length,S=e.useCallback(()=>{i(t.columns.map((n,l)=>m&&l===0?!0:!m))},[t.columns,m]),E=e.useCallback((n,l)=>{const u=a.slice();u[l]=n,i(u)},[a]);return e.createElement("form",{className:"k-filter-menu"},e.createElement("div",{className:"k-filter-menu-container"},e.createElement(r.TextBox,{className:"k-searchbox",value:c,onChange:n=>o(String(n.target.value)),prefix:()=>e.createElement(r.InputPrefix,null,e.createElement(v.IconWrap,{name:"search",icon:N.searchIcon}))}),e.createElement("ul",{className:"k-reset k-multicheck-wrap"},!c&&e.createElement("li",{className:"k-item k-check-all-wrap"},e.createElement(r.Checkbox,{checked:m,onChange:S,label:"(Select all)"})),f.map((n,l)=>e.createElement("li",{key:n.id,className:"k-item"},e.createElement(r.Checkbox,{disabled:a[l]&&d===1,checked:a[l],onChange:u=>{var k;return E(!!((k=u.target.element)!=null&&k.checked),l)},label:n.title||n.field})))),e.createElement("div",{className:"k-filter-selected-items"},d," selected items"),e.createElement("div",{className:"k-actions k-actions-start k-actions-horizontal"},e.createElement(C.Button,{type:"button",themeColor:"primary",onClick:b},"Apply"),e.createElement(C.Button,{type:"button",onClick:g},"Reset"))))};h.displayName="GridColumnMenuColumnsList";exports.GridColumnMenuColumnsList=h;
@@ -0,0 +1,60 @@
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 e from "react";
10
+ import { TextBox as S, InputPrefix as N, Checkbox as C } from "@progress/kendo-react-inputs";
11
+ import { IconWrap as x } from "@progress/kendo-react-common";
12
+ import { searchIcon as v } from "@progress/kendo-svg-icons";
13
+ import { Button as d } from "@progress/kendo-react-buttons";
14
+ const y = (l) => {
15
+ const [o, k] = e.useState(""), m = e.useMemo(() => new Set(l.columnsState.map((t) => t.id)), [l.columnsState]), h = e.useMemo(() => l.columns.filter((t) => {
16
+ var n;
17
+ return (n = t.title || t.field) == null ? void 0 : n.toLowerCase().includes(o.toLowerCase());
18
+ }), [l.columns, o]), [a, i] = e.useState(l.columns.map((t) => m.has(t.id))), f = e.useCallback(() => {
19
+ const t = l.columns.filter((n, c) => a[c]);
20
+ l.onColumnsChange.call(void 0, t), l.onCloseMenu.call(void 0);
21
+ }, [a, l.columns, l.onColumnsChange, l.onCloseMenu]), E = e.useCallback(() => {
22
+ i(l.columns.map((t) => m.has(t.id)));
23
+ }, [m, l.columns]), r = a.filter((t) => t).length, s = r === a.length, b = e.useCallback(() => {
24
+ i(l.columns.map((t, n) => s && n === 0 ? !0 : !s));
25
+ }, [l.columns, s]), g = e.useCallback((t, n) => {
26
+ const c = a.slice();
27
+ c[n] = t, i(c);
28
+ }, [a]);
29
+ return /* @__PURE__ */ e.createElement("form", { className: "k-filter-menu" }, /* @__PURE__ */ e.createElement("div", { className: "k-filter-menu-container" }, /* @__PURE__ */ e.createElement(
30
+ S,
31
+ {
32
+ className: "k-searchbox",
33
+ value: o,
34
+ onChange: (t) => k(String(t.target.value)),
35
+ prefix: () => /* @__PURE__ */ e.createElement(N, null, /* @__PURE__ */ e.createElement(x, { name: "search", icon: v }))
36
+ }
37
+ ), /* @__PURE__ */ e.createElement("ul", { className: "k-reset k-multicheck-wrap" }, !o && /* @__PURE__ */ e.createElement("li", { className: "k-item k-check-all-wrap" }, /* @__PURE__ */ e.createElement(
38
+ C,
39
+ {
40
+ checked: s,
41
+ onChange: b,
42
+ label: "(Select all)"
43
+ }
44
+ )), h.map((t, n) => /* @__PURE__ */ e.createElement("li", { key: t.id, className: "k-item" }, /* @__PURE__ */ e.createElement(
45
+ C,
46
+ {
47
+ disabled: a[n] && r === 1,
48
+ checked: a[n],
49
+ onChange: (c) => {
50
+ var u;
51
+ return g(!!((u = c.target.element) != null && u.checked), n);
52
+ },
53
+ label: t.title || t.field
54
+ }
55
+ )))), /* @__PURE__ */ e.createElement("div", { className: "k-filter-selected-items" }, r, " selected items"), /* @__PURE__ */ e.createElement("div", { className: "k-actions k-actions-start k-actions-horizontal" }, /* @__PURE__ */ e.createElement(d, { type: "button", themeColor: "primary", onClick: f }, "Apply"), /* @__PURE__ */ e.createElement(d, { type: "button", onClick: E }, "Reset"))));
56
+ };
57
+ y.displayName = "GridColumnMenuColumnsList";
58
+ export {
59
+ y as GridColumnMenuColumnsList
60
+ };
@@ -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 P=require("react"),E=require("@progress/kendo-data-query"),B=require("./GridColumnMenuItem.js"),L=require("./GridColumnMenuItemGroup.js"),U=require("./GridColumnMenuItemContent.js"),M=require("@progress/kendo-react-intl"),a=require("../filterCommon.js"),f=require("../messages/index.js"),T=require("./GridColumnMenuFilterUI.js"),b=require("@progress/kendo-react-buttons"),j=require("@progress/kendo-svg-icons");function w(c){const i=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(c){for(const l in c)if(l!=="default"){const e=Object.getOwnPropertyDescriptor(c,l);Object.defineProperty(i,l,e.get?e:{enumerable:!0,get:()=>c[l]})}}return i.default=c,Object.freeze(i)}const u=w(P),g=c=>c||{filters:[],logic:"and"},h=(c,i)=>g(i).filters.filter(t=>E.isCompositeFilterDescriptor(t)?t.filters&&t.filters.length&&t.filters.length<=2&&!t.filters.find(r=>E.isCompositeFilterDescriptor(r)||r.field!==c):!1)[0]||null,v=class v extends u.Component{constructor(i){super(i),this.removeGroup=(e,t)=>{const r=[...t.filters],n=r.findIndex(o=>o===e);return n>-1&&r.splice(n,1),{...t,filters:r}},this.insertGroup=(e,t)=>({...t,filters:[e,...t.filters]}),this.isControlled=()=>this.props.expanded!==void 0,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.firstFilterChange=e=>{this.filterChange(0,e)},this.secondFilterChange=e=>{this.filterChange(1,e)},this.filterChange=(e,t)=>{const r=this.state.filterGroup.filters.map((n,o)=>o===e?{...n,value:t.value,operator:t.operator}:n);this.setState({filterGroup:{...this.state.filterGroup,filters:r}})},this.logicChange=e=>{this.setState({filterGroup:{...this.state.filterGroup,logic:e.target.value.operator}})},this.clear=e=>{if(e.preventDefault(),!this.props.onFilterChange)return;const t=this.props.column.field,r=g(this.props.filter),n=h(t,this.props.filter),o=r.filters.filter(s=>s!==n);o.length?this.props.onFilterChange({...r,filters:o},e):this.props.onFilterChange(null,e),this.props.onCloseMenu&&this.props.onCloseMenu()},this.currentFilterGroup=()=>({...this.state.filterGroup,filters:this.state.filterGroup.filters.filter(e=>e.value!==void 0&&e.value!==null&&e.value!==""||e.value===null&&e.operator)}),this.submit=e=>{if(e.preventDefault(),!this.props.onFilterChange)return;const t=this.props.column.field,r=g(this.props.filter),n=h(t,this.props.filter),o=this.currentFilterGroup();let s=null;if(n&&o.filters.length>0){const p=r.filters.map(d=>d===n?o:d);s={...r,filters:p}}else if(o.filters.length===0){const p=r.filters.filter(d=>d!==n);p.length&&(s={...r,filters:p})}else s={...r,filters:[...r.filters,o]};this.props.onFilterChange(s,e),this.props.onCloseMenu&&this.props.onCloseMenu()};let l;if(i.column&&i.column.field){const e=a.getFilterType(i.column.filter),t=a.getDefaultOperator(i.filterOperators,e);l=h(i.column.field,i.filter),l=l?{...l,filters:l.filters.map(r=>({...r}))}:{logic:"and",filters:[{field:i.column.field,operator:t,value:a.IsUnaryFilter(t)?null:void 0},{field:i.column.field,operator:t,value:a.IsUnaryFilter(t)?null:void 0}]},l.filters.filter(r=>r.field===i.column.field).length===1&&l.filters.splice(1,0,{field:i.column.field,operator:t})}this.state={expanded:i.expanded||!1,filterGroup:l}}render(){const{column:i,filterUI:l,hideSecondFilter:e,filterOperators:t}=this.props;if(!i||!i.field)return u.createElement("div",null);const r=a.getFilterType(i.filter),n=e!==void 0?e:a.defaultHideSecondFilter[r],o=M.provideLocalizationService(this),s=this.state.filterGroup.filters,p=a.operatorMap(t[r],o),d=a.operatorMap(a.booleanFilterValues,o),D={field:i.field,value:s[0].value,operator:s[0].operator,operators:p,booleanValues:d,onChange:this.firstFilterChange,filterType:r},O={field:i.field,value:s[1].value,operator:s[1].operator,operators:p,booleanValues:d,onChange:this.secondFilterChange,filterType:r},G=this.state.filterGroup.logic,y=a.operatorMap(a.filterLogicList,o),C={value:y.find(F=>F.operator===(G===null?"":G)),onChange:this.logicChange,data:y},I=l,S={firstFilterProps:D,secondFilterProps:O,logicData:C.data,logicValue:C.value,onLogicChange:C.onChange,hideSecondFilter:n},k=this.currentFilterGroup().filters.length!==0||a.IsUnaryFilter(s[0].operator)||a.IsUnaryFilter(s[1].operator),q=this.isControlled()?this.props.expanded:this.state.expanded,x=this.props.alwaysExpand;return u.createElement(L.GridColumnMenuItemGroup,null,!x&&u.createElement(B.GridColumnMenuItem,{title:o.toLanguageString(f.filterTitle,f.messages[f.filterTitle]),iconClass:"k-i-filter",svgIcon:j.filterIcon,onClick:this.onFilterExpand}),u.createElement(U.GridColumnMenuItemContent,{show:x||!!q},u.createElement("form",{className:"k-filter-menu",onSubmit:this.submit,onReset:this.clear,onKeyDown:F=>F.stopPropagation()},u.createElement("div",{className:"k-filter-menu-container"},I?u.createElement(I,{...S}):u.createElement(T.GridColumnMenuFilterUI,{...S}),u.createElement("div",{className:"k-actions k-actions-stretched"},u.createElement(b.Button,{themeColor:"primary",disabled:!k},o.toLanguageString(f.filterSubmitButton,f.messages[f.filterSubmitButton])),u.createElement(b.Button,{type:"reset"},o.toLanguageString(f.filterClearButton,f.messages[f.filterClearButton])))))))}};v.active=(i,l)=>!!h(i,l);let m=v;M.registerForLocalization(m);exports.GridColumnMenuFilter=m;exports.filterGroupByField=h;exports.rootFilterOrDefault=g;
@@ -0,0 +1,188 @@
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 { isCompositeFilterDescriptor as L } from "@progress/kendo-data-query";
11
+ import { GridColumnMenuItem as B } from "./GridColumnMenuItem.mjs";
12
+ import { GridColumnMenuItemGroup as T } from "./GridColumnMenuItemGroup.mjs";
13
+ import { GridColumnMenuItemContent as z } from "./GridColumnMenuItemContent.mjs";
14
+ import { provideLocalizationService as N, registerForLocalization as H } from "@progress/kendo-react-intl";
15
+ import { getFilterType as D, getDefaultOperator as R, IsUnaryFilter as c, operatorMap as g, booleanFilterValues as K, filterLogicList as j, defaultHideSecondFilter as q } from "../filterCommon.mjs";
16
+ import { filterTitle as b, messages as C, filterSubmitButton as M, filterClearButton as P } from "../messages/index.mjs";
17
+ import { GridColumnMenuFilterUI as A } from "./GridColumnMenuFilterUI.mjs";
18
+ import { Button as k } from "@progress/kendo-react-buttons";
19
+ import { filterIcon as J } from "@progress/kendo-svg-icons";
20
+ const F = (h) => h || { filters: [], logic: "and" }, u = (h, i) => F(i).filters.filter((t) => L(t) ? t.filters && t.filters.length && t.filters.length <= 2 && !t.filters.find((r) => L(r) || r.field !== h) : !1)[0] || null, G = class G extends a.Component {
21
+ constructor(i) {
22
+ super(i), this.removeGroup = (e, t) => {
23
+ const r = [...t.filters], s = r.findIndex((l) => l === e);
24
+ return s > -1 && r.splice(s, 1), {
25
+ ...t,
26
+ filters: r
27
+ };
28
+ }, this.insertGroup = (e, t) => ({
29
+ ...t,
30
+ filters: [
31
+ e,
32
+ ...t.filters
33
+ ]
34
+ }), this.isControlled = () => this.props.expanded !== void 0, this.onFilterExpand = () => {
35
+ const e = this.isControlled(), t = !(e ? this.props.expanded : this.state.expanded);
36
+ this.props.onExpandChange && this.props.onExpandChange(t), e || this.setState({
37
+ expanded: t
38
+ });
39
+ }, this.firstFilterChange = (e) => {
40
+ this.filterChange(0, e);
41
+ }, this.secondFilterChange = (e) => {
42
+ this.filterChange(1, e);
43
+ }, this.filterChange = (e, t) => {
44
+ const r = this.state.filterGroup.filters.map((s, l) => l === e ? {
45
+ ...s,
46
+ value: t.value,
47
+ operator: t.operator
48
+ } : s);
49
+ this.setState({
50
+ filterGroup: {
51
+ ...this.state.filterGroup,
52
+ filters: r
53
+ }
54
+ });
55
+ }, this.logicChange = (e) => {
56
+ this.setState({
57
+ filterGroup: {
58
+ ...this.state.filterGroup,
59
+ logic: e.target.value.operator
60
+ }
61
+ });
62
+ }, this.clear = (e) => {
63
+ if (e.preventDefault(), !this.props.onFilterChange)
64
+ return;
65
+ const t = this.props.column.field, r = F(this.props.filter), s = u(t, this.props.filter), l = r.filters.filter((n) => n !== s);
66
+ l.length ? this.props.onFilterChange({ ...r, filters: l }, e) : this.props.onFilterChange(null, e), this.props.onCloseMenu && this.props.onCloseMenu();
67
+ }, this.currentFilterGroup = () => ({
68
+ ...this.state.filterGroup,
69
+ filters: this.state.filterGroup.filters.filter((e) => e.value !== void 0 && e.value !== null && e.value !== "" || e.value === null && e.operator)
70
+ }), this.submit = (e) => {
71
+ if (e.preventDefault(), !this.props.onFilterChange)
72
+ return;
73
+ const t = this.props.column.field, r = F(this.props.filter), s = u(t, this.props.filter), l = this.currentFilterGroup();
74
+ let n = null;
75
+ if (s && l.filters.length > 0) {
76
+ const f = r.filters.map((p) => p === s ? l : p);
77
+ n = {
78
+ ...r,
79
+ filters: f
80
+ };
81
+ } else if (l.filters.length === 0) {
82
+ const f = r.filters.filter((p) => p !== s);
83
+ f.length && (n = {
84
+ ...r,
85
+ filters: f
86
+ });
87
+ } else
88
+ n = {
89
+ ...r,
90
+ filters: [...r.filters, l]
91
+ };
92
+ this.props.onFilterChange(n, e), this.props.onCloseMenu && this.props.onCloseMenu();
93
+ };
94
+ let o;
95
+ if (i.column && i.column.field) {
96
+ const e = D(i.column.filter), t = R(i.filterOperators, e);
97
+ o = u(i.column.field, i.filter), o = o ? {
98
+ ...o,
99
+ filters: o.filters.map((r) => ({ ...r }))
100
+ } : {
101
+ logic: "and",
102
+ filters: [
103
+ { field: i.column.field, operator: t, value: c(t) ? null : void 0 },
104
+ { field: i.column.field, operator: t, value: c(t) ? null : void 0 }
105
+ ]
106
+ }, o.filters.filter((r) => r.field === i.column.field).length === 1 && o.filters.splice(1, 0, { field: i.column.field, operator: t });
107
+ }
108
+ this.state = {
109
+ expanded: i.expanded || !1,
110
+ filterGroup: o
111
+ };
112
+ }
113
+ /**
114
+ * @hidden
115
+ */
116
+ render() {
117
+ const { column: i, filterUI: o, hideSecondFilter: e, filterOperators: t } = this.props;
118
+ if (!i || !i.field)
119
+ return /* @__PURE__ */ a.createElement("div", null);
120
+ const r = D(i.filter), s = e !== void 0 ? e : q[r], l = N(this), n = this.state.filterGroup.filters, f = g(t[r], l), p = g(K, l), O = {
121
+ field: i.field,
122
+ value: n[0].value,
123
+ operator: n[0].operator,
124
+ operators: f,
125
+ booleanValues: p,
126
+ onChange: this.firstFilterChange,
127
+ filterType: r
128
+ }, U = {
129
+ field: i.field,
130
+ value: n[1].value,
131
+ operator: n[1].operator,
132
+ operators: f,
133
+ booleanValues: p,
134
+ onChange: this.secondFilterChange,
135
+ filterType: r
136
+ }, x = this.state.filterGroup.logic, E = g(j, l), d = {
137
+ value: E.find((m) => m.operator === (x === null ? "" : x)),
138
+ onChange: this.logicChange,
139
+ data: E
140
+ }, S = o, I = {
141
+ firstFilterProps: O,
142
+ secondFilterProps: U,
143
+ logicData: d.data,
144
+ logicValue: d.value,
145
+ onLogicChange: d.onChange,
146
+ hideSecondFilter: s
147
+ }, V = this.currentFilterGroup().filters.length !== 0 || c(n[0].operator) || c(n[1].operator), w = this.isControlled() ? this.props.expanded : this.state.expanded, y = this.props.alwaysExpand;
148
+ return /* @__PURE__ */ a.createElement(T, null, !y && /* @__PURE__ */ a.createElement(
149
+ B,
150
+ {
151
+ title: l.toLanguageString(b, C[b]),
152
+ iconClass: "k-i-filter",
153
+ svgIcon: J,
154
+ onClick: this.onFilterExpand
155
+ }
156
+ ), /* @__PURE__ */ a.createElement(z, { show: y || !!w }, /* @__PURE__ */ a.createElement(
157
+ "form",
158
+ {
159
+ className: "k-filter-menu",
160
+ onSubmit: this.submit,
161
+ onReset: this.clear,
162
+ onKeyDown: (m) => m.stopPropagation()
163
+ },
164
+ /* @__PURE__ */ a.createElement("div", { className: "k-filter-menu-container" }, S ? /* @__PURE__ */ a.createElement(S, { ...I }) : /* @__PURE__ */ a.createElement(A, { ...I }), /* @__PURE__ */ a.createElement("div", { className: "k-actions k-actions-stretched" }, /* @__PURE__ */ a.createElement(
165
+ k,
166
+ {
167
+ themeColor: "primary",
168
+ disabled: !V
169
+ },
170
+ l.toLanguageString(M, C[M])
171
+ ), /* @__PURE__ */ a.createElement(
172
+ k,
173
+ {
174
+ type: "reset"
175
+ },
176
+ l.toLanguageString(P, C[P])
177
+ )))
178
+ )));
179
+ }
180
+ };
181
+ G.active = (i, o) => !!u(i, o);
182
+ let v = G;
183
+ H(v);
184
+ export {
185
+ v as GridColumnMenuFilter,
186
+ u as filterGroupByField,
187
+ F as rootFilterOrDefault
188
+ };
@@ -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 h=require("react"),p=require("@progress/kendo-react-dropdowns"),l=require("@progress/kendo-react-inputs"),u=require("@progress/kendo-react-dateinputs"),s=require("../filterCommon.js");function c(a){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(a){for(const e in a)if(e!=="default"){const o=Object.getOwnPropertyDescriptor(a,e);Object.defineProperty(t,e,o.get?o:{enumerable:!0,get:()=>a[e]})}}return t.default=a,Object.freeze(t)}const r=c(h);class d extends r.Component{constructor(t){super(t),this.renderOperatorEditor=()=>{if(this.props.filterType==="boolean")return;const e=this.props.operators.find(o=>o.operator===this.props.operator)||null;return r.createElement(p.DropDownList,{value:e,onChange:this.operatorChange,data:this.props.operators,textField:"text"})},this.inputChange=this.inputChange.bind(this),this.operatorChange=this.operatorChange.bind(this),this.boolDropdownChange=this.boolDropdownChange.bind(this)}render(){return r.createElement(r.Fragment,null,this.renderOperatorEditor(),this.filterComponent(this.props.filterType,this.props.value,this.props.booleanValues))}inputChange(t,e){s.cellInputChange(t,e,this.props)}operatorChange(t){s.cellOperatorChange(t,this.props.value,this.props.onChange)}boolDropdownChange(t){s.cellBoolDropdownChange(t,this.props.onChange)}filterComponent(t,e,o){switch(t){case"numeric":return r.createElement(l.NumericTextBox,{value:e,onChange:n=>{this.inputChange(n.value,n.syntheticEvent)},rangeOnEnter:!1});case"date":return r.createElement(u.DatePicker,{value:e,onChange:n=>{this.inputChange(n.value,n.syntheticEvent)}});case"boolean":{const n=i=>i==null;return r.createElement(p.DropDownList,{onChange:this.boolDropdownChange,value:o.find(i=>i.operator===(n(e)?"":e)),data:o,textField:"text"})}default:return r.createElement(l.Input,{value:e||"",onChange:n=>{this.inputChange(n.target.value,n.syntheticEvent)}})}}}exports.GridColumnMenuFilterCell=d;
@@ -0,0 +1,96 @@
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 r from "react";
10
+ import { DropDownList as i } from "@progress/kendo-react-dropdowns";
11
+ import { Input as p, NumericTextBox as s } from "@progress/kendo-react-inputs";
12
+ import { DatePicker as h } from "@progress/kendo-react-dateinputs";
13
+ import { cellInputChange as l, cellOperatorChange as u, cellBoolDropdownChange as C } from "../filterCommon.mjs";
14
+ class E extends r.Component {
15
+ constructor(t) {
16
+ super(t), this.renderOperatorEditor = () => {
17
+ if (this.props.filterType === "boolean")
18
+ return;
19
+ const n = this.props.operators.find((o) => o.operator === this.props.operator) || null;
20
+ return /* @__PURE__ */ r.createElement(
21
+ i,
22
+ {
23
+ value: n,
24
+ onChange: this.operatorChange,
25
+ data: this.props.operators,
26
+ textField: "text"
27
+ }
28
+ );
29
+ }, this.inputChange = this.inputChange.bind(this), this.operatorChange = this.operatorChange.bind(this), this.boolDropdownChange = this.boolDropdownChange.bind(this);
30
+ }
31
+ /**
32
+ * @hidden
33
+ */
34
+ render() {
35
+ return /* @__PURE__ */ r.createElement(r.Fragment, null, this.renderOperatorEditor(), this.filterComponent(this.props.filterType, this.props.value, this.props.booleanValues));
36
+ }
37
+ inputChange(t, n) {
38
+ l(t, n, this.props);
39
+ }
40
+ operatorChange(t) {
41
+ u(t, this.props.value, this.props.onChange);
42
+ }
43
+ boolDropdownChange(t) {
44
+ C(t, this.props.onChange);
45
+ }
46
+ filterComponent(t, n, o) {
47
+ switch (t) {
48
+ case "numeric":
49
+ return /* @__PURE__ */ r.createElement(
50
+ s,
51
+ {
52
+ value: n,
53
+ onChange: (e) => {
54
+ this.inputChange(e.value, e.syntheticEvent);
55
+ },
56
+ rangeOnEnter: !1
57
+ }
58
+ );
59
+ case "date":
60
+ return /* @__PURE__ */ r.createElement(
61
+ h,
62
+ {
63
+ value: n,
64
+ onChange: (e) => {
65
+ this.inputChange(e.value, e.syntheticEvent);
66
+ }
67
+ }
68
+ );
69
+ case "boolean": {
70
+ const e = (a) => a == null;
71
+ return /* @__PURE__ */ r.createElement(
72
+ i,
73
+ {
74
+ onChange: this.boolDropdownChange,
75
+ value: o.find((a) => a.operator === (e(n) ? "" : n)),
76
+ data: o,
77
+ textField: "text"
78
+ }
79
+ );
80
+ }
81
+ default:
82
+ return /* @__PURE__ */ r.createElement(
83
+ p,
84
+ {
85
+ value: n || "",
86
+ onChange: (e) => {
87
+ this.inputChange(e.target.value, e.syntheticEvent);
88
+ }
89
+ }
90
+ );
91
+ }
92
+ }
93
+ }
94
+ export {
95
+ E as GridColumnMenuFilterCell
96
+ };
@@ -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 u=require("react"),o=require("./GridColumnMenuFilterCell.js"),s=require("@progress/kendo-react-dropdowns");function d(t){const r=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const n in t)if(n!=="default"){const l=Object.getOwnPropertyDescriptor(t,n);Object.defineProperty(r,n,l.get?l:{enumerable:!0,get:()=>t[n]})}}return r.default=t,Object.freeze(r)}const e=d(u);class m extends e.Component{render(){const{firstFilterProps:r,hideSecondFilter:n,secondFilterProps:l,logicData:i,logicValue:a,onLogicChange:c}=this.props;return e.createElement(e.Fragment,null,e.createElement(o.GridColumnMenuFilterCell,{...r}),!n&&e.createElement(e.Fragment,null,e.createElement(s.DropDownList,{data:i,value:a,onChange:c,className:"k-filter-and",textField:"text"}),e.createElement(o.GridColumnMenuFilterCell,{...l})))}}exports.GridColumnMenuFilterUI=m;
@@ -0,0 +1,36 @@
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 e from "react";
10
+ import { GridColumnMenuFilterCell as t } from "./GridColumnMenuFilterCell.mjs";
11
+ import { DropDownList as m } from "@progress/kendo-react-dropdowns";
12
+ class p extends e.Component {
13
+ render() {
14
+ const {
15
+ firstFilterProps: r,
16
+ hideSecondFilter: n,
17
+ secondFilterProps: l,
18
+ logicData: o,
19
+ logicValue: a,
20
+ onLogicChange: i
21
+ } = this.props;
22
+ return /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement(t, { ...r }), !n && /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement(
23
+ m,
24
+ {
25
+ data: o,
26
+ value: a,
27
+ onChange: i,
28
+ className: "k-filter-and",
29
+ textField: "text"
30
+ }
31
+ ), /* @__PURE__ */ e.createElement(t, { ...l })));
32
+ }
33
+ }
34
+ export {
35
+ p as GridColumnMenuFilterUI
36
+ };
@@ -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 d=require("react"),c=require("@progress/kendo-react-intl"),g=require("./GridColumnMenuItemGroup.js"),f=require("./GridColumnMenuItem.js"),u=require("../messages/index.js"),p=require("@progress/kendo-svg-icons");function m(r){const o=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(r){for(const e in r)if(e!=="default"){const n=Object.getOwnPropertyDescriptor(r,e);Object.defineProperty(o,e,n.get?n:{enumerable:!0,get:()=>r[e]})}}return o.default=r,Object.freeze(o)}const s=m(d);class l extends s.Component{constructor(){super(...arguments),this.onGroupClick=o=>{if(o.preventDefault(),this.props.onGroupChange){const{column:e}=this.props;if(!e.field)return;const n=(this.props.group||[]).slice(),t=n.findIndex(i=>i.field===e.field);t>-1?n.splice(t,1):n.push({field:e.field}),this.props.onGroupChange(n,o)}this.props.onCloseMenu&&this.props.onCloseMenu()}}render(){const{group:o,column:e}=this.props,n=c.provideLocalizationService(this),t=!!(o&&e.field&&o.find(a=>a.field===e.field)),i=t?u.ungroupColumn:u.groupColumn;return s.createElement(g.GridColumnMenuItemGroup,null,s.createElement(f.GridColumnMenuItem,{title:n.toLanguageString(i,u.messages[i]),iconClass:t?"k-i-ungroup":"k-i-group",svgIcon:t?p.ungroupIcon:p.groupIcon,onClick:this.onGroupClick}))}}c.registerForIntl(l);c.registerForLocalization(l);exports.GridColumnMenuGroup=l;