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) 16.9 kB
import*as e from"react";import{TransitionGroup as t}from"react-transition-group";import o,{PrimeReactContext as n}from"primereact/api";import{ComponentBase as r,useHandleStyle as a}from"primereact/componentbase";import{CSSTransition as s}from"primereact/csstransition";import{useMergeProps as i,useTimeout as l,useUpdateEffect as c,useUnmountEffect as u}from"primereact/hooks";import{Portal as m}from"primereact/portal";import{classNames as p,DomHandler as d,IconUtils as f,ObjectUtils as y,ZIndexUtils as g}from"primereact/utils";import{CheckIcon as h}from"primereact/icons/check";import{ExclamationTriangleIcon as v}from"primereact/icons/exclamationtriangle";import{InfoCircleIcon as b}from"primereact/icons/infocircle";import{TimesIcon as E}from"primereact/icons/times";import{TimesCircleIcon as N}from"primereact/icons/timescircle";import{Ripple as S}from"primereact/ripple";function w(){return w=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var o=arguments[t];for(var n in o)Object.prototype.hasOwnProperty.call(o,n)&&(e[n]=o[n])}return e},w.apply(this,arguments)}function T(e,t){(null==t||t>e.length)&&(t=e.length);for(var o=0,n=new Array(t);o<t;o++)n[o]=e[o];return n}function A(e){if(Array.isArray(e))return T(e)}function x(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function O(e,t){if(e){if("string"==typeof e)return T(e,t);var o=Object.prototype.toString.call(e).slice(8,-1);return"Object"===o&&e.constructor&&(o=e.constructor.name),"Map"===o||"Set"===o?Array.from(e):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?T(e,t):void 0}}function M(){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 _(e){return A(e)||x(e)||O(e)||M()}function I(e){if(Array.isArray(e))return e}function P(e,t){var o=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var n,r,a,s,i=[],l=!0,c=!1;try{if(a=(o=o.call(e)).next,0===t){if(Object(o)!==o)return;l=!1}else for(;!(l=(n=a.call(o)).done)&&(i.push(n.value),i.length!==t);l=!0);}catch(e){c=!0,r=e}finally{try{if(!l&&null!=o.return&&(s=o.return(),Object(s)!==s))return}finally{if(c)throw r}}return i}}function R(){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 C(e,t){return I(e)||P(e,t)||O(e,t)||R()}function L(e){return L="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},L(e)}function D(e,t){if("object"!==L(e)||null===e)return e;var o=e[Symbol.toPrimitive];if(void 0!==o){var n=o.call(e,t||"default");if("object"!==L(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function j(e){var t=D(e,"string");return"symbol"===L(t)?t:String(t)}function k(e,t,o){return(t=j(t))in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}var H=r.extend({defaultProps:{__TYPE:"Toast",id:null,className:null,content:null,style:null,baseZIndex:0,position:"top-right",transitionOptions:null,appendTo:"self",onClick:null,onRemove:null,onShow:null,onHide:null,onMouseEnter:null,onMouseLeave:null,children:void 0},css:{classes:{root:function(e){var t=e.props,n=e.context;return p("p-toast p-component p-toast-"+t.position,t.className,{"p-input-filled":n&&"filled"===n.inputStyle||"filled"===o.inputStyle,"p-ripple-disabled":n&&!1===n.ripple||!1===o.ripple})},message:{message:function(e){var t=e.severity;return p("p-toast-message",k({},"p-toast-message-".concat(t),t))},content:"p-toast-message-content",buttonicon:"p-toast-icon-close-icon",closeButton:"p-toast-icon-close p-link",icon:"p-toast-message-icon",text:"p-toast-message-text",summary:"p-toast-summary",detail:"p-toast-detail"},transition:"p-toast-message"},styles:"\n@layer primereact {\n .p-toast {\n width: calc(100% - var(--toast-indent, 0px));\n max-width: 25rem;\n }\n \n .p-toast-message-icon {\n flex-shrink: 0;\n }\n \n .p-toast-message-content {\n display: flex;\n align-items: flex-start;\n }\n \n .p-toast-message-text {\n flex: 1 1 auto;\n }\n \n .p-toast-summary {\n overflow-wrap: anywhere;\n }\n \n .p-toast-detail {\n overflow-wrap: anywhere;\n }\n \n .p-toast-top-center {\n transform: translateX(-50%);\n }\n \n .p-toast-bottom-center {\n transform: translateX(-50%);\n }\n \n .p-toast-center {\n min-width: 20vw;\n transform: translate(-50%, -50%);\n }\n \n .p-toast-icon-close {\n display: flex;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n position: relative;\n }\n \n .p-toast-icon-close.p-link {\n cursor: pointer;\n }\n \n /* Animations */\n .p-toast-message-enter {\n opacity: 0;\n transform: translateY(50%);\n }\n \n .p-toast-message-enter-active {\n opacity: 1;\n transform: translateY(0);\n transition: transform 0.3s, opacity 0.3s;\n }\n \n .p-toast-message-enter-done {\n transform: none;\n }\n \n .p-toast-message-exit {\n opacity: 1;\n max-height: 1000px;\n }\n \n .p-toast .p-toast-message.p-toast-message-exit-active {\n opacity: 0;\n max-height: 0;\n margin-bottom: 0;\n overflow: hidden;\n transition: max-height 0.45s cubic-bezier(0, 1, 0, 1), opacity 0.3s, margin-bottom 0.3s;\n }\n}\n",inlineStyles:{root:function(e){var t=e.props;return{position:"fixed",top:"top-right"===t.position||"top-left"===t.position||"top-center"===t.position?"20px":"center"===t.position?"50%":null,right:("top-right"===t.position||"bottom-right"===t.position)&&"20px",bottom:("bottom-left"===t.position||"bottom-right"===t.position||"bottom-center"===t.position)&&"20px",left:"top-left"===t.position||"bottom-left"===t.position?"20px":"center"===t.position||"top-center"===t.position||"bottom-center"===t.position?"50%":null}}}}});function F(e,t){for(var o=0;o<t.length;o++){var n=t[o];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,j(n.key),n)}}function B(e,t,o){return t&&F(e.prototype,t),o&&F(e,o),Object.defineProperty(e,"prototype",{writable:!1}),e}function U(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var W=Object.freeze({STARTS_WITH:"startsWith",CONTAINS:"contains",NOT_CONTAINS:"notContains",ENDS_WITH:"endsWith",EQUALS:"equals",NOT_EQUALS:"notEquals",IN:"in",LESS_THAN:"lt",LESS_THAN_OR_EQUAL_TO:"lte",GREATER_THAN:"gt",GREATER_THAN_OR_EQUAL_TO:"gte",BETWEEN:"between",DATE_IS:"dateIs",DATE_IS_NOT:"dateIsNot",DATE_BEFORE:"dateBefore",DATE_AFTER:"dateAfter",CUSTOM:"custom"}),J=B((function e(){U(this,e)}));k(J,"ripple",!1),k(J,"inputStyle","outlined"),k(J,"locale","en"),k(J,"appendTo",null),k(J,"cssTransition",!0),k(J,"autoZIndex",!0),k(J,"hideOverlaysOnDocumentScrolling",!1),k(J,"nonce",null),k(J,"nullSortOrder",1),k(J,"zIndex",{modal:1100,overlay:1e3,menu:1e3,tooltip:1100,toast:1200}),k(J,"pt",void 0),k(J,"filterMatchModeOptions",{text:[W.STARTS_WITH,W.CONTAINS,W.NOT_CONTAINS,W.ENDS_WITH,W.EQUALS,W.NOT_EQUALS],numeric:[W.EQUALS,W.NOT_EQUALS,W.LESS_THAN,W.LESS_THAN_OR_EQUAL_TO,W.GREATER_THAN,W.GREATER_THAN_OR_EQUAL_TO],date:[W.DATE_IS,W.DATE_IS_NOT,W.DATE_BEFORE,W.DATE_AFTER]}),k(J,"changeTheme",(function(e,t,o,n){var r,a=document.getElementById(o);if(!a)throw Error("Element with id ".concat(o," not found."));var s=a.getAttribute("href").replace(e,t),i=document.createElement("link");i.setAttribute("rel","stylesheet"),i.setAttribute("id",o),i.setAttribute("href",s),i.addEventListener("load",(function(){n&&n()})),null===(r=a.parentNode)||void 0===r||r.replaceChild(i,a)}));var Y={en:{accept:"Yes",addRule:"Add Rule",am:"AM",apply:"Apply",cancel:"Cancel",choose:"Choose",chooseDate:"Choose Date",chooseMonth:"Choose Month",chooseYear:"Choose Year",clear:"Clear",completed:"Completed",contains:"Contains",custom:"Custom",dateAfter:"Date is after",dateBefore:"Date is before",dateFormat:"mm/dd/yy",dateIs:"Date is",dateIsNot:"Date is not",dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],emptyFilterMessage:"No results found",emptyMessage:"No available options",emptySearchMessage:"No results found",emptySelectionMessage:"No selected item",endsWith:"Ends with",equals:"Equals",fileSizeTypes:["B","KB","MB","GB","TB","PB","EB","ZB","YB"],filter:"Filter",firstDayOfWeek:0,gt:"Greater than",gte:"Greater than or equal to",lt:"Less than",lte:"Less than or equal to",matchAll:"Match All",matchAny:"Match Any",medium:"Medium",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],nextDecade:"Next Decade",nextHour:"Next Hour",nextMinute:"Next Minute",nextMonth:"Next Month",nextSecond:"Next Second",nextYear:"Next Year",noFilter:"No Filter",notContains:"Not contains",notEquals:"Not equals",now:"Now",passwordPrompt:"Enter a password",pending:"Pending",pm:"PM",prevDecade:"Previous Decade",prevHour:"Previous Hour",prevMinute:"Previous Minute",prevMonth:"Previous Month",prevSecond:"Previous Second",prevYear:"Previous Year",reject:"No",removeRule:"Remove Rule",searchMessage:"{0} results are available",selectionMessage:"{0} items selected",showMonthAfterYear:!1,startsWith:"Starts with",strong:"Strong",today:"Today",upload:"Upload",weak:"Weak",weekHeader:"Wk",aria:{cancelEdit:"Cancel Edit",close:"Close",collapseRow:"Row Collapsed",editRow:"Edit Row",expandRow:"Row Expanded",falseLabel:"False",filterConstraint:"Filter Constraint",filterOperator:"Filter Operator",firstPageLabel:"First Page",gridView:"Grid View",hideFilterMenu:"Hide Filter Menu",jumpToPageDropdownLabel:"Jump to Page Dropdown",jumpToPageInputLabel:"Jump to Page Input",lastPageLabel:"Last Page",listView:"List View",moveAllToSource:"Move All to Source",moveAllToTarget:"Move All to Target",moveBottom:"Move Bottom",moveDown:"Move Down",moveToSource:"Move to Source",moveToTarget:"Move to Target",moveTop:"Move Top",moveUp:"Move Up",navigation:"Navigation",next:"Next",nextPageLabel:"Next Page",nullLabel:"Not Selected",pageLabel:"Page {page}",otpLabel:"Please enter one time password character {0}",passwordHide:"Hide Password",passwordShow:"Show Password",previous:"Previous",previousPageLabel:"Previous Page",rotateLeft:"Rotate Left",rotateRight:"Rotate Right",rowsPerPageLabel:"Rows per page",saveEdit:"Save Edit",scrollTop:"Scroll Top",selectAll:"All items selected",selectRow:"Row Selected",showFilterMenu:"Show Filter Menu",slide:"Slide",slideNumber:"{slideNumber}",star:"1 star",stars:"{star} stars",trueLabel:"True",unselectAll:"All items unselected",unselectRow:"Row Unselected",zoomImage:"Zoom Image",zoomIn:"Zoom In",zoomOut:"Zoom Out"}}};function Q(e,t){if(e.includes("__proto__")||e.includes("prototype"))throw new Error("Unsafe key detected");var o=t||J.locale;try{return Z(o)[e]}catch(t){throw new Error("The ".concat(e," option is not found in the current locale('").concat(o,"')."))}}function Z(e){var t=e||J.locale;if(t.includes("__proto__")||t.includes("prototype"))throw new Error("Unsafe locale detected");return Y[t]}function q(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,n)}return o}function z(e){for(var t=1;t<arguments.length;t++){var o=null!=arguments[t]?arguments[t]:{};t%2?q(Object(o),!0).forEach((function(t){k(e,t,o[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(o)):q(Object(o)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(o,t))}))}return e}var G=e.memo(e.forwardRef((function(t,o){var n=i(),r=t.messageInfo,a=t.ptCallbacks,s=a.ptm,c=a.ptmo,u=a.cx,m=r.message,g=m.severity,w=m.content,T=m.summary,A=m.detail,x=m.closable,O=m.life,M=m.sticky,_=m.className,I=m.style,P=m.contentClassName,R=m.contentStyle,L=m.icon,D=m.closeIcon,j=m.pt,k={index:t.index},H=z(z({},t.metaData),k),F=C(e.useState(!1),2),B=F[1],U=C(l((function(){J()}),O||3e3,!M&&!F[0]),1)[0],W=function(e,o){return s(e,z({hostName:t.hostName},o))},J=function(){U(),t.onClose&&t.onClose(r)},Y=function(e){!t.onClick||d.hasClass(e.target,"p-toast-icon-close")||d.hasClass(e.target,"p-toast-icon-close-icon")||t.onClick(r.message)},Z=function(){if(r){var o=y.getJSXElement(w,{message:r.message,onClick:Y,onClose:J}),a=n({className:u("message.icon")},W("icon",H),c(j,"icon",z(z({},k),{},{hostName:t.hostName}))),s=L;if(!L)switch(g){case"info":s=e.createElement(b,a);break;case"warn":s=e.createElement(v,a);break;case"error":s=e.createElement(N,a);break;case"success":s=e.createElement(h,a)}var i=f.getJSXIcon(s,z({},a),{props:t}),l=n({className:u("message.text")},W("text",H),c(j,"text",z(z({},k),{},{hostName:t.hostName}))),m=n({className:u("message.summary")},W("summary",H),c(j,"summary",z(z({},k),{},{hostName:t.hostName}))),p=n({className:u("message.detail")},W("detail",H),c(j,"detail",z(z({},k),{},{hostName:t.hostName})));return o||e.createElement(e.Fragment,null,i,e.createElement("div",l,e.createElement("span",m,T),A&&e.createElement("div",p,A)))}return null}(),q=function(){var o=n({className:u("message.buttonicon")},W("buttonicon",H),c(j,"buttonicon",z(z({},k),{},{hostName:t.hostName}))),r=f.getJSXIcon(D||e.createElement(E,o),z({},o),{props:t}),a=t.ariaCloseLabel||Q("close"),s=n({type:"button",className:u("message.closeButton"),onClick:J,"aria-label":a},W("closeButton",H),c(j,"closeButton",z(z({},k),{},{hostName:t.hostName})));return!1!==x?e.createElement("div",null,e.createElement("button",s,r,e.createElement(S,null))):null}(),G=n({ref:o,className:p(_,u("message.message",{severity:g})),style:I,role:"alert","aria-live":"assertive","aria-atomic":"true",onClick:Y,onMouseEnter:function(e){t.onMouseEnter&&t.onMouseEnter(e),e.defaultPrevented||M||(U(),B(!0))},onMouseLeave:function(e){t.onMouseLeave&&t.onMouseLeave(e),e.defaultPrevented||M||B(!1)}},W("message",H),c(j,"root",z(z({},k),{},{hostName:t.hostName}))),X=n({className:p(P,u("message.content")),style:R},W("content",H),c(j,"content",z(z({},k),{},{hostName:t.hostName})));return e.createElement("div",G,e.createElement("div",X,Z,q))})));G.displayName="ToastMessage";var X=0,V=e.memo(e.forwardRef((function(r,l){var p=i(),d=e.useContext(n),f=H.getProps(r,d),h=C(e.useState([]),2),v=h[0],b=h[1],E=e.useRef(null),N={props:f,state:{messages:v}},S=H.setMetaData(N);a(H.css.styles,S.isUnstyled,{name:"toast"});var T=function(e){e&&b((function(t){return A(t,e,!0)}))},A=function(e,t,o){var n;if(Array.isArray(t)){var r=t.reduce((function(e,t){return e.push({_pId:X++,message:t}),e}),[]);n=o&&e?[].concat(_(e),_(r)):r}else{var a={_pId:X++,message:t};n=o&&e?[].concat(_(e),[a]):[a]}return n},x=function(){g.clear(E.current),b([])},O=function(e){b((function(t){return A(t,e,!1)}))},M=function(e){var t=e._pId?e._pId:e.message||e;b((function(o){return o.filter((function(o){return o._pId!==e._pId&&!y.deepEquals(o.message,t)}))})),f.onRemove&&f.onRemove(e.message||t)},I=function(e){M(e)},P=function(){f.onShow&&f.onShow()},R=function(){1===v.length&&g.clear(E.current),f.onHide&&f.onHide()};c((function(){g.set("toast",E.current,d&&d.autoZIndex||o.autoZIndex,f.baseZIndex||d&&d.zIndex.toast||o.zIndex.toast)}),[v,f.baseZIndex]),u((function(){g.clear(E.current)})),e.useImperativeHandle(l,(function(){return{props:f,show:T,replace:O,remove:M,clear:x,getElement:function(){return E.current}}}));var L,D,j=(L=p({ref:E,id:f.id,className:S.cx("root",{context:d}),style:S.sx("root")},H.getOtherProps(f),S.ptm("root")),D=p({classNames:S.cx("transition"),timeout:{enter:300,exit:300},options:f.transitionOptions,unmountOnExit:!0,onEntered:P,onExited:R},S.ptm("transition")),e.createElement("div",L,e.createElement(t,null,v&&v.map((function(t,o){var n=e.createRef();return e.createElement(s,w({nodeRef:n,key:t._pId},D),r.content?y.getJSXElement(r.content,{message:t.message}):e.createElement(G,{hostName:"Toast",ref:n,messageInfo:t,index:o,onClick:f.onClick,onClose:I,onMouseEnter:f.onMouseEnter,onMouseLeave:f.onMouseLeave,closeIcon:f.closeIcon,ptCallbacks:S,metaData:N}))})))));return e.createElement(m,{element:j,appendTo:f.appendTo})})));V.displayName="Toast";export{V as Toast};