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) 3.31 kB
import*as t from"react";import{Ripple as e}from"primereact/ripple";import{Tooltip as n}from"primereact/tooltip";import{ObjectUtils as o,classNames as l,IconUtils as r}from"primereact/utils";function i(){return i=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(t[o]=n[o])}return t},i.apply(this,arguments)}function a(t){return a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},a(t)}function u(t,e){if("object"!==a(t)||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var o=n.call(t,e||"default");if("object"!==a(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}function p(t){var e=u(t,"string");return"symbol"===a(e)?e:String(e)}function c(t,e,n){return(e=p(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var s={defaultProps:{__TYPE:"Button",label:null,icon:null,iconPos:"left",badge:null,severity:null,rounded:!1,raised:!1,outlined:!1,text:!1,link:!1,badgeClassName:null,tooltip:null,size:null,tooltipOptions:null,disabled:!1,loading:!1,loadingIcon:"pi pi-spinner pi-spin",visible:!0,children:void 0},getProps:function(t){return o.getMergedProps(t,s.defaultProps)},getOtherProps:function(t){return o.getDiffProps(t,s.defaultProps)}},b=t.memo(t.forwardRef((function(a,u){var p,b=s.getProps(a),d=t.useRef(u);if(t.useEffect((function(){o.combinedRefs(d,u)}),[d,u]),!1===b.visible)return null;var m=b.disabled||b.loading,f=!m||b.tooltipOptions&&b.tooltipOptions.showOnDisabled,g=o.isNotEmpty(b.tooltip)&&f,y=s.getOtherProps(b),v={large:"lg",small:"sm"}[b.size],P=l("p-button p-component",b.className,(c(p={"p-button-icon-only":(b.icon||b.loading&&b.loadingIcon)&&!b.label&&!b.children,"p-button-vertical":("top"===b.iconPos||"bottom"===b.iconPos)&&b.label,"p-disabled":m,"p-button-loading":b.loading,"p-button-outlined":b.outlined,"p-button-raised":b.raised,"p-button-link":b.link,"p-button-text":b.text,"p-button-rounded":b.rounded,"p-button-loading-label-only":b.loading&&!b.icon&&b.label},"p-button-loading-".concat(b.iconPos),b.loading&&b.loadingIcon&&b.label),c(p,"p-button-".concat(v),v),c(p,"p-button-".concat(b.severity),b.severity),p)),h=function(){var t=b.loading?b.loadingIcon:b.icon,e=l("p-button-icon p-c",c({"p-button-loading-icon":b.loading},"p-button-icon-".concat(b.iconPos),b.label));return r.getJSXIcon(t,{className:e},{props:b})}(),O=b.label?t.createElement("span",{className:"p-button-label p-c"},b.label):!b.children&&!b.label&&t.createElement("span",{className:"p-button-label p-c",dangerouslySetInnerHTML:{__html:"&nbsp;"}}),E=function(){if(b.badge){var e=l("p-badge",b.badgeClassName);return t.createElement("span",{className:e},b.badge)}return null}();return t.createElement(t.Fragment,null,t.createElement("button",i({ref:d,"aria-label":b.label?b.label+(b.badge?" "+b.badge:""):b["aria-label"]},y,{className:P,disabled:m}),h,O,b.children,E,t.createElement(e,null)),g&&t.createElement(n,i({target:d,content:b.tooltip},b.tooltipOptions)))})));b.displayName="Button";export{b as Button};