@progress/kendo-react-data-tools 7.2.4-develop.3 → 7.3.0-develop.1

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 (184) hide show
  1. package/clipboard/clipboard.service.js +8 -0
  2. package/clipboard/clipboard.service.mjs +27 -0
  3. package/clipboard/common.js +13 -0
  4. package/clipboard/common.mjs +64 -0
  5. package/columnmenu/ColumnMenu.js +8 -0
  6. package/columnmenu/ColumnMenu.mjs +256 -0
  7. package/columnmenu/ColumnMenuFilterForm.js +8 -0
  8. package/columnmenu/ColumnMenuFilterForm.mjs +47 -0
  9. package/columnmenu/ColumnMenuFilterLogic.js +8 -0
  10. package/columnmenu/ColumnMenuFilterLogic.mjs +29 -0
  11. package/columnmenu/ColumnMenuFilters.js +8 -0
  12. package/columnmenu/ColumnMenuFilters.mjs +98 -0
  13. package/columnmenu/ColumnMenuItem.js +8 -0
  14. package/columnmenu/ColumnMenuItem.mjs +26 -0
  15. package/columnmenu/ColumnMenuOperators.js +8 -0
  16. package/columnmenu/ColumnMenuOperators.mjs +109 -0
  17. package/dist/cdn/js/kendo-react-datatools.js +8 -10
  18. package/drag/ColumnDraggable.js +8 -0
  19. package/drag/ColumnDraggable.mjs +40 -0
  20. package/drag/ColumnResize.js +8 -0
  21. package/drag/ColumnResize.mjs +58 -0
  22. package/drag/ColumnResizer.js +8 -0
  23. package/drag/ColumnResizer.mjs +56 -0
  24. package/drag/CommonDragLogic.js +8 -0
  25. package/drag/CommonDragLogic.mjs +89 -0
  26. package/drag/DragClue.js +8 -0
  27. package/drag/DragClue.mjs +52 -0
  28. package/drag/DropClue.js +8 -0
  29. package/drag/DropClue.mjs +43 -0
  30. package/filter/Expression.js +8 -0
  31. package/filter/Expression.mjs +113 -0
  32. package/filter/Filter.js +8 -0
  33. package/filter/Filter.mjs +84 -0
  34. package/filter/Group.js +8 -0
  35. package/filter/Group.mjs +163 -0
  36. package/filter/filters/BooleanFilter.js +8 -0
  37. package/filter/filters/BooleanFilter.mjs +43 -0
  38. package/filter/filters/DateFilter.js +8 -0
  39. package/filter/filters/DateFilter.mjs +43 -0
  40. package/filter/filters/EnumFilter.js +8 -0
  41. package/filter/filters/EnumFilter.mjs +59 -0
  42. package/filter/filters/NumericFilter.js +8 -0
  43. package/filter/filters/NumericFilter.mjs +54 -0
  44. package/filter/filters/TextFilter.js +8 -0
  45. package/filter/filters/TextFilter.mjs +46 -0
  46. package/filter/operators.js +8 -0
  47. package/filter/operators.mjs +114 -0
  48. package/filteringCells/BooleanFilter.js +8 -0
  49. package/filteringCells/BooleanFilter.mjs +49 -0
  50. package/filteringCells/DateFilter.js +8 -0
  51. package/filteringCells/DateFilter.mjs +22 -0
  52. package/filteringCells/FilterComponent.js +8 -0
  53. package/filteringCells/FilterComponent.mjs +81 -0
  54. package/filteringCells/NumericFilter.js +8 -0
  55. package/filteringCells/NumericFilter.mjs +22 -0
  56. package/filteringCells/TextFilter.js +8 -0
  57. package/filteringCells/TextFilter.mjs +22 -0
  58. package/header/ColumnProps.js +8 -0
  59. package/header/ColumnProps.mjs +19 -0
  60. package/header/FilterRow.js +8 -0
  61. package/header/FilterRow.mjs +54 -0
  62. package/header/Header.js +8 -0
  63. package/header/Header.mjs +36 -0
  64. package/header/HeaderCell.js +8 -0
  65. package/header/HeaderCell.mjs +18 -0
  66. package/header/HeaderRow.js +8 -0
  67. package/header/HeaderRow.mjs +132 -0
  68. package/header/HeaderSelectionCell.js +8 -0
  69. package/header/HeaderSelectionCell.mjs +32 -0
  70. package/header/HeaderThElement.js +8 -0
  71. package/header/HeaderThElement.mjs +47 -0
  72. package/header/SortSettings.js +8 -0
  73. package/header/SortSettings.mjs +12 -0
  74. package/header/utils/index.js +8 -0
  75. package/header/utils/index.mjs +130 -0
  76. package/index.d.mts +2398 -5
  77. package/index.d.ts +2398 -32
  78. package/index.js +8 -10
  79. package/index.mjs +152 -2987
  80. package/messages/index.js +8 -0
  81. package/messages/index.mjs +167 -0
  82. package/navigation/TableKeyboardNavigation.js +8 -0
  83. package/navigation/TableKeyboardNavigation.mjs +142 -0
  84. package/navigation/TableKeyboardNavigationContext.js +8 -0
  85. package/navigation/TableKeyboardNavigationContext.mjs +14 -0
  86. package/navigation/constants.js +8 -0
  87. package/navigation/constants.mjs +43 -0
  88. package/navigation/hooks.js +8 -0
  89. package/navigation/hooks.mjs +22 -0
  90. package/navigation/utils.js +8 -0
  91. package/navigation/utils.mjs +107 -0
  92. package/package-metadata.js +8 -0
  93. package/package-metadata.mjs +19 -0
  94. package/package.json +9 -9
  95. package/pager/Pager.js +8 -0
  96. package/pager/Pager.mjs +234 -0
  97. package/pager/PagerInput.js +8 -0
  98. package/pager/PagerInput.mjs +38 -0
  99. package/pager/PagerNumericButtons.js +8 -0
  100. package/pager/PagerNumericButtons.mjs +103 -0
  101. package/pager/PagerPageSizes.js +8 -0
  102. package/pager/PagerPageSizes.mjs +38 -0
  103. package/selection/TableSelection.js +8 -0
  104. package/selection/TableSelection.mjs +123 -0
  105. package/selection/constants.js +8 -0
  106. package/selection/constants.mjs +14 -0
  107. package/selection/utils.js +8 -0
  108. package/selection/utils.mjs +155 -0
  109. package/utils/data-operations.js +8 -0
  110. package/utils/data-operations.mjs +127 -0
  111. package/utils/group-operations.js +8 -0
  112. package/utils/group-operations.mjs +32 -0
  113. package/virtualization/columns.js +8 -0
  114. package/virtualization/columns.mjs +43 -0
  115. package/clipboard/clipboard.service.d.ts +0 -17
  116. package/clipboard/common.d.ts +0 -129
  117. package/columnmenu/ColumnMenu.d.ts +0 -83
  118. package/columnmenu/ColumnMenuFilterForm.d.ts +0 -17
  119. package/columnmenu/ColumnMenuFilterLogic.d.ts +0 -7
  120. package/columnmenu/ColumnMenuFilters.d.ts +0 -23
  121. package/columnmenu/ColumnMenuItem.d.ts +0 -15
  122. package/columnmenu/ColumnMenuOperators.d.ts +0 -69
  123. package/columnmenu/index.d.ts +0 -10
  124. package/drag/ColumnDraggable.d.ts +0 -34
  125. package/drag/ColumnResize.d.ts +0 -36
  126. package/drag/ColumnResizer.d.ts +0 -32
  127. package/drag/CommonDragLogic.d.ts +0 -42
  128. package/drag/DragClue.d.ts +0 -26
  129. package/drag/DropClue.d.ts +0 -23
  130. package/filter/Expression.d.ts +0 -50
  131. package/filter/FieldSettings.d.ts +0 -34
  132. package/filter/Filter.d.ts +0 -83
  133. package/filter/Group.d.ts +0 -58
  134. package/filter/filters/BooleanFilter.d.ts +0 -47
  135. package/filter/filters/DateFilter.d.ts +0 -30
  136. package/filter/filters/EnumFilter.d.ts +0 -47
  137. package/filter/filters/NumericFilter.d.ts +0 -37
  138. package/filter/filters/TextFilter.d.ts +0 -44
  139. package/filter/filters/index.d.ts +0 -9
  140. package/filter/index.d.ts +0 -10
  141. package/filter/operators.d.ts +0 -77
  142. package/filteringCells/BooleanFilter.d.ts +0 -12
  143. package/filteringCells/DateFilter.d.ts +0 -12
  144. package/filteringCells/FilterCellProps.d.ts +0 -39
  145. package/filteringCells/FilterComponent.d.ts +0 -21
  146. package/filteringCells/FilterComponentProps.d.ts +0 -27
  147. package/filteringCells/FilterOperator.d.ts +0 -17
  148. package/filteringCells/NumericFilter.d.ts +0 -12
  149. package/filteringCells/TextFilter.d.ts +0 -12
  150. package/filteringCells/index.d.ts +0 -12
  151. package/header/CellProps.d.ts +0 -72
  152. package/header/ColumnProps.d.ts +0 -157
  153. package/header/FilterRow.d.ts +0 -29
  154. package/header/Header.d.ts +0 -22
  155. package/header/HeaderCell.d.ts +0 -51
  156. package/header/HeaderRow.d.ts +0 -41
  157. package/header/HeaderSelectionCell.d.ts +0 -15
  158. package/header/HeaderThElement.d.ts +0 -26
  159. package/header/SortSettings.d.ts +0 -30
  160. package/header/index.d.ts +0 -14
  161. package/header/utils/index.d.ts +0 -87
  162. package/messages/index.d.ts +0 -394
  163. package/navigation/TableKeyboardNavigation.d.ts +0 -72
  164. package/navigation/TableKeyboardNavigationContext.d.ts +0 -10
  165. package/navigation/TableKeyboardNavigationContextType.d.ts +0 -11
  166. package/navigation/TableKeyboardNavigationStateType.d.ts +0 -14
  167. package/navigation/constants.d.ts +0 -58
  168. package/navigation/hooks.d.ts +0 -16
  169. package/navigation/utils.d.ts +0 -149
  170. package/package-metadata.d.ts +0 -9
  171. package/pager/Pager.d.ts +0 -208
  172. package/pager/PagerInput.d.ts +0 -29
  173. package/pager/PagerNumericButtons.d.ts +0 -32
  174. package/pager/PagerPageSizes.d.ts +0 -30
  175. package/selection/TableSelectableSettings.d.ts +0 -35
  176. package/selection/TableSelection.d.ts +0 -15
  177. package/selection/constants.d.ts +0 -10
  178. package/selection/events.d.ts +0 -98
  179. package/selection/utils.d.ts +0 -70
  180. package/utils/DataItemWrapper.d.ts +0 -14
  181. package/utils/data-operations.d.ts +0 -98
  182. package/utils/group-operations.d.ts +0 -33
  183. package/virtualization/columns.d.ts +0 -19
  184. package/virtualization/index.d.ts +0 -5
