@progress/kendo-react-grid 7.4.0-develop.8 → 7.4.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.
@@ -5,4 +5,4 @@
5
5
  * Licensed under commercial license. See LICENSE.md in the package root for more information
6
6
  *-------------------------------------------------------------------------------------------
7
7
  */
8
- "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const b=require("react"),f=require("../utils/index.js"),h=require("@progress/kendo-react-inputs"),E=require("@progress/kendo-react-dateinputs"),g=require("@progress/kendo-react-common"),y=require("@progress/kendo-react-data-tools"),r=require("../constants/index.js");function N(e){const n=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const a in e)if(a!=="default"){const i=Object.getOwnPropertyDescriptor(e,a);Object.defineProperty(n,a,i.get?i:{enumerable:!0,get:()=>e[a]})}}return n.default=e,Object.freeze(n)}const t=N(b),S=e=>{const n=f.getNestedValue(e.field,e.dataItem);let a=null;const i=g.classNames("k-table-td","k-grid-edit-cell",{"k-selected":e.isSelected},e.className),I=g.useId(),u=y.useTableKeyboardNavigation(e.id);let c=null,d=null;const s=t.useCallback(l=>{if(e.onChange){const k=l.target.type==="checkbox"?l.target.checked:l.target.value;e.onChange({dataItem:e.dataItem,dataIndex:e.dataIndex,field:e.field,syntheticEvent:l,value:k})}},[e.onChange,e.dataItem,e.dataIndex,e.field]),o=t.useCallback(l=>{e.onContextMenu&&e.onContextMenu.call(void 0,l,e.dataItem,e.field)},[e.onContextMenu,e.dataItem,e.field]),C=t.useCallback(l=>{e.onChange&&e.onChange({dataItem:e.dataItem,dataIndex:e.dataIndex,field:e.field,syntheticEvent:l.syntheticEvent,value:l.value})},[e.onChange,e.dataItem,e.dataIndex,e.field]);switch(e.editor){case"numeric":{c={onContextMenu:o,colSpan:e.colSpan,style:e.style,className:i,"aria-colindex":e.ariaColumnIndex,"aria-selected":e.isSelected,[r.GRID_COL_INDEX_ATTRIBUTE]:e.columnIndex,role:"gridcell",...u},d=t.createElement(h.NumericTextBox,{width:"100%",value:n===void 0?null:n,onChange:C}),a=t.createElement("td",{...c},d);break}case"date":c={onContextMenu:o,colSpan:e.colSpan,style:e.style,className:i,"aria-colindex":e.ariaColumnIndex,"aria-selected":e.isSelected,[r.GRID_COL_INDEX_ATTRIBUTE]:e.columnIndex,role:"gridcell",...u},d=t.createElement(E.DatePicker,{width:"100%",value:n,onChange:C}),a=t.createElement("td",{...c},d);break;case"boolean":c={onContextMenu:o,colSpan:e.colSpan,style:e.style,className:i,"aria-colindex":e.ariaColumnIndex,"aria-selected":e.isSelected,[r.GRID_COL_INDEX_ATTRIBUTE]:e.columnIndex,role:"gridcell",...u},d=[t.createElement("span",{key:1,className:"k-checkbox-wrap"},t.createElement("input",{checked:n||!1,id:I,type:"checkbox",className:"k-checkbox k-checkbox-md k-rounded-md",onChange:s})),t.createElement("label",{className:"k-checkbox-label",htmlFor:I,key:2})],a=t.createElement("td",{...c},d);break;default:c={onContextMenu:o,colSpan:e.colSpan,style:e.style,className:i,"aria-colindex":e.ariaColumnIndex,"aria-selected":e.isSelected,[r.GRID_COL_INDEX_ATTRIBUTE]:e.columnIndex,role:"gridcell",...u},d=t.createElement("input",{style:{width:"100%"},className:"k-input",value:n||"",onChange:s}),a=t.createElement("td",{...c},d)}const x=e.editor||"text",m=e.cells;if(m&&m.edit&&m.edit[x]){const l=m.edit[x];return t.createElement(l,{...e,tdProps:c},d)}return e.render?e.render.call(void 0,a,e):a};exports.GridEditCell=S;
8
+ "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const T=require("react"),b=require("../utils/index.js"),N=require("@progress/kendo-react-inputs"),f=require("@progress/kendo-react-dateinputs"),g=require("@progress/kendo-react-common"),E=require("@progress/kendo-react-data-tools"),r=require("../constants/index.js");function _(e){const n=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const a in e)if(a!=="default"){const i=Object.getOwnPropertyDescriptor(e,a);Object.defineProperty(n,a,i.get?i:{enumerable:!0,get:()=>e[a]})}}return n.default=e,Object.freeze(n)}const t=_(T),h=e=>{const n=b.getNestedValue(e.field,e.dataItem);let a=null;const i=g.classNames("k-table-td","k-grid-edit-cell",{"k-selected":e.isSelected},e.className),I=g.useId(),u=E.useTableKeyboardNavigation(e.id);let c=null,d=null;const C=t.useCallback(l=>{if(e.onChange){const k=l.target.type==="checkbox"?l.target.checked:l.target.value;e.onChange({dataItem:e.dataItem,dataIndex:e.dataIndex,field:e.field,syntheticEvent:l,value:k})}},[e.onChange,e.dataItem,e.dataIndex,e.field]),o=t.useCallback(l=>{e.onContextMenu&&e.onContextMenu.call(void 0,l,e.dataItem,e.field)},[e.onContextMenu,e.dataItem,e.field]),s=t.useCallback(l=>{e.onChange&&e.onChange({dataItem:e.dataItem,dataIndex:e.dataIndex,field:e.field,syntheticEvent:l.syntheticEvent,value:l.value})},[e.onChange,e.dataItem,e.dataIndex,e.field]);switch(e.editor){case"numeric":{c={onContextMenu:o,colSpan:e.colSpan,style:e.style,className:i,"aria-colindex":e.ariaColumnIndex,"aria-selected":e.isSelected,[r.GRID_COL_INDEX_ATTRIBUTE]:e.columnIndex,role:"gridcell",...u},d=t.createElement(N.NumericTextBox,{value:n===void 0?null:n,onChange:s,[E.TABLE_PREVENT_SELECTION_ELEMENT]:!0}),a=t.createElement("td",{...c},d);break}case"date":c={onContextMenu:o,colSpan:e.colSpan,style:e.style,className:i,"aria-colindex":e.ariaColumnIndex,"aria-selected":e.isSelected,[r.GRID_COL_INDEX_ATTRIBUTE]:e.columnIndex,role:"gridcell",...u},d=t.createElement(f.DatePicker,{value:n,onChange:s,[E.TABLE_PREVENT_SELECTION_ELEMENT]:!0}),a=t.createElement("td",{...c},d);break;case"boolean":c={onContextMenu:o,colSpan:e.colSpan,style:e.style,className:i,"aria-colindex":e.ariaColumnIndex,"aria-selected":e.isSelected,[r.GRID_COL_INDEX_ATTRIBUTE]:e.columnIndex,role:"gridcell",...u},d=[t.createElement("span",{key:1,className:"k-checkbox-wrap"},t.createElement("input",{checked:n||!1,id:I,type:"checkbox",className:"k-checkbox k-checkbox-md k-rounded-md",onChange:C})),t.createElement("label",{className:"k-checkbox-label",htmlFor:I,key:2})],a=t.createElement("td",{...c},d);break;default:c={onContextMenu:o,colSpan:e.colSpan,style:e.style,className:i,"aria-colindex":e.ariaColumnIndex,"aria-selected":e.isSelected,[r.GRID_COL_INDEX_ATTRIBUTE]:e.columnIndex,role:"gridcell",...u},d=t.createElement("input",{style:{width:"100%"},className:"k-input",value:n||"",onChange:C,[E.TABLE_PREVENT_SELECTION_ELEMENT]:!0}),a=t.createElement("td",{...c},d)}const x=e.editor||"text",m=e.cells;if(m&&m.edit&&m.edit[x]){const l=m.edit[x];return t.createElement(l,{...e,tdProps:c},d)}return e.render?e.render.call(void 0,a,e):a};exports.GridEditCell=h;
@@ -7,20 +7,20 @@
7
7
  */
