@progress/kendo-react-grid 7.2.4-develop.3 → 7.2.4-develop.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Grid.js +8 -0
- package/Grid.mjs +1108 -0
- package/GridColumn.js +8 -0
- package/GridColumn.mjs +53 -0
- package/GridNoRecords.js +8 -0
- package/GridNoRecords.mjs +25 -0
- package/GridToolbar.js +8 -0
- package/GridToolbar.mjs +39 -0
- package/StatusBar.js +8 -0
- package/StatusBar.mjs +53 -0
- package/VirtualScroll.js +8 -0
- package/VirtualScroll.mjs +128 -0
- package/VirtualScrollFixed.js +8 -0
- package/VirtualScrollFixed.mjs +86 -0
- package/cells/GridCell.js +8 -0
- package/cells/GridCell.mjs +57 -0
- package/cells/GridDetailCell.js +8 -0
- package/cells/GridDetailCell.mjs +30 -0
- package/cells/GridDetailHierarchyCell.js +8 -0
- package/cells/GridDetailHierarchyCell.mjs +17 -0
- package/cells/GridEditCell.js +8 -0
- package/cells/GridEditCell.mjs +172 -0
- package/cells/GridFilterCell.js +8 -0
- package/cells/GridFilterCell.mjs +145 -0
- package/cells/GridGroupCell.js +8 -0
- package/cells/GridGroupCell.mjs +115 -0
- package/cells/GridHierarchyCell.js +8 -0
- package/cells/GridHierarchyCell.mjs +84 -0
- package/cells/GridSelectionCell.js +8 -0
- package/cells/GridSelectionCell.mjs +54 -0
- package/columnMenu/GridColumnMenuCheckboxFilter.js +8 -0
- package/columnMenu/GridColumnMenuCheckboxFilter.mjs +199 -0
- package/columnMenu/GridColumnMenuColumnsList.js +8 -0
- package/columnMenu/GridColumnMenuColumnsList.mjs +60 -0
- package/columnMenu/GridColumnMenuFilter.js +8 -0
- package/columnMenu/GridColumnMenuFilter.mjs +188 -0
- package/columnMenu/GridColumnMenuFilterCell.js +8 -0
- package/columnMenu/GridColumnMenuFilterCell.mjs +96 -0
- package/columnMenu/GridColumnMenuFilterUI.js +8 -0
- package/columnMenu/GridColumnMenuFilterUI.mjs +36 -0
- package/columnMenu/GridColumnMenuGroup.js +8 -0
- package/columnMenu/GridColumnMenuGroup.mjs +50 -0
- package/columnMenu/GridColumnMenuItem.js +8 -0
- package/columnMenu/GridColumnMenuItem.mjs +22 -0
- package/columnMenu/GridColumnMenuItemContent.js +8 -0
- package/columnMenu/GridColumnMenuItemContent.mjs +30 -0
- package/columnMenu/GridColumnMenuItemGroup.js +8 -0
- package/columnMenu/GridColumnMenuItemGroup.mjs +30 -0
- package/columnMenu/GridColumnMenuSort.js +8 -0
- package/columnMenu/GridColumnMenuSort.mjs +75 -0
- package/columnMenu/GridColumnMenuWrapper.js +8 -0
- package/columnMenu/GridColumnMenuWrapper.mjs +91 -0
- package/constants/index.js +8 -0
- package/constants/index.mjs +15 -0
- package/dist/cdn/js/kendo-react-grid.js +8 -5
- package/drag/ColumnDraggable.js +8 -0
- package/drag/ColumnDraggable.mjs +43 -0
- package/drag/ColumnResize.js +8 -0
- package/drag/ColumnResize.mjs +128 -0
- package/drag/CommonDragLogic.js +8 -0
- package/drag/CommonDragLogic.mjs +104 -0
- package/drag/GroupingIndicator.js +8 -0
- package/drag/GroupingIndicator.mjs +91 -0
- package/filterCommon.js +8 -0
- package/filterCommon.mjs +103 -0
- package/footer/Footer.js +8 -0
- package/footer/Footer.mjs +76 -0
- package/footer/FooterRow.js +8 -0
- package/footer/FooterRow.mjs +46 -0
- package/header/FilterRow.js +8 -0
- package/header/FilterRow.mjs +96 -0
- package/header/GridHeaderCell.js +8 -0
- package/header/GridHeaderCell.mjs +38 -0
- package/header/GridHeaderSelectionCell.js +8 -0
- package/header/GridHeaderSelectionCell.mjs +44 -0
- package/header/GroupPanel.js +8 -0
- package/header/GroupPanel.mjs +60 -0
- package/header/Header.js +8 -0
- package/header/Header.mjs +107 -0
- package/header/HeaderRow.js +8 -0
- package/header/HeaderRow.mjs +155 -0
- package/index.d.mts +2771 -5
- package/index.d.ts +2771 -57
- package/index.js +8 -5
- package/index.mjs +89 -3845
- package/interfaces/GridSortSettings.js +8 -0
- package/interfaces/GridSortSettings.mjs +12 -0
- package/messages/index.js +8 -0
- package/messages/index.mjs +105 -0
- package/package-metadata.js +8 -0
- package/package-metadata.mjs +19 -0
- package/package.json +10 -10
- package/paging/GridPagerSettings.js +8 -0
- package/paging/GridPagerSettings.mjs +28 -0
- package/rows/GridDetailRow.js +8 -0
- package/rows/GridDetailRow.mjs +20 -0
- package/rows/GridRow.js +8 -0
- package/rows/GridRow.mjs +51 -0
- package/utils/index.js +8 -0
- package/utils/index.mjs +180 -0
- package/Grid.d.ts +0 -267
- package/GridColumn.d.ts +0 -28
- package/GridNoRecords.d.ts +0 -40
- package/GridToolbar.d.ts +0 -54
- package/ScrollMode.d.ts +0 -5
- package/StatusBar.d.ts +0 -51
- package/VirtualScroll.d.ts +0 -51
- package/VirtualScrollFixed.d.ts +0 -53
- package/cells/GridCell.d.ts +0 -6
- package/cells/GridDetailCell.d.ts +0 -18
- package/cells/GridDetailHierarchyCell.d.ts +0 -10
- package/cells/GridEditCell.d.ts +0 -9
- package/cells/GridFilterCell.d.ts +0 -20
- package/cells/GridGroupCell.d.ts +0 -9
- package/cells/GridHierarchyCell.d.ts +0 -9
- package/cells/GridSelectionCell.d.ts +0 -9
- package/columnMenu/GridColumnMenuCheckboxFilter.d.ts +0 -122
- package/columnMenu/GridColumnMenuColumnsList.d.ts +0 -31
- package/columnMenu/GridColumnMenuFilter.d.ts +0 -165
- package/columnMenu/GridColumnMenuFilterCell.d.ts +0 -37
- package/columnMenu/GridColumnMenuFilterUI.d.ts +0 -12
- package/columnMenu/GridColumnMenuGroup.d.ts +0 -77
- package/columnMenu/GridColumnMenuItem.d.ts +0 -40
- package/columnMenu/GridColumnMenuItemContent.d.ts +0 -24
- package/columnMenu/GridColumnMenuItemGroup.d.ts +0 -20
- package/columnMenu/GridColumnMenuSort.d.ts +0 -89
- package/columnMenu/GridColumnMenuWrapper.d.ts +0 -49
- package/constants/index.d.ts +0 -10
- package/drag/ColumnDraggable.d.ts +0 -38
- package/drag/ColumnResize.d.ts +0 -37
- package/drag/CommonDragLogic.d.ts +0 -44
- package/drag/GroupingIndicator.d.ts +0 -41
- package/filterCommon.d.ts +0 -73
- package/footer/Footer.d.ts +0 -38
- package/footer/FooterRow.d.ts +0 -25
- package/header/FilterRow.d.ts +0 -38
- package/header/GridHeaderCell.d.ts +0 -56
- package/header/GridHeaderSelectionCell.d.ts +0 -10
- package/header/GroupPanel.d.ts +0 -26
- package/header/Header.d.ts +0 -46
- package/header/HeaderRow.d.ts +0 -51
- package/interfaces/GridCellProps.d.ts +0 -73
- package/interfaces/GridCellsSettings.d.ts +0 -115
- package/interfaces/GridColumnMenuBaseProps.d.ts +0 -18
- package/interfaces/GridColumnMenuColumnProps.d.ts +0 -29
- package/interfaces/GridColumnMenuFilterBaseProps.d.ts +0 -28
- package/interfaces/GridColumnMenuFilterUIProps.d.ts +0 -35
- package/interfaces/GridColumnMenuGroupBaseProps.d.ts +0 -23
- package/interfaces/GridColumnMenuProps.d.ts +0 -12
- package/interfaces/GridColumnMenuSortBaseProps.d.ts +0 -24
- package/interfaces/GridColumnProps.d.ts +0 -92
- package/interfaces/GridDetailRowProps.d.ts +0 -17
- package/interfaces/GridFilterCellProps.d.ts +0 -68
- package/interfaces/GridFilterOperator.d.ts +0 -10
- package/interfaces/GridFilterOperators.d.ts +0 -53
- package/interfaces/GridFooterCellProps.d.ts +0 -26
- package/interfaces/GridGroupableSettings.d.ts +0 -17
- package/interfaces/GridHeaderCellProps.d.ts +0 -24
- package/interfaces/GridNoRecordsProps.d.ts +0 -13
- package/interfaces/GridProps.d.ts +0 -333
- package/interfaces/GridRowProps.d.ts +0 -67
- package/interfaces/GridRowType.d.ts +0 -13
- package/interfaces/GridSelectableSettings.d.ts +0 -22
- package/interfaces/GridSortSettings.d.ts +0 -17
- package/interfaces/GridToolbarProps.d.ts +0 -37
- package/interfaces/VirtualScrollInterface.d.ts +0 -31
- package/interfaces/events.d.ts +0 -232
- package/messages/index.d.ts +0 -199
- package/package-metadata.d.ts +0 -9
- package/paging/GridPagerSettings.d.ts +0 -71
- package/paging/Page.d.ts +0 -17
- package/rows/GridDetailRow.d.ts +0 -55
- package/rows/GridRow.d.ts +0 -15
- package/utils/index.d.ts +0 -73
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
*-------------------------------------------------------------------------------------------
|
|
4
|
+
* Copyright © 2024 Progress Software Corporation. All rights reserved.
|
|
5
|
+
* Licensed under commercial license. See LICENSE.md in the package root for more information
|
|
6
|
+
*-------------------------------------------------------------------------------------------
|
|
7
|
+
*/
|
|
8
|
+
"use client";
|
|
9
|
+
import * as s from "react";
|
|
10
|
+
import { GridColumnMenuItem as S } from "./GridColumnMenuItem.mjs";
|
|
11
|
+
import { GridColumnMenuItemGroup as B } from "./GridColumnMenuItemGroup.mjs";
|
|
12
|
+
import { GridColumnMenuItemContent as N } from "./GridColumnMenuItemContent.mjs";
|
|
13
|
+
import { Input as D, Checkbox as m } from "@progress/kendo-react-inputs";
|
|
14
|
+
import { provideLocalizationService as b, registerForLocalization as y } from "@progress/kendo-react-intl";
|
|
15
|
+
import { searchPlaceholder as x, messages as h, filterTitle as g, filterCheckAll as F, filterSelectedItems as C, filterSubmitButton as I, filterClearButton as k } from "../messages/index.mjs";
|
|
16
|
+
import { filterBy as v } from "@progress/kendo-data-query";
|
|
17
|
+
import { clone as q, IconWrap as L } from "@progress/kendo-react-common";
|
|
18
|
+
import { Button as p } from "@progress/kendo-react-buttons";
|
|
19
|
+
import { getNestedValue as E } from "../utils/index.mjs";
|
|
20
|
+
import { searchIcon as O, xIcon as w, filterIcon as M } from "@progress/kendo-svg-icons";
|
|
21
|
+
const P = (f, o) => f.length !== o.length ? !1 : f.every((e, t) => e === o[t]), u = class u extends s.Component {
|
|
22
|
+
constructor(o) {
|
|
23
|
+
super(o), this.defaultFilter = () => this.props.filter ? q(this.props.filter) : { filters: [], logic: "and" }, this.isControlled = () => this.props.expanded !== void 0, this.parseData = (e, t) => {
|
|
24
|
+
const n = this.props.column.field || "", r = e.map((a) => E(n, a));
|
|
25
|
+
return t ? r.filter((a, i) => r.indexOf(a) === i) : r;
|
|
26
|
+
}, this.getFilterIndex = () => {
|
|
27
|
+
const e = this.props.column.field;
|
|
28
|
+
return this.defaultFilter().filters.findIndex((r) => r.filters && r.filters.length > 0 && r.filters[0].field === e);
|
|
29
|
+
}, this.onFilterExpand = () => {
|
|
30
|
+
const e = this.isControlled(), t = !(e ? this.props.expanded : this.state.expanded);
|
|
31
|
+
this.props.onExpandChange && this.props.onExpandChange(t), e || this.setState({
|
|
32
|
+
expanded: t
|
|
33
|
+
});
|
|
34
|
+
}, this.handleSearchChange = (e) => {
|
|
35
|
+
const t = this.props.searchBoxFilterOperator ? this.props.searchBoxFilterOperator : "startswith", n = {
|
|
36
|
+
logic: "and",
|
|
37
|
+
filters: [
|
|
38
|
+
{ field: this.props.column.field, operator: t, value: e.target.value, ignoreCase: !0 }
|
|
39
|
+
]
|
|
40
|
+
};
|
|
41
|
+
this.setState({
|
|
42
|
+
value: e.target.value,
|
|
43
|
+
data: this.parseData(v(this.props.data || [], n), this.props.uniqueData)
|
|
44
|
+
});
|
|
45
|
+
}, this.handleClear = () => {
|
|
46
|
+
const e = this.props.searchBoxFilterOperator ? this.props.searchBoxFilterOperator : "startswith", t = {
|
|
47
|
+
logic: "and",
|
|
48
|
+
filters: [
|
|
49
|
+
{ field: this.props.column.field, operator: e, value: "", ignoreCase: !0 }
|
|
50
|
+
]
|
|
51
|
+
};
|
|
52
|
+
this.setState({
|
|
53
|
+
value: "",
|
|
54
|
+
data: this.parseData(v(this.props.data || [], t), this.props.uniqueData)
|
|
55
|
+
});
|
|
56
|
+
}, this.clear = (e) => {
|
|
57
|
+
if (e.preventDefault(), !this.props.onFilterChange)
|
|
58
|
+
return;
|
|
59
|
+
const t = this.state.currentFilter || null;
|
|
60
|
+
t !== null && t.filters.length > 0 ? (this.compositeFilterIndex >= 0 && t.filters.splice(this.compositeFilterIndex, 1), this.props.onFilterChange(t, e)) : this.props.onFilterChange(null, e), this.props.onCloseMenu && this.props.onCloseMenu();
|
|
61
|
+
}, this.submit = (e) => {
|
|
62
|
+
if (e.preventDefault(), !this.props.onFilterChange)
|
|
63
|
+
return;
|
|
64
|
+
const t = this.state.currentFilter || null;
|
|
65
|
+
this.props.onFilterChange(t, e), this.props.onCloseMenu && this.props.onCloseMenu();
|
|
66
|
+
}, this.handleCheckBoxChange = (e, t) => {
|
|
67
|
+
const n = this.props.column.field || "", r = { ...this.state.currentFilter }, a = [...this.state.currentFilter.filters];
|
|
68
|
+
let i = [];
|
|
69
|
+
if (this.compositeFilterIndex !== -1 && r.filters[this.compositeFilterIndex].filters && t !== "all" && (i = r.filters[this.compositeFilterIndex].filters), e.value && t === "all")
|
|
70
|
+
this.state.data.forEach((l) => {
|
|
71
|
+
i.push({ field: n, operator: "eq", value: l });
|
|
72
|
+
});
|
|
73
|
+
else if (e.value)
|
|
74
|
+
i.push({ field: n, operator: "eq", value: t });
|
|
75
|
+
else if (this.state.currentFilter) {
|
|
76
|
+
const l = i.findIndex((c) => c.value === t);
|
|
77
|
+
i.splice(l, 1);
|
|
78
|
+
}
|
|
79
|
+
r.logic = "and", this.compositeFilterIndex !== -1 ? a[this.compositeFilterIndex] = {
|
|
80
|
+
logic: "or",
|
|
81
|
+
filters: i
|
|
82
|
+
} : a.push({
|
|
83
|
+
logic: "or",
|
|
84
|
+
filters: i
|
|
85
|
+
}), (!e.value && t === "all" || i.length === 0) && a.splice(this.compositeFilterIndex, 1), r.filters = a, this.setState({ currentFilter: r });
|
|
86
|
+
}, this.isAllSelected = () => {
|
|
87
|
+
let e = !1;
|
|
88
|
+
if (this.state.currentFilter) {
|
|
89
|
+
const t = [...this.state.currentFilter.filters];
|
|
90
|
+
return this.compositeFilterIndex === -1 ? !1 : (e = this.state.data.every((n) => this.compositeFilterIndex !== -1 && t[this.compositeFilterIndex].filters ? t[this.compositeFilterIndex].filters.findIndex((a) => a.value === n) >= 0 : !1), e);
|
|
91
|
+
}
|
|
92
|
+
return e;
|
|
93
|
+
}, this.compositeFilterIndex = this.getFilterIndex(), this.state = {
|
|
94
|
+
expanded: o.expanded || !1,
|
|
95
|
+
value: "",
|
|
96
|
+
data: this.parseData(this.props.data, this.props.uniqueData) || [],
|
|
97
|
+
dataFromProps: this.parseData(this.props.data, !1) || [],
|
|
98
|
+
currentFilter: this.defaultFilter()
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* @hidden
|
|
103
|
+
*/
|
|
104
|
+
componentDidUpdate() {
|
|
105
|
+
const o = this.props.column.field || "", e = this.props.data.map((t) => E(o, t));
|
|
106
|
+
P(e, this.state.dataFromProps) || this.setState({
|
|
107
|
+
data: e,
|
|
108
|
+
dataFromProps: e
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* @hidden
|
|
113
|
+
*/
|
|
114
|
+
render() {
|
|
115
|
+
const { column: o } = this.props;
|
|
116
|
+
if (!o || !o.field)
|
|
117
|
+
return /* @__PURE__ */ s.createElement("div", null);
|
|
118
|
+
const e = b(this), t = this.isControlled() ? this.props.expanded : this.state.expanded, n = [];
|
|
119
|
+
if (this.state.currentFilter) {
|
|
120
|
+
const i = [...this.state.currentFilter.filters];
|
|
121
|
+
this.compositeFilterIndex = i.findIndex((l) => l.filters && l.filters.length > 0 ? l.filters[0].field === o.field : !1), this.compositeFilterIndex !== -1 && i[this.compositeFilterIndex].filters.length > 0 && i[this.compositeFilterIndex].filters.forEach((l) => {
|
|
122
|
+
l.field === this.props.column.field && n.push(l.value);
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
const r = this.props.searchBox ? /* @__PURE__ */ s.createElement(this.props.searchBox, { value: this.state.value, onChange: this.handleSearchChange }) : /* @__PURE__ */ s.createElement("div", { className: "k-searchbox k-textbox k-input k-input-md k-input-solid" }, /* @__PURE__ */ s.createElement(L, { className: "k-input-icon", name: "search", icon: O }), /* @__PURE__ */ s.createElement(
|
|
126
|
+
D,
|
|
127
|
+
{
|
|
128
|
+
className: "k-input-inner",
|
|
129
|
+
type: "text",
|
|
130
|
+
placeholder: e.toLanguageString(x, h[x]),
|
|
131
|
+
value: this.state.value,
|
|
132
|
+
onChange: (i) => this.handleSearchChange(i.nativeEvent)
|
|
133
|
+
}
|
|
134
|
+
), /* @__PURE__ */ s.createElement(
|
|
135
|
+
p,
|
|
136
|
+
{
|
|
137
|
+
type: "button",
|
|
138
|
+
rounded: null,
|
|
139
|
+
className: "k-input-button",
|
|
140
|
+
onClick: this.handleClear,
|
|
141
|
+
icon: "x",
|
|
142
|
+
svgIcon: w
|
|
143
|
+
}
|
|
144
|
+
)), a = n.filter((i, l) => n.indexOf(i) === l);
|
|
145
|
+
return /* @__PURE__ */ s.createElement(B, null, /* @__PURE__ */ s.createElement(
|
|
146
|
+
S,
|
|
147
|
+
{
|
|
148
|
+
title: e.toLanguageString(g, h[g]),
|
|
149
|
+
iconClass: "k-i-filter",
|
|
150
|
+
svgIcon: M,
|
|
151
|
+
onClick: this.onFilterExpand
|
|
152
|
+
}
|
|
153
|
+
), /* @__PURE__ */ s.createElement(N, { show: !!t }, /* @__PURE__ */ s.createElement(
|
|
154
|
+
"form",
|
|
155
|
+
{
|
|
156
|
+
className: "k-filter-menu",
|
|
157
|
+
onSubmit: this.submit,
|
|
158
|
+
onReset: this.clear
|
|
159
|
+
},
|
|
160
|
+
/* @__PURE__ */ s.createElement("div", { className: "k-filter-menu-container" }, r, /* @__PURE__ */ s.createElement("ul", { className: "k-reset k-multicheck-wrap" }, /* @__PURE__ */ s.createElement("li", { className: "k-item k-check-all-wrap" }, /* @__PURE__ */ s.createElement(
|
|
161
|
+
m,
|
|
162
|
+
{
|
|
163
|
+
label: e.toLanguageString(F, h[F]),
|
|
164
|
+
onChange: (i) => this.handleCheckBoxChange(i, "all"),
|
|
165
|
+
checked: this.isAllSelected()
|
|
166
|
+
}
|
|
167
|
+
)), this.state.data.map((i, l) => /* @__PURE__ */ s.createElement("li", { className: "k-item", key: l }, /* @__PURE__ */ s.createElement(
|
|
168
|
+
m,
|
|
169
|
+
{
|
|
170
|
+
label: String(i),
|
|
171
|
+
onChange: (c) => this.handleCheckBoxChange(c, i),
|
|
172
|
+
checked: a.includes(i)
|
|
173
|
+
}
|
|
174
|
+
)))), /* @__PURE__ */ s.createElement("div", { className: "k-filter-selected-items" }, a.length + " " + e.toLanguageString(C, h[C])), /* @__PURE__ */ s.createElement("div", { className: "k-actions k-hstack k-justify-content-stretch" }, /* @__PURE__ */ s.createElement(
|
|
175
|
+
p,
|
|
176
|
+
{
|
|
177
|
+
themeColor: "primary",
|
|
178
|
+
type: "submit"
|
|
179
|
+
},
|
|
180
|
+
e.toLanguageString(I, h[I])
|
|
181
|
+
), /* @__PURE__ */ s.createElement(
|
|
182
|
+
p,
|
|
183
|
+
{
|
|
184
|
+
className: "k-button",
|
|
185
|
+
type: "reset"
|
|
186
|
+
},
|
|
187
|
+
e.toLanguageString(k, h[k])
|
|
188
|
+
)))
|
|
189
|
+
)));
|
|
190
|
+
}
|
|
191
|
+
};
|
|
192
|
+
u.defaultProps = {
|
|
193
|
+
uniqueData: !0
|
|
194
|
+
};
|
|
195
|
+
let d = u;
|
|
196
|
+
y(d);
|
|
197
|
+
export {
|
|
198
|
+
d as GridColumnMenuCheckboxFilter
|
|
199
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
*-------------------------------------------------------------------------------------------
|
|
4
|
+
* Copyright © 2024 Progress Software Corporation. All rights reserved.
|
|
5
|
+
* Licensed under commercial license. See LICENSE.md in the package root for more information
|
|
6
|
+
*-------------------------------------------------------------------------------------------
|
|
7
|
+
*/
|
|
8
|
+
"use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const y=require("react"),r=require("@progress/kendo-react-inputs"),v=require("@progress/kendo-react-common"),N=require("@progress/kendo-svg-icons"),C=require("@progress/kendo-react-buttons");function M(t){const c=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const o in t)if(o!=="default"){const s=Object.getOwnPropertyDescriptor(t,o);Object.defineProperty(c,o,s.get?s:{enumerable:!0,get:()=>t[o]})}}return c.default=t,Object.freeze(c)}const e=M(y),h=t=>{const[c,o]=e.useState(""),s=e.useMemo(()=>new Set(t.columnsState.map(n=>n.id)),[t.columnsState]),f=e.useMemo(()=>t.columns.filter(n=>{var l;return(l=n.title||n.field)==null?void 0:l.toLowerCase().includes(c.toLowerCase())}),[t.columns,c]),[a,i]=e.useState(t.columns.map(n=>s.has(n.id))),b=e.useCallback(()=>{const n=t.columns.filter((l,u)=>a[u]);t.onColumnsChange.call(void 0,n),t.onCloseMenu.call(void 0)},[a,t.columns,t.onColumnsChange,t.onCloseMenu]),g=e.useCallback(()=>{i(t.columns.map(n=>s.has(n.id)))},[s,t.columns]),d=a.filter(n=>n).length,m=d===a.length,S=e.useCallback(()=>{i(t.columns.map((n,l)=>m&&l===0?!0:!m))},[t.columns,m]),E=e.useCallback((n,l)=>{const u=a.slice();u[l]=n,i(u)},[a]);return e.createElement("form",{className:"k-filter-menu"},e.createElement("div",{className:"k-filter-menu-container"},e.createElement(r.TextBox,{className:"k-searchbox",value:c,onChange:n=>o(String(n.target.value)),prefix:()=>e.createElement(r.InputPrefix,null,e.createElement(v.IconWrap,{name:"search",icon:N.searchIcon}))}),e.createElement("ul",{className:"k-reset k-multicheck-wrap"},!c&&e.createElement("li",{className:"k-item k-check-all-wrap"},e.createElement(r.Checkbox,{checked:m,onChange:S,label:"(Select all)"})),f.map((n,l)=>e.createElement("li",{key:n.id,className:"k-item"},e.createElement(r.Checkbox,{disabled:a[l]&&d===1,checked:a[l],onChange:u=>{var k;return E(!!((k=u.target.element)!=null&&k.checked),l)},label:n.title||n.field})))),e.createElement("div",{className:"k-filter-selected-items"},d," selected items"),e.createElement("div",{className:"k-actions k-actions-start k-actions-horizontal"},e.createElement(C.Button,{type:"button",themeColor:"primary",onClick:b},"Apply"),e.createElement(C.Button,{type:"button",onClick:g},"Reset"))))};h.displayName="GridColumnMenuColumnsList";exports.GridColumnMenuColumnsList=h;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
*-------------------------------------------------------------------------------------------
|
|
4
|
+
* Copyright © 2024 Progress Software Corporation. All rights reserved.
|
|
5
|
+
* Licensed under commercial license. See LICENSE.md in the package root for more information
|
|
6
|
+
*-------------------------------------------------------------------------------------------
|
|
7
|
+
*/
|
|
8
|
+
"use client";
|
|
9
|
+
import * as e from "react";
|
|
10
|
+
import { TextBox as S, InputPrefix as N, Checkbox as C } from "@progress/kendo-react-inputs";
|
|
11
|
+
import { IconWrap as x } from "@progress/kendo-react-common";
|
|
12
|
+
import { searchIcon as v } from "@progress/kendo-svg-icons";
|
|
13
|
+
import { Button as d } from "@progress/kendo-react-buttons";
|
|
14
|
+
const y = (l) => {
|
|
15
|
+
const [o, k] = e.useState(""), m = e.useMemo(() => new Set(l.columnsState.map((t) => t.id)), [l.columnsState]), h = e.useMemo(() => l.columns.filter((t) => {
|
|
16
|
+
var n;
|
|
17
|
+
return (n = t.title || t.field) == null ? void 0 : n.toLowerCase().includes(o.toLowerCase());
|
|
18
|
+
}), [l.columns, o]), [a, i] = e.useState(l.columns.map((t) => m.has(t.id))), f = e.useCallback(() => {
|
|
19
|
+
const t = l.columns.filter((n, c) => a[c]);
|
|
20
|
+
l.onColumnsChange.call(void 0, t), l.onCloseMenu.call(void 0);
|
|
21
|
+
}, [a, l.columns, l.onColumnsChange, l.onCloseMenu]), E = e.useCallback(() => {
|
|
22
|
+
i(l.columns.map((t) => m.has(t.id)));
|
|
23
|
+
}, [m, l.columns]), r = a.filter((t) => t).length, s = r === a.length, b = e.useCallback(() => {
|
|
24
|
+
i(l.columns.map((t, n) => s && n === 0 ? !0 : !s));
|
|
25
|
+
}, [l.columns, s]), g = e.useCallback((t, n) => {
|
|
26
|
+
const c = a.slice();
|
|
27
|
+
c[n] = t, i(c);
|
|
28
|
+
}, [a]);
|
|
29
|
+
return /* @__PURE__ */ e.createElement("form", { className: "k-filter-menu" }, /* @__PURE__ */ e.createElement("div", { className: "k-filter-menu-container" }, /* @__PURE__ */ e.createElement(
|
|
30
|
+
S,
|
|
31
|
+
{
|
|
32
|
+
className: "k-searchbox",
|
|
33
|
+
value: o,
|
|
34
|
+
onChange: (t) => k(String(t.target.value)),
|
|
35
|
+
prefix: () => /* @__PURE__ */ e.createElement(N, null, /* @__PURE__ */ e.createElement(x, { name: "search", icon: v }))
|
|
36
|
+
}
|
|
37
|
+
), /* @__PURE__ */ e.createElement("ul", { className: "k-reset k-multicheck-wrap" }, !o && /* @__PURE__ */ e.createElement("li", { className: "k-item k-check-all-wrap" }, /* @__PURE__ */ e.createElement(
|
|
38
|
+
C,
|
|
39
|
+
{
|
|
40
|
+
checked: s,
|
|
41
|
+
onChange: b,
|
|
42
|
+
label: "(Select all)"
|
|
43
|
+
}
|
|
44
|
+
)), h.map((t, n) => /* @__PURE__ */ e.createElement("li", { key: t.id, className: "k-item" }, /* @__PURE__ */ e.createElement(
|
|
45
|
+
C,
|
|
46
|
+
{
|
|
47
|
+
disabled: a[n] && r === 1,
|
|
48
|
+
checked: a[n],
|
|
49
|
+
onChange: (c) => {
|
|
50
|
+
var u;
|
|
51
|
+
return g(!!((u = c.target.element) != null && u.checked), n);
|
|
52
|
+
},
|
|
53
|
+
label: t.title || t.field
|
|
54
|
+
}
|
|
55
|
+
)))), /* @__PURE__ */ e.createElement("div", { className: "k-filter-selected-items" }, r, " selected items"), /* @__PURE__ */ e.createElement("div", { className: "k-actions k-actions-start k-actions-horizontal" }, /* @__PURE__ */ e.createElement(d, { type: "button", themeColor: "primary", onClick: f }, "Apply"), /* @__PURE__ */ e.createElement(d, { type: "button", onClick: E }, "Reset"))));
|
|
56
|
+
};
|
|
57
|
+
y.displayName = "GridColumnMenuColumnsList";
|
|
58
|
+
export {
|
|
59
|
+
y as GridColumnMenuColumnsList
|
|
60
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
*-------------------------------------------------------------------------------------------
|
|
4
|
+
* Copyright © 2024 Progress Software Corporation. All rights reserved.
|
|
5
|
+
* Licensed under commercial license. See LICENSE.md in the package root for more information
|
|
6
|
+
*-------------------------------------------------------------------------------------------
|
|
7
|
+
*/
|
|
8
|
+
"use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const P=require("react"),E=require("@progress/kendo-data-query"),B=require("./GridColumnMenuItem.js"),L=require("./GridColumnMenuItemGroup.js"),U=require("./GridColumnMenuItemContent.js"),M=require("@progress/kendo-react-intl"),a=require("../filterCommon.js"),f=require("../messages/index.js"),T=require("./GridColumnMenuFilterUI.js"),b=require("@progress/kendo-react-buttons"),j=require("@progress/kendo-svg-icons");function w(c){const i=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(c){for(const l in c)if(l!=="default"){const e=Object.getOwnPropertyDescriptor(c,l);Object.defineProperty(i,l,e.get?e:{enumerable:!0,get:()=>c[l]})}}return i.default=c,Object.freeze(i)}const u=w(P),g=c=>c||{filters:[],logic:"and"},h=(c,i)=>g(i).filters.filter(t=>E.isCompositeFilterDescriptor(t)?t.filters&&t.filters.length&&t.filters.length<=2&&!t.filters.find(r=>E.isCompositeFilterDescriptor(r)||r.field!==c):!1)[0]||null,v=class v extends u.Component{constructor(i){super(i),this.removeGroup=(e,t)=>{const r=[...t.filters],n=r.findIndex(o=>o===e);return n>-1&&r.splice(n,1),{...t,filters:r}},this.insertGroup=(e,t)=>({...t,filters:[e,...t.filters]}),this.isControlled=()=>this.props.expanded!==void 0,this.onFilterExpand=()=>{const e=this.isControlled(),t=!(e?this.props.expanded:this.state.expanded);this.props.onExpandChange&&this.props.onExpandChange(t),e||this.setState({expanded:t})},this.firstFilterChange=e=>{this.filterChange(0,e)},this.secondFilterChange=e=>{this.filterChange(1,e)},this.filterChange=(e,t)=>{const r=this.state.filterGroup.filters.map((n,o)=>o===e?{...n,value:t.value,operator:t.operator}:n);this.setState({filterGroup:{...this.state.filterGroup,filters:r}})},this.logicChange=e=>{this.setState({filterGroup:{...this.state.filterGroup,logic:e.target.value.operator}})},this.clear=e=>{if(e.preventDefault(),!this.props.onFilterChange)return;const t=this.props.column.field,r=g(this.props.filter),n=h(t,this.props.filter),o=r.filters.filter(s=>s!==n);o.length?this.props.onFilterChange({...r,filters:o},e):this.props.onFilterChange(null,e),this.props.onCloseMenu&&this.props.onCloseMenu()},this.currentFilterGroup=()=>({...this.state.filterGroup,filters:this.state.filterGroup.filters.filter(e=>e.value!==void 0&&e.value!==null&&e.value!==""||e.value===null&&e.operator)}),this.submit=e=>{if(e.preventDefault(),!this.props.onFilterChange)return;const t=this.props.column.field,r=g(this.props.filter),n=h(t,this.props.filter),o=this.currentFilterGroup();let s=null;if(n&&o.filters.length>0){const p=r.filters.map(d=>d===n?o:d);s={...r,filters:p}}else if(o.filters.length===0){const p=r.filters.filter(d=>d!==n);p.length&&(s={...r,filters:p})}else s={...r,filters:[...r.filters,o]};this.props.onFilterChange(s,e),this.props.onCloseMenu&&this.props.onCloseMenu()};let l;if(i.column&&i.column.field){const e=a.getFilterType(i.column.filter),t=a.getDefaultOperator(i.filterOperators,e);l=h(i.column.field,i.filter),l=l?{...l,filters:l.filters.map(r=>({...r}))}:{logic:"and",filters:[{field:i.column.field,operator:t,value:a.IsUnaryFilter(t)?null:void 0},{field:i.column.field,operator:t,value:a.IsUnaryFilter(t)?null:void 0}]},l.filters.filter(r=>r.field===i.column.field).length===1&&l.filters.splice(1,0,{field:i.column.field,operator:t})}this.state={expanded:i.expanded||!1,filterGroup:l}}render(){const{column:i,filterUI:l,hideSecondFilter:e,filterOperators:t}=this.props;if(!i||!i.field)return u.createElement("div",null);const r=a.getFilterType(i.filter),n=e!==void 0?e:a.defaultHideSecondFilter[r],o=M.provideLocalizationService(this),s=this.state.filterGroup.filters,p=a.operatorMap(t[r],o),d=a.operatorMap(a.booleanFilterValues,o),D={field:i.field,value:s[0].value,operator:s[0].operator,operators:p,booleanValues:d,onChange:this.firstFilterChange,filterType:r},O={field:i.field,value:s[1].value,operator:s[1].operator,operators:p,booleanValues:d,onChange:this.secondFilterChange,filterType:r},G=this.state.filterGroup.logic,y=a.operatorMap(a.filterLogicList,o),C={value:y.find(F=>F.operator===(G===null?"":G)),onChange:this.logicChange,data:y},I=l,S={firstFilterProps:D,secondFilterProps:O,logicData:C.data,logicValue:C.value,onLogicChange:C.onChange,hideSecondFilter:n},k=this.currentFilterGroup().filters.length!==0||a.IsUnaryFilter(s[0].operator)||a.IsUnaryFilter(s[1].operator),q=this.isControlled()?this.props.expanded:this.state.expanded,x=this.props.alwaysExpand;return u.createElement(L.GridColumnMenuItemGroup,null,!x&&u.createElement(B.GridColumnMenuItem,{title:o.toLanguageString(f.filterTitle,f.messages[f.filterTitle]),iconClass:"k-i-filter",svgIcon:j.filterIcon,onClick:this.onFilterExpand}),u.createElement(U.GridColumnMenuItemContent,{show:x||!!q},u.createElement("form",{className:"k-filter-menu",onSubmit:this.submit,onReset:this.clear,onKeyDown:F=>F.stopPropagation()},u.createElement("div",{className:"k-filter-menu-container"},I?u.createElement(I,{...S}):u.createElement(T.GridColumnMenuFilterUI,{...S}),u.createElement("div",{className:"k-actions k-actions-stretched"},u.createElement(b.Button,{themeColor:"primary",disabled:!k},o.toLanguageString(f.filterSubmitButton,f.messages[f.filterSubmitButton])),u.createElement(b.Button,{type:"reset"},o.toLanguageString(f.filterClearButton,f.messages[f.filterClearButton])))))))}};v.active=(i,l)=>!!h(i,l);let m=v;M.registerForLocalization(m);exports.GridColumnMenuFilter=m;exports.filterGroupByField=h;exports.rootFilterOrDefault=g;
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
*-------------------------------------------------------------------------------------------
|
|
4
|
+
* Copyright © 2024 Progress Software Corporation. All rights reserved.
|
|
5
|
+
* Licensed under commercial license. See LICENSE.md in the package root for more information
|
|
6
|
+
*-------------------------------------------------------------------------------------------
|
|
7
|
+
*/
|
|
8
|
+
"use client";
|
|
9
|
+
import * as a from "react";
|
|
10
|
+
import { isCompositeFilterDescriptor as L } from "@progress/kendo-data-query";
|
|
11
|
+
import { GridColumnMenuItem as B } from "./GridColumnMenuItem.mjs";
|
|
12
|
+
import { GridColumnMenuItemGroup as T } from "./GridColumnMenuItemGroup.mjs";
|
|
13
|
+
import { GridColumnMenuItemContent as z } from "./GridColumnMenuItemContent.mjs";
|
|
14
|
+
import { provideLocalizationService as N, registerForLocalization as H } from "@progress/kendo-react-intl";
|
|
15
|
+
import { getFilterType as D, getDefaultOperator as R, IsUnaryFilter as c, operatorMap as g, booleanFilterValues as K, filterLogicList as j, defaultHideSecondFilter as q } from "../filterCommon.mjs";
|
|
16
|
+
import { filterTitle as b, messages as C, filterSubmitButton as M, filterClearButton as P } from "../messages/index.mjs";
|
|
17
|
+
import { GridColumnMenuFilterUI as A } from "./GridColumnMenuFilterUI.mjs";
|
|
18
|
+
import { Button as k } from "@progress/kendo-react-buttons";
|
|
19
|
+
import { filterIcon as J } from "@progress/kendo-svg-icons";
|
|
20
|
+
const F = (h) => h || { filters: [], logic: "and" }, u = (h, i) => F(i).filters.filter((t) => L(t) ? t.filters && t.filters.length && t.filters.length <= 2 && !t.filters.find((r) => L(r) || r.field !== h) : !1)[0] || null, G = class G extends a.Component {
|
|
21
|
+
constructor(i) {
|
|
22
|
+
super(i), this.removeGroup = (e, t) => {
|
|
23
|
+
const r = [...t.filters], s = r.findIndex((l) => l === e);
|
|
24
|
+
return s > -1 && r.splice(s, 1), {
|
|
25
|
+
...t,
|
|
26
|
+
filters: r
|
|
27
|
+
};
|
|
28
|
+
}, this.insertGroup = (e, t) => ({
|
|
29
|
+
...t,
|
|
30
|
+
filters: [
|
|
31
|
+
e,
|
|
32
|
+
...t.filters
|
|
33
|
+
]
|
|
34
|
+
}), this.isControlled = () => this.props.expanded !== void 0, this.onFilterExpand = () => {
|
|
35
|
+
const e = this.isControlled(), t = !(e ? this.props.expanded : this.state.expanded);
|
|
36
|
+
this.props.onExpandChange && this.props.onExpandChange(t), e || this.setState({
|
|
37
|
+
expanded: t
|
|
38
|
+
});
|
|
39
|
+
}, this.firstFilterChange = (e) => {
|
|
40
|
+
this.filterChange(0, e);
|
|
41
|
+
}, this.secondFilterChange = (e) => {
|
|
42
|
+
this.filterChange(1, e);
|
|
43
|
+
}, this.filterChange = (e, t) => {
|
|
44
|
+
const r = this.state.filterGroup.filters.map((s, l) => l === e ? {
|
|
45
|
+
...s,
|
|
46
|
+
value: t.value,
|
|
47
|
+
operator: t.operator
|
|
48
|
+
} : s);
|
|
49
|
+
this.setState({
|
|
50
|
+
filterGroup: {
|
|
51
|
+
...this.state.filterGroup,
|
|
52
|
+
filters: r
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
}, this.logicChange = (e) => {
|
|
56
|
+
this.setState({
|
|
57
|
+
filterGroup: {
|
|
58
|
+
...this.state.filterGroup,
|
|
59
|
+
logic: e.target.value.operator
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
}, this.clear = (e) => {
|
|
63
|
+
if (e.preventDefault(), !this.props.onFilterChange)
|
|
64
|
+
return;
|
|
65
|
+
const t = this.props.column.field, r = F(this.props.filter), s = u(t, this.props.filter), l = r.filters.filter((n) => n !== s);
|
|
66
|
+
l.length ? this.props.onFilterChange({ ...r, filters: l }, e) : this.props.onFilterChange(null, e), this.props.onCloseMenu && this.props.onCloseMenu();
|
|
67
|
+
}, this.currentFilterGroup = () => ({
|
|
68
|
+
...this.state.filterGroup,
|
|
69
|
+
filters: this.state.filterGroup.filters.filter((e) => e.value !== void 0 && e.value !== null && e.value !== "" || e.value === null && e.operator)
|
|
70
|
+
}), this.submit = (e) => {
|
|
71
|
+
if (e.preventDefault(), !this.props.onFilterChange)
|
|
72
|
+
return;
|
|
73
|
+
const t = this.props.column.field, r = F(this.props.filter), s = u(t, this.props.filter), l = this.currentFilterGroup();
|
|
74
|
+
let n = null;
|
|
75
|
+
if (s && l.filters.length > 0) {
|
|
76
|
+
const f = r.filters.map((p) => p === s ? l : p);
|
|
77
|
+
n = {
|
|
78
|
+
...r,
|
|
79
|
+
filters: f
|
|
80
|
+
};
|
|
81
|
+
} else if (l.filters.length === 0) {
|
|
82
|
+
const f = r.filters.filter((p) => p !== s);
|
|
83
|
+
f.length && (n = {
|
|
84
|
+
...r,
|
|
85
|
+
filters: f
|
|
86
|
+
});
|
|
87
|
+
} else
|
|
88
|
+
n = {
|
|
89
|
+
...r,
|
|
90
|
+
filters: [...r.filters, l]
|
|
91
|
+
};
|
|
92
|
+
this.props.onFilterChange(n, e), this.props.onCloseMenu && this.props.onCloseMenu();
|
|
93
|
+
};
|
|
94
|
+
let o;
|
|
95
|
+
if (i.column && i.column.field) {
|
|
96
|
+
const e = D(i.column.filter), t = R(i.filterOperators, e);
|
|
97
|
+
o = u(i.column.field, i.filter), o = o ? {
|
|
98
|
+
...o,
|
|
99
|
+
filters: o.filters.map((r) => ({ ...r }))
|
|
100
|
+
} : {
|
|
101
|
+
logic: "and",
|
|
102
|
+
filters: [
|
|
103
|
+
{ field: i.column.field, operator: t, value: c(t) ? null : void 0 },
|
|
104
|
+
{ field: i.column.field, operator: t, value: c(t) ? null : void 0 }
|
|
105
|
+
]
|
|
106
|
+
}, o.filters.filter((r) => r.field === i.column.field).length === 1 && o.filters.splice(1, 0, { field: i.column.field, operator: t });
|
|
107
|
+
}
|
|
108
|
+
this.state = {
|
|
109
|
+
expanded: i.expanded || !1,
|
|
110
|
+
filterGroup: o
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* @hidden
|
|
115
|
+
*/
|
|
116
|
+
render() {
|
|
117
|
+
const { column: i, filterUI: o, hideSecondFilter: e, filterOperators: t } = this.props;
|
|
118
|
+
if (!i || !i.field)
|
|
119
|
+
return /* @__PURE__ */ a.createElement("div", null);
|
|
120
|
+
const r = D(i.filter), s = e !== void 0 ? e : q[r], l = N(this), n = this.state.filterGroup.filters, f = g(t[r], l), p = g(K, l), O = {
|
|
121
|
+
field: i.field,
|
|
122
|
+
value: n[0].value,
|
|
123
|
+
operator: n[0].operator,
|
|
124
|
+
operators: f,
|
|
125
|
+
booleanValues: p,
|
|
126
|
+
onChange: this.firstFilterChange,
|
|
127
|
+
filterType: r
|
|
128
|
+
}, U = {
|
|
129
|
+
field: i.field,
|
|
130
|
+
value: n[1].value,
|
|
131
|
+
operator: n[1].operator,
|
|
132
|
+
operators: f,
|
|
133
|
+
booleanValues: p,
|
|
134
|
+
onChange: this.secondFilterChange,
|
|
135
|
+
filterType: r
|
|
136
|
+
}, x = this.state.filterGroup.logic, E = g(j, l), d = {
|
|
137
|
+
value: E.find((m) => m.operator === (x === null ? "" : x)),
|
|
138
|
+
onChange: this.logicChange,
|
|
139
|
+
data: E
|
|
140
|
+
}, S = o, I = {
|
|
141
|
+
firstFilterProps: O,
|
|
142
|
+
secondFilterProps: U,
|
|
143
|
+
logicData: d.data,
|
|
144
|
+
logicValue: d.value,
|
|
145
|
+
onLogicChange: d.onChange,
|
|
146
|
+
hideSecondFilter: s
|
|
147
|
+
}, V = this.currentFilterGroup().filters.length !== 0 || c(n[0].operator) || c(n[1].operator), w = this.isControlled() ? this.props.expanded : this.state.expanded, y = this.props.alwaysExpand;
|
|
148
|
+
return /* @__PURE__ */ a.createElement(T, null, !y && /* @__PURE__ */ a.createElement(
|
|
149
|
+
B,
|
|
150
|
+
{
|
|
151
|
+
title: l.toLanguageString(b, C[b]),
|
|
152
|
+
iconClass: "k-i-filter",
|
|
153
|
+
svgIcon: J,
|
|
154
|
+
onClick: this.onFilterExpand
|
|
155
|
+
}
|
|
156
|
+
), /* @__PURE__ */ a.createElement(z, { show: y || !!w }, /* @__PURE__ */ a.createElement(
|
|
157
|
+
"form",
|
|
158
|
+
{
|
|
159
|
+
className: "k-filter-menu",
|
|
160
|
+
onSubmit: this.submit,
|
|
161
|
+
onReset: this.clear,
|
|
162
|
+
onKeyDown: (m) => m.stopPropagation()
|
|
163
|
+
},
|
|
164
|
+
/* @__PURE__ */ a.createElement("div", { className: "k-filter-menu-container" }, S ? /* @__PURE__ */ a.createElement(S, { ...I }) : /* @__PURE__ */ a.createElement(A, { ...I }), /* @__PURE__ */ a.createElement("div", { className: "k-actions k-actions-stretched" }, /* @__PURE__ */ a.createElement(
|
|
165
|
+
k,
|
|
166
|
+
{
|
|
167
|
+
themeColor: "primary",
|
|
168
|
+
disabled: !V
|
|
169
|
+
},
|
|
170
|
+
l.toLanguageString(M, C[M])
|
|
171
|
+
), /* @__PURE__ */ a.createElement(
|
|
172
|
+
k,
|
|
173
|
+
{
|
|
174
|
+
type: "reset"
|
|
175
|
+
},
|
|
176
|
+
l.toLanguageString(P, C[P])
|
|
177
|
+
)))
|
|
178
|
+
)));
|
|
179
|
+
}
|
|
180
|
+
};
|
|
181
|
+
G.active = (i, o) => !!u(i, o);
|
|
182
|
+
let v = G;
|
|
183
|
+
H(v);
|
|
184
|
+
export {
|
|
185
|
+
v as GridColumnMenuFilter,
|
|
186
|
+
u as filterGroupByField,
|
|
187
|
+
F as rootFilterOrDefault
|
|
188
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
*-------------------------------------------------------------------------------------------
|
|
4
|
+
* Copyright © 2024 Progress Software Corporation. All rights reserved.
|
|
5
|
+
* Licensed under commercial license. See LICENSE.md in the package root for more information
|
|
6
|
+
*-------------------------------------------------------------------------------------------
|
|
7
|
+
*/
|
|
8
|
+
"use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const h=require("react"),p=require("@progress/kendo-react-dropdowns"),l=require("@progress/kendo-react-inputs"),u=require("@progress/kendo-react-dateinputs"),s=require("../filterCommon.js");function c(a){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(a){for(const e in a)if(e!=="default"){const o=Object.getOwnPropertyDescriptor(a,e);Object.defineProperty(t,e,o.get?o:{enumerable:!0,get:()=>a[e]})}}return t.default=a,Object.freeze(t)}const r=c(h);class d extends r.Component{constructor(t){super(t),this.renderOperatorEditor=()=>{if(this.props.filterType==="boolean")return;const e=this.props.operators.find(o=>o.operator===this.props.operator)||null;return r.createElement(p.DropDownList,{value:e,onChange:this.operatorChange,data:this.props.operators,textField:"text"})},this.inputChange=this.inputChange.bind(this),this.operatorChange=this.operatorChange.bind(this),this.boolDropdownChange=this.boolDropdownChange.bind(this)}render(){return r.createElement(r.Fragment,null,this.renderOperatorEditor(),this.filterComponent(this.props.filterType,this.props.value,this.props.booleanValues))}inputChange(t,e){s.cellInputChange(t,e,this.props)}operatorChange(t){s.cellOperatorChange(t,this.props.value,this.props.onChange)}boolDropdownChange(t){s.cellBoolDropdownChange(t,this.props.onChange)}filterComponent(t,e,o){switch(t){case"numeric":return r.createElement(l.NumericTextBox,{value:e,onChange:n=>{this.inputChange(n.value,n.syntheticEvent)},rangeOnEnter:!1});case"date":return r.createElement(u.DatePicker,{value:e,onChange:n=>{this.inputChange(n.value,n.syntheticEvent)}});case"boolean":{const n=i=>i==null;return r.createElement(p.DropDownList,{onChange:this.boolDropdownChange,value:o.find(i=>i.operator===(n(e)?"":e)),data:o,textField:"text"})}default:return r.createElement(l.Input,{value:e||"",onChange:n=>{this.inputChange(n.target.value,n.syntheticEvent)}})}}}exports.GridColumnMenuFilterCell=d;
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
*-------------------------------------------------------------------------------------------
|
|
4
|
+
* Copyright © 2024 Progress Software Corporation. All rights reserved.
|
|
5
|
+
* Licensed under commercial license. See LICENSE.md in the package root for more information
|
|
6
|
+
*-------------------------------------------------------------------------------------------
|
|
7
|
+
*/
|
|
8
|
+
"use client";
|
|
9
|
+
import * as r from "react";
|
|
10
|
+
import { DropDownList as i } from "@progress/kendo-react-dropdowns";
|
|
11
|
+
import { Input as p, NumericTextBox as s } from "@progress/kendo-react-inputs";
|
|
12
|
+
import { DatePicker as h } from "@progress/kendo-react-dateinputs";
|
|
13
|
+
import { cellInputChange as l, cellOperatorChange as u, cellBoolDropdownChange as C } from "../filterCommon.mjs";
|
|
14
|
+
class E extends r.Component {
|
|
15
|
+
constructor(t) {
|
|
16
|
+
super(t), this.renderOperatorEditor = () => {
|
|
17
|
+
if (this.props.filterType === "boolean")
|
|
18
|
+
return;
|
|
19
|
+
const n = this.props.operators.find((o) => o.operator === this.props.operator) || null;
|
|
20
|
+
return /* @__PURE__ */ r.createElement(
|
|
21
|
+
i,
|
|
22
|
+
{
|
|
23
|
+
value: n,
|
|
24
|
+
onChange: this.operatorChange,
|
|
25
|
+
data: this.props.operators,
|
|
26
|
+
textField: "text"
|
|
27
|
+
}
|
|
28
|
+
);
|
|
29
|
+
}, this.inputChange = this.inputChange.bind(this), this.operatorChange = this.operatorChange.bind(this), this.boolDropdownChange = this.boolDropdownChange.bind(this);
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* @hidden
|
|
33
|
+
*/
|
|
34
|
+
render() {
|
|
35
|
+
return /* @__PURE__ */ r.createElement(r.Fragment, null, this.renderOperatorEditor(), this.filterComponent(this.props.filterType, this.props.value, this.props.booleanValues));
|
|
36
|
+
}
|
|
37
|
+
inputChange(t, n) {
|
|
38
|
+
l(t, n, this.props);
|
|
39
|
+
}
|
|
40
|
+
operatorChange(t) {
|
|
41
|
+
u(t, this.props.value, this.props.onChange);
|
|
42
|
+
}
|
|
43
|
+
boolDropdownChange(t) {
|
|
44
|
+
C(t, this.props.onChange);
|
|
45
|
+
}
|
|
46
|
+
filterComponent(t, n, o) {
|
|
47
|
+
switch (t) {
|
|
48
|
+
case "numeric":
|
|
49
|
+
return /* @__PURE__ */ r.createElement(
|
|
50
|
+
s,
|
|
51
|
+
{
|
|
52
|
+
value: n,
|
|
53
|
+
onChange: (e) => {
|
|
54
|
+
this.inputChange(e.value, e.syntheticEvent);
|
|
55
|
+
},
|
|
56
|
+
rangeOnEnter: !1
|
|
57
|
+
}
|
|
58
|
+
);
|
|
59
|
+
case "date":
|
|
60
|
+
return /* @__PURE__ */ r.createElement(
|
|
61
|
+
h,
|
|
62
|
+
{
|
|
63
|
+
value: n,
|
|
64
|
+
onChange: (e) => {
|
|
65
|
+
this.inputChange(e.value, e.syntheticEvent);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
);
|
|
69
|
+
case "boolean": {
|
|
70
|
+
const e = (a) => a == null;
|
|
71
|
+
return /* @__PURE__ */ r.createElement(
|
|
72
|
+
i,
|
|
73
|
+
{
|
|
74
|
+
onChange: this.boolDropdownChange,
|
|
75
|
+
value: o.find((a) => a.operator === (e(n) ? "" : n)),
|
|
76
|
+
data: o,
|
|
77
|
+
textField: "text"
|
|
78
|
+
}
|
|
79
|
+
);
|
|
80
|
+
}
|
|
81
|
+
default:
|
|
82
|
+
return /* @__PURE__ */ r.createElement(
|
|
83
|
+
p,
|
|
84
|
+
{
|
|
85
|
+
value: n || "",
|
|
86
|
+
onChange: (e) => {
|
|
87
|
+
this.inputChange(e.target.value, e.syntheticEvent);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
export {
|
|
95
|
+
E as GridColumnMenuFilterCell
|
|
96
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
*-------------------------------------------------------------------------------------------
|
|
4
|
+
* Copyright © 2024 Progress Software Corporation. All rights reserved.
|
|
5
|
+
* Licensed under commercial license. See LICENSE.md in the package root for more information
|
|
6
|
+
*-------------------------------------------------------------------------------------------
|
|
7
|
+
*/
|
|
8
|
+
"use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("react"),o=require("./GridColumnMenuFilterCell.js"),s=require("@progress/kendo-react-dropdowns");function d(t){const r=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const n in t)if(n!=="default"){const l=Object.getOwnPropertyDescriptor(t,n);Object.defineProperty(r,n,l.get?l:{enumerable:!0,get:()=>t[n]})}}return r.default=t,Object.freeze(r)}const e=d(u);class m extends e.Component{render(){const{firstFilterProps:r,hideSecondFilter:n,secondFilterProps:l,logicData:i,logicValue:a,onLogicChange:c}=this.props;return e.createElement(e.Fragment,null,e.createElement(o.GridColumnMenuFilterCell,{...r}),!n&&e.createElement(e.Fragment,null,e.createElement(s.DropDownList,{data:i,value:a,onChange:c,className:"k-filter-and",textField:"text"}),e.createElement(o.GridColumnMenuFilterCell,{...l})))}}exports.GridColumnMenuFilterUI=m;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
*-------------------------------------------------------------------------------------------
|
|
4
|
+
* Copyright © 2024 Progress Software Corporation. All rights reserved.
|
|
5
|
+
* Licensed under commercial license. See LICENSE.md in the package root for more information
|
|
6
|
+
*-------------------------------------------------------------------------------------------
|
|
7
|
+
*/
|
|
8
|
+
"use client";
|
|
9
|
+
import * as e from "react";
|
|
10
|
+
import { GridColumnMenuFilterCell as t } from "./GridColumnMenuFilterCell.mjs";
|
|
11
|
+
import { DropDownList as m } from "@progress/kendo-react-dropdowns";
|
|
12
|
+
class p extends e.Component {
|
|
13
|
+
render() {
|
|
14
|
+
const {
|
|
15
|
+
firstFilterProps: r,
|
|
16
|
+
hideSecondFilter: n,
|
|
17
|
+
secondFilterProps: l,
|
|
18
|
+
logicData: o,
|
|
19
|
+
logicValue: a,
|
|
20
|
+
onLogicChange: i
|
|
21
|
+
} = this.props;
|
|
22
|
+
return /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement(t, { ...r }), !n && /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement(
|
|
23
|
+
m,
|
|
24
|
+
{
|
|
25
|
+
data: o,
|
|
26
|
+
value: a,
|
|
27
|
+
onChange: i,
|
|
28
|
+
className: "k-filter-and",
|
|
29
|
+
textField: "text"
|
|
30
|
+
}
|
|
31
|
+
), /* @__PURE__ */ e.createElement(t, { ...l })));
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
export {
|
|
35
|
+
p as GridColumnMenuFilterUI
|
|
36
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
*-------------------------------------------------------------------------------------------
|
|
4
|
+
* Copyright © 2024 Progress Software Corporation. All rights reserved.
|
|
5
|
+
* Licensed under commercial license. See LICENSE.md in the package root for more information
|
|
6
|
+
*-------------------------------------------------------------------------------------------
|
|
7
|
+
*/
|
|
8
|
+
"use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=require("react"),c=require("@progress/kendo-react-intl"),g=require("./GridColumnMenuItemGroup.js"),f=require("./GridColumnMenuItem.js"),u=require("../messages/index.js"),p=require("@progress/kendo-svg-icons");function m(r){const o=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(r){for(const e in r)if(e!=="default"){const n=Object.getOwnPropertyDescriptor(r,e);Object.defineProperty(o,e,n.get?n:{enumerable:!0,get:()=>r[e]})}}return o.default=r,Object.freeze(o)}const s=m(d);class l extends s.Component{constructor(){super(...arguments),this.onGroupClick=o=>{if(o.preventDefault(),this.props.onGroupChange){const{column:e}=this.props;if(!e.field)return;const n=(this.props.group||[]).slice(),t=n.findIndex(i=>i.field===e.field);t>-1?n.splice(t,1):n.push({field:e.field}),this.props.onGroupChange(n,o)}this.props.onCloseMenu&&this.props.onCloseMenu()}}render(){const{group:o,column:e}=this.props,n=c.provideLocalizationService(this),t=!!(o&&e.field&&o.find(a=>a.field===e.field)),i=t?u.ungroupColumn:u.groupColumn;return s.createElement(g.GridColumnMenuItemGroup,null,s.createElement(f.GridColumnMenuItem,{title:n.toLanguageString(i,u.messages[i]),iconClass:t?"k-i-ungroup":"k-i-group",svgIcon:t?p.ungroupIcon:p.groupIcon,onClick:this.onGroupClick}))}}c.registerForIntl(l);c.registerForLocalization(l);exports.GridColumnMenuGroup=l;
|