primereact 9.1.1 → 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 (158) hide show
  1. package/api/api.d.ts +2 -2
  2. package/autocomplete/autocomplete.cjs.js +1 -0
  3. package/autocomplete/autocomplete.cjs.min.js +1 -1
  4. package/autocomplete/autocomplete.esm.js +1 -0
  5. package/autocomplete/autocomplete.esm.min.js +1 -1
  6. package/autocomplete/autocomplete.js +1 -0
  7. package/autocomplete/autocomplete.min.js +1 -1
  8. package/avatar/avatar.cjs.js +2 -2
  9. package/avatar/avatar.cjs.min.js +1 -1
  10. package/avatar/avatar.esm.js +2 -2
  11. package/avatar/avatar.esm.min.js +1 -1
  12. package/avatar/avatar.js +2 -2
  13. package/avatar/avatar.min.js +1 -1
  14. package/calendar/calendar.cjs.js +2 -2
  15. package/calendar/calendar.cjs.min.js +1 -1
  16. package/calendar/calendar.esm.js +2 -2
  17. package/calendar/calendar.esm.min.js +1 -1
  18. package/calendar/calendar.js +2 -2
  19. package/calendar/calendar.min.js +1 -1
  20. package/contextmenu/contextmenu.cjs.js +61 -18
  21. package/contextmenu/contextmenu.cjs.min.js +1 -1
  22. package/contextmenu/contextmenu.d.ts +9 -0
  23. package/contextmenu/contextmenu.esm.js +63 -20
  24. package/contextmenu/contextmenu.esm.min.js +1 -1
  25. package/contextmenu/contextmenu.js +61 -18
  26. package/contextmenu/contextmenu.min.js +1 -1
  27. package/core/core.js +226 -115
  28. package/core/core.min.js +4 -4
  29. package/datatable/datatable.cjs.js +84 -79
  30. package/datatable/datatable.cjs.min.js +1 -1
  31. package/datatable/datatable.d.ts +2 -11
  32. package/datatable/datatable.esm.js +85 -80
  33. package/datatable/datatable.esm.min.js +1 -1
  34. package/datatable/datatable.js +84 -79
  35. package/datatable/datatable.min.css +1 -1
  36. package/datatable/datatable.min.js +1 -1
  37. package/dropdown/dropdown.cjs.js +1 -0
  38. package/dropdown/dropdown.cjs.min.js +1 -1
  39. package/dropdown/dropdown.esm.js +1 -0
  40. package/dropdown/dropdown.esm.min.js +1 -1
  41. package/dropdown/dropdown.js +1 -0
  42. package/dropdown/dropdown.min.js +1 -1
  43. package/hooks/hooks.cjs.js +34 -2
  44. package/hooks/hooks.cjs.min.js +1 -1
  45. package/hooks/hooks.d.ts +13 -0
  46. package/hooks/hooks.esm.js +34 -3
  47. package/hooks/hooks.esm.min.js +1 -1
  48. package/hooks/hooks.js +34 -2
  49. package/hooks/hooks.min.js +1 -1
  50. package/inputtext/inputtext.min.css +1 -1
  51. package/listbox/listbox.cjs.js +5 -4
  52. package/listbox/listbox.cjs.min.js +1 -1
  53. package/listbox/listbox.esm.js +5 -4
  54. package/listbox/listbox.esm.min.js +1 -1
  55. package/listbox/listbox.js +5 -4
  56. package/listbox/listbox.min.js +1 -1
  57. package/megamenu/megamenu.cjs.js +91 -6
  58. package/megamenu/megamenu.cjs.min.js +1 -1
  59. package/megamenu/megamenu.d.ts +9 -0
  60. package/megamenu/megamenu.esm.js +93 -8
  61. package/megamenu/megamenu.esm.min.js +1 -1
  62. package/megamenu/megamenu.js +91 -6
  63. package/megamenu/megamenu.min.css +1 -1
  64. package/megamenu/megamenu.min.js +1 -1
  65. package/multiselect/multiselect.cjs.js +1 -0
  66. package/multiselect/multiselect.cjs.min.js +1 -1
  67. package/multiselect/multiselect.esm.js +1 -0
  68. package/multiselect/multiselect.esm.min.js +1 -1
  69. package/multiselect/multiselect.js +1 -0
  70. package/multiselect/multiselect.min.js +1 -1
  71. package/package.json +1 -1
  72. package/primereact.all.cjs.js +554 -244
  73. package/primereact.all.cjs.min.js +1 -1
  74. package/primereact.all.esm.js +554 -245
  75. package/primereact.all.esm.min.js +1 -1
  76. package/primereact.all.js +554 -244
  77. package/primereact.all.min.js +1 -1
  78. package/resources/primereact.css +616 -667
  79. package/resources/primereact.min.css +1 -1
  80. package/resources/themes/arya-blue/theme.css +130 -2
  81. package/resources/themes/arya-green/theme.css +130 -2
  82. package/resources/themes/arya-orange/theme.css +130 -2
  83. package/resources/themes/arya-purple/theme.css +130 -2
  84. package/resources/themes/bootstrap4-dark-blue/theme.css +131 -2
  85. package/resources/themes/bootstrap4-dark-purple/theme.css +131 -2
  86. package/resources/themes/bootstrap4-light-blue/theme.css +131 -2
  87. package/resources/themes/bootstrap4-light-purple/theme.css +131 -2
  88. package/resources/themes/fluent-light/theme.css +131 -2
  89. package/resources/themes/lara-dark-blue/theme.css +131 -2
  90. package/resources/themes/lara-dark-indigo/theme.css +131 -2
  91. package/resources/themes/lara-dark-purple/theme.css +131 -2
  92. package/resources/themes/lara-dark-teal/theme.css +131 -2
  93. package/resources/themes/lara-light-blue/theme.css +131 -2
  94. package/resources/themes/lara-light-indigo/theme.css +131 -2
  95. package/resources/themes/lara-light-purple/theme.css +131 -2
  96. package/resources/themes/lara-light-teal/theme.css +131 -2
  97. package/resources/themes/luna-amber/theme.css +131 -2
  98. package/resources/themes/luna-blue/theme.css +131 -2
  99. package/resources/themes/luna-green/theme.css +131 -2
  100. package/resources/themes/luna-pink/theme.css +131 -2
  101. package/resources/themes/md-dark-deeppurple/theme.css +131 -2
  102. package/resources/themes/md-dark-indigo/theme.css +131 -2
  103. package/resources/themes/md-light-deeppurple/theme.css +131 -2
  104. package/resources/themes/md-light-indigo/theme.css +131 -2
  105. package/resources/themes/mdc-dark-deeppurple/theme.css +131 -2
  106. package/resources/themes/mdc-dark-indigo/theme.css +131 -2
  107. package/resources/themes/mdc-light-deeppurple/theme.css +131 -2
  108. package/resources/themes/mdc-light-indigo/theme.css +131 -2
  109. package/resources/themes/mira/theme.css +131 -2
  110. package/resources/themes/nano/theme.css +131 -2
  111. package/resources/themes/nova/theme.css +131 -2
  112. package/resources/themes/nova-accent/theme.css +131 -2
  113. package/resources/themes/nova-alt/theme.css +131 -2
  114. package/resources/themes/rhea/theme.css +131 -2
  115. package/resources/themes/saga-blue/theme.css +131 -2
  116. package/resources/themes/saga-green/theme.css +131 -2
  117. package/resources/themes/saga-orange/theme.css +131 -2
  118. package/resources/themes/saga-purple/theme.css +131 -2
  119. package/resources/themes/soho-dark/theme.css +131 -2
  120. package/resources/themes/soho-light/theme.css +131 -2
  121. package/resources/themes/tailwind-light/theme.css +131 -2
  122. package/resources/themes/vela-blue/theme.css +131 -2
  123. package/resources/themes/vela-green/theme.css +131 -2
  124. package/resources/themes/vela-orange/theme.css +131 -2
  125. package/resources/themes/vela-purple/theme.css +131 -2
  126. package/resources/themes/viva-dark/theme.css +131 -2
  127. package/resources/themes/viva-light/theme.css +131 -2
  128. package/tieredmenu/tieredmenu.cjs.js +69 -9
  129. package/tieredmenu/tieredmenu.cjs.min.js +1 -1
  130. package/tieredmenu/tieredmenu.d.ts +9 -0
  131. package/tieredmenu/tieredmenu.esm.js +71 -11
  132. package/tieredmenu/tieredmenu.esm.min.js +1 -1
  133. package/tieredmenu/tieredmenu.js +69 -9
  134. package/tieredmenu/tieredmenu.min.js +1 -1
  135. package/toast/toast.min.css +1 -1
  136. package/treetable/treetable.cjs.js +12 -9
  137. package/treetable/treetable.cjs.min.js +1 -1
  138. package/treetable/treetable.d.ts +0 -5
  139. package/treetable/treetable.esm.js +12 -9
  140. package/treetable/treetable.esm.min.js +1 -1
  141. package/treetable/treetable.js +12 -9
  142. package/treetable/treetable.min.css +1 -1
  143. package/treetable/treetable.min.js +1 -1
  144. package/utils/utils.cjs.js +14 -9
  145. package/utils/utils.cjs.min.js +1 -1
  146. package/utils/utils.esm.js +14 -9
  147. package/utils/utils.esm.min.js +1 -1
  148. package/utils/utils.js +14 -9
  149. package/utils/utils.min.js +1 -1
  150. package/virtualscroller/virtualscroller.cjs.js +177 -104
  151. package/virtualscroller/virtualscroller.cjs.min.js +1 -1
  152. package/virtualscroller/virtualscroller.d.ts +20 -0
  153. package/virtualscroller/virtualscroller.esm.js +177 -104
  154. package/virtualscroller/virtualscroller.esm.min.js +1 -1
  155. package/virtualscroller/virtualscroller.js +177 -104
  156. package/virtualscroller/virtualscroller.min.css +1 -1
  157. package/virtualscroller/virtualscroller.min.js +1 -1
  158. package/web-types.json +1 -1
