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) 6.35 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("primereact/api"),n=require("primereact/button"),l=require("primereact/hooks"),r=require("primereact/overlayservice"),o=require("primereact/tooltip"),a=require("primereact/utils"),i=require("primereact/csstransition"),u=require("primereact/portal");function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function c(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var l=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,l.get?l:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var m=c(e),p=s(t);function d(){return d=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var l in n)Object.prototype.hasOwnProperty.call(n,l)&&(e[l]=n[l])}return e},d.apply(this,arguments)}function f(e){if(Array.isArray(e))return e}function b(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var l,r,o=[],a=!0,i=!1;try{for(n=n.call(e);!(a=(l=n.next()).done)&&(o.push(l.value),!t||o.length!==t);a=!0);}catch(e){i=!0,r=e}finally{try{a||null==n.return||n.return()}finally{if(i)throw r}}return o}}function y(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,l=new Array(t);n<t;n++)l[n]=e[n];return l}function v(e,t){if(e){if("string"==typeof e)return y(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)?y(e,t):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 N(e,t){return f(e)||b(e,t)||v(e,t)||E()}var g=m.memo((function(e){var t=function(t){e.menuitem.command&&e.menuitem.command({originalEvent:t,item:e.menuitem}),e.onItemClick&&e.onItemClick(t),t.preventDefault()},n=function(){if(!1===e.menuitem.visible)return null;var n=e.menuitem,l=n.icon,r=n.label,o=n.template,i=n.url,u=n.target,s=a.classNames("p-menuitem-link",{"p-disabled":n.disabled}),c=a.classNames("p-menuitem-icon",l),p=a.IconUtils.getJSXIcon(l,{className:"p-menuitem-icon"},{props:e.splitButtonProps}),d=m.createElement("a",{href:i||"#",role:"menuitem",className:s,target:u,onClick:t,"aria-label":r},p,r&&m.createElement("span",{className:"p-menuitem-text"},r));o&&(d=a.ObjectUtils.getJSXElement(o,e.menuitem,{onClick:t,className:s,labelClassName:"p-menuitem-text",iconClassName:c,element:d,props:e}));return m.createElement("li",{className:"p-menuitem",role:"none"},d)};return e.menuitem.separator?m.createElement("li",{className:"p-menu-separator",role:"separator"}):n()}));g.displayName="SplitButtonItem";var O=m.forwardRef((function(e,t){var n,l=(n=a.classNames("p-menu p-menu-overlay p-component",e.menuClassName),m.createElement(i.CSSTransition,{nodeRef:t,classNames:"p-connected-overlay",in:e.in,timeout:{enter:120,exit:100},options:e.transitionOptions,unmountOnExit:!0,onEnter:e.onEnter,onEntered:e.onEntered,onExit:e.onExit,onExited:e.onExited},m.createElement("div",{ref:t,className:n,style:e.menuStyle,onClick:e.onClick},m.createElement("ul",{id:e.menuId,className:"p-menu-list p-reset",role:"menu"},e.children))));return m.createElement(u.Portal,{element:l,appendTo:e.appendTo})}));O.displayName="SplitButtonPanel";var I=m.memo(m.forwardRef((function(e,t){var i=N(m.useState(e.id),2),u=i[0],s=i[1],c=N(m.useState(!1),2),f=c[0],b=c[1],y=m.useRef(null),v=m.useRef(null),E=m.useRef(null),C=N(l.useOverlayListener({target:y,overlay:E,listener:function(e,t){t.valid&&k()},when:f}),2),S=C[0],h=C[1],x=function(){k()},j=function(){b(!0)},k=function(){b(!1)},w=function(){a.DomHandler.alignOverlay(E.current,v.current.parentElement,e.appendTo||p.default.appendTo)};l.useMountEffect((function(){u||s(a.UniqueComponentId())})),l.useUnmountEffect((function(){a.ZIndexUtils.clear(E.current)})),m.useImperativeHandle(t,(function(){return{props:e,show:j,hide:k,getElement:function(){return y.current}}}));if(!1===e.visible)return null;var P=a.ObjectUtils.isNotEmpty(e.tooltip),T=a.ObjectUtils.findDiffKeys(e,I.defaultProps),B=a.classNames("p-splitbutton p-component",e.className,{"p-disabled":e.disabled}),U=a.classNames("p-splitbutton-defaultbutton",e.buttonClassName),q=a.classNames("p-splitbutton-menubutton",e.menuButtonClassName),_=e.buttonTemplate?a.ObjectUtils.getJSXElement(e.buttonTemplate,e):null,A=e.model?e.model.map((function(t,n){return m.createElement(g,{splitButtonProps:e,menuitem:t,key:n,onItemClick:x})})):null,R=u+"_menu";return m.createElement(m.Fragment,null,m.createElement("div",d({ref:y,id:u,className:B,style:e.style},T),m.createElement(n.Button,d({ref:v,type:"button",className:U,icon:e.icon,loading:e.loading,loadingIcon:e.loadingIcon,label:e.label,onClick:e.onClick,disabled:e.disabled,tabIndex:e.tabIndex},e.buttonProps),_),m.createElement(n.Button,d({type:"button",className:q,icon:e.dropdownIcon,onClick:function(){f?k():j()},disabled:e.disabled,"aria-expanded":f,"aria-haspopup":"true","aria-controls":f?R:null},e.menuButtonProps)),m.createElement(O,{ref:E,appendTo:e.appendTo,menuId:R,menuStyle:e.menuStyle,menuClassName:e.menuClassName,onClick:function(e){r.OverlayService.emit("overlay-click",{originalEvent:e,target:y.current})},in:f,onEnter:function(){a.ZIndexUtils.set("overlay",E.current,p.default.autoZIndex,p.default.zIndex.overlay),w()},onEntered:function(){S(),e.onShow&&e.onShow()},onExit:function(){h()},onExited:function(){a.ZIndexUtils.clear(E.current),e.onHide&&e.onHide()},transitionOptions:e.transitionOptions},A)),P&&m.createElement(o.Tooltip,d({target:y,content:e.tooltip},e.tooltipOptions)))})));I.displayName="SplitButton",I.defaultProps={__TYPE:"SplitButton",id:null,label:null,icon:null,loading:!1,loadingIcon:"pi pi-spinner pi-spin",model:null,disabled:null,style:null,className:null,buttonClassName:null,menuStyle:null,menuClassName:null,menuButtonClassName:null,buttonProps:null,menuButtonProps:null,tabIndex:null,appendTo:null,tooltip:null,tooltipOptions:null,buttonTemplate:null,transitionOptions:null,dropdownIcon:"pi pi-chevron-down",onClick:null,onShow:null,onHide:null},exports.SplitButton=I;