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