@@ -1,9 +1,9 @@
1
1
  import * as React from 'react';
2
2
  import PrimeReact from 'primereact/api';
3
3
  import { CSSTransition } from 'primereact/csstransition';
4
- import { useUpdateEffect, useEventListener, useResizeListener, useMountEffect, useUnmountEffect } from 'primereact/hooks';
4
+ import { useUpdateEffect, useMatchMedia, useEventListener, useResizeListener, useMountEffect, useUnmountEffect } from 'primereact/hooks';
5
5
  import { Portal } from 'primereact/portal';
6
- import { ObjectUtils, classNames, DomHandler, IconUtils, ZIndexUtils } from 'primereact/utils';
6
+ import { ObjectUtils, classNames, DomHandler, IconUtils, UniqueComponentId, ZIndexUtils } from 'primereact/utils';
7
7
  import { Ripple } from 'primereact/ripple';
8
8
 
9
9
  function _extends() {
@@ -86,6 +86,8 @@ var ContextMenuBase = {
86
86
  global: false,
87
87
  autoZIndex: true,
88
88
  baseZIndex: 0,
89
+ breakpoint: undefined,
90
+ scrollHeight: '400px',
89
91
  appendTo: null,
90
92
  transitionOptions: null,
91
93
  onShow: null,
@@ -111,7 +113,7 @@ var ContextMenuSub = /*#__PURE__*/React.memo(function (props) {
111
113
  setActiveItemState(null);
112
114
  }
113
115
  var onItemMouseEnter = function onItemMouseEnter(event, item) {
114
- if (item.disabled) {
116
+ if (item.disabled || props.isMobileMode) {
115
117
  event.preventDefault();
116
118
  return;
117
119
  }
@@ -131,26 +133,31 @@ var ContextMenuSub = /*#__PURE__*/React.memo(function (props) {
131
133
  item: item
132
134
  });
133
135
  }
136
+ if (props.isMobileMode && item.items) {
137
+ if (activeItemState && item === activeItemState) setActiveItemState(null);else setActiveItemState(item);
138
+ }
134
139
  if (!item.items) {
135
140
  props.onLeafClick(event);
136
141
  }
137
142
  };
138
143
  var position = function position() {
139
- var parentItem = submenuRef.current.parentElement;
140
- var containerOffset = DomHandler.getOffset(parentItem);
141
- var viewport = DomHandler.getViewport();
142
- var sublistWidth = submenuRef.current.offsetParent ? submenuRef.current.offsetWidth : DomHandler.getHiddenElementOuterWidth(submenuRef.current);
143
- var itemOuterWidth = DomHandler.getOuterWidth(parentItem.children[0]);
144
- var top = parseInt(containerOffset.top, 10) + submenuRef.current.offsetHeight - DomHandler.getWindowScrollTop();
145
- if (top > viewport.height) {
146
- submenuRef.current.style.top = viewport.height - top + 'px';
147
- } else {
148
- submenuRef.current.style.top = '0px';
149
- }
150
- if (parseInt(containerOffset.left, 10) + itemOuterWidth + sublistWidth > viewport.width - DomHandler.calculateScrollbarWidth()) {
151
- submenuRef.current.style.left = -1 * sublistWidth + 'px';
152
- } else {
153
- submenuRef.current.style.left = itemOuterWidth + 'px';
144
+ if (!props.isMobileMode) {
145
+ var parentItem = submenuRef.current.parentElement;
146
+ var containerOffset = DomHandler.getOffset(parentItem);
147
+ var viewport = DomHandler.getViewport();
148
+ var sublistWidth = submenuRef.current.offsetParent ? submenuRef.current.offsetWidth : DomHandler.getHiddenElementOuterWidth(submenuRef.current);
149
+ var itemOuterWidth = DomHandler.getOuterWidth(parentItem.children[0]);
150
+ var top = parseInt(containerOffset.top, 10) + submenuRef.current.offsetHeight - DomHandler.getWindowScrollTop();
151
+ if (top > viewport.height) {
152
+ submenuRef.current.style.top = viewport.height - top + 'px';
153
+ } else {
154
+ submenuRef.current.style.top = '0px';
155
+ }
156
+ if (parseInt(containerOffset.left, 10) + itemOuterWidth + sublistWidth > viewport.width - DomHandler.calculateScrollbarWidth()) {
157
+ submenuRef.current.style.left = -1 * sublistWidth + 'px';
158
+ } else {
159
+ submenuRef.current.style.left = itemOuterWidth + 'px';
160
+ }
154
161
  }
155
162
  };
156
163
  var onEnter = function onEnter() {
@@ -172,7 +179,8 @@ var ContextMenuSub = /*#__PURE__*/React.memo(function (props) {
172
179
  menuProps: props.menuProps,
173
180
  model: item.items,
174
181
  resetMenu: item !== activeItemState,
175
- onLeafClick: props.onLeafClick
182
+ onLeafClick: props.onLeafClick,
183
+ isMobileMode: props.isMobileMode
176
184
  });
177
185
  }
178
186
  return null;
@@ -281,8 +289,14 @@ var ContextMenu = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(functio
281
289
  _React$useState6 = _slicedToArray(_React$useState5, 2),
282
290
  resetMenuState = _React$useState6[0],
283
291
  setResetMenuState = _React$useState6[1];
292
+ var _React$useState7 = React.useState(null),
293
+ _React$useState8 = _slicedToArray(_React$useState7, 2),
294
+ attributeSelectorState = _React$useState8[0],
295
+ setAttributeSelectorState = _React$useState8[1];
284
296
  var menuRef = React.useRef(null);
285
297
  var currentEvent = React.useRef(null);
298
+ var styleElementRef = React.useRef(null);
299
+ var isMobileMode = useMatchMedia("screen and (max-width: ".concat(props.breakpoint, ")"), !!props.breakpoint);
286
300
  var _useEventListener = useEventListener({
287
301
  type: 'click',
288
302
  listener: function listener(event) {
@@ -313,6 +327,17 @@ var ContextMenu = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(functio
313
327
  _useResizeListener2 = _slicedToArray(_useResizeListener, 2),
314
328
  bindDocumentResizeListener = _useResizeListener2[0],
315
329
  unbindDocumentResizeListener = _useResizeListener2[1];
330
+ var createStyle = function createStyle() {
331
+ if (!styleElementRef.current) {
332
+ styleElementRef.current = DomHandler.createInlineStyle(PrimeReact.nonce);
333
+ var selector = "".concat(attributeSelectorState);
334
+ var innerHTML = "\n@media screen and (max-width: ".concat(props.breakpoint, ") {\n .p-contextmenu[").concat(selector, "] > ul {\n max-height: ").concat(props.scrollHeight, ";\n overflow: ").concat(props.scrollHeight ? 'auto' : '', ";\n }\n\n .p-contextmenu[").concat(selector, "] .p-submenu-list {\n position: relative;\n }\n\n .p-contextmenu[").concat(selector, "] .p-menuitem-active > .p-submenu-list {\n left: 0 !important;\n box-shadow: none;\n border-radius: 0;\n padding: 0 0 0 calc(var(--inline-spacing) * 2); /* @todo */\n }\n\n .p-contextmenu[").concat(selector, "] .p-menuitem-active > .p-menuitem-link > .p-submenu-icon {\n transform: rotate(-180deg);\n }\n\n .p-contextmenu[").concat(selector, "] .p-submenu-icon:before {\n content: \"\\e930\";\n }\n}\n");
335
+ styleElementRef.current.innerHTML = innerHTML;
336
+ }
337
+ };
338
+ var destroyStyle = function destroyStyle() {
339
+ styleElementRef.current = DomHandler.removeInlineStyle(styleElementRef.current);
340
+ };
316
341
  var onMenuClick = function onMenuClick() {
317
342
  setResetMenuState(false);
318
343
  };
@@ -341,6 +366,10 @@ var ContextMenu = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(functio
341
366
  ZIndexUtils.set('menu', menuRef.current, PrimeReact.autoZIndex, props.baseZIndex || PrimeReact.zIndex['menu']);
342
367
  }
343
368
  position(currentEvent.current);
369
+ if (attributeSelectorState && props.breakpoint) {
370
+ menuRef.current.setAttribute(attributeSelectorState, '');
371
+ createStyle();
372
+ }
344
373
  };
345
374
  var onEntered = function onEntered() {
346
375
  bindDocumentListeners();
@@ -351,6 +380,7 @@ var ContextMenu = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(functio
351
380
  };
352
381
  var onExited = function onExited() {
353
382
  ZIndexUtils.clear(menuRef.current);
383
+ destroyStyle();
354
384
  };
355
385
  var position = function position(event) {
356
386
  if (event) {
@@ -403,7 +433,19 @@ var ContextMenu = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(functio
403
433
  if (props.global) {
404
434
  bindDocumentContextMenuListener();
405
435
  }
436
+ if (props.breakpoint) {
437
+ !attributeSelectorState && setAttributeSelectorState(UniqueComponentId());
438
+ }
406
439
  });
440
+ useUpdateEffect(function () {
441
+ if (attributeSelectorState && menuRef.current) {
442
+ menuRef.current.setAttribute(attributeSelectorState, '');
443
+ createStyle();
444
+ }
445
+ return function () {
446
+ destroyStyle();
447
+ };
448
+ }, [attributeSelectorState, props.breakpoint]);
407
449
  useUpdateEffect(function () {
408
450
  if (visibleState) {
409
451
  setVisibleState(false);
@@ -459,7 +501,8 @@ var ContextMenu = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(functio
459
501
  model: props.model,
460
502
  root: true,
461
503
  resetMenu: resetMenuState,
462
- onLeafClick: onLeafClick
504
+ onLeafClick: onLeafClick,
505
+ isMobileMode: isMobileMode
463
506
  })));
464
507
  };
465
508
  var element = createContextMenu();
@@ -1 +1 @@
1
- import*as e from"react";import t from"primereact/api";import{CSSTransition as n}from"primereact/csstransition";import{useUpdateEffect as r,useEventListener as o,useResizeListener as l,useMountEffect as u,useUnmountEffect as i}from"primereact/hooks";import{Portal as a}from"primereact/portal";import{ObjectUtils as c,classNames as s,DomHandler as m,IconUtils as p,ZIndexUtils as f}from"primereact/utils";import{Ripple as d}from"primereact/ripple";function g(){return g=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},g.apply(this,arguments)}function b(e){if(Array.isArray(e))return e}function h(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,l,u,i=[],a=!0,c=!1;try{if(l=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;a=!1}else for(;!(a=(r=l.call(n)).done)&&(i.push(r.value),i.length!==t);a=!0);}catch(e){c=!0,o=e}finally{try{if(!a&&null!=n.return&&(u=n.return(),Object(u)!==u))return}finally{if(c)throw o}}return i}}function y(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 y(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)?y(e,t):void 0}}function E(){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 x(e,t){return b(e)||h(e,t)||v(e,t)||E()}var N={defaultProps:{__TYPE:"ContextMenu",id:null,model:null,style:null,className:null,global:!1,autoZIndex:!0,baseZIndex:0,appendTo:null,transitionOptions:null,onShow:null,onHide:null,children:void 0},getProps:function(e){return c.getMergedProps(e,N.defaultProps)},getOtherProps:function(e){return c.getDiffProps(e,N.defaultProps)}},P=e.memo((function(t){var o=x(e.useState(null),2),l=o[0],u=o[1],i=e.useRef(null),a=t.root||!t.resetMenu;!0===t.resetMenu&&null!==l&&u(null);var f=function(e,t){t.disabled?e.preventDefault():u(t)},g=function(e,n){n.disabled?e.preventDefault():(n.url||e.preventDefault(),n.command&&n.command({originalEvent:e,item:n}),n.items||t.onLeafClick(e))},b=function(){var e=i.current.parentElement,t=m.getOffset(e),n=m.getViewport(),r=i.current.offsetParent?i.current.offsetWidth:m.getHiddenElementOuterWidth(i.current),o=m.getOuterWidth(e.children[0]),l=parseInt(t.top,10)+i.current.offsetHeight-m.getWindowScrollTop();i.current.style.top=l>n.height?n.height-l+"px":"0px",i.current.style.left=parseInt(t.left,10)+o+r>n.width-m.calculateScrollbarWidth()?-1*r+"px":o+"px"};r((function(){a&&b()}));var h=function(t){return e.createElement("li",{key:"separator_"+t,className:"p-menu-separator",role:"separator"})},y=function(n){return n.items?e.createElement(P,{menuProps:t.menuProps,model:n.items,resetMenu:n!==l,onLeafClick:t.onLeafClick}):null},v=function(n,r){if(!1===n.visible)return null;var o=l===n,u=n.label+"_"+r,i=s("p-menuitem",{"p-menuitem-active":o},n.className),a=s("p-menuitem-link",{"p-disabled":n.disabled}),m=s("p-menuitem-icon",n.icon),b="p-submenu-icon pi pi-angle-right",h=p.getJSXIcon(n.icon,{className:"p-menuitem-icon"},{props:t.menuProps}),v=n.label&&e.createElement("span",{className:"p-menuitem-text"},n.label),E=n.items&&e.createElement("span",{className:b}),x=y(n),N=e.createElement("a",{href:n.url||"#",className:a,target:n.target,onClick:function(e){return g(e,n)},role:"menuitem","aria-haspopup":null!=n.items,"aria-disabled":n.disabled},h,v,E,e.createElement(d,null));n.template&&(N=c.getJSXElement(n.template,n,{onClick:function(e){return g(e,n)},className:a,labelClassName:"p-menuitem-text",iconClassName:m,submenuIconClassName:b,element:N,props:t,active:o}));return e.createElement("li",{key:u,role:"none",id:n.id,className:i,style:n.style,onMouseEnter:function(e){return f(e,n)}},N,x)},E=function(e,t){return e.separator?h(t):v(e,t)},N=s({"p-submenu-list":!t.root}),O=t.model?t.model.map(E):null;return e.createElement(n,{nodeRef:i,classNames:"p-contextmenusub",in:a,timeout:{enter:0,exit:0},unmountOnExit:!0,onEnter:function(){b()}},e.createElement("ul",{ref:i,className:N},O))}));P.displayName="ContextMenuSub";var O=e.memo(e.forwardRef((function(c,p){var d=N.getProps(c),b=x(e.useState(!1),2),h=b[0],y=b[1],v=x(e.useState(!1),2),E=v[0],O=v[1],S=x(e.useState(!1),2),w=S[0],C=S[1],I=e.useRef(null),k=e.useRef(null),M=x(o({type:"click",listener:function(e){$(e)&&2!==e.button&&(_(e),C(!0))}}),2),H=M[0],T=M[1],j=x(o({type:"contextmenu",listener:function(e){Z(e)}}),1)[0],L=x(l({listener:function(e){h&&!m.isTouchDevice()&&_(e)}}),2),W=L[0],A=L[1],D=function(){C(!1)},R=function(){C(!1)},Z=function(e){e.stopPropagation(),e.preventDefault(),k.current=e,h?O(!0):(y(!0),d.onShow&&d.onShow(k.current))},_=function(e){k.current=e,y(!1),O(!1),d.onHide&&d.onHide(k.current)},X=function(){d.autoZIndex&&f.set("menu",I.current,t.autoZIndex,d.baseZIndex||t.zIndex.menu),z(k.current)},J=function(){q()},V=function(){B(),f.clear(I.current)},Y=function(){f.clear(I.current)},z=function(e){if(e){var t=e.pageX+1,n=e.pageY+1,r=I.current.offsetParent?I.current.offsetWidth:m.getHiddenElementOuterWidth(I.current),o=I.current.offsetParent?I.current.offsetHeight:m.getHiddenElementOuterHeight(I.current),l=m.getViewport();t+r-document.body.scrollLeft>l.width&&(t-=r),n+o-document.body.scrollTop>l.height&&(n-=o),t<document.body.scrollLeft&&(t=document.body.scrollLeft),n<document.body.scrollTop&&(n=document.body.scrollTop),I.current.style.left=t+"px",I.current.style.top=n+"px"}},U=function(e){C(!0),_(e),e.stopPropagation()},$=function(e){return I&&I.current&&!(I.current.isSameNode(e.target)||I.current.contains(e.target))},q=function(){W(),H()},B=function(){A(),T()};u((function(){d.global&&j()})),r((function(){h?(y(!1),O(!1),C(!0)):E||h||!w||Z(k.current)}),[E]),i((function(){f.clear(I.current)})),e.useImperativeHandle(p,(function(){return{props:d,show:Z,hide:_,getElement:function(){return I.current}}}));var F,G,K=(F=N.getOtherProps(d),G=s("p-contextmenu p-component",d.className,{"p-input-filled":"filled"===t.inputStyle,"p-ripple-disabled":!1===t.ripple}),e.createElement(n,{nodeRef:I,classNames:"p-contextmenu",in:h,timeout:{enter:250,exit:0},options:d.transitionOptions,unmountOnExit:!0,onEnter:X,onEntered:J,onExit:V,onExited:Y},e.createElement("div",g({ref:I,id:d.id,className:G,style:d.style},F,{onClick:D,onMouseEnter:R}),e.createElement(P,{menuProps:d,model:d.model,root:!0,resetMenu:w,onLeafClick:U}))));return e.createElement(a,{element:K,appendTo:d.appendTo})})));O.displayName="ContextMenu";export{O as ContextMenu};
1
+ import*as e from"react";import t from"primereact/api";import{CSSTransition as n}from"primereact/csstransition";import{useUpdateEffect as r,useMatchMedia as o,useEventListener as i,useResizeListener as u,useMountEffect as l,useUnmountEffect as a}from"primereact/hooks";import{Portal as c}from"primereact/portal";import{ObjectUtils as s,classNames as m,DomHandler as p,IconUtils as f,UniqueComponentId as d,ZIndexUtils as b}from"primereact/utils";import{Ripple as g}from"primereact/ripple";function h(){return h=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},h.apply(this,arguments)}function y(e){if(Array.isArray(e))return e}function v(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,i,u,l=[],a=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;a=!1}else for(;!(a=(r=i.call(n)).done)&&(l.push(r.value),l.length!==t);a=!0);}catch(e){c=!0,o=e}finally{try{if(!a&&null!=n.return&&(u=n.return(),Object(u)!==u))return}finally{if(c)throw o}}return l}}function x(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 E(e,t){if(e){if("string"==typeof e)return x(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)?x(e,t):void 0}}function M(){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 S(e,t){return y(e)||v(e,t)||E(e,t)||M()}var k={defaultProps:{__TYPE:"ContextMenu",id:null,model:null,style:null,className:null,global:!1,autoZIndex:!0,baseZIndex:0,breakpoint:void 0,scrollHeight:"400px",appendTo:null,transitionOptions:null,onShow:null,onHide:null,children:void 0},getProps:function(e){return s.getMergedProps(e,k.defaultProps)},getOtherProps:function(e){return s.getDiffProps(e,k.defaultProps)}},N=e.memo((function(t){var o=S(e.useState(null),2),i=o[0],u=o[1],l=e.useRef(null),a=t.root||!t.resetMenu;!0===t.resetMenu&&null!==i&&u(null);var c=function(e,n){n.disabled||t.isMobileMode?e.preventDefault():u(n)},d=function(e,n){n.disabled?e.preventDefault():(n.url||e.preventDefault(),n.command&&n.command({originalEvent:e,item:n}),t.isMobileMode&&n.items&&u(i&&n===i?null:n),n.items||t.onLeafClick(e))},b=function(){if(!t.isMobileMode){var e=l.current.parentElement,n=p.getOffset(e),r=p.getViewport(),o=l.current.offsetParent?l.current.offsetWidth:p.getHiddenElementOuterWidth(l.current),i=p.getOuterWidth(e.children[0]),u=parseInt(n.top,10)+l.current.offsetHeight-p.getWindowScrollTop();l.current.style.top=u>r.height?r.height-u+"px":"0px",l.current.style.left=parseInt(n.left,10)+i+o>r.width-p.calculateScrollbarWidth()?-1*o+"px":i+"px"}};r((function(){a&&b()}));var h=function(t){return e.createElement("li",{key:"separator_"+t,className:"p-menu-separator",role:"separator"})},y=function(n){return n.items?e.createElement(N,{menuProps:t.menuProps,model:n.items,resetMenu:n!==i,onLeafClick:t.onLeafClick,isMobileMode:t.isMobileMode}):null},v=function(n,r){if(!1===n.visible)return null;var o=i===n,u=n.label+"_"+r,l=m("p-menuitem",{"p-menuitem-active":o},n.className),a=m("p-menuitem-link",{"p-disabled":n.disabled}),p=m("p-menuitem-icon",n.icon),b="p-submenu-icon pi pi-angle-right",h=f.getJSXIcon(n.icon,{className:"p-menuitem-icon"},{props:t.menuProps}),v=n.label&&e.createElement("span",{className:"p-menuitem-text"},n.label),x=n.items&&e.createElement("span",{className:b}),E=y(n),M=e.createElement("a",{href:n.url||"#",className:a,target:n.target,onClick:function(e){return d(e,n)},role:"menuitem","aria-haspopup":null!=n.items,"aria-disabled":n.disabled},h,v,x,e.createElement(g,null));n.template&&(M=s.getJSXElement(n.template,n,{onClick:function(e){return d(e,n)},className:a,labelClassName:"p-menuitem-text",iconClassName:p,submenuIconClassName:b,element:M,props:t,active:o}));return e.createElement("li",{key:u,role:"none",id:n.id,className:l,style:n.style,onMouseEnter:function(e){return c(e,n)}},M,E)},x=function(e,t){return e.separator?h(t):v(e,t)},E=m({"p-submenu-list":!t.root}),M=t.model?t.model.map(x):null;return e.createElement(n,{nodeRef:l,classNames:"p-contextmenusub",in:a,timeout:{enter:0,exit:0},unmountOnExit:!0,onEnter:function(){b()}},e.createElement("ul",{ref:l,className:E},M))}));N.displayName="ContextMenuSub";var P=e.memo(e.forwardRef((function(s,f){var g=k.getProps(s),y=S(e.useState(!1),2),v=y[0],x=y[1],E=S(e.useState(!1),2),M=E[0],P=E[1],w=S(e.useState(!1),2),O=w[0],I=w[1],C=S(e.useState(null),2),H=C[0],T=C[1],j=e.useRef(null),A=e.useRef(null),L=e.useRef(null),R=o("screen and (max-width: ".concat(g.breakpoint,")"),!!g.breakpoint),W=S(i({type:"click",listener:function(e){ne(e)&&2!==e.button&&(B(e),I(!0))}}),2),D=W[0],Z=W[1],_=S(i({type:"contextmenu",listener:function(e){q(e)}}),1)[0],X=S(u({listener:function(e){v&&!p.isTouchDevice()&&B(e)}}),2),J=X[0],V=X[1],Y=function(){if(!L.current){L.current=p.createInlineStyle(t.nonce);var e="".concat(H),n="\n@media screen and (max-width: ".concat(g.breakpoint,") {\n .p-contextmenu[").concat(e,"] > ul {\n max-height: ").concat(g.scrollHeight,";\n overflow: ").concat(g.scrollHeight?"auto":"",";\n }\n\n .p-contextmenu[").concat(e,"] .p-submenu-list {\n position: relative;\n }\n\n .p-contextmenu[").concat(e,"] .p-menuitem-active > .p-submenu-list {\n left: 0 !important;\n box-shadow: none;\n border-radius: 0;\n padding: 0 0 0 calc(var(--inline-spacing) * 2); /* @todo */\n }\n\n .p-contextmenu[").concat(e,"] .p-menuitem-active > .p-menuitem-link > .p-submenu-icon {\n transform: rotate(-180deg);\n }\n\n .p-contextmenu[").concat(e,'] .p-submenu-icon:before {\n content: "\\e930";\n }\n}\n');L.current.innerHTML=n}},z=function(){L.current=p.removeInlineStyle(L.current)},U=function(){I(!1)},$=function(){I(!1)},q=function(e){e.stopPropagation(),e.preventDefault(),A.current=e,v?P(!0):(x(!0),g.onShow&&g.onShow(A.current))},B=function(e){A.current=e,x(!1),P(!1),g.onHide&&g.onHide(A.current)},F=function(){g.autoZIndex&&b.set("menu",j.current,t.autoZIndex,g.baseZIndex||t.zIndex.menu),ee(A.current),H&&g.breakpoint&&(j.current.setAttribute(H,""),Y())},G=function(){re()},K=function(){oe(),b.clear(j.current)},Q=function(){b.clear(j.current),z()},ee=function(e){if(e){var t=e.pageX+1,n=e.pageY+1,r=j.current.offsetParent?j.current.offsetWidth:p.getHiddenElementOuterWidth(j.current),o=j.current.offsetParent?j.current.offsetHeight:p.getHiddenElementOuterHeight(j.current),i=p.getViewport();t+r-document.body.scrollLeft>i.width&&(t-=r),n+o-document.body.scrollTop>i.height&&(n-=o),t<document.body.scrollLeft&&(t=document.body.scrollLeft),n<document.body.scrollTop&&(n=document.body.scrollTop),j.current.style.left=t+"px",j.current.style.top=n+"px"}},te=function(e){I(!0),B(e),e.stopPropagation()},ne=function(e){return j&&j.current&&!(j.current.isSameNode(e.target)||j.current.contains(e.target))},re=function(){J(),D()},oe=function(){V(),Z()};l((function(){g.global&&_(),g.breakpoint&&!H&&T(d())})),r((function(){return H&&j.current&&(j.current.setAttribute(H,""),Y()),function(){z()}}),[H,g.breakpoint]),r((function(){v?(x(!1),P(!1),I(!0)):M||v||!O||q(A.current)}),[M]),a((function(){b.clear(j.current)})),e.useImperativeHandle(f,(function(){return{props:g,show:q,hide:B,getElement:function(){return j.current}}}));var ie,ue,le=(ie=k.getOtherProps(g),ue=m("p-contextmenu p-component",g.className,{"p-input-filled":"filled"===t.inputStyle,"p-ripple-disabled":!1===t.ripple}),e.createElement(n,{nodeRef:j,classNames:"p-contextmenu",in:v,timeout:{enter:250,exit:0},options:g.transitionOptions,unmountOnExit:!0,onEnter:F,onEntered:G,onExit:K,onExited:Q},e.createElement("div",h({ref:j,id:g.id,className:ue,style:g.style},ie,{onClick:U,onMouseEnter:$}),e.createElement(N,{menuProps:g,model:g.model,root:!0,resetMenu:O,onLeafClick:te,isMobileMode:R}))));return e.createElement(c,{element:le,appendTo:g.appendTo})})));P.displayName="ContextMenu";export{P as ContextMenu};
@@ -105,6 +105,8 @@ this.primereact.contextmenu = (function (exports, React, PrimeReact, csstransiti
105
105
  global: false,
106
106
  autoZIndex: true,
107
107
  baseZIndex: 0,
108
+ breakpoint: undefined,
109
+ scrollHeight: '400px',
108
110
  appendTo: null,
109
111
  transitionOptions: null,
110
112
  onShow: null,
@@ -130,7 +132,7 @@ this.primereact.contextmenu = (function (exports, React, PrimeReact, csstransiti
130
132
  setActiveItemState(null);
131
133
  }
132
134
  var onItemMouseEnter = function onItemMouseEnter(event, item) {
133
- if (item.disabled) {
135
+ if (item.disabled || props.isMobileMode) {
134
136
  event.preventDefault();
135
137
  return;
136
138
  }
@@ -150,26 +152,31 @@ this.primereact.contextmenu = (function (exports, React, PrimeReact, csstransiti
150
152
  item: item
151
153
  });
152
154
  }
155
+ if (props.isMobileMode && item.items) {
156
+ if (activeItemState && item === activeItemState) setActiveItemState(null);else setActiveItemState(item);
157
+ }
153
158
  if (!item.items) {
154
159
  props.onLeafClick(event);
155
160
  }
156
161
  };
157
162
  var position = function position() {
158
- var parentItem = submenuRef.current.parentElement;
159
- var containerOffset = utils.DomHandler.getOffset(parentItem);
160
- var viewport = utils.DomHandler.getViewport();
161
- var sublistWidth = submenuRef.current.offsetParent ? submenuRef.current.offsetWidth : utils.DomHandler.getHiddenElementOuterWidth(submenuRef.current);
162
- var itemOuterWidth = utils.DomHandler.getOuterWidth(parentItem.children[0]);
163
- var top = parseInt(containerOffset.top, 10) + submenuRef.current.offsetHeight - utils.DomHandler.getWindowScrollTop();
164
- if (top > viewport.height) {
165
- submenuRef.current.style.top = viewport.height - top + 'px';
166
- } else {
167
- submenuRef.current.style.top = '0px';
168
- }
169
- if (parseInt(containerOffset.left, 10) + itemOuterWidth + sublistWidth > viewport.width - utils.DomHandler.calculateScrollbarWidth()) {
170
- submenuRef.current.style.left = -1 * sublistWidth + 'px';
171
- } else {
172
- submenuRef.current.style.left = itemOuterWidth + 'px';
163
+ if (!props.isMobileMode) {
164
+ var parentItem = submenuRef.current.parentElement;
165
+ var containerOffset = utils.DomHandler.getOffset(parentItem);
166
+ var viewport = utils.DomHandler.getViewport();
167
+ var sublistWidth = submenuRef.current.offsetParent ? submenuRef.current.offsetWidth : utils.DomHandler.getHiddenElementOuterWidth(submenuRef.current);
168
+ var itemOuterWidth = utils.DomHandler.getOuterWidth(parentItem.children[0]);
169
+ var top = parseInt(containerOffset.top, 10) + submenuRef.current.offsetHeight - utils.DomHandler.getWindowScrollTop();
170
+ if (top > viewport.height) {
171
+ submenuRef.current.style.top = viewport.height - top + 'px';
172
+ } else {
173
+ submenuRef.current.style.top = '0px';
174
+ }
175
+ if (parseInt(containerOffset.left, 10) + itemOuterWidth + sublistWidth > viewport.width - utils.DomHandler.calculateScrollbarWidth()) {
176
+ submenuRef.current.style.left = -1 * sublistWidth + 'px';
177
+ } else {
178
+ submenuRef.current.style.left = itemOuterWidth + 'px';
179
+ }
173
180
  }
174
181
  };
175
182
  var onEnter = function onEnter() {
@@ -191,7 +198,8 @@ this.primereact.contextmenu = (function (exports, React, PrimeReact, csstransiti
191
198
  menuProps: props.menuProps,
192
199
  model: item.items,
193
200
  resetMenu: item !== activeItemState,
194
- onLeafClick: props.onLeafClick
201
+ onLeafClick: props.onLeafClick,
202
+ isMobileMode: props.isMobileMode
195
203
  });
196
204
  }
197
205
  return null;
@@ -300,8 +308,14 @@ this.primereact.contextmenu = (function (exports, React, PrimeReact, csstransiti
300
308
  _React$useState6 = _slicedToArray(_React$useState5, 2),
301
309
  resetMenuState = _React$useState6[0],
302
310
  setResetMenuState = _React$useState6[1];
311
+ var _React$useState7 = React__namespace.useState(null),
312
+ _React$useState8 = _slicedToArray(_React$useState7, 2),
313
+ attributeSelectorState = _React$useState8[0],
314
+ setAttributeSelectorState = _React$useState8[1];
303
315
  var menuRef = React__namespace.useRef(null);
304
316
  var currentEvent = React__namespace.useRef(null);
317
+ var styleElementRef = React__namespace.useRef(null);
318
+ var isMobileMode = hooks.useMatchMedia("screen and (max-width: ".concat(props.breakpoint, ")"), !!props.breakpoint);
305
319
  var _useEventListener = hooks.useEventListener({
306
320
  type: 'click',
307
321
  listener: function listener(event) {
@@ -332,6 +346,17 @@ this.primereact.contextmenu = (function (exports, React, PrimeReact, csstransiti
332
346
  _useResizeListener2 = _slicedToArray(_useResizeListener, 2),
333
347
  bindDocumentResizeListener = _useResizeListener2[0],
334
348
  unbindDocumentResizeListener = _useResizeListener2[1];
349
+ var createStyle = function createStyle() {
350
+ if (!styleElementRef.current) {
351
+ styleElementRef.current = utils.DomHandler.createInlineStyle(PrimeReact__default["default"].nonce);
352
+ var selector = "".concat(attributeSelectorState);
353
+ var innerHTML = "\n@media screen and (max-width: ".concat(props.breakpoint, ") {\n .p-contextmenu[").concat(selector, "] > ul {\n max-height: ").concat(props.scrollHeight, ";\n overflow: ").concat(props.scrollHeight ? 'auto' : '', ";\n }\n\n .p-contextmenu[").concat(selector, "] .p-submenu-list {\n position: relative;\n }\n\n .p-contextmenu[").concat(selector, "] .p-menuitem-active > .p-submenu-list {\n left: 0 !important;\n box-shadow: none;\n border-radius: 0;\n padding: 0 0 0 calc(var(--inline-spacing) * 2); /* @todo */\n }\n\n .p-contextmenu[").concat(selector, "] .p-menuitem-active > .p-menuitem-link > .p-submenu-icon {\n transform: rotate(-180deg);\n }\n\n .p-contextmenu[").concat(selector, "] .p-submenu-icon:before {\n content: \"\\e930\";\n }\n}\n");
354
+ styleElementRef.current.innerHTML = innerHTML;
355
+ }
356
+ };
357
+ var destroyStyle = function destroyStyle() {
358
+ styleElementRef.current = utils.DomHandler.removeInlineStyle(styleElementRef.current);
359
+ };
335
360
  var onMenuClick = function onMenuClick() {
336
361
  setResetMenuState(false);
337
362
  };
@@ -360,6 +385,10 @@ this.primereact.contextmenu = (function (exports, React, PrimeReact, csstransiti
360
385
  utils.ZIndexUtils.set('menu', menuRef.current, PrimeReact__default["default"].autoZIndex, props.baseZIndex || PrimeReact__default["default"].zIndex['menu']);
361
386
  }
362
387
  position(currentEvent.current);
388
+ if (attributeSelectorState && props.breakpoint) {
389
+ menuRef.current.setAttribute(attributeSelectorState, '');
390
+ createStyle();
391
+ }
363
392
  };
364
393
  var onEntered = function onEntered() {
365
394
  bindDocumentListeners();
@@ -370,6 +399,7 @@ this.primereact.contextmenu = (function (exports, React, PrimeReact, csstransiti
370
399
  };
371
400
  var onExited = function onExited() {
372
401
  utils.ZIndexUtils.clear(menuRef.current);
402
+ destroyStyle();
373
403
  };
374
404
  var position = function position(event) {
375
405
  if (event) {
@@ -422,7 +452,19 @@ this.primereact.contextmenu = (function (exports, React, PrimeReact, csstransiti
422
452
  if (props.global) {
423
453
  bindDocumentContextMenuListener();
424
454
  }
455
+ if (props.breakpoint) {
456
+ !attributeSelectorState && setAttributeSelectorState(utils.UniqueComponentId());
457
+ }
425
458
  });
459
+ hooks.useUpdateEffect(function () {
460
+ if (attributeSelectorState && menuRef.current) {
461
+ menuRef.current.setAttribute(attributeSelectorState, '');
462
+ createStyle();
463
+ }
464
+ return function () {
465
+ destroyStyle();
466
+ };
467
+ }, [attributeSelectorState, props.breakpoint]);
426
468
  hooks.useUpdateEffect(function () {
427
469
  if (visibleState) {
428
470
  setVisibleState(false);
@@ -478,7 +520,8 @@ this.primereact.contextmenu = (function (exports, React, PrimeReact, csstransiti
478
520
  model: props.model,
479
521
  root: true,
480
522
  resetMenu: resetMenuState,
481
- onLeafClick: onLeafClick
523
+ onLeafClick: onLeafClick,
524
+ isMobileMode: isMobileMode
482
525
  })));
483
526
  };
484
527
  var element = createContextMenu();
@@ -1 +1 @@
1
- this.primereact=this.primereact||{},this.primereact.contextmenu=function(e,t,n,r,o,l,u,a){"use strict";function i(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function c(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 s=c(t),m=i(n);function f(){return f=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},f.apply(this,arguments)}function p(e){if(Array.isArray(e))return e}function d(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,l,u,a=[],i=!0,c=!1;try{if(l=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;i=!1}else for(;!(i=(r=l.call(n)).done)&&(a.push(r.value),a.length!==t);i=!0);}catch(e){c=!0,o=e}finally{try{if(!i&&null!=n.return&&(u=n.return(),Object(u)!==u))return}finally{if(c)throw o}}return a}}function b(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 g(e,t){if(e){if("string"==typeof e)return b(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)?b(e,t):void 0}}function h(){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 y(e,t){return p(e)||d(e,t)||g(e,t)||h()}var v={defaultProps:{__TYPE:"ContextMenu",id:null,model:null,style:null,className:null,global:!1,autoZIndex:!0,baseZIndex:0,appendTo:null,transitionOptions:null,onShow:null,onHide:null,children:void 0},getProps:function(e){return u.ObjectUtils.getMergedProps(e,v.defaultProps)},getOtherProps:function(e){return u.ObjectUtils.getDiffProps(e,v.defaultProps)}},E=s.memo((function(e){var t=y(s.useState(null),2),n=t[0],l=t[1],i=s.useRef(null),c=e.root||!e.resetMenu;!0===e.resetMenu&&null!==n&&l(null);var m=function(e,t){t.disabled?e.preventDefault():l(t)},f=function(t,n){n.disabled?t.preventDefault():(n.url||t.preventDefault(),n.command&&n.command({originalEvent:t,item:n}),n.items||e.onLeafClick(t))},p=function(){var e=i.current.parentElement,t=u.DomHandler.getOffset(e),n=u.DomHandler.getViewport(),r=i.current.offsetParent?i.current.offsetWidth:u.DomHandler.getHiddenElementOuterWidth(i.current),o=u.DomHandler.getOuterWidth(e.children[0]),l=parseInt(t.top,10)+i.current.offsetHeight-u.DomHandler.getWindowScrollTop();i.current.style.top=l>n.height?n.height-l+"px":"0px",i.current.style.left=parseInt(t.left,10)+o+r>n.width-u.DomHandler.calculateScrollbarWidth()?-1*r+"px":o+"px"};o.useUpdateEffect((function(){c&&p()}));var d=function(e){return s.createElement("li",{key:"separator_"+e,className:"p-menu-separator",role:"separator"})},b=function(t){return t.items?s.createElement(E,{menuProps:e.menuProps,model:t.items,resetMenu:t!==n,onLeafClick:e.onLeafClick}):null},g=function(t,r){if(!1===t.visible)return null;var o=n===t,l=t.label+"_"+r,i=u.classNames("p-menuitem",{"p-menuitem-active":o},t.className),c=u.classNames("p-menuitem-link",{"p-disabled":t.disabled}),p=u.classNames("p-menuitem-icon",t.icon),d="p-submenu-icon pi pi-angle-right",g=u.IconUtils.getJSXIcon(t.icon,{className:"p-menuitem-icon"},{props:e.menuProps}),h=t.label&&s.createElement("span",{className:"p-menuitem-text"},t.label),y=t.items&&s.createElement("span",{className:d}),v=b(t),E=s.createElement("a",{href:t.url||"#",className:c,target:t.target,onClick:function(e){return f(e,t)},role:"menuitem","aria-haspopup":null!=t.items,"aria-disabled":t.disabled},g,h,y,s.createElement(a.Ripple,null));t.template&&(E=u.ObjectUtils.getJSXElement(t.template,t,{onClick:function(e){return f(e,t)},className:c,labelClassName:"p-menuitem-text",iconClassName:p,submenuIconClassName:d,element:E,props:e,active:o}));return s.createElement("li",{key:l,role:"none",id:t.id,className:i,style:t.style,onMouseEnter:function(e){return m(e,t)}},E,v)},h=function(e,t){return e.separator?d(t):g(e,t)},v=u.classNames({"p-submenu-list":!e.root}),x=e.model?e.model.map(h):null;return s.createElement(r.CSSTransition,{nodeRef:i,classNames:"p-contextmenusub",in:c,timeout:{enter:0,exit:0},unmountOnExit:!0,onEnter:function(){p()}},s.createElement("ul",{ref:i,className:v},x))}));E.displayName="ContextMenuSub";var x=s.memo(s.forwardRef((function(e,t){var n=v.getProps(e),a=y(s.useState(!1),2),i=a[0],c=a[1],p=y(s.useState(!1),2),d=p[0],b=p[1],g=y(s.useState(!1),2),h=g[0],x=g[1],O=s.useRef(null),N=s.useRef(null),P=y(o.useEventListener({type:"click",listener:function(e){A(e)&&2!==e.button&&(T(e),x(!0))}}),2),S=P[0],H=P[1],I=y(o.useEventListener({type:"contextmenu",listener:function(e){k(e)}}),1)[0],j=y(o.useResizeListener({listener:function(e){i&&!u.DomHandler.isTouchDevice()&&T(e)}}),2),C=j[0],D=j[1],w=function(){x(!1)},M=function(){x(!1)},k=function(e){e.stopPropagation(),e.preventDefault(),N.current=e,i?b(!0):(c(!0),n.onShow&&n.onShow(N.current))},T=function(e){N.current=e,c(!1),b(!1),n.onHide&&n.onHide(N.current)},U=function(){n.autoZIndex&&u.ZIndexUtils.set("menu",O.current,m.default.autoZIndex,n.baseZIndex||m.default.zIndex.menu),_(N.current)},L=function(){z()},R=function(){X(),u.ZIndexUtils.clear(O.current)},Z=function(){u.ZIndexUtils.clear(O.current)},_=function(e){if(e){var t=e.pageX+1,n=e.pageY+1,r=O.current.offsetParent?O.current.offsetWidth:u.DomHandler.getHiddenElementOuterWidth(O.current),o=O.current.offsetParent?O.current.offsetHeight:u.DomHandler.getHiddenElementOuterHeight(O.current),l=u.DomHandler.getViewport();t+r-document.body.scrollLeft>l.width&&(t-=r),n+o-document.body.scrollTop>l.height&&(n-=o),t<document.body.scrollLeft&&(t=document.body.scrollLeft),n<document.body.scrollTop&&(n=document.body.scrollTop),O.current.style.left=t+"px",O.current.style.top=n+"px"}},W=function(e){x(!0),T(e),e.stopPropagation()},A=function(e){return O&&O.current&&!(O.current.isSameNode(e.target)||O.current.contains(e.target))},z=function(){C(),S()},X=function(){D(),H()};o.useMountEffect((function(){n.global&&I()})),o.useUpdateEffect((function(){i?(c(!1),b(!1),x(!0)):d||i||!h||k(N.current)}),[d]),o.useUnmountEffect((function(){u.ZIndexUtils.clear(O.current)})),s.useImperativeHandle(t,(function(){return{props:n,show:k,hide:T,getElement:function(){return O.current}}}));var J,V,Y=(J=v.getOtherProps(n),V=u.classNames("p-contextmenu p-component",n.className,{"p-input-filled":"filled"===m.default.inputStyle,"p-ripple-disabled":!1===m.default.ripple}),s.createElement(r.CSSTransition,{nodeRef:O,classNames:"p-contextmenu",in:i,timeout:{enter:250,exit:0},options:n.transitionOptions,unmountOnExit:!0,onEnter:U,onEntered:L,onExit:R,onExited:Z},s.createElement("div",f({ref:O,id:n.id,className:V,style:n.style},J,{onClick:w,onMouseEnter:M}),s.createElement(E,{menuProps:n,model:n.model,root:!0,resetMenu:h,onLeafClick:W}))));return s.createElement(l.Portal,{element:Y,appendTo:n.appendTo})})));return x.displayName="ContextMenu",e.ContextMenu=x,Object.defineProperty(e,"__esModule",{value:!0}),e}({},React,primereact.api,primereact.csstransition,primereact.hooks,primereact.portal,primereact.utils,primereact.ripple);
1
+ this.primereact=this.primereact||{},this.primereact.contextmenu=function(e,t,n,r,o,i,l,u){"use strict";function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function c(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 s=c(t),m=a(n);function p(){return p=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},p.apply(this,arguments)}function f(e){if(Array.isArray(e))return e}function d(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,i,l,u=[],a=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;a=!1}else for(;!(a=(r=i.call(n)).done)&&(u.push(r.value),u.length!==t);a=!0);}catch(e){c=!0,o=e}finally{try{if(!a&&null!=n.return&&(l=n.return(),Object(l)!==l))return}finally{if(c)throw o}}return u}}function b(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 g(e,t){if(e){if("string"==typeof e)return b(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)?b(e,t):void 0}}function h(){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 y(e,t){return f(e)||d(e,t)||g(e,t)||h()}var v={defaultProps:{__TYPE:"ContextMenu",id:null,model:null,style:null,className:null,global:!1,autoZIndex:!0,baseZIndex:0,breakpoint:void 0,scrollHeight:"400px",appendTo:null,transitionOptions:null,onShow:null,onHide:null,children:void 0},getProps:function(e){return l.ObjectUtils.getMergedProps(e,v.defaultProps)},getOtherProps:function(e){return l.ObjectUtils.getDiffProps(e,v.defaultProps)}},x=s.memo((function(e){var t=y(s.useState(null),2),n=t[0],i=t[1],a=s.useRef(null),c=e.root||!e.resetMenu;!0===e.resetMenu&&null!==n&&i(null);var m=function(t,n){n.disabled||e.isMobileMode?t.preventDefault():i(n)},p=function(t,r){r.disabled?t.preventDefault():(r.url||t.preventDefault(),r.command&&r.command({originalEvent:t,item:r}),e.isMobileMode&&r.items&&i(n&&r===n?null:r),r.items||e.onLeafClick(t))},f=function(){if(!e.isMobileMode){var t=a.current.parentElement,n=l.DomHandler.getOffset(t),r=l.DomHandler.getViewport(),o=a.current.offsetParent?a.current.offsetWidth:l.DomHandler.getHiddenElementOuterWidth(a.current),i=l.DomHandler.getOuterWidth(t.children[0]),u=parseInt(n.top,10)+a.current.offsetHeight-l.DomHandler.getWindowScrollTop();a.current.style.top=u>r.height?r.height-u+"px":"0px",a.current.style.left=parseInt(n.left,10)+i+o>r.width-l.DomHandler.calculateScrollbarWidth()?-1*o+"px":i+"px"}};o.useUpdateEffect((function(){c&&f()}));var d=function(e){return s.createElement("li",{key:"separator_"+e,className:"p-menu-separator",role:"separator"})},b=function(t){return t.items?s.createElement(x,{menuProps:e.menuProps,model:t.items,resetMenu:t!==n,onLeafClick:e.onLeafClick,isMobileMode:e.isMobileMode}):null},g=function(t,r){if(!1===t.visible)return null;var o=n===t,i=t.label+"_"+r,a=l.classNames("p-menuitem",{"p-menuitem-active":o},t.className),c=l.classNames("p-menuitem-link",{"p-disabled":t.disabled}),f=l.classNames("p-menuitem-icon",t.icon),d="p-submenu-icon pi pi-angle-right",g=l.IconUtils.getJSXIcon(t.icon,{className:"p-menuitem-icon"},{props:e.menuProps}),h=t.label&&s.createElement("span",{className:"p-menuitem-text"},t.label),y=t.items&&s.createElement("span",{className:d}),v=b(t),x=s.createElement("a",{href:t.url||"#",className:c,target:t.target,onClick:function(e){return p(e,t)},role:"menuitem","aria-haspopup":null!=t.items,"aria-disabled":t.disabled},g,h,y,s.createElement(u.Ripple,null));t.template&&(x=l.ObjectUtils.getJSXElement(t.template,t,{onClick:function(e){return p(e,t)},className:c,labelClassName:"p-menuitem-text",iconClassName:f,submenuIconClassName:d,element:x,props:e,active:o}));return s.createElement("li",{key:i,role:"none",id:t.id,className:a,style:t.style,onMouseEnter:function(e){return m(e,t)}},x,v)},h=function(e,t){return e.separator?d(t):g(e,t)},v=l.classNames({"p-submenu-list":!e.root}),E=e.model?e.model.map(h):null;return s.createElement(r.CSSTransition,{nodeRef:a,classNames:"p-contextmenusub",in:c,timeout:{enter:0,exit:0},unmountOnExit:!0,onEnter:function(){f()}},s.createElement("ul",{ref:a,className:v},E))}));x.displayName="ContextMenuSub";var E=s.memo(s.forwardRef((function(e,t){var n=v.getProps(e),u=y(s.useState(!1),2),a=u[0],c=u[1],f=y(s.useState(!1),2),d=f[0],b=f[1],g=y(s.useState(!1),2),h=g[0],E=g[1],M=y(s.useState(null),2),O=M[0],H=M[1],S=s.useRef(null),N=s.useRef(null),P=s.useRef(null),I=o.useMatchMedia("screen and (max-width: ".concat(n.breakpoint,")"),!!n.breakpoint),k=y(o.useEventListener({type:"click",listener:function(e){$(e)&&2!==e.button&&(W(e),E(!0))}}),2),w=k[0],D=k[1],j=y(o.useEventListener({type:"contextmenu",listener:function(e){_(e)}}),1)[0],C=y(o.useResizeListener({listener:function(e){a&&!l.DomHandler.isTouchDevice()&&W(e)}}),2),U=C[0],T=C[1],L=function(){if(!P.current){P.current=l.DomHandler.createInlineStyle(m.default.nonce);var e="".concat(O),t="\n@media screen and (max-width: ".concat(n.breakpoint,") {\n .p-contextmenu[").concat(e,"] > ul {\n max-height: ").concat(n.scrollHeight,";\n overflow: ").concat(n.scrollHeight?"auto":"",";\n }\n\n .p-contextmenu[").concat(e,"] .p-submenu-list {\n position: relative;\n }\n\n .p-contextmenu[").concat(e,"] .p-menuitem-active > .p-submenu-list {\n left: 0 !important;\n box-shadow: none;\n border-radius: 0;\n padding: 0 0 0 calc(var(--inline-spacing) * 2); /* @todo */\n }\n\n .p-contextmenu[").concat(e,"] .p-menuitem-active > .p-menuitem-link > .p-submenu-icon {\n transform: rotate(-180deg);\n }\n\n .p-contextmenu[").concat(e,'] .p-submenu-icon:before {\n content: "\\e930";\n }\n}\n');P.current.innerHTML=t}},R=function(){P.current=l.DomHandler.removeInlineStyle(P.current)},Z=function(){E(!1)},A=function(){E(!1)},_=function(e){e.stopPropagation(),e.preventDefault(),N.current=e,a?b(!0):(c(!0),n.onShow&&n.onShow(N.current))},W=function(e){N.current=e,c(!1),b(!1),n.onHide&&n.onHide(N.current)},z=function(){n.autoZIndex&&l.ZIndexUtils.set("menu",S.current,m.default.autoZIndex,n.baseZIndex||m.default.zIndex.menu),Y(N.current),O&&n.breakpoint&&(S.current.setAttribute(O,""),L())},X=function(){B()},J=function(){F(),l.ZIndexUtils.clear(S.current)},V=function(){l.ZIndexUtils.clear(S.current),R()},Y=function(e){if(e){var t=e.pageX+1,n=e.pageY+1,r=S.current.offsetParent?S.current.offsetWidth:l.DomHandler.getHiddenElementOuterWidth(S.current),o=S.current.offsetParent?S.current.offsetHeight:l.DomHandler.getHiddenElementOuterHeight(S.current),i=l.DomHandler.getViewport();t+r-document.body.scrollLeft>i.width&&(t-=r),n+o-document.body.scrollTop>i.height&&(n-=o),t<document.body.scrollLeft&&(t=document.body.scrollLeft),n<document.body.scrollTop&&(n=document.body.scrollTop),S.current.style.left=t+"px",S.current.style.top=n+"px"}},q=function(e){E(!0),W(e),e.stopPropagation()},$=function(e){return S&&S.current&&!(S.current.isSameNode(e.target)||S.current.contains(e.target))},B=function(){U(),w()},F=function(){T(),D()};o.useMountEffect((function(){n.global&&j(),n.breakpoint&&!O&&H(l.UniqueComponentId())})),o.useUpdateEffect((function(){return O&&S.current&&(S.current.setAttribute(O,""),L()),function(){R()}}),[O,n.breakpoint]),o.useUpdateEffect((function(){a?(c(!1),b(!1),E(!0)):d||a||!h||_(N.current)}),[d]),o.useUnmountEffect((function(){l.ZIndexUtils.clear(S.current)})),s.useImperativeHandle(t,(function(){return{props:n,show:_,hide:W,getElement:function(){return S.current}}}));var G,K,Q=(G=v.getOtherProps(n),K=l.classNames("p-contextmenu p-component",n.className,{"p-input-filled":"filled"===m.default.inputStyle,"p-ripple-disabled":!1===m.default.ripple}),s.createElement(r.CSSTransition,{nodeRef:S,classNames:"p-contextmenu",in:a,timeout:{enter:250,exit:0},options:n.transitionOptions,unmountOnExit:!0,onEnter:z,onEntered:X,onExit:J,onExited:V},s.createElement("div",p({ref:S,id:n.id,className:K,style:n.style},G,{onClick:Z,onMouseEnter:A}),s.createElement(x,{menuProps:n,model:n.model,root:!0,resetMenu:h,onLeafClick:q,isMobileMode:I}))));return s.createElement(i.Portal,{element:Q,appendTo:n.appendTo})})));return E.displayName="ContextMenu",e.ContextMenu=E,Object.defineProperty(e,"__esModule",{value:!0}),e}({},React,primereact.api,primereact.csstransition,primereact.hooks,primereact.portal,primereact.utils,primereact.ripple);