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) 5 kB
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,UniqueComponentId as c,IconUtils as p}from"primereact/utils";function u(e){return u="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},u(e)}function m(e,r){if("object"!==u(e)||null===e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,r||"default");if("object"!==u(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===r?String:Number)(e)}function s(e){var r=m(e,"string");return"symbol"===u(r)?r:String(r)}function f(){return f=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},f.apply(this,arguments)}function b(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 v(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 g(e,r){if(e){if("string"==typeof e)return v(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)?v(e,r):void 0}}function h(){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 d=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 O(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 j(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?O(Object(t),!0).forEach((function(r){var n,o,i;n=e,i=t[r],(o=s(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)):O(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}))}return e}var S=e.memo(e.forwardRef((function(t,u){var m,s,v=o(),O=e.useContext(r),S=d.getProps(t,O),E=e.useRef(null),w=e.useState(!0),P=(s=2,b(m=w)||y(m,s)||g(m,s)||h()),I=P[0],x=P[1],N=d.setMetaData({props:S}),A=N.ptm,k=N.cx;n(d.css.styles,N.isUnstyled,{name:"chip"});var D,C,R=function(e){"Enter"!==e.code&&"NumpadEnter"!==e.code&&"Backspace"!==e.code||J(e)},J=function(e){x(!1),S.onRemove&&S.onRemove({originalEvent:e,value:S.label||S.image||S.icon})},T=function(){var r=[],t=v({role:"button",tabIndex:0,className:k("removeIcon"),onClick:J,onKeyDown:R},A("removeIcon")),n=S.removeIcon||e.createElement(i,f({},t,{key:c("removeIcon")}));if(S.image){var o=v({src:S.image,onError:S.onImageError},A("image"));r.push(e.createElement("img",f({alt:S.imageAlt},o)))}else if(S.icon){var l=v({className:k("icon")},A("icon"));r.push(p.getJSXIcon(S.icon,j({},l),{props:S}))}if(S.label){var a=v({className:k("label")},A("label"));r.push(e.createElement("span",f({},a,{key:"label"}),S.label))}return S.removable&&r.push(p.getJSXIcon(n,j({},t),{props:S})),r};return e.useImperativeHandle(u,(function(){return{props:S,getElement:function(){return E.current}}})),I&&(D=S.template?a.getJSXElement(S.template,S):T(),C=v({ref:E,style:S.style,className:l(S.className,k("root")),"aria-label":S.label},d.getOtherProps(S),A("root")),e.createElement("div",C,D))})));S.displayName="Chip";export{S as Chip};