import*as e from"react";import t,{useRef as n,useContext as r,Children as o,cloneElement as i}from"react";import a,{PrimeReactContext as l,localeOption as s,ariaLabel as c}from"primereact/api";import{ComponentBase as p,useHandleStyle as u}from"primereact/componentbase";import{CSSTransition as f}from"primereact/csstransition";import{useMergeProps as d,useDisplayOrder as m,useGlobalOnEscapeKey as y,ESC_KEY_HANDLING_PRIORITIES as g,useOverlayListener as b,useUpdateEffect as w,useMountEffect as h,useUnmountEffect as v}from"primereact/hooks";import{classNames as O,DomHandler as P,ObjectUtils as E,ZIndexUtils as x,IconUtils as S}from"primereact/utils";import{EyeIcon as j}from"primereact/icons/eye";import{EyeSlashIcon as I}from"primereact/icons/eyeslash";import{InputText as k}from"primereact/inputtext";import{OverlayService as N}from"primereact/overlayservice";import{Portal as R}from"primereact/portal";function D(){return D=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=Array(t);n0?1:0:0};e.useImperativeHandle(n,(function(){return{props:i,toggleMask:ve,focus:function(){return P.focus(re.current)},getElement:function(){return te.current},getOverlay:function(){return ne.current},getInput:function(){return re.current}}})),e.useEffect((function(){E.combinedRefs(re,i.inputRef)}),[re,i.inputRef]),e.useEffect((function(){oe.current=new RegExp(i.mediumRegex)}),[i.mediumRegex]),e.useEffect((function(){ie.current=new RegExp(i.strongRegex)}),[i.strongRegex]),e.useEffect((function(){!ge&&P.hasClass(te.current,"p-inputwrapper-filled")&&P.removeClass(te.current,"p-inputwrapper-filled")}),[ge]),w((function(){we(i.value)}),[i.value]),h((function(){Ee()})),v((function(){x.clear(ne.current)}));var Ne=function(e){"Enter"!==e.key&&"Space"!==e.code||(ve(),e.preventDefault())},Re=O("p-password p-component p-inputwrapper",{"p-inputwrapper-filled":ge,"p-inputwrapper-focus":V,"p-input-icon-right":i.toggleMask},i.className),De=$.getOtherProps(i),_e=function(){if(!i.toggleMask)return null;var t=r({role:"switch",tabIndex:i.tabIndex||"0",className:pe("hideIcon"),onClick:ve,onKeyDown:Ne,"aria-label":c("passwordHide")||"Hide Password","aria-checked":"false"},ce("hideIcon")),n=r({role:"switch",tabIndex:i.tabIndex||"0",className:pe("showIcon"),onClick:ve,onKeyDown:Ne,"aria-label":c("passwordShow")||"Show Password","aria-checked":"true"},ce("showIcon")),o=S.getJSXIcon(Q?i.hideIcon||e.createElement(I,t):i.showIcon||e.createElement(j,n),G({},Q?t:n),{props:i});i.icon&&(o=E.getJSXElement(i.icon,{onClick:ve,className:Re,element:o,props:i}));return o}(),Me=function(){var t=H||{strength:"",width:"0%"},n=t.strength,a=t.width,l=E.getJSXElement(i.header,i),s=E.getJSXElement(i.footer,i),c=r({className:pe("panel",{context:o}),style:i.panelStyle,onClick:he},ce("panel")),p=r({className:pe("meter")},ce("meter")),u=r({className:pe("meterLabel",{strength:n}),style:{width:a}},ce("meterLabel")),d=r({className:pe("info",{strength:n})},ce("info")),m=i.content?E.getJSXElement(i.content,i):e.createElement(e.Fragment,null,e.createElement("div",p,e.createElement("div",u)),e.createElement("div",d,U)),y=r({classNames:pe("transition"),in:F,timeout:{enter:120,exit:100},options:i.transitionOptions,unmountOnExit:!0,onEnter:xe,onEntered:Se,onExit:je,onExited:Ie},ce("transition")),g=e.createElement(f,D({nodeRef:ne},y),e.createElement("div",D({ref:ne},c),l,m,s));return e.createElement(R,{element:g,appendTo:i.appendTo})}(),Ce=r({ref:te,id:i.id,className:O(i.className,pe("root",{isFilled:ge,focusedState:V})),style:i.style},ce("root")),Te=r(G(G({ref:re,id:i.inputId},De),{},{className:O(i.inputClassName,pe("input")),onBlur:function(e){Y(!1),i.feedback&&Pe(),i.onBlur&&i.onBlur(e)},onFocus:function(e){Y(!0),i.feedback&&Oe(),i.onFocus&&i.onFocus(e)},onInput:function(e,t){i.onInput&&i.onInput(e,t),i.onChange||(E.isNotEmpty(e.target.value)?P.addClass(te.current,"p-inputwrapper-filled"):P.removeClass(te.current,"p-inputwrapper-filled"))},onKeyUp:function(e){var t=e.code;i.feedback&&t&&"Escape"!==t&&!F&&Oe(),i.onKeyUp&&i.onKeyUp(e)},invalid:i.invalid,variant:i.variant,style:i.inputStyle,unstyled:i.unstyled,tabIndex:i.tabIndex||"0",tooltip:i.tooltip,tooltipOptions:i.tooltipOptions,type:ae,value:i.value,__parentMetadata:{parent:le}}),ce("input")),Fe=e.createElement(k,Te);return _e&&(Fe=e.createElement(Z,{className:pe("iconField"),pt:ce("iconField"),__parentMetadata:{parent:le}},Fe,e.createElement(W,{className:pe("inputIcon"),pt:ce("inputIcon"),__parentMetadata:{parent:le}},_e))),e.createElement("div",Ce,Fe,Me)})));Q.displayName="Password";export{Q as Password};