primereact
Version:
PrimeReact is an open source UI library for React featuring a rich set of 80+ 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) • 7 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("primereact/api"),n=require("primereact/csstransition"),r=require("primereact/hooks"),l=require("primereact/inputtext"),a=require("primereact/overlayservice"),o=require("primereact/portal"),u=require("primereact/utils");function i(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function s(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var c=s(e),p=i(t);function f(){return f=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},f.apply(this,arguments)}function d(e){if(Array.isArray(e))return e}function m(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,l,a=[],o=!0,u=!1;try{for(n=n.call(e);!(o=(r=n.next()).done)&&(a.push(r.value),!t||a.length!==t);o=!0);}catch(e){u=!0,l=e}finally{try{o||null==n.return||n.return()}finally{if(u)throw l}}return a}}function g(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function y(e,t){if(e){if("string"==typeof e)return g(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?g(e,t):void 0}}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 v(e,t){return d(e)||m(e,t)||y(e,t)||b()}var w=c.memo(c.forwardRef((function(e,i){var s=e.promptLabel||t.localeOption("passwordPrompt"),d=e.weakLabel||t.localeOption("weak"),m=e.mediumLabel||t.localeOption("medium"),g=e.strongLabel||t.localeOption("strong"),y=v(c.useState(!1),2),b=y[0],h=y[1],E=v(c.useState(null),2),O=E[0],x=E[1],k=v(c.useState(s),2),R=k[0],S=k[1],j=v(c.useState(!1),2),N=j[0],U=j[1],I=v(c.useState(!1),2),C=I[0],P=I[1],A=c.useRef(null),H=c.useRef(null),L=c.useRef(e.inputRef),T=c.useRef(new RegExp(e.mediumRegex)),q=c.useRef(new RegExp(e.strongRegex)),D=C?"text":"password",M=v(r.useOverlayListener({target:A,overlay:H,listener:function(e,t){t.valid&&V()},when:b}),2),Z=M[0],_=M[1],z=L.current&&L.current.value,F=c.useMemo((function(){return u.ObjectUtils.isNotEmpty(e.value)||u.ObjectUtils.isNotEmpty(e.defaultValue)||u.ObjectUtils.isNotEmpty(z)}),[e.value,e.defaultValue,z]),J=function(){if(O){var e=null;switch(O.strength){case"weak":e=d;break;case"medium":e=m;break;case"strong":e=g}e&&R!==e&&S(e)}else R!==s&&S(s)},K=function(t){e.feedback&&a.OverlayService.emit("overlay-click",{originalEvent:t,target:A.current})},X=function(){P((function(e){return!e}))},B=function(){J(),h(!0)},V=function(){h(!1)},Y=function(){u.ZIndexUtils.set("overlay",H.current,p.default.autoZIndex,p.default.zIndex.overlay),L.current&&u.DomHandler.alignOverlay(H.current,L.current.parentElement,e.appendTo||p.default.appendTo)},$=function(){Z(),e.onShow&&e.onShow()},G=function(){_()},Q=function(){u.ZIndexUtils.clear(H.current),e.onHide&&e.onHide()},W=function(e){return q.current.test(e)?3:T.current.test(e)?2:e.length?1:0};c.useImperativeHandle(i,(function(){return{props:e,getElement:function(){return A.current},getOverlay:function(){return H.current},getInput:function(){return L.current}}})),c.useEffect((function(){u.ObjectUtils.combinedRefs(L,e.inputRef)}),[L,e.inputRef]),c.useEffect((function(){T.current=new RegExp(e.mediumRegex)}),[e.mediumRegex]),c.useEffect((function(){q.current=new RegExp(e.strongRegex)}),[e.strongRegex]),c.useEffect((function(){!F&&u.DomHandler.hasClass(A.current,"p-inputwrapper-filled")&&u.DomHandler.removeClass(A.current,"p-inputwrapper-filled")}),[F]),r.useUnmountEffect((function(){u.ZIndexUtils.clear(H.current)}));var ee,te,ne,re,le,ae,oe,ue=u.classNames("p-password p-component p-inputwrapper",{"p-inputwrapper-filled":F,"p-inputwrapper-focus":N,"p-input-icon-right":e.toggleMask},e.className),ie=u.classNames("p-password-input",e.inputClassName),se=u.ObjectUtils.findDiffKeys(e,w.defaultProps),ce=function(){if(e.toggleMask){var t=C?"pi pi-eye-slash":"pi pi-eye",n=c.createElement("i",{className:t,onClick:X});if(e.icon)n=u.ObjectUtils.getJSXElement(e.icon,{onClick:X,className:t,element:n,props:e});return n}return null}(),pe=(ee=u.classNames("p-password-panel p-component",e.panelClassName),ne=(te=O||{strength:"",width:"0%"}).strength,re=te.width,le=u.ObjectUtils.getJSXElement(e.header,e),ae=u.ObjectUtils.getJSXElement(e.footer,e),oe=e.content?u.ObjectUtils.getJSXElement(e.content,e):c.createElement(c.Fragment,null,c.createElement("div",{className:"p-password-meter"},c.createElement("div",{className:"p-password-strength ".concat(ne),style:{width:re}})),c.createElement("div",{className:"p-password-info ".concat(ne)},R)),c.createElement(o.Portal,{element:c.createElement(n.CSSTransition,{nodeRef:H,classNames:"p-connected-overlay",in:b,timeout:{enter:120,exit:100},options:e.transitionOptions,unmountOnExit:!0,onEnter:Y,onEntered:$,onExit:G,onExited:Q},c.createElement("div",{ref:H,className:ee,style:e.panelStyle,onClick:K},le,oe,ae)),appendTo:e.appendTo}));return c.createElement("div",{ref:A,id:e.id,className:ue,style:e.style},c.createElement(l.InputText,f({ref:L,id:e.inputId},se,{type:D,className:ie,style:e.inputStyle,onFocus:function(t){U(!0),e.feedback&&B(),e.onFocus&&e.onFocus(t)},onBlur:function(t){U(!1),e.feedback&&V(),e.onBlur&&e.onBlur(t)},onKeyUp:function(t){var n=t.keyCode||t.which;if(e.feedback){var r=null,l=null;switch(W(t.target.value)){case 1:r=d,l={strength:"weak",width:"33.33%"};break;case 2:r=m,l={strength:"medium",width:"66.66%"};break;case 3:r=g,l={strength:"strong",width:"100%"};break;default:r=s,l=null}x(l),S(r),n&&!b&&B()}e.onKeyUp&&e.onKeyUp(t)},onInput:function(t,n){e.onInput&&e.onInput(t,n),e.onChange||(u.ObjectUtils.isNotEmpty(t.target.value)?u.DomHandler.addClass(A.current,"p-inputwrapper-filled"):u.DomHandler.removeClass(A.current,"p-inputwrapper-filled"))},tooltip:e.tooltip,tooltipOptions:e.tooltipOptions})),ce,pe)})));w.displayName="Password",w.defaultProps={__TYPE:"Password",id:null,inputId:null,inputRef:null,promptLabel:null,weakLabel:null,mediumLabel:null,strongLabel:null,mediumRegex:"^(((?=.*[a-z])(?=.*[A-Z]))|((?=.*[a-z])(?=.*[0-9]))|((?=.*[A-Z])(?=.*[0-9])))(?=.{6,})",strongRegex:"^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.{8,})",feedback:!0,toggleMask:!1,appendTo:null,header:null,content:null,footer:null,icon:null,tooltip:null,tooltipOptions:null,style:null,className:null,inputStyle:null,inputClassName:null,panelStyle:null,panelClassName:null,transitionOptions:null,onInput:null,onShow:null,onHide:null},exports.Password=w;