@progress/kendo-react-grid 10.3.0-develop.1 → 11.0.0-develop.10

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 (168) hide show
  1. package/GridClientContextReader.js +1 -1
  2. package/GridClientContextReader.mjs +16 -13
  3. package/GridClientWrapper.js +1 -1
  4. package/GridClientWrapper.mjs +419 -421
  5. package/GridComponent.js +1 -1
  6. package/GridComponent.mjs +402 -395
  7. package/VirtualScroll.js +1 -1
  8. package/VirtualScroll.mjs +65 -107
  9. package/cells/GridDetailHierarchyCell.js +1 -1
  10. package/cells/GridDetailHierarchyCell.mjs +4 -4
  11. package/cells/datacell/GridCell.js +9 -0
  12. package/cells/datacell/GridCell.mjs +29 -0
  13. package/cells/datacell/GridCellServer.js +8 -0
  14. package/cells/datacell/GridCellServer.mjs +27 -0
  15. package/cells/datacell/GridCellServerContainer.js +9 -0
  16. package/cells/datacell/GridCellServerContainer.mjs +26 -0
  17. package/cells/datacell/useCellClientTdProps.js +9 -0
  18. package/cells/datacell/useCellClientTdProps.mjs +30 -0
  19. package/cells/datacell/utils.js +8 -0
  20. package/cells/datacell/utils.mjs +47 -0
  21. package/cells/detailcell/GridDetailCell.js +9 -0
  22. package/cells/detailcell/GridDetailCell.mjs +18 -0
  23. package/cells/detailcell/GridDetailCellServer.js +8 -0
  24. package/cells/detailcell/GridDetailCellServer.mjs +17 -0
  25. package/cells/detailcell/GridDetailCellServerContainer.js +9 -0
  26. package/cells/detailcell/GridDetailCellServerContainer.mjs +19 -0
  27. package/cells/detailcell/useDetailCellClientTdProps.js +9 -0
  28. package/cells/detailcell/useDetailCellClientTdProps.mjs +20 -0
  29. package/cells/detailcell/utils.js +8 -0
  30. package/cells/detailcell/utils.mjs +20 -0
  31. package/cells/editcell/GridEditCell.js +9 -0
  32. package/cells/editcell/GridEditCell.mjs +26 -0
  33. package/cells/editcell/GridEditCellServer.js +8 -0
  34. package/cells/editcell/GridEditCellServer.mjs +32 -0
  35. package/cells/editcell/GridEditCellServerContainer.js +9 -0
  36. package/cells/editcell/GridEditCellServerContainer.mjs +26 -0
  37. package/cells/editcell/useEditCellClientTdProps.js +9 -0
  38. package/cells/editcell/useEditCellClientTdProps.mjs +21 -0
  39. package/cells/editcell/utils.js +8 -0
  40. package/cells/editcell/utils.mjs +29 -0
  41. package/cells/groupcell/GridGroupCell.js +9 -0
  42. package/cells/groupcell/GridGroupCell.mjs +24 -0
  43. package/cells/groupcell/GridGroupCellServer.js +8 -0
  44. package/cells/groupcell/GridGroupCellServer.mjs +44 -0
  45. package/cells/groupcell/GridGroupCellServerContainer.js +9 -0
  46. package/cells/groupcell/GridGroupCellServerContainer.mjs +38 -0
  47. package/cells/groupcell/useGroupCellClientTdProps.js +9 -0
  48. package/cells/groupcell/useGroupCellClientTdProps.mjs +44 -0
  49. package/cells/groupcell/utils.js +8 -0
  50. package/cells/groupcell/utils.mjs +48 -0
  51. package/cells/hierarchycell/GridHierarchyCell.js +9 -0
  52. package/cells/hierarchycell/GridHierarchyCell.mjs +25 -0
  53. package/cells/hierarchycell/GridHierarchyCellServer.js +8 -0
  54. package/cells/hierarchycell/GridHierarchyCellServer.mjs +32 -0
  55. package/cells/hierarchycell/GridHierarchyCellServerContainer.js +9 -0
  56. package/cells/hierarchycell/GridHierarchyCellServerContainer.mjs +26 -0
  57. package/cells/hierarchycell/useHierarchyCellClientTdProps.js +9 -0
  58. package/cells/hierarchycell/useHierarchyCellClientTdProps.mjs +35 -0
  59. package/cells/hierarchycell/utils.js +8 -0
  60. package/cells/hierarchycell/utils.mjs +30 -0
  61. package/cells/hooks.js +9 -0
  62. package/cells/hooks.mjs +41 -0
  63. package/cells/rowreordercell/GridRowReorderCell.js +9 -0
  64. package/cells/rowreordercell/GridRowReorderCell.mjs +19 -0
  65. package/cells/rowreordercell/GridRowReorderCellServer.js +8 -0
  66. package/cells/rowreordercell/GridRowReorderCellServer.mjs +18 -0
  67. package/cells/rowreordercell/GridRowReorderCellServerContainer.js +9 -0
  68. package/cells/rowreordercell/GridRowReorderCellServerContainer.mjs +19 -0
  69. package/cells/rowreordercell/useRowReorderCellClientTdProps.js +9 -0
  70. package/cells/rowreordercell/useRowReorderCellClientTdProps.mjs +26 -0
  71. package/cells/rowreordercell/utils.js +8 -0
  72. package/cells/rowreordercell/utils.mjs +30 -0
  73. package/cells/selectioncell/GridSelectionCell.js +9 -0
  74. package/cells/selectioncell/GridSelectionCell.mjs +26 -0
  75. package/cells/selectioncell/GridSelectionCellServer.js +8 -0
  76. package/cells/selectioncell/GridSelectionCellServer.mjs +33 -0
  77. package/cells/selectioncell/GridSelectionCellServerContainer.js +9 -0
  78. package/cells/selectioncell/GridSelectionCellServerContainer.mjs +26 -0
  79. package/cells/selectioncell/useSelectionCellClientTdProps.js +9 -0
  80. package/cells/selectioncell/useSelectionCellClientTdProps.mjs +21 -0
  81. package/cells/selectioncell/utils.js +8 -0
  82. package/cells/selectioncell/utils.mjs +25 -0
  83. package/columnMenu/GridColumnMenuCheckboxFilter.js +1 -1
  84. package/columnMenu/GridColumnMenuCheckboxFilter.mjs +126 -97
  85. package/columnMenu/GridColumnMenuColumnsChooser.js +1 -1
  86. package/columnMenu/GridColumnMenuColumnsChooser.mjs +103 -58
  87. package/columnMenu/GridColumnMenuFilter.js +1 -1
  88. package/columnMenu/GridColumnMenuFilter.mjs +122 -101
  89. package/columnMenu/GridColumnMenuFilterCell.js +1 -1
  90. package/columnMenu/GridColumnMenuFilterCell.mjs +47 -44
  91. package/columnMenu/GridColumnMenuFilterUI.js +1 -1
  92. package/columnMenu/GridColumnMenuFilterUI.mjs +28 -14
  93. package/columnMenu/GridColumnMenuItem.js +1 -1
  94. package/columnMenu/GridColumnMenuItem.mjs +9 -6
  95. package/columnMenu/GridColumnMenuWrapper.js +1 -1
  96. package/columnMenu/GridColumnMenuWrapper.mjs +68 -71
  97. package/columnMenu/adaptiveContent/GridActionSheetFooter.js +9 -0
  98. package/columnMenu/adaptiveContent/GridActionSheetFooter.mjs +24 -0
  99. package/columnMenu/adaptiveContent/GridAdaptiveCheckboxFilter.js +9 -0
  100. package/columnMenu/adaptiveContent/GridAdaptiveCheckboxFilter.mjs +79 -0
  101. package/columnMenu/adaptiveContent/GridAdaptiveColumnChooser.js +9 -0
  102. package/columnMenu/adaptiveContent/GridAdaptiveColumnChooser.mjs +90 -0
  103. package/columnMenu/adaptiveContent/GridAdaptiveColumnMenu.js +9 -0
  104. package/columnMenu/adaptiveContent/GridAdaptiveColumnMenu.mjs +66 -0
  105. package/columnMenu/adaptiveContent/GridAdaptiveFilterMenu.js +9 -0
  106. package/columnMenu/adaptiveContent/GridAdaptiveFilterMenu.mjs +74 -0
  107. package/columnMenu/adaptiveContext/GridColumnMenuAdaptiveContext.js +9 -0
  108. package/columnMenu/adaptiveContext/GridColumnMenuAdaptiveContext.mjs +17 -0
  109. package/components/GridDraggableRowsContainer.js +1 -1
  110. package/components/GridDraggableRowsContainer.mjs +71 -67
  111. package/components/VirtualScrollHeightContainer.js +1 -1
  112. package/components/VirtualScrollHeightContainer.mjs +4 -4
  113. package/components/table/GridTableScrollable.js +1 -1
  114. package/components/table/GridTableScrollable.mjs +16 -15
  115. package/components/utils.js +1 -1
  116. package/components/utils.mjs +9 -10
  117. package/dist/cdn/js/kendo-react-grid.js +1 -1
  118. package/index.d.mts +75 -10
  119. package/index.d.ts +75 -10
  120. package/index.js +1 -1
  121. package/index.mjs +5 -5
  122. package/messages/index.js +1 -1
  123. package/messages/index.mjs +78 -62
  124. package/package-metadata.js +1 -1
  125. package/package-metadata.mjs +2 -2
  126. package/package.json +16 -16
  127. package/paging/GridPagerSettings.js +1 -1
  128. package/paging/GridPagerSettings.mjs +17 -13
  129. package/utils/index.js +1 -1
  130. package/utils/index.mjs +112 -104
  131. package/VirtualScrollFixed.js +0 -8
  132. package/VirtualScrollFixed.mjs +0 -52
  133. package/cells/GridCell.js +0 -8
  134. package/cells/GridCell.mjs +0 -52
  135. package/cells/GridDetailCell.js +0 -8
  136. package/cells/GridDetailCell.mjs +0 -26
  137. package/cells/GridEditCell.js +0 -8
  138. package/cells/GridEditCell.mjs +0 -35
  139. package/cells/GridGroupCell.js +0 -8
  140. package/cells/GridGroupCell.mjs +0 -74
  141. package/cells/GridHierarchyCell.js +0 -8
  142. package/cells/GridHierarchyCell.mjs +0 -33
  143. package/cells/GridRowReorderCell.js +0 -8
  144. package/cells/GridRowReorderCell.mjs +0 -42
  145. package/cells/GridSelectionCell.js +0 -8
  146. package/cells/GridSelectionCell.mjs +0 -30
  147. package/cells/client/DetailCellContainer.js +0 -9
  148. package/cells/client/DetailCellContainer.mjs +0 -27
  149. package/cells/client/GridCellContainer.js +0 -9
  150. package/cells/client/GridCellContainer.mjs +0 -69
  151. package/cells/client/GridEditCellContainer.js +0 -9
  152. package/cells/client/GridEditCellContainer.mjs +0 -61
  153. package/cells/client/GridGroupCellContainer.js +0 -9
  154. package/cells/client/GridGroupCellContainer.mjs +0 -88
  155. package/cells/client/GridHierarchyCellContainer.js +0 -9
  156. package/cells/client/GridHierarchyCellContainer.mjs +0 -64
  157. package/cells/client/GridRowReorderContainer.js +0 -9
  158. package/cells/client/GridRowReorderContainer.mjs +0 -31
  159. package/cells/client/GridSelectionCellContainer.js +0 -9
  160. package/cells/client/GridSelectionCellContainer.mjs +0 -61
  161. /package/cells/{client → editcell}/GridEditCellEditor.js +0 -0
  162. /package/cells/{client → editcell}/GridEditCellEditor.mjs +0 -0
  163. /package/cells/{client → groupcell}/GridGroupCellToggle.js +0 -0
  164. /package/cells/{client → groupcell}/GridGroupCellToggle.mjs +0 -0
  165. /package/cells/{client → hierarchycell}/GridHierarchyCellToggle.js +0 -0
  166. /package/cells/{client → hierarchycell}/GridHierarchyCellToggle.mjs +0 -0
  167. /package/cells/{client → selectioncell}/GridSelectionCellInput.js +0 -0
  168. /package/cells/{client → selectioncell}/GridSelectionCellInput.mjs +0 -0
