@progress/kendo-react-data-tools 13.3.0 → 13.4.0-develop.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. package/clipboard/clipboard.service.d.ts +20 -0
  2. package/clipboard/common.d.ts +188 -0
  3. package/columnmenu/ColumnMenu.d.ts +90 -0
  4. package/columnmenu/ColumnMenuFilterForm.d.ts +25 -0
  5. package/columnmenu/ColumnMenuFilterLogic.d.ts +10 -0
  6. package/columnmenu/ColumnMenuFilterLogic.mjs +4 -4
  7. package/columnmenu/ColumnMenuFilters.d.ts +31 -0
  8. package/columnmenu/ColumnMenuItem.d.ts +39 -0
  9. package/columnmenu/ColumnMenuOperators.d.ts +72 -0
  10. package/columnmenu/index.d.ts +13 -0
  11. package/data-source/use-data-source.d.ts +224 -0
  12. package/data-source/use-odata-data-source.d.ts +41 -0
  13. package/data-source/use-remote-data-source.d.ts +411 -0
  14. package/detail-expansion/TableExpandableSettings.d.ts +12 -0
  15. package/detail-expansion/expandReducer.d.ts +31 -0
  16. package/detail-expansion/utils.d.ts +10 -0
  17. package/dist/cdn/js/kendo-react-datatools.js +1 -1
  18. package/drag/ColumnDraggable.d.ts +37 -0
  19. package/drag/ColumnResize.d.ts +39 -0
  20. package/drag/ColumnResizer.d.ts +35 -0
  21. package/drag/CommonDragLogic.d.ts +45 -0
  22. package/drag/DragClue.d.ts +29 -0
  23. package/drag/DropClue.d.ts +26 -0
  24. package/editing/TableEditableSettings.d.ts +24 -0
  25. package/editing/editReducer.d.ts +62 -0
  26. package/editing/utils.d.ts +12 -0
  27. package/filter/Expression.d.ts +53 -0
  28. package/filter/Expression.js +1 -1
  29. package/filter/Expression.mjs +10 -11
  30. package/filter/FieldSettings.d.ts +37 -0
  31. package/filter/Filter.d.ts +139 -0
  32. package/filter/Group.d.ts +64 -0
  33. package/filter/Group.js +1 -1
  34. package/filter/Group.mjs +7 -7
  35. package/filter/filters/BooleanFilter.d.ts +50 -0
  36. package/filter/filters/DateFilter.d.ts +33 -0
  37. package/filter/filters/EnumFilter.d.ts +50 -0
  38. package/filter/filters/NumericFilter.d.ts +40 -0
  39. package/filter/filters/TextFilter.d.ts +47 -0
  40. package/filter/filters/index.d.ts +12 -0
  41. package/filter/index.d.ts +13 -0
  42. package/filter/operators.d.ts +80 -0
  43. package/filteringCells/BooleanFilter.d.ts +15 -0
  44. package/filteringCells/DateFilter.d.ts +15 -0
  45. package/filteringCells/FilterCellProps.d.ts +42 -0
  46. package/filteringCells/FilterComponent.d.ts +24 -0
  47. package/filteringCells/FilterComponentProps.d.ts +30 -0
  48. package/filteringCells/FilterOperator.d.ts +20 -0
  49. package/filteringCells/NumericFilter.d.ts +15 -0
  50. package/filteringCells/TextFilter.d.ts +15 -0
  51. package/filteringCells/index.d.ts +15 -0
  52. package/group-expansion/TableGroupExpandableSettings.d.ts +12 -0
  53. package/group-expansion/groupExpandReducer.d.ts +46 -0
  54. package/header/CellProps.d.ts +83 -0
  55. package/header/ColumnProps.d.ts +167 -0
  56. package/header/FilterRow.d.ts +32 -0
  57. package/header/Header.d.ts +26 -0
  58. package/header/HeaderCell.d.ts +54 -0
  59. package/header/HeaderRow.d.ts +44 -0
  60. package/header/HeaderSelectionCell.d.ts +19 -0
  61. package/header/HeaderTdElement.d.ts +42 -0
  62. package/header/HeaderThElement.d.ts +42 -0
  63. package/header/SortSettings.d.ts +33 -0
  64. package/header/index.d.ts +18 -0
  65. package/header/utils/index.d.ts +90 -0
  66. package/index.d.mts +43 -3741
  67. package/index.d.ts +43 -3741
  68. package/messages/index.d.ts +397 -0
  69. package/navigation/NavigatableSettings.d.ts +25 -0
  70. package/navigation/TableKeyboardNavigation.d.ts +95 -0
  71. package/navigation/TableKeyboardNavigation.mjs +13 -13
  72. package/navigation/TableKeyboardNavigationContext.d.ts +13 -0
  73. package/navigation/TableKeyboardNavigationContextType.d.ts +14 -0
  74. package/navigation/TableKeyboardNavigationStateType.d.ts +17 -0
  75. package/navigation/constants.d.ts +61 -0
  76. package/navigation/hooks.d.ts +19 -0
  77. package/navigation/hooks.mjs +3 -3
  78. package/navigation/stackedKeyboardNavigation.d.ts +217 -0
  79. package/navigation/utils.d.ts +329 -0
  80. package/navigation/utils.mjs +5 -5
  81. package/package-metadata.d.ts +12 -0
  82. package/package-metadata.js +1 -1
  83. package/package-metadata.mjs +10 -16
  84. package/package.json +10 -10
  85. package/pager/Pager.d.ts +10 -0
  86. package/pager/Pager.js +1 -1
  87. package/pager/Pager.mjs +64 -66
  88. package/pager/PagerInput.d.ts +29 -0
  89. package/pager/PagerNumericButtons.d.ts +28 -0
  90. package/pager/PagerNumericButtons.js +1 -1
  91. package/pager/PagerNumericButtons.mjs +15 -17
  92. package/pager/PagerPageSizes.d.ts +36 -0
  93. package/pager/models/index.d.ts +178 -0
  94. package/pager/utils.d.ts +66 -0
  95. package/selection/TableSelectableSettings.d.ts +38 -0
  96. package/selection/TableSelection.d.ts +25 -0
  97. package/selection/constants.d.ts +13 -0
  98. package/selection/events.d.ts +101 -0
  99. package/selection/utils.d.ts +70 -0
  100. package/utils/DataItemWrapper.d.ts +17 -0
  101. package/utils/SearchField.d.ts +24 -0
  102. package/utils/data-operations.d.ts +107 -0
  103. package/utils/group-operations.d.ts +36 -0
  104. package/virtualization/columns.d.ts +24 -0
  105. package/virtualization/index.d.ts +8 -0
