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) • 7.64 kB
JavaScript
this.primereact=this.primereact||{},this.primereact.splitbutton=function(e,t,n,r,l,o,i,a,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 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 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 r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},f.apply(this,arguments)}function b(e){return b="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},b(e)}function y(e,t){if("object"!==b(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==b(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function v(e){var t=y(e,"string");return"symbol"===b(t)?t:String(t)}function g(e,t,n){return(t=v(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function E(e){if(Array.isArray(e))return e}function N(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,l,o,i,a=[],u=!0,s=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;u=!1}else for(;!(u=(r=o.call(n)).done)&&(a.push(r.value),a.length!==t);u=!0);}catch(e){s=!0,l=e}finally{try{if(!u&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(s)throw l}}return a}}function O(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 S(e,t){if(e){if("string"==typeof e)return O(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)?O(e,t):void 0}}function h(){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 I(e,t){return E(e)||N(e,t)||S(e,t)||h()}var C={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,severity:null,rounded:!1,raised:!1,outlined:!1,text:!1,size:null,appendTo:null,tooltip:null,tooltipOptions:null,buttonTemplate:null,transitionOptions:null,dropdownIcon:"pi pi-chevron-down",onClick:null,onShow:null,onHide:null,children:void 0},getProps:function(e){return a.ObjectUtils.getMergedProps(e,C.defaultProps)},getOtherProps:function(e){return a.ObjectUtils.getDiffProps(e,C.defaultProps)}},P=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,r=n.icon,l=n.label,o=n.template,i=n.url,u=n.target,s=a.classNames("p-menuitem-link",n.className,{"p-disabled":n.disabled}),c=a.classNames("p-menuitem-icon",r),m=a.IconUtils.getJSXIcon(r,{className:"p-menuitem-icon"},{props:e.splitButtonProps}),d=p.createElement("a",{href:i||"#",role:"menuitem",className:s,target:u,onClick:t,"aria-label":l},m,l&&p.createElement("span",{className:"p-menuitem-text"},l));o&&(d=a.ObjectUtils.getJSXElement(o,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()}));P.displayName="SplitButtonItem";var j=p.forwardRef((function(e,t){var n,r=(n=a.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:r,appendTo:e.appendTo})}));j.displayName="SplitButtonPanel";var x=p.memo(p.forwardRef((function(e,t){var n,u=C.getProps(e),s=I(p.useState(u.id),2),c=s[0],m=s[1],b=I(p.useState(!1),2),y=b[0],v=b[1],E=p.useRef(null),N=p.useRef(null),O=p.useRef(null),S=I(l.useOverlayListener({target:E,overlay:O,listener:function(e,t){t.valid&&T()},when:y}),2),h=S[0],x=S[1],w=function(){T()},k=function(){v(!0)},T=function(){v(!1)},B=function(){a.DomHandler.alignOverlay(O.current,N.current.parentElement,u.appendTo||d.default.appendTo)};l.useMountEffect((function(){c||m(a.UniqueComponentId())})),l.useUnmountEffect((function(){a.ZIndexUtils.clear(O.current)})),p.useImperativeHandle(t,(function(){return{props:u,show:k,hide:T,getElement:function(){return E.current}}}));if(!1===u.visible)return null;var U=a.ObjectUtils.isNotEmpty(u.tooltip),R=C.getOtherProps(u),_={large:"lg",small:"sm"}[u.size],A=a.classNames("p-splitbutton p-component",u.className,(g(n={"p-disabled":u.disabled,"p-button-loading-label-only":u.loading&&!u.icon&&u.label},"p-button-".concat(u.severity),u.severity),g(n,"p-button-raised",u.raised),g(n,"p-button-rounded",u.rounded),g(n,"p-button-text",u.text),g(n,"p-button-outlined",u.outlined),g(n,"p-button-".concat(_),_),n)),H=a.classNames("p-splitbutton-defaultbutton",u.buttonClassName),M=a.classNames("p-splitbutton-menubutton",u.menuButtonClassName),z=u.buttonTemplate?a.ObjectUtils.getJSXElement(u.buttonTemplate,u):null,D=u.model?u.model.map((function(e,t){return p.createElement(P,{splitButtonProps:u,menuitem:e,key:t,onItemClick:w})})):null,Z=c+"_menu";return p.createElement(p.Fragment,null,p.createElement("div",f({ref:E,id:c,className:A,style:u.style},R),p.createElement(r.Button,f({ref:N,type:"button",className:H,icon:u.icon,loading:u.loading,loadingIcon:u.loadingIcon,label:u.label,onClick:u.onClick,disabled:u.disabled,tabIndex:u.tabIndex},u.buttonProps),z),p.createElement(r.Button,f({type:"button",className:M,icon:u.dropdownIcon,onClick:function(){y?T():k()},disabled:u.disabled,"aria-expanded":y,"aria-haspopup":"true","aria-controls":y?Z:null},u.menuButtonProps)),p.createElement(j,{ref:O,appendTo:u.appendTo,menuId:Z,menuStyle:u.menuStyle,menuClassName:u.menuClassName,onClick:function(e){o.OverlayService.emit("overlay-click",{originalEvent:e,target:E.current})},in:y,onEnter:function(){a.ZIndexUtils.set("overlay",O.current,d.default.autoZIndex,d.default.zIndex.overlay),B()},onEntered:function(){h(),u.onShow&&u.onShow()},onExit:function(){x()},onExited:function(){a.ZIndexUtils.clear(O.current),u.onHide&&u.onHide()},transitionOptions:u.transitionOptions},D)),U&&p.createElement(i.Tooltip,f({target:E,content:u.tooltip},u.tooltipOptions)))})));return x.displayName="SplitButton",e.SplitButton=x,Object.defineProperty(e,"__esModule",{value:!0}),e}({},React,primereact.api,primereact.button,primereact.hooks,primereact.overlayservice,primereact.tooltip,primereact.utils,primereact.csstransition,primereact.portal);