@@ -6,139 +6,160 @@
6
6
  *-------------------------------------------------------------------------------------------
7
7
  */
8
8
  "use client";
9
- import * as r from "react";
10
- import { isCompositeFilterDescriptor as T } from "@progress/kendo-data-query";
11
- import { GridColumnMenuItem as te } from "./GridColumnMenuItem.mjs";
12
- import { GridColumnMenuItemGroup as le } from "./GridColumnMenuItemGroup.mjs";
13
- import { GridColumnMenuItemContent as re } from "./GridColumnMenuItemContent.mjs";
14
- import { useLocalization as ie } from "@progress/kendo-react-intl";
15
- import { getFilterType as w, getDefaultOperator as oe, IsUnaryFilter as h, operatorMap as x, booleanFilterValues as ne, filterLogicList as ae, defaultHideSecondFilter as ce } from "../filterCommon.mjs";
16
- import { filterTitle as N, messages as p, filterSubmitButton as _, filterClearButton as z } from "../messages/index.mjs";
17
- import { GridColumnMenuFilterUI as se } from "./GridColumnMenuFilterUI.mjs";
18
- import { Button as H } from "@progress/kendo-react-buttons";
19
- import { filterIcon as ue } from "@progress/kendo-svg-icons";
20
- const S = (e) => e || { filters: [], logic: "and" }, v = (e, f) => S(f).filters.filter((i) => T(i) ? i.filters && i.filters.length && !i.filters.find((d) => T(d) || d.field !== e) : !1)[0] || null, xe = (e, f) => !!v(e, f), pe = (e) => {
21
- const f = r.useCallback(() => {
9
+ import * as l from "react";
10
+ import { isCompositeFilterDescriptor as R } from "@progress/kendo-data-query";
11
+ import { GridColumnMenuItem as se } from "./GridColumnMenuItem.mjs";
12
+ import { GridColumnMenuItemGroup as ce } from "./GridColumnMenuItemGroup.mjs";
13
+ import { GridColumnMenuItemContent as ue } from "./GridColumnMenuItemContent.mjs";
14
+ import { useLocalization as fe } from "@progress/kendo-react-intl";
15
+ import { getFilterType as $, getDefaultOperator as de, IsUnaryFilter as v, operatorMap as I, booleanFilterValues as me, filterLogicList as ge, defaultHideSecondFilter as Ce } from "../filterCommon.mjs";
16
+ import { adaptiveColumnMenuFilterTitle as j, messages as E, filterTitle as q, filterSubmitButton as J, filterClearButton as K } from "../messages/index.mjs";
17
+ import { GridColumnMenuFilterUI as Fe } from "./GridColumnMenuFilterUI.mjs";
18
+ import { Button as Q } from "@progress/kendo-react-buttons";
19
+ import { filterIcon as he } from "@progress/kendo-svg-icons";
20
+ import { GridContext as ve } from "../GridClientWrapper.mjs";
21
+ import { GridAdaptiveFilterMenu as Ee } from "./adaptiveContent/GridAdaptiveFilterMenu.mjs";
22
+ const k = (e) => e || { filters: [], logic: "and" }, x = (e, a) => k(a).filters.filter((f) => R(f) ? f.filters && f.filters.length && !f.filters.find((g) => R(g) || g.field !== e) : !1)[0] || null, Ne = (e, a) => !!x(e, a), Oe = (e) => {
23
+ const a = l.useContext(ve), y = l.useCallback(() => {
22
24
  let t;
23
25
  if (e.column && e.column.field) {
24
- const n = w(e.column.filter), l = oe(e.filterOperators, n);
25
- t = v(e.column.field, e.filter), t = t ? {
26
+ const i = $(e.column.filter), r = de(e.filterOperators, i);
27
+ t = x(e.column.field, e.filter), t = t ? {
26
28
  ...t,
27
- filters: t.filters.map((o) => ({ ...o }))
29
+ filters: t.filters.map((n) => ({ ...n }))
28
30
  } : {
29
31
  logic: "and",
30
32
  filters: [
31
33
  {
32
34
  field: e.column.field,
33
- operator: l,
34
- value: h(l) ? null : void 0
35
+ operator: r,
36
+ value: v(r) ? null : void 0
35
37
  },
36
38
  {
37
39
  field: e.column.field,
38
- operator: l,
39
- value: h(l) ? null : void 0
40
+ operator: r,
41
+ value: v(r) ? null : void 0
40
42
  }
41
43
  ]
42
- }, t.filters.filter((o) => o.field === e.column.field).length === 1 && t.filters.splice(1, 0, { field: e.column.field, operator: l });
44
+ }, t.filters.filter((n) => n.field === e.column.field).length === 1 && t.filters.splice(1, 0, { field: e.column.field, operator: r });
43
45
  }
44
46
  return t;
45
- }, [e.column]), [E, M] = r.useState(e.expanded || !1), [i, d] = r.useState(f()), I = () => e.expanded !== void 0, R = () => {
46
- const t = I(), n = !(t ? e.expanded : E);
47
- e.onExpandChange && e.onExpandChange(n), t || M(n);
48
- }, A = (t) => {
49
- y(0, t);
50
- }, j = (t) => {
51
- y(1, t);
52
- }, y = (t, n) => {
53
- const l = i.filters.map((o, a) => a === t ? {
54
- ...o,
55
- value: n.value,
56
- operator: n.operator
57
- } : o);
58
- d({
59
- ...i,
60
- filters: l
47
+ }, [e.column]), [p, f] = l.useState(e.expanded || !1), [g, M] = l.useState(!1), [s, L] = l.useState(y()), T = () => e.expanded !== void 0, W = () => {
48
+ const t = T(), i = !(t ? e.expanded : p);
49
+ e.onExpandChange && e.onExpandChange(i), M(!g), !t && !a.mobileMode && f(i);
50
+ }, X = (t) => {
51
+ D(0, t);
52
+ }, Y = (t) => {
53
+ D(1, t);
54
+ }, D = (t, i) => {
55
+ const r = s.filters.map((n, o) => o === t ? {
56
+ ...n,
57
+ value: i.value,
58
+ operator: i.operator
59
+ } : n);
60
+ L({
61
+ ...s,
62
+ filters: r
61
63
  });
62
- }, q = (t) => {
63
- d({
64
- ...i,
65
- logic: t.target.value.operator
66
- });
67
- }, J = (t) => {
64
+ }, Z = (t) => {
65
+ let i = t.target.value;
66
+ t.target.tagName === "SPAN" && (i = t.target.parentElement.value), L({ ...s, logic: i });
67
+ }, P = (t) => {
68
68
  if (t.preventDefault(), !e.onFilterChange)
69
69
  return;
70
- const n = e.column.field, l = S(e.filter), o = v(n, e.filter), a = l.filters.filter((u) => u !== o);
71
- a.length ? e.onFilterChange({ ...l, filters: a }, t) : e.onFilterChange(null, t), e.onCloseMenu && e.onCloseMenu();
72
- }, L = () => ({
73
- ...i,
74
- filters: i.filters.filter((t) => t.value !== void 0 && t.value !== null && t.value !== "" || t.value === null && t.operator)
75
- }), K = (t) => {
70
+ const i = e.column.field, r = k(e.filter), n = x(i, e.filter), o = r.filters.filter((m) => m !== n);
71
+ o.length ? e.onFilterChange({ ...r, filters: o }, t) : e.onFilterChange(null, t), e.onCloseMenu && e.onCloseMenu();
72
+ }, N = () => ({
73
+ ...s,
74
+ filters: s.filters.filter((t) => t.value !== void 0 && t.value !== null && t.value !== "" || t.value === null && t.operator)
75
+ }), O = (t) => {
76
76
  if (t.preventDefault(), !e.onFilterChange)
77
77
  return;
78
- const n = e.column.field, l = S(e.filter), o = v(n, e.filter), a = L();
79
- let u = null;
80
- if (o && a.filters.length > 0) {
81
- const F = l.filters.map((C) => C === o ? a : C);
82
- u = {
83
- ...l,
78
+ const i = e.column.field, r = k(e.filter), n = x(i, e.filter), o = N();
79
+ let m = null;
80
+ if (n && o.filters.length > 0) {
81
+ const F = r.filters.map((h) => h === n ? o : h);
82
+ m = {
83
+ ...r,
84
84
  filters: F
85
85
  };
86
- } else if (a.filters.length === 0) {
87
- const F = l.filters.filter((C) => C !== o);
88
- F.length && (u = {
89
- ...l,
86
+ } else if (o.filters.length === 0) {
87
+ const F = r.filters.filter((h) => h !== n);
88
+ F.length && (m = {
89
+ ...r,
90
90
  filters: F
91
91
  });
92
92
  } else
93
- u = {
94
- ...l,
95
- filters: [...l.filters, a]
93
+ m = {
94
+ ...r,
95
+ filters: [...r.filters, o]
96
96
  };
97
- e.onFilterChange(u, t), e.onCloseMenu && e.onCloseMenu();
98
- }, { column: m, filterUI: Q, hideSecondFilter: b, filterOperators: W } = e, c = ie();
99
- if (!m || !m.field)
100
- return /* @__PURE__ */ r.createElement("div", null);
101
- const g = w(m.filter), X = b !== void 0 ? b : ce[g], s = i.filters, k = x(W[g], c), D = x(ne, c), Y = {
102
- field: m.field,
103
- value: s[0].value,
104
- operator: s[0].operator,
105
- operators: k,
106
- booleanValues: D,
107
- onChange: A,
108
- filterType: g
109
- }, Z = {
110
- field: m.field,
111
- value: s[1].value,
112
- operator: s[1].operator,
113
- operators: k,
114
- booleanValues: D,
115
- onChange: j,
116
- filterType: g
117
- }, O = i.logic, P = x(ae, c), G = {
118
- value: P.find((t) => t.operator === (O === null ? "" : O)),
119
- onChange: q,
120
- data: P
121
- }, U = Q, V = {
122
- firstFilterProps: Y,
123
- secondFilterProps: Z,
97
+ e.onFilterChange(m, t), e.onCloseMenu && e.onCloseMenu();
98
+ }, { column: c, filterUI: ee, hideSecondFilter: V, filterOperators: te } = e, u = fe();
99
+ if (!c || !c.field)
100
+ return /* @__PURE__ */ l.createElement("div", null);
101
+ const C = $(c.filter), le = V !== void 0 ? V : Ce[C], d = s.filters, A = I(te[C], u), B = I(me, u), re = {
102
+ field: c.field,
103
+ value: d[0].value,
104
+ operator: d[0].operator,
105
+ operators: A,
106
+ booleanValues: B,
107
+ onChange: X,
108
+ filterType: C
109
+ }, ie = {
110
+ field: c.field,
111
+ value: d[1].value,
112
+ operator: d[1].operator,
113
+ operators: A,
114
+ booleanValues: B,
115
+ onChange: Y,
116
+ filterType: C
117
+ }, U = s.logic, w = I(ge, u), G = {
118
+ value: w.find((t) => t.operator === (U === null ? "" : U)),
119
+ onChange: Z,
120
+ data: w
121
+ }, S = ee, b = {
122
+ firstFilterProps: re,
123
+ secondFilterProps: ie,
124
124
  logicData: G.data,
125
125
  logicValue: G.value,
126
126
  onLogicChange: G.onChange,
127
- hideSecondFilter: X
128
- }, $ = L().filters.length !== 0 || h(s[0].operator) || h(s[1].operator), ee = I() ? e.expanded : E, B = e.alwaysExpand;
129
- return /* @__PURE__ */ r.createElement(le, null, !B && /* @__PURE__ */ r.createElement(
130
- te,
127
+ hideSecondFilter: le
128
+ }, _ = N().filters.length !== 0 || v(d[0].operator) || v(d[1].operator), z = T() ? e.expanded : p, H = e.alwaysExpand && !a.mobileMode, ne = () => {
129
+ M(!1);
130
+ }, oe = () => {
131
+ M(!1), e.onCloseMenu && e.onCloseMenu();
132
+ }, ae = `${u.toLanguageString(
133
+ j,
134
+ E[j]
135
+ )} ${c.title || c.field}`;
136
+ return /* @__PURE__ */ l.createElement(ce, null, !H && /* @__PURE__ */ l.createElement("div", { className: "k-expander" }, /* @__PURE__ */ l.createElement(
137
+ se,
131
138
  {
132
- title: c.toLanguageString(N, p[N]),
139
+ title: u.toLanguageString(q, E[q]),
133
140
  iconClass: "k-i-filter",
134
- svgIcon: ue,
135
- onClick: R
141
+ svgIcon: he,
142
+ expandable: !0,
143
+ expanded: !!z,
144
+ onClick: W
145
+ }
146
+ )), a.mobileMode && g ? /* @__PURE__ */ l.createElement(
147
+ Ee,
148
+ {
149
+ FilterUI: S,
150
+ filterUIProps: b,
151
+ onBackView: ne,
152
+ adaptiveTitle: ae,
153
+ handleClose: oe,
154
+ submit: O,
155
+ clear: P,
156
+ isFilterValid: _
136
157
  }
137
- ), /* @__PURE__ */ r.createElement(re, { show: B || !!ee }, /* @__PURE__ */ r.createElement("form", { className: "k-filter-menu", onSubmit: K, onReset: J }, /* @__PURE__ */ r.createElement("div", { className: "k-filter-menu-container" }, U ? /* @__PURE__ */ r.createElement(U, { ...V }) : /* @__PURE__ */ r.createElement(se, { ...V }), /* @__PURE__ */ r.createElement("div", { className: "k-actions k-actions-stretched" }, /* @__PURE__ */ r.createElement(H, { themeColor: "primary", disabled: !$ }, c.toLanguageString(_, p[_])), /* @__PURE__ */ r.createElement(H, { type: "reset" }, c.toLanguageString(z, p[z])))))));
158
+ ) : /* @__PURE__ */ l.createElement(ue, { show: (H || !!z) && !a.mobileMode }, /* @__PURE__ */ l.createElement("form", { className: "k-filter-menu", onSubmit: O, onReset: P }, /* @__PURE__ */ l.createElement("div", { className: "k-filter-menu-container" }, S ? /* @__PURE__ */ l.createElement(S, { ...b }) : /* @__PURE__ */ l.createElement(Fe, { ...b }), /* @__PURE__ */ l.createElement("div", { className: "k-actions k-actions-stretched" }, /* @__PURE__ */ l.createElement(Q, { themeColor: "primary", disabled: !_ }, u.toLanguageString(J, E[J])), /* @__PURE__ */ l.createElement(Q, { type: "reset" }, u.toLanguageString(K, E[K])))))));
138
159
  };
139
160
  export {
140
- pe as GridColumnMenuFilter,
141
- v as filterGroupByField,
142
- xe as isColumnMenuFilterActive,
143
- S as rootFilterOrDefault
161
+ Oe as GridColumnMenuFilter,
162
+ x as filterGroupByField,
163
+ Ne as isColumnMenuFilterActive,
164
+ k as rootFilterOrDefault
144
165
  };
@@ -6,4 +6,4 @@
6
6
  *-------------------------------------------------------------------------------------------
7
7
  */
8
8
  "use client";
9
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const f=require("react"),d=require("@progress/kendo-react-dropdowns"),g=require("@progress/kendo-react-inputs"),h=require("@progress/kendo-react-dateinputs"),i=require("../filterCommon.js");function b(e){const l=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const o in e)if(o!=="default"){const c=Object.getOwnPropertyDescriptor(e,o);Object.defineProperty(l,o,c.get?c:{enumerable:!0,get:()=>e[o]})}}return l.default=e,Object.freeze(l)}const a=b(f),D=e=>{const l=()=>{if(e.filterType==="boolean")return;const n=e.operators.find(r=>r.operator===e.operator)||null;return a.createElement(d.DropDownList,{value:n,onChange:c,data:e.operators,textField:"text"})},o=(n,r)=>{i.cellInputChange(n,r,e)},c=n=>{i.cellOperatorChange(n,e.value,e.onChange)},m=n=>{i.cellBoolDropdownChange(n,e.onChange)},C=(n,r,s)=>{switch(n){case"numeric":return a.createElement(g.NumericTextBox,{value:r,onChange:t=>{o(t.value,t.syntheticEvent)},rangeOnEnter:!1});case"date":return a.createElement(h.DatePicker,{value:r,onChange:t=>{o(t.value,t.syntheticEvent)}});case"boolean":{const t=u=>u==null;return a.createElement(d.DropDownList,{onChange:m,value:s.find(u=>u.operator===(t(r)?"":r)),data:s,textField:"text"})}default:return a.createElement(g.Input,{value:r||"",onChange:t=>{o(t.target.value,t.syntheticEvent)}})}};return a.createElement(a.Fragment,null,l(),C(e.filterType,e.value,e.booleanValues))};exports.GridColumnMenuFilterCell=D;
9
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const b=require("react"),d=require("@progress/kendo-react-dropdowns"),s=require("@progress/kendo-react-inputs"),h=require("@progress/kendo-react-dateinputs"),c=require("../filterCommon.js"),p=require("../GridClientWrapper.js");function D(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const a in e)if(a!=="default"){const l=Object.getOwnPropertyDescriptor(e,a);Object.defineProperty(t,a,l.get?l:{enumerable:!0,get:()=>e[a]})}}return t.default=e,Object.freeze(t)}const r=D(b),v=e=>{const t=r.useContext(p.GridContext),a=()=>{if(e.filterType==="boolean")return;const n=e.operators.find(o=>o.operator===e.operator)||null;return r.createElement(d.DropDownList,{adaptive:t.adaptive,size:t.mobileMode?"large":"medium",value:n,onChange:m,data:e.operators,textField:"text"})},l=n=>{c.cellInputChange(n.value,n.syntheticEvent,e)},m=n=>{c.cellOperatorChange(n,e.value,e.onChange)},g=n=>{c.cellBoolDropdownChange(n,e.onChange)},C=(n,o,u)=>{switch(n){case"numeric":return r.createElement(s.NumericTextBox,{value:o,size:t.mobileMode?"large":"medium",onChange:l,rangeOnEnter:!1});case"date":return r.createElement(h.DatePicker,{value:o,size:t.mobileMode?"large":"medium",onChange:l});case"boolean":{const f=i=>i==null;return r.createElement(d.DropDownList,{adaptive:t.adaptive,onChange:g,size:t.mobileMode?"large":"medium",value:u.find(i=>i.operator===(f(o)?"":o)),data:u,textField:"text"})}default:return r.createElement(s.Input,{className:"k-input-lg",value:o||"",onChange:l})}};return r.createElement(r.Fragment,null,a(),C(e.filterType,e.value,e.booleanValues))};exports.GridColumnMenuFilterCell=v;
@@ -6,72 +6,75 @@
6
6
  *-------------------------------------------------------------------------------------------
7
7
  */
8
8
  "use client";
9
- import * as o from "react";
10
- import { DropDownList as i } from "@progress/kendo-react-dropdowns";
11
- import { Input as C, NumericTextBox as d } from "@progress/kendo-react-inputs";
9
+ import * as n from "react";
10
+ import { DropDownList as m } from "@progress/kendo-react-dropdowns";
11
+ import { Input as s, NumericTextBox as h } from "@progress/kendo-react-inputs";
12
12
  import { DatePicker as f } from "@progress/kendo-react-dateinputs";
13
- import { cellOperatorChange as E, cellInputChange as s, cellBoolDropdownChange as v } from "../filterCommon.mjs";
14
- const w = (e) => {
15
- const u = () => {
13
+ import { cellOperatorChange as x, cellInputChange as p, cellBoolDropdownChange as E } from "../filterCommon.mjs";
14
+ import { GridContext as b } from "../GridClientWrapper.mjs";
15
+ const z = (e) => {
16
+ const r = n.useContext(b), c = () => {
16
17
  if (e.filterType === "boolean")
17
18
  return;
18
- const n = e.operators.find((r) => r.operator === e.operator) || null;
19
- return /* @__PURE__ */ o.createElement(i, { value: n, onChange: m, data: e.operators, textField: "text" });
20
- }, l = (n, r) => {
21
- s(n, r, e);
22
- }, m = (n) => {
23
- E(n, e.value, e.onChange);
24
- }, h = (n) => {
25
- v(n, e.onChange);
26
- }, g = (n, r, c) => {
27
- switch (n) {
19
+ const t = e.operators.find((o) => o.operator === e.operator) || null;
20
+ return /* @__PURE__ */ n.createElement(
21
+ m,
22
+ {
23
+ adaptive: r.adaptive,
24
+ size: r.mobileMode ? "large" : "medium",
25
+ value: t,
26
+ onChange: d,
27
+ data: e.operators,
28
+ textField: "text"
29
+ }
30
+ );
31
+ }, l = (t) => {
32
+ p(t.value, t.syntheticEvent, e);
33
+ }, d = (t) => {
34
+ x(t, e.value, e.onChange);
35
+ }, u = (t) => {
36
+ E(t, e.onChange);
37
+ }, g = (t, o, i) => {
38
+ switch (t) {
28
39
  case "numeric":
29
- return /* @__PURE__ */ o.createElement(
30
- d,
40
+ return /* @__PURE__ */ n.createElement(
41
+ h,
31
42
  {
32
- value: r,
33
- onChange: (t) => {
34
- l(t.value, t.syntheticEvent);
35
- },
43
+ value: o,
44
+ size: r.mobileMode ? "large" : "medium",
45
+ onChange: l,
36
46
  rangeOnEnter: !1
37
47
  }
38
48
  );
39
49
  case "date":
40
- return /* @__PURE__ */ o.createElement(
50
+ return /* @__PURE__ */ n.createElement(
41
51
  f,
42
52
  {
43
- value: r,
44
- onChange: (t) => {
45
- l(t.value, t.syntheticEvent);
46
- }
53
+ value: o,
54
+ size: r.mobileMode ? "large" : "medium",
55
+ onChange: l
47
56
  }
48
57
  );
49
58
  case "boolean": {
50
- const t = (a) => a == null;
51
- return /* @__PURE__ */ o.createElement(
52
- i,
59
+ const C = (a) => a == null;
60
+ return /* @__PURE__ */ n.createElement(
61
+ m,
53
62
  {
54
- onChange: h,
55
- value: c.find((a) => a.operator === (t(r) ? "" : r)),
56
- data: c,
63
+ adaptive: r.adaptive,
64
+ onChange: u,
65
+ size: r.mobileMode ? "large" : "medium",
66
+ value: i.find((a) => a.operator === (C(o) ? "" : o)),
67
+ data: i,
57
68
  textField: "text"
58
69
  }
59
70
  );
60
71
  }
61
72
  default:
62
- return /* @__PURE__ */ o.createElement(
63
- C,
64
- {
65
- value: r || "",
66
- onChange: (t) => {
67
- l(t.target.value, t.syntheticEvent);
68
- }
69
- }
70
- );
73
+ return /* @__PURE__ */ n.createElement(s, { className: "k-input-lg", value: o || "", onChange: l });
71
74
  }
72
75
  };
73
- return /* @__PURE__ */ o.createElement(o.Fragment, null, u(), g(e.filterType, e.value, e.booleanValues));
76
+ return /* @__PURE__ */ n.createElement(n.Fragment, null, c(), g(e.filterType, e.value, e.booleanValues));
74
77
  };
75
78
  export {
76
- w as GridColumnMenuFilterCell
79
+ z as GridColumnMenuFilterCell
77
80
  };
@@ -6,4 +6,4 @@
6
6
  *-------------------------------------------------------------------------------------------
7
7
  */
8
8
  "use client";
9
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("react"),o=require("./GridColumnMenuFilterCell.js"),s=require("@progress/kendo-react-dropdowns");function d(e){const r=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const l=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(r,n,l.get?l:{enumerable:!0,get:()=>e[n]})}}return r.default=e,Object.freeze(r)}const t=d(u),m=e=>{const{firstFilterProps:r,hideSecondFilter:n,secondFilterProps:l,logicData:i,logicValue:a,onLogicChange:c}=e;return t.createElement(t.Fragment,null,t.createElement(o.GridColumnMenuFilterCell,{...r}),!n&&t.createElement(t.Fragment,null,t.createElement(s.DropDownList,{data:i,value:a,onChange:c,className:"k-filter-and",textField:"text"}),t.createElement(o.GridColumnMenuFilterCell,{...l})))};exports.GridColumnMenuFilterUI=m;
9
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react"),d=require("./GridColumnMenuFilterCell.js"),m=require("../GridClientWrapper.js"),u=require("@progress/kendo-react-buttons");function g(t){const r=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const n in t)if(n!=="default"){const l=Object.getOwnPropertyDescriptor(t,n);Object.defineProperty(r,n,l.get?l:{enumerable:!0,get:()=>t[n]})}}return r.default=t,Object.freeze(r)}const e=g(s),p=t=>{const{firstFilterProps:r,hideSecondFilter:n,secondFilterProps:l,logicValue:o,onLogicChange:i}=t,c=e.useContext(m.GridContext),a=(o==null?void 0:o.operator)==="and";return e.createElement(e.Fragment,null,e.createElement(d.GridColumnMenuFilterCell,{...r}),!n&&e.createElement(e.Fragment,null,e.createElement(u.ButtonGroup,null,e.createElement(u.Button,{type:"button",value:"and",size:c.mobileMode?"large":"medium",togglable:!0,selected:a,onClick:i},"And"),e.createElement(u.Button,{type:"button",value:"or",size:c.mobileMode?"large":"medium",togglable:!0,selected:!a,onClick:i},"Or")),e.createElement(d.GridColumnMenuFilterCell,{...l})))};exports.GridColumnMenuFilterUI=p;
@@ -7,21 +7,35 @@
7
7
  */
8
8
  "use client";
9
9
  import * as e from "react";
10
- import { GridColumnMenuFilterCell as t } from "./GridColumnMenuFilterCell.mjs";
11
- import { DropDownList as c } from "@progress/kendo-react-dropdowns";
12
- const d = (r) => {
13
- const { firstFilterProps: l, hideSecondFilter: n, secondFilterProps: o, logicData: a, logicValue: i, onLogicChange: m } = r;
14
- return /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement(t, { ...l }), !n && /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement(
15
- c,
10
+ import { GridColumnMenuFilterCell as l } from "./GridColumnMenuFilterCell.mjs";
11
+ import { GridContext as d } from "../GridClientWrapper.mjs";
12
+ import { ButtonGroup as s, Button as m } from "@progress/kendo-react-buttons";
13
+ const E = (i) => {
14
+ const { firstFilterProps: a, hideSecondFilter: c, secondFilterProps: u, logicValue: t, onLogicChange: r } = i, o = e.useContext(d), n = (t == null ? void 0 : t.operator) === "and";
15
+ return /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement(l, { ...a }), !c && /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement(s, null, /* @__PURE__ */ e.createElement(
16
+ m,
16
17
  {
17
- data: a,
18
- value: i,
19
- onChange: m,
20
- className: "k-filter-and",
21
- textField: "text"
22
- }
23
- ), /* @__PURE__ */ e.createElement(t, { ...o })));
18
+ type: "button",
19
+ value: "and",
20
+ size: o.mobileMode ? "large" : "medium",
21
+ togglable: !0,
22
+ selected: n,
23
+ onClick: r
24
+ },
25
+ "And"
26
+ ), /* @__PURE__ */ e.createElement(
27
+ m,
28
+ {
29
+ type: "button",
30
+ value: "or",
31
+ size: o.mobileMode ? "large" : "medium",
32
+ togglable: !0,
33
+ selected: !n,
34
+ onClick: r
35
+ },
36
+ "Or"
37
+ )), /* @__PURE__ */ e.createElement(l, { ...u })));
24
38
  };
25
39
  export {
26
- d as GridColumnMenuFilterUI
40
+ E as GridColumnMenuFilterUI
27
41
  };
@@ -6,4 +6,4 @@
6
6
  *-------------------------------------------------------------------------------------------
7
7
  */
8
8
  "use client";
9
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=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(l),u=t=>{const{title:n,iconClass:e,svgIcon:c,selected:a}=t;return r.createElement("div",{onClick:t.onClick,className:`k-columnmenu-item ${a?"k-selected":""}`},(e||c)&&r.createElement(o.IconWrap,{name:e&&o.toIconName(e),icon:c}),n)};exports.GridColumnMenuItem=u;
9
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=require("react"),i=require("@progress/kendo-react-common"),p=require("../GridClientWrapper.js"),a=require("@progress/kendo-svg-icons");function f(n){const c=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(n){for(const e in n)if(e!=="default"){const o=Object.getOwnPropertyDescriptor(n,e);Object.defineProperty(c,e,o.get?o:{enumerable:!0,get:()=>n[e]})}}return c.default=n,Object.freeze(c)}const r=f(d),I=n=>{const{title:c,iconClass:e,svgIcon:o,selected:u,expandable:s,expanded:m}=n,t=r.useContext(p.GridContext);let l;return s&&(t!=null&&t.mobileMode?l=(t==null?void 0:t.dir)==="rtl"?a.chevronLeftIcon:a.chevronRightIcon:l=m?a.chevronUpIcon:a.chevronDownIcon),r.createElement("div",{onClick:n.onClick,className:`k-columnmenu-item ${u?"k-selected":""}`},(e||o)&&r.createElement(i.IconWrap,{name:e&&i.toIconName(e),icon:o}),c,r.createElement("span",{className:"k-spacer"}),s&&r.createElement(i.IconWrap,{icon:l}))};exports.GridColumnMenuItem=I;
@@ -6,12 +6,15 @@
6
6
  *-------------------------------------------------------------------------------------------
7
7
  */
8
8
  "use client";
9
- import * as c from "react";
10
- import { IconWrap as l, toIconName as a } 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 && a(e), icon: n }), o);
9
+ import * as o from "react";
10
+ import { IconWrap as a, toIconName as p } from "@progress/kendo-react-common";
11
+ import { GridContext as I } from "../GridClientWrapper.mjs";
12
+ import { chevronLeftIcon as d, chevronRightIcon as v, chevronDownIcon as f, chevronUpIcon as h } from "@progress/kendo-svg-icons";
13
+ const C = (t) => {
14
+ const { title: l, iconClass: n, svgIcon: m, selected: i, expandable: r, expanded: s } = t, e = o.useContext(I);
15
+ let c;
16
+ return r && (e != null && e.mobileMode ? c = (e == null ? void 0 : e.dir) === "rtl" ? d : v : c = s ? h : f), /* @__PURE__ */ o.createElement("div", { onClick: t.onClick, className: `k-columnmenu-item ${i ? "k-selected" : ""}` }, (n || m) && /* @__PURE__ */ o.createElement(a, { name: n && p(n), icon: m }), l, /* @__PURE__ */ o.createElement("span", { className: "k-spacer" }), r && /* @__PURE__ */ o.createElement(a, { icon: c }));
14
17
  };
15
18
  export {
16
- r as GridColumnMenuItem
19
+ C as GridColumnMenuItem
17
20
  };
@@ -6,4 +6,4 @@
6
6
  *-------------------------------------------------------------------------------------------
7
7
  */
8
8
  "use client";
9
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const W=require("react"),_=require("@progress/kendo-react-popup"),a=require("@progress/kendo-react-common"),j=require("@progress/kendo-svg-icons"),E=require("../messages/index.js"),z=require("@progress/kendo-react-intl");function A(n){const c=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(n){for(const u in n)if(u!=="default"){const l=Object.getOwnPropertyDescriptor(n,u);Object.defineProperty(c,u,l.get?l:{enumerable:!0,get:()=>n[u]})}}return c.default=n,Object.freeze(c)}const o=A(W),$=[".k-columnmenu-item-content",".k-filter-menu-container"].map(n=>a.TABBABLE_ELEMENTS.map(c=>`${n} ${c}`)),x=[[".k-tabstrip-items"],[".k-columnmenu-item"],...$],F=n=>{const[c,u]=o.useState(!1),l=o.useRef(null),i=o.useRef(null),s=o.useRef(null),m=o.useRef(0),{columnMenu:M,...v}=n,{column:k,columnMenuIcon:d,navigatable:w}=n,p=z.useLocalization(),b=k.title||k.field,y=b?`${b} `:"",C="#",D=e=>{const t=a.getActiveElement(document);clearTimeout(m.current),m.current=window.setTimeout(()=>{t&&e.relatedTarget!==l.current&&i.current&&!i.current.contains(t)&&f()})},S=()=>{clearTimeout(m.current)},T=e=>{e.preventDefault(),c&&n.onCloseMenu&&n.onCloseMenu(),u(!c)},f=()=>{n.onCloseMenu&&n.onCloseMenu(),u(!1),!n.navigatable&&l.current&&l.current.focus()},I=e=>{var t;if(e.keyCode===a.Keys.tab){const r=e.target,h=r&&((t=r.closest(".k-grid"))==null?void 0:t.getElementsByClassName("k-grid-content")[0]);h&&h.scrollWidth>h.clientWidth&&r.scrollIntoView({inline:"center"})}},g=o.useMemo(()=>n.show!==void 0?n.show:c,[n.show,c]),R=e=>{var t;(t=s.current)==null||t.triggerKeyboardEvent(e)},O=e=>{var t;(t=s.current)==null||t.triggerMouseEvent(e)},K=(e,t,r)=>{r.preventDefault(),r.shiftKey?t.focusPrevious(e):t.focusNext(e)},P=(e,t,r)=>{e&&e.click()},q=(e,t,r)=>{r.preventDefault(),f()},B=(e,t,r)=>{t.focusElement(e)},N=e=>{!e.isAnchorClicked&&u(!1)};return o.useEffect(()=>(g&&i.current&&(s.current=new a.Navigation({tabIndex:0,root:i,selectors:x,keyboardEvents:{keydown:{Tab:K,Enter:P,Escape:q}},mouseEvents:{mousedown:B}}),s.current.focusElement(s.current.first,null)),()=>{s.current&&(s.current=null)}),[g]),o.createElement(o.Fragment,null,o.createElement("a",{className:"k-grid-header-menu k-grid-column-menu",ref:l,onClick:T,onKeyDown:I,href:C,tabIndex:w?-1:void 0,"aria-label":`${w?"":y}${p.toLanguageString(E.columnMenu,E.messages[E.columnMenu])}`},d?o.createElement(a.IconWrap,{name:d.name,icon:d}):o.createElement(a.IconWrap,{name:"more-vertical",icon:j.moreVerticalIcon})),o.createElement(_.Popup,{anchor:l.current,show:g,popupClass:"k-column-menu k-column-menu-popup k-grid-columnmenu-popup",onMouseDownOutside:N},o.createElement("div",{ref:i,onBlur:D,onFocus:S,onMouseDown:O,onKeyDown:R,style:{outline:"none"}},M&&o.createElement(M,{...v,onCloseMenu:f}))))};exports.GridColumnMenuWrapper=F;
9
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const N=require("react"),W=require("@progress/kendo-react-popup"),a=require("@progress/kendo-react-common"),B=require("@progress/kendo-svg-icons"),h=require("../messages/index.js"),_=require("@progress/kendo-react-intl"),j=require("../GridClientWrapper.js"),z=require("./adaptiveContext/GridColumnMenuAdaptiveContext.js"),$=require("./adaptiveContent/GridAdaptiveColumnMenu.js");function F(t){const u=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const c in t)if(c!=="default"){const s=Object.getOwnPropertyDescriptor(t,c);Object.defineProperty(u,c,s.get?s:{enumerable:!0,get:()=>t[c]})}}return u.default=t,Object.freeze(u)}const n=F(N),L=[".k-columnmenu-item-content",".k-filter-menu-container"].map(t=>a.TABBABLE_ELEMENTS.map(u=>`${t} ${u}`)),V=[[".k-tabstrip-items"],[".k-columnmenu-item"],...L],H=t=>{const u=n.useContext(j.GridContext),[c,s]=n.useState(!1),i=n.useRef(null),m=n.useRef(null),l=n.useRef(null),M=n.useRef(0),{columnMenu:d,...C}=t,{column:b,columnMenuIcon:E,navigatable:p}=t,w=_.useLocalization(),k=b.title||b.field,y=k?`${k} `:"",D="#",S=e=>{const o=a.getActiveElement(document);clearTimeout(M.current),M.current=window.setTimeout(()=>{!u.mobileMode&&o&&e.relatedTarget!==i.current&&m.current&&!m.current.contains(o)&&f()})},T=()=>{clearTimeout(M.current)},q=e=>{e.preventDefault(),c&&t.onCloseMenu&&t.onCloseMenu(),s(!c)},f=()=>{t.onCloseMenu&&t.onCloseMenu(),s(!1),!t.navigatable&&i.current&&i.current.focus()},A=e=>{var o;if(e.keyCode===a.Keys.tab){const r=e.target,v=r&&((o=r.closest(".k-grid"))==null?void 0:o.getElementsByClassName("k-grid-content")[0]);v&&v.scrollWidth>v.clientWidth&&r.scrollIntoView({inline:"center"})}},g=n.useMemo(()=>t.show!==void 0?t.show:c,[t.show,c]),I=e=>{var o;(o=l.current)==null||o.triggerKeyboardEvent(e)},R=e=>{var o;(o=l.current)==null||o.triggerMouseEvent(e)},x=(e,o,r)=>{r.preventDefault(),r.shiftKey?o.focusPrevious(e):o.focusNext(e)},G=(e,o,r)=>{e&&(r.preventDefault(),e.click())},O=(e,o,r)=>{r.preventDefault(),f()},P=(e,o,r)=>{o.focusElement(e)},K=e=>{!e.isAnchorClicked&&s(!1)};return n.useEffect(()=>(g&&m.current&&(l.current=new a.Navigation({tabIndex:0,root:m,selectors:V,keyboardEvents:{keydown:{Tab:x,Enter:G,Escape:O}},mouseEvents:{mousedown:P}}),l.current.focusElement(l.current.first,null)),()=>{l.current&&(l.current=null)}),[g]),n.createElement(n.Fragment,null,n.createElement("a",{className:"k-grid-header-menu k-grid-column-menu",ref:i,onClick:q,onKeyDown:A,href:D,tabIndex:p?-1:void 0,"aria-label":`${p?"":y}${w.toLanguageString(h.columnMenu,h.messages[h.columnMenu])}`},E?n.createElement(a.IconWrap,{name:E.name,icon:E}):n.createElement(a.IconWrap,{name:"more-vertical",icon:B.moreVerticalIcon})),n.createElement(z.GridColumnMenuAdaptiveProvider,null,u.mobileMode?n.createElement($.GridAdaptiveColumnMenu,{computedShow:g,ColumnMenu:d,closeMenu:f},d&&n.createElement(d,{...C,onCloseMenu:f})):n.createElement(W.Popup,{anchor:i.current,show:g,popupClass:"k-grid-columnmenu-popup",onMouseDownOutside:K},n.createElement("div",{ref:m,onBlur:S,onFocus:T,onMouseDown:R,onKeyDown:I,className:"k-column-menu k-column-menu-md"},d&&n.createElement(d,{...C,onCloseMenu:f})))))};exports.GridColumnMenuWrapper=H;