@@ -0,0 +1,39 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ import { FilterCellProps } from '../filteringCells/index.js';
9
+ import { ExtendedColumnProps, CellProps, HeaderCellProps } from './../header/index.js';
10
+ /**
11
+ * @hidden
12
+ */
13
+ export declare class ColumnResize<C = CellProps, H = HeaderCellProps, F = FilterCellProps> {
14
+ /**
15
+ * The main `colgroup` of the Grid.
16
+ */
17
+ colGroupMain: any | null;
18
+ /**
19
+ * The header `colgroup` of the Grid (if any).
20
+ */
21
+ colGroupHeader: any | null;
22
+ /**
23
+ * The footer `colgroup` of the Grid (if any).
24
+ */
25
+ colGroupFooter: any | null;
26
+ columns: ExtendedColumnProps<C, H, F>[];
27
+ /**
28
+ * The settings for resizing the Grid.
29
+ */
30
+ resizable: boolean;
31
+ onResize: (index: number, newWidth: number, oldWidth: number, originalEvent: any, end: boolean) => void;
32
+ private isRtl;
33
+ constructor(triggerResize: (index: number, newWidth: number, oldWidth: number, originalEvent: any, end: boolean) => void);
34
+ setIsRtl: (isRtl: boolean) => void;
35
+ dragHandler(event: any, column: ExtendedColumnProps<C, H, F>, dragCue: HTMLSpanElement, end: boolean): void;
36
+ private setWidths;
37
+ private updateColElements;
38
+ private setColWidth;
39
+ }
@@ -0,0 +1,35 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ import * as React from 'react';
9
+ /**
10
+ * @hidden
11
+ */
12
+ export interface ColumnResizerResizerProps {
13
+ resize: (event: any, dragCue: HTMLSpanElement, end: boolean) => void;
14
+ autofit?: (event: React.MouseEvent<HTMLSpanElement, MouseEvent>, dragCue: HTMLSpanElement) => void;
15
+ }
16
+ /**
17
+ * @hidden
18
+ */
19
+ export declare class ColumnResizer extends React.Component<ColumnResizerResizerProps, {}> {
20
+ private draggable;
21
+ private isDragged;
22
+ /**
23
+ * @hidden
24
+ */
25
+ onDrag: (data: any) => void;
26
+ /**
27
+ * @hidden
28
+ */
29
+ onRelease: (data: any) => void;
30
+ /**
31
+ * @hidden
32
+ */
33
+ onDoubleClick: (event: React.MouseEvent<HTMLSpanElement, MouseEvent>) => void;
34
+ render(): React.JSX.Element;
35
+ }
@@ -0,0 +1,45 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ import { DragClue } from './DragClue.js';
9
+ import { DropClue } from './DropClue.js';
10
+ import { FilterCellProps } from '../filteringCells/index.js';
11
+ import { ExtendedColumnProps, CellProps, HeaderCellProps } from './../header/index.js';
12
+ /**
13
+ * @hidden
14
+ */
15
+ export type handler = (prevIndex: number, nextIndex: number, nativeEvent: any) => void;
16
+ /**
17
+ * @hidden
18
+ */
19
+ export declare class CommonDragLogic<C = CellProps, H = HeaderCellProps, F = FilterCellProps> {
20
+ columns: ExtendedColumnProps<C, H, F>[];
21
+ reorderable: boolean;
22
+ groupable: boolean;
23
+ private startColumn;
24
+ private startGroup;
25
+ private currentColumn;
26
+ private currentGroup;
27
+ private columnReorder;
28
+ private groupReorder;
29
+ private columnToGroup;
30
+ private dropElementClue;
31
+ private dragElementClue;
32
+ private groupPanelDivElement;
33
+ constructor(columnReorder: handler, groupReorder: handler, columnToGroup: handler);
34
+ refGroupPanelDiv: (e: HTMLDivElement | null) => void;
35
+ refDropElementClue: (e: DropClue | null) => void;
36
+ refDragElementClue: (e: DragClue | null) => void;
37
+ pressHandler: (event: any, element: HTMLTableRowElement | HTMLDivElement) => void;
38
+ dragHandler: (event: any, element: HTMLTableRowElement | HTMLDivElement) => void;
39
+ releaseHandler: (event: any) => void;
40
+ private getColumnIndex;
41
+ private getGroupIndex;
42
+ private isValid;
43
+ private updateDragElementClue;
44
+ private updateDropElementClue;
45
+ }
@@ -0,0 +1,29 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ import * as React from 'react';
9
+ /**
10
+ * @hidden
11
+ */
12
+ export interface DragClueState {
13
+ visible: boolean;
14
+ top: number;
15
+ left: number;
16
+ innerText: string;
17
+ status: 'k-i-cancel' | 'k-i-plus';
18
+ }
19
+ /**
20
+ * @hidden
21
+ */
22
+ export declare class DragClue extends React.PureComponent<any, DragClueState> {
23
+ private elementRef;
24
+ readonly state: DragClueState;
25
+ hiddenElementRef: React.RefObject<HTMLDivElement | null>;
26
+ get element(): HTMLDivElement | null;
27
+ constructor(props: any);
28
+ render(): React.JSX.Element;
29
+ }
@@ -0,0 +1,26 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ import * as React from 'react';
9
+ /**
10
+ * @hidden
11
+ */
12
+ export interface DropClueState {
13
+ visible: boolean;
14
+ top: number;
15
+ left: number;
16
+ height: number;
17
+ }
18
+ /**
19
+ * @hidden
20
+ */
21
+ export declare class DropClue extends React.PureComponent<any, DropClueState> {
22
+ readonly state: DropClueState;
23
+ hiddenElementRef: React.RefObject<HTMLDivElement | null>;
24
+ constructor(props: any);
25
+ render(): React.JSX.Element;
26
+ }
@@ -0,0 +1,24 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ export interface TableEditableSettings {
9
+ /**
10
+ * Determines if the editing is enabled.
11
+ *
12
+ * @default false
13
+ */
14
+ enabled?: boolean;
15
+ /**
16
+ * Determines the editing mode.
17
+ * The available values are:
18
+ * * `inline`
19
+ * * `incell`
20
+ *
21
+ * @default 'incell
22
+ */
23
+ mode?: 'inline' | 'incell' | 'dialog';
24
+ }
@@ -0,0 +1,62 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ /**
9
+ * The `edit` descriptor used to identify which data-items are in edit mode.
10
+ *
11
+ * @example
12
+ * ```ts
13
+ * const data = [
14
+ * { id: 0, name: 'Jane Doe' },
15
+ * { id: 1, name: 'John Doe' }
16
+ * ]
17
+ *
18
+ * const edit = {
19
+ * 1: true
20
+ * }
21
+ * ```
22
+ */
23
+ export type EditDescriptor = {
24
+ /**
25
+ * The data-item id is in edit mode.
26
+ * If the value is `true` if the whole item (row) is in edit mode.
27
+ * If the value is an array of strings if only specific fields (cells) are in edit mode.
28
+ */
29
+ [id: string]: boolean | string[];
30
+ };
31
+ /**
32
+ * @hidden
33
+ */
34
+ export declare enum EDIT_ACTION {
35
+ ENTER_EDIT = "EDITING_ENTER_EDIT",
36
+ ENTER_FIELD_EDIT = "EDITING_ENTER_FIELD_EDIT",
37
+ ADD_EDIT = "EDITING_ADD_EDIT",
38
+ ADD_FIELD_EDIT = "EDITING_ADD_FIELD_EDIT",
39
+ EXIT_EDIT = "EDITING_EXIT_EDIT",
40
+ EXIT_FIELD_EDIT = "EDITING_EXIT_FIELD_EDIT",
41
+ TOGGLE_EDIT = "EDITING_TOGGLE_EDIT",
42
+ TOGGLE_FIELD_EDIT = "EDITING_TOGGLE_FIELD_EDIT"
43
+ }
44
+ /**
45
+ * @hidden
46
+ */
47
+ export type EditAction = {
48
+ type: EDIT_ACTION.ENTER_EDIT | EDIT_ACTION.ADD_EDIT | EDIT_ACTION.EXIT_EDIT | EDIT_ACTION.TOGGLE_EDIT;
49
+ payload: {
50
+ id: string;
51
+ };
52
+ } | {
53
+ type: EDIT_ACTION.ENTER_FIELD_EDIT | EDIT_ACTION.ADD_FIELD_EDIT | EDIT_ACTION.EXIT_FIELD_EDIT | EDIT_ACTION.TOGGLE_FIELD_EDIT;
54
+ payload: {
55
+ id: string;
56
+ field: string;
57
+ };
58
+ };
59
+ /**
60
+ * @hidden
61
+ */
62
+ export declare const editReducer: (state: EditDescriptor | undefined, action: EditAction) => EditDescriptor;
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ import { TableEditableSettings } from './TableEditableSettings.js';
9
+ /**
10
+ * @hidden
11
+ */
12
+ export declare const getEditableOptions: (editable?: boolean | TableEditableSettings) => Required<TableEditableSettings>;
@@ -0,0 +1,53 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ import { default as PropTypes } from 'prop-types';
9
+ import { FilterDescriptor } from '@progress/kendo-data-query';
10
+ import { BaseEvent } from '@progress/kendo-react-common';
11
+ import { FieldSettings } from './FieldSettings.js';
12
+ import * as React from 'react';
13
+ /**
14
+ * @hidden
15
+ */
16
+ export interface ExpressionChangeEvent extends BaseEvent<Expression> {
17
+ prevFilter: FilterDescriptor;
18
+ nextFilter: FilterDescriptor;
19
+ }
20
+ /**
21
+ * @hidden
22
+ */
23
+ export interface ExpressionRemoveEvent extends BaseEvent<Expression> {
24
+ filter: FilterDescriptor;
25
+ }
26
+ /**
27
+ * @hidden
28
+ */
29
+ export interface ExpressionProps {
30
+ filter: FilterDescriptor;
31
+ fields: Array<FieldSettings>;
32
+ ariaLabel?: string;
33
+ onChange: (event: ExpressionChangeEvent) => void;
34
+ onRemove: (event: ExpressionRemoveEvent) => void;
35
+ }
36
+ /**
37
+ * @hidden
38
+ */
39
+ export declare class Expression extends React.Component<ExpressionProps> {
40
+ static propTypes: {
41
+ filter: PropTypes.Validator<object>;
42
+ fields: PropTypes.Validator<any[]>;
43
+ ariaLabel: PropTypes.Requireable<string>;
44
+ onChange: PropTypes.Validator<(...args: any[]) => any>;
45
+ onRemove: PropTypes.Validator<(...args: any[]) => any>;
46
+ };
47
+ render(): React.JSX.Element;
48
+ private onFieldChange;
49
+ private onOperatorChange;
50
+ private onInputChange;
51
+ private triggerOnFilterChange;
52
+ private onFilterRemove;
53
+ }
@@ -6,4 +6,4 @@
6
6
  *-------------------------------------------------------------------------------------------
