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) • 6.93 kB
JavaScript
import*as e from"react";import{PrimeReactContext as t}from"primereact/api";import{ComponentBase as n,useHandleStyle as r}from"primereact/componentbase";import{useMergeProps as o}from"primereact/hooks";import{classNames as a,ObjectUtils as l,IconUtils as i}from"primereact/utils";import{SpinnerIcon as s}from"primereact/icons/spinner";import{Ripple as c}from"primereact/ripple";import{Tooltip as p}from"primereact/tooltip";function u(){return u=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},u.apply(null,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 d(e,t){if("object"!=b(e)||!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 m(e){var t=d(e,"string");return"symbol"==b(t)?t:t+""}function g(e,t,n){return(t=m(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var f=n.extend({defaultProps:{__TYPE:"Badge",__parentMetadata:null,value:null,severity:null,size:null,style:null,className:null,children:void 0},css:{classes:{root:function(e){var t=e.props;return a("p-badge p-component",g({"p-badge-no-gutter":l.isNotEmpty(t.value)&&1===String(t.value).length,"p-badge-dot":l.isEmpty(t.value),"p-badge-lg":"large"===t.size,"p-badge-xl":"xlarge"===t.size},"p-badge-".concat(t.severity),null!==t.severity))}},styles:"\n@layer primereact {\n .p-badge {\n display: inline-block;\n border-radius: 10px;\n text-align: center;\n padding: 0 .5rem;\n }\n \n .p-overlay-badge {\n position: relative;\n }\n \n .p-overlay-badge .p-badge {\n position: absolute;\n top: 0;\n right: 0;\n transform: translate(50%,-50%);\n transform-origin: 100% 0;\n margin: 0;\n }\n \n .p-badge-dot {\n width: .5rem;\n min-width: .5rem;\n height: .5rem;\n border-radius: 50%;\n padding: 0;\n }\n \n .p-badge-no-gutter {\n padding: 0;\n border-radius: 50%;\n }\n}\n"}});function y(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function v(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?y(Object(n),!0).forEach((function(t){g(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):y(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var O=e.memo(e.forwardRef((function(n,l){var i=o(),s=e.useContext(t),c=f.getProps(n,s),p=f.setMetaData(v({props:c},c.__parentMetadata)),u=p.ptm,b=p.cx;r(f.css.styles,p.isUnstyled,{name:"badge"});var d=e.useRef(null);e.useImperativeHandle(l,(function(){return{props:c,getElement:function(){return d.current}}}));var m=i({ref:d,style:c.style,className:a(c.className,b("root"))},f.getOtherProps(c),u("root"));return e.createElement("span",m,c.value)})));O.displayName="Badge";var P=n.extend({defaultProps:{__TYPE:"Button",__parentMetadata:null,badge:null,badgeClassName:null,className:null,children:void 0,disabled:!1,icon:null,iconPos:"left",label:null,link:!1,loading:!1,loadingIcon:null,outlined:!1,plain:!1,raised:!1,rounded:!1,severity:null,size:null,text:!1,tooltip:null,tooltipOptions:null,visible:!0},css:{classes:{icon:function(e){var t=e.props;return a("p-button-icon p-c",g({},"p-button-icon-".concat(t.iconPos),t.label))},loadingIcon:function(e){return a(e.className,{"p-button-loading-icon":e.props.loading})},label:"p-button-label p-c",root:function(e){var t=e.props,n=e.size;return a("p-button p-component",g(g(g(g({"p-button-icon-only":(t.icon||t.loading)&&!t.label&&!t.children,"p-button-vertical":("top"===t.iconPos||"bottom"===t.iconPos)&&t.label,"p-disabled":e.disabled,"p-button-loading":t.loading,"p-button-outlined":t.outlined,"p-button-raised":t.raised,"p-button-link":t.link,"p-button-text":t.text,"p-button-rounded":t.rounded,"p-button-loading-label-only":t.loading&&!t.icon&&t.label},"p-button-loading-".concat(t.iconPos),t.loading&&t.label),"p-button-".concat(n),n),"p-button-".concat(t.severity),t.severity),"p-button-plain",t.plain))}}}});function h(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function j(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?h(Object(n),!0).forEach((function(t){g(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):h(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var w=e.memo(e.forwardRef((function(n,b){var d=o(),m=e.useContext(t),f=P.getProps(n,m),y=f.disabled||f.loading,v=j(j({props:f},f.__parentMetadata),{},{context:{disabled:y}}),h=P.setMetaData(v),w=h.ptm,E=h.cx;r(P.css.styles,h.isUnstyled,{name:"button",styled:!0});var N=e.useRef(b);if(e.useEffect((function(){l.combinedRefs(N,b)}),[N,b]),!1===f.visible)return null;var _,x=!y||f.tooltipOptions&&f.tooltipOptions.showOnDisabled,S=l.isNotEmpty(f.tooltip)&&x,D={large:"lg",small:"sm"}[f.size],I=function(){var t=a("p-button-icon p-c",g({},"p-button-icon-".concat(f.iconPos),f.label)),n=d({className:E("icon")},w("icon"));t=a(t,{"p-button-loading-icon":f.loading});var r=d({className:E("loadingIcon",{className:t})},w("loadingIcon")),o=f.loading?f.loadingIcon||e.createElement(s,u({},r,{spin:!0})):f.icon;return i.getJSXIcon(o,j({},n),{props:f})}(),M=(_=d({className:E("label")},w("label")),f.label?e.createElement("span",_,f.label):!f.children&&!f.label&&e.createElement("span",u({},_,{dangerouslySetInnerHTML:{__html:" "}}))),k=function(){if(f.badge){var t=d({className:a(f.badgeClassName),value:f.badge,unstyled:f.unstyled,__parentMetadata:{parent:v}},w("badge"));return e.createElement(O,t,f.badge)}return null}(),z=d({ref:N,"aria-label":f.label?f.label+(f.badge?" "+f.badge:""):f["aria-label"],"data-pc-autofocus":f.autoFocus,className:a(f.className,E("root",{size:D,disabled:y})),disabled:y},P.getOtherProps(f),w("root"));return e.createElement(e.Fragment,null,e.createElement("button",z,I,M,f.children,k,e.createElement(c,null)),S&&e.createElement(p,u({target:N,content:f.tooltip,pt:w("tooltip")},f.tooltipOptions)))})));w.displayName="Button";export{w as Button};