@@ -0,0 +1,58 @@
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
+ class a {
10
+ constructor(e) {
11
+ this.columns = [], this.resizable = !1, this.isRtl = !1, this.setIsRtl = (h) => {
12
+ this.isRtl = h;
13
+ }, this.onResize = e, this.dragHandler = this.dragHandler.bind(this);
14
+ }
15
+ dragHandler(e, h, n, s) {
16
+ const l = e.originalEvent;
17
+ s || (l.preventDefault(), l.stopPropagation(), l.stopImmediatePropagation());
18
+ const t = n.parentElement;
19
+ if (!t || !t.parentElement)
20
+ return;
21
+ const i = t.clientWidth;
22
+ let o;
23
+ if (this.isRtl ? (o = n.getBoundingClientRect().right - n.offsetWidth / 2 - e.clientX, o += i) : o = i + e.clientX - n.getBoundingClientRect().left - n.offsetWidth / 2, !s && Math.abs(o - i) < 1)
24
+ return;
25
+ this.setWidths(h, Math.floor(o) / i);
26
+ const r = this.columns.filter((d) => !d.children.length).indexOf(h);
27
+ this.onResize(r, i, o, l, s);
28
+ }
29
+ setWidths(e, h) {
30
+ const n = this.columns.indexOf(e), s = [];
31
+ let l = e.children.length;
32
+ for (let t = n + 1; l > 0 && t < this.columns.length; t++, l--) {
33
+ const i = this.columns[t];
34
+ i.children.length ? l += i.children.length : s.push(i);
35
+ }
36
+ s.length === 0 && s.push(e), s.forEach((t) => {
37
+ let i = t.width ? parseFloat(t.width.toString()) * h : 0;
38
+ const o = t.minResizableWidth === void 0 ? 10 : t.minResizableWidth;
39
+ i < o && (i = o), t.width = Math.floor(i);
40
+ }), this.updateColElements(s);
41
+ }
42
+ updateColElements(e) {
43
+ const h = this.columns.filter((s) => !s.children.length);
44
+ let n = 1e-10;
45
+ for (let s = 0; s < e.length; s++) {
46
+ const l = h.indexOf(e[s]), t = parseFloat((e[s].width || 0).toString());
47
+ n += t - Math.floor(t);
48
+ const i = Math.floor(t) + Math.floor(n);
49
+ n -= Math.floor(n), this.setColWidth(this.colGroupMain && this.colGroupMain.children[l], i), this.setColWidth(this.colGroupHeader && this.colGroupHeader.children[l], i), this.setColWidth(this.colGroupFooter && this.colGroupFooter.children[l], i);
50
+ }
51
+ }
52
+ setColWidth(e, h) {
53
+ e && (e.style.width = h + "px");
54
+ }
55
+ }
56
+ export {
57
+ a as ColumnResize
58
+ };
@@ -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 a=require("react"),i=require("@progress/kendo-react-common");function o(s){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(s){for(const t in s)if(t!=="default"){const n=Object.getOwnPropertyDescriptor(s,t);Object.defineProperty(e,t,n.get?n:{enumerable:!0,get:()=>s[t]})}}return e.default=s,Object.freeze(e)}const r=o(a);class l extends r.Component{constructor(){super(...arguments),this.draggable=null,this.isDragged=!1,this.onDrag=e=>{this.isDragged=!0;const t=this.draggable&&this.draggable.element;t&&this.props.resize(e.event,t,!1)},this.onRelease=e=>{if(!this.isDragged)return;const t=this.draggable&&this.draggable.element;t&&this.props.resize(e.event,t,!0),this.isDragged=!1},this.onDoubleClick=e=>{if(this.isDragged)return;const t=this.draggable&&this.draggable.element;t&&this.props.autofit&&this.props.autofit(e,t)}}render(){return r.createElement(i.Draggable,{onPress:e=>{e.event.originalEvent.stopPropagation()},onDrag:this.onDrag,onRelease:this.onRelease,ref:e=>{this.draggable=e}},r.createElement("span",{className:"k-column-resizer",style:{touchAction:"none"},draggable:!1,onDoubleClick:this.onDoubleClick}))}}exports.ColumnResizer=l;
@@ -0,0 +1,56 @@
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 { Draggable as r } from "@progress/kendo-react-common";
11
+ class n extends s.Component {
12
+ constructor() {
13
+ super(...arguments), this.draggable = null, this.isDragged = !1, this.onDrag = (e) => {
14
+ this.isDragged = !0;
15
+ const t = this.draggable && this.draggable.element;
16
+ t && this.props.resize(e.event, t, !1);
17
+ }, this.onRelease = (e) => {
18
+ if (!this.isDragged)
19
+ return;
20
+ const t = this.draggable && this.draggable.element;
21
+ t && this.props.resize(e.event, t, !0), this.isDragged = !1;
22
+ }, this.onDoubleClick = (e) => {
23
+ if (this.isDragged)
24
+ return;
25
+ const t = this.draggable && this.draggable.element;
26
+ t && this.props.autofit && this.props.autofit(e, t);
27
+ };
28
+ }
29
+ render() {
30
+ return /* @__PURE__ */ s.createElement(
31
+ r,
32
+ {
33
+ onPress: (e) => {
34
+ e.event.originalEvent.stopPropagation();
35
+ },
36
+ onDrag: this.onDrag,
37
+ onRelease: this.onRelease,
38
+ ref: (e) => {
39
+ this.draggable = e;
40
+ }
41
+ },
42
+ /* @__PURE__ */ s.createElement(
43
+ "span",
44
+ {
45
+ className: "k-column-resizer",
46
+ style: { touchAction: "none" },
47
+ draggable: !1,
48
+ onDoubleClick: this.onDoubleClick
49
+ }
50
+ )
51
+ );
52
+ }
53
+ }
54
+ export {
55
+ n as ColumnResizer
56
+ };
@@ -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 o=require("../header/utils/index.js");class a{constructor(r,i,u){this.columns=[],this.reorderable=!1,this.groupable=!1,this.startColumn=-1,this.startGroup=-1,this.currentColumn=-1,this.currentGroup=-1,this.dropElementClue=null,this.dragElementClue=null,this.groupPanelDivElement=null,this.refGroupPanelDiv=t=>{this.groupPanelDivElement=t},this.refDropElementClue=t=>{this.dropElementClue=t},this.refDragElementClue=t=>{this.dragElementClue=t},this.pressHandler=(t,e)=>{const n=this.getColumnIndex(t,e);if(this.startGroup=this.getGroupIndex(t),n>=0){const s=this.columns[n];(s.reorderable&&this.reorderable||s.groupable&&this.groupable)&&(this.startColumn=n)}},this.dragHandler=(t,e)=>{if(t.isTouch||t.originalEvent.preventDefault(),t.originalEvent.stopPropagation(),this.startColumn===-1&&this.startGroup===-1)return;this.currentColumn=this.getColumnIndex(t,e),this.currentGroup=this.getGroupIndex(t),this.groupPanelDivElement&&this.startGroup>=0&&(this.currentGroup=Math.min(this.currentGroup,this.groupPanelDivElement.children.length-2));const n=!this.isValid();n&&(this.currentColumn=-1,this.currentGroup=-1);const s=this.currentColumn>=0?e.children[this.columns[this.currentColumn].index]:this.groupPanelDivElement&&this.groupPanelDivElement.children[this.currentGroup];this.updateDragElementClue(t,e,s,n),this.updateDropElementClue(t,e,s,n)},this.releaseHandler=t=>{const e=this.startColumn,n=this.currentColumn,s=this.startGroup,l=this.currentGroup;this.dropElementClue&&this.dropElementClue.setState({visible:!1}),this.dragElementClue&&this.dragElementClue.setState({visible:!1});const h=this.isValid();this.startColumn=this.startGroup=this.currentColumn=this.currentGroup=-1,h&&(e>=0&&n>=0?this.columnReorder(e,n,t.originalEvent):s>=0&&l>=0?this.groupReorder(s,l,t.originalEvent):e>=0&&l>=0&&this.columnToGroup(e,l,t.originalEvent))},this.columnReorder=r,this.groupReorder=i,this.columnToGroup=u}getColumnIndex(r,i){if(!i||i.parentElement===this.groupPanelDivElement)return-1;const u=o.getIndex(r,i);if(u===-1)return-1;for(let t=0;t<i.parentNode.children.length;t++)if(i.parentNode.children[t]===i)return this.columns.findIndex(e=>e.index===u&&e.depth===t);return-1}getGroupIndex(r){return o.getIndex(r,this.groupPanelDivElement)}isValid(){return this.startGroup>=0?this.currentGroup>=0&&this.currentGroup!==this.startGroup:this.startColumn===-1?!1:this.currentGroup>=0?this.columns[this.startColumn].groupable===!0&&this.groupable===!0:this.reorderable===!0&&this.currentColumn>=0&&this.currentColumn!==this.startColumn&&this.columns[this.startColumn].reorderable===!0&&this.columns[this.currentColumn].parentIndex===this.columns[this.startColumn].parentIndex}updateDragElementClue(r,i,u,t){if(!this.dragElementClue)return;const e=this.startColumn>=0?i.children[this.columns[this.startColumn].index].innerText:i.innerText;this.dragElementClue.setState({visible:!0,top:r.pageY+10,left:r.pageX,innerText:e,status:t||!u?"k-i-cancel":"k-i-plus"})}updateDropElementClue(r,i,u,t){if(!this.dropElementClue)return;if(t||!u){this.dropElementClue.setState({visible:!1});return}const e=u.getBoundingClientRect();let n=e.left+r.pageX-r.clientX-6;(this.currentColumn>this.startColumn||this.currentGroup>this.startGroup&&this.startGroup!==-1)&&(n+=e.width);const s=e.top+r.pageY-r.clientY;this.dropElementClue.setState({visible:!0,top:s,left:n,height:this.currentColumn>=0?i.clientHeight:e.height})}}exports.CommonDragLogic=a;
@@ -0,0 +1,89 @@
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 { getIndex as o } from "../header/utils/index.mjs";
10
+ class m {
11
+ constructor(r, i, u) {
12
+ this.columns = [], this.reorderable = !1, this.groupable = !1, this.startColumn = -1, this.startGroup = -1, this.currentColumn = -1, this.currentGroup = -1, this.dropElementClue = null, this.dragElementClue = null, this.groupPanelDivElement = null, this.refGroupPanelDiv = (t) => {
13
+ this.groupPanelDivElement = t;
14
+ }, this.refDropElementClue = (t) => {
15
+ this.dropElementClue = t;
16
+ }, this.refDragElementClue = (t) => {
17
+ this.dragElementClue = t;
18
+ }, this.pressHandler = (t, e) => {
19
+ const s = this.getColumnIndex(t, e);
20
+ if (this.startGroup = this.getGroupIndex(t), s >= 0) {
21
+ const n = this.columns[s];
22
+ (n.reorderable && this.reorderable || n.groupable && this.groupable) && (this.startColumn = s);
23
+ }
24
+ }, this.dragHandler = (t, e) => {
25
+ if (t.isTouch || t.originalEvent.preventDefault(), t.originalEvent.stopPropagation(), this.startColumn === -1 && this.startGroup === -1)
26
+ return;
27
+ this.currentColumn = this.getColumnIndex(t, e), this.currentGroup = this.getGroupIndex(t), this.groupPanelDivElement && this.startGroup >= 0 && (this.currentGroup = Math.min(this.currentGroup, this.groupPanelDivElement.children.length - 2));
28
+ const s = !this.isValid();
29
+ s && (this.currentColumn = -1, this.currentGroup = -1);
30
+ const n = this.currentColumn >= 0 ? e.children[this.columns[this.currentColumn].index] : this.groupPanelDivElement && this.groupPanelDivElement.children[this.currentGroup];
31
+ this.updateDragElementClue(t, e, n, s), this.updateDropElementClue(t, e, n, s);
32
+ }, this.releaseHandler = (t) => {
33
+ const e = this.startColumn, s = this.currentColumn, n = this.startGroup, l = this.currentGroup;
34
+ this.dropElementClue && this.dropElementClue.setState({ visible: !1 }), this.dragElementClue && this.dragElementClue.setState({ visible: !1 });
35
+ const h = this.isValid();
36
+ this.startColumn = this.startGroup = this.currentColumn = this.currentGroup = -1, h && (e >= 0 && s >= 0 ? this.columnReorder(e, s, t.originalEvent) : n >= 0 && l >= 0 ? this.groupReorder(n, l, t.originalEvent) : e >= 0 && l >= 0 && this.columnToGroup(e, l, t.originalEvent));
37
+ }, this.columnReorder = r, this.groupReorder = i, this.columnToGroup = u;
38
+ }
39
+ getColumnIndex(r, i) {
40
+ if (!i || i.parentElement === this.groupPanelDivElement)
41
+ return -1;
42
+ const u = o(r, i);
43
+ if (u === -1)
44
+ return -1;
45
+ for (let t = 0; t < i.parentNode.children.length; t++)
46
+ if (i.parentNode.children[t] === i)
47
+ return this.columns.findIndex((e) => e.index === u && e.depth === t);
48
+ return -1;
49
+ }
50
+ getGroupIndex(r) {
51
+ return o(r, this.groupPanelDivElement);
52
+ }
53
+ isValid() {
54
+ return this.startGroup >= 0 ? this.currentGroup >= 0 && this.currentGroup !== this.startGroup : this.startColumn === -1 ? !1 : this.currentGroup >= 0 ? this.columns[this.startColumn].groupable === !0 && this.groupable === !0 : this.reorderable === !0 && this.currentColumn >= 0 && this.currentColumn !== this.startColumn && this.columns[this.startColumn].reorderable === !0 && this.columns[this.currentColumn].parentIndex === this.columns[this.startColumn].parentIndex;
55
+ }
56
+ updateDragElementClue(r, i, u, t) {
57
+ if (!this.dragElementClue)
58
+ return;
59
+ const e = this.startColumn >= 0 ? i.children[this.columns[this.startColumn].index].innerText : i.innerText;
60
+ this.dragElementClue.setState({
61
+ visible: !0,
62
+ top: r.pageY + 10,
63
+ left: r.pageX,
64
+ innerText: e,
65
+ status: t || !u ? "k-i-cancel" : "k-i-plus"
66
+ });
67
+ }
68
+ updateDropElementClue(r, i, u, t) {
69
+ if (!this.dropElementClue)
70
+ return;
71
+ if (t || !u) {
72
+ this.dropElementClue.setState({ visible: !1 });
73
+ return;
74
+ }
75
+ const e = u.getBoundingClientRect();
76
+ let s = e.left + r.pageX - r.clientX - 6;
77
+ (this.currentColumn > this.startColumn || this.currentGroup > this.startGroup && this.startGroup !== -1) && (s += e.width);
78
+ const n = e.top + r.pageY - r.clientY;
79
+ this.dropElementClue.setState({
80
+ visible: !0,
81
+ top: n,
82
+ left: s,
83
+ height: this.currentColumn >= 0 ? i.clientHeight : e.height
84
+ });
85
+ }
86
+ }
87
+ export {
88
+ m as CommonDragLogic
89
+ };
@@ -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 o=require("react"),l=require("react-dom"),c=require("@progress/kendo-react-common"),a=require("@progress/kendo-svg-icons");function i(r){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(r){for(const n in r)if(n!=="default"){const s=Object.getOwnPropertyDescriptor(r,n);Object.defineProperty(e,n,s.get?s:{enumerable:!0,get:()=>r[n]})}}return e.default=r,Object.freeze(e)}const t=i(o);class u extends t.PureComponent{constructor(e){super(e),this.elementRef=t.createRef(),this.state={visible:!1,top:0,left:0,innerText:"",status:"k-i-cancel"},this.hiddenElementRef=t.createRef()}get element(){return this.elementRef.current}render(){const e=this.hiddenElementRef.current,{status:n}=this.state,s=this.state.visible&&c.canUseDOM&&l.createPortal(t.createElement("div",{ref:this.elementRef,className:"k-header k-drag-clue",style:{display:"block",position:"absolute",zIndex:2e4,padding:"8px 12px",top:this.state.top+"px",left:this.state.left+"px"}},t.createElement(c.IconWrap,{className:"k-drag-status",name:n,icon:n==="k-i-cancel"?a.cancelIcon:a.plusIcon}),this.state.innerText),e&&e.ownerDocument?e.ownerDocument.body:document.body);return t.createElement(t.Fragment,null,s,t.createElement("div",{ref:this.hiddenElementRef,style:{display:"none"}}))}}exports.DragClue=u;
@@ -0,0 +1,52 @@
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 { createPortal as r } from "react-dom";
11
+ import { canUseDOM as a, IconWrap as l } from "@progress/kendo-react-common";
12
+ import { cancelIcon as i, plusIcon as o } from "@progress/kendo-svg-icons";
13
+ class u extends e.PureComponent {
14
+ constructor(t) {
15
+ super(t), this.elementRef = e.createRef(), this.state = {
16
+ visible: !1,
17
+ top: 0,
18
+ left: 0,
19
+ innerText: "",
20
+ status: "k-i-cancel"
21
+ }, this.hiddenElementRef = e.createRef();
22
+ }
23
+ get element() {
24
+ return this.elementRef.current;
25
+ }
26
+ render() {
27
+ const t = this.hiddenElementRef.current, { status: n } = this.state, s = this.state.visible && a && r(
28
+ /* @__PURE__ */ e.createElement(
29
+ "div",
30
+ {
31
+ ref: this.elementRef,
32
+ className: "k-header k-drag-clue",
33
+ style: {
34
+ display: "block",
35
+ position: "absolute",
36
+ zIndex: 2e4,
37
+ padding: "8px 12px",
38
+ top: this.state.top + "px",
39
+ left: this.state.left + "px"
40
+ }
41
+ },
42
+ /* @__PURE__ */ e.createElement(l, { className: "k-drag-status", name: n, icon: n === "k-i-cancel" ? i : o }),
43
+ this.state.innerText
44
+ ),
45
+ t && t.ownerDocument ? t.ownerDocument.body : document.body
46
+ );
47
+ return /* @__PURE__ */ e.createElement(e.Fragment, null, s, /* @__PURE__ */ e.createElement("div", { ref: this.hiddenElementRef, style: { display: "none" } }));
48
+ }
49
+ }
50
+ export {
51
+ u as DragClue
52
+ };
@@ -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 s=require("react"),c=require("react-dom"),l=require("@progress/kendo-react-common");function i(t){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const n in t)if(n!=="default"){const o=Object.getOwnPropertyDescriptor(t,n);Object.defineProperty(e,n,o.get?o:{enumerable:!0,get:()=>t[n]})}}return e.default=t,Object.freeze(e)}const r=i(s);class a extends r.PureComponent{constructor(e){super(e),this.state={height:0,visible:!1,left:0,top:0},this.hiddenElementRef=r.createRef()}render(){const e=this.hiddenElementRef.current,n=this.state.visible&&l.canUseDOM&&c.createPortal(r.createElement("div",{className:"k-grouping-dropclue",style:{zIndex:1e4,display:"block",top:this.state.top+"px",left:this.state.left+"px",height:this.state.height+"px"}}),e&&e.ownerDocument?e.ownerDocument.body:document.body);return r.createElement(r.Fragment,null,n,r.createElement("div",{ref:this.hiddenElementRef,style:{display:"none"}}))}}exports.DropClue=a;
@@ -0,0 +1,43 @@
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 { createPortal as s } from "react-dom";
11
+ import { canUseDOM as r } from "@progress/kendo-react-common";
12
+ class a extends e.PureComponent {
13
+ constructor(t) {
14
+ super(t), this.state = {
15
+ height: 0,
16
+ visible: !1,
17
+ left: 0,
18
+ top: 0
19
+ }, this.hiddenElementRef = e.createRef();
20
+ }
21
+ render() {
22
+ const t = this.hiddenElementRef.current, n = this.state.visible && r && s(
23
+ /* @__PURE__ */ e.createElement(
24
+ "div",
25
+ {
26
+ className: "k-grouping-dropclue",
27
+ style: {
28
+ zIndex: 1e4,
29
+ display: "block",
30
+ top: this.state.top + "px",
31
+ left: this.state.left + "px",
32
+ height: this.state.height + "px"
33
+ }
34
+ }
35
+ ),
36
+ t && t.ownerDocument ? t.ownerDocument.body : document.body
37
+ );
38
+ return /* @__PURE__ */ e.createElement(e.Fragment, null, n, /* @__PURE__ */ e.createElement("div", { ref: this.hiddenElementRef, style: { display: "none" } }));
39
+ }
40
+ }
41
+ export {
42
+ a as DropClue
43
+ };
@@ -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("react"),p=require("prop-types"),g=require("@progress/kendo-react-buttons"),m=require("@progress/kendo-react-dropdowns"),v=require("@progress/kendo-react-intl"),x=require("@progress/kendo-svg-icons"),u=require("./operators.js"),n=require("../messages/index.js");function E(s){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(s){for(const r in s)if(r!=="default"){const e=Object.getOwnPropertyDescriptor(s,r);Object.defineProperty(t,r,e.get?e:{enumerable:!0,get:()=>s[r]})}}return t.default=s,Object.freeze(t)}const l=E(b),h=s=>{s.value===void 0&&!u.unaryOperator(s.operator)&&(s.value=u.stringOperator(s.operator)?"":null)},f=class f extends l.Component{constructor(){super(...arguments),this.onFieldChange=t=>{const r=t.value.name,e=this.props.fields.find(a=>a.name===r),o=this.props.filter,i=e&&!e.operators.some(a=>a.operator===o.operator)?e.operators[0].operator:o.operator,c={field:r,operator:i};h(c),this.triggerOnFilterChange(o,c,t)},this.onOperatorChange=t=>{const r=t.value.operator,e=this.props.filter;let o;if(u.unaryOperator(r)){let{value:i,...c}=e;o={...c,operator:r}}else o={...e,operator:r};h(o),this.triggerOnFilterChange(e,o,t)},this.onInputChange=t=>{const r=this.props.filter;let e=t.nextFilter;if(u.unaryOperator(e.operator)){const o=this.props.fields.find(i=>i.name===e.field);e={...e,operator:o&&o.operators[0].operator||e.operator}}this.triggerOnFilterChange(r,e,t)},this.triggerOnFilterChange=(t,r,e)=>{const o={prevFilter:t,nextFilter:r,syntheticEvent:e.syntheticEvent,nativeEvent:e.nativeEvent,target:this};this.props.onChange.call(void 0,o)},this.onFilterRemove=t=>{const r={filter:this.props.filter,syntheticEvent:t.syntheticEvent,nativeEvent:t.nativeEvent,target:this};this.props.onRemove.call(void 0,r)}}render(){const t=v.provideLocalizationService(this),{fields:r,filter:e,ariaLabel:o=t.toLanguageString(n.filterExpressionAriaLabel,n.messages[n.filterExpressionAriaLabel])}=this.props,i=r.find(a=>a.name===e.field),c=(i&&i.operators||[]).map(a=>({...a,text:t.toLanguageString(a.text,n.messages[a.text]||a.text)}));return l.createElement("div",{className:"k-filter-toolbar"},l.createElement(g.Toolbar,{keyboardNavigation:!1,role:"toolbar",ariaLabel:o},l.createElement(g.ToolbarItem,{className:"k-filter-field"},l.createElement(m.DropDownList,{className:"k-filter-dropdown",data:r,textField:"label",value:r.find(a=>a.name===e.field),onChange:this.onFieldChange,ariaLabel:t.toLanguageString(n.filterExpressionDropdownAriaLabel,n.messages[n.filterExpressionDropdownAriaLabel])})),l.createElement(g.ToolbarItem,{className:"k-filter-operator"},l.createElement(m.DropDownList,{data:c,textField:"text",value:c.find(a=>a.operator===e.operator),onChange:this.onOperatorChange,ariaLabel:t.toLanguageString(n.filterExpressionOperatorDropdownAriaLabel,n.messages[n.filterExpressionOperatorDropdownAriaLabel])})),l.createElement(g.ToolbarItem,{className:"k-filter-value"},i&&l.createElement(i.filter,{filter:e,onFilterChange:this.onInputChange,min:i.min,max:i.max})),l.createElement(g.Button,{className:"k-toolbar-button",title:t.toLanguageString(n.filterClose,n.messages[n.filterClose]),icon:"x",svgIcon:x.xIcon,fillMode:"flat",type:"button",onClick:this.onFilterRemove})))}};f.propTypes={filter:p.object.isRequired,fields:p.array.isRequired,ariaLabel:p.string,onChange:p.func.isRequired,onRemove:p.func.isRequired};let d=f;v.registerForLocalization(d);exports.Expression=d;
@@ -0,0 +1,113 @@
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 s from "prop-types";
11
+ import { Toolbar as C, ToolbarItem as m, Button as b } from "@progress/kendo-react-buttons";
12
+ import { DropDownList as d } from "@progress/kendo-react-dropdowns";
13
+ import { provideLocalizationService as L, registerForLocalization as y } from "@progress/kendo-react-intl";
14
+ import { xIcon as N } from "@progress/kendo-svg-icons";
15
+ import { unaryOperator as g, stringOperator as O } from "./operators.mjs";
16
+ import { filterExpressionAriaLabel as v, messages as p, filterExpressionDropdownAriaLabel as u, filterExpressionOperatorDropdownAriaLabel as F, filterClose as x } from "../messages/index.mjs";
17
+ const E = (c) => {
18
+ c.value === void 0 && !g(c.operator) && (c.value = O(c.operator) ? "" : null);
19
+ }, h = class h extends n.Component {
20
+ constructor() {
21
+ super(...arguments), this.onFieldChange = (t) => {
22
+ const r = t.value.name, e = this.props.fields.find((a) => a.name === r), o = this.props.filter, i = e && !e.operators.some((a) => a.operator === o.operator) ? e.operators[0].operator : o.operator, l = {
23
+ field: r,
24
+ operator: i
25
+ };
26
+ E(l), this.triggerOnFilterChange(o, l, t);
27
+ }, this.onOperatorChange = (t) => {
28
+ const r = t.value.operator, e = this.props.filter;
29
+ let o;
30
+ if (g(r)) {
31
+ let { value: i, ...l } = e;
32
+ o = { ...l, operator: r };
33
+ } else
34
+ o = { ...e, operator: r };
35
+ E(o), this.triggerOnFilterChange(e, o, t);
36
+ }, this.onInputChange = (t) => {
37
+ const r = this.props.filter;
38
+ let e = t.nextFilter;
39
+ if (g(e.operator)) {
40
+ const o = this.props.fields.find((i) => i.name === e.field);
41
+ e = { ...e, operator: o && o.operators[0].operator || e.operator };
42
+ }
43
+ this.triggerOnFilterChange(r, e, t);
44
+ }, this.triggerOnFilterChange = (t, r, e) => {
45
+ const o = {
46
+ prevFilter: t,
47
+ nextFilter: r,
48
+ syntheticEvent: e.syntheticEvent,
49
+ nativeEvent: e.nativeEvent,
50
+ target: this
51
+ };
52
+ this.props.onChange.call(void 0, o);
53
+ }, this.onFilterRemove = (t) => {
54
+ const r = {
55
+ filter: this.props.filter,
56
+ syntheticEvent: t.syntheticEvent,
57
+ nativeEvent: t.nativeEvent,
58
+ target: this
59
+ };
60
+ this.props.onRemove.call(void 0, r);
61
+ };
62
+ }
63
+ render() {
64
+ const t = L(this), {
65
+ fields: r,
66
+ filter: e,
67
+ ariaLabel: o = t.toLanguageString(v, p[v])
68
+ } = this.props, i = r.find((a) => a.name === e.field), l = (i && i.operators || []).map((a) => ({ ...a, text: t.toLanguageString(a.text, p[a.text] || a.text) }));
69
+ return /* @__PURE__ */ n.createElement("div", { className: "k-filter-toolbar" }, /* @__PURE__ */ n.createElement(C, { keyboardNavigation: !1, role: "toolbar", ariaLabel: o }, /* @__PURE__ */ n.createElement(m, { className: "k-filter-field" }, /* @__PURE__ */ n.createElement(
70
+ d,
71
+ {
72
+ className: "k-filter-dropdown",
73
+ data: r,
74
+ textField: "label",
75
+ value: r.find((a) => a.name === e.field),
76
+ onChange: this.onFieldChange,
77
+ ariaLabel: t.toLanguageString(u, p[u])
78
+ }
79
+ )), /* @__PURE__ */ n.createElement(m, { className: "k-filter-operator" }, /* @__PURE__ */ n.createElement(
80
+ d,
81
+ {
82
+ data: l,
83
+ textField: "text",
84
+ value: l.find((a) => a.operator === e.operator),
85
+ onChange: this.onOperatorChange,
86
+ ariaLabel: t.toLanguageString(F, p[F])
87
+ }
88
+ )), /* @__PURE__ */ n.createElement(m, { className: "k-filter-value" }, i && /* @__PURE__ */ n.createElement(i.filter, { filter: e, onFilterChange: this.onInputChange, min: i.min, max: i.max })), /* @__PURE__ */ n.createElement(
89
+ b,
90
+ {
91
+ className: "k-toolbar-button",
92
+ title: t.toLanguageString(x, p[x]),
93
+ icon: "x",
94
+ svgIcon: N,
95
+ fillMode: "flat",
96
+ type: "button",
97
+ onClick: this.onFilterRemove
98
+ }
99
+ )));
100
+ }
101
+ };
102
+ h.propTypes = {
103
+ filter: s.object.isRequired,
104
+ fields: s.array.isRequired,
105
+ ariaLabel: s.string,
106
+ onChange: s.func.isRequired,
107
+ onRemove: s.func.isRequired
108
+ };
109
+ let f = h;
110
+ y(f);
111
+ export {
112
+ f as Expression
113
+ };
@@ -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"),n=require("prop-types"),l=require("@progress/kendo-react-common"),h=require("./Group.js"),d=require("../package-metadata.js");function f(s){const r=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(s){for(const e in s)if(e!=="default"){const t=Object.getOwnPropertyDescriptor(s,e);Object.defineProperty(r,e,t.get?t:{enumerable:!0,get:()=>s[e]})}}return r.default=s,Object.freeze(r)}const i=f(u),o=class o extends i.Component{constructor(r){super(r),this.onFilterChange=e=>{const t={filter:e.nextFilter,syntheticEvent:e.syntheticEvent,nativeEvent:e.nativeEvent,target:this};this.props.onChange.call(void 0,t)},this.onGroupRemove=e=>{const t={filter:{...this.props.value,filters:[]},syntheticEvent:e.syntheticEvent,nativeEvent:e.nativeEvent,target:this};this.props.onChange.call(void 0,t)},l.validatePackage(d.packageMetadata)}render(){return i.createElement("div",{className:l.classNames("k-filter",this.props.className),style:this.props.style},i.createElement("ul",{role:"tree",className:"k-filter-container","aria-label":this.props.ariaLabel},i.createElement("li",{role:"treeitem",className:"k-filter-group-main"},i.createElement(h.Group,{filter:this.props.value,fields:this.props.fields,ariaLabel:this.props.ariaLabelGroup,ariaLabelExpression:this.props.ariaLabelExpression,onChange:this.onFilterChange,onRemove:this.onGroupRemove,defaultGroupFilter:this.props.defaultGroupFilter||{logic:"and",filters:[]}}))))}};o.propTypes={className:n.string,style:n.object,fields:function(r,e){const t=r[e];if(t===void 0)return new Error(`Property '${e}' is missing.`);if(Array.isArray(t)){if(Object.keys(t.reduce((c,p)=>({...c,[p.name]:1}),{})).length!==t.length)return new Error(`Property '${e}' needs to contain objects with unique 'name' field.`)}else return new Error(`Property '${e}' needs to be Array<FieldSettings>.`);return null},ariaLabelGroup:n.string,ariaLabelExpression:n.string,value:n.object.isRequired,onChange:n.func.isRequired};let a=o;exports.Filter=a;
@@ -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 i from "react";
10
+ import r from "prop-types";
11
+ import { validatePackage as p, classNames as c } from "@progress/kendo-react-common";
12
+ import { Group as h } from "./Group.mjs";
13
+ import { packageMetadata as u } from "../package-metadata.mjs";
14
+ const a = class a extends i.Component {
15
+ constructor(s) {
16
+ super(s), this.onFilterChange = (e) => {
17
+ const t = {
18
+ filter: e.nextFilter,
19
+ syntheticEvent: e.syntheticEvent,
20
+ nativeEvent: e.nativeEvent,
21
+ target: this
22
+ };
23
+ this.props.onChange.call(void 0, t);
24
+ }, this.onGroupRemove = (e) => {
25
+ const t = {
26
+ filter: { ...this.props.value, filters: [] },
27
+ syntheticEvent: e.syntheticEvent,
28
+ nativeEvent: e.nativeEvent,
29
+ target: this
30
+ };
31
+ this.props.onChange.call(void 0, t);
32
+ }, p(u);
33
+ }
34
+ /**
35
+ * @hidden
36
+ */
37
+ render() {
38
+ return /* @__PURE__ */ i.createElement(
39
+ "div",
40
+ {
41
+ className: c(
42
+ "k-filter",
43
+ this.props.className
44
+ ),
45
+ style: this.props.style
46
+ },
47
+ /* @__PURE__ */ i.createElement("ul", { role: "tree", className: "k-filter-container", "aria-label": this.props.ariaLabel }, /* @__PURE__ */ i.createElement("li", { role: "treeitem", className: "k-filter-group-main" }, /* @__PURE__ */ i.createElement(
48
+ h,
49
+ {
50
+ filter: this.props.value,
51
+ fields: this.props.fields,
52
+ ariaLabel: this.props.ariaLabelGroup,
53
+ ariaLabelExpression: this.props.ariaLabelExpression,
54
+ onChange: this.onFilterChange,
55
+ onRemove: this.onGroupRemove,
56
+ defaultGroupFilter: this.props.defaultGroupFilter || { logic: "and", filters: [] }
57
+ }
58
+ )))
59
+ );
60
+ }
61
+ };
62
+ a.propTypes = {
63
+ className: r.string,
64
+ style: r.object,
65
+ fields: function(s, e) {
66
+ const t = s[e];
67
+ if (t === void 0)
68
+ return new Error(`Property '${e}' is missing.`);
69
+ if (Array.isArray(t)) {
70
+ if (Object.keys(t.reduce((o, l) => ({ ...o, [l.name]: 1 }), {})).length !== t.length)
71
+ return new Error(`Property '${e}' needs to contain objects with unique 'name' field.`);
72
+ } else
73
+ return new Error(`Property '${e}' needs to be Array<FieldSettings>.`);
74
+ return null;
75
+ },
76
+ ariaLabelGroup: r.string,
77
+ ariaLabelExpression: r.string,
78
+ value: r.object.isRequired,
79
+ onChange: r.func.isRequired
80
+ };
81
+ let n = a;
82
+ export {
83
+ n as Filter
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 f=require("react"),a=require("prop-types"),v=require("@progress/kendo-data-query"),l=require("@progress/kendo-react-buttons"),d=require("@progress/kendo-react-intl"),u=require("@progress/kendo-svg-icons"),m=require("./Expression.js"),E=require("./operators.js"),r=require("../messages/index.js");function b(c){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(c){for(const t in c)if(t!=="default"){const i=Object.getOwnPropertyDescriptor(c,t);Object.defineProperty(e,t,i.get?i:{enumerable:!0,get:()=>c[t]})}}return e.default=c,Object.freeze(e)}const o=b(f),g=class g extends o.Component{constructor(){super(...arguments),this.onGroupRemove=e=>{const t={filter:this.props.filter,target:this,syntheticEvent:e,nativeEvent:e.nativeEvent};this.props.onRemove.call(void 0,t)},this.onAddExpression=e=>{const t=this.props.filter,i=this.props.fields[0],n={field:i.name,operator:i.operators[0].operator};n.value=E.stringOperator(n.operator)?"":null;const s={nextFilter:{...t,filters:[...t.filters,n]},prevFilter:t,target:this,syntheticEvent:e,nativeEvent:e.nativeEvent};this.props.onChange.call(void 0,s)},this.onAddGroup=e=>{const t=this.props.filter,i={nextFilter:{...t,filters:[...t.filters,{...this.props.defaultGroupFilter}]},prevFilter:t,target:this,syntheticEvent:e,nativeEvent:e.nativeEvent};this.props.onChange.call(void 0,i)},this.onLogicAnd=e=>this.changeLogic("and",e),this.onLogicOr=e=>this.changeLogic("or",e),this.changeLogic=(e,t)=>{const i=this.props.filter;if(i.logic!==e){const n={nextFilter:{...i,logic:e},prevFilter:i,target:this,syntheticEvent:t,nativeEvent:t.nativeEvent};this.props.onChange.call(void 0,n)}},this.replaceFilter=(e,t)=>{const i=this.props.filter,n=i.filters.map(s=>s===e?t:s);return{...i,filters:n}},this.onChange=e=>{const i={nextFilter:this.replaceFilter(e.prevFilter,e.nextFilter),prevFilter:this.props.filter,syntheticEvent:e.syntheticEvent,nativeEvent:e.nativeEvent,target:this};this.props.onChange.call(void 0,i)},this.onRemove=e=>{const t=this.props.filter,i=t.filters.filter(s=>s!==e.filter),n={nextFilter:{...t,filters:i},prevFilter:t,syntheticEvent:e.syntheticEvent,nativeEvent:e.nativeEvent,target:this};this.props.onChange.call(void 0,n)}}render(){const e=d.provideLocalizationService(this),{fields:t,filter:i,ariaLabel:n=e.toLanguageString(r.filterGroupAriaLabel,r.messages[r.filterGroupAriaLabel])}=this.props;return o.createElement(o.Fragment,null,o.createElement("div",{className:"k-filter-toolbar"},o.createElement(l.Toolbar,{keyboardNavigation:!1,role:"toolbar",ariaLabel:n},o.createElement(l.ButtonGroup,{className:"k-toolbar-button-group"},o.createElement(l.Button,{className:"k-toolbar-button",togglable:!0,onClick:this.onLogicAnd,selected:i.logic==="and",type:"button"},e.toLanguageString(r.filterAndLogic,r.messages[r.filterAndLogic])),o.createElement(l.Button,{className:"k-toolbar-button",togglable:!0,onClick:this.onLogicOr,selected:i.logic==="or",type:"button"},e.toLanguageString(r.filterOrLogic,r.messages[r.filterOrLogic]))),o.createElement(l.Button,{className:"k-toolbar-button",title:e.toLanguageString(r.filterAddExpression,r.messages[r.filterAddExpression]),icon:"filter-add-expression",svgIcon:u.filterAddExpressionIcon,type:"button",onClick:this.onAddExpression},e.toLanguageString(r.filterAddExpression,r.messages[r.filterAddExpression])),o.createElement(l.Button,{className:"k-toolbar-button",title:e.toLanguageString(r.filterAddGroup,r.messages[r.filterAddGroup]),icon:"filter-add-group",svgIcon:u.filterAddGroupIcon,type:"button",onClick:this.onAddGroup},e.toLanguageString(r.filterAddGroup,r.messages[r.filterAddGroup])),o.createElement(l.Button,{className:"k-toolbar-button",title:e.toLanguageString(r.filterClose,r.messages[r.filterClose]),icon:"x",svgIcon:u.xIcon,fillMode:"flat",type:"button",onClick:this.onGroupRemove}))),i.filters.length>0&&o.createElement("ul",{role:"group",className:"k-filter-lines"},i.filters.map((s,h)=>o.createElement("li",{role:"treeitem",key:h,className:"k-filter-item"},v.isCompositeFilterDescriptor(s)?o.createElement(g,{filter:s,fields:t,onChange:this.onChange,onRemove:this.onRemove,defaultGroupFilter:this.props.defaultGroupFilter,ariaLabel:this.props.ariaLabel,ariaLabelExpression:this.props.ariaLabelExpression}):o.createElement(m.Expression,{filter:s,fields:t,ariaLabel:this.props.ariaLabelExpression,onChange:this.onChange,onRemove:this.onRemove})))))}};g.propTypes={filter:a.object.isRequired,fields:a.array.isRequired,ariaLabel:a.string,ariaLabelExpression:a.string,onChange:a.func.isRequired,onRemove:a.func.isRequired,defaultGroupFilter:a.object.isRequired};let p=g;d.registerForLocalization(p);exports.Group=p;