UNPKG

primereact

Version:

PrimeReact is an open source UI library for React featuring a rich set of 80+ components, a theme designer, various theme alternatives such as Material, Bootstrap, Tailwind, premium templates and professional support. In addition, it integrates with Prime

2 lines (1 loc) 7.23 kB
this.primereact=this.primereact||{},this.primereact.megamenu=function(e,t,n,a,r,l){"use strict";function i(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function u(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var a=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,a.get?a:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var s=u(t),m=i(n);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 a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},c.apply(this,arguments)}function o(e){if(Array.isArray(e))return e}function p(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,l=[],i=!0,u=!1;try{for(n=n.call(e);!(i=(a=n.next()).done)&&(l.push(a.value),!t||l.length!==t);i=!0);}catch(e){u=!0,r=e}finally{try{i||null==n.return||n.return()}finally{if(u)throw r}}return l}}function f(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=new Array(t);n<t;n++)a[n]=e[n];return a}function d(e,t){if(e){if("string"==typeof e)return f(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)?f(e,t):void 0}}function v(){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)||p(e,t)||d(e,t)||v()}var g=s.memo(s.forwardRef((function(e,t){var n=b(s.useState(null),2),i=n[0],u=n[1],o=s.useRef(null),p="horizontal"===e.orientation,f="vertical"===e.orientation,d=b(a.useEventListener({type:"click",listener:function(e){D(e)&&u(null)}}),1)[0],v=function(e,t){t.disabled?e.preventDefault():(t.url||e.preventDefault(),t.command&&t.command({originalEvent:e,item:t}),u(null))},y=function(e,t){var n=e.currentTarget.parentElement;switch(e.which){case 40:p?h(t):j(n),e.preventDefault();break;case 38:f?O(n):t.items&&t===i&&E(),e.preventDefault();break;case 39:p?j(n):h(t),e.preventDefault();break;case 37:p?O(n):t.items&&t===i&&E(),e.preventDefault()}},h=function(e){e.items&&u(e)},E=function(e){u(null)},N=function e(t){var n=t.nextElementSibling;return n?l.DomHandler.hasClass(n,"p-disabled")||!l.DomHandler.hasClass(n,"p-menuitem")?e(n):n:null},k=function e(t){var n=t.previousElementSibling;return n?l.DomHandler.hasClass(n,"p-disabled")||!l.DomHandler.hasClass(n,"p-menuitem")?e(n):n:null},j=function(e){var t=N(e);t&&t.children[0].focus()},O=function(e){var t=k(e);t&&t.children[0].focus()},D=function(e){return o.current&&!(o.current.isSameNode(e.target)||o.current.contains(e.target))},S=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};s.useImperativeHandle(t,(function(){return{props:e,getElement:function(){return o.current}}})),a.useMountEffect((function(){d()})),a.useUpdateEffect((function(){var e=l.DomHandler.findSingle(o.current,".p-menuitem-active > .p-megamenu-panel");return i&&l.ZIndexUtils.set("menu",e,m.default.autoZIndex,m.default.zIndex.menu),function(){l.ZIndexUtils.clear(e)}}),[i]);var w=function(e){return s.createElement("li",{key:"separator_"+e,className:"p-menu-separator",role:"separator"})},I=function(e){if(e.items){var t=l.classNames("p-submenu-icon pi",{"pi-angle-down":p,"pi-angle-right":f});return s.createElement("span",{className:t})}return null},M=function(t,n){if(!1===t.visible)return null;if(t.separator)return w(n);var a=t.label+"_"+n,i=l.classNames("p-menuitem",t.className),u=l.classNames("p-menuitem-link",{"p-disabled":t.disabled}),m=l.classNames(t.icon,"p-menuitem-icon"),c=l.IconUtils.getJSXIcon(t.icon,{className:"p-menuitem-icon"},{props:e}),o=s.createElement("a",{href:t.url||"#",className:u,target:t.target,onClick:function(e){return v(e,t)},role:"menuitem","aria-disabled":t.disabled},c,t.label&&s.createElement("span",{className:"p-menuitem-text"},t.label),s.createElement(r.Ripple,null));return t.template&&(o=l.ObjectUtils.getJSXElement(t.template,t,{onClick:function(e){return v(e,t)},className:u,labelClassName:"p-menuitem-text",iconClassName:m,element:o,props:e})),s.createElement("li",{key:a,id:t.id,className:i,style:t.style,role:"none"},o)},U=function(e){var t=l.classNames("p-megamenu-submenu-header",{"p-disabled":e.disabled},e.className),n=e.items.map(M);return s.createElement(s.Fragment,{key:e.label},s.createElement("li",{id:e.id,className:t,style:e.style,role:"presentation"},e.label),n)},_=function(e){return e.map(U)},C=function(e,t,n,a){var r=e.label+"_column_"+n,l=_(t);return s.createElement("div",{key:r,className:a},s.createElement("ul",{className:"p-megamenu-submenu",role:"menu"},l))},x=function(e){if(e.items){var t=S(e);return e.items.map((function(n,a){return C(e,n,a,t)}))}return null},P=function(e){if(e.items){var t=x(e);return s.createElement("div",{className:"p-megamenu-panel"},s.createElement("div",{className:"p-megamenu-grid"},t))}return null},z=function(t,n){var a=l.classNames("p-menuitem",{"p-menuitem-active":t===i},t.className),m=l.classNames("p-menuitem-link",{"p-disabled":t.disabled}),c=l.IconUtils.getJSXIcon(t.icon,{className:"p-menuitem-icon"},{props:e}),o=t.label&&s.createElement("span",{className:"p-menuitem-text"},t.label),p=t.template?l.ObjectUtils.getJSXElement(t.template,t):null,f=I(t),d=P(t);return s.createElement("li",{key:t.label+"_"+n,id:t.id,className:a,style:t.style,onMouseEnter:function(e){return n=e,void((a=t).disabled?n.preventDefault():i&&u(a));var n,a},role:"none"},s.createElement("a",{href:t.url||"#",className:m,target:t.target,onClick:function(n){return a=n,(r=t).disabled||(r.url||a.preventDefault(),r.command&&r.command({originalEvent:a,item:e.item}),r.items&&u(i&&i===r?null:r)),void a.preventDefault();var a,r},onKeyDown:function(e){return y(e,t)},role:"menuitem","aria-haspopup":null!=t.items},c,o,p,f,s.createElement(r.Ripple,null)),d)},A=l.ObjectUtils.findDiffKeys(e,g.defaultProps),H=l.classNames("p-megamenu p-component",{"p-megamenu-horizontal":"horizontal"===e.orientation,"p-megamenu-vertical":"vertical"===e.orientation},e.className),J=e.model?s.createElement("ul",{className:"p-megamenu-root-list",role:"menubar"},e.model.map((function(e,t){return z(e,t)}))):null,X=function(){if(e.start){var t=l.ObjectUtils.getJSXElement(e.start,e);return s.createElement("div",{className:"p-megamenu-start"},t)}return null}(),R=function(){if(e.end){var t=l.ObjectUtils.getJSXElement(e.end,e);return s.createElement("div",{className:"p-megamenu-end"},t)}return null}();return s.createElement("div",c({ref:o,id:e.id,className:H,style:e.style},A),X,J,R)})));return g.displayName="MegaMenu",g.defaultProps={__TYPE:"MegaMenu",id:null,model:null,style:null,className:null,orientation:"horizontal",start:null,end:null},e.MegaMenu=g,Object.defineProperty(e,"__esModule",{value:!0}),e}({},React,primereact.api,primereact.hooks,primereact.ripple,primereact.utils);