7
7
  */
8
8
  "use client";
9
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const b=require("react"),p=require("prop-types"),g=require("@progress/kendo-react-buttons"),m=require("@progress/kendo-react-dropdowns"),v=require("@progress/kendo-react-intl"),x=require("@progress/kendo-svg-icons"),d=require("./operators.js"),n=require("../messages/index.js");function E(s){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(s){for(const r in s)if(r!=="default"){const e=Object.getOwnPropertyDescriptor(s,r);Object.defineProperty(t,r,e.get?e:{enumerable:!0,get:()=>s[r]})}}return t.default=s,Object.freeze(t)}const l=E(b),h=s=>{s.value===void 0&&!d.unaryOperator(s.operator)&&(s.value=d.stringOperator(s.operator)?"":null)},f=class f extends l.Component{constructor(){super(...arguments),this.onFieldChange=t=>{const r=t.value.name,e=this.props.fields.find(a=>a.name===r),o=this.props.filter,i=e&&!e.operators.some(a=>a.operator===o.operator)?e.operators[0].operator:o.operator,c={field:r,operator:i};h(c),this.triggerOnFilterChange(o,c,t)},this.onOperatorChange=t=>{const r=t.value.operator,e=this.props.filter;let o;if(d.unaryOperator(r)){const{value:i,...c}=e;o={...c,operator:r}}else o={...e,operator:r};h(o),this.triggerOnFilterChange(e,o,t)},this.onInputChange=t=>{const r=this.props.filter;let e=t.nextFilter;if(d.unaryOperator(e.operator)){const o=this.props.fields.find(i=>i.name===e.field);e={...e,operator:o&&o.operators[0].operator||e.operator}}this.triggerOnFilterChange(r,e,t)},this.triggerOnFilterChange=(t,r,e)=>{const o={prevFilter:t,nextFilter:r,syntheticEvent:e.syntheticEvent,nativeEvent:e.nativeEvent,target:this};this.props.onChange.call(void 0,o)},this.onFilterRemove=t=>{const r={filter:this.props.filter,syntheticEvent:t.syntheticEvent,nativeEvent:t.nativeEvent,target:this};this.props.onRemove.call(void 0,r)}}render(){const t=v.provideLocalizationService(this),{fields:r,filter:e,ariaLabel:o=t.toLanguageString(n.filterExpressionAriaLabel,n.messages[n.filterExpressionAriaLabel])}=this.props,i=r.find(a=>a.name===e.field),c=(i&&i.operators||[]).map(a=>({...a,text:t.toLanguageString(a.text,n.messages[a.text]||a.text)}));return l.createElement("div",{className:"k-filter-toolbar"},l.createElement(g.Toolbar,{keyboardNavigation:!1,role:"toolbar",ariaLabel:o},l.createElement(g.ToolbarItem,{className:"k-filter-field"},l.createElement(m.DropDownList,{tabIndex:-1,data:r,textField:"label",value:r.find(a=>a.name===e.field),onChange:this.onFieldChange,ariaLabel:t.toLanguageString(n.filterExpressionDropdownAriaLabel,n.messages[n.filterExpressionDropdownAriaLabel])})),l.createElement(g.ToolbarItem,{className:"k-filter-operator"},l.createElement(m.DropDownList,{tabIndex:-1,data:c,textField:"text",value:c.find(a=>a.operator===e.operator),onChange:this.onOperatorChange,ariaLabel:t.toLanguageString(n.filterExpressionOperatorDropdownAriaLabel,n.messages[n.filterExpressionOperatorDropdownAriaLabel])})),l.createElement(g.ToolbarItem,{className:"k-filter-value"},i&&l.createElement(i.filter,{filter:e,onFilterChange:this.onInputChange,min:i.min,max:i.max})),l.createElement(g.Button,{className:"k-toolbar-button",title:t.toLanguageString(n.filterClose,n.messages[n.filterClose]),icon:"x",svgIcon:x.xIcon,fillMode:"flat",themeColor:"base",type:"button",onClick:this.onFilterRemove})))}};f.propTypes={filter:p.object.isRequired,fields:p.array.isRequired,ariaLabel:p.string,onChange:p.func.isRequired,onRemove:p.func.isRequired};let u=f;v.registerForLocalization(u);exports.Expression=u;
9
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const b=require("react"),p=require("prop-types"),g=require("@progress/kendo-react-buttons"),m=require("@progress/kendo-react-dropdowns"),v=require("@progress/kendo-react-intl"),x=require("@progress/kendo-svg-icons"),d=require("./operators.js"),n=require("../messages/index.js");function E(s){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(s){for(const r in s)if(r!=="default"){const e=Object.getOwnPropertyDescriptor(s,r);Object.defineProperty(t,r,e.get?e:{enumerable:!0,get:()=>s[r]})}}return t.default=s,Object.freeze(t)}const l=E(b),h=s=>{s.value===void 0&&!d.unaryOperator(s.operator)&&(s.value=d.stringOperator(s.operator)?"":null)},f=class f extends l.Component{constructor(){super(...arguments),this.onFieldChange=t=>{const r=t.value.name,e=this.props.fields.find(a=>a.name===r),o=this.props.filter,i=e&&!e.operators.some(a=>a.operator===o.operator)?e.operators[0].operator:o.operator,c={field:r,operator:i};h(c),this.triggerOnFilterChange(o,c,t)},this.onOperatorChange=t=>{const r=t.value.operator,e=this.props.filter;let o;if(d.unaryOperator(r)){const{value:i,...c}=e;o={...c,operator:r}}else o={...e,operator:r};h(o),this.triggerOnFilterChange(e,o,t)},this.onInputChange=t=>{const r=this.props.filter;let e=t.nextFilter;if(d.unaryOperator(e.operator)){const o=this.props.fields.find(i=>i.name===e.field);e={...e,operator:o&&o.operators[0].operator||e.operator}}this.triggerOnFilterChange(r,e,t)},this.triggerOnFilterChange=(t,r,e)=>{const o={prevFilter:t,nextFilter:r,syntheticEvent:e.syntheticEvent,nativeEvent:e.nativeEvent,target:this};this.props.onChange.call(void 0,o)},this.onFilterRemove=t=>{const r={filter:this.props.filter,syntheticEvent:t.syntheticEvent,nativeEvent:t.nativeEvent,target:this};this.props.onRemove.call(void 0,r)}}render(){const t=v.provideLocalizationService(this),{fields:r,filter:e,ariaLabel:o=t.toLanguageString(n.filterExpressionAriaLabel,n.messages[n.filterExpressionAriaLabel])}=this.props,i=r.find(a=>a.name===e.field),c=(i&&i.operators||[]).map(a=>({...a,text:t.toLanguageString(a.text,n.messages[a.text]||a.text)}));return l.createElement("div",{className:"k-filter-toolbar"},l.createElement(g.Toolbar,{keyboardNavigation:!1,role:"toolbar",ariaLabel:o},l.createElement(g.ToolbarItem,{className:"k-filter-field"},l.createElement(m.DropDownList,{tabIndex:-1,data:r,textField:"label",value:r.find(a=>a.name===e.field),onChange:this.onFieldChange,ariaLabel:t.toLanguageString(n.filterExpressionDropdownAriaLabel,n.messages[n.filterExpressionDropdownAriaLabel])})),l.createElement(g.ToolbarItem,{className:"k-filter-operator"},l.createElement(m.DropDownList,{tabIndex:-1,data:c,textField:"text",value:c.find(a=>a.operator===e.operator),onChange:this.onOperatorChange,ariaLabel:t.toLanguageString(n.filterExpressionOperatorDropdownAriaLabel,n.messages[n.filterExpressionOperatorDropdownAriaLabel])})),l.createElement(g.ToolbarItem,{className:"k-filter-value"},i&&l.createElement(i.filter,{filter:e,onFilterChange:this.onInputChange,min:i.min,max:i.max})),l.createElement(g.Button,{className:"k-toolbar-button",title:t.toLanguageString(n.filterClose,n.messages[n.filterClose]),icon:"x",svgIcon:x.xIcon,fillMode:"flat",type:"button",onClick:this.onFilterRemove})))}};f.propTypes={filter:p.object.isRequired,fields:p.array.isRequired,ariaLabel:p.string,onChange:p.func.isRequired,onRemove:p.func.isRequired};let u=f;v.registerForLocalization(u);exports.Expression=u;
@@ -8,22 +8,22 @@
8
8
  "use client";