8
8
  "use client";
9
9
  import * as a from "react";
10
- import { getNestedValue as f } from "../utils/index.mjs";
11
- import { NumericTextBox as b } from "@progress/kendo-react-inputs";
12
- import { DatePicker as r } from "@progress/kendo-react-dateinputs";
10
+ import { getNestedValue as r } from "../utils/index.mjs";
11
+ import { NumericTextBox as E } from "@progress/kendo-react-inputs";
12
+ import { DatePicker as b } from "@progress/kendo-react-dateinputs";
13
13
  import { classNames as s, useId as N } from "@progress/kendo-react-common";
14
- import { useTableKeyboardNavigation as S } from "@progress/kendo-react-data-tools";
14
+ import { useTableKeyboardNavigation as S, TABLE_PREVENT_SELECTION_ELEMENT as C } from "@progress/kendo-react-data-tools";
15
15
  import { GRID_COL_INDEX_ATTRIBUTE as x } from "../constants/index.mjs";
16
- const R = (e) => {
17
- const c = f(e.field, e.dataItem);
16
+ const L = (e) => {
17
+ const c = r(e.field, e.dataItem);
18
18
  let d = null;
19
19
  const i = s("k-table-td", "k-grid-edit-cell", {
20
20
  "k-selected": e.isSelected
21
- }, e.className), C = N(), m = S(e.id);
21
+ }, e.className), I = N(), m = S(e.id);
22
22
  let l = null, n = null;
