@progress/kendo-react-data-tools 5.5.0-dev.202206271315 → 5.5.0

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.
@@ -51,6 +51,7 @@ var ColumnMenuWrapper = function (props) {
51
51
  var anchor = React.useRef(null);
52
52
  var popupRef = React.useRef(null);
53
53
  var blurTimeout = React.useRef(null);
54
+ var willBlur = React.useRef(false);
54
55
  var menuFilter = React.useCallback(function () {
55
56
  return (filter || []).find(function (f) { return f.filters.every(function (inF) { return !isCompositeFilterDescriptor(inF) && inF.field === field; }); });
56
57
  }, [filter, field]);
@@ -58,10 +59,17 @@ var ColumnMenuWrapper = function (props) {
58
59
  setShow(false);
59
60
  }, []);
60
61
  var onBlur = React.useCallback(function () {
62
+ if (willBlur.current) {
63
+ willBlur.current = false;
64
+ return;
65
+ }
61
66
  clearTimeout(blurTimeout.current);
62
67
  blurTimeout.current = window.setTimeout(function () { closeMenu(); });
63
68
  }, [closeMenu]);
64
69
  var onFocus = React.useCallback(function () { return clearTimeout(blurTimeout.current); }, []);
70
+ var onAnchorMouseDown = React.useCallback(function (event) {
71
+ willBlur.current = show && event.currentTarget === anchor.current;
72
+ }, [show]);
65
73
  var onColumnMenuButtonClick = React.useCallback(function () {
66
74
  setShow(!show);
67
75
  if (field && initialFilter) {
@@ -156,7 +164,7 @@ var ColumnMenuWrapper = function (props) {
156
164
  SecondFilterComponent &&
157
165
  React.createElement(SecondFilterComponent, { filter: currentFilter.filters[1], onFilterChange: filterChange })))) : null;
158
166
  var menuItems = [sorting, filtering];
159
- var button = (React.createElement("span", { ref: anchor, onClick: onColumnMenuButtonClick, className: 'k-grid-column-menu k-grid-filter' + (Boolean(menuFilter()) ? ' k-active' : ''), key: "button" },
167
+ var button = (React.createElement("span", { ref: anchor, onClick: onColumnMenuButtonClick, onMouseDown: onAnchorMouseDown, className: 'k-grid-column-menu k-grid-filter' + (Boolean(menuFilter()) ? ' k-active' : ''), key: "button" },
160
168
  React.createElement("span", { className: "k-icon k-i-more-vertical" })));
161
169
  var popup = (React.createElement(Popup, { anchor: anchor.current, show: show, key: "popup" },
162
170
  React.createElement("div", { className: "k-grid-columnmenu-popup", ref: popupRef, tabIndex: 0, onBlur: onBlur, onFocus: onFocus, style: { outline: 'none' } }, props.itemsRender ?
@@ -5,7 +5,7 @@ export var packageMetadata = {
5
5
  name: '@progress/kendo-react-data-tools',
6
6
  productName: 'KendoReact',
7
7
  productCodes: ['KENDOUIREACT', 'KENDOUICOMPLETE'],
8
- publishDate: 1656334675,
8
+ publishDate: 1656667591,
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
  };
@@ -54,6 +54,7 @@ var ColumnMenuWrapper = function (props) {
54
54
  var anchor = React.useRef(null);
55
55
  var popupRef = React.useRef(null);
56
56
  var blurTimeout = React.useRef(null);
57
+ var willBlur = React.useRef(false);
57
58
  var menuFilter = React.useCallback(function () {
58
59
  return (filter || []).find(function (f) { return f.filters.every(function (inF) { return !(0, kendo_data_query_1.isCompositeFilterDescriptor)(inF) && inF.field === field; }); });
59
60
  }, [filter, field]);
@@ -61,10 +62,17 @@ var ColumnMenuWrapper = function (props) {
61
62
  setShow(false);
62
63
  }, []);
63
64
  var onBlur = React.useCallback(function () {
65
+ if (willBlur.current) {
66
+ willBlur.current = false;
67
+ return;
68
+ }
64
69
  clearTimeout(blurTimeout.current);
65
70
  blurTimeout.current = window.setTimeout(function () { closeMenu(); });
66
71
  }, [closeMenu]);
67
72
  var onFocus = React.useCallback(function () { return clearTimeout(blurTimeout.current); }, []);
73
+ var onAnchorMouseDown = React.useCallback(function (event) {
74
+ willBlur.current = show && event.currentTarget === anchor.current;
75
+ }, [show]);
68
76
  var onColumnMenuButtonClick = React.useCallback(function () {
69
77
  setShow(!show);
70
78
  if (field && initialFilter) {
@@ -159,7 +167,7 @@ var ColumnMenuWrapper = function (props) {
159
167
  SecondFilterComponent &&
160
168
  React.createElement(SecondFilterComponent, { filter: currentFilter.filters[1], onFilterChange: filterChange })))) : null;
161
169
  var menuItems = [sorting, filtering];
162
- var button = (React.createElement("span", { ref: anchor, onClick: onColumnMenuButtonClick, className: 'k-grid-column-menu k-grid-filter' + (Boolean(menuFilter()) ? ' k-active' : ''), key: "button" },
170
+ var button = (React.createElement("span", { ref: anchor, onClick: onColumnMenuButtonClick, onMouseDown: onAnchorMouseDown, className: 'k-grid-column-menu k-grid-filter' + (Boolean(menuFilter()) ? ' k-active' : ''), key: "button" },
163
171
  React.createElement("span", { className: "k-icon k-i-more-vertical" })));
164
172
  var popup = (React.createElement(kendo_react_popup_1.Popup, { anchor: anchor.current, show: show, key: "popup" },
165
173
  React.createElement("div", { className: "k-grid-columnmenu-popup", ref: popupRef, tabIndex: 0, onBlur: onBlur, onFocus: onFocus, style: { outline: 'none' } }, props.itemsRender ?
@@ -8,7 +8,7 @@ exports.packageMetadata = {
8
8
  name: '@progress/kendo-react-data-tools',
9
9
  productName: 'KendoReact',
10
10
  productCodes: ['KENDOUIREACT', 'KENDOUICOMPLETE'],
11
- publishDate: 1656334675,
11
+ publishDate: 1656667591,
12
12
  version: '',
13
13
  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'
14
14
  };