@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.
- package/clipboard/clipboard.service.js +8 -0
- package/clipboard/clipboard.service.mjs +27 -0
- package/clipboard/common.js +13 -0
- package/clipboard/common.mjs +64 -0
- package/columnmenu/ColumnMenu.js +8 -0
- package/columnmenu/ColumnMenu.mjs +256 -0
- package/columnmenu/ColumnMenuFilterForm.js +8 -0
- package/columnmenu/ColumnMenuFilterForm.mjs +47 -0
- package/columnmenu/ColumnMenuFilterLogic.js +8 -0
- package/columnmenu/ColumnMenuFilterLogic.mjs +29 -0
- package/columnmenu/ColumnMenuFilters.js +8 -0
- package/columnmenu/ColumnMenuFilters.mjs +98 -0
- package/columnmenu/ColumnMenuItem.js +8 -0
- package/columnmenu/ColumnMenuItem.mjs +26 -0
- package/columnmenu/ColumnMenuOperators.js +8 -0
- package/columnmenu/ColumnMenuOperators.mjs +109 -0
- package/dist/cdn/js/kendo-react-datatools.js +8 -10
- package/drag/ColumnDraggable.js +8 -0
- package/drag/ColumnDraggable.mjs +40 -0
- package/drag/ColumnResize.js +8 -0
- package/drag/ColumnResize.mjs +58 -0
- package/drag/ColumnResizer.js +8 -0
- package/drag/ColumnResizer.mjs +56 -0
- package/drag/CommonDragLogic.js +8 -0
- package/drag/CommonDragLogic.mjs +89 -0
- package/drag/DragClue.js +8 -0
- package/drag/DragClue.mjs +52 -0
- package/drag/DropClue.js +8 -0
- package/drag/DropClue.mjs +43 -0
- package/filter/Expression.js +8 -0
- package/filter/Expression.mjs +113 -0
- package/filter/Filter.js +8 -0
- package/filter/Filter.mjs +84 -0
- package/filter/Group.js +8 -0
- package/filter/Group.mjs +163 -0
- package/filter/filters/BooleanFilter.js +8 -0
- package/filter/filters/BooleanFilter.mjs +43 -0
- package/filter/filters/DateFilter.js +8 -0
- package/filter/filters/DateFilter.mjs +43 -0
- package/filter/filters/EnumFilter.js +8 -0
- package/filter/filters/EnumFilter.mjs +59 -0
- package/filter/filters/NumericFilter.js +8 -0
- package/filter/filters/NumericFilter.mjs +54 -0
- package/filter/filters/TextFilter.js +8 -0
- package/filter/filters/TextFilter.mjs +46 -0
- package/filter/operators.js +8 -0
- package/filter/operators.mjs +114 -0
- package/filteringCells/BooleanFilter.js +8 -0
- package/filteringCells/BooleanFilter.mjs +49 -0
- package/filteringCells/DateFilter.js +8 -0
- package/filteringCells/DateFilter.mjs +22 -0
- package/filteringCells/FilterComponent.js +8 -0
- package/filteringCells/FilterComponent.mjs +81 -0
- package/filteringCells/NumericFilter.js +8 -0
- package/filteringCells/NumericFilter.mjs +22 -0
- package/filteringCells/TextFilter.js +8 -0
- package/filteringCells/TextFilter.mjs +22 -0
- package/header/ColumnProps.js +8 -0
- package/header/ColumnProps.mjs +19 -0
- package/header/FilterRow.js +8 -0
- package/header/FilterRow.mjs +54 -0
- package/header/Header.js +8 -0
- package/header/Header.mjs +36 -0
- package/header/HeaderCell.js +8 -0
- package/header/HeaderCell.mjs +18 -0
- package/header/HeaderRow.js +8 -0
- package/header/HeaderRow.mjs +132 -0
- package/header/HeaderSelectionCell.js +8 -0
- package/header/HeaderSelectionCell.mjs +32 -0
- package/header/HeaderThElement.js +8 -0
- package/header/HeaderThElement.mjs +47 -0
- package/header/SortSettings.js +8 -0
- package/header/SortSettings.mjs +12 -0
- package/header/utils/index.js +8 -0
- package/header/utils/index.mjs +130 -0
- package/index.d.mts +2398 -5
- package/index.d.ts +2398 -32
- package/index.js +8 -10
- package/index.mjs +152 -2987
- package/messages/index.js +8 -0
- package/messages/index.mjs +167 -0
- package/navigation/TableKeyboardNavigation.js +8 -0
- package/navigation/TableKeyboardNavigation.mjs +142 -0
- package/navigation/TableKeyboardNavigationContext.js +8 -0
- package/navigation/TableKeyboardNavigationContext.mjs +14 -0
- package/navigation/constants.js +8 -0
- package/navigation/constants.mjs +43 -0
- package/navigation/hooks.js +8 -0
- package/navigation/hooks.mjs +22 -0
- package/navigation/utils.js +8 -0
- package/navigation/utils.mjs +107 -0
- package/package-metadata.js +8 -0
- package/package-metadata.mjs +19 -0
- package/package.json +9 -9
- package/pager/Pager.js +8 -0
- package/pager/Pager.mjs +234 -0
- package/pager/PagerInput.js +8 -0
- package/pager/PagerInput.mjs +38 -0
- package/pager/PagerNumericButtons.js +8 -0
- package/pager/PagerNumericButtons.mjs +103 -0
- package/pager/PagerPageSizes.js +8 -0
- package/pager/PagerPageSizes.mjs +38 -0
- package/selection/TableSelection.js +8 -0
- package/selection/TableSelection.mjs +123 -0
- package/selection/constants.js +8 -0
- package/selection/constants.mjs +14 -0
- package/selection/utils.js +8 -0
- package/selection/utils.mjs +155 -0
- package/utils/data-operations.js +8 -0
- package/utils/data-operations.mjs +127 -0
- package/utils/group-operations.js +8 -0
- package/utils/group-operations.mjs +32 -0
- package/virtualization/columns.js +8 -0
- package/virtualization/columns.mjs +43 -0
- package/clipboard/clipboard.service.d.ts +0 -17
- package/clipboard/common.d.ts +0 -129
- package/columnmenu/ColumnMenu.d.ts +0 -83
- package/columnmenu/ColumnMenuFilterForm.d.ts +0 -17
- package/columnmenu/ColumnMenuFilterLogic.d.ts +0 -7
- package/columnmenu/ColumnMenuFilters.d.ts +0 -23
- package/columnmenu/ColumnMenuItem.d.ts +0 -15
- package/columnmenu/ColumnMenuOperators.d.ts +0 -69
- package/columnmenu/index.d.ts +0 -10
- package/drag/ColumnDraggable.d.ts +0 -34
- package/drag/ColumnResize.d.ts +0 -36
- package/drag/ColumnResizer.d.ts +0 -32
- package/drag/CommonDragLogic.d.ts +0 -42
- package/drag/DragClue.d.ts +0 -26
- package/drag/DropClue.d.ts +0 -23
- package/filter/Expression.d.ts +0 -50
- package/filter/FieldSettings.d.ts +0 -34
- package/filter/Filter.d.ts +0 -83
- package/filter/Group.d.ts +0 -58
- package/filter/filters/BooleanFilter.d.ts +0 -47
- package/filter/filters/DateFilter.d.ts +0 -30
- package/filter/filters/EnumFilter.d.ts +0 -47
- package/filter/filters/NumericFilter.d.ts +0 -37
- package/filter/filters/TextFilter.d.ts +0 -44
- package/filter/filters/index.d.ts +0 -9
- package/filter/index.d.ts +0 -10
- package/filter/operators.d.ts +0 -77
- package/filteringCells/BooleanFilter.d.ts +0 -12
- package/filteringCells/DateFilter.d.ts +0 -12
- package/filteringCells/FilterCellProps.d.ts +0 -39
- package/filteringCells/FilterComponent.d.ts +0 -21
- package/filteringCells/FilterComponentProps.d.ts +0 -27
- package/filteringCells/FilterOperator.d.ts +0 -17
- package/filteringCells/NumericFilter.d.ts +0 -12
- package/filteringCells/TextFilter.d.ts +0 -12
- package/filteringCells/index.d.ts +0 -12
- package/header/CellProps.d.ts +0 -72
- package/header/ColumnProps.d.ts +0 -157
- package/header/FilterRow.d.ts +0 -29
- package/header/Header.d.ts +0 -22
- package/header/HeaderCell.d.ts +0 -51
- package/header/HeaderRow.d.ts +0 -41
- package/header/HeaderSelectionCell.d.ts +0 -15
- package/header/HeaderThElement.d.ts +0 -26
- package/header/SortSettings.d.ts +0 -30
- package/header/index.d.ts +0 -14
- package/header/utils/index.d.ts +0 -87
- package/messages/index.d.ts +0 -394
- package/navigation/TableKeyboardNavigation.d.ts +0 -72
- package/navigation/TableKeyboardNavigationContext.d.ts +0 -10
- package/navigation/TableKeyboardNavigationContextType.d.ts +0 -11
- package/navigation/TableKeyboardNavigationStateType.d.ts +0 -14
- package/navigation/constants.d.ts +0 -58
- package/navigation/hooks.d.ts +0 -16
- package/navigation/utils.d.ts +0 -149
- package/package-metadata.d.ts +0 -9
- package/pager/Pager.d.ts +0 -208
- package/pager/PagerInput.d.ts +0 -29
- package/pager/PagerNumericButtons.d.ts +0 -32
- package/pager/PagerPageSizes.d.ts +0 -30
- package/selection/TableSelectableSettings.d.ts +0 -35
- package/selection/TableSelection.d.ts +0 -15
- package/selection/constants.d.ts +0 -10
- package/selection/events.d.ts +0 -98
- package/selection/utils.d.ts +0 -70
- package/utils/DataItemWrapper.d.ts +0 -14
- package/utils/data-operations.d.ts +0 -98
- package/utils/group-operations.d.ts +0 -33
- package/virtualization/columns.d.ts +0 -19
- 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
|
+
};
|
package/drag/DragClue.js
ADDED
|
@@ -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
|
+
};
|
package/drag/DropClue.js
ADDED
|
@@ -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
|
+
};
|
package/filter/Filter.js
ADDED
|
@@ -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
|
+
};
|
package/filter/Group.js
ADDED
|
@@ -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;
|