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.33 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("primereact/api"),n=require("primereact/csstransition"),r=require("primereact/hooks"),a=require("primereact/overlayservice"),i=require("primereact/portal"),o=require("primereact/utils");function l(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 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 c=u(e),s=l(t);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 m(e){if(Array.isArray(e))return e}function f(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i=[],o=!0,l=!1;try{for(n=n.call(e);!(o=(r=n.next()).done)&&(i.push(r.value),!t||i.length!==t);o=!0);}catch(e){l=!0,a=e}finally{try{o||null==n.return||n.return()}finally{if(l)throw a}}return i}}function d(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 d(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)?d(e,t):void 0}}function b(){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 m(e)||f(e,t)||v(e,t)||b()}function g(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function h(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function O(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?h(Object(n),!0).forEach((function(t){g(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):h(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var E=c.memo((function(e){var t=y(c.useState(null),2),n=t[0],r=t[1],a=y(c.useState({}),2),i=a[0],l=a[1],u=function(t,n,a){if(n.disabled)t.preventDefault();else if(n.url||t.preventDefault(),n.command&&n.command({originalEvent:t,item:n}),n.items){var o=m(n,a);l(O(O({},i),{},g({},o,!0))),r(n),e.onForward()}},s=function(e){return c.createElement("li",{key:"separator_"+e,className:"p-menu-separator"})},p=function(t,r){var a=i[m(t,r)];return t.items&&a?c.createElement(E,{menuProps:e.menuProps,model:t.items,index:e.index+1,menuWidth:e.menuWidth,effectDuration:e.effectDuration,onForward:e.onForward,parentActive:t===n}):null},m=function(e,t){return e.label+"_"+t},f=function(t,r){if(!1===t.visible)return null;var a=m(t,r),i=n===t,l=o.classNames("p-menuitem",{"p-menuitem-active":i,"p-disabled":t.disabled},t.className),s=o.classNames("p-menuitem-icon",t.icon),f="p-submenu-icon pi pi-fw pi-angle-right",d=o.IconUtils.getJSXIcon(t.icon,{className:"p-menuitem-icon"},{props:e.menuProps}),v=t.label&&c.createElement("span",{className:"p-menuitem-text"},t.label),b=t.items&&c.createElement("span",{className:f}),y=p(t,r),g=c.createElement("a",{href:t.url||"#",className:"p-menuitem-link",target:t.target,onClick:function(e){return u(e,t,r)},"aria-disabled":t.disabled},d,v,b);t.template&&(g=o.ObjectUtils.getJSXElement(t.template,t,{onClick:function(e){return u(e,t,r)},className:"p-menuitem-link",labelClassName:"p-menuitem-text",iconClassName:s,submenuIconClassName:f,element:g,props:e,active:i}));return c.createElement("li",{key:a,id:t.id,className:l,style:t.style},g,y)},d=function(e,t){return e.separator?s(t):f(e,t)},v={width:e.menuWidth+"px",left:e.root?-1*e.level*e.menuWidth+"px":e.menuWidth+"px",transitionProperty:e.root?"left":"none",transitionDuration:e.effectDuration+"ms",transitionTimingFunction:e.easing},b=o.classNames({"p-slidemenu-rootlist":e.root,"p-submenu-list":!e.root,"p-active-submenu":e.parentActive}),h=e.model?e.model.map(d):null;return c.createElement("ul",{className:b,style:v},h)}));E.displayName="SlideMenuSub";var w=c.memo(c.forwardRef((function(e,t){var l=y(c.useState(0),2),u=l[0],m=l[1],f=y(c.useState(!1),2),d=f[0],v=f[1],b=c.useRef(null),g=c.useRef(null),h=c.useRef(null),O=c.useRef(null),N=y(r.useOverlayListener({target:g,overlay:b,listener:function(e,t){t.valid&&U(e)},when:d}),2),j=N[0],x=N[1],S=function(t){e.popup&&a.OverlayService.emit("overlay-click",{originalEvent:t,target:g.current})},P=function(){m((function(e){return e+1}))},k=function(){m((function(e){return e-1}))},D=function(t){e.popup&&(d?U(t):I(t))},I=function(t){g.current=t.currentTarget,v(!0),e.onShow&&e.onShow(t)},U=function(t){g.current=t.currentTarget,v(!1),e.onHide&&e.onHide(t)},A=function(){e.autoZIndex&&o.ZIndexUtils.set("menu",b.current,s.default.autoZIndex,e.baseZIndex||s.default.zIndex.menu),o.DomHandler.absolutePosition(b.current,g.current)},C=function(){j()},T=function(){g.current=null,x()},W=function(){o.ZIndexUtils.clear(b.current),m(0)};r.useUpdateEffect((function(){m(0)}),[e.model]),r.useUpdateEffect((function(){e.onNavigate&&e.onNavigate({level:u})}),[u]),r.useUnmountEffect((function(){o.ZIndexUtils.clear(b.current)})),c.useImperativeHandle(t,(function(){return{props:e,toggle:D,show:I,hide:U,navigateForward:P,navigateBack:k,setLevelState:m,getElement:function(){return b.current}}}));var Z=function(){var t=o.classNames("p-slidemenu-backward",{"p-hidden":0===u});return c.createElement("div",{ref:h,className:t,onClick:k},c.createElement("span",{className:"p-slidemenu-backward-icon pi pi-fw pi-chevron-left"}),c.createElement("span",null,e.backLabel))},_=function(){var t=o.ObjectUtils.findDiffKeys(e,w.defaultProps),r=o.classNames("p-slidemenu p-component",{"p-slidemenu-overlay":e.popup},e.className),a={height:e.viewportHeight+"px"},i=Z();return c.createElement(n.CSSTransition,{nodeRef:b,classNames:"p-connected-overlay",in:!e.popup||d,timeout:{enter:120,exit:100},options:e.transitionOptions,unmountOnExit:!0,onEnter:A,onEntered:C,onExit:T,onExited:W},c.createElement("div",p({ref:b,id:e.id,className:r,style:e.style},t,{onClick:S}),c.createElement("div",{className:"p-slidemenu-wrapper",style:a},c.createElement("div",{className:"p-slidemenu-content",ref:O},c.createElement(E,{menuProps:e,model:e.model,root:!0,index:0,menuWidth:e.menuWidth,effectDuration:e.effectDuration,level:u,parentActive:0===u,onForward:P})),i)))}();return e.popup?c.createElement(i.Portal,{element:_,appendTo:e.appendTo}):_})));w.displayName="SlideMenu",w.defaultProps={__TYPE:"SlideMenu",appendTo:null,autoZIndex:!0,backLabel:"Back",baseZIndex:0,className:null,easing:"ease-out",effectDuration:250,id:null,menuWidth:190,model:null,onHide:null,onShow:null,onNavigate:null,popup:!1,style:null,transitionOptions:null,viewportHeight:175},exports.SlideMenu=w;