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