9
9
  import * as n from "react";
10
10
  import s from "prop-types";
11
- import { Toolbar as E, ToolbarItem as m, Button as C } from "@progress/kendo-react-buttons";
11
+ import { Toolbar as b, ToolbarItem as m, Button as C } from "@progress/kendo-react-buttons";
12
12
  import { DropDownList as d } from "@progress/kendo-react-dropdowns";
13
13
  import { provideLocalizationService as L, registerForLocalization as y } from "@progress/kendo-react-intl";
14
14
  import { xIcon as O } from "@progress/kendo-svg-icons";
15
15
  import { unaryOperator as g, stringOperator as R } from "./operators.mjs";
16
16
  import { filterExpressionAriaLabel as v, messages as p, filterExpressionDropdownAriaLabel as u, filterExpressionOperatorDropdownAriaLabel as x, filterClose as F } from "../messages/index.mjs";
17
- const b = (c) => {
17
+ const E = (c) => {
18
18
  c.value === void 0 && !g(c.operator) && (c.value = R(c.operator) ? "" : null);
19
- }, f = class f extends n.Component {
19
+ }, h = class h extends n.Component {
20
20
  constructor() {
21
21
  super(...arguments), this.onFieldChange = (t) => {
22
22
  const r = t.value.name, e = this.props.fields.find((a) => a.name === r), o = this.props.filter, i = e && !e.operators.some((a) => a.operator === o.operator) ? e.operators[0].operator : o.operator, l = {
23
23
  field: r,
24
24
  operator: i
25
25
  };
26
- b(l), this.triggerOnFilterChange(o, l, t);
26
+ E(l), this.triggerOnFilterChange(o, l, t);
27
27
  }, this.onOperatorChange = (t) => {
28
28
  const r = t.value.operator, e = this.props.filter;
29
29
  let o;
@@ -32,7 +32,7 @@ const b = (c) => {
32
32
  o = { ...l, operator: r };
33
33
  } else
34
34
  o = { ...e, operator: r };
35
- b(o), this.triggerOnFilterChange(e, o, t);
35
+ E(o), this.triggerOnFilterChange(e, o, t);
36
36
  }, this.onInputChange = (t) => {
37
37
  const r = this.props.filter;
38
38
  let e = t.nextFilter;
@@ -69,7 +69,7 @@ const b = (c) => {
69
69
  ...a,
70
70
  text: t.toLanguageString(a.text, p[a.text] || a.text)
71
71
  }));
72
- return /* @__PURE__ */ n.createElement("div", { className: "k-filter-toolbar" }, /* @__PURE__ */ n.createElement(E, { keyboardNavigation: !1, role: "toolbar", ariaLabel: o }, /* @__PURE__ */ n.createElement(m, { className: "k-filter-field" }, /* @__PURE__ */ n.createElement(
72
+ return /* @__PURE__ */ n.createElement("div", { className: "k-filter-toolbar" }, /* @__PURE__ */ n.createElement(b, { keyboardNavigation: !1, role: "toolbar", ariaLabel: o }, /* @__PURE__ */ n.createElement(m, { className: "k-filter-field" }, /* @__PURE__ */ n.createElement(
73
73
  d,
74
74
  {
75
75
  tabIndex: -1,
@@ -111,22 +111,21 @@ const b = (c) => {
111
111
  icon: "x",
112
112
  svgIcon: O,
113
113
  fillMode: "flat",
114
- themeColor: "base",
115
114
  type: "button",
116
115
  onClick: this.onFilterRemove
117
116
  }
118
117
  )));
119
118
  }
120
119
  };
121
- f.propTypes = {
120
+ h.propTypes = {
122
121
  filter: s.object.isRequired,
123
122
  fields: s.array.isRequired,
124
123
  ariaLabel: s.string,
125
124
  onChange: s.func.isRequired,
126
125
  onRemove: s.func.isRequired
127
126
  };
128
- let h = f;
129
- y(h);
127
+ let f = h;
128
+ y(f);
130
129
  export {
131
- h as Expression
130
+ f as Expression
132
131
  };
@@ -0,0 +1,37 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ import { FilterOperator } from '../filteringCells/index.js';
9
+ /**
10
+ * The FieldSettings object.
11
+ */
12
+ export interface FieldSettings {
13
+ /**
14
+ * The field name.
15
+ */
16
+ name: string;
17
+ /**
18
+ * The field label, which will be shown in the fields DropDownList.
19
+ */
20
+ label: string;
21
+ /**
22
+ * The filter editor component. Could be any of the built-in TextFilter, NumericFilter, DateFilter, BooleanFilter or a custom component.
23
+ */
24
+ filter: any;
25
+ /**
26
+ * The collection of operators which will be passed to the operators DropDownList.
27
+ */
28
+ operators: Array<FilterOperator>;
29
+ /**
30
+ * Specifies the smallest value that can be entered.
31
+ */
32
+ min?: number;
33
+ /**
34
+ * Specifies the greatest value that can be entered.
35
+ */
36
+ max?: number;
37
+ }
@@ -0,0 +1,139 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ import { default as PropTypes } from 'prop-types';
9
+ import { CompositeFilterDescriptor } from '@progress/kendo-data-query';
10
+ import { BaseEvent } from '@progress/kendo-react-common';
11
+ import { FieldSettings } from './FieldSettings.js';
12
+ import * as React from 'react';
13
+ /**
14
+ * @hidden
15
+ * CSS selectors for keyboard navigation.
16
+ * Uses only structural CSS classes - no data attributes or title attributes
17
+ * to ensure stability across localizations and DOM changes.
18
+ */
19
+ export declare const selectors: any;
20
+ /**
21
+ * The FilterChangeEvent object.
22
+ */
23
+ export interface FilterChangeEvent extends BaseEvent<Filter> {
24
+ /**
25
+ * The changed composite filter descriptor.
26
+ */
27
+ filter: CompositeFilterDescriptor;
28
+ }
29
+ /**
30
+ * The props of the Filter component.
31
+ */
32
+ export interface FilterProps {
33
+ /**
34
+ * Adds custom CSS classes to the Filter's root element.
35
+ */
36
+ className?: string;
37
+ /**
38
+ * Applies custom styles to the Filter's root element.
39
+ */
40
+ style?: React.CSSProperties;
41
+ /**
42
+ * Defines the field settings for the Filter. Each field represents a filterable column.
43
+ *
44
+ * @example
45
+ * fields: [
46
+ * { name: "ProductName", label: "Product Name", type: "string" },
47
+ * { name: "Price", label: "Price", type: "number" }
48
+ * ]
49
+ */
50
+ fields: Array<FieldSettings>;
51
+ /**
52
+ * Specifies the composite filter descriptor value.
53
+ * This object defines the current state of the applied filters.
54
+ *
55
+ * @example
56
+ * value: {
57
+ * logic: "and",
58
+ * filters: [
59
+ * { field: "ProductName", operator: "contains", value: "Chai" },
60
+ * { field: "Price", operator: "gte", value: 20 }
61
+ * ]
62
+ * }
63
+ */
64
+ value: CompositeFilterDescriptor;
65
+ /**
66
+ * Provides an accessible label for the Filter's container component.
67
+ * Similar to the [aria-label](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-label) attribute.
68
+ */
69
+ ariaLabel?: string;
70
+ /**
71
+ * Provides an accessible label for the Filter's underlying Group component.
72
+ */
73
+ ariaLabelGroup?: string;
74
+ /**
75
+ * Provides an accessible label for the Filter's underlying Expression component.
76
+ */
77
+ ariaLabelExpression?: string;
78
+ /**
79
+ * The Filter onChange event.
80
+ *
81
+ * @param event - The event object containing the updated filter descriptor.
82
+ */
83
+ onChange: (event: FilterChangeEvent) => void;
84
+ /**
85
+ * Specifies the initial composite filter descriptor used when a new group is created.
86
+ *
87
+ * @example
88
+ * defaultGroupFilter: {
89
+ * logic: "and",
90
+ * filters: []
91
+ * }
92
+ */
93
+ defaultGroupFilter?: CompositeFilterDescriptor;
94
+ }
95
+ /**
96
+ * Represents the [KendoReact Filter component](https://www.telerik.com/kendo-react-ui/components/datatools/filter).
97
+ */
98
+ export declare class Filter extends React.Component<FilterProps> {
99
+ /**
100
+ * @hidden
101
+ */
102
+ static propTypes: {
103
+ className: PropTypes.Requireable<string>;
104
+ style: PropTypes.Requireable<object>;
105
+ fields: (props: FilterProps, propName: string) => Error | null;
106
+ ariaLabelGroup: PropTypes.Requireable<string>;
107
+ ariaLabelExpression: PropTypes.Requireable<string>;
108
+ value: PropTypes.Validator<object>;
109
+ onChange: PropTypes.Validator<(...args: any[]) => any>;
110
+ };
111
+ /**
112
+ * @hidden
113
+ */
114
+ wrapperRef: React.RefObject<HTMLDivElement | null>;
115
+ private navigation?;
116
+ private readonly showLicenseWatermark;
117
+ private readonly licenseMessage?;
118
+ constructor(props: FilterProps);
119
+ /**
120
+ * @hidden
121
+ */
122
+ componentDidMount(): void;
123
+ /**
124
+ * @hidden
125
+ */
126
+ render(): React.JSX.Element;
127
+ private onFilterChange;
128
+ private onGroupRemove;
129
+ /**
130
+ * @hidden
131
+ * Shared vertical navigation logic for ArrowUp / ArrowDown keys.
132
+ */
133
+ private navigateVertical;
134
+ private onKeyDown;
135
+ /**
136
+ * Classifies the currently active element for navigation decisions.
137
+ */
138
+ private classifyActive;
139
+ }
@@ -0,0 +1,64 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ import { default as PropTypes } from 'prop-types';
9
+ import { CompositeFilterDescriptor } from '@progress/kendo-data-query';
10
+ import { BaseEvent } from '@progress/kendo-react-common';
11
+ import { FieldSettings } from './FieldSettings.js';
12
+ import * as React from 'react';
13
+ /**
14
+ * @hidden
15
+ */
16
+ export interface GroupChangeEvent extends BaseEvent<Group> {
17
+ prevFilter: CompositeFilterDescriptor;
18
+ nextFilter: CompositeFilterDescriptor;
19
+ }
20
+ /**
21
+ * @hidden
22
+ */
23
+ export interface GroupRemoveEvent extends BaseEvent<Group> {
24
+ filter: CompositeFilterDescriptor;
25
+ }
26
+ /**
27
+ * @hidden
28
+ */
29
+ export interface GroupProps {
30
+ filter: CompositeFilterDescriptor;
31
+ fields: Array<FieldSettings>;
32
+ ariaLabel?: string;
33
+ ariaLabelExpression?: string;
34
+ onChange: (event: GroupChangeEvent) => void;
35
+ onRemove: (event: GroupRemoveEvent) => void;
36
+ defaultGroupFilter: CompositeFilterDescriptor;
37
+ }
38
+ /**
39
+ * @hidden
40
+ */
41
+ export declare class Group extends React.Component<GroupProps> {
42
+ static propTypes: {
43
+ filter: PropTypes.Validator<object>;
44
+ fields: PropTypes.Validator<any[]>;
45
+ ariaLabel: PropTypes.Requireable<string>;
46
+ ariaLabelExpression: PropTypes.Requireable<string>;
47
+ onChange: PropTypes.Validator<(...args: any[]) => any>;
48
+ onRemove: PropTypes.Validator<(...args: any[]) => any>;
49
+ defaultGroupFilter: PropTypes.Validator<object>;
50
+ };
51
+ private static filterIdCounter;
52
+ private static filterIdMap;
53
+ private getFilterKey;
54
+ render(): React.JSX.Element;
55
+ private onGroupRemove;
56
+ private onAddExpression;
57
+ private onAddGroup;
58
+ private onLogicAnd;
59
+ private onLogicOr;
60
+ private changeLogic;
61
+ private replaceFilter;
62
+ private onChange;
63
+ private onRemove;
64
+ }