primereact 9.1.0 → 9.2.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.
Files changed (261) hide show
  1. package/accordion/package.json +7 -0
  2. package/api/api.d.ts +2 -2
  3. package/api/package.json +7 -0
  4. package/autocomplete/autocomplete.cjs.js +1 -0
  5. package/autocomplete/autocomplete.cjs.min.js +1 -1
  6. package/autocomplete/autocomplete.esm.js +1 -0
  7. package/autocomplete/autocomplete.esm.min.js +1 -1
  8. package/autocomplete/autocomplete.js +1 -0
  9. package/autocomplete/autocomplete.min.js +1 -1
  10. package/autocomplete/package.json +7 -0
  11. package/avatar/avatar.cjs.js +2 -2
  12. package/avatar/avatar.cjs.min.js +1 -1
  13. package/avatar/avatar.esm.js +2 -2
  14. package/avatar/avatar.esm.min.js +1 -1
  15. package/avatar/avatar.js +2 -2
  16. package/avatar/avatar.min.js +1 -1
  17. package/avatar/package.json +7 -0
  18. package/avatargroup/package.json +7 -0
  19. package/badge/package.json +7 -0
  20. package/blockui/package.json +7 -0
  21. package/breadcrumb/package.json +7 -0
  22. package/button/package.json +7 -0
  23. package/calendar/calendar.cjs.js +2 -2
  24. package/calendar/calendar.cjs.min.js +1 -1
  25. package/calendar/calendar.esm.js +2 -2
  26. package/calendar/calendar.esm.min.js +1 -1
  27. package/calendar/calendar.js +2 -2
  28. package/calendar/calendar.min.js +1 -1
  29. package/calendar/package.json +7 -0
  30. package/card/package.json +7 -0
  31. package/carousel/package.json +7 -0
  32. package/cascadeselect/package.json +7 -0
  33. package/chart/package.json +7 -0
  34. package/checkbox/package.json +7 -0
  35. package/chip/package.json +7 -0
  36. package/chips/package.json +7 -0
  37. package/colorpicker/package.json +7 -0
  38. package/column/package.json +7 -0
  39. package/columngroup/package.json +7 -0
  40. package/confirmdialog/package.json +7 -0
  41. package/confirmpopup/package.json +7 -0
  42. package/contextmenu/contextmenu.cjs.js +61 -18
  43. package/contextmenu/contextmenu.cjs.min.js +1 -1
  44. package/contextmenu/contextmenu.d.ts +9 -0
  45. package/contextmenu/contextmenu.esm.js +63 -20
  46. package/contextmenu/contextmenu.esm.min.js +1 -1
  47. package/contextmenu/contextmenu.js +61 -18
  48. package/contextmenu/contextmenu.min.js +1 -1
  49. package/contextmenu/package.json +7 -0
  50. package/core/core.js +226 -115
  51. package/core/core.min.js +4 -4
  52. package/csstransition/package.json +7 -0
  53. package/datascroller/package.json +7 -0
  54. package/datatable/datatable.cjs.js +84 -79
  55. package/datatable/datatable.cjs.min.js +1 -1
  56. package/datatable/datatable.d.ts +2 -11
  57. package/datatable/datatable.esm.js +85 -80
  58. package/datatable/datatable.esm.min.js +1 -1
  59. package/datatable/datatable.js +84 -79
  60. package/datatable/datatable.min.css +1 -1
  61. package/datatable/datatable.min.js +1 -1
  62. package/datatable/package.json +7 -0
  63. package/dataview/package.json +7 -0
  64. package/deferredcontent/package.json +7 -0
  65. package/dialog/package.json +7 -0
  66. package/divider/package.json +7 -0
  67. package/dock/package.json +7 -0
  68. package/dropdown/dropdown.cjs.js +1 -0
  69. package/dropdown/dropdown.cjs.min.js +1 -1
  70. package/dropdown/dropdown.esm.js +1 -0
  71. package/dropdown/dropdown.esm.min.js +1 -1
  72. package/dropdown/dropdown.js +1 -0
  73. package/dropdown/dropdown.min.js +1 -1
  74. package/dropdown/package.json +7 -0
  75. package/editor/package.json +7 -0
  76. package/fieldset/package.json +7 -0
  77. package/fileupload/package.json +7 -0
  78. package/galleria/package.json +7 -0
  79. package/hooks/hooks.cjs.js +34 -2
  80. package/hooks/hooks.cjs.min.js +1 -1
  81. package/hooks/hooks.d.ts +13 -0
  82. package/hooks/hooks.esm.js +34 -3
  83. package/hooks/hooks.esm.min.js +1 -1
  84. package/hooks/hooks.js +34 -2
  85. package/hooks/hooks.min.js +1 -1
  86. package/hooks/package.json +7 -0
  87. package/image/package.json +7 -0
  88. package/inplace/package.json +7 -0
  89. package/inputmask/package.json +7 -0
  90. package/inputnumber/package.json +7 -0
  91. package/inputswitch/package.json +7 -0
  92. package/inputtext/inputtext.min.css +1 -1
  93. package/inputtext/package.json +7 -0
  94. package/inputtextarea/package.json +7 -0
  95. package/keyfilter/package.json +7 -0
  96. package/knob/package.json +7 -0
  97. package/listbox/listbox.cjs.js +5 -4
  98. package/listbox/listbox.cjs.min.js +1 -1
  99. package/listbox/listbox.esm.js +5 -4
  100. package/listbox/listbox.esm.min.js +1 -1
  101. package/listbox/listbox.js +5 -4
  102. package/listbox/listbox.min.js +1 -1
  103. package/listbox/package.json +7 -0
  104. package/megamenu/megamenu.cjs.js +91 -6
  105. package/megamenu/megamenu.cjs.min.js +1 -1
  106. package/megamenu/megamenu.d.ts +9 -0
  107. package/megamenu/megamenu.esm.js +93 -8
  108. package/megamenu/megamenu.esm.min.js +1 -1
  109. package/megamenu/megamenu.js +91 -6
  110. package/megamenu/megamenu.min.css +1 -1
  111. package/megamenu/megamenu.min.js +1 -1
  112. package/megamenu/package.json +7 -0
  113. package/mention/package.json +7 -0
  114. package/menu/package.json +7 -0
  115. package/menubar/package.json +7 -0
  116. package/menuitem/package.json +4 -0
  117. package/message/package.json +7 -0
  118. package/messages/package.json +7 -0
  119. package/multiselect/multiselect.cjs.js +1 -0
  120. package/multiselect/multiselect.cjs.min.js +1 -1
  121. package/multiselect/multiselect.esm.js +1 -0
  122. package/multiselect/multiselect.esm.min.js +1 -1
  123. package/multiselect/multiselect.js +1 -0
  124. package/multiselect/multiselect.min.js +1 -1
  125. package/multiselect/package.json +7 -0
  126. package/multistatecheckbox/package.json +7 -0
  127. package/orderlist/package.json +7 -0
  128. package/organizationchart/package.json +7 -0
  129. package/overlaypanel/package.json +7 -0
  130. package/overlayservice/package.json +7 -0
  131. package/package.json +1 -1
  132. package/paginator/package.json +7 -0
  133. package/panel/package.json +7 -0
  134. package/panelmenu/package.json +7 -0
  135. package/password/package.json +7 -0
  136. package/picklist/package.json +7 -0
  137. package/portal/package.json +6 -0
  138. package/primereact.all.cjs.js +554 -244
  139. package/primereact.all.cjs.min.js +1 -1
  140. package/primereact.all.esm.js +554 -245
  141. package/primereact.all.esm.min.js +1 -1
  142. package/primereact.all.js +554 -244
  143. package/primereact.all.min.js +1 -1
  144. package/progressbar/package.json +7 -0
  145. package/progressspinner/package.json +7 -0
  146. package/radiobutton/package.json +7 -0
  147. package/rating/package.json +7 -0
  148. package/resources/primereact.css +781 -832
  149. package/resources/primereact.min.css +1 -1
  150. package/resources/themes/arya-blue/theme.css +130 -2
  151. package/resources/themes/arya-green/theme.css +130 -2
  152. package/resources/themes/arya-orange/theme.css +130 -2
  153. package/resources/themes/arya-purple/theme.css +130 -2
  154. package/resources/themes/bootstrap4-dark-blue/theme.css +131 -2
  155. package/resources/themes/bootstrap4-dark-purple/theme.css +131 -2
  156. package/resources/themes/bootstrap4-light-blue/theme.css +131 -2
  157. package/resources/themes/bootstrap4-light-purple/theme.css +131 -2
  158. package/resources/themes/fluent-light/theme.css +131 -2
  159. package/resources/themes/lara-dark-blue/theme.css +131 -2
  160. package/resources/themes/lara-dark-indigo/theme.css +131 -2
  161. package/resources/themes/lara-dark-purple/theme.css +131 -2
  162. package/resources/themes/lara-dark-teal/theme.css +131 -2
  163. package/resources/themes/lara-light-blue/theme.css +131 -2
  164. package/resources/themes/lara-light-indigo/theme.css +131 -2
  165. package/resources/themes/lara-light-purple/theme.css +131 -2
  166. package/resources/themes/lara-light-teal/theme.css +131 -2
  167. package/resources/themes/luna-amber/theme.css +131 -2
  168. package/resources/themes/luna-blue/theme.css +131 -2
  169. package/resources/themes/luna-green/theme.css +131 -2
  170. package/resources/themes/luna-pink/theme.css +131 -2
  171. package/resources/themes/md-dark-deeppurple/theme.css +131 -2
  172. package/resources/themes/md-dark-indigo/theme.css +131 -2
  173. package/resources/themes/md-light-deeppurple/theme.css +131 -2
  174. package/resources/themes/md-light-indigo/theme.css +131 -2
  175. package/resources/themes/mdc-dark-deeppurple/theme.css +131 -2
  176. package/resources/themes/mdc-dark-indigo/theme.css +131 -2
  177. package/resources/themes/mdc-light-deeppurple/theme.css +131 -2
  178. package/resources/themes/mdc-light-indigo/theme.css +131 -2
  179. package/resources/themes/mira/theme.css +131 -2
  180. package/resources/themes/nano/theme.css +131 -2
  181. package/resources/themes/nova/theme.css +131 -2
  182. package/resources/themes/nova-accent/theme.css +131 -2
  183. package/resources/themes/nova-alt/theme.css +131 -2
  184. package/resources/themes/rhea/theme.css +131 -2
  185. package/resources/themes/saga-blue/theme.css +131 -2
  186. package/resources/themes/saga-green/theme.css +131 -2
  187. package/resources/themes/saga-orange/theme.css +131 -2
  188. package/resources/themes/saga-purple/theme.css +131 -2
  189. package/resources/themes/soho-dark/theme.css +131 -2
  190. package/resources/themes/soho-light/theme.css +131 -2
  191. package/resources/themes/tailwind-light/theme.css +131 -2
  192. package/resources/themes/vela-blue/theme.css +131 -2
  193. package/resources/themes/vela-green/theme.css +131 -2
  194. package/resources/themes/vela-orange/theme.css +131 -2
  195. package/resources/themes/vela-purple/theme.css +131 -2
  196. package/resources/themes/viva-dark/theme.css +131 -2
  197. package/resources/themes/viva-light/theme.css +131 -2
  198. package/ripple/package.json +7 -0
  199. package/row/package.json +7 -0
  200. package/scrollpanel/package.json +7 -0
  201. package/scrolltop/package.json +7 -0
  202. package/selectbutton/package.json +7 -0
  203. package/selectitem/package.json +4 -0
  204. package/sidebar/package.json +7 -0
  205. package/skeleton/package.json +7 -0
  206. package/slidemenu/package.json +7 -0
  207. package/slider/package.json +7 -0
  208. package/speeddial/package.json +7 -0
  209. package/splitbutton/package.json +7 -0
  210. package/splitter/package.json +7 -0
  211. package/steps/package.json +7 -0
  212. package/styleclass/package.json +7 -0
  213. package/tabmenu/package.json +7 -0
  214. package/tabview/package.json +7 -0
  215. package/tag/package.json +7 -0
  216. package/terminal/package.json +7 -0
  217. package/terminalservice/package.json +7 -0
  218. package/tieredmenu/package.json +7 -0
  219. package/tieredmenu/tieredmenu.cjs.js +69 -9
  220. package/tieredmenu/tieredmenu.cjs.min.js +1 -1
  221. package/tieredmenu/tieredmenu.d.ts +9 -0
  222. package/tieredmenu/tieredmenu.esm.js +71 -11
  223. package/tieredmenu/tieredmenu.esm.min.js +1 -1
  224. package/tieredmenu/tieredmenu.js +69 -9
  225. package/tieredmenu/tieredmenu.min.js +1 -1
  226. package/timeline/package.json +7 -0
  227. package/toast/package.json +7 -0
  228. package/toast/toast.min.css +1 -1
  229. package/togglebutton/package.json +7 -0
  230. package/toolbar/package.json +7 -0
  231. package/tooltip/package.json +7 -0
  232. package/tree/package.json +7 -0
  233. package/treenode/package.json +4 -0
  234. package/treeselect/package.json +7 -0
  235. package/treetable/package.json +7 -0
  236. package/treetable/treetable.cjs.js +12 -9
  237. package/treetable/treetable.cjs.min.js +1 -1
  238. package/treetable/treetable.d.ts +0 -5
  239. package/treetable/treetable.esm.js +12 -9
  240. package/treetable/treetable.esm.min.js +1 -1
  241. package/treetable/treetable.js +12 -9
  242. package/treetable/treetable.min.css +1 -1
  243. package/treetable/treetable.min.js +1 -1
  244. package/tristatecheckbox/package.json +7 -0
  245. package/utils/package.json +7 -0
  246. package/utils/utils.cjs.js +14 -9
  247. package/utils/utils.cjs.min.js +1 -1
  248. package/utils/utils.esm.js +14 -9
  249. package/utils/utils.esm.min.js +1 -1
  250. package/utils/utils.js +14 -9
  251. package/utils/utils.min.js +1 -1
  252. package/virtualscroller/package.json +7 -0
  253. package/virtualscroller/virtualscroller.cjs.js +177 -104
  254. package/virtualscroller/virtualscroller.cjs.min.js +1 -1
  255. package/virtualscroller/virtualscroller.d.ts +20 -0
  256. package/virtualscroller/virtualscroller.esm.js +177 -104
  257. package/virtualscroller/virtualscroller.esm.min.js +1 -1
  258. package/virtualscroller/virtualscroller.js +177 -104
  259. package/virtualscroller/virtualscroller.min.css +1 -1
  260. package/virtualscroller/virtualscroller.min.js +1 -1
  261. package/web-types.json +1 -1
