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