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) • 5.29 kB
JavaScript
import*as r from"react";import{PrimeReactContext as e}from"primereact/api";import{ComponentBase as t,useHandleStyle as n}from"primereact/componentbase";import{useMergeProps as a}from"primereact/hooks";import{classNames as o,ObjectUtils as i,DomHandler as l,IconUtils as c}from"primereact/utils";function u(r){return u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(r){return typeof r}:function(r){return r&&"function"==typeof Symbol&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},u(r)}function s(r,e){if("object"!==u(r)||null===r)return r;var t=r[Symbol.toPrimitive];if(void 0!==t){var n=t.call(r,e||"default");if("object"!==u(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(r)}function p(r){var e=s(r,"string");return"symbol"===u(e)?e:String(e)}function m(){return m=Object.assign?Object.assign.bind():function(r){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(r[n]=t[n])}return r},m.apply(this,arguments)}function f(r){if(Array.isArray(r))return r}function v(r,e){var t=null==r?null:"undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(null!=t){var n,a,o,i,l=[],c=!0,u=!1;try{if(o=(t=t.call(r)).next,0===e){if(Object(t)!==t)return;c=!1}else for(;!(c=(n=o.call(t)).done)&&(l.push(n.value),l.length!==e);c=!0);}catch(r){u=!0,a=r}finally{try{if(!c&&null!=t.return&&(i=t.return(),Object(i)!==i))return}finally{if(u)throw a}}return l}}function b(r,e){(null==e||e>r.length)&&(e=r.length);for(var t=0,n=new Array(e);t<e;t++)n[t]=r[t];return n}function y(r,e){if(r){if("string"==typeof r)return b(r,e);var t=Object.prototype.toString.call(r).slice(8,-1);return"Object"===t&&r.constructor&&(t=r.constructor.name),"Map"===t||"Set"===t?Array.from(r):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?b(r,e):void 0}}function g(){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 d(r,e){return f(r)||v(r,e)||y(r,e)||g()}var h=t.extend({defaultProps:{__TYPE:"Avatar",className:null,icon:null,image:null,imageAlt:"avatar",imageFallback:"default",label:null,onImageError:null,shape:"square",size:"normal",style:null,template:null,children:void 0},css:{classes:{root:function(r){var e=r.props,t=r.state;return o("p-avatar p-component",{"p-avatar-image":i.isNotEmpty(e.image)&&!t.imageFailed,"p-avatar-circle":"circle"===e.shape,"p-avatar-lg":"large"===e.size,"p-avatar-xl":"xlarge"===e.size,"p-avatar-clickable":!!e.onClick})},label:"p-avatar-text",icon:"p-avatar-icon"},styles:"\n@layer primereact {\n .p-avatar {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 2rem;\n height: 2rem;\n font-size: 1rem;\n }\n \n .p-avatar.p-avatar-image {\n background-color: transparent;\n }\n \n .p-avatar.p-avatar-circle {\n border-radius: 50%;\n }\n \n .p-avatar.p-avatar-circle img {\n border-radius: 50%;\n }\n \n .p-avatar .p-avatar-icon {\n font-size: 1rem;\n }\n \n .p-avatar img {\n width: 100%;\n height: 100%;\n }\n \n .p-avatar-clickable {\n cursor: pointer;\n }\n}\n"}});function O(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(r);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),t.push.apply(t,n)}return t}function j(r){for(var e=1;e<arguments.length;e++){var t=null!=arguments[e]?arguments[e]:{};e%2?O(Object(t),!0).forEach((function(e){var n,a,o;n=r,o=t[e],(a=p(a=e))in n?Object.defineProperty(n,a,{value:o,enumerable:!0,configurable:!0,writable:!0}):n[a]=o})):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):O(Object(t)).forEach((function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(t,e))}))}return r}var E=r.forwardRef((function(t,u){var s=a(),p=r.useContext(e),f=h.getProps(t,p),v=r.useRef(null),b=d(r.useState(!1),2),y=b[0],g=b[1],O=d(r.useState(!1),2),E=O[1],S=h.setMetaData({props:f,state:{imageFailed:y,nested:O[0]}}),w=S.ptm,P=S.cx;n(h.css.styles,S.isUnstyled,{name:"avatar"});var A=function(r){"default"===f.imageFallback?f.onImageError||(g(!0),r.target.src=null):r.target.src=f.imageFallback,f.onImageError&&f.onImageError(r)};r.useEffect((function(){var r=l.isAttributeEquals(v.current.parentElement,"data-pc-name","avatargroup");E(r)}),[]),r.useImperativeHandle(u,(function(){return{props:f,getElement:function(){return v.current}}}));var k=s({ref:v,style:f.style,className:o(f.className,P("root",{imageFailed:y}))},h.getOtherProps(f),w("root")),x=f.template?i.getJSXElement(f.template,f):function(){if(i.isNotEmpty(f.image)&&!y){var e=s({src:f.image,onError:A},w("image"));return r.createElement("img",m({alt:f.imageAlt},e))}if(f.label){var t=s({className:P("label")},w("label"));return r.createElement("span",t,f.label)}if(f.icon){var n=s({className:P("icon")},w("icon"));return c.getJSXIcon(f.icon,j({},n),{props:f})}return null}();return r.createElement("div",k,x,f.children)}));E.displayName="Avatar";export{E as Avatar};