@@ -109,6 +109,8 @@ var MegaMenuBase = {
109
109
  style: null,
110
110
  className: null,
111
111
  orientation: 'horizontal',
112
+ breakpoint: undefined,
113
+ scrollHeight: '400px',
112
114
  start: null,
113
115
  end: null,
114
116
  children: undefined
@@ -127,17 +129,41 @@ var MegaMenu = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
127
129
  _React$useState2 = _slicedToArray(_React$useState, 2),
128
130
  activeItemState = _React$useState2[0],
129
131
  setActiveItemState = _React$useState2[1];
132
+ var _React$useState3 = React__namespace.useState(null),
133
+ _React$useState4 = _slicedToArray(_React$useState3, 2),
134
+ attributeSelectorState = _React$useState4[0],
135
+ setAttributeSelectorState = _React$useState4[1];
136
+ var _React$useState5 = React__namespace.useState(false),
137
+ _React$useState6 = _slicedToArray(_React$useState5, 2),
138
+ mobileActiveState = _React$useState6[0],
139
+ setMobileActiveState = _React$useState6[1];
130
140
  var elementRef = React__namespace.useRef(null);
141
+ var styleElementRef = React__namespace.useRef(null);
142
+ var menuButtonRef = React__namespace.useRef(null);
131
143
  var horizontal = props.orientation === 'horizontal';
132
144
  var vertical = props.orientation === 'vertical';
145
+ var isMobileMode = hooks.useMatchMedia("screen and (max-width: ".concat(props.breakpoint, ")"), !!props.breakpoint);
133
146
  var _useEventListener = hooks.useEventListener({
134
147
  type: 'click',
135
148
  listener: function listener(event) {
136
- isOutsideClicked(event) && setActiveItemState(null);
149
+ if ((!isMobileMode || mobileActiveState) && isOutsideClicked(event)) {
150
+ setActiveItemState(null);
151
+ setMobileActiveState(false);
152
+ }
137
153
  }
138
154
  }),
139
155
  _useEventListener2 = _slicedToArray(_useEventListener, 1),
140
156
  bindDocumentClickListener = _useEventListener2[0];
157
+ var _useResizeListener = hooks.useResizeListener({
158
+ listener: function listener() {
159
+ if (!isMobileMode || mobileActiveState) {
160
+ setActiveItemState(null);
161
+ setMobileActiveState(false);
162
+ }
163
+ }
164
+ }),
165
+ _useResizeListener2 = _slicedToArray(_useResizeListener, 1),
166
+ bindDocumentResizeListener = _useResizeListener2[0];
141
167
  var onLeafClick = function onLeafClick(event, item) {
142
168
  if (item.disabled) {
143
169
  event.preventDefault();
@@ -153,9 +179,10 @@ var MegaMenu = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
153
179
  });
154
180
  }
155
181
  setActiveItemState(null);
182
+ setMobileActiveState(false);
156
183
  };
157
184
  var onCategoryMouseEnter = function onCategoryMouseEnter(event, item) {
158
- if (item.disabled) {
185
+ if (item.disabled || isMobileMode) {
159
186
  event.preventDefault();
160
187
  return;
161
188
  }
@@ -218,6 +245,13 @@ var MegaMenu = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
218
245
  var collapseMenu = function collapseMenu(item) {
219
246
  setActiveItemState(null);
220
247
  };
248
+ var toggle = function toggle(event) {
249
+ event.preventDefault();
250
+ setMobileActiveState(function (prevMobileActive) {
251
+ return !prevMobileActive;
252
+ });
253
+ setActiveItemState(null);
254
+ };
221
255
  var findNextItem = function findNextItem(item) {
222
256
  var nextItem = item.nextElementSibling;
223
257
  return nextItem ? utils.DomHandler.hasClass(nextItem, 'p-disabled') || !utils.DomHandler.hasClass(nextItem, 'p-menuitem') ? findNextItem(nextItem) : nextItem : null;
@@ -235,7 +269,7 @@ var MegaMenu = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
235
269
  prevItem && prevItem.children[0].focus();
236
270
  };
237
271
  var isOutsideClicked = function isOutsideClicked(event) {
238
- return elementRef.current && !(elementRef.current.isSameNode(event.target) || elementRef.current.contains(event.target));
272
+ return elementRef.current && !(elementRef.current.isSameNode(event.target) || elementRef.current.contains(event.target) || menuButtonRef.current && menuButtonRef.current.contains(event.target));
239
273
  };
240
274
  var getColumnClassName = function getColumnClassName(category) {
241
275
  var length = category.items ? category.items.length : 0;
@@ -268,13 +302,23 @@ var MegaMenu = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
268
302
  };
269
303
  });
