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.62 kB
JavaScript
import*as e from"react";import{TransitionGroup as r}from"react-transition-group";import{CSSTransition as t}from"primereact/csstransition";import{ObjectUtils as n,classNames as a,IconUtils as o}from"primereact/utils";import{localeOption as i}from"primereact/api";import{useTimeout as l}from"primereact/hooks";import{Ripple as s}from"primereact/ripple";function c(){return c=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},c.apply(this,arguments)}function u(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 m(e){if(Array.isArray(e))return u(e)}function f(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function p(e,r){if(e){if("string"==typeof e)return u(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)?u(e,r):void 0}}function d(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function y(e){return m(e)||f(e)||p(e)||d()}function g(e){if(Array.isArray(e))return e}function v(e,r){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var n,a,o,i,l=[],s=!0,c=!1;try{if(o=(t=t.call(e)).next,0===r){if(Object(t)!==t)return;s=!1}else for(;!(s=(n=o.call(t)).done)&&(l.push(n.value),l.length!==r);s=!0);}catch(e){c=!0,a=e}finally{try{if(!s&&null!=t.return&&(i=t.return(),Object(i)!==i))return}finally{if(c)throw a}}return l}}function b(){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 h(e,r){return g(e)||v(e,r)||p(e,r)||b()}var E={defaultProps:{__TYPE:"Messages",id:null,className:null,style:null,transitionOptions:null,onRemove:null,onClick:null,children:void 0},getProps:function(e){return n.getMergedProps(e,E.defaultProps)},getOtherProps:function(e){return n.getDiffProps(e,E.defaultProps)}},A=e.memo(e.forwardRef((function(r,t){var n=r.message,c=n.severity,u=n.content,m=n.summary,f=n.detail,p=n.closable,d=n.icon,y=h(l((function(){g(null)}),n.life||3e3,!n.sticky),1)[0],g=function(e){y(),r.onClose&&r.onClose(r.message),e&&(e.preventDefault(),e.stopPropagation())},v=a("p-message p-component p-message-"+c),b=function(){if(!1!==p){var r=i("close");return e.createElement("button",{type:"button",className:"p-message-close p-link","aria-label":r,onClick:g},e.createElement("i",{className:"p-message-close-icon pi pi-times","aria-hidden":"true"}),e.createElement(s,null))}return null}(),E=function(){if(r.message){var t=d;t||(t=a("pi",{"pi-info-circle":"info"===c,"pi-exclamation-triangle":"warn"===c,"pi-times-circle":"error"===c,"pi-check":"success"===c}));var n=o.getJSXIcon(t,{className:"p-message-icon"},{props:r});return u||e.createElement(e.Fragment,null,n,e.createElement("span",{className:"p-message-summary"},m),e.createElement("span",{className:"p-message-detail"},f))}return null}();return e.createElement("div",{ref:t,className:v,onClick:function(){r.onClick&&r.onClick(r.message)}},e.createElement("div",{className:"p-message-wrapper"},E,b))})));A.displayName="UIMessage";var N=0,O=e.memo(e.forwardRef((function(n,a){var o=E.getProps(n),i=h(e.useState([]),2),l=i[0],s=i[1],u=e.useRef(null),m=function(e){if(e){var r=f(e,!0);if(Array.isArray(e))for(var t=0;t<e.length;t++)e[t].id=N++,r=[].concat(y(l),y(e));else e.id=N++,r=l?[].concat(y(l),[e]):[e];s(r)}},f=function(e,r){var t;if(Array.isArray(e))for(var n=0;n<e.length;n++)e[n].id=N++,t=r?[].concat(y(l),y(e)):e;else e.id=N++,t=r&&l?[].concat(y(l),[e]):[e];return t},p=function(){s([])},d=function(e){var r=f(e,!1);s(r)},g=function(e){s(l.filter((function(r){return r.id!==e.id}))),o.onRemove&&o.onRemove(e)};e.useImperativeHandle(a,(function(){return{props:o,show:m,replace:d,clear:p,getElement:function(){return u.current}}}));var v=E.getOtherProps(o);return e.createElement("div",c({id:o.id,ref:u,className:o.className,style:o.style},v),e.createElement(r,null,l&&l.map((function(r){var n=e.createRef();return e.createElement(t,{nodeRef:n,key:r.id,classNames:"p-message",unmountOnExit:!0,timeout:{enter:300,exit:300},options:o.transitionOptions},e.createElement(A,{ref:n,message:r,onClick:o.onClick,onClose:g}))}))))})));O.displayName="Messages";export{O as Messages};