@progress/kendo-react-grid 4.11.0-dev.202111101237 → 4.11.0-dev.202111172052

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.
@@ -1,10 +1,13 @@
1
1
  import * as React from 'react';
2
2
  import { GridColumnMenuProps } from '../interfaces/GridColumnMenuProps';
3
3
  /**
4
- * @hidden
4
+ * The props of the GridColumnMenuWrapper component.
5
5
  */
6
- export interface ExtendedGridColumnMenuProps extends GridColumnMenuProps {
7
- render: React.ComponentType<GridColumnMenuProps>;
6
+ export interface GridColumnMenuWrapperProps extends GridColumnMenuProps {
7
+ /**
8
+ * The component to be rendered as content of the Grid column menu.
9
+ */
10
+ columnMenu?: React.ComponentType<GridColumnMenuProps> | null;
8
11
  }
9
12
  /**
10
13
  * @hidden
@@ -13,9 +16,9 @@ export interface ColumnMenuStateProps {
13
16
  show: boolean;
14
17
  }
15
18
  /**
16
- * @hidden
19
+ * The GridColumnMenuWrapper component.
17
20
  */
18
- export declare class ColumnMenu extends React.Component<ExtendedGridColumnMenuProps, ColumnMenuStateProps> {
21
+ export declare class GridColumnMenuWrapper extends React.Component<GridColumnMenuWrapperProps, ColumnMenuStateProps> {
19
22
  readonly state: ColumnMenuStateProps;
20
23
  _anchor: HTMLDivElement | null;
21
24
  _content: HTMLDivElement | null;
@@ -34,11 +34,11 @@ var __rest = (this && this.__rest) || function (s, e) {
34
34
  import * as React from 'react';
35
35
  import { Popup } from '@progress/kendo-react-popup';
36
36
  /**
37
- * @hidden
37
+ * The GridColumnMenuWrapper component.
38
38
  */
39
- var ColumnMenu = /** @class */ (function (_super) {
40
- __extends(ColumnMenu, _super);
41
- function ColumnMenu() {
39
+ var GridColumnMenuWrapper = /** @class */ (function (_super) {
40
+ __extends(GridColumnMenuWrapper, _super);
41
+ function GridColumnMenuWrapper() {
42
42
  var _this = _super !== null && _super.apply(this, arguments) || this;
43
43
  _this.state = {
44
44
  show: false
@@ -59,16 +59,15 @@ var ColumnMenu = /** @class */ (function (_super) {
59
59
  };
60
60
  return _this;
61
61
  }
62
- ColumnMenu.prototype.render = function () {
62
+ GridColumnMenuWrapper.prototype.render = function () {
63
63
  var _this = this;
64
- var _a = this.props, ChildComponent = _a.render, others = __rest(_a, ["render"]);
64
+ var _a = this.props, ColumnMenu = _a.columnMenu, others = __rest(_a, ["columnMenu"]);
65
65
  return (React.createElement(React.Fragment, null,
66
66
  React.createElement("div", { className: 'k-grid-column-menu k-grid-filter', ref: function (e) { return _this._anchor = e; }, onClick: this.anchorClick },
67
67
  React.createElement("span", { className: 'k-icon k-i-more-vertical' })),
68
68
  React.createElement(Popup, { anchor: this._anchor, show: this.state.show },
69
- React.createElement("div", { ref: function (e) { return _this._content = e; }, className: 'k-grid-columnmenu-popup', tabIndex: 0, onBlur: this.blur, onFocus: this.focus, style: { outline: 'none' } },
70
- React.createElement(ChildComponent, __assign({}, others, { onCloseMenu: this.closeMenu }))))));
69
+ React.createElement("div", { ref: function (e) { return _this._content = e; }, className: 'k-grid-columnmenu-popup', tabIndex: 0, onBlur: this.blur, onFocus: this.focus, style: { outline: 'none' } }, ColumnMenu && (React.createElement(ColumnMenu, __assign({}, others, { onCloseMenu: this.closeMenu })))))));
71
70
  };
72
- return ColumnMenu;
71
+ return GridColumnMenuWrapper;
73
72
  }(React.Component));
74
- export { ColumnMenu };
73
+ export { GridColumnMenuWrapper };
@@ -23,6 +23,7 @@ var __assign = (this && this.__assign) || function () {
23
23
  return __assign.apply(this, arguments);
24
24
  };
25
25
  import * as React from 'react';
26
+ import { GridColumnMenuWrapper } from '../columnMenu/GridColumnMenuWrapper';
26
27
  /**
27
28
  * @example
28
29
  * ```jsx
@@ -75,12 +76,15 @@ var GridHeaderCell = /** @class */ (function (_super) {
75
76
  * @hidden
76
77
  */
77
78
  GridHeaderCell.prototype.render = function () {
79
+ var columnMenuWrapperProps = this.props.columnMenuWrapperProps;
78
80
  var clickProps = this.props.onClick ? {
79
81
  onClick: this.props.onClick
80
82
  } : {};
81
- var defaultRendering = (React.createElement("span", __assign({ className: 'k-link' }, clickProps),
82
- React.createElement("span", { className: 'k-column-title' }, this.props.title || this.props.field || '\u00A0'),
83
- this.props.children));
83
+ var defaultRendering = (React.createElement("span", { className: 'k-cell-inner' },
84
+ React.createElement("span", __assign({ className: 'k-link' }, clickProps),
85
+ React.createElement("span", { className: 'k-column-title' }, this.props.title || this.props.field || '\u00A0'),
86
+ this.props.children),
87
+ columnMenuWrapperProps.columnMenu && React.createElement(GridColumnMenuWrapper, __assign({}, columnMenuWrapperProps))));
84
88
  if (this.props.render) {
85
89
  return this.props.render.call(undefined, defaultRendering, this.props);
86
90
  }
@@ -27,7 +27,6 @@ import { normalize } from '../interfaces/GridSortSettings';
27
27
  import { ColumnResizer } from '../drag/ColumnResizer';
28
28
  import { ColumnDraggable } from '../drag/ColumnDraggable';
29
29
  import { GridHeaderCell } from './GridHeaderCell';
30
- import { ColumnMenu } from '../columnMenu/ColumnMenu';
31
30
  import { classNames, Keys } from '@progress/kendo-react-common';
32
31
  import { HeaderThElement } from '@progress/kendo-react-data-tools';
33
32
  import { registerForLocalization, provideLocalizationService as intl } from '@progress/kendo-react-intl';
@@ -69,16 +68,6 @@ var HeaderRow = /** @class */ (function (_super) {
69
68
  var sortable = _this.props.sortable && column.sortable;
70
69
  var sortIndex = _this.props.sort ? _this.props.sort.findIndex(function (s) { return s.field === column.field; }) : -1;
71
70
  var sortDir = sortIndex >= 0 ? ((_this.props.sort)[sortIndex].dir || 'none') : 'none';
72
- var headerCellProps = {
73
- field: column.field,
74
- onClick: sortable && (function (e) { return _this.cellClick(e, column); }) || undefined,
75
- selectionChange: _this.props.selectionChange,
76
- title: column.title,
77
- selectionValue: column.headerSelectionValue,
78
- render: _this.props.cellRender,
79
- children: _this.sortIcon(sortIndex),
80
- key: 1
81
- };
82
71
  var columnMenu = (column.columnMenu === null) ? null : (column.columnMenu || _this.props.columnMenu);
83
72
  var className = classNames({
84
73
  'k-first': column.kFirst,
@@ -102,16 +91,36 @@ var HeaderRow = /** @class */ (function (_super) {
102
91
  } : {
103
92
  'role': 'presentation'
104
93
  };
94
+ var columnMenuWrapperProps = {
95
+ column: {
96
+ field: column.field,
97
+ filter: column.filter
98
+ },
99
+ sortable: sortable && _this.props.sortable,
100
+ sort: _this.props.sort,
101
+ onSortChange: _this.props.sortChange,
102
+ filter: _this.props.filter,
103
+ filterable: _this.props.filterable && column.filterable,
104
+ filterOperators: _this.props.filterOperators,
105
+ onFilterChange: _this.props.filterChange,
106
+ group: _this.props.group,
107
+ groupable: _this.props.groupable,
108
+ onGroupChange: _this.props.groupChange,
109
+ columnMenu: columnMenu
110
+ };
111
+ var headerCellProps = {
112
+ field: column.field,
113
+ onClick: sortable && (function (e) { return _this.cellClick(e, column); }) || undefined,
114
+ selectionChange: _this.props.selectionChange,
115
+ title: column.title,
116
+ selectionValue: column.headerSelectionValue,
117
+ render: _this.props.cellRender,
118
+ children: _this.sortIcon(sortIndex),
119
+ columnMenuWrapperProps: columnMenuWrapperProps
120
+ };
105
121
  var key = (column.declarationIndex >= 0) ? ++_this.index : --_this.serviceIndex;
106
122
  return (React.createElement(HeaderThElement, __assign({}, ariaAttrs, { key: key, colSpan: column.colSpan, rowSpan: column.rowSpan, className: className, style: style, columnId: column.id, navigatable: column.navigatable, onKeyDown: sortable && (function (e) { return _this.cellKeyDown(e, column); }) || undefined }),
107
- column.headerCell && React.createElement(column.headerCell, __assign({}, headerCellProps)),
108
- !column.headerCell && (React.createElement("span", { className: 'k-cell-inner' },
109
- React.createElement(GridHeaderCell, __assign({}, headerCellProps)),
110
- columnMenu &&
111
- React.createElement(ColumnMenu, { key: 0, column: {
112
- field: column.field,
113
- filter: column.filter
114
- }, sortable: sortable && _this.props.sortable, sort: _this.props.sort, onSortChange: _this.props.sortChange, filter: _this.props.filter, filterable: _this.props.filterable && column.filterable, filterOperators: _this.props.filterOperators, onFilterChange: _this.props.filterChange, group: _this.props.group, groupable: _this.props.groupable, onGroupChange: _this.props.groupChange, render: columnMenu }))),
123
+ column.headerCell ? React.createElement(column.headerCell, __assign({}, headerCellProps)) : React.createElement(GridHeaderCell, __assign({}, headerCellProps)),
115
124
  _this.props.columnResize && _this.props.columnResize.resizable && column.resizable &&
116
125
  React.createElement(ColumnResizer, { key: 2, resize: function (e, element, end) {
117
126
  return _this.props.columnResize &&
@@ -1,5 +1,6 @@
1
1
  /// <reference types="react" />
2
2
  import { HeaderCellBaseProps } from '@progress/kendo-react-data-tools';
3
+ import { GridColumnMenuWrapperProps } from '../columnMenu/GridColumnMenuWrapper';
3
4
  /**
4
5
  * The props of the GridHeaderCell component
5
6
  * ([more information]({% slug cells_grid %}#toc-header-cells)).
@@ -9,4 +10,8 @@ export interface GridHeaderCellProps extends HeaderCellBaseProps {
9
10
  * A function for overriding the default rendering of the header cell.
10
11
  */
11
12
  render?: (defaultRendering: React.ReactNode | null, props: GridHeaderCellProps) => React.ReactNode;
13
+ /**
14
+ * The props of the Grid column menu wrapper.
15
+ */
16
+ columnMenuWrapperProps: GridColumnMenuWrapperProps;
12
17
  }
package/dist/es/main.d.ts CHANGED
@@ -3,6 +3,7 @@ import { GridProps } from './interfaces/GridProps';
3
3
  import { GridColumn } from './GridColumn';
4
4
  import { GridColumnProps } from './interfaces/GridColumnProps';
5
5
  import { GridColumnMenuProps } from './interfaces/GridColumnMenuProps';
6
+ import { GridColumnMenuWrapper, GridColumnMenuWrapperProps } from './columnMenu/GridColumnMenuWrapper';
6
7
  import { GridColumnMenuGroup } from './columnMenu/GridColumnMenuGroup';
7
8
  import { GridColumnMenuSort } from './columnMenu/GridColumnMenuSort';
8
9
  import { GridColumnMenuFilter } from './columnMenu/GridColumnMenuFilter';
@@ -39,4 +40,4 @@ import { GridSelectableMode } from './interfaces/GridSelectableSettings';
39
40
  import { GridColumnMenuFilterUIProps } from './interfaces/GridColumnMenuFilterUIProps';
40
41
  import { GRID_COL_INDEX_ATTRIBUTE, GRID_ROW_INDEX_ATTRIBUTE } from './constants';
41
42
  import { getSelectedState, getSelectedStateFromKeyDown, setSelectedState } from '@progress/kendo-react-data-tools';
42
- export { Grid, GridProps, GridColumn, GridColumnProps, GridCellProps, GridCell, GridEditCell, GridGroupCell, GridHierarchyCell, GridDetailRow, GridDetailRowProps, GridRow, GridRowProps, GridFilterCell, GridFilterCellProps, GridHeaderCell, GridHeaderCellProps, GridColumnMenuProps, GridColumnMenuSort, GridColumnMenuFilter, GridColumnMenuGroup, GridColumnMenuItem, GridColumnMenuItemContent, GridColumnMenuItemGroup, GridColumnMenuFilterUI, GridColumnMenuFilterUIProps, GridColumnMenuFilterCell, GridColumnMenuCheckboxFilter, GridColumnMenuCheckboxFilterProps, GridToolbar, GridToolbarProps, GridNoRecords, GridNoRecordsProps, GridSortSettings, GridPagerSettings, GridGroupableSettings, GridFooterCellProps, GridSelectableMode, GridFilterOperators, getSelectedState, setSelectedState, getSelectedStateFromKeyDown, GRID_COL_INDEX_ATTRIBUTE, GRID_ROW_INDEX_ATTRIBUTE };
43
+ export { Grid, GridProps, GridColumn, GridColumnProps, GridCellProps, GridCell, GridEditCell, GridGroupCell, GridHierarchyCell, GridDetailRow, GridDetailRowProps, GridRow, GridRowProps, GridFilterCell, GridFilterCellProps, GridHeaderCell, GridHeaderCellProps, GridColumnMenuProps, GridColumnMenuSort, GridColumnMenuFilter, GridColumnMenuGroup, GridColumnMenuItem, GridColumnMenuItemContent, GridColumnMenuItemGroup, GridColumnMenuFilterUI, GridColumnMenuFilterUIProps, GridColumnMenuFilterCell, GridColumnMenuCheckboxFilter, GridColumnMenuCheckboxFilterProps, GridToolbar, GridToolbarProps, GridNoRecords, GridNoRecordsProps, GridSortSettings, GridPagerSettings, GridGroupableSettings, GridFooterCellProps, GridSelectableMode, GridFilterOperators, GridColumnMenuWrapper, GridColumnMenuWrapperProps, getSelectedState, setSelectedState, getSelectedStateFromKeyDown, GRID_COL_INDEX_ATTRIBUTE, GRID_ROW_INDEX_ATTRIBUTE };
package/dist/es/main.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import { Grid } from './Grid';
2
2
  import { GridColumn } from './GridColumn';
3
+ import { GridColumnMenuWrapper } from './columnMenu/GridColumnMenuWrapper';
3
4
  import { GridColumnMenuGroup } from './columnMenu/GridColumnMenuGroup';
4
5
  import { GridColumnMenuSort } from './columnMenu/GridColumnMenuSort';
5
6
  import { GridColumnMenuFilter } from './columnMenu/GridColumnMenuFilter';
@@ -21,4 +22,4 @@ import { GridColumnMenuItemContent } from './columnMenu/GridColumnMenuItemConten
21
22
  import { GridColumnMenuItemGroup } from './columnMenu/GridColumnMenuItemGroup';
22
23
  import { GRID_COL_INDEX_ATTRIBUTE, GRID_ROW_INDEX_ATTRIBUTE } from './constants';
23
24
  import { getSelectedState, getSelectedStateFromKeyDown, setSelectedState } from '@progress/kendo-react-data-tools';
24
- export { Grid, GridColumn, GridCell, GridEditCell, GridGroupCell, GridHierarchyCell, GridDetailRow, GridRow, GridFilterCell, GridHeaderCell, GridColumnMenuSort, GridColumnMenuFilter, GridColumnMenuGroup, GridColumnMenuItem, GridColumnMenuItemContent, GridColumnMenuItemGroup, GridColumnMenuFilterUI, GridColumnMenuFilterCell, GridColumnMenuCheckboxFilter, GridToolbar, GridNoRecords, getSelectedState, setSelectedState, getSelectedStateFromKeyDown, GRID_COL_INDEX_ATTRIBUTE, GRID_ROW_INDEX_ATTRIBUTE };
25
+ export { Grid, GridColumn, GridCell, GridEditCell, GridGroupCell, GridHierarchyCell, GridDetailRow, GridRow, GridFilterCell, GridHeaderCell, GridColumnMenuSort, GridColumnMenuFilter, GridColumnMenuGroup, GridColumnMenuItem, GridColumnMenuItemContent, GridColumnMenuItemGroup, GridColumnMenuFilterUI, GridColumnMenuFilterCell, GridColumnMenuCheckboxFilter, GridToolbar, GridNoRecords, GridColumnMenuWrapper, getSelectedState, setSelectedState, getSelectedStateFromKeyDown, GRID_COL_INDEX_ATTRIBUTE, GRID_ROW_INDEX_ATTRIBUTE };
@@ -5,7 +5,7 @@ export var packageMetadata = {
5
5
  name: '@progress/kendo-react-grid',
6
6
  productName: 'KendoReact',
7
7
  productCodes: ['KENDOUIREACT', 'KENDOUICOMPLETE'],
8
- publishDate: 1636547323,
8
+ publishDate: 1637181824,
9
9
  version: '',
10
10
  licensingDocsUrl: 'https://www.telerik.com/kendo-react-ui/my-license/?utm_medium=product&utm_source=kendoreact&utm_campaign=kendo-ui-react-purchase-license-keys-warning'
11
11
  };
@@ -1,10 +1,13 @@
1
1
  import * as React from 'react';
2
2
  import { GridColumnMenuProps } from '../interfaces/GridColumnMenuProps';
3
3
  /**
4
- * @hidden
4
+ * The props of the GridColumnMenuWrapper component.
5
5
  */
6
- export interface ExtendedGridColumnMenuProps extends GridColumnMenuProps {
7
- render: React.ComponentType<GridColumnMenuProps>;
6
+ export interface GridColumnMenuWrapperProps extends GridColumnMenuProps {
7
+ /**
8
+ * The component to be rendered as content of the Grid column menu.
9
+ */
10
+ columnMenu?: React.ComponentType<GridColumnMenuProps> | null;
8
11
  }
9
12
  /**
10
13
  * @hidden
@@ -13,9 +16,9 @@ export interface ColumnMenuStateProps {
13
16
  show: boolean;
14
17
  }
15
18
  /**
16
- * @hidden
19
+ * The GridColumnMenuWrapper component.
17
20
  */
18
- export declare class ColumnMenu extends React.Component<ExtendedGridColumnMenuProps, ColumnMenuStateProps> {
21
+ export declare class GridColumnMenuWrapper extends React.Component<GridColumnMenuWrapperProps, ColumnMenuStateProps> {
19
22
  readonly state: ColumnMenuStateProps;
20
23
  _anchor: HTMLDivElement | null;
21
24
  _content: HTMLDivElement | null;
@@ -36,11 +36,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
36
36
  var React = require("react");
37
37
  var kendo_react_popup_1 = require("@progress/kendo-react-popup");
38
38
  /**
39
- * @hidden
39
+ * The GridColumnMenuWrapper component.
40
40
  */
41
- var ColumnMenu = /** @class */ (function (_super) {
42
- __extends(ColumnMenu, _super);
43
- function ColumnMenu() {
41
+ var GridColumnMenuWrapper = /** @class */ (function (_super) {
42
+ __extends(GridColumnMenuWrapper, _super);
43
+ function GridColumnMenuWrapper() {
44
44
  var _this = _super !== null && _super.apply(this, arguments) || this;
45
45
  _this.state = {
46
46
  show: false
@@ -61,16 +61,15 @@ var ColumnMenu = /** @class */ (function (_super) {
61
61
  };
62
62
  return _this;
63
63
  }
64
- ColumnMenu.prototype.render = function () {
64
+ GridColumnMenuWrapper.prototype.render = function () {
65
65
  var _this = this;
66
- var _a = this.props, ChildComponent = _a.render, others = __rest(_a, ["render"]);
66
+ var _a = this.props, ColumnMenu = _a.columnMenu, others = __rest(_a, ["columnMenu"]);
67
67
  return (React.createElement(React.Fragment, null,
68
68
  React.createElement("div", { className: 'k-grid-column-menu k-grid-filter', ref: function (e) { return _this._anchor = e; }, onClick: this.anchorClick },
69
69
  React.createElement("span", { className: 'k-icon k-i-more-vertical' })),
70
70
  React.createElement(kendo_react_popup_1.Popup, { anchor: this._anchor, show: this.state.show },
71
- React.createElement("div", { ref: function (e) { return _this._content = e; }, className: 'k-grid-columnmenu-popup', tabIndex: 0, onBlur: this.blur, onFocus: this.focus, style: { outline: 'none' } },
72
- React.createElement(ChildComponent, __assign({}, others, { onCloseMenu: this.closeMenu }))))));
71
+ React.createElement("div", { ref: function (e) { return _this._content = e; }, className: 'k-grid-columnmenu-popup', tabIndex: 0, onBlur: this.blur, onFocus: this.focus, style: { outline: 'none' } }, ColumnMenu && (React.createElement(ColumnMenu, __assign({}, others, { onCloseMenu: this.closeMenu })))))));
73
72
  };
74
- return ColumnMenu;
73
+ return GridColumnMenuWrapper;
75
74
  }(React.Component));
76
- exports.ColumnMenu = ColumnMenu;
75
+ exports.GridColumnMenuWrapper = GridColumnMenuWrapper;
@@ -25,6 +25,7 @@ var __assign = (this && this.__assign) || function () {
25
25
  };
26
26
  Object.defineProperty(exports, "__esModule", { value: true });
27
27
  var React = require("react");
28
+ var GridColumnMenuWrapper_1 = require("../columnMenu/GridColumnMenuWrapper");
28
29
  /**
29
30
  * @example
30
31
  * ```jsx
@@ -77,12 +78,15 @@ var GridHeaderCell = /** @class */ (function (_super) {
77
78
  * @hidden
78
79
  */
79
80
  GridHeaderCell.prototype.render = function () {
81
+ var columnMenuWrapperProps = this.props.columnMenuWrapperProps;
80
82
  var clickProps = this.props.onClick ? {
81
83
  onClick: this.props.onClick
82
84
  } : {};
83
- var defaultRendering = (React.createElement("span", __assign({ className: 'k-link' }, clickProps),
84
- React.createElement("span", { className: 'k-column-title' }, this.props.title || this.props.field || '\u00A0'),
85
- this.props.children));
85
+ var defaultRendering = (React.createElement("span", { className: 'k-cell-inner' },
86
+ React.createElement("span", __assign({ className: 'k-link' }, clickProps),
87
+ React.createElement("span", { className: 'k-column-title' }, this.props.title || this.props.field || '\u00A0'),
88
+ this.props.children),
89
+ columnMenuWrapperProps.columnMenu && React.createElement(GridColumnMenuWrapper_1.GridColumnMenuWrapper, __assign({}, columnMenuWrapperProps))));
86
90
  if (this.props.render) {
87
91
  return this.props.render.call(undefined, defaultRendering, this.props);
88
92
  }
@@ -29,7 +29,6 @@ var GridSortSettings_1 = require("../interfaces/GridSortSettings");
29
29
  var ColumnResizer_1 = require("../drag/ColumnResizer");
30
30
  var ColumnDraggable_1 = require("../drag/ColumnDraggable");
31
31
  var GridHeaderCell_1 = require("./GridHeaderCell");
32
- var ColumnMenu_1 = require("../columnMenu/ColumnMenu");
33
32
  var kendo_react_common_1 = require("@progress/kendo-react-common");
34
33
  var kendo_react_data_tools_1 = require("@progress/kendo-react-data-tools");
35
34
  var kendo_react_intl_1 = require("@progress/kendo-react-intl");
@@ -71,16 +70,6 @@ var HeaderRow = /** @class */ (function (_super) {
71
70
  var sortable = _this.props.sortable && column.sortable;
72
71
  var sortIndex = _this.props.sort ? _this.props.sort.findIndex(function (s) { return s.field === column.field; }) : -1;
73
72
  var sortDir = sortIndex >= 0 ? ((_this.props.sort)[sortIndex].dir || 'none') : 'none';
74
- var headerCellProps = {
75
- field: column.field,
76
- onClick: sortable && (function (e) { return _this.cellClick(e, column); }) || undefined,
77
- selectionChange: _this.props.selectionChange,
78
- title: column.title,
79
- selectionValue: column.headerSelectionValue,
80
- render: _this.props.cellRender,
81
- children: _this.sortIcon(sortIndex),
82
- key: 1
83
- };
84
73
  var columnMenu = (column.columnMenu === null) ? null : (column.columnMenu || _this.props.columnMenu);
85
74
  var className = kendo_react_common_1.classNames({
86
75
  'k-first': column.kFirst,
@@ -104,16 +93,36 @@ var HeaderRow = /** @class */ (function (_super) {
104
93
  } : {
105
94
  'role': 'presentation'
106
95
  };
96
+ var columnMenuWrapperProps = {
97
+ column: {
98
+ field: column.field,
99
+ filter: column.filter
100
+ },
101
+ sortable: sortable && _this.props.sortable,
102
+ sort: _this.props.sort,
103
+ onSortChange: _this.props.sortChange,
104
+ filter: _this.props.filter,
105
+ filterable: _this.props.filterable && column.filterable,
106
+ filterOperators: _this.props.filterOperators,
107
+ onFilterChange: _this.props.filterChange,
108
+ group: _this.props.group,
109
+ groupable: _this.props.groupable,
110
+ onGroupChange: _this.props.groupChange,
111
+ columnMenu: columnMenu
112
+ };
113
+ var headerCellProps = {
114
+ field: column.field,
115
+ onClick: sortable && (function (e) { return _this.cellClick(e, column); }) || undefined,
116
+ selectionChange: _this.props.selectionChange,
117
+ title: column.title,
118
+ selectionValue: column.headerSelectionValue,
119
+ render: _this.props.cellRender,
120
+ children: _this.sortIcon(sortIndex),
121
+ columnMenuWrapperProps: columnMenuWrapperProps
122
+ };
107
123
  var key = (column.declarationIndex >= 0) ? ++_this.index : --_this.serviceIndex;
108
124
  return (React.createElement(kendo_react_data_tools_1.HeaderThElement, __assign({}, ariaAttrs, { key: key, colSpan: column.colSpan, rowSpan: column.rowSpan, className: className, style: style, columnId: column.id, navigatable: column.navigatable, onKeyDown: sortable && (function (e) { return _this.cellKeyDown(e, column); }) || undefined }),
109
- column.headerCell && React.createElement(column.headerCell, __assign({}, headerCellProps)),
110
- !column.headerCell && (React.createElement("span", { className: 'k-cell-inner' },
111
- React.createElement(GridHeaderCell_1.GridHeaderCell, __assign({}, headerCellProps)),
112
- columnMenu &&
113
- React.createElement(ColumnMenu_1.ColumnMenu, { key: 0, column: {
114
- field: column.field,
115
- filter: column.filter
116
- }, sortable: sortable && _this.props.sortable, sort: _this.props.sort, onSortChange: _this.props.sortChange, filter: _this.props.filter, filterable: _this.props.filterable && column.filterable, filterOperators: _this.props.filterOperators, onFilterChange: _this.props.filterChange, group: _this.props.group, groupable: _this.props.groupable, onGroupChange: _this.props.groupChange, render: columnMenu }))),
125
+ column.headerCell ? React.createElement(column.headerCell, __assign({}, headerCellProps)) : React.createElement(GridHeaderCell_1.GridHeaderCell, __assign({}, headerCellProps)),
117
126
  _this.props.columnResize && _this.props.columnResize.resizable && column.resizable &&
118
127
  React.createElement(ColumnResizer_1.ColumnResizer, { key: 2, resize: function (e, element, end) {
119
128
  return _this.props.columnResize &&
@@ -1,5 +1,6 @@
1
1
  /// <reference types="react" />
2
2
  import { HeaderCellBaseProps } from '@progress/kendo-react-data-tools';
3
+ import { GridColumnMenuWrapperProps } from '../columnMenu/GridColumnMenuWrapper';
3
4
  /**
4
5
  * The props of the GridHeaderCell component
5
6
  * ([more information]({% slug cells_grid %}#toc-header-cells)).
@@ -9,4 +10,8 @@ export interface GridHeaderCellProps extends HeaderCellBaseProps {
9
10
  * A function for overriding the default rendering of the header cell.
10
11
  */
11
12
  render?: (defaultRendering: React.ReactNode | null, props: GridHeaderCellProps) => React.ReactNode;
13
+ /**
14
+ * The props of the Grid column menu wrapper.
15
+ */
16
+ columnMenuWrapperProps: GridColumnMenuWrapperProps;
12
17
  }
@@ -3,6 +3,7 @@ import { GridProps } from './interfaces/GridProps';
3
3
  import { GridColumn } from './GridColumn';
4
4
  import { GridColumnProps } from './interfaces/GridColumnProps';
5
5
  import { GridColumnMenuProps } from './interfaces/GridColumnMenuProps';
6
+ import { GridColumnMenuWrapper, GridColumnMenuWrapperProps } from './columnMenu/GridColumnMenuWrapper';
6
7
  import { GridColumnMenuGroup } from './columnMenu/GridColumnMenuGroup';
7
8
  import { GridColumnMenuSort } from './columnMenu/GridColumnMenuSort';
8
9
  import { GridColumnMenuFilter } from './columnMenu/GridColumnMenuFilter';
@@ -39,4 +40,4 @@ import { GridSelectableMode } from './interfaces/GridSelectableSettings';
39
40
  import { GridColumnMenuFilterUIProps } from './interfaces/GridColumnMenuFilterUIProps';
40
41
  import { GRID_COL_INDEX_ATTRIBUTE, GRID_ROW_INDEX_ATTRIBUTE } from './constants';
41
42
  import { getSelectedState, getSelectedStateFromKeyDown, setSelectedState } from '@progress/kendo-react-data-tools';
42
- export { Grid, GridProps, GridColumn, GridColumnProps, GridCellProps, GridCell, GridEditCell, GridGroupCell, GridHierarchyCell, GridDetailRow, GridDetailRowProps, GridRow, GridRowProps, GridFilterCell, GridFilterCellProps, GridHeaderCell, GridHeaderCellProps, GridColumnMenuProps, GridColumnMenuSort, GridColumnMenuFilter, GridColumnMenuGroup, GridColumnMenuItem, GridColumnMenuItemContent, GridColumnMenuItemGroup, GridColumnMenuFilterUI, GridColumnMenuFilterUIProps, GridColumnMenuFilterCell, GridColumnMenuCheckboxFilter, GridColumnMenuCheckboxFilterProps, GridToolbar, GridToolbarProps, GridNoRecords, GridNoRecordsProps, GridSortSettings, GridPagerSettings, GridGroupableSettings, GridFooterCellProps, GridSelectableMode, GridFilterOperators, getSelectedState, setSelectedState, getSelectedStateFromKeyDown, GRID_COL_INDEX_ATTRIBUTE, GRID_ROW_INDEX_ATTRIBUTE };
43
+ export { Grid, GridProps, GridColumn, GridColumnProps, GridCellProps, GridCell, GridEditCell, GridGroupCell, GridHierarchyCell, GridDetailRow, GridDetailRowProps, GridRow, GridRowProps, GridFilterCell, GridFilterCellProps, GridHeaderCell, GridHeaderCellProps, GridColumnMenuProps, GridColumnMenuSort, GridColumnMenuFilter, GridColumnMenuGroup, GridColumnMenuItem, GridColumnMenuItemContent, GridColumnMenuItemGroup, GridColumnMenuFilterUI, GridColumnMenuFilterUIProps, GridColumnMenuFilterCell, GridColumnMenuCheckboxFilter, GridColumnMenuCheckboxFilterProps, GridToolbar, GridToolbarProps, GridNoRecords, GridNoRecordsProps, GridSortSettings, GridPagerSettings, GridGroupableSettings, GridFooterCellProps, GridSelectableMode, GridFilterOperators, GridColumnMenuWrapper, GridColumnMenuWrapperProps, getSelectedState, setSelectedState, getSelectedStateFromKeyDown, GRID_COL_INDEX_ATTRIBUTE, GRID_ROW_INDEX_ATTRIBUTE };
package/dist/npm/main.js CHANGED
@@ -4,6 +4,8 @@ var Grid_1 = require("./Grid");
4
4
  exports.Grid = Grid_1.Grid;
5
5
  var GridColumn_1 = require("./GridColumn");
6
6
  exports.GridColumn = GridColumn_1.GridColumn;
7
+ var GridColumnMenuWrapper_1 = require("./columnMenu/GridColumnMenuWrapper");
8
+ exports.GridColumnMenuWrapper = GridColumnMenuWrapper_1.GridColumnMenuWrapper;
7
9
  var GridColumnMenuGroup_1 = require("./columnMenu/GridColumnMenuGroup");
8
10
  exports.GridColumnMenuGroup = GridColumnMenuGroup_1.GridColumnMenuGroup;
9
11
  var GridColumnMenuSort_1 = require("./columnMenu/GridColumnMenuSort");
@@ -7,7 +7,7 @@ exports.packageMetadata = {
7
7
  name: '@progress/kendo-react-grid',
8
8
  productName: 'KendoReact',
9
9
  productCodes: ['KENDOUIREACT', 'KENDOUICOMPLETE'],
10
- publishDate: 1636547323,
10
+ publishDate: 1637181824,
11
11
  version: '',
12
12
  licensingDocsUrl: 'https://www.telerik.com/kendo-react-ui/my-license/?utm_medium=product&utm_source=kendoreact&utm_campaign=kendo-ui-react-purchase-license-keys-warning'
13
13
  };