UNPKG

primereact

Version:

PrimeReact is an open source UI library for React featuring a rich set of 90+ 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) 11.5 kB
this.primereact=this.primereact||{},this.primereact.menu=function(e,n,t,r,a,i,o,l,u,c){"use strict";function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function p(e){if(e&&e.__esModule)return e;var n=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var r=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(n,t,r.get?r:{enumerable:!0,get:function(){return e[t]}})}})),n.default=e,Object.freeze(n)}var m=p(n),d=s(t);function f(){return f=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e},f.apply(this,arguments)}function b(e){return b="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},b(e)}function y(e,n){if("object"!==b(e)||null===e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,n||"default");if("object"!==b(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===n?String:Number)(e)}function v(e){var n=y(e,"string");return"symbol"===b(n)?n:String(n)}function g(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=new Array(n);t<n;t++)r[t]=e[t];return r}function h(e){if(Array.isArray(e))return g(e)}function O(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function S(e,n){if(e){if("string"==typeof e)return g(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)?g(e,n):void 0}}function E(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function x(e){return h(e)||O(e)||S(e)||E()}function j(e){if(Array.isArray(e))return e}function N(e,n){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var r,a,i,o,l=[],u=!0,c=!1;try{if(i=(t=t.call(e)).next,0===n){if(Object(t)!==t)return;u=!1}else for(;!(u=(r=i.call(t)).done)&&(l.push(r.value),l.length!==n);u=!0);}catch(e){c=!0,a=e}finally{try{if(!u&&null!=t.return&&(o=t.return(),Object(o)!==o))return}finally{if(c)throw a}}return l}}function w(){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 D(e,n){return j(e)||N(e,n)||S(e,n)||w()}var I=r.ComponentBase.extend({defaultProps:{__TYPE:"Menu",id:null,ariaLabel:null,ariaLabelledBy:null,tabIndex:0,model:null,popup:!1,popupAlignment:"left",style:null,className:null,autoZIndex:!0,baseZIndex:0,appendTo:null,onFocus:null,onBlur:null,transitionOptions:null,onShow:null,onHide:null,children:void 0,closeOnEscape:!0},css:{classes:{root:function(e){var n=e.context;return c.classNames("p-menu p-component",{"p-menu-overlay":e.props.popup,"p-input-filled":n&&"filled"===n.inputStyle||"filled"===d.default.inputStyle,"p-ripple-disabled":n&&!1===n.ripple||!1===d.default.ripple})},menu:"p-menu-list p-reset",content:"p-menuitem-content",action:function(e){return c.classNames("p-menuitem-link",{"p-disabled":e.item.disabled})},menuitem:function(e){return c.classNames("p-menuitem",{"p-focus":e.focused})},submenuHeader:function(e){return c.classNames("p-submenu-header",{"p-disabled":e.submenu.disabled})},separator:"p-menu-separator",label:"p-menuitem-text",icon:"p-menuitem-icon",transition:"p-connected-overlay"},styles:"\n@layer primereact {\n .p-menu-overlay {\n position: absolute;\n /* Github #3122: Prevent animation flickering */\n top: -9999px;\n left: -9999px;\n }\n\n .p-menu ul {\n margin: 0;\n padding: 0;\n list-style: none;\n }\n\n .p-menu .p-menuitem-link {\n cursor: pointer;\n display: flex;\n align-items: center;\n text-decoration: none;\n overflow: hidden;\n position: relative;\n }\n\n .p-menu .p-menuitem-text {\n line-height: 1;\n }\n}\n",inlineStyles:{submenuHeader:function(e){return e.submenu.style},menuitem:function(e){return e.item.style}}}});function P(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function k(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?P(Object(t),!0).forEach((function(n){var r,a,i;r=e,i=t[n],(a=v(a=n))in r?Object.defineProperty(r,a,{value:i,enumerable:!0,configurable:!0,writable:!0}):r[a]=i})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):P(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var H=m.memo(m.forwardRef((function(e,n){var s=i.useMergeProps(),p=m.useContext(t.PrimeReactContext),b=I.getProps(e,p),y=D(m.useState(b.id),2),v=y[0],g=y[1],h=D(m.useState(!b.popup),2),O=h[0],S=h[1],E=D(m.useState(-1),2),j=E[0],N=E[1],w=D(m.useState(-1),2),P=w[0],H=w[1],A=D(m.useState(!1),2),_=A[0],T=A[1],C=I.setMetaData({props:b,state:{id:v,visible:O,focused:_}}),U=C.ptm,M=C.cx,R=C.sx;r.useHandleStyle(I.css.styles,C.isUnstyled,{name:"menu"});var Z=m.useRef(null),B=m.useRef(null),F=m.useRef(null),L=!!(O&&b.popup&&b.closeOnEscape),K=i.useDisplayOrder("menu",L);i.useGlobalOnEscapeKey({callback:function(e){ce(e)},when:L&&K,priority:[i.ESC_KEY_HANDLING_PRIORITIES.MENU,K]});var z=D(i.useOverlayListener({target:F,overlay:Z,listener:function(e,n){n.valid&&(ce(e),N(-1))},when:O}),2),G=z[0],J=z[1],X=function(e,n,t){n.disabled?e.preventDefault():(n.command&&n.command({originalEvent:e,item:n}),b.popup&&ce(e),b.popup||j===t||N(t),n.url||(e.preventDefault(),e.stopPropagation()))},Y=function(e){T(!0),b.popup||(-1!==P?(ie(P),H(-1)):ie(0)),b.onFocus&&b.onFocus(e)},q=function(e){T(!1),N(-1),b.onBlur&&b.onBlur(e)},$=function(e){switch(e.code){case"ArrowDown":Q(e);break;case"ArrowUp":V(e);break;case"Home":W(e);break;case"End":ee(e);break;case"Enter":ne(e);break;case"Space":te(e);break;case"Escape":b.popup&&(c.DomHandler.focus(F.current),ce(e));case"Tab":b.popup&&O&&ce(e)}},Q=function(e){var n=re(j);ie(n),e.preventDefault()},V=function(e){if(e.altKey&&b.popup)c.DomHandler.focus(F.current),ce(e),e.preventDefault();else{var n=ae(j);ie(n),e.preventDefault()}},W=function(e){ie(0),e.preventDefault()},ee=function(e){ie(c.DomHandler.find(Z.current,'li[data-pc-section="menuitem"][data-p-disabled="false"]').length-1),e.preventDefault()},ne=function(e){var n=c.DomHandler.findSingle(Z.current,'li[id="'.concat("".concat(j),'"]')),t=n&&c.DomHandler.findSingle(n,'a[data-pc-section="action"]');b.popup&&c.DomHandler.focus(F.current),t?t.click():n&&n.click(),e.preventDefault()},te=function(e){ne(e)},re=function(e){var n=x(c.DomHandler.find(Z.current,'li[data-pc-section="menuitem"][data-p-disabled="false"]')).findIndex((function(n){return n.id===e}));return n>-1?n+1:0},ae=function(e){var n=x(c.DomHandler.find(Z.current,'li[data-pc-section="menuitem"][data-p-disabled="false"]')).findIndex((function(n){return n.id===e}));return n>-1?n-1:0},ie=function(e){var n=c.DomHandler.find(Z.current,'li[data-pc-section="menuitem"][data-p-disabled="false"]'),t=e>=n.length?n.length-1:e<0?0:e;t>-1&&N(n[t].getAttribute("id"))},oe=function(){return-1!==j?j:null},le=function(e){b.popup&&(O?ce(e):ue(e))},ue=function(e){F.current=e.currentTarget,S(!0),b.onShow&&b.onShow(e)},ce=function(e){F.current=e.currentTarget,S(!1),b.onHide&&b.onHide(e)},se=function(){c.DomHandler.addStyles(Z.current,{position:"absolute",top:"0",left:"0"}),c.ZIndexUtils.set("menu",Z.current,p&&p.autoZIndex||d.default.autoZIndex,b.baseZIndex||p&&p.zIndex.menu||d.default.zIndex.menu),c.DomHandler.absolutePosition(Z.current,F.current,b.popupAlignment),b.popup&&(c.DomHandler.focus(B.current),ie(0))},pe=function(){G()},me=function(){F.current=null,J()},de=function(){c.ZIndexUtils.clear(Z.current)};i.useMountEffect((function(){v||g(c.UniqueComponentId())})),i.useUnmountEffect((function(){c.ZIndexUtils.clear(Z.current)})),m.useImperativeHandle(n,(function(){return{props:b,toggle:le,show:ue,hide:ce,getElement:function(){return Z.current},getTarget:function(){return F.current}}}));var fe=function(e,n){var t=v+"_sub_"+n,r=e.items.map((function(e,n){return ye(e,n,t)})),a=s({id:t,key:t,role:"none",className:c.classNames(e.className,M("submenuHeader",{submenu:e})),style:R("submenuHeader",{submenu:e}),"data-p-disabled":e.disabled},U("submenuHeader"));return m.createElement(m.Fragment,{key:t},m.createElement("li",a,e.label),r)},be=function(e){var n=v+"_separator_"+e,t=s({id:n,key:n,className:M("separator"),role:"separator"},U("separator"));return m.createElement("li",t)},ye=function(e,n){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;if(!1===e.visible)return null;var r=c.classNames("p-menuitem-link",{"p-disabled":e.disabled}),a=c.classNames("p-menuitem-icon",e.icon),i=s({className:M("icon")},U("icon")),o=c.IconUtils.getJSXIcon(e.icon,k({},i),{props:b}),l=s({className:M("label")},U("label")),p=e.label&&m.createElement("span",l,e.label),d=e.id||(t||v)+"_"+n,f=s({onClick:function(n){return X(n,e,d)},className:M("content")},U("content")),y=s({href:e.url||"#",className:M("action",{item:e}),onFocus:function(e){return e.stopPropagation()},target:e.target,tabIndex:"-1","aria-label":e.label,"aria-hidden":!0,"aria-disabled":e.disabled,"data-p-disabled":e.disabled},U("action")),g=m.createElement("div",f,m.createElement("a",y,o,p,m.createElement(u.Ripple,null)));e.template&&(g=c.ObjectUtils.getJSXElement(e.template,e,{onClick:function(n){return X(n,e,d)},className:r,tabIndex:"-1",labelClassName:"p-menuitem-text",iconClassName:a,element:g,props:b}));var h=s({id:d,key:d,className:c.classNames(e.className,M("menuitem",{focused:j===d})),style:R("menuitem",{item:e}),role:"menuitem","aria-label":e.label,"aria-disabled":e.disabled,"data-p-focused":oe()===d,"data-p-disabled":e.disabled||!1},U("menuitem"));return m.createElement("li",h,g)},ve=function(e,n){return e.separator?be(n):e.items?fe(e,n):ye(e,n)},ge=function(){if(b.model){var e=b.model.map(ve),n=s({className:c.classNames(b.className,M("root",{context:p})),style:b.style,onClick:function(e){return n=e,void(b.popup&&o.OverlayService.emit("overlay-click",{originalEvent:n,target:F.current}));var n}},I.getOtherProps(b),U("root")),t=s({ref:B,className:M("menu"),id:v+"_list",tabIndex:b.tabIndex||"0",role:"menu","aria-label":b.ariaLabel,"aria-labelledby":b.ariaLabelledBy,"aria-activedescendant":_?oe():void 0,onFocus:Y,onKeyDown:$,onBlur:q},U("menu")),r=s({classNames:M("transition"),in:O,timeout:{enter:120,exit:100},options:b.transitionOptions,unmountOnExit:!0,onEnter:se,onEntered:pe,onExit:me,onExited:de},U("transition"));return m.createElement(a.CSSTransition,f({nodeRef:Z},r),m.createElement("div",f({id:b.id,ref:Z},n),m.createElement("ul",t,e)))}return null}();return b.popup?m.createElement(l.Portal,{element:ge,appendTo:b.appendTo}):ge})));return H.displayName="Menu",e.Menu=H,Object.defineProperty(e,"__esModule",{value:!0}),e}({},React,primereact.api,primereact.componentbase,primereact.csstransition,primereact.hooks,primereact.overlayservice,primereact.portal,primereact.ripple,primereact.utils);