23
- const I = a.useCallback(
23
+ const k = a.useCallback(
24
24
  (t) => {
25
25
  if (e.onChange) {
26
26
  const h = t.target.type === "checkbox" ? t.target.checked : t.target.value;
@@ -36,7 +36,7 @@ const R = (e) => {
36
36
  [e.onChange, e.dataItem, e.dataIndex, e.field]
37
37
  ), u = a.useCallback((t) => {
38
38
  e.onContextMenu && e.onContextMenu.call(void 0, t, e.dataItem, e.field);
39
- }, [e.onContextMenu, e.dataItem, e.field]), k = a.useCallback(
39
+ }, [e.onContextMenu, e.dataItem, e.field]), g = a.useCallback(
40
40
  (t) => {
41
41
  e.onChange && e.onChange({
42
42
  dataItem: e.dataItem,
@@ -61,11 +61,11 @@ const R = (e) => {
61
61
  role: "gridcell",
62
62
  ...m
63
63
  }, n = /* @__PURE__ */ a.createElement(
64
- b,
64
+ E,
65
65
  {
66
- width: "100%",
67
66
  value: c === void 0 ? null : c,
68
- onChange: k
67
+ onChange: g,
68
+ [C]: !0
69
69
  }
70
70
  ), d = /* @__PURE__ */ a.createElement(
71
71
  "td",
@@ -88,11 +88,11 @@ const R = (e) => {
88
88
  role: "gridcell",
89
89
  ...m
90
90
  }, n = /* @__PURE__ */ a.createElement(
91
- r,
91
+ b,
92
92
  {
93
- width: "100%",
94
93
  value: c,
95
- onChange: k
94
+ onChange: g,
95
+ [C]: !0
96
96
  }
97
97
  ), d = /* @__PURE__ */ a.createElement(
98
98
  "td",
@@ -118,13 +118,13 @@ const R = (e) => {
118
118
  "input",
119
119
  {
120
120
  checked: c || !1,
121
- id: C,
121
+ id: I,
122
122
  type: "checkbox",
123
123
  className: "k-checkbox k-checkbox-md k-rounded-md",
124
- onChange: I
124
+ onChange: k
125
125
  }
126
126
  )),
127
- /* @__PURE__ */ a.createElement("label", { className: "k-checkbox-label", htmlFor: C, key: 2 })
127
+ /* @__PURE__ */ a.createElement("label", { className: "k-checkbox-label", htmlFor: I, key: 2 })
128
128
  ], d = /* @__PURE__ */ a.createElement(
129
129
  "td",
130
130
  {
@@ -150,7 +150,8 @@ const R = (e) => {
150
150
  style: { width: "100%" },
151
151
  className: "k-input",
152
152
  value: c || "",
153
- onChange: I
153
+ onChange: k,
154
+ [C]: !0
154
155
  }
155
156
  ), d = /* @__PURE__ */ a.createElement(
156
157
  "td",
@@ -160,13 +161,13 @@ const R = (e) => {
160
161
  n
161
162
  );
162
163
  }
163
- const g = e.editor || "text", o = e.cells;
164
- if (o && o.edit && o.edit[g]) {
165
- const t = o.edit[g];
164
+ const f = e.editor || "text", o = e.cells;
165
+ if (o && o.edit && o.edit[f]) {
166
+ const t = o.edit[f];
166
167
  return /* @__PURE__ */ a.createElement(t, { ...e, tdProps: l }, n);
167
168
  }
168
169
  return e.render ? e.render.call(void 0, d, e) : d;
169
170
  };
170
171
  export {
171
- R as GridEditCell
172
+ L as GridEditCell
172
173
  };
@@ -5,4 +5,4 @@
5
5
  * Licensed under commercial license. See LICENSE.md in the package root for more information
6
6
  *-------------------------------------------------------------------------------------------
7
7
  */
8
- "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const P=require("react"),E=require("@progress/kendo-data-query"),B=require("./GridColumnMenuItem.js"),L=require("./GridColumnMenuItemGroup.js"),U=require("./GridColumnMenuItemContent.js"),M=require("@progress/kendo-react-intl"),a=require("../filterCommon.js"),f=require("../messages/index.js"),T=require("./GridColumnMenuFilterUI.js"),b=require("@progress/kendo-react-buttons"),j=require("@progress/kendo-svg-icons");function w(c){const i=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(c){for(const l in c)if(l!=="default"){const e=Object.getOwnPropertyDescriptor(c,l);Object.defineProperty(i,l,e.get?e:{enumerable:!0,get:()=>c[l]})}}return i.default=c,Object.freeze(i)}const u=w(P),g=c=>c||{filters:[],logic:"and"},h=(c,i)=>g(i).filters.filter(t=>E.isCompositeFilterDescriptor(t)?t.filters&&t.filters.length&&t.filters.length<=2&&!t.filters.find(r=>E.isCompositeFilterDescriptor(r)||r.field!==c):!1)[0]||null,v=class v extends u.Component{constructor(i){super(i),this.removeGroup=(e,t)=>{const r=[...t.filters],n=r.findIndex(o=>o===e);return n>-1&&r.splice(n,1),{...t,filters:r}},this.insertGroup=(e,t)=>({...t,filters:[e,...t.filters]}),this.isControlled=()=>this.props.expanded!==void 0,this.onFilterExpand=()=>{const e=this.isControlled(),t=!(e?this.props.expanded:this.state.expanded);this.props.onExpandChange&&this.props.onExpandChange(t),e||this.setState({expanded:t})},this.firstFilterChange=e=>{this.filterChange(0,e)},this.secondFilterChange=e=>{this.filterChange(1,e)},this.filterChange=(e,t)=>{const r=this.state.filterGroup.filters.map((n,o)=>o===e?{...n,value:t.value,operator:t.operator}:n);this.setState({filterGroup:{...this.state.filterGroup,filters:r}})},this.logicChange=e=>{this.setState({filterGroup:{...this.state.filterGroup,logic:e.target.value.operator}})},this.clear=e=>{if(e.preventDefault(),!this.props.onFilterChange)return;const t=this.props.column.field,r=g(this.props.filter),n=h(t,this.props.filter),o=r.filters.filter(s=>s!==n);o.length?this.props.onFilterChange({...r,filters:o},e):this.props.onFilterChange(null,e),this.props.onCloseMenu&&this.props.onCloseMenu()},this.currentFilterGroup=()=>({...this.state.filterGroup,filters:this.state.filterGroup.filters.filter(e=>e.value!==void 0&&e.value!==null&&e.value!==""||e.value===null&&e.operator)}),this.submit=e=>{if(e.preventDefault(),!this.props.onFilterChange)return;const t=this.props.column.field,r=g(this.props.filter),n=h(t,this.props.filter),o=this.currentFilterGroup();let s=null;if(n&&o.filters.length>0){const p=r.filters.map(d=>d===n?o:d);s={...r,filters:p}}else if(o.filters.length===0){const p=r.filters.filter(d=>d!==n);p.length&&(s={...r,filters:p})}else s={...r,filters:[...r.filters,o]};this.props.onFilterChange(s,e),this.props.onCloseMenu&&this.props.onCloseMenu()};let l;if(i.column&&i.column.field){const e=a.getFilterType(i.column.filter),t=a.getDefaultOperator(i.filterOperators,e);l=h(i.column.field,i.filter),l=l?{...l,filters:l.filters.map(r=>({...r}))}:{logic:"and",filters:[{field:i.column.field,operator:t,value:a.IsUnaryFilter(t)?null:void 0},{field:i.column.field,operator:t,value:a.IsUnaryFilter(t)?null:void 0}]},l.filters.filter(r=>r.field===i.column.field).length===1&&l.filters.splice(1,0,{field:i.column.field,operator:t})}this.state={expanded:i.expanded||!1,filterGroup:l}}render(){const{column:i,filterUI:l,hideSecondFilter:e,filterOperators:t}=this.props;if(!i||!i.field)return u.createElement("div",null);const r=a.getFilterType(i.filter),n=e!==void 0?e:a.defaultHideSecondFilter[r],o=M.provideLocalizationService(this),s=this.state.filterGroup.filters,p=a.operatorMap(t[r],o),d=a.operatorMap(a.booleanFilterValues,o),D={field:i.field,value:s[0].value,operator:s[0].operator,operators:p,booleanValues:d,onChange:this.firstFilterChange,filterType:r},O={field:i.field,value:s[1].value,operator:s[1].operator,operators:p,booleanValues:d,onChange:this.secondFilterChange,filterType:r},G=this.state.filterGroup.logic,y=a.operatorMap(a.filterLogicList,o),C={value:y.find(F=>F.operator===(G===null?"":G)),onChange:this.logicChange,data:y},I=l,S={firstFilterProps:D,secondFilterProps:O,logicData:C.data,logicValue:C.value,onLogicChange:C.onChange,hideSecondFilter:n},k=this.currentFilterGroup().filters.length!==0||a.IsUnaryFilter(s[0].operator)||a.IsUnaryFilter(s[1].operator),q=this.isControlled()?this.props.expanded:this.state.expanded,x=this.props.alwaysExpand;return u.createElement(L.GridColumnMenuItemGroup,null,!x&&u.createElement(B.GridColumnMenuItem,{title:o.toLanguageString(f.filterTitle,f.messages[f.filterTitle]),iconClass:"k-i-filter",svgIcon:j.filterIcon,onClick:this.onFilterExpand}),u.createElement(U.GridColumnMenuItemContent,{show:x||!!q},u.createElement("form",{className:"k-filter-menu",onSubmit:this.submit,onReset:this.clear,onKeyDown:F=>F.stopPropagation()},u.createElement("div",{className:"k-filter-menu-container"},I?u.createElement(I,{...S}):u.createElement(T.GridColumnMenuFilterUI,{...S}),u.createElement("div",{className:"k-actions k-actions-stretched"},u.createElement(b.Button,{themeColor:"primary",disabled:!k},o.toLanguageString(f.filterSubmitButton,f.messages[f.filterSubmitButton])),u.createElement(b.Button,{type:"reset"},o.toLanguageString(f.filterClearButton,f.messages[f.filterClearButton])))))))}};v.active=(i,l)=>!!h(i,l);let m=v;M.registerForLocalization(m);exports.GridColumnMenuFilter=m;exports.filterGroupByField=h;exports.rootFilterOrDefault=g;
8
+ "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const B=require("react"),y=require("@progress/kendo-data-query"),L=require("./GridColumnMenuItem.js"),P=require("./GridColumnMenuItemGroup.js"),U=require("./GridColumnMenuItemContent.js"),b=require("@progress/kendo-react-intl"),a=require("../filterCommon.js"),f=require("../messages/index.js"),T=require("./GridColumnMenuFilterUI.js"),E=require("@progress/kendo-react-buttons"),j=require("@progress/kendo-svg-icons");function R(c){const i=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(c){for(const l in c)if(l!=="default"){const e=Object.getOwnPropertyDescriptor(c,l);Object.defineProperty(i,l,e.get?e:{enumerable:!0,get:()=>c[l]})}}return i.default=c,Object.freeze(i)}const u=R(B),g=c=>c||{filters:[],logic:"and"},h=(c,i)=>g(i).filters.filter(t=>y.isCompositeFilterDescriptor(t)?t.filters&&t.filters.length&&t.filters.length<=2&&!t.filters.find(r=>y.isCompositeFilterDescriptor(r)||r.field!==c):!1)[0]||null,F=class F extends u.Component{constructor(i){super(i),this.removeGroup=(e,t)=>{const r=[...t.filters],n=r.findIndex(o=>o===e);return n>-1&&r.splice(n,1),{...t,filters:r}},this.insertGroup=(e,t)=>({...t,filters:[e,...t.filters]}),this.isControlled=()=>this.props.expanded!==void 0,this.onFilterExpand=()=>{const e=this.isControlled(),t=!(e?this.props.expanded:this.state.expanded);this.props.onExpandChange&&this.props.onExpandChange(t),e||this.setState({expanded:t})},this.firstFilterChange=e=>{this.filterChange(0,e)},this.secondFilterChange=e=>{this.filterChange(1,e)},this.filterChange=(e,t)=>{const r=this.state.filterGroup.filters.map((n,o)=>o===e?{...n,value:t.value,operator:t.operator}:n);this.setState({filterGroup:{...this.state.filterGroup,filters:r}})},this.logicChange=e=>{this.setState({filterGroup:{...this.state.filterGroup,logic:e.target.value.operator}})},this.clear=e=>{if(e.preventDefault(),!this.props.onFilterChange)return;const t=this.props.column.field,r=g(this.props.filter),n=h(t,this.props.filter),o=r.filters.filter(s=>s!==n);o.length?this.props.onFilterChange({...r,filters:o},e):this.props.onFilterChange(null,e),this.props.onCloseMenu&&this.props.onCloseMenu()},this.currentFilterGroup=()=>({...this.state.filterGroup,filters:this.state.filterGroup.filters.filter(e=>e.value!==void 0&&e.value!==null&&e.value!==""||e.value===null&&e.operator)}),this.submit=e=>{if(e.preventDefault(),!this.props.onFilterChange)return;const t=this.props.column.field,r=g(this.props.filter),n=h(t,this.props.filter),o=this.currentFilterGroup();let s=null;if(n&&o.filters.length>0){const p=r.filters.map(d=>d===n?o:d);s={...r,filters:p}}else if(o.filters.length===0){const p=r.filters.filter(d=>d!==n);p.length&&(s={...r,filters:p})}else s={...r,filters:[...r.filters,o]};this.props.onFilterChange(s,e),this.props.onCloseMenu&&this.props.onCloseMenu()};let l;if(i.column&&i.column.field){const e=a.getFilterType(i.column.filter),t=a.getDefaultOperator(i.filterOperators,e);l=h(i.column.field,i.filter),l=l?{...l,filters:l.filters.map(r=>({...r}))}:{logic:"and",filters:[{field:i.column.field,operator:t,value:a.IsUnaryFilter(t)?null:void 0},{field:i.column.field,operator:t,value:a.IsUnaryFilter(t)?null:void 0}]},l.filters.filter(r=>r.field===i.column.field).length===1&&l.filters.splice(1,0,{field:i.column.field,operator:t})}this.state={expanded:i.expanded||!1,filterGroup:l}}render(){const{column:i,filterUI:l,hideSecondFilter:e,filterOperators:t}=this.props;if(!i||!i.field)return u.createElement("div",null);const r=a.getFilterType(i.filter),n=e!==void 0?e:a.defaultHideSecondFilter[r],o=b.provideLocalizationService(this),s=this.state.filterGroup.filters,p=a.operatorMap(t[r],o),d=a.operatorMap(a.booleanFilterValues,o),M={field:i.field,value:s[0].value,operator:s[0].operator,operators:p,booleanValues:d,onChange:this.firstFilterChange,filterType:r},O={field:i.field,value:s[1].value,operator:s[1].operator,operators:p,booleanValues:d,onChange:this.secondFilterChange,filterType:r},v=this.state.filterGroup.logic,G=a.operatorMap(a.filterLogicList,o),C={value:G.find(q=>q.operator===(v===null?"":v)),onChange:this.logicChange,data:G},I=l,S={firstFilterProps:M,secondFilterProps:O,logicData:C.data,logicValue:C.value,onLogicChange:C.onChange,hideSecondFilter:n},D=this.currentFilterGroup().filters.length!==0||a.IsUnaryFilter(s[0].operator)||a.IsUnaryFilter(s[1].operator),k=this.isControlled()?this.props.expanded:this.state.expanded,x=this.props.alwaysExpand;return u.createElement(P.GridColumnMenuItemGroup,null,!x&&u.createElement(L.GridColumnMenuItem,{title:o.toLanguageString(f.filterTitle,f.messages[f.filterTitle]),iconClass:"k-i-filter",svgIcon:j.filterIcon,onClick:this.onFilterExpand}),u.createElement(U.GridColumnMenuItemContent,{show:x||!!k},u.createElement("form",{className:"k-filter-menu",onSubmit:this.submit,onReset:this.clear},u.createElement("div",{className:"k-filter-menu-container"},I?u.createElement(I,{...S}):u.createElement(T.GridColumnMenuFilterUI,{...S}),u.createElement("div",{className:"k-actions k-actions-stretched"},u.createElement(E.Button,{themeColor:"primary",disabled:!D},o.toLanguageString(f.filterSubmitButton,f.messages[f.filterSubmitButton])),u.createElement(E.Button,{type:"reset"},o.toLanguageString(f.filterClearButton,f.messages[f.filterClearButton])))))))}};F.active=(i,l)=>!!h(i,l);let m=F;b.registerForLocalization(m);exports.GridColumnMenuFilter=m;exports.filterGroupByField=h;exports.rootFilterOrDefault=g;
@@ -7,17 +7,17 @@
7
7
  */
8
8
  "use client";
9
9
  import * as a from "react";
10
- import { isCompositeFilterDescriptor as L } from "@progress/kendo-data-query";
11
- import { GridColumnMenuItem as B } from "./GridColumnMenuItem.mjs";
12
- import { GridColumnMenuItemGroup as T } from "./GridColumnMenuItemGroup.mjs";
10
+ import { isCompositeFilterDescriptor as y } from "@progress/kendo-data-query";
11
+ import { GridColumnMenuItem as T } from "./GridColumnMenuItem.mjs";
12
+ import { GridColumnMenuItemGroup as w } from "./GridColumnMenuItemGroup.mjs";
13
13
  import { GridColumnMenuItemContent as z } from "./GridColumnMenuItemContent.mjs";
14
14
  import { provideLocalizationService as N, registerForLocalization as H } from "@progress/kendo-react-intl";
15
- import { getFilterType as D, getDefaultOperator as R, IsUnaryFilter as c, operatorMap as g, booleanFilterValues as K, filterLogicList as j, defaultHideSecondFilter as q } from "../filterCommon.mjs";
16
- import { filterTitle as b, messages as C, filterSubmitButton as M, filterClearButton as P } from "../messages/index.mjs";
17
- import { GridColumnMenuFilterUI as A } from "./GridColumnMenuFilterUI.mjs";
15
+ import { getFilterType as L, getDefaultOperator as R, IsUnaryFilter as c, operatorMap as m, booleanFilterValues as j, filterLogicList as q, defaultHideSecondFilter as A } from "../filterCommon.mjs";
16
+ import { filterTitle as b, messages as g, filterSubmitButton as D, filterClearButton as M } from "../messages/index.mjs";
17
+ import { GridColumnMenuFilterUI as J } from "./GridColumnMenuFilterUI.mjs";
18
18
  import { Button as k } from "@progress/kendo-react-buttons";
19
- import { filterIcon as J } from "@progress/kendo-svg-icons";
20
- const F = (h) => h || { filters: [], logic: "and" }, u = (h, i) => F(i).filters.filter((t) => L(t) ? t.filters && t.filters.length && t.filters.length <= 2 && !t.filters.find((r) => L(r) || r.field !== h) : !1)[0] || null, G = class G extends a.Component {
19
+ import { filterIcon as K } from "@progress/kendo-svg-icons";
20
+ const C = (h) => h || { filters: [], logic: "and" }, u = (h, i) => C(i).filters.filter((t) => y(t) ? t.filters && t.filters.length && t.filters.length <= 2 && !t.filters.find((r) => y(r) || r.field !== h) : !1)[0] || null, v = class v extends a.Component {
21
21
  constructor(i) {
22
22
  super(i), this.removeGroup = (e, t) => {
23
23
  const r = [...t.filters], s = r.findIndex((l) => l === e);
@@ -62,7 +62,7 @@ const F = (h) => h || { filters: [], logic: "and" }, u = (h, i) => F(i).filters.
62
62
  }, this.clear = (e) => {
63
63
  if (e.preventDefault(), !this.props.onFilterChange)
64
64
  return;
65
- const t = this.props.column.field, r = F(this.props.filter), s = u(t, this.props.filter), l = r.filters.filter((n) => n !== s);
65
+ const t = this.props.column.field, r = C(this.props.filter), s = u(t, this.props.filter), l = r.filters.filter((n) => n !== s);
66
66
  l.length ? this.props.onFilterChange({ ...r, filters: l }, e) : this.props.onFilterChange(null, e), this.props.onCloseMenu && this.props.onCloseMenu();
67
67
  }, this.currentFilterGroup = () => ({
68
68
  ...this.state.filterGroup,
@@ -70,7 +70,7 @@ const F = (h) => h || { filters: [], logic: "and" }, u = (h, i) => F(i).filters.
70
70
  }), this.submit = (e) => {
71
71
  if (e.preventDefault(), !this.props.onFilterChange)
72
72
  return;
73
- const t = this.props.column.field, r = F(this.props.filter), s = u(t, this.props.filter), l = this.currentFilterGroup();
73
+ const t = this.props.column.field, r = C(this.props.filter), s = u(t, this.props.filter), l = this.currentFilterGroup();
74
74
  let n = null;
75
75
  if (s && l.filters.length > 0) {
76
76
  const f = r.filters.map((p) => p === s ? l : p);
@@ -93,7 +93,7 @@ const F = (h) => h || { filters: [], logic: "and" }, u = (h, i) => F(i).filters.
93
93
  };
94
94
  let o;
95
95
  if (i.column && i.column.field) {
96
- const e = D(i.column.filter), t = R(i.filterOperators, e);
96
+ const e = L(i.column.filter), t = R(i.filterOperators, e);
97
97
  o = u(i.column.field, i.filter), o = o ? {
98
98
  ...o,
99
99
  filters: o.filters.map((r) => ({ ...r }))
@@ -117,7 +117,7 @@ const F = (h) => h || { filters: [], logic: "and" }, u = (h, i) => F(i).filters.
117
117
  const { column: i, filterUI: o, hideSecondFilter: e, filterOperators: t } = this.props;
118
118
  if (!i || !i.field)
119
119
  return /* @__PURE__ */ a.createElement("div", null);
120
- const r = D(i.filter), s = e !== void 0 ? e : q[r], l = N(this), n = this.state.filterGroup.filters, f = g(t[r], l), p = g(K, l), O = {
120
+ const r = L(i.filter), s = e !== void 0 ? e : A[r], l = N(this), n = this.state.filterGroup.filters, f = m(t[r], l), p = m(j, l), O = {
121
121
  field: i.field,
122
122
  value: n[0].value,
123
123
  operator: n[0].operator,
@@ -125,7 +125,7 @@ const F = (h) => h || { filters: [], logic: "and" }, u = (h, i) => F(i).filters.
125
125
  booleanValues: p,
126
126
  onChange: this.firstFilterChange,
127
127
  filterType: r
128
- }, U = {
128
+ }, P = {
129
129
  field: i.field,
130
130
  value: n[1].value,
131
131
  operator: n[1].operator,
@@ -133,56 +133,55 @@ const F = (h) => h || { filters: [], logic: "and" }, u = (h, i) => F(i).filters.
133
133
  booleanValues: p,
134
134
  onChange: this.secondFilterChange,
135
135
  filterType: r
136
- }, x = this.state.filterGroup.logic, E = g(j, l), d = {
137
- value: E.find((m) => m.operator === (x === null ? "" : x)),
136
+ }, G = this.state.filterGroup.logic, x = m(q, l), d = {
137
+ value: x.find((B) => B.operator === (G === null ? "" : G)),
138
138
  onChange: this.logicChange,
139
- data: E
140
- }, S = o, I = {
139
+ data: x
140
+ }, E = o, S = {
141
141
  firstFilterProps: O,
142
- secondFilterProps: U,
142
+ secondFilterProps: P,
143
143
  logicData: d.data,
144
144
  logicValue: d.value,
145
145
  onLogicChange: d.onChange,
146
146
  hideSecondFilter: s
147
- }, V = this.currentFilterGroup().filters.length !== 0 || c(n[0].operator) || c(n[1].operator), w = this.isControlled() ? this.props.expanded : this.state.expanded, y = this.props.alwaysExpand;
148
- return /* @__PURE__ */ a.createElement(T, null, !y && /* @__PURE__ */ a.createElement(
149
- B,
147
+ }, U = this.currentFilterGroup().filters.length !== 0 || c(n[0].operator) || c(n[1].operator), V = this.isControlled() ? this.props.expanded : this.state.expanded, I = this.props.alwaysExpand;
148
+ return /* @__PURE__ */ a.createElement(w, null, !I && /* @__PURE__ */ a.createElement(
149
+ T,
150
150
  {
151
- title: l.toLanguageString(b, C[b]),
151
+ title: l.toLanguageString(b, g[b]),
152
152
  iconClass: "k-i-filter",
153
- svgIcon: J,
153
+ svgIcon: K,
154
154
  onClick: this.onFilterExpand
155
155
  }
156
- ), /* @__PURE__ */ a.createElement(z, { show: y || !!w }, /* @__PURE__ */ a.createElement(
156
+ ), /* @__PURE__ */ a.createElement(z, { show: I || !!V }, /* @__PURE__ */ a.createElement(
157
157
  "form",
158
158
  {
159
159
  className: "k-filter-menu",
160
160
  onSubmit: this.submit,
161
- onReset: this.clear,
162
- onKeyDown: (m) => m.stopPropagation()
161
+ onReset: this.clear
163
162
  },
164
- /* @__PURE__ */ a.createElement("div", { className: "k-filter-menu-container" }, S ? /* @__PURE__ */ a.createElement(S, { ...I }) : /* @__PURE__ */ a.createElement(A, { ...I }), /* @__PURE__ */ a.createElement("div", { className: "k-actions k-actions-stretched" }, /* @__PURE__ */ a.createElement(
163
+ /* @__PURE__ */ a.createElement("div", { className: "k-filter-menu-container" }, E ? /* @__PURE__ */ a.createElement(E, { ...S }) : /* @__PURE__ */ a.createElement(J, { ...S }), /* @__PURE__ */ a.createElement("div", { className: "k-actions k-actions-stretched" }, /* @__PURE__ */ a.createElement(
165
164
  k,
166
165
  {
167
166
  themeColor: "primary",
168
- disabled: !V
167
+ disabled: !U
169
168
  },
170
- l.toLanguageString(M, C[M])
169
+ l.toLanguageString(D, g[D])
171
170
  ), /* @__PURE__ */ a.createElement(
172
171
  k,
173
172
  {
174
173
  type: "reset"
175
174
  },
176
- l.toLanguageString(P, C[P])
175
+ l.toLanguageString(M, g[M])
177
176
  )))
178
177
  )));
179
178
  }
180
179
  };
181
- G.active = (i, o) => !!u(i, o);
182
- let v = G;
183
- H(v);
180
+ v.active = (i, o) => !!u(i, o);
181
+ let F = v;
182
+ H(F);
184
183
  export {
185
- v as GridColumnMenuFilter,
184
+ F as GridColumnMenuFilter,
186
185
  u as filterGroupByField,
187
- F as rootFilterOrDefault
186
+ C as rootFilterOrDefault
188
187
  };
@@ -5,4 +5,4 @@
5
5
  * Licensed under commercial license. See LICENSE.md in the package root for more information
6
6
  *-------------------------------------------------------------------------------------------
7
7
  */
8
- "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("react"),r=require("@progress/kendo-react-common");function a(t){const n=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const e in t)if(e!=="default"){const o=Object.getOwnPropertyDescriptor(t,e);Object.defineProperty(n,e,o.get?o:{enumerable:!0,get:()=>t[e]})}}return n.default=t,Object.freeze(n)}const c=a(l);class i extends c.Component{render(){const{title:n,iconClass:e,svgIcon:o,selected:s}=this.props;return c.createElement("div",{onClick:this.props.onClick,className:`k-columnmenu-item ${s?"k-selected":""}`},(e||o)&&c.createElement(r.IconWrap,{name:e&&r.toIconName(e),icon:o}),n)}}exports.GridColumnMenuItem=i;
8
+ "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react"),o=require("@progress/kendo-react-common");function i(t){const n=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const e in t)if(e!=="default"){const c=Object.getOwnPropertyDescriptor(t,e);Object.defineProperty(n,e,c.get?c:{enumerable:!0,get:()=>t[e]})}}return n.default=t,Object.freeze(n)}const r=i(a),u=t=>{const{title:n,iconClass:e,svgIcon:c,selected:l}=t;return r.createElement("div",{onClick:t.onClick,className:`k-columnmenu-item ${l?"k-selected":""}`},(e||c)&&r.createElement(o.IconWrap,{name:e&&o.toIconName(e),icon:c}),n)};exports.GridColumnMenuItem=u;
@@ -6,17 +6,12 @@
6
6
  *-------------------------------------------------------------------------------------------
7
7
  */
8
8
  "use client";
9
- import * as t from "react";
10
- import { IconWrap as s, toIconName as m } from "@progress/kendo-react-common";
11
- class l extends t.Component {
12
- /**
13
- * @hidden
14
- */
15
- render() {
16
- const { title: o, iconClass: e, svgIcon: n, selected: c } = this.props;
17
- return /* @__PURE__ */ t.createElement("div", { onClick: this.props.onClick, className: `k-columnmenu-item ${c ? "k-selected" : ""}` }, (e || n) && /* @__PURE__ */ t.createElement(s, { name: e && m(e), icon: n }), o);
18
- }
19
- }
9
+ import * as c from "react";
10
+ import { IconWrap as l, toIconName as i } from "@progress/kendo-react-common";
11
+ const r = (t) => {
12
+ const { title: o, iconClass: e, svgIcon: n, selected: m } = t;
13
+ return /* @__PURE__ */ c.createElement("div", { onClick: t.onClick, className: `k-columnmenu-item ${m ? "k-selected" : ""}` }, (e || n) && /* @__PURE__ */ c.createElement(l, { name: e && i(e), icon: n }), o);
14
+ };
20
15
  export {
21
- l as GridColumnMenuItem
16
+ r as GridColumnMenuItem
22
17
  };
@@ -5,4 +5,4 @@
5
5
  * Licensed under commercial license. See LICENSE.md in the package root for more information
6
6
  *-------------------------------------------------------------------------------------------
7
7
  */
8
- "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const h=require("react"),m=require("@progress/kendo-react-popup"),u=require("@progress/kendo-react-common"),p=require("@progress/kendo-svg-icons"),c=require("../messages/index.js"),d=require("@progress/kendo-react-intl");function f(s){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(s){for(const t in s)if(t!=="default"){const o=Object.getOwnPropertyDescriptor(s,t);Object.defineProperty(e,t,o.get?o:{enumerable:!0,get:()=>s[t]})}}return e.default=s,Object.freeze(e)}const n=f(h);class g extends n.Component{constructor(){super(...arguments),this.state={show:!1},this._anchor=null,this._content=null,this.blurTimeout=void 0,this.willBlur=!1,this.blur=()=>{if(this.willBlur){this.willBlur=!1;return}clearTimeout(this.blurTimeout),this.blurTimeout=window.setTimeout(()=>{this.closeMenu()})},this.focus=()=>{clearTimeout(this.blurTimeout)},this.anchorClick=e=>{e.preventDefault(),this.state.show&&this.props.onCloseMenu&&this.props.onCloseMenu(),this.setState({show:!this.state.show},()=>this.state.show&&this._content&&this._content.focus())},this.closeMenu=()=>{this.props.onCloseMenu&&this.props.onCloseMenu(),this.setState({show:!1})},this.onAnchorMouseDown=e=>{this.willBlur=this.state.show&&e.currentTarget===this._anchor},this.onAnchorKeyDown=e=>{var t;if(e.keyCode===u.Keys.tab){const o=e.target,r=o&&((t=o.closest(".k-grid"))==null?void 0:t.getElementsByClassName("k-grid-content")[0]);r&&r.scrollWidth>r.clientWidth&&o.scrollIntoView({inline:"center"})}}}render(){const{columnMenu:e,...t}=this.props,{column:o}=this.props,r=d.provideLocalizationService(this),i=o.title||o.field,a=i?`${i} `:"";return n.createElement(n.Fragment,null,n.createElement("a",{className:"k-grid-header-menu k-grid-column-menu",ref:l=>this._anchor=l,onClick:this.anchorClick,onMouseDown:this.onAnchorMouseDown,onKeyDown:this.onAnchorKeyDown,href:"#","aria-label":`${a}${r.toLanguageString(c.columnMenu,c.messages[c.columnMenu])}`},n.createElement(u.IconWrap,{name:"filter",icon:p.filterIcon})),n.createElement(m.Popup,{anchor:this._anchor,show:this.state.show,popupClass:"k-column-menu k-column-menu-popup k-grid-columnmenu-popup"},n.createElement("div",{ref:l=>this._content=l,tabIndex:0,onBlur:this.blur,onFocus:this.focus,style:{outline:"none"}},e&&n.createElement(e,{...t,onCloseMenu:this.closeMenu}))))}}exports.GridColumnMenuWrapper=g;
8
+ "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const N=require("react"),O=require("@progress/kendo-react-popup"),i=require("@progress/kendo-react-common"),P=require("@progress/kendo-svg-icons"),E=require("../messages/index.js"),_=require("@progress/kendo-react-intl");function j(e){const r=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const l in e)if(l!=="default"){const u=Object.getOwnPropertyDescriptor(e,l);Object.defineProperty(r,l,u.get?u:{enumerable:!0,get:()=>e[l]})}}return r.default=e,Object.freeze(r)}const o=j(N),z=[".k-columnmenu-item-content",".k-filter-menu-container"].map(e=>i.TABBABLE_ELEMENTS.map(r=>`${e} ${r}`)),W=[[".k-tabstrip-items"],[".k-columnmenu-item"],...z],$=e=>{const[r,l]=o.useState(!1),u=o.useRef(null),a=o.useRef(null),s=o.useRef(null),m=o.useRef(0),{columnMenu:h,...v}=e,{column:b}=e,w=_.useLocalization(),k=b.title||b.field,M=k?`${k} `:"",y="#",p=n=>{const t=i.getActiveElement(document);clearTimeout(m.current),m.current=window.setTimeout(()=>{t&&n.relatedTarget!==u.current&&a.current&&!a.current.contains(t)&&f()})},C=()=>{clearTimeout(m.current)},D=n=>{n.preventDefault(),r&&e.onCloseMenu&&e.onCloseMenu(),l(!r)},f=()=>{e.onCloseMenu&&e.onCloseMenu(),l(!1),!e.navigatable&&u.current&&u.current.focus()},S=n=>{var t;if(n.keyCode===i.Keys.tab){const c=n.target,g=c&&((t=c.closest(".k-grid"))==null?void 0:t.getElementsByClassName("k-grid-content")[0]);g&&g.scrollWidth>g.clientWidth&&c.scrollIntoView({inline:"center"})}},d=o.useMemo(()=>e.show!==void 0?e.show:r,[e.show,r]),T=n=>{var t;(t=s.current)==null||t.triggerKeyboardEvent(n)},R=n=>{var t;(t=s.current)==null||t.triggerMouseEvent(n)},I=(n,t,c)=>{c.preventDefault(),c.shiftKey?t.focusPrevious(n):t.focusNext(n)},K=(n,t,c)=>{n&&n.click()},q=(n,t,c)=>{c.preventDefault(),f()},B=(n,t,c)=>{c.preventDefault(),t.focusElement(n)};return o.useEffect(()=>(d&&a.current&&(s.current=new i.Navigation({tabIndex:0,root:a,selectors:W,keyboardEvents:{keydown:{Tab:I,Enter:K,Escape:q}},mouseEvents:{mousedown:B}}),s.current.focusElement(s.current.first,null)),()=>{s.current&&(s.current=null)}),[d]),o.createElement(o.Fragment,null,o.createElement("a",{className:"k-grid-header-menu k-grid-column-menu",ref:u,onClick:D,onKeyDown:S,href:y,tabIndex:e.navigatable?-1:void 0,"aria-label":`${M}${w.toLanguageString(E.columnMenu,E.messages[E.columnMenu])}`},o.createElement(i.IconWrap,{name:"filter",icon:P.filterIcon})),o.createElement(O.Popup,{anchor:u.current,show:d,popupClass:"k-column-menu k-column-menu-popup k-grid-columnmenu-popup"},o.createElement("div",{ref:a,onBlur:p,onFocus:C,onMouseDown:R,onKeyDown:T,style:{outline:"none"}},h&&o.createElement(h,{...v,onCloseMenu:f}))))};exports.GridColumnMenuWrapper=$;
@@ -7,85 +7,108 @@
7
7
  */
8
8
  "use client";
9
9
  import * as t from "react";
10
- import { Popup as h } from "@progress/kendo-react-popup";
11
- import { Keys as u, IconWrap as a } from "@progress/kendo-react-common";
12
- import { filterIcon as m } from "@progress/kendo-svg-icons";
13
- import { columnMenu as l, messages as p } from "../messages/index.mjs";
14
- import { provideLocalizationService as f } from "@progress/kendo-react-intl";
15
- class k extends t.Component {
16
- constructor() {
17
- super(...arguments), this.state = {
18
- show: !1
19
- }, this._anchor = null, this._content = null, this.blurTimeout = void 0, this.willBlur = !1, this.blur = () => {
20
- if (this.willBlur) {
21
- this.willBlur = !1;
22
- return;
10
+ import { Popup as R } from "@progress/kendo-react-popup";
11
+ import { TABBABLE_ELEMENTS as $, Navigation as x, IconWrap as z, getActiveElement as A, Keys as F } from "@progress/kendo-react-common";
12
+ import { filterIcon as L } from "@progress/kendo-svg-icons";
13
+ import { columnMenu as w, messages as W } from "../messages/index.mjs";
14
+ import { useLocalization as _ } from "@progress/kendo-react-intl";
15
+ const H = [
16
+ ".k-columnmenu-item-content",
17
+ ".k-filter-menu-container"
18
+ ].map((o) => $.map(
19
+ (u) => `${o} ${u}`
20
+ )), P = [
21
+ [".k-tabstrip-items"],
22
+ [".k-columnmenu-item"],
23
+ ...H
24
+ ], Q = (o) => {
25
+ const [u, d] = t.useState(!1), l = t.useRef(null), s = t.useRef(null), c = t.useRef(null), a = t.useRef(0), { columnMenu: E, ...v } = o, { column: h } = o, k = _(), g = h.title || h.field, M = g ? `${g} ` : "", b = "#", p = (e) => {
26
+ const n = A(document);
27
+ clearTimeout(a.current), a.current = window.setTimeout(() => {
28
+ n && e.relatedTarget !== l.current && s.current && !s.current.contains(n) && i();
29
+ });
30
+ }, y = () => {
31
+ clearTimeout(a.current);
32
+ }, C = (e) => {
33
+ e.preventDefault(), u && o.onCloseMenu && o.onCloseMenu(), d(!u);
34
+ }, i = () => {
35
+ o.onCloseMenu && o.onCloseMenu(), d(!1), !o.navigatable && l.current && l.current.focus();
36
+ }, D = (e) => {
37
+ var n;
38
+ if (e.keyCode === F.tab) {
39
+ const r = e.target, f = r && ((n = r.closest(".k-grid")) == null ? void 0 : n.getElementsByClassName("k-grid-content")[0]);
40
+ f && f.scrollWidth > f.clientWidth && r.scrollIntoView({ inline: "center" });
41
+ }
42
+ }, m = t.useMemo(() => o.show !== void 0 ? o.show : u, [o.show, u]), T = (e) => {
43
+ var n;
44
+ (n = c.current) == null || n.triggerKeyboardEvent(e);
45
+ }, S = (e) => {
46
+ var n;
47
+ (n = c.current) == null || n.triggerMouseEvent(e);
48
+ }, K = (e, n, r) => {
49
+ r.preventDefault(), r.shiftKey ? n.focusPrevious(e) : n.focusNext(e);
50
+ }, B = (e, n, r) => {
51
+ e && e.click();
52
+ }, I = (e, n, r) => {
53
+ r.preventDefault(), i();
54
+ }, N = (e, n, r) => {
55
+ r.preventDefault(), n.focusElement(e);
56
+ };
57
+ return t.useEffect(() => (m && s.current && (c.current = new x({
58
+ tabIndex: 0,
59
+ root: s,
60
+ selectors: P,
61
+ keyboardEvents: {
62
+ keydown: {
63
+ Tab: K,
64
+ Enter: B,
65
+ Escape: I
23
66
  }
24
- clearTimeout(this.blurTimeout), this.blurTimeout = window.setTimeout(() => {
25
- this.closeMenu();
26
- });
27
- }, this.focus = () => {
28
- clearTimeout(this.blurTimeout);
29
- }, this.anchorClick = (e) => {
30
- e.preventDefault(), this.state.show && this.props.onCloseMenu && this.props.onCloseMenu(), this.setState(
31
- {
32
- show: !this.state.show
33
- },
34
- () => this.state.show && this._content && this._content.focus()
35
- );
36
- }, this.closeMenu = () => {
37
- this.props.onCloseMenu && this.props.onCloseMenu(), this.setState({ show: !1 });
38
- }, this.onAnchorMouseDown = (e) => {
39
- this.willBlur = this.state.show && e.currentTarget === this._anchor;
40
- }, this.onAnchorKeyDown = (e) => {
41
- var n;
42
- if (e.keyCode === u.tab) {
43
- const o = e.target, s = o && ((n = o.closest(".k-grid")) == null ? void 0 : n.getElementsByClassName("k-grid-content")[0]);
44
- s && s.scrollWidth > s.clientWidth && o.scrollIntoView({ inline: "center" });
45
- }
46
- };
47
- }
48
- render() {
49
- const { columnMenu: e, ...n } = this.props, { column: o } = this.props, s = f(this), i = o.title || o.field, c = i ? `${i} ` : "";
50
- return /* @__PURE__ */ t.createElement(t.Fragment, null, /* @__PURE__ */ t.createElement(
51
- "a",
67
+ },
68
+ mouseEvents: {
69
+ mousedown: N
70
+ }
71
+ }), c.current.focusElement(c.current.first, null)), () => {
72
+ c.current && (c.current = null);
73
+ }), [m]), /* @__PURE__ */ t.createElement(t.Fragment, null, /* @__PURE__ */ t.createElement(
74
+ "a",
75
+ {
76
+ className: "k-grid-header-menu k-grid-column-menu",
77
+ ref: l,
78
+ onClick: C,
79
+ onKeyDown: D,
80
+ href: b,
81
+ tabIndex: o.navigatable ? -1 : void 0,
82
+ "aria-label": `${M}${k.toLanguageString(w, W[w])}`
83
+ },
84
+ /* @__PURE__ */ t.createElement(z, { name: "filter", icon: L })
85
+ ), /* @__PURE__ */ t.createElement(
86
+ R,
87
+ {
88
+ anchor: l.current,
89
+ show: m,
90
+ popupClass: "k-column-menu k-column-menu-popup k-grid-columnmenu-popup"
91
+ },
92
+ /* @__PURE__ */ t.createElement(
93
+ "div",
52
94
  {
53
- className: "k-grid-header-menu k-grid-column-menu",
54
- ref: (r) => this._anchor = r,
55
- onClick: this.anchorClick,
56
- onMouseDown: this.onAnchorMouseDown,
57
- onKeyDown: this.onAnchorKeyDown,
58
- href: "#",
59
- "aria-label": `${c}${s.toLanguageString(l, p[l])}`
95
+ ref: s,
96
+ onBlur: p,
97
+ onFocus: y,
98
+ onMouseDown: S,
99
+ onKeyDown: T,
100
+ style: { outline: "none" }
60
101
  },
61
- /* @__PURE__ */ t.createElement(a, { name: "filter", icon: m })
62
- ), /* @__PURE__ */ t.createElement(
63
- h,
64
- {
65
- anchor: this._anchor,
66
- show: this.state.show,
67
- popupClass: "k-column-menu k-column-menu-popup k-grid-columnmenu-popup"
68
- },
69
- /* @__PURE__ */ t.createElement(
70
- "div",
102
+ E && /* @__PURE__ */ t.createElement(
103
+ E,
71
104
  {
72
- ref: (r) => this._content = r,
73
- tabIndex: 0,
74
- onBlur: this.blur,
75
- onFocus: this.focus,
76
- style: { outline: "none" }
77
- },
78
- e && /* @__PURE__ */ t.createElement(
79
- e,
80
- {
81
- ...n,
82
- onCloseMenu: this.closeMenu
83
- }
84
- )
105
+ ...v,
106
+ onCloseMenu: i
107
+ }
85
108
  )
86
- ));
87
- }
88
- }
109
+ )
110
+ ));
111
+ };
89
112
  export {
90
- k as GridColumnMenuWrapper
113
+ Q as GridColumnMenuWrapper
91
114
  };