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) • 4.99 kB
JavaScript
import*as e from"react";import{PrimeReactContext as r}from"primereact/api";import{ComponentBase as t,useHandleStyle as n}from"primereact/componentbase";import{useMergeProps as o}from"primereact/hooks";import{TimesCircleIcon as i}from"primereact/icons/timescircle";import{classNames as l,ObjectUtils as a,IconUtils as c}from"primereact/utils";function p(e){return p="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},p(e)}function u(e,r){if("object"!==p(e)||null===e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,r||"default");if("object"!==p(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===r?String:Number)(e)}function m(e){var r=u(e,"string");return"symbol"===p(r)?r:String(r)}function s(){return s=Object.assign?Object.assign.bind():function(e){for(var r=1;r<arguments.length;r++){var t=arguments[r];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])}return e},s.apply(this,arguments)}function f(e){if(Array.isArray(e))return e}function y(e,r){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var n,o,i,l,a=[],c=!0,p=!1;try{if(i=(t=t.call(e)).next,0===r){if(Object(t)!==t)return;c=!1}else for(;!(c=(n=i.call(t)).done)&&(a.push(n.value),a.length!==r);c=!0);}catch(e){p=!0,o=e}finally{try{if(!c&&null!=t.return&&(l=t.return(),Object(l)!==l))return}finally{if(p)throw o}}return a}}function b(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=new Array(r);t<r;t++)n[t]=e[t];return n}function v(e,r){if(e){if("string"==typeof e)return b(e,r);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?b(e,r):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.")}var h=t.extend({defaultProps:{__TYPE:"Chip",label:null,icon:null,image:null,removable:!1,removeIcon:null,className:null,style:null,template:null,imageAlt:"chip",onImageError:null,onRemove:null,children:void 0},css:{classes:{root:function(e){return l("p-chip p-component",{"p-chip-image":null!=e.props.image})},removeIcon:"p-chip-remove-icon",icon:"p-chip-icon",label:"p-chip-text"},styles:"\n@layer primereact {\n .p-chip {\n display: inline-flex;\n align-items: center;\n }\n \n .p-chip-text {\n line-height: 1.5;\n }\n \n .p-chip-icon.pi {\n line-height: 1.5;\n }\n \n .p-chip .p-chip-remove-icon {\n line-height: 1.5;\n cursor: pointer;\n }\n \n .p-chip img {\n border-radius: 50%;\n }\n}\n"}});function d(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function O(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?d(Object(t),!0).forEach((function(r){var n,o,i;n=e,i=t[r],(o=m(o=r))in n?Object.defineProperty(n,o,{value:i,enumerable:!0,configurable:!0,writable:!0}):n[o]=i})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):d(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}))}return e}var j=e.memo(e.forwardRef((function(t,p){var u,m,b=o(),d=e.useContext(r),j=h.getProps(t,d),S=e.useRef(null),E=e.useState(!0),w=(m=2,f(u=E)||y(u,m)||v(u,m)||g()),P=w[0],I=w[1],x=h.setMetaData({props:j}),N=x.ptm,k=x.cx;n(h.css.styles,x.isUnstyled,{name:"chip"});var A,D,C=function(e){"Enter"!==e.code&&"NumpadEnter"!==e.code&&"Backspace"!==e.code||R(e)},R=function(e){I(!1),j.onRemove&&j.onRemove({originalEvent:e,value:j.label||j.image||j.icon})},J=function(){var r=[],t=b({key:"removeIcon",role:"button",tabIndex:0,className:k("removeIcon"),onClick:R,onKeyDown:C},N("removeIcon")),n=j.removeIcon||e.createElement(i,t);if(j.image){var o=b({key:"image",src:j.image,onError:j.onImageError},N("image"));r.push(e.createElement("img",s({alt:j.imageAlt},o)))}else if(j.icon){var l=b({key:"icon",className:k("icon")},N("icon"));r.push(c.getJSXIcon(j.icon,O({},l),{props:j}))}if(j.label){var a=b({key:"label",className:k("label")},N("label"));r.push(e.createElement("span",a,j.label))}return j.removable&&r.push(c.getJSXIcon(n,O({},t),{props:j})),r};return e.useImperativeHandle(p,(function(){return{props:j,getElement:function(){return S.current}}})),P&&(A=j.template?a.getJSXElement(j.template,j):J(),D=b({ref:S,style:j.style,className:l(j.className,k("root")),"aria-label":j.label},h.getOtherProps(j),N("root")),e.createElement("div",D,A))})));j.displayName="Chip";export{j as Chip};