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) • 19.1 kB
JavaScript
this.primereact=this.primereact||{},this.primereact.menubar=function(e,n,t,r,i,o,a,u,c,l){"use strict";function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function m(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 f=m(n),p=s(t);function d(e){return d="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},d(e)}function b(e,n){if("object"!==d(e)||null===e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,n||"default");if("object"!==d(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===n?String:Number)(e)}function v(e){var n=b(e,"string");return"symbol"===d(n)?n:String(n)}function y(e,n,t){return(n=v(n))in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function g(e){if(Array.isArray(e))return e}function x(e,n){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var r,i,o,a,u=[],c=!0,l=!1;try{if(o=(t=t.call(e)).next,0===n){if(Object(t)!==t)return;c=!1}else for(;!(c=(r=o.call(t)).done)&&(u.push(r.value),u.length!==n);c=!0);}catch(e){l=!0,i=e}finally{try{if(!c&&null!=t.return&&(a=t.return(),Object(a)!==a))return}finally{if(l)throw i}}return u}}function I(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,n){if(e){if("string"==typeof e)return I(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)?I(e,n):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 O(e,n){return g(e)||x(e,n)||h(e,n)||E()}var k=r.ComponentBase.extend({defaultProps:{__TYPE:"Menubar",id:null,model:null,style:null,className:null,start:null,ariaLabel:null,ariaLabelledBy:null,onFocus:null,onBlur:null,submenuIcon:null,menuIcon:null,end:null,children:void 0},css:{classes:{start:"p-menubar-start",end:"p-menubar-end",button:"p-menubar-button",root:function(e){return a.classNames("p-menubar p-component",{"p-menubar-mobile-active":e.mobileActiveState})},separator:"p-menuitem-separator",icon:"p-menuitem-icon",label:"p-menuitem-text",submenuIcon:"p-submenu-icon",menuitem:function(e){return a.classNames("p-menuitem",{"p-menuitem-active p-highlight":e.active,"p-focus":e.focused,"p-disabled":e.disabled})},menu:"p-menubar-root-list",content:"p-menuitem-content",submenu:"p-submenu-list",action:function(e){return a.classNames("p-menuitem-link",{"p-disabled":e.disabled})}},styles:"\n@layer primereact {\n .p-menubar {\n display: flex;\n align-items: center;\n }\n\n .p-menubar ul {\n margin: 0;\n padding: 0;\n list-style: none;\n }\n\n .p-menubar .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-menubar .p-menuitem-text {\n line-height: 1;\n }\n\n .p-menubar .p-menuitem {\n position: relative;\n }\n\n .p-menubar-root-list {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n }\n\n .p-menubar-root-list > li ul {\n display: none;\n z-index: 1;\n }\n\n .p-menubar-root-list > .p-menuitem-active > .p-submenu-list {\n display: block;\n }\n\n .p-menubar .p-submenu-list {\n display: none;\n position: absolute;\n z-index: 1;\n }\n\n .p-menubar .p-submenu-list > .p-menuitem-active > .p-submenu-list {\n display: block;\n left: 100%;\n top: 0;\n }\n\n .p-menubar .p-submenu-list .p-menuitem .p-menuitem-content .p-menuitem-link .p-submenu-icon {\n margin-left: auto;\n }\n\n .p-menubar .p-menubar-end {\n margin-left: auto;\n align-self: center;\n }\n\n .p-menubar-button {\n display: none;\n cursor: pointer;\n align-items: center;\n justify-content: center;\n text-decoration: none;\n }\n}\n"}});function j(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?j(Object(t),!0).forEach((function(n){y(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):j(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}var S=f.memo(f.forwardRef((function(e,n){var t=i.useMergeProps(),r=e.ptm,o=e.cx,s=function(n,t,i){return r(t,{props:e,hostName:e.hostName,context:{item:n,index:i,active:x(n),focused:E(n),disabled:h(n),level:e.level}})},m=function(n,t){h(t)||e.mobileActive?n.preventDefault():e.onItemMouseEnter&&e.onItemMouseEnter({originalEvent:n,processedItem:t})},p=function(e,n){var t=n.item;h(n)?e.preventDefault():(t.command&&t.command({originalEvent:e,item:t}),d({originalEvent:e,processedItem:n,isFocus:!0}),t.url||(e.preventDefault(),e.stopPropagation()))},d=function(n){e.onLeafClick&&e.onLeafClick(n)},b=function(e){var n;return null===(n=e.item)||void 0===n?void 0:n.id},v=function(n){return"".concat(e.id,"_").concat(n.key)},g=function(e,n,t){return e&&e.item?a.ObjectUtils.getItemValue(e.item[n],t):void 0},x=function(n){return e.activeItemPath.some((function(e){return e.key===n.key}))},I=function(e){return!1!==g(e,"visible")},h=function(e){return g(e,"disabled")},E=function(n){return e.focusedItemId===v(n)},O=function(e){return a.ObjectUtils.isNotEmpty(e.items)},k=function(n){return n-e.model.slice(0,n).filter((function(e){return I(e)&&g(e,"separator")})).length+1},j=function(n){var i=e.id+"_separator_"+n,a=t({key:i,"data-id":i,className:o("separator"),role:"separator"},r("separator",{hostName:e.hostName}));return f.createElement("li",a)},N=function(n){var t=n&&n.items;return t?f.createElement(S,{id:e.id,hostName:e.hostName,menuProps:e.menuProps,level:e.level+1,model:t,activeItemPath:e.activeItemPath,focusedItemId:e.focusedItemId,onLeafClick:d,onItemMouseEnter:e.onItemMouseEnter,submenuIcon:e.submenuIcon,ptm:r,style:{display:x(n)?"block":"none"},cx:o}):null},w=function(n,r){var i=n.item;if(!I(n))return null;var d=b(n),j=v(n),S=x(n),w=E(n),D=h(n)||!1,U=O(n),K=a.classNames("p-menuitem-link",{"p-disabled":D}),M=a.classNames("p-menuitem-icon",g(n,"icon")),A=t({className:o("icon")},s(n,"icon",r)),C=a.IconUtils.getJSXIcon(i.icon,P({},A),{props:e.menuProps}),L=t({className:o("label")},s(n,"label",r)),R=i.label&&f.createElement("span",L,i.label),H=g(n,"items"),T=t({className:o("submenuIcon")},s(n,"submenuIcon",r)),_=H&&a.IconUtils.getJSXIcon(e.root?e.submenuIcon||f.createElement(u.AngleDownIcon,T):e.submenuIcon||f.createElement(c.AngleRightIcon,T),P({},T),{props:P({menuProps:e.menuProps},e)}),B=N(n),F=t({href:i.url||"#",tabIndex:"-1","aria-hidden":"true",className:o("action",{disabled:D}),onFocus:function(e){return e.stopPropagation()},target:g(n,"target"),"aria-haspopup":null!=H},s(n,"action",r)),z=f.createElement("a",F,C,R,_,f.createElement(l.Ripple,null));i.template&&(z=a.ObjectUtils.getJSXElement(i.template,i,{className:K,labelClassName:"p-menuitem-text",iconClassName:M,submenuIconClassName:"p-submenu-icon",element:z,props:e}));var J=t({onClick:function(e){return p(e,n)},onMouseEnter:function(e){return m(e,n)},className:o("content")},s(n,"content",r)),X=g(n,"className"),Z=t(y({id:d,key:j,"data-id":j,role:"menuitem","aria-label":i.label,"aria-disabled":D,"aria-expanded":U?S:void 0,"aria-haspopup":U&&!i.url?"menu":void 0,"aria-level":e.level+1,"aria-setsize":e.model.filter((function(e){return I(e)&&!g(e,"separator")})).length,"aria-posinset":k(r),"data-p-highlight":S,"data-p-focused":w,"data-p-disabled":D,className:a.classNames(X,o("menuitem",{active:S,focused:w,disabled:D}))},"data-p-disabled",D||!1),s(n,"menuitem",r));return f.createElement("li",Z,f.createElement("div",J,z),B)},D=e.root?"menubar":"menu",U=e.root?"menu":"submenu",K=e.root?"0":null,M=e.model?e.model.map((function(e,n){return g(e,"separator")?j(n):w(e,n)})):null,A=t({ref:n,className:o(U),level:e.level,onFocus:e.onFocus,onBlur:e.onBlur,onKeyDown:e.onKeyDown,"data-id":e.id,tabIndex:K,"aria-activedescendant":e.ariaActivedescendant,style:e.style,role:D},r(U));return f.createElement("ul",A,M)})));function N(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 w(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?N(Object(t),!0).forEach((function(n){y(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):N(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}S.displayName="MenubarSub";var D=f.memo(f.forwardRef((function(e,n){var u=i.useMergeProps(),c=f.useContext(t.PrimeReactContext),l=k.getProps(e,c),s=O(f.useState(l.id),2),m=s[0],d=s[1],b=O(f.useState(!1),2),v=b[0],g=b[1],x=O(f.useState(!1),2),I=x[0],h=x[1],E=O(f.useState({index:-1,level:0,parentKey:""}),2),j=E[0],P=E[1],N=O(f.useState(null),2),D=N[0],U=N[1],K=O(f.useState([]),2),M=K[0],A=K[1],C=O(f.useState([]),2),L=C[0],R=C[1],H=O(f.useState([]),2),T=H[0],_=H[1],B=O(f.useState(!1),2),F=B[0],z=B[1],J=O(f.useState(!1),2),X=J[0],Z=J[1],V=f.useRef(null),W=f.useRef(null),q=f.useRef(null),Y=f.useRef(""),$=f.useRef(null),G=f.useRef(!1),Q=k.setMetaData({props:l,state:{id:m,mobileActive:v}}),ee=Q.ptm,ne=Q.cx;r.useHandleStyle(k.css.styles,Q.isUnstyled,{name:"menubar"});var te=O(i.useEventListener({type:"click",listener:function(e){me(e)&&(V.current&&!V.current.contains(e.target)&&se())}}),2),re=te[0],ie=te[1],oe=O(i.useResizeListener({listener:function(e){a.DomHandler.isTouchDevice()||se(e)}}),2),ae=oe[0],ue=oe[1],ce=function(e){v?(g(!1),se()):(g(!0),setTimeout((function(){le()}),1)),e.preventDefault()},le=function(){P({index:Le(),level:0,parentKey:""}),a.DomHandler.focus(W.current)},se=function(e){v&&(g(!1),setTimeout((function(){a.DomHandler.focus(q.current)}),0)),A([]),P({index:-1,level:0,parentKey:""}),e&&a.DomHandler.focus(W.current),Z(!1)},me=function(e){return W.current!==e.target&&!W.current.contains(e.target)&&q.current!==e.target&&!q.current.contains(e.target)},fe=function(e,n){return e?a.ObjectUtils.getItemValue(e[n]):void 0},pe=function(e){return fe(e,"separator")},de=function(e){return e?fe(e.item,"label"):void 0},be=function(e){return e&&a.ObjectUtils.isNotEmpty(e.items)},ve=function(e){var n=e.processedItem,t=e.isFocus;if(!a.ObjectUtils.isEmpty(n)){var r=n.index,i=n.key,o=n.level,u=n.parentKey,c=a.ObjectUtils.isNotEmpty(n.items),l=M.filter((function(e){return e.parentKey!==u&&e.parentKey!==i}));c&&l.push(n),P({index:r,level:o,parentKey:u}),A(l),c&&Z(!0),t&&a.DomHandler.focus(W.current)}},ye=function(e){var n=L[j.index];if(n?a.ObjectUtils.isEmpty(n.parent):null){be(n)&&(ve({originalEvent:e,processedItem:n}),P({index:-1,parentKey:n.key}),setTimeout((function(){return z(!0)}),0))}else{var t=-1!==j.index?Me(j.index):Le();Te(t)}e.preventDefault()},ge=function(e){var n=L[j.index];if(a.ObjectUtils.isEmpty(n.parent)){be(n)&&(ve({originalEvent:e,processedItem:n}),P({index:-1,parentKey:n.key}),G.current=!0,setTimeout((function(){return z(!0)}),0))}else{var t=M.find((function(e){return e.key===n.parentKey}));if(0===j.index&&t&&""===t.parentKey)P({index:-1,parentKey:t?t.parentKey:""}),Y.current="",xe(e);else{var r=-1!==j.index?Ae(j.index):Re();Te(r)}}e.preventDefault()},xe=function(e){var n=L[j.index],t=n?M.find((function(e){return e.key===n.parentKey})):null;if(t)ve({originalEvent:e,processedItem:t}),A(M.filter((function(e){return e.key!==t.key})));else{var r=-1!==j.index?Ae(j.index):Re();Te(r)}e.preventDefault()},Ie=function(e){var n=L[j.index];if(n?M.find((function(e){return e.key===n.parentKey})):null){be(n)&&(ve({originalEvent:e,processedItem:n}),P({index:-1,parentKey:n.key}),setTimeout((function(){return z(!0)}),0))}else{var t=-1!==j.index?Me(j.index):Le();Te(t)}e.preventDefault()},he=function(e){Te(Ue()),e.preventDefault()},Ee=function(e){Te(Ke()),e.preventDefault()},Oe=function(e){if(-1!==j.index){var n=a.DomHandler.findSingle(W.current,'li[data-id="'.concat("".concat(D),'"]')),t=n&&a.DomHandler.findSingle(n,'a[data-pc-section="action"]');t?t.click():n&&n.click()}e.preventDefault()},ke=function(e){Oe(e)},je=function(e){se(!0),P({focusedItemInfo:j,index:Le()})},Pe=function(e){if(-1!==j.index){var n=L[j.index];!be(n)&&ve({originalEvent:e,processedItem:n})}se()},Se=function(e){return Ne(e)&&de(e).toLocaleLowerCase().startsWith(Y.current.toLocaleLowerCase())},Ne=function(e){return!!e&&!fe(e.item,"disabled")&&!pe(e.item)},we=function(e){return Ne(e)&&De(e)},De=function(e){return M.some((function(n){return n.key===e.key}))},Ue=function(){return L.findIndex((function(e){return Ne(e)}))},Ke=function(){return a.ObjectUtils.findLastIndex(L,(function(e){return Ne(e)}))},Me=function(e){var n=e<L.length-1?L.slice(e+1).findIndex((function(e){return Ne(e)})):-1;return n>-1?n+e+1:e},Ae=function(e){var n=e>0?a.ObjectUtils.findLastIndex(L.slice(0,e),(function(e){return Ne(e)})):-1;return n>-1?n:e},Ce=function(){return L.findIndex((function(e){return we(e)}))},Le=function(){var e=Ce();return e<0?Ue():e},Re=function(){var e=Ce();return e<0?Ke():e},He=function(e,n){Y.current=(Y.current||"")+n;var t=-1,r=!1;return-1!==(t=-1!==j.index?-1===(t=L.slice(j.index).findIndex((function(e){return Se(e)})))?L.slice(0,j.index).findIndex((function(e){return Se(e)})):t+j.index:L.findIndex((function(e){return Se(e)})))&&(r=!0),-1===t&&-1===j.index&&(t=Le()),-1!==t&&Te(t),$.current&&clearTimeout($.current),$.current=setTimeout((function(){Y.current="",$.current=null}),500),r},Te=function(e){j.index!==e&&(P(w(w({},j),{},{index:e})),_e())},_e=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:-1,n=-1!==e?"".concat(m,"_").concat(e):D,t=a.DomHandler.findSingle(W.current,'li[data-id="'.concat(n,'"]'));t&&t.scrollIntoView&&t.scrollIntoView({block:"nearest",inline:"start"})},Be=f.useCallback((function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"",i=[];return e&&e.forEach((function(e,o){var a=(""!==r?r+"_":"")+o,u={item:e,index:o,level:n,key:a,parent:t,parentKey:r};u.items=Be(e.items,n+1,u,a),i.push(u)})),i}),[]);i.useMountEffect((function(){m||d(a.UniqueComponentId())})),i.useUpdateEffect((function(){v?(re(),ae(),a.ZIndexUtils.set("menu",W.current,c&&c.autoZIndex||p.default.autoZIndex,c&&c.zIndex.menu||p.default.zIndex.menu)):(ue(),ie(),a.ZIndexUtils.clear(W.current))}),[v]),f.useEffect((function(){var e=Be(l.model||[],0,null,"");_(e)}),[l.model,Be]),i.useUpdateEffect((function(){var e=M.find((function(e){return e.key===j.parentKey}));R(e?e.items:T)}),[M,j,T]),i.useUpdateEffect((function(){a.ObjectUtils.isNotEmpty(M)?(re(),ae()):(ie(),ue())}),[M]),i.useUpdateEffect((function(){if(F){var e=-1!==j.index?Me(j.index):G.current?Ke():Le();Te(e),G.current=!1,z(!1)}}),[F]),i.useUpdateEffect((function(){U(-1!==j.index?"".concat(m).concat(a.ObjectUtils.isNotEmpty(j.parentKey)?"_"+j.parentKey:"","_").concat(j.index):null)}),[j]),i.useUnmountEffect((function(){a.ZIndexUtils.clear(W.current)})),f.useImperativeHandle(n,(function(){return{props:l,toggle:ce,getElement:function(){return V.current},getRootMenu:function(){return W.current},getMenuButton:function(){return q.current}}}));var Fe=function(){if(l.start){var e=a.ObjectUtils.getJSXElement(l.start,l),n=u({className:ne("start")},ee("start"));return f.createElement("div",n,e)}return null}(),ze=function(){if(l.end){var e=a.ObjectUtils.getJSXElement(l.end,l),n=u({className:ne("end")},ee("end"));return f.createElement("div",n,e)}return null}(),Je=function(){if(l.model&&l.model.length<1)return null;var e=u(y(y(y(y({ref:q,href:"#",tabIndex:"0","aria-haspopup":!!(v&&l.model&&l.model.length>0),"aria-expanded":v,"aria-label":t.ariaLabel("navigation"),"aria-controls":m,role:"button"},"tabIndex",0),"className",ne("button")),"onKeyDown",(function(e){var n;("Enter"===(n=e).code||"NumpadEnter"===n.code||"Space"===n.code)&&ce(n)})),"onClick",(function(e){return ce(e)})),ee("button")),n=u(ee("popupIcon")),r=a.IconUtils.getJSXIcon(l.menuIcon||f.createElement(o.BarsIcon,n),w({},n),{props:l});return f.createElement("a",e,r)}(),Xe=f.createElement(S,{hostName:"Menubar",ariaActivedescendant:I?D:void 0,level:0,id:m,ref:W,menuProps:l,model:T,onLeafClick:function(e){var n=e.originalEvent,t=e.processedItem,r=be(t),i=a.ObjectUtils.isEmpty(t.parent);if(De(t)){var o=t.index,u=t.key,c=t.level,l=t.parentKey;A(M.filter((function(e){return u!==e.key&&u.startsWith(e.key)}))),P({index:o,level:c,parentKey:l}),r||Z(!i),setTimeout((function(){a.DomHandler.focus(W.current),r&&Z(!0)}),0)}else if(r)a.DomHandler.focus(W.current),ve({originalEvent:n,processedItem:t});else{var s=i?t:M.find((function(e){return""===e.parentKey})),m=s?s.index:-1;se(n),P({index:m,parentKey:s?s.parentKey:""}),g(!1)}},onItemMouseEnter:function(e){!v&&X&&ve(e)},onFocus:function(e){h(!0),P(-1!==j.index?j:{index:Le(),level:0,parentKey:""}),l.onFocus&&l.onFocus(e)},onBlur:function(e){h(!1),P({index:-1,level:0,parentKey:""}),Y.current="",Z(!1),l.onBlur&&l.onBlur(e)},onKeyDown:function(e){var n=e.metaKey||e.ctrlKey;switch(e.code){case"ArrowDown":ye(e);break;case"ArrowUp":ge(e);break;case"ArrowLeft":xe(e);break;case"ArrowRight":Ie(e);break;case"Home":he(e);break;case"End":Ee(e);break;case"Space":ke(e);break;case"Enter":case"NumpadEnter":Oe(e);break;case"Escape":je();break;case"Tab":Pe(e);break;case"PageDown":case"PageUp":case"Backspace":case"ShiftLeft":case"ShiftRight":break;default:!n&&a.ObjectUtils.isPrintableCharacter(e.key)&&He(e,e.key)}},root:!0,activeItemPath:M,focusedItemId:I?D:void 0,submenuIcon:l.submenuIcon,ptm:ee,cx:ne}),Ze=u({id:l.id,ref:V,className:a.classNames(l.className,ne("root",{mobileActiveState:v})),style:l.style},k.getOtherProps(l),ee("root"));return f.createElement("div",Ze,Fe,Je,Xe,ze)})));return D.displayName="Menubar",e.Menubar=D,Object.defineProperty(e,"__esModule",{value:!0}),e}({},React,primereact.api,primereact.componentbase,primereact.hooks,primereact.icons.bars,primereact.utils,primereact.icons.angledown,primereact.icons.angleright,primereact.ripple);