270
304
  hooks.useMountEffect(function () {
305
+ if (props.breakpoint) {
306
+ !attributeSelectorState && setAttributeSelectorState(utils.UniqueComponentId());
307
+ }
271
308
  bindDocumentClickListener();
309
+ bindDocumentResizeListener();
272
310
  });
273
311
  hooks.useUpdateEffect(function () {
274
312
  var currentPanel = utils.DomHandler.findSingle(elementRef.current, '.p-menuitem-active > .p-megamenu-panel');
275
- if (activeItemState) {
313
+ if (activeItemState && !isMobileMode) {
276
314
  utils.ZIndexUtils.set('menu', currentPanel, PrimeReact__default["default"].autoZIndex, PrimeReact__default["default"].zIndex['menu']);
277
315
  }
316
+ if (isMobileMode) {
317
+ currentPanel && currentPanel.previousElementSibling.scrollIntoView({
318
+ block: 'nearest',
319
+ inline: 'nearest'
320
+ });
321
+ }
278
322
  return function () {
279
323
  utils.ZIndexUtils.clear(currentPanel);
280
324
  };
@@ -400,6 +444,26 @@ var MegaMenu = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
400
444
  }
401
445
  return null;
402
446
  };
447
+ var createStyle = function createStyle() {
448
+ if (!styleElementRef.current) {
449
+ styleElementRef.current = utils.DomHandler.createInlineStyle(PrimeReact__default["default"].nonce);
450
+ var selector = "".concat(attributeSelectorState);
451
+ var innerHTML = "\n@media screen and (max-width: ".concat(props.breakpoint, ") {\n .p-megamenu[").concat(selector, "] > .p-megamenu-root-list .p-menuitem-active .p-megamenu-panel {\n position: relative;\n left: 0 !important;\n box-shadow: none;\n border-radius: 0;\n background: inherit;\n }\n\n .p-megamenu[").concat(selector, "] .p-menuitem-active > .p-menuitem-link > .p-submenu-icon {\n transform: rotate(-180deg);\n }\n\n .p-megamenu[").concat(selector, "] .p-megamenu-grid {\n flex-wrap: wrap;\n }\n\n ").concat(horizontal ? "\n.p-megamenu[".concat(selector, "] .p-megamenu-button {\n display: flex;\n}\n\n.p-megamenu[").concat(selector, "].p-megamenu-horizontal {\n position: relative;\n}\n\n.p-megamenu[").concat(selector, "].p-megamenu-horizontal .p-megamenu-root-list {\n display: none;\n}\n\n.p-megamenu-horizontal[").concat(selector, "] div[class*=\"p-megamenu-col-\"] {\n width: auto;\n flex: 1;\n padding: 0;\n}\n\n.p-megamenu[").concat(selector, "].p-megamenu-mobile-active .p-megamenu-root-list {\n display: flex;\n flex-direction: column;\n position: absolute;\n width: 100%;\n top: 100%;\n left: 0;\n z-index: 1;\n}\n ") : '', "\n\n ").concat(vertical ? "\n.p-megamenu-vertical[".concat(selector, "] {\n width: 100%;\n}\n\n.p-megamenu-vertical[").concat(selector, "] .p-megamenu-root-list {\n max-height: ").concat(props.scrollHeight, ";\n overflow: ").concat(props.scrollHeight ? 'auto' : '', ";\n}\n.p-megamenu-vertical[").concat(selector, "] div[class*=\"p-megamenu-col-\"] {\n width: 100%;\n padding: 0;\n}\n\n.p-megamenu-vertical[").concat(selector, "] .p-megamenu-submenu {\n width: 100%;\n}\n\n.p-megamenu-vertical[").concat(selector, "] div[class*=\"p-megamenu-col-\"] .p-megamenu-submenu-header {\n background: inherit;\n}\n\n.p-megamenu-vertical[").concat(selector, "] .p-submenu-icon:before {\n content: \"\\e930\";\n}\n ") : '', "\n}\n");
452
+ styleElementRef.current.innerHTML = innerHTML;
453
+ }
454
+ };
455
+ var destroyStyle = function destroyStyle() {
456
+ styleElementRef.current = utils.DomHandler.removeInlineStyle(styleElementRef.current);
457
+ };
458
+ hooks.useUpdateEffect(function () {
459
+ if (attributeSelectorState && elementRef.current) {
460
+ elementRef.current.setAttribute(attributeSelectorState, '');
461
+ createStyle();
462
+ }
463
+ return function () {
464
+ destroyStyle();
465
+ };
466
+ }, [attributeSelectorState, props.breakpoint]);
403
467
  var createCategory = function createCategory(category, index) {
404
468
  var className = utils.classNames('p-menuitem', {
405
469
  'p-menuitem-active': category === activeItemState
@@ -470,20 +534,41 @@ var MegaMenu = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
470
534
  }
471
535
  return null;
472
536
  };
537
+ var createMenuButton = function createMenuButton() {
538
+ if (props.orientation === 'vertical' || props.model && props.model.length < 1) {
539
+ return null;
540
+ }
541
+ /* eslint-disable */
542
+ var button = /*#__PURE__*/React__namespace.createElement("a", {
543
+ ref: menuButtonRef,
544
+ href: '#',
545
+ role: "button",
546
+ tabIndex: 0,
547
+ className: "p-megamenu-button",
548
+ onClick: toggle
549
+ }, /*#__PURE__*/React__namespace.createElement("i", {
550
+ className: "pi pi-bars"
551
+ }));
552
+ /* eslint-enable */
553
+
554
+ return button;
555
+ };
473
556
  var otherProps = MegaMenuBase.getOtherProps(props);
474
557
  var className = utils.classNames('p-megamenu p-component', {
475
558
  'p-megamenu-horizontal': props.orientation === 'horizontal',
476
- 'p-megamenu-vertical': props.orientation === 'vertical'
559
+ 'p-megamenu-vertical': props.orientation === 'vertical',
560
+ 'p-megamenu-mobile-active': mobileActiveState
477
561
  }, props.className);
478
562
  var menu = createMenu();
479
563
  var start = createStartContent();
480
564
  var end = createEndContent();
565
+ var menuButton = createMenuButton();
481
566
  return /*#__PURE__*/React__namespace.createElement("div", _extends({
482
567
  ref: elementRef,
483
568
  id: props.id,
484
569
  className: className,
485
570
  style: props.style
486
- }, otherProps), start, menu, end);
571
+ }, otherProps), start, menuButton, menu, end);
487
572
  }));
488
573
  MegaMenu.displayName = 'MegaMenu';
489
574
 
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("primereact/api"),n=require("primereact/hooks"),r=require("primereact/ripple"),a=require("primereact/utils");function l(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function i(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var u=i(e),s=l(t);function c(){return c=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},c.apply(this,arguments)}function o(e){if(Array.isArray(e))return e}function m(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,l,i,u=[],s=!0,c=!1;try{if(l=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(r=l.call(n)).done)&&(u.push(r.value),u.length!==t);s=!0);}catch(e){c=!0,a=e}finally{try{if(!s&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(c)throw a}}return u}}function p(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function f(e,t){if(e){if("string"==typeof e)return p(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?p(e,t):void 0}}function d(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function b(e,t){return o(e)||m(e,t)||f(e,t)||d()}var v={defaultProps:{__TYPE:"MegaMenu",id:null,model:null,style:null,className:null,orientation:"horizontal",start:null,end:null,children:void 0},getProps:function(e){return a.ObjectUtils.getMergedProps(e,v.defaultProps)},getOtherProps:function(e){return a.ObjectUtils.getDiffProps(e,v.defaultProps)}},g=u.memo(u.forwardRef((function(e,t){var l=v.getProps(e),i=b(u.useState(null),2),o=i[0],m=i[1],p=u.useRef(null),f="horizontal"===l.orientation,d="vertical"===l.orientation,g=b(n.useEventListener({type:"click",listener:function(e){S(e)&&m(null)}}),1)[0],y=function(e,t){t.disabled?e.preventDefault():(t.url||e.preventDefault(),t.command&&t.command({originalEvent:e,item:t}),m(null))},h=function(e,t){var n=e.currentTarget.parentElement;switch(e.which){case 40:f?E(t):k(n),e.preventDefault();break;case 38:d?D(n):t.items&&t===o&&N(),e.preventDefault();break;case 39:f?k(n):E(t),e.preventDefault();break;case 37:f?D(n):t.items&&t===o&&N(),e.preventDefault()}},E=function(e){e.items&&m(e)},N=function(e){m(null)},O=function e(t){var n=t.nextElementSibling;return n?a.DomHandler.hasClass(n,"p-disabled")||!a.DomHandler.hasClass(n,"p-menuitem")?e(n):n:null},j=function e(t){var n=t.previousElementSibling;return n?a.DomHandler.hasClass(n,"p-disabled")||!a.DomHandler.hasClass(n,"p-menuitem")?e(n):n:null},k=function(e){var t=O(e);t&&t.children[0].focus()},D=function(e){var t=j(e);t&&t.children[0].focus()},S=function(e){return p.current&&!(p.current.isSameNode(e.target)||p.current.contains(e.target))},P=function(e){var t;switch(e.items?e.items.length:0){case 2:t="p-megamenu-col-6";break;case 3:t="p-megamenu-col-4";break;case 4:t="p-megamenu-col-3";break;case 6:t="p-megamenu-col-2";break;default:t="p-megamenu-col-12"}return t};u.useImperativeHandle(t,(function(){return{props:l,getElement:function(){return p.current}}})),n.useMountEffect((function(){g()})),n.useUpdateEffect((function(){var e=a.DomHandler.findSingle(p.current,".p-menuitem-active > .p-megamenu-panel");return o&&a.ZIndexUtils.set("menu",e,s.default.autoZIndex,s.default.zIndex.menu),function(){a.ZIndexUtils.clear(e)}}),[o]);var w=function(e){return u.createElement("li",{key:"separator_"+e,className:"p-menu-separator",role:"separator"})},I=function(e){if(e.items){var t=a.classNames("p-submenu-icon pi",{"pi-angle-down":f,"pi-angle-right":d});return u.createElement("span",{className:t})}return null},M=function(e,t){if(!1===e.visible)return null;if(e.separator)return w(t);var n=e.label+"_"+t,i=a.classNames("p-menuitem",e.className),s=a.classNames("p-menuitem-link",{"p-disabled":e.disabled}),c=a.classNames(e.icon,"p-menuitem-icon"),o=a.IconUtils.getJSXIcon(e.icon,{className:"p-menuitem-icon"},{props:l}),m=u.createElement("a",{href:e.url||"#",className:s,target:e.target,onClick:function(t){return y(t,e)},role:"menuitem","aria-disabled":e.disabled},o,e.label&&u.createElement("span",{className:"p-menuitem-text"},e.label),u.createElement(r.Ripple,null));return e.template&&(m=a.ObjectUtils.getJSXElement(e.template,e,{onClick:function(t){return y(t,e)},className:s,labelClassName:"p-menuitem-text",iconClassName:c,element:m,props:l})),u.createElement("li",{key:n,id:e.id,className:i,style:e.style,role:"none"},m)},U=function(e){var t=a.classNames("p-megamenu-submenu-header",{"p-disabled":e.disabled},e.className),n=e.items.map(M);return u.createElement(u.Fragment,{key:e.label},u.createElement("li",{id:e.id,className:t,style:e.style,role:"presentation"},e.label),n)},x=function(e){return e.map(U)},_=function(e,t,n,r){var a=e.label+"_column_"+n,l=x(t);return u.createElement("div",{key:a,className:r},u.createElement("ul",{className:"p-megamenu-submenu",role:"menu"},l))},C=function(e){if(e.items){var t=P(e);return e.items.map((function(n,r){return _(e,n,r,t)}))}return null},z=function(e){if(e.items){var t=C(e);return u.createElement("div",{className:"p-megamenu-panel"},u.createElement("div",{className:"p-megamenu-grid"},t))}return null},A=function(e,t){var n=a.classNames("p-menuitem",{"p-menuitem-active":e===o},e.className),i=a.classNames("p-menuitem-link",{"p-disabled":e.disabled}),s=a.IconUtils.getJSXIcon(e.icon,{className:"p-menuitem-icon"},{props:l}),c=e.label&&u.createElement("span",{className:"p-menuitem-text"},e.label),p=e.template?a.ObjectUtils.getJSXElement(e.template,e):null,f=I(e),d=z(e);return u.createElement("li",{key:e.label+"_"+t,id:e.id,className:n,style:e.style,onMouseEnter:function(t){return n=t,void((r=e).disabled?n.preventDefault():o&&m(r));var n,r},role:"none"},u.createElement("a",{href:e.url||"#",className:i,target:e.target,onClick:function(t){return n=t,(r=e).disabled||(r.url||n.preventDefault(),r.command&&r.command({originalEvent:n,item:l.item}),r.items&&m(o&&o===r?null:r)),void n.preventDefault();var n,r},onKeyDown:function(t){return h(t,e)},role:"menuitem","aria-haspopup":null!=e.items},s,c,p,f,u.createElement(r.Ripple,null)),d)},H=v.getOtherProps(l),J=a.classNames("p-megamenu p-component",{"p-megamenu-horizontal":"horizontal"===l.orientation,"p-megamenu-vertical":"vertical"===l.orientation},l.className),X=l.model?u.createElement("ul",{className:"p-megamenu-root-list",role:"menubar"},l.model.map((function(e,t){return A(e,t)}))):null,q=function(){if(l.start){var e=a.ObjectUtils.getJSXElement(l.start,l);return u.createElement("div",{className:"p-megamenu-start"},e)}return null}(),R=function(){if(l.end){var e=a.ObjectUtils.getJSXElement(l.end,l);return u.createElement("div",{className:"p-megamenu-end"},e)}return null}();return u.createElement("div",c({ref:p,id:l.id,className:J,style:l.style},H),q,X,R)})));g.displayName="MegaMenu",exports.MegaMenu=g;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),n=require("primereact/api"),t=require("primereact/hooks"),a=require("primereact/ripple"),r=require("primereact/utils");function l(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function i(e){if(e&&e.__esModule)return e;var n=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var a=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(n,t,a.get?a:{enumerable:!0,get:function(){return e[t]}})}})),n.default=e,Object.freeze(n)}var u=i(e),o=l(n);function c(){return c=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a])}return e},c.apply(this,arguments)}function m(e){if(Array.isArray(e))return e}function s(e,n){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var a,r,l,i,u=[],o=!0,c=!1;try{if(l=(t=t.call(e)).next,0===n){if(Object(t)!==t)return;o=!1}else for(;!(o=(a=l.call(t)).done)&&(u.push(a.value),u.length!==n);o=!0);}catch(e){c=!0,r=e}finally{try{if(!o&&null!=t.return&&(i=t.return(),Object(i)!==i))return}finally{if(c)throw r}}return u}}function p(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,a=new Array(n);t<n;t++)a[t]=e[t];return a}function d(e,n){if(e){if("string"==typeof e)return p(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?p(e,n):void 0}}function f(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function g(e,n){return m(e)||s(e,n)||d(e,n)||f()}var b={defaultProps:{__TYPE:"MegaMenu",id:null,model:null,style:null,className:null,orientation:"horizontal",breakpoint:void 0,scrollHeight:"400px",start:null,end:null,children:void 0},getProps:function(e){return r.ObjectUtils.getMergedProps(e,b.defaultProps)},getOtherProps:function(e){return r.ObjectUtils.getDiffProps(e,b.defaultProps)}},v=u.memo(u.forwardRef((function(e,n){var l=b.getProps(e),i=g(u.useState(null),2),m=i[0],s=i[1],p=g(u.useState(null),2),d=p[0],f=p[1],v=g(u.useState(!1),2),h=v[0],y=v[1],E=u.useRef(null),N=u.useRef(null),k=u.useRef(null),w="horizontal"===l.orientation,x="vertical"===l.orientation,O=t.useMatchMedia("screen and (max-width: ".concat(l.breakpoint,")"),!!l.breakpoint),j=g(t.useEventListener({type:"click",listener:function(e){O&&!h||!A(e)||(s(null),y(!1))}}),1)[0],S=g(t.useResizeListener({listener:function(){O&&!h||(s(null),y(!1))}}),1)[0],D=function(e,n){n.disabled?e.preventDefault():(n.url||e.preventDefault(),n.command&&n.command({originalEvent:e,item:n}),s(null),y(!1))},I=function(e,n){var t=e.currentTarget.parentElement;switch(e.which){case 40:w?M(n):z(t),e.preventDefault();break;case 38:x?_(t):n.items&&n===m&&P(),e.preventDefault();break;case 39:w?z(t):M(n),e.preventDefault();break;case 37:w?_(t):n.items&&n===m&&P(),e.preventDefault()}},M=function(e){e.items&&s(e)},P=function(e){s(null)},U=function(e){e.preventDefault(),y((function(e){return!e})),s(null)},C=function e(n){var t=n.nextElementSibling;return t?r.DomHandler.hasClass(t,"p-disabled")||!r.DomHandler.hasClass(t,"p-menuitem")?e(t):t:null},H=function e(n){var t=n.previousElementSibling;return t?r.DomHandler.hasClass(t,"p-disabled")||!r.DomHandler.hasClass(t,"p-menuitem")?e(t):t:null},z=function(e){var n=C(e);n&&n.children[0].focus()},_=function(e){var n=H(e);n&&n.children[0].focus()},A=function(e){return E.current&&!(E.current.isSameNode(e.target)||E.current.contains(e.target)||k.current&&k.current.contains(e.target))},R=function(e){var n;switch(e.items?e.items.length:0){case 2:n="p-megamenu-col-6";break;case 3:n="p-megamenu-col-4";break;case 4:n="p-megamenu-col-3";break;case 6:n="p-megamenu-col-2";break;default:n="p-megamenu-col-12"}return n};u.useImperativeHandle(n,(function(){return{props:l,getElement:function(){return E.current}}})),t.useMountEffect((function(){l.breakpoint&&!d&&f(r.UniqueComponentId()),j(),S()})),t.useUpdateEffect((function(){var e=r.DomHandler.findSingle(E.current,".p-menuitem-active > .p-megamenu-panel");return m&&!O&&r.ZIndexUtils.set("menu",e,o.default.autoZIndex,o.default.zIndex.menu),O&&e&&e.previousElementSibling.scrollIntoView({block:"nearest",inline:"nearest"}),function(){r.ZIndexUtils.clear(e)}}),[m]);var q=function(e){return u.createElement("li",{key:"separator_"+e,className:"p-menu-separator",role:"separator"})},J=function(e){if(e.items){var n=r.classNames("p-submenu-icon pi",{"pi-angle-down":w,"pi-angle-right":x});return u.createElement("span",{className:n})}return null},X=function(e,n){if(!1===e.visible)return null;if(e.separator)return q(n);var t=e.label+"_"+n,i=r.classNames("p-menuitem",e.className),o=r.classNames("p-menuitem-link",{"p-disabled":e.disabled}),c=r.classNames(e.icon,"p-menuitem-icon"),m=r.IconUtils.getJSXIcon(e.icon,{className:"p-menuitem-icon"},{props:l}),s=u.createElement("a",{href:e.url||"#",className:o,target:e.target,onClick:function(n){return D(n,e)},role:"menuitem","aria-disabled":e.disabled},m,e.label&&u.createElement("span",{className:"p-menuitem-text"},e.label),u.createElement(a.Ripple,null));return e.template&&(s=r.ObjectUtils.getJSXElement(e.template,e,{onClick:function(n){return D(n,e)},className:o,labelClassName:"p-menuitem-text",iconClassName:c,element:s,props:l})),u.createElement("li",{key:t,id:e.id,className:i,style:e.style,role:"none"},s)},T=function(e){var n=r.classNames("p-megamenu-submenu-header",{"p-disabled":e.disabled},e.className),t=e.items.map(X);return u.createElement(u.Fragment,{key:e.label},u.createElement("li",{id:e.id,className:n,style:e.style,role:"presentation"},e.label),t)},L=function(e){return e.map(T)},Z=function(e,n,t,a){var r=e.label+"_column_"+t,l=L(n);return u.createElement("div",{key:r,className:a},u.createElement("ul",{className:"p-megamenu-submenu",role:"menu"},l))},F=function(e){if(e.items){var n=R(e);return e.items.map((function(t,a){return Z(e,t,a,n)}))}return null},K=function(e){if(e.items){var n=F(e);return u.createElement("div",{className:"p-megamenu-panel"},u.createElement("div",{className:"p-megamenu-grid"},n))}return null},V=function(){if(!N.current){N.current=r.DomHandler.createInlineStyle(o.default.nonce);var e="".concat(d),n="\n@media screen and (max-width: ".concat(l.breakpoint,") {\n .p-megamenu[").concat(e,"] > .p-megamenu-root-list .p-menuitem-active .p-megamenu-panel {\n position: relative;\n left: 0 !important;\n box-shadow: none;\n border-radius: 0;\n background: inherit;\n }\n\n .p-megamenu[").concat(e,"] .p-menuitem-active > .p-menuitem-link > .p-submenu-icon {\n transform: rotate(-180deg);\n }\n\n .p-megamenu[").concat(e,"] .p-megamenu-grid {\n flex-wrap: wrap;\n }\n\n ").concat(w?"\n.p-megamenu[".concat(e,"] .p-megamenu-button {\n display: flex;\n}\n\n.p-megamenu[").concat(e,"].p-megamenu-horizontal {\n position: relative;\n}\n\n.p-megamenu[").concat(e,"].p-megamenu-horizontal .p-megamenu-root-list {\n display: none;\n}\n\n.p-megamenu-horizontal[").concat(e,'] div[class*="p-megamenu-col-"] {\n width: auto;\n flex: 1;\n padding: 0;\n}\n\n.p-megamenu[').concat(e,"].p-megamenu-mobile-active .p-megamenu-root-list {\n display: flex;\n flex-direction: column;\n position: absolute;\n width: 100%;\n top: 100%;\n left: 0;\n z-index: 1;\n}\n "):"","\n\n ").concat(x?"\n.p-megamenu-vertical[".concat(e,"] {\n width: 100%;\n}\n\n.p-megamenu-vertical[").concat(e,"] .p-megamenu-root-list {\n max-height: ").concat(l.scrollHeight,";\n overflow: ").concat(l.scrollHeight?"auto":"",";\n}\n.p-megamenu-vertical[").concat(e,'] div[class*="p-megamenu-col-"] {\n width: 100%;\n padding: 0;\n}\n\n.p-megamenu-vertical[').concat(e,"] .p-megamenu-submenu {\n width: 100%;\n}\n\n.p-megamenu-vertical[").concat(e,'] div[class*="p-megamenu-col-"] .p-megamenu-submenu-header {\n background: inherit;\n}\n\n.p-megamenu-vertical[').concat(e,'] .p-submenu-icon:before {\n content: "\\e930";\n}\n '):"","\n}\n");N.current.innerHTML=n}};t.useUpdateEffect((function(){return d&&E.current&&(E.current.setAttribute(d,""),V()),function(){N.current=r.DomHandler.removeInlineStyle(N.current)}}),[d,l.breakpoint]);var Y=function(e,n){var t=r.classNames("p-menuitem",{"p-menuitem-active":e===m},e.className),i=r.classNames("p-menuitem-link",{"p-disabled":e.disabled}),o=r.IconUtils.getJSXIcon(e.icon,{className:"p-menuitem-icon"},{props:l}),c=e.label&&u.createElement("span",{className:"p-menuitem-text"},e.label),p=e.template?r.ObjectUtils.getJSXElement(e.template,e):null,d=J(e),f=K(e);return u.createElement("li",{key:e.label+"_"+n,id:e.id,className:t,style:e.style,onMouseEnter:function(n){return t=n,void((a=e).disabled||O?t.preventDefault():m&&s(a));var t,a},role:"none"},u.createElement("a",{href:e.url||"#",className:i,target:e.target,onClick:function(n){return t=n,(a=e).disabled||(a.url||t.preventDefault(),a.command&&a.command({originalEvent:t,item:l.item}),a.items&&s(m&&m===a?null:a)),void t.preventDefault();var t,a},onKeyDown:function(n){return I(n,e)},role:"menuitem","aria-haspopup":null!=e.items},o,c,p,d,u.createElement(a.Ripple,null)),f)},$=b.getOtherProps(l),B=r.classNames("p-megamenu p-component",{"p-megamenu-horizontal":"horizontal"===l.orientation,"p-megamenu-vertical":"vertical"===l.orientation,"p-megamenu-mobile-active":h},l.className),G=l.model?u.createElement("ul",{className:"p-megamenu-root-list",role:"menubar"},l.model.map((function(e,n){return Y(e,n)}))):null,Q=function(){if(l.start){var e=r.ObjectUtils.getJSXElement(l.start,l);return u.createElement("div",{className:"p-megamenu-start"},e)}return null}(),W=function(){if(l.end){var e=r.ObjectUtils.getJSXElement(l.end,l);return u.createElement("div",{className:"p-megamenu-end"},e)}return null}(),ee="vertical"===l.orientation||l.model&&l.model.length<1?null:u.createElement("a",{ref:k,href:"#",role:"button",tabIndex:0,className:"p-megamenu-button",onClick:U},u.createElement("i",{className:"pi pi-bars"}));return u.createElement("div",c({ref:E,id:l.id,className:B,style:l.style},$),Q,ee,G,W)})));v.displayName="MegaMenu",exports.MegaMenu=v;
@@ -28,6 +28,15 @@ export interface MegaMenuProps extends Omit<React.DetailedHTMLProps<React.HTMLAt
28
28
  * The template of starting element.
29
29
  */
30
30
  start?: React.ReactNode | ((props: MegaMenuProps) => React.ReactNode);
31
+ /**
32
+ * The breakpoint to define the maximum width boundary when responsiveness is enabled.
33
+ */
34
+ breakpoint?: string | undefined;
35
+ /**
36
+ * Maximum height of the options panel on responsive mode.
37
+ * @defaultValue 400px
38
+ */
39
+ scrollHeight?: string | undefined;
31
40
  /**
32
41
  * The template of trailing element
33
42
  */
@@ -1,8 +1,8 @@
1
1
  import * as React from 'react';
2
2
  import PrimeReact from 'primereact/api';
3
- import { useEventListener, useMountEffect, useUpdateEffect } from 'primereact/hooks';
3
+ import { useMatchMedia, useEventListener, useResizeListener, useMountEffect, useUpdateEffect } from 'primereact/hooks';
4
4
  import { Ripple } from 'primereact/ripple';
5
- import { ObjectUtils, DomHandler, ZIndexUtils, classNames, IconUtils } from 'primereact/utils';
5
+ import { ObjectUtils, UniqueComponentId, DomHandler, ZIndexUtils, classNames, IconUtils } from 'primereact/utils';
6
6
 
7
7
  function _extends() {
8
8
  _extends = Object.assign ? Object.assign.bind() : function (target) {
@@ -82,6 +82,8 @@ var MegaMenuBase = {
82
82
  style: null,
83
83
  className: null,
84
84
  orientation: 'horizontal',
85
+ breakpoint: undefined,
86
+ scrollHeight: '400px',
85
87
  start: null,
86
88
  end: null,
87
89
  children: undefined
@@ -100,17 +102,41 @@ var MegaMenu = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
100
102
  _React$useState2 = _slicedToArray(_React$useState, 2),
101
103
  activeItemState = _React$useState2[0],
102
104
  setActiveItemState = _React$useState2[1];
105
+ var _React$useState3 = React.useState(null),
106
+ _React$useState4 = _slicedToArray(_React$useState3, 2),
107
+ attributeSelectorState = _React$useState4[0],
108
+ setAttributeSelectorState = _React$useState4[1];
109
+ var _React$useState5 = React.useState(false),
110
+ _React$useState6 = _slicedToArray(_React$useState5, 2),
111
+ mobileActiveState = _React$useState6[0],
112
+ setMobileActiveState = _React$useState6[1];
103
113
  var elementRef = React.useRef(null);
114
+ var styleElementRef = React.useRef(null);
115
+ var menuButtonRef = React.useRef(null);
104
116
  var horizontal = props.orientation === 'horizontal';
105
117
  var vertical = props.orientation === 'vertical';
118
+ var isMobileMode = useMatchMedia("screen and (max-width: ".concat(props.breakpoint, ")"), !!props.breakpoint);
106
119
  var _useEventListener = useEventListener({
107
120
  type: 'click',
108
121
  listener: function listener(event) {
109
- isOutsideClicked(event) && setActiveItemState(null);
122
+ if ((!isMobileMode || mobileActiveState) && isOutsideClicked(event)) {
123
+ setActiveItemState(null);
124
+ setMobileActiveState(false);
125
+ }
110
126
  }
111
127
  }),
112
128
  _useEventListener2 = _slicedToArray(_useEventListener, 1),
113
129
  bindDocumentClickListener = _useEventListener2[0];
130
+ var _useResizeListener = useResizeListener({
131
+ listener: function listener() {
132
+ if (!isMobileMode || mobileActiveState) {
133
+ setActiveItemState(null);
134
+ setMobileActiveState(false);
135
+ }
136
+ }
137
+ }),
138
+ _useResizeListener2 = _slicedToArray(_useResizeListener, 1),
139
+ bindDocumentResizeListener = _useResizeListener2[0];
114
140
  var onLeafClick = function onLeafClick(event, item) {
115
141
  if (item.disabled) {
116
142
  event.preventDefault();
@@ -126,9 +152,10 @@ var MegaMenu = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
126
152
  });
127
153
  }
128
154
  setActiveItemState(null);
155
+ setMobileActiveState(false);
129
156
  };
130
157
  var onCategoryMouseEnter = function onCategoryMouseEnter(event, item) {
131
- if (item.disabled) {
158
+ if (item.disabled || isMobileMode) {
132
159
  event.preventDefault();
133
160
  return;
134
161
  }
@@ -191,6 +218,13 @@ var MegaMenu = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
191
218
  var collapseMenu = function collapseMenu(item) {
192
219
  setActiveItemState(null);
193
220
  };
221
+ var toggle = function toggle(event) {
222
+ event.preventDefault();
223
+ setMobileActiveState(function (prevMobileActive) {
224
+ return !prevMobileActive;
225
+ });
226
+ setActiveItemState(null);
227
+ };
194
228
  var findNextItem = function findNextItem(item) {
195
229
  var nextItem = item.nextElementSibling;
196
230
  return nextItem ? DomHandler.hasClass(nextItem, 'p-disabled') || !DomHandler.hasClass(nextItem, 'p-menuitem') ? findNextItem(nextItem) : nextItem : null;
@@ -208,7 +242,7 @@ var MegaMenu = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
208
242
  prevItem && prevItem.children[0].focus();
209
243
  };
210
244
  var isOutsideClicked = function isOutsideClicked(event) {
211
- return elementRef.current && !(elementRef.current.isSameNode(event.target) || elementRef.current.contains(event.target));
245
+ return elementRef.current && !(elementRef.current.isSameNode(event.target) || elementRef.current.contains(event.target) || menuButtonRef.current && menuButtonRef.current.contains(event.target));
212
246
  };
213
247
  var getColumnClassName = function getColumnClassName(category) {
214
248
  var length = category.items ? category.items.length : 0;
@@ -241,13 +275,23 @@ var MegaMenu = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
241
275
  };
242
276
  });
243
277
  useMountEffect(function () {
278
+ if (props.breakpoint) {
279
+ !attributeSelectorState && setAttributeSelectorState(UniqueComponentId());
280
+ }
244
281
  bindDocumentClickListener();
282
+ bindDocumentResizeListener();
245
283
  });
246
284
  useUpdateEffect(function () {
247
285
  var currentPanel = DomHandler.findSingle(elementRef.current, '.p-menuitem-active > .p-megamenu-panel');
248
- if (activeItemState) {
286
+ if (activeItemState && !isMobileMode) {
249
287
  ZIndexUtils.set('menu', currentPanel, PrimeReact.autoZIndex, PrimeReact.zIndex['menu']);
250
288
  }
289
+ if (isMobileMode) {
290
+ currentPanel && currentPanel.previousElementSibling.scrollIntoView({
291
+ block: 'nearest',
292
+ inline: 'nearest'
293
+ });
294
+ }
251
295
  return function () {
252
296
  ZIndexUtils.clear(currentPanel);
253
297
  };
@@ -373,6 +417,26 @@ var MegaMenu = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
373
417
  }
374
418
  return null;
375
419
  };
420
+ var createStyle = function createStyle() {
421
+ if (!styleElementRef.current) {
422
+ styleElementRef.current = DomHandler.createInlineStyle(PrimeReact.nonce);
423
+ var selector = "".concat(attributeSelectorState);
424
+ var innerHTML = "\n@media screen and (max-width: ".concat(props.breakpoint, ") {\n .p-megamenu[").concat(selector, "] > .p-megamenu-root-list .p-menuitem-active .p-megamenu-panel {\n position: relative;\n left: 0 !important;\n box-shadow: none;\n border-radius: 0;\n background: inherit;\n }\n\n .p-megamenu[").concat(selector, "] .p-menuitem-active > .p-menuitem-link > .p-submenu-icon {\n transform: rotate(-180deg);\n }\n\n .p-megamenu[").concat(selector, "] .p-megamenu-grid {\n flex-wrap: wrap;\n }\n\n ").concat(horizontal ? "\n.p-megamenu[".concat(selector, "] .p-megamenu-button {\n display: flex;\n}\n\n.p-megamenu[").concat(selector, "].p-megamenu-horizontal {\n position: relative;\n}\n\n.p-megamenu[").concat(selector, "].p-megamenu-horizontal .p-megamenu-root-list {\n display: none;\n}\n\n.p-megamenu-horizontal[").concat(selector, "] div[class*=\"p-megamenu-col-\"] {\n width: auto;\n flex: 1;\n padding: 0;\n}\n\n.p-megamenu[").concat(selector, "].p-megamenu-mobile-active .p-megamenu-root-list {\n display: flex;\n flex-direction: column;\n position: absolute;\n width: 100%;\n top: 100%;\n left: 0;\n z-index: 1;\n}\n ") : '', "\n\n ").concat(vertical ? "\n.p-megamenu-vertical[".concat(selector, "] {\n width: 100%;\n}\n\n.p-megamenu-vertical[").concat(selector, "] .p-megamenu-root-list {\n max-height: ").concat(props.scrollHeight, ";\n overflow: ").concat(props.scrollHeight ? 'auto' : '', ";\n}\n.p-megamenu-vertical[").concat(selector, "] div[class*=\"p-megamenu-col-\"] {\n width: 100%;\n padding: 0;\n}\n\n.p-megamenu-vertical[").concat(selector, "] .p-megamenu-submenu {\n width: 100%;\n}\n\n.p-megamenu-vertical[").concat(selector, "] div[class*=\"p-megamenu-col-\"] .p-megamenu-submenu-header {\n background: inherit;\n}\n\n.p-megamenu-vertical[").concat(selector, "] .p-submenu-icon:before {\n content: \"\\e930\";\n}\n ") : '', "\n}\n");
425
+ styleElementRef.current.innerHTML = innerHTML;
426
+ }
427
+ };
428
+ var destroyStyle = function destroyStyle() {
429
+ styleElementRef.current = DomHandler.removeInlineStyle(styleElementRef.current);
430
+ };
431
+ useUpdateEffect(function () {
432
+ if (attributeSelectorState && elementRef.current) {
433
+ elementRef.current.setAttribute(attributeSelectorState, '');
434
+ createStyle();
435
+ }
436
+ return function () {
437
+ destroyStyle();
438
+ };
439
+ }, [attributeSelectorState, props.breakpoint]);
376
440
  var createCategory = function createCategory(category, index) {
377
441
  var className = classNames('p-menuitem', {
378
442
  'p-menuitem-active': category === activeItemState
@@ -443,20 +507,41 @@ var MegaMenu = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
443
507
  }
444
508
  return null;
445
509
  };
510
+ var createMenuButton = function createMenuButton() {
511
+ if (props.orientation === 'vertical' || props.model && props.model.length < 1) {
512
+ return null;
513
+ }
514
+ /* eslint-disable */
515
+ var button = /*#__PURE__*/React.createElement("a", {
516
+ ref: menuButtonRef,
517
+ href: '#',
518
+ role: "button",
519
+ tabIndex: 0,
520
+ className: "p-megamenu-button",
521
+ onClick: toggle
522
+ }, /*#__PURE__*/React.createElement("i", {
523
+ className: "pi pi-bars"
524
+ }));
525
+ /* eslint-enable */
526
+
527
+ return button;
528
+ };
446
529
  var otherProps = MegaMenuBase.getOtherProps(props);
447
530
  var className = classNames('p-megamenu p-component', {
448
531
  'p-megamenu-horizontal': props.orientation === 'horizontal',
449
- 'p-megamenu-vertical': props.orientation === 'vertical'
532
+ 'p-megamenu-vertical': props.orientation === 'vertical',
533
+ 'p-megamenu-mobile-active': mobileActiveState
450
534
  }, props.className);
451
535
  var menu = createMenu();
452
536
  var start = createStartContent();
453
537
  var end = createEndContent();
538
+ var menuButton = createMenuButton();
454
539
  return /*#__PURE__*/React.createElement("div", _extends({
455
540
  ref: elementRef,
456
541
  id: props.id,
457
542
  className: className,
458
543
  style: props.style
459
- }, otherProps), start, menu, end);
544
+ }, otherProps), start, menuButton, menu, end);
460
545
  }));
461
546
  MegaMenu.displayName = 'MegaMenu';
462
547
 
@@ -1 +1 @@
1
- import*as e from"react";import t from"primereact/api";import{useEventListener as n,useMountEffect as r,useUpdateEffect as a}from"primereact/hooks";import{Ripple as l}from"primereact/ripple";import{ObjectUtils as i,DomHandler as u,ZIndexUtils as m,classNames as o,IconUtils as s}from"primereact/utils";function c(){return c=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},c.apply(this,arguments)}function p(e){if(Array.isArray(e))return e}function f(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,l,i,u=[],m=!0,o=!1;try{if(l=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;m=!1}else for(;!(m=(r=l.call(n)).done)&&(u.push(r.value),u.length!==t);m=!0);}catch(e){o=!0,a=e}finally{try{if(!m&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(o)throw a}}return u}}function d(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function v(e,t){if(e){if("string"==typeof e)return d(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?d(e,t):void 0}}function g(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function b(e,t){return p(e)||f(e,t)||v(e,t)||g()}var y={defaultProps:{__TYPE:"MegaMenu",id:null,model:null,style:null,className:null,orientation:"horizontal",start:null,end:null,children:void 0},getProps:function(e){return i.getMergedProps(e,y.defaultProps)},getOtherProps:function(e){return i.getDiffProps(e,y.defaultProps)}},h=e.memo(e.forwardRef((function(p,f){var d=y.getProps(p),v=b(e.useState(null),2),g=v[0],h=v[1],E=e.useRef(null),N="horizontal"===d.orientation,k="vertical"===d.orientation,S=b(n({type:"click",listener:function(e){M(e)&&h(null)}}),1)[0],w=function(e,t){t.disabled?e.preventDefault():(t.url||e.preventDefault(),t.command&&t.command({originalEvent:e,item:t}),h(null))},D=function(e,t){var n=e.currentTarget.parentElement;switch(e.which){case 40:N?P(t):x(n),e.preventDefault();break;case 38:k?I(n):t.items&&t===g&&C(),e.preventDefault();break;case 39:N?x(n):P(t),e.preventDefault();break;case 37:N?I(n):t.items&&t===g&&C(),e.preventDefault()}},P=function(e){e.items&&h(e)},C=function(e){h(null)},O=function e(t){var n=t.nextElementSibling;return n?u.hasClass(n,"p-disabled")||!u.hasClass(n,"p-menuitem")?e(n):n:null},j=function e(t){var n=t.previousElementSibling;return n?u.hasClass(n,"p-disabled")||!u.hasClass(n,"p-menuitem")?e(n):n:null},x=function(e){var t=O(e);t&&t.children[0].focus()},I=function(e){var t=j(e);t&&t.children[0].focus()},M=function(e){return E.current&&!(E.current.isSameNode(e.target)||E.current.contains(e.target))},_=function(e){var t;switch(e.items?e.items.length:0){case 2:t="p-megamenu-col-6";break;case 3:t="p-megamenu-col-4";break;case 4:t="p-megamenu-col-3";break;case 6:t="p-megamenu-col-2";break;default:t="p-megamenu-col-12"}return t};e.useImperativeHandle(f,(function(){return{props:d,getElement:function(){return E.current}}})),r((function(){S()})),a((function(){var e=u.findSingle(E.current,".p-menuitem-active > .p-megamenu-panel");return g&&m.set("menu",e,t.autoZIndex,t.zIndex.menu),function(){m.clear(e)}}),[g]);var A=function(t){return e.createElement("li",{key:"separator_"+t,className:"p-menu-separator",role:"separator"})},J=function(t){if(t.items){var n=o("p-submenu-icon pi",{"pi-angle-down":N,"pi-angle-right":k});return e.createElement("span",{className:n})}return null},X=function(t,n){if(!1===t.visible)return null;if(t.separator)return A(n);var r=t.label+"_"+n,a=o("p-menuitem",t.className),u=o("p-menuitem-link",{"p-disabled":t.disabled}),m=o(t.icon,"p-menuitem-icon"),c=s.getJSXIcon(t.icon,{className:"p-menuitem-icon"},{props:d}),p=e.createElement("a",{href:t.url||"#",className:u,target:t.target,onClick:function(e){return w(e,t)},role:"menuitem","aria-disabled":t.disabled},c,t.label&&e.createElement("span",{className:"p-menuitem-text"},t.label),e.createElement(l,null));return t.template&&(p=i.getJSXElement(t.template,t,{onClick:function(e){return w(e,t)},className:u,labelClassName:"p-menuitem-text",iconClassName:m,element:p,props:d})),e.createElement("li",{key:r,id:t.id,className:a,style:t.style,role:"none"},p)},z=function(t){var n=o("p-megamenu-submenu-header",{"p-disabled":t.disabled},t.className),r=t.items.map(X);return e.createElement(e.Fragment,{key:t.label},e.createElement("li",{id:t.id,className:n,style:t.style,role:"presentation"},t.label),r)},T=function(e){return e.map(z)},R=function(t,n,r,a){var l=t.label+"_column_"+r,i=T(n);return e.createElement("div",{key:l,className:a},e.createElement("ul",{className:"p-megamenu-submenu",role:"menu"},i))},F=function(e){if(e.items){var t=_(e);return e.items.map((function(n,r){return R(e,n,r,t)}))}return null},H=function(t){if(t.items){var n=F(t);return e.createElement("div",{className:"p-megamenu-panel"},e.createElement("div",{className:"p-megamenu-grid"},n))}return null},K=function(t,n){var r=o("p-menuitem",{"p-menuitem-active":t===g},t.className),a=o("p-menuitem-link",{"p-disabled":t.disabled}),u=s.getJSXIcon(t.icon,{className:"p-menuitem-icon"},{props:d}),m=t.label&&e.createElement("span",{className:"p-menuitem-text"},t.label),c=t.template?i.getJSXElement(t.template,t):null,p=J(t),f=H(t);return e.createElement("li",{key:t.label+"_"+n,id:t.id,className:r,style:t.style,onMouseEnter:function(e){return n=e,void((r=t).disabled?n.preventDefault():g&&h(r));var n,r},role:"none"},e.createElement("a",{href:t.url||"#",className:a,target:t.target,onClick:function(e){return n=e,(r=t).disabled||(r.url||n.preventDefault(),r.command&&r.command({originalEvent:n,item:d.item}),r.items&&h(g&&g===r?null:r)),void n.preventDefault();var n,r},onKeyDown:function(e){return D(e,t)},role:"menuitem","aria-haspopup":null!=t.items},u,m,c,p,e.createElement(l,null)),f)},U=y.getOtherProps(d),Y=o("p-megamenu p-component",{"p-megamenu-horizontal":"horizontal"===d.orientation,"p-megamenu-vertical":"vertical"===d.orientation},d.className),Z=d.model?e.createElement("ul",{className:"p-megamenu-root-list",role:"menubar"},d.model.map((function(e,t){return K(e,t)}))):null,$=function(){if(d.start){var t=i.getJSXElement(d.start,d);return e.createElement("div",{className:"p-megamenu-start"},t)}return null}(),q=function(){if(d.end){var t=i.getJSXElement(d.end,d);return e.createElement("div",{className:"p-megamenu-end"},t)}return null}();return e.createElement("div",c({ref:E,id:d.id,className:Y,style:d.style},U),$,Z,q)})));h.displayName="MegaMenu";export{h as MegaMenu};
1
+ import*as e from"react";import n from"primereact/api";import{useMatchMedia as t,useEventListener as a,useResizeListener as r,useMountEffect as l,useUpdateEffect as i}from"primereact/hooks";import{Ripple as u}from"primereact/ripple";import{ObjectUtils as o,UniqueComponentId as m,DomHandler as c,ZIndexUtils as s,classNames as p,IconUtils as f}from"primereact/utils";function d(){return d=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a])}return e},d.apply(this,arguments)}function g(e){if(Array.isArray(e))return e}function v(e,n){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var a,r,l,i,u=[],o=!0,m=!1;try{if(l=(t=t.call(e)).next,0===n){if(Object(t)!==t)return;o=!1}else for(;!(o=(a=l.call(t)).done)&&(u.push(a.value),u.length!==n);o=!0);}catch(e){m=!0,r=e}finally{try{if(!o&&null!=t.return&&(i=t.return(),Object(i)!==i))return}finally{if(m)throw r}}return u}}function b(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,a=new Array(n);t<n;t++)a[t]=e[t];return a}function h(e,n){if(e){if("string"==typeof e)return b(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?b(e,n):void 0}}function y(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function E(e,n){return g(e)||v(e,n)||h(e,n)||y()}var N={defaultProps:{__TYPE:"MegaMenu",id:null,model:null,style:null,className:null,orientation:"horizontal",breakpoint:void 0,scrollHeight:"400px",start:null,end:null,children:void 0},getProps:function(e){return o.getMergedProps(e,N.defaultProps)},getOtherProps:function(e){return o.getDiffProps(e,N.defaultProps)}},k=e.memo(e.forwardRef((function(g,v){var b=N.getProps(g),h=E(e.useState(null),2),y=h[0],k=h[1],w=E(e.useState(null),2),S=w[0],x=w[1],D=E(e.useState(!1),2),I=D[0],C=D[1],P=e.useRef(null),O=e.useRef(null),z=e.useRef(null),j="horizontal"===b.orientation,M="vertical"===b.orientation,A=t("screen and (max-width: ".concat(b.breakpoint,")"),!!b.breakpoint),_=E(a({type:"click",listener:function(e){A&&!I||!Y(e)||(k(null),C(!1))}}),1)[0],J=E(r({listener:function(){A&&!I||(k(null),C(!1))}}),1)[0],X=function(e,n){n.disabled?e.preventDefault():(n.url||e.preventDefault(),n.command&&n.command({originalEvent:e,item:n}),k(null),C(!1))},H=function(e,n){var t=e.currentTarget.parentElement;switch(e.which){case 40:j?R(n):U(t),e.preventDefault();break;case 38:M?V(t):n.items&&n===y&&T(),e.preventDefault();break;case 39:j?U(t):R(n),e.preventDefault();break;case 37:j?V(t):n.items&&n===y&&T(),e.preventDefault()}},R=function(e){e.items&&k(e)},T=function(e){k(null)},F=function(e){e.preventDefault(),C((function(e){return!e})),k(null)},K=function e(n){var t=n.nextElementSibling;return t?c.hasClass(t,"p-disabled")||!c.hasClass(t,"p-menuitem")?e(t):t:null},L=function e(n){var t=n.previousElementSibling;return t?c.hasClass(t,"p-disabled")||!c.hasClass(t,"p-menuitem")?e(t):t:null},U=function(e){var n=K(e);n&&n.children[0].focus()},V=function(e){var n=L(e);n&&n.children[0].focus()},Y=function(e){return P.current&&!(P.current.isSameNode(e.target)||P.current.contains(e.target)||z.current&&z.current.contains(e.target))},Z=function(e){var n;switch(e.items?e.items.length:0){case 2:n="p-megamenu-col-6";break;case 3:n="p-megamenu-col-4";break;case 4:n="p-megamenu-col-3";break;case 6:n="p-megamenu-col-2";break;default:n="p-megamenu-col-12"}return n};e.useImperativeHandle(v,(function(){return{props:b,getElement:function(){return P.current}}})),l((function(){b.breakpoint&&!S&&x(m()),_(),J()})),i((function(){var e=c.findSingle(P.current,".p-menuitem-active > .p-megamenu-panel");return y&&!A&&s.set("menu",e,n.autoZIndex,n.zIndex.menu),A&&e&&e.previousElementSibling.scrollIntoView({block:"nearest",inline:"nearest"}),function(){s.clear(e)}}),[y]);var $=function(n){return e.createElement("li",{key:"separator_"+n,className:"p-menu-separator",role:"separator"})},q=function(n){if(n.items){var t=p("p-submenu-icon pi",{"pi-angle-down":j,"pi-angle-right":M});return e.createElement("span",{className:t})}return null},B=function(n,t){if(!1===n.visible)return null;if(n.separator)return $(t);var a=n.label+"_"+t,r=p("p-menuitem",n.className),l=p("p-menuitem-link",{"p-disabled":n.disabled}),i=p(n.icon,"p-menuitem-icon"),m=f.getJSXIcon(n.icon,{className:"p-menuitem-icon"},{props:b}),c=e.createElement("a",{href:n.url||"#",className:l,target:n.target,onClick:function(e){return X(e,n)},role:"menuitem","aria-disabled":n.disabled},m,n.label&&e.createElement("span",{className:"p-menuitem-text"},n.label),e.createElement(u,null));return n.template&&(c=o.getJSXElement(n.template,n,{onClick:function(e){return X(e,n)},className:l,labelClassName:"p-menuitem-text",iconClassName:i,element:c,props:b})),e.createElement("li",{key:a,id:n.id,className:r,style:n.style,role:"none"},c)},G=function(n){var t=p("p-megamenu-submenu-header",{"p-disabled":n.disabled},n.className),a=n.items.map(B);return e.createElement(e.Fragment,{key:n.label},e.createElement("li",{id:n.id,className:t,style:n.style,role:"presentation"},n.label),a)},Q=function(e){return e.map(G)},W=function(n,t,a,r){var l=n.label+"_column_"+a,i=Q(t);return e.createElement("div",{key:l,className:r},e.createElement("ul",{className:"p-megamenu-submenu",role:"menu"},i))},ee=function(e){if(e.items){var n=Z(e);return e.items.map((function(t,a){return W(e,t,a,n)}))}return null},ne=function(n){if(n.items){var t=ee(n);return e.createElement("div",{className:"p-megamenu-panel"},e.createElement("div",{className:"p-megamenu-grid"},t))}return null},te=function(){if(!O.current){O.current=c.createInlineStyle(n.nonce);var e="".concat(S),t="\n@media screen and (max-width: ".concat(b.breakpoint,") {\n .p-megamenu[").concat(e,"] > .p-megamenu-root-list .p-menuitem-active .p-megamenu-panel {\n position: relative;\n left: 0 !important;\n box-shadow: none;\n border-radius: 0;\n background: inherit;\n }\n\n .p-megamenu[").concat(e,"] .p-menuitem-active > .p-menuitem-link > .p-submenu-icon {\n transform: rotate(-180deg);\n }\n\n .p-megamenu[").concat(e,"] .p-megamenu-grid {\n flex-wrap: wrap;\n }\n\n ").concat(j?"\n.p-megamenu[".concat(e,"] .p-megamenu-button {\n display: flex;\n}\n\n.p-megamenu[").concat(e,"].p-megamenu-horizontal {\n position: relative;\n}\n\n.p-megamenu[").concat(e,"].p-megamenu-horizontal .p-megamenu-root-list {\n display: none;\n}\n\n.p-megamenu-horizontal[").concat(e,'] div[class*="p-megamenu-col-"] {\n width: auto;\n flex: 1;\n padding: 0;\n}\n\n.p-megamenu[').concat(e,"].p-megamenu-mobile-active .p-megamenu-root-list {\n display: flex;\n flex-direction: column;\n position: absolute;\n width: 100%;\n top: 100%;\n left: 0;\n z-index: 1;\n}\n "):"","\n\n ").concat(M?"\n.p-megamenu-vertical[".concat(e,"] {\n width: 100%;\n}\n\n.p-megamenu-vertical[").concat(e,"] .p-megamenu-root-list {\n max-height: ").concat(b.scrollHeight,";\n overflow: ").concat(b.scrollHeight?"auto":"",";\n}\n.p-megamenu-vertical[").concat(e,'] div[class*="p-megamenu-col-"] {\n width: 100%;\n padding: 0;\n}\n\n.p-megamenu-vertical[').concat(e,"] .p-megamenu-submenu {\n width: 100%;\n}\n\n.p-megamenu-vertical[").concat(e,'] div[class*="p-megamenu-col-"] .p-megamenu-submenu-header {\n background: inherit;\n}\n\n.p-megamenu-vertical[').concat(e,'] .p-submenu-icon:before {\n content: "\\e930";\n}\n '):"","\n}\n");O.current.innerHTML=t}};i((function(){return S&&P.current&&(P.current.setAttribute(S,""),te()),function(){O.current=c.removeInlineStyle(O.current)}}),[S,b.breakpoint]);var ae=function(n,t){var a=p("p-menuitem",{"p-menuitem-active":n===y},n.className),r=p("p-menuitem-link",{"p-disabled":n.disabled}),l=f.getJSXIcon(n.icon,{className:"p-menuitem-icon"},{props:b}),i=n.label&&e.createElement("span",{className:"p-menuitem-text"},n.label),m=n.template?o.getJSXElement(n.template,n):null,c=q(n),s=ne(n);return e.createElement("li",{key:n.label+"_"+t,id:n.id,className:a,style:n.style,onMouseEnter:function(e){return t=e,void((a=n).disabled||A?t.preventDefault():y&&k(a));var t,a},role:"none"},e.createElement("a",{href:n.url||"#",className:r,target:n.target,onClick:function(e){return t=e,(a=n).disabled||(a.url||t.preventDefault(),a.command&&a.command({originalEvent:t,item:b.item}),a.items&&k(y&&y===a?null:a)),void t.preventDefault();var t,a},onKeyDown:function(e){return H(e,n)},role:"menuitem","aria-haspopup":null!=n.items},l,i,m,c,e.createElement(u,null)),s)},re=N.getOtherProps(b),le=p("p-megamenu p-component",{"p-megamenu-horizontal":"horizontal"===b.orientation,"p-megamenu-vertical":"vertical"===b.orientation,"p-megamenu-mobile-active":I},b.className),ie=b.model?e.createElement("ul",{className:"p-megamenu-root-list",role:"menubar"},b.model.map((function(e,n){return ae(e,n)}))):null,ue=function(){if(b.start){var n=o.getJSXElement(b.start,b);return e.createElement("div",{className:"p-megamenu-start"},n)}return null}(),oe=function(){if(b.end){var n=o.getJSXElement(b.end,b);return e.createElement("div",{className:"p-megamenu-end"},n)}return null}(),me="vertical"===b.orientation||b.model&&b.model.length<1?null:e.createElement("a",{ref:z,href:"#",role:"button",tabIndex:0,className:"p-megamenu-button",onClick:F},e.createElement("i",{className:"pi pi-bars"}));return e.createElement("div",d({ref:P,id:b.id,className:le,style:b.style},re),ue,me,ie,oe)})));k.displayName="MegaMenu";export{k as MegaMenu};