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