@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,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 L=require("react"),x=require("@progress/kendo-react-intl"),S=require("../cells/GridFilterCell.js"),d=require("../filterCommon.js"),k=require("@progress/kendo-react-data-tools"),C=require("../messages/index.js"),T=require("@progress/kendo-react-common"),O=require("../utils/index.js");function q(a){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(a){for(const r in a)if(r!=="default"){const i=Object.getOwnPropertyDescriptor(a,r);Object.defineProperty(t,r,i.get?i:{enumerable:!0,get:()=>a[r]})}}return t.default=a,Object.freeze(t)}const n=q(L),y="k-table-row k-filter-row";class m extends n.Component{headerCellClassName(t,r){let i=`${r?"k-grid-header-sticky":""}`;return this.props.sort&&this.props.sort.filter(c=>c.field===t).length>0&&(i+=" k-sorted"),i}setFilter(t,r,i,c){if(!this.props.filterChange)return;const o=[];(t!==""&&t!==null||r!=="")&&o.push({field:i,operator:r,value:t}),this.props.filter&&this.props.filter.filters&&(this.props.filter.filters||[]).forEach(s=>{const l=s;l&&l.field!==i&&o.push(l)});const h=this.props.filter&&this.props.filter.logic?this.props.filter.logic:"and";this.props.filterChange(o.length>0?{logic:h,filters:o}:null,c)}render(){const t=x.provideLocalizationService(this),r=this.props.filter&&this.props.filter.filters||[],i=e=>{if(e===void 0)return;const s=r.filter(l=>l.field===e);return s.length?s[0]:void 0};let c=0,o=-1;const h=this.props.columns.filter(e=>e.children.length===0).map(e=>{const s=d.getFilterType(e.filter),l=i(e.field),b=e.filterable?t.toLanguageString(C.filterAriaLabel,C.messages[C.filterAriaLabel]):void 0;let g=l&&l.value;g===void 0&&(g=s==="text"?"":null);const p=e.filterable&&{render:this.props.cellRender,field:e.field,title:e.filterTitle,value:g,operator:l&&l.operator,operators:d.operatorMap(this.props.filterOperators[s]||[],t),booleanValues:d.operatorMap(d.booleanFilterValues,t),filterType:s,ariaLabel:b,onChange:f=>{this.setFilter(f.value,f.operator,e.field,f.syntheticEvent)}},v=e.declarationIndex>=0?++o:--c,E={ariaLabel:b,ariaColumnIndex:e.ariaColumnIndex},I=e.left!==void 0?this.props.isRtl?{left:e.right,right:e.left}:{left:e.left,right:e.right}:{},F={columnId:k.tableKeyboardNavigationTools.getFilterColumnId(e.id),navigatable:e.navigatable,style:I,className:T.classNames("k-table-th",this.headerCellClassName(e.field,e.locked)||void 0),role:"columnheader",...E},R=p&&(e.filterCell?n.createElement(e.filterCell,{...p}):n.createElement(S.GridFilterCell,{size:this.props.size,...p})),u=O.resolveCells(this.props.cells,e.cells);if(u&&u.filterCell){const f=u.filterCell;return n.createElement(f,{key:v,...p,thProps:F,index:o},R)}return n.createElement(k.HeaderThElement,{key:v,...F},R)});return n.createElement("tr",{className:y,"aria-rowindex":this.props.ariaRowIndex,role:"row"},h)}}x.registerForLocalization(m);exports.FILTER_ROW_CLASS=y;exports.FilterRow=m;
|
|
@@ -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 a from "react";
|
|
10
|
+
import { provideLocalizationService as k, registerForLocalization as u } from "@progress/kendo-react-intl";
|
|
11
|
+
import { GridFilterCell as I } from "../cells/GridFilterCell.mjs";
|
|
12
|
+
import { getFilterType as y, operatorMap as F, booleanFilterValues as L } from "../filterCommon.mjs";
|
|
13
|
+
import { tableKeyboardNavigationTools as R, HeaderThElement as w } from "@progress/kendo-react-data-tools";
|
|
14
|
+
import { filterAriaLabel as b, messages as N } from "../messages/index.mjs";
|
|
15
|
+
import { classNames as T } from "@progress/kendo-react-common";
|
|
16
|
+
import { resolveCells as z } from "../utils/index.mjs";
|
|
17
|
+
const A = "k-table-row k-filter-row";
|
|
18
|
+
class S extends a.Component {
|
|
19
|
+
headerCellClassName(r, o) {
|
|
20
|
+
let l = `${o ? "k-grid-header-sticky" : ""}`;
|
|
21
|
+
return this.props.sort && this.props.sort.filter((n) => n.field === r).length > 0 && (l += " k-sorted"), l;
|
|
22
|
+
}
|
|
23
|
+
setFilter(r, o, l, n) {
|
|
24
|
+
if (!this.props.filterChange)
|
|
25
|
+
return;
|
|
26
|
+
const s = [];
|
|
27
|
+
(r !== "" && r !== null || o !== "") && s.push({
|
|
28
|
+
field: l,
|
|
29
|
+
operator: o,
|
|
30
|
+
value: r
|
|
31
|
+
}), this.props.filter && this.props.filter.filters && (this.props.filter.filters || []).forEach((i) => {
|
|
32
|
+
const t = i;
|
|
33
|
+
t && t.field !== l && s.push(t);
|
|
34
|
+
});
|
|
35
|
+
const h = this.props.filter && this.props.filter.logic ? this.props.filter.logic : "and";
|
|
36
|
+
this.props.filterChange(s.length > 0 ? { logic: h, filters: s } : null, n);
|
|
37
|
+
}
|
|
38
|
+
render() {
|
|
39
|
+
const r = k(this), o = this.props.filter && this.props.filter.filters || [], l = (e) => {
|
|
40
|
+
if (e === void 0)
|
|
41
|
+
return;
|
|
42
|
+
const i = o.filter((t) => t.field === e);
|
|
43
|
+
return i.length ? i[0] : void 0;
|
|
44
|
+
};
|
|
45
|
+
let n = 0, s = -1;
|
|
46
|
+
const h = this.props.columns.filter((e) => e.children.length === 0).map(
|
|
47
|
+
(e) => {
|
|
48
|
+
const i = y(e.filter), t = l(e.field), g = e.filterable ? r.toLanguageString(b, N[b]) : void 0;
|
|
49
|
+
let d = t && t.value;
|
|
50
|
+
d === void 0 && (d = i === "text" ? "" : null);
|
|
51
|
+
const f = e.filterable && {
|
|
52
|
+
render: this.props.cellRender,
|
|
53
|
+
field: e.field,
|
|
54
|
+
title: e.filterTitle,
|
|
55
|
+
value: d,
|
|
56
|
+
operator: t && t.operator,
|
|
57
|
+
operators: F(this.props.filterOperators[i] || [], r),
|
|
58
|
+
booleanValues: F(L, r),
|
|
59
|
+
filterType: i,
|
|
60
|
+
ariaLabel: g,
|
|
61
|
+
onChange: (p) => {
|
|
62
|
+
this.setFilter(p.value, p.operator, e.field, p.syntheticEvent);
|
|
63
|
+
}
|
|
64
|
+
}, C = e.declarationIndex >= 0 ? ++s : --n, x = {
|
|
65
|
+
ariaLabel: g,
|
|
66
|
+
ariaColumnIndex: e.ariaColumnIndex
|
|
67
|
+
}, E = e.left !== void 0 ? this.props.isRtl ? { left: e.right, right: e.left } : { left: e.left, right: e.right } : {}, m = {
|
|
68
|
+
columnId: R.getFilterColumnId(e.id),
|
|
69
|
+
navigatable: e.navigatable,
|
|
70
|
+
style: E,
|
|
71
|
+
className: T("k-table-th", this.headerCellClassName(e.field, e.locked) || void 0),
|
|
72
|
+
role: "columnheader",
|
|
73
|
+
...x
|
|
74
|
+
}, v = f && (e.filterCell ? /* @__PURE__ */ a.createElement(e.filterCell, { ...f }) : /* @__PURE__ */ a.createElement(I, { size: this.props.size, ...f })), c = z(this.props.cells, e.cells);
|
|
75
|
+
if (c && c.filterCell) {
|
|
76
|
+
const p = c.filterCell;
|
|
77
|
+
return /* @__PURE__ */ a.createElement(p, { key: C, ...f, thProps: m, index: s }, v);
|
|
78
|
+
}
|
|
79
|
+
return /* @__PURE__ */ a.createElement(
|
|
80
|
+
w,
|
|
81
|
+
{
|
|
82
|
+
key: C,
|
|
83
|
+
...m
|
|
84
|
+
},
|
|
85
|
+
v
|
|
86
|
+
);
|
|
87
|
+
}
|
|
88
|
+
);
|
|
89
|
+
return /* @__PURE__ */ a.createElement("tr", { className: A, "aria-rowindex": this.props.ariaRowIndex, role: "row" }, h);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
u(S);
|
|
93
|
+
export {
|
|
94
|
+
A as FILTER_ROW_CLASS,
|
|
95
|
+
S as FilterRow
|
|
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 o=require("@progress/kendo-react-common"),l=require("react"),c=require("../columnMenu/GridColumnMenuWrapper.js");function a(e){const r=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const t in e)if(t!=="default"){const n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:()=>e[t]})}}return r.default=e,Object.freeze(r)}const s=a(l);class i extends s.Component{render(){const{columnMenuWrapperProps:r}=this.props,t=this.props.onClick?{onClick:this.props.onClick}:{},n=s.createElement("span",{className:"k-cell-inner"},s.createElement("span",{className:o.classNames("k-link",{"!k-cursor-default":!this.props.columnMenuWrapperProps.sortable}),...t},s.createElement("span",{className:"k-column-title"},this.props.title||this.props.field||" "),this.props.children),r.columnMenu&&s.createElement(c.GridColumnMenuWrapper,{...r}));return this.props.render?this.props.render.call(void 0,n,this.props):n}}exports.GridHeaderCell=i;
|
|
@@ -0,0 +1,38 @@
|
|
|
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 { classNames as n } from "@progress/kendo-react-common";
|
|
10
|
+
import * as e from "react";
|
|
11
|
+
import { GridColumnMenuWrapper as p } from "../columnMenu/GridColumnMenuWrapper.mjs";
|
|
12
|
+
class c extends e.Component {
|
|
13
|
+
/**
|
|
14
|
+
* @hidden
|
|
15
|
+
*/
|
|
16
|
+
render() {
|
|
17
|
+
const { columnMenuWrapperProps: r } = this.props, t = this.props.onClick ? {
|
|
18
|
+
onClick: this.props.onClick
|
|
19
|
+
} : {}, s = /* @__PURE__ */ e.createElement("span", { className: "k-cell-inner" }, /* @__PURE__ */ e.createElement(
|
|
20
|
+
"span",
|
|
21
|
+
{
|
|
22
|
+
className: n(
|
|
23
|
+
"k-link",
|
|
24
|
+
{
|
|
25
|
+
"!k-cursor-default": !this.props.columnMenuWrapperProps.sortable
|
|
26
|
+
}
|
|
27
|
+
),
|
|
28
|
+
...t
|
|
29
|
+
},
|
|
30
|
+
/* @__PURE__ */ e.createElement("span", { className: "k-column-title" }, this.props.title || this.props.field || " "),
|
|
31
|
+
this.props.children
|
|
32
|
+
), r.columnMenu && /* @__PURE__ */ e.createElement(p, { ...r }));
|
|
33
|
+
return this.props.render ? this.props.render.call(void 0, s, this.props) : s;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
export {
|
|
37
|
+
c as GridHeaderCell
|
|
38
|
+
};
|
|
@@ -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 l=require("react"),p=require("../columnMenu/GridColumnMenuWrapper.js"),c=require("../messages/index.js"),i=require("@progress/kendo-react-intl"),d=require("@progress/kendo-react-common");function u(t){const r=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const e in t)if(e!=="default"){const n=Object.getOwnPropertyDescriptor(t,e);Object.defineProperty(r,e,n.get?n:{enumerable:!0,get:()=>t[e]})}}return r.default=t,Object.freeze(r)}const o=u(l);class s extends o.Component{get _inputId(){return this.props.id}render(){const r=i.provideLocalizationService(this),{columnMenuWrapperProps:e}=this.props,n=[o.createElement("span",{key:0,className:"k-checkbox-wrap"},o.createElement("input",{id:this._inputId,type:"checkbox",className:"k-checkbox k-checkbox-md k-rounded-md","aria-label":r.toLanguageString(c.selectRow,c.messages[c.selectRow]),"aria-checked":this.props.selectionValue,checked:this.props.selectionValue,onChange:a=>this.props.selectionChange({field:this.props.field,syntheticEvent:a})})),e.columnMenu&&o.createElement(p.GridColumnMenuWrapper,{...e})];return this.props.render?this.props.render.call(void 0,n,this.props):n}}i.registerForLocalization(s);const h=d.withIdHOC(s);exports.GridHeaderSelectionCell=h;
|
|
@@ -0,0 +1,44 @@
|
|
|
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 { GridColumnMenuWrapper as c } from "../columnMenu/GridColumnMenuWrapper.mjs";
|
|
11
|
+
import { selectRow as o, messages as p } from "../messages/index.mjs";
|
|
12
|
+
import { registerForLocalization as a, provideLocalizationService as l } from "@progress/kendo-react-intl";
|
|
13
|
+
import { withIdHOC as d } from "@progress/kendo-react-common";
|
|
14
|
+
class i extends e.Component {
|
|
15
|
+
get _inputId() {
|
|
16
|
+
return this.props.id;
|
|
17
|
+
}
|
|
18
|
+
render() {
|
|
19
|
+
const n = l(this), { columnMenuWrapperProps: r } = this.props, t = [
|
|
20
|
+
/* @__PURE__ */ e.createElement("span", { key: 0, className: "k-checkbox-wrap" }, /* @__PURE__ */ e.createElement(
|
|
21
|
+
"input",
|
|
22
|
+
{
|
|
23
|
+
id: this._inputId,
|
|
24
|
+
type: "checkbox",
|
|
25
|
+
className: "k-checkbox k-checkbox-md k-rounded-md",
|
|
26
|
+
"aria-label": n.toLanguageString(o, p[o]),
|
|
27
|
+
"aria-checked": this.props.selectionValue,
|
|
28
|
+
checked: this.props.selectionValue,
|
|
29
|
+
onChange: (s) => this.props.selectionChange({
|
|
30
|
+
field: this.props.field,
|
|
31
|
+
syntheticEvent: s
|
|
32
|
+
})
|
|
33
|
+
}
|
|
34
|
+
)),
|
|
35
|
+
r.columnMenu && /* @__PURE__ */ e.createElement(c, { ...r })
|
|
36
|
+
];
|
|
37
|
+
return this.props.render ? this.props.render.call(void 0, t, this.props) : t;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
a(i);
|
|
41
|
+
const g = d(i);
|
|
42
|
+
export {
|
|
43
|
+
g as GridHeaderSelectionCell
|
|
44
|
+
};
|
|
@@ -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"),g=require("../drag/GroupingIndicator.js"),l=require("@progress/kendo-react-intl"),s=require("../messages/index.js");function h(t){const o=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const e in t)if(e!=="default"){const r=Object.getOwnPropertyDescriptor(t,e);Object.defineProperty(o,e,r.get?r:{enumerable:!0,get:()=>t[e]})}}return o.default=t,Object.freeze(o)}const i=h(u);class c extends i.Component{constructor(){super(...arguments),this.onGroupRemove=(o,e)=>{const r=this.props.group.slice();r.splice(e,1),this.props.groupChange(r,o)},this.onGroupSortChange=(o,e,r,n)=>{const a=Object.assign({},r,{dir:n}),p=this.props.group.slice();p.splice(e,1,a),this.props.groupChange(p,o)}}render(){const e=(this.props.group||[]).map((r,n)=>i.createElement(g.GroupingIndicator,{key:n,index:n,dir:r.dir||"asc",title:this.props.resolveTitle(r.field),onRemove:a=>{this.onGroupRemove(a,n)},onSortChange:(a,p)=>{this.onGroupSortChange(a,n,r,p)},onPress:this.props.pressHandler,onDrag:this.props.dragHandler,onRelease:this.props.releaseHandler,onContextMenu:this.props.onContextMenu}));return i.createElement("div",{ref:this.props.refCallback,className:"k-grouping-header",role:"toolbar","aria-label":l.provideLocalizationService(this).toLanguageString(s.groupPanelAriaLabel,s.messages[s.groupPanelAriaLabel]),"aria-controls":this.props.ariaControls||""},i.createElement("div",{className:"k-chip-list k-chip-list-md",role:"none"},e),i.createElement("div",{className:"k-grouping-drop-container"},!e.length&&l.provideLocalizationService(this).toLanguageString(s.groupPanelEmpty,s.messages[s.groupPanelEmpty])," "))}}l.registerForLocalization(c);exports.GroupPanel=c;
|
|
@@ -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 t from "react";
|
|
10
|
+
import { GroupingIndicator as c } from "../drag/GroupingIndicator.mjs";
|
|
11
|
+
import { provideLocalizationService as a, registerForLocalization as u } from "@progress/kendo-react-intl";
|
|
12
|
+
import { groupPanelAriaLabel as i, messages as l, groupPanelEmpty as g } from "../messages/index.mjs";
|
|
13
|
+
class h extends t.Component {
|
|
14
|
+
constructor() {
|
|
15
|
+
super(...arguments), this.onGroupRemove = (p, r) => {
|
|
16
|
+
const o = this.props.group.slice();
|
|
17
|
+
o.splice(r, 1), this.props.groupChange(o, p);
|
|
18
|
+
}, this.onGroupSortChange = (p, r, o, e) => {
|
|
19
|
+
const s = Object.assign({}, o, { dir: e }), n = this.props.group.slice();
|
|
20
|
+
n.splice(r, 1, s), this.props.groupChange(n, p);
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
render() {
|
|
24
|
+
const r = (this.props.group || []).map((o, e) => /* @__PURE__ */ t.createElement(
|
|
25
|
+
c,
|
|
26
|
+
{
|
|
27
|
+
key: e,
|
|
28
|
+
index: e,
|
|
29
|
+
dir: o.dir || "asc",
|
|
30
|
+
title: this.props.resolveTitle(o.field),
|
|
31
|
+
onRemove: (s) => {
|
|
32
|
+
this.onGroupRemove(s, e);
|
|
33
|
+
},
|
|
34
|
+
onSortChange: (s, n) => {
|
|
35
|
+
this.onGroupSortChange(s, e, o, n);
|
|
36
|
+
},
|
|
37
|
+
onPress: this.props.pressHandler,
|
|
38
|
+
onDrag: this.props.dragHandler,
|
|
39
|
+
onRelease: this.props.releaseHandler,
|
|
40
|
+
onContextMenu: this.props.onContextMenu
|
|
41
|
+
}
|
|
42
|
+
));
|
|
43
|
+
return /* @__PURE__ */ t.createElement(
|
|
44
|
+
"div",
|
|
45
|
+
{
|
|
46
|
+
ref: this.props.refCallback,
|
|
47
|
+
className: "k-grouping-header",
|
|
48
|
+
role: "toolbar",
|
|
49
|
+
"aria-label": a(this).toLanguageString(i, l[i]),
|
|
50
|
+
"aria-controls": this.props.ariaControls || ""
|
|
51
|
+
},
|
|
52
|
+
/* @__PURE__ */ t.createElement("div", { className: "k-chip-list k-chip-list-md", role: "none" }, r),
|
|
53
|
+
/* @__PURE__ */ t.createElement("div", { className: "k-grouping-drop-container" }, !r.length && a(this).toLanguageString(g, l[g]), " ")
|
|
54
|
+
);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
u(h);
|
|
58
|
+
export {
|
|
59
|
+
h as GroupPanel
|
|
60
|
+
};
|
package/header/Header.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 i=require("react"),l=require("@progress/kendo-react-common"),o=require("@progress/kendo-react-data-tools");function n(s){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(s){for(const t in s)if(t!=="default"){const a=Object.getOwnPropertyDescriptor(s,t);Object.defineProperty(e,t,a.get?a:{enumerable:!0,get:()=>s[t]})}}return e.default=s,Object.freeze(e)}const r=n(i);class c extends r.Component{constructor(){super(...arguments),this.headerWrap=null,this.table=null,this.syncScroll=!1,this.scrollbarWidth=l.getScrollbarWidth(),this.onScroll=e=>{if(this.syncScroll){this.syncScroll=!1;return}if(!this.headerWrap)return;const t=this.headerWrap.scrollLeft,a=this.props.scrollableDataElement();a&&a.scrollLeft!==t&&(a.scrollLeft=t)}}get element(){return this.props.elemRef.current}componentDidMount(){const e=o.isRtl(this.element);this.props.columnResize&&this.props.columnResize.setIsRtl(e),this.forceUpdate()}setScrollLeft(e){this.headerWrap&&this.headerWrap.scrollLeft!==e&&(this.syncScroll=!0,this.headerWrap.scrollLeft=e)}setWidth(e){this.table&&(this.table.style.width=e+"px")}render(){return this.props.staticHeaders?r.createElement("div",{ref:this.props.elemRef,className:l.classNames("k-grid-header",{"k-grid-draggable-header":this.props.draggable}),role:"presentation"},r.createElement("div",{ref:e=>{this.headerWrap=e},className:"k-grid-header-wrap",style:this.scrollbarWidth?{}:{borderWidth:0},onScroll:this.onScroll,role:"presentation"},r.createElement("table",{ref:e=>{this.table=e},className:l.classNames("k-table k-grid-header-table",{"k-table-md":!this.props.size,[`k-table-${l.kendoThemeMaps.sizeMap[this.props.size]||this.props.size}`]:this.props.size},this.props.className),role:"presentation"},r.createElement("colgroup",{ref:e=>{this.props.columnResize.colGroupHeader=e}},this.props.cols),r.createElement("thead",{className:"k-table-thead",role:"rowgroup",...o.tableKeyboardNavigationHeaderAttributes},this.props.headerRow,this.props.filterRow)))):r.createElement("thead",{role:"presentation",className:l.classNames("k-table-thead",{"k-grid-draggable-header":this.props.draggable}),...o.tableKeyboardNavigationHeaderAttributes},this.props.headerRow,this.props.filterRow)}}exports.Header=c;
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
*-------------------------------------------------------------------------------------------
|
|
4
|
+
* Copyright © 2024 Progress Software Corporation. All rights reserved.
|
|
5
|
+
* Licensed under commercial license. See LICENSE.md in the package root for more information
|
|
6
|
+
*-------------------------------------------------------------------------------------------
|
|
7
|
+
*/
|
|
8
|
+
"use client";
|
|
9
|
+
import * as t from "react";
|
|
10
|
+
import { getScrollbarWidth as o, classNames as s, kendoThemeMaps as i } from "@progress/kendo-react-common";
|
|
11
|
+
import { isRtl as h, tableKeyboardNavigationHeaderAttributes as a } from "@progress/kendo-react-data-tools";
|
|
12
|
+
class d extends t.Component {
|
|
13
|
+
constructor() {
|
|
14
|
+
super(...arguments), this.headerWrap = null, this.table = null, this.syncScroll = !1, this.scrollbarWidth = o(), this.onScroll = (e) => {
|
|
15
|
+
if (this.syncScroll) {
|
|
16
|
+
this.syncScroll = !1;
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
if (!this.headerWrap)
|
|
20
|
+
return;
|
|
21
|
+
const l = this.headerWrap.scrollLeft, r = this.props.scrollableDataElement();
|
|
22
|
+
r && r.scrollLeft !== l && (r.scrollLeft = l);
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
get element() {
|
|
26
|
+
return this.props.elemRef.current;
|
|
27
|
+
}
|
|
28
|
+
componentDidMount() {
|
|
29
|
+
const e = h(this.element);
|
|
30
|
+
this.props.columnResize && this.props.columnResize.setIsRtl(e), this.forceUpdate();
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
*
|
|
34
|
+
* @param scrollLeft - Scrolls to the left (in pixels).
|
|
35
|
+
*/
|
|
36
|
+
setScrollLeft(e) {
|
|
37
|
+
this.headerWrap && this.headerWrap.scrollLeft !== e && (this.syncScroll = !0, this.headerWrap.scrollLeft = e);
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
*
|
|
41
|
+
* @param width - Scrolls the width (in pixels).
|
|
42
|
+
*/
|
|
43
|
+
setWidth(e) {
|
|
44
|
+
this.table && (this.table.style.width = e + "px");
|
|
45
|
+
}
|
|
46
|
+
render() {
|
|
47
|
+
return this.props.staticHeaders ? /* @__PURE__ */ t.createElement(
|
|
48
|
+
"div",
|
|
49
|
+
{
|
|
50
|
+
ref: this.props.elemRef,
|
|
51
|
+
className: s(
|
|
52
|
+
"k-grid-header",
|
|
53
|
+
{ "k-grid-draggable-header": this.props.draggable }
|
|
54
|
+
),
|
|
55
|
+
role: "presentation"
|
|
56
|
+
},
|
|
57
|
+
/* @__PURE__ */ t.createElement(
|
|
58
|
+
"div",
|
|
59
|
+
{
|
|
60
|
+
ref: (e) => {
|
|
61
|
+
this.headerWrap = e;
|
|
62
|
+
},
|
|
63
|
+
className: "k-grid-header-wrap",
|
|
64
|
+
style: this.scrollbarWidth ? {} : { borderWidth: 0 },
|
|
65
|
+
onScroll: this.onScroll,
|
|
66
|
+
role: "presentation"
|
|
67
|
+
},
|
|
68
|
+
/* @__PURE__ */ t.createElement(
|
|
69
|
+
"table",
|
|
70
|
+
{
|
|
71
|
+
ref: (e) => {
|
|
72
|
+
this.table = e;
|
|
73
|
+
},
|
|
74
|
+
className: s(
|
|
75
|
+
"k-table k-grid-header-table",
|
|
76
|
+
{
|
|
77
|
+
"k-table-md": !this.props.size,
|
|
78
|
+
[`k-table-${i.sizeMap[this.props.size] || this.props.size}`]: this.props.size
|
|
79
|
+
},
|
|
80
|
+
this.props.className
|
|
81
|
+
),
|
|
82
|
+
role: "presentation"
|
|
83
|
+
},
|
|
84
|
+
/* @__PURE__ */ t.createElement("colgroup", { ref: (e) => {
|
|
85
|
+
this.props.columnResize.colGroupHeader = e;
|
|
86
|
+
} }, this.props.cols),
|
|
87
|
+
/* @__PURE__ */ t.createElement("thead", { className: "k-table-thead", role: "rowgroup", ...a }, this.props.headerRow, this.props.filterRow)
|
|
88
|
+
)
|
|
89
|
+
)
|
|
90
|
+
) : /* @__PURE__ */ t.createElement(
|
|
91
|
+
"thead",
|
|
92
|
+
{
|
|
93
|
+
role: "presentation",
|
|
94
|
+
className: s(
|
|
95
|
+
"k-table-thead",
|
|
96
|
+
{ "k-grid-draggable-header": this.props.draggable }
|
|
97
|
+
),
|
|
98
|
+
...a
|
|
99
|
+
},
|
|
100
|
+
this.props.headerRow,
|
|
101
|
+
this.props.filterRow
|
|
102
|
+
);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
export {
|
|
106
|
+
d as Header
|
|
107
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
*-------------------------------------------------------------------------------------------
|
|
4
|
+
* Copyright © 2024 Progress Software Corporation. All rights reserved.
|
|
5
|
+
* Licensed under commercial license. See LICENSE.md in the package root for more information
|
|
6
|
+
*-------------------------------------------------------------------------------------------
|
|
7
|
+
*/
|
|
8
|
+
"use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const I=require("react"),q=require("../interfaces/GridSortSettings.js"),E=require("../drag/ColumnDraggable.js"),M=require("./GridHeaderCell.js"),u=require("@progress/kendo-react-common"),C=require("@progress/kendo-react-data-tools"),b=require("@progress/kendo-react-intl"),f=require("../messages/index.js"),k=require("@progress/kendo-svg-icons"),N=require("../utils/index.js");function O(n){const s=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(n){for(const r in n)if(r!=="default"){const l=Object.getOwnPropertyDescriptor(n,r);Object.defineProperty(s,r,l.get?l:{enumerable:!0,get:()=>n[r]})}}return s.default=n,Object.freeze(s)}const o=O(I),L={true:{asc:"desc",desc:"","":"asc"},false:{asc:"desc",desc:"asc","":"asc"}},P={none:"none",asc:"ascending",desc:"descending"};class R extends o.Component{constructor(s){super(s),this.serviceIndex=0,this.index=-1,this.cellKeyDown=(r,l)=>{r.isDefaultPrevented()||r.keyCode===u.Keys.enter&&this.cellClick(r,l)},this.cells=r=>r.map(l=>{const e=this.props.columns[l],i=this.props.sortable&&e.sortable,a=this.props.sort?this.props.sort.findIndex(t=>t.field===e.field):-1,p=a>=0&&this.props.sort[a].dir||"none",c=e.columnMenu===null?null:e.columnMenu||this.props.columnMenu,S=u.classNames({"k-first":e.kFirst,"k-filterable":!!c,"k-table-th":!0,"k-header":!0,"k-grid-header-sticky":e.locked,"k-sorted":this.props.sort&&this.props.sort.some(t=>t.field===e.field)},e.headerClassName);e.locked===!1&&(e.left=0);const y=e.left!==void 0?this.props.isRtl?{left:e.right,right:e.left}:{left:e.left,right:e.right}:{},D=b.provideLocalizationService(this).toLanguageString(f.sortAriaLabel,f.messages[f.sortAriaLabel]),H=e.isAccessible?{ariaSort:P[p],role:"columnheader",ariaColumnIndex:e.ariaColumnIndex,ariaSelected:!1,ariaDescription:i?D:""}:{role:"presentation"},d=e.declarationIndex>=0?++this.index:--this.serviceIndex,v=e.headerCell?e.headerCell:M.GridHeaderCell,z=o.createElement(v,{key:1,field:e.field,onClick:i&&(t=>this.cellClick(t,e))||void 0,selectionChange:this.props.selectionChange,title:e.title,selectionValue:e.headerSelectionValue,render:this.props.cellRender,children:this.sortIcon(a),columnMenuWrapperProps:{column:{field:e.field,title:e.title,locked:e.locked,filter:e.filter,id:e.id},sortable:i&&this.props.sortable,sort:this.props.sort,onSortChange:this.props.sortChange,filter:this.props.filter,filterable:this.props.filterable&&e.filterable,filterOperators:this.props.filterOperators,onFilterChange:this.props.filterChange,group:this.props.group,groupable:this.props.groupable,onGroupChange:this.props.groupChange,columnMenu:c}}),m={...H,key:d,colSpan:e.colSpan,rowSpan:e.rowSpan,className:S,style:y,columnId:e.id,navigatable:e.navigatable,onKeyDown:i&&(t=>this.cellKeyDown(t,e))||void 0,role:"columnheader"},g=[z,this.props.columnResize&&this.props.columnResize.resizable&&e.resizable&&o.createElement(C.ColumnResizer,{key:2,resize:(t,w,x)=>this.props.columnResize&&this.props.columnResize.dragHandler(t,e,w,x),autofit:t=>this.props.columnResize&&this.props.columnResize.dblClickHandler(t,[e.id])})],h=N.resolveCells(this.props.cells,e.cells);if(h&&h.headerCell){const t=h.headerCell;return o.createElement(t,{key:d,thProps:m,index:l},g)}return o.createElement(C.HeaderThElement,{...m,key:d},g)}),this.cellClick=this.cellClick.bind(this)}cellClick(s,r){if(s.preventDefault(),!this.props.sortChange)return;const{allowUnsort:l,mode:e}=q.normalize(this.props.sortable||!1,r.sortable||!1),i=(this.props.sort||[]).filter(c=>c.field===r.field)[0],a=L[l][i&&i.dir||""],p=e==="single"?[]:(this.props.sort||[]).filter(c=>c.field!==r.field);a!==""&&r.field&&p.push({field:r.field,dir:a}),this.props.sortChange(p,s)}sortIcon(s){return this.props.sort?s>=0&&[o.createElement("span",{key:1,className:"k-sort-icon"},o.createElement(u.IconWrap,{name:"sort-"+this.props.sort[s].dir+"-small",icon:this.props.sort[s].dir==="asc"?k.sortAscSmallIcon:k.sortDescSmallIcon})),this.props.sort.length>1&&o.createElement("span",{key:2,className:"k-sort-icon"},o.createElement("span",{className:"k-sort-order"},s+1))]:null}render(){return this.serviceIndex=0,this.index=-1,this.props.columnsMap.map((s,r)=>this.props.pressHandler&&o.createElement(E.ColumnDraggable,{key:r,pressHandler:this.props.pressHandler,dragHandler:this.props.dragHandler,releaseHandler:this.props.releaseHandler,ariaRowIndex:r+1,dragClue:this.props.dragClue,headerRef:this.props.headerRef,containerRef:this.props.containerRef},this.cells(s))||o.createElement("tr",{key:r,className:"k-table-row",role:"row","aria-rowindex":r+1},this.cells(s)))}}b.registerForLocalization(R);exports.HeaderRow=R;
|
|
@@ -0,0 +1,155 @@
|
|
|
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 o from "react";
|
|
10
|
+
import { normalize as z } from "../interfaces/GridSortSettings.mjs";
|
|
11
|
+
import { ColumnDraggable as H } from "../drag/ColumnDraggable.mjs";
|
|
12
|
+
import { GridHeaderCell as v } from "./GridHeaderCell.mjs";
|
|
13
|
+
import { Keys as w, classNames as x, IconWrap as D } from "@progress/kendo-react-common";
|
|
14
|
+
import { ColumnResizer as E, HeaderThElement as I } from "@progress/kendo-react-data-tools";
|
|
15
|
+
import { provideLocalizationService as M, registerForLocalization as N } from "@progress/kendo-react-intl";
|
|
16
|
+
import { sortAriaLabel as f, messages as L } from "../messages/index.mjs";
|
|
17
|
+
import { sortAscSmallIcon as A, sortDescSmallIcon as K } from "@progress/kendo-svg-icons";
|
|
18
|
+
import { resolveCells as F } from "../utils/index.mjs";
|
|
19
|
+
const P = {
|
|
20
|
+
true: { asc: "desc", desc: "", "": "asc" },
|
|
21
|
+
false: { asc: "desc", desc: "asc", "": "asc" }
|
|
22
|
+
}, G = {
|
|
23
|
+
none: "none",
|
|
24
|
+
asc: "ascending",
|
|
25
|
+
desc: "descending"
|
|
26
|
+
};
|
|
27
|
+
class O extends o.Component {
|
|
28
|
+
constructor(t) {
|
|
29
|
+
super(t), this.serviceIndex = 0, this.index = -1, this.cellKeyDown = (s, i) => {
|
|
30
|
+
s.isDefaultPrevented() || s.keyCode === w.enter && this.cellClick(s, i);
|
|
31
|
+
}, this.cells = (s) => s.map((i) => {
|
|
32
|
+
const e = this.props.columns[i], l = this.props.sortable && e.sortable, a = this.props.sort ? this.props.sort.findIndex((r) => r.field === e.field) : -1, p = a >= 0 && this.props.sort[a].dir || "none", n = e.columnMenu === null ? null : e.columnMenu || this.props.columnMenu, u = x({
|
|
33
|
+
"k-first": e.kFirst,
|
|
34
|
+
"k-filterable": !!n,
|
|
35
|
+
"k-table-th": !0,
|
|
36
|
+
"k-header": !0,
|
|
37
|
+
"k-grid-header-sticky": e.locked,
|
|
38
|
+
"k-sorted": this.props.sort && this.props.sort.some((r) => r.field === e.field)
|
|
39
|
+
}, e.headerClassName);
|
|
40
|
+
e.locked === !1 && (e.left = 0);
|
|
41
|
+
const g = e.left !== void 0 ? this.props.isRtl ? { left: e.right, right: e.left } : { left: e.left, right: e.right } : {}, C = M(this).toLanguageString(f, L[f]), k = e.isAccessible ? {
|
|
42
|
+
ariaSort: G[p],
|
|
43
|
+
role: "columnheader",
|
|
44
|
+
ariaColumnIndex: e.ariaColumnIndex,
|
|
45
|
+
ariaSelected: !1,
|
|
46
|
+
ariaDescription: l ? C : ""
|
|
47
|
+
} : {
|
|
48
|
+
role: "presentation"
|
|
49
|
+
}, c = e.declarationIndex >= 0 ? ++this.index : --this.serviceIndex, b = e.headerCell ? e.headerCell : v, R = /* @__PURE__ */ o.createElement(
|
|
50
|
+
b,
|
|
51
|
+
{
|
|
52
|
+
key: 1,
|
|
53
|
+
field: e.field,
|
|
54
|
+
onClick: l && ((r) => this.cellClick(r, e)) || void 0,
|
|
55
|
+
selectionChange: this.props.selectionChange,
|
|
56
|
+
title: e.title,
|
|
57
|
+
selectionValue: e.headerSelectionValue,
|
|
58
|
+
render: this.props.cellRender,
|
|
59
|
+
children: this.sortIcon(a),
|
|
60
|
+
columnMenuWrapperProps: {
|
|
61
|
+
column: {
|
|
62
|
+
field: e.field,
|
|
63
|
+
title: e.title,
|
|
64
|
+
locked: e.locked,
|
|
65
|
+
filter: e.filter,
|
|
66
|
+
id: e.id
|
|
67
|
+
},
|
|
68
|
+
sortable: l && this.props.sortable,
|
|
69
|
+
sort: this.props.sort,
|
|
70
|
+
onSortChange: this.props.sortChange,
|
|
71
|
+
filter: this.props.filter,
|
|
72
|
+
filterable: this.props.filterable && e.filterable,
|
|
73
|
+
filterOperators: this.props.filterOperators,
|
|
74
|
+
onFilterChange: this.props.filterChange,
|
|
75
|
+
group: this.props.group,
|
|
76
|
+
groupable: this.props.groupable,
|
|
77
|
+
onGroupChange: this.props.groupChange,
|
|
78
|
+
columnMenu: n
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
), h = {
|
|
82
|
+
...k,
|
|
83
|
+
key: c,
|
|
84
|
+
colSpan: e.colSpan,
|
|
85
|
+
rowSpan: e.rowSpan,
|
|
86
|
+
className: u,
|
|
87
|
+
style: g,
|
|
88
|
+
columnId: e.id,
|
|
89
|
+
navigatable: e.navigatable,
|
|
90
|
+
onKeyDown: l && ((r) => this.cellKeyDown(r, e)) || void 0,
|
|
91
|
+
role: "columnheader"
|
|
92
|
+
}, m = [
|
|
93
|
+
R,
|
|
94
|
+
this.props.columnResize && this.props.columnResize.resizable && e.resizable && /* @__PURE__ */ o.createElement(
|
|
95
|
+
E,
|
|
96
|
+
{
|
|
97
|
+
key: 2,
|
|
98
|
+
resize: (r, y, S) => this.props.columnResize && this.props.columnResize.dragHandler(r, e, y, S),
|
|
99
|
+
autofit: (r) => this.props.columnResize && this.props.columnResize.dblClickHandler(r, [e.id])
|
|
100
|
+
}
|
|
101
|
+
)
|
|
102
|
+
], d = F(this.props.cells, e.cells);
|
|
103
|
+
if (d && d.headerCell) {
|
|
104
|
+
const r = d.headerCell;
|
|
105
|
+
return /* @__PURE__ */ o.createElement(r, { key: c, thProps: h, index: i }, m);
|
|
106
|
+
}
|
|
107
|
+
return /* @__PURE__ */ o.createElement(
|
|
108
|
+
I,
|
|
109
|
+
{
|
|
110
|
+
...h,
|
|
111
|
+
key: c
|
|
112
|
+
},
|
|
113
|
+
m
|
|
114
|
+
);
|
|
115
|
+
}), this.cellClick = this.cellClick.bind(this);
|
|
116
|
+
}
|
|
117
|
+
cellClick(t, s) {
|
|
118
|
+
if (t.preventDefault(), !this.props.sortChange)
|
|
119
|
+
return;
|
|
120
|
+
const { allowUnsort: i, mode: e } = z(this.props.sortable || !1, s.sortable || !1), l = (this.props.sort || []).filter((n) => n.field === s.field)[0], a = P[i][l && l.dir || ""], p = e === "single" ? [] : (this.props.sort || []).filter((n) => n.field !== s.field);
|
|
121
|
+
a !== "" && s.field && p.push({ field: s.field, dir: a }), this.props.sortChange(p, t);
|
|
122
|
+
}
|
|
123
|
+
sortIcon(t) {
|
|
124
|
+
return this.props.sort ? t >= 0 && [
|
|
125
|
+
/* @__PURE__ */ o.createElement("span", { key: 1, className: "k-sort-icon" }, /* @__PURE__ */ o.createElement(
|
|
126
|
+
D,
|
|
127
|
+
{
|
|
128
|
+
name: "sort-" + this.props.sort[t].dir + "-small",
|
|
129
|
+
icon: this.props.sort[t].dir === "asc" ? A : K
|
|
130
|
+
}
|
|
131
|
+
)),
|
|
132
|
+
this.props.sort.length > 1 && /* @__PURE__ */ o.createElement("span", { key: 2, className: "k-sort-icon" }, /* @__PURE__ */ o.createElement("span", { className: "k-sort-order" }, t + 1))
|
|
133
|
+
] : null;
|
|
134
|
+
}
|
|
135
|
+
render() {
|
|
136
|
+
return this.serviceIndex = 0, this.index = -1, this.props.columnsMap.map((t, s) => this.props.pressHandler && /* @__PURE__ */ o.createElement(
|
|
137
|
+
H,
|
|
138
|
+
{
|
|
139
|
+
key: s,
|
|
140
|
+
pressHandler: this.props.pressHandler,
|
|
141
|
+
dragHandler: this.props.dragHandler,
|
|
142
|
+
releaseHandler: this.props.releaseHandler,
|
|
143
|
+
ariaRowIndex: s + 1,
|
|
144
|
+
dragClue: this.props.dragClue,
|
|
145
|
+
headerRef: this.props.headerRef,
|
|
146
|
+
containerRef: this.props.containerRef
|
|
147
|
+
},
|
|
148
|
+
this.cells(t)
|
|
149
|
+
) || /* @__PURE__ */ o.createElement("tr", { key: s, className: "k-table-row", role: "row", "aria-rowindex": s + 1 }, this.cells(t)));
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
N(O);
|
|
153
|
+
export {
|
|
154
|
+
O as HeaderRow
|
|
155
|
+
};
|