\r\n
{{niceName}} is required.
\r\n
Min value is {{errors.min.min}}.
\r\n
Max value is {{errors.max.max}}.
\r\n
Min length of {{niceName}} is {{errors.minlength.requiredLength}}.
\r\n
Max length of {{niceName}} is {{errors.maxlength.requiredLength}}.
\r\n
{{niceName}} '{{fieldValue}}' does not match the pattern ({{errors.pattern.requiredPattern}}).
\r\n
{{niceName}} does not meet requirements. Click (?)
\r\n
{{niceName}} is not a valid IP.
\r\n
{{niceName}} does not match.
\r\n
{{niceName}} '{{fieldValue}}' is already taken.
\r\n
{{niceName}} of '{{fieldValue}} %' must be between 0 and 100.
\r\n
{{niceName}} of '{{fieldValue}}' must be greater than 0.
\r\n
{{niceName}} '{{fieldValue}}' is not a valid email address.
\r\n
\r\n","import { trigger, transition, style, animate } from '@angular/animations';\nimport * as i1 from '@angular/common';\nimport { isPlatformBrowser, CommonModule } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { Injectable, inject, signal, booleanAttribute, HostListener, Input, Directive, Pipe, forwardRef, EventEmitter, numberAttribute, ContentChildren, ContentChild, ViewChild, Output, ViewEncapsulation, ChangeDetectionStrategy, Component, NgModule } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { addClass, absolutePosition, removeClass, hasClass, isTouchDevice, getOuterWidth, relativePosition } from '@primeuix/utils';\nimport { OverlayService, TranslationKeys, SharedModule, PrimeTemplate } from 'primeng/api';\nimport { AutoFocus } from 'primeng/autofocus';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { DomHandler, ConnectedOverlayScrollHandler } from 'primeng/dom';\nimport { TimesIcon, EyeSlashIcon, EyeIcon } from 'primeng/icons';\nimport { InputText } from 'primeng/inputtext';\nimport { ZIndexUtils } from 'primeng/utils';\nimport { BaseStyle } from 'primeng/base';\nconst _c0 = [\"content\"];\nconst _c1 = [\"footer\"];\nconst _c2 = [\"header\"];\nconst _c3 = [\"clearicon\"];\nconst _c4 = [\"headericon\"];\nconst _c5 = [\"showicon\"];\nconst _c6 = [\"input\"];\nconst _c7 = () => ({\n class: \"p-password-toggle-mask-icon p-password-mask-icon\"\n});\nconst _c8 = (a0, a1) => ({\n showTransitionParams: a0,\n hideTransitionParams: a1\n});\nconst _c9 = a0 => ({\n value: \"visible\",\n params: a0\n});\nconst _c10 = a0 => ({\n width: a0\n});\nfunction Password_ng_container_5_TimesIcon_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r3 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"TimesIcon\", 8);\n i0.ɵɵlistener(\"click\", function Password_ng_container_5_TimesIcon_1_Template_TimesIcon_click_0_listener() {\n i0.ɵɵrestoreView(_r3);\n const ctx_r3 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r3.clear());\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵattribute(\"data-pc-section\", \"clearIcon\");\n }\n}\nfunction Password_ng_container_5_3_ng_template_0_Template(rf, ctx) {}\nfunction Password_ng_container_5_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, Password_ng_container_5_3_ng_template_0_Template, 0, 0, \"ng-template\");\n }\n}\nfunction Password_ng_container_5_Template(rf, ctx) {\n if (rf & 1) {\n const _r2 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, Password_ng_container_5_TimesIcon_1_Template, 1, 1, \"TimesIcon\", 7);\n i0.ɵɵelementStart(2, \"span\", 8);\n i0.ɵɵlistener(\"click\", function Password_ng_container_5_Template_span_click_2_listener() {\n i0.ɵɵrestoreView(_r2);\n const ctx_r3 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r3.clear());\n });\n i0.ɵɵtemplate(3, Password_ng_container_5_3_Template, 1, 0, null, 9);\n i0.ɵɵelementEnd();\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r3 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r3.clearIconTemplate && !ctx_r3._clearIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"data-pc-section\", \"clearIcon\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r3.clearIconTemplate || ctx_r3._clearIconTemplate);\n }\n}\nfunction Password_ng_container_6_ng_container_1_EyeSlashIcon_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r5 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"EyeSlashIcon\", 12);\n i0.ɵɵlistener(\"click\", function Password_ng_container_6_ng_container_1_EyeSlashIcon_1_Template_EyeSlashIcon_click_0_listener() {\n i0.ɵɵrestoreView(_r5);\n const ctx_r3 = i0.ɵɵnextContext(3);\n return i0.ɵɵresetView(ctx_r3.onMaskToggle());\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵattribute(\"data-pc-section\", \"hideIcon\");\n }\n}\nfunction Password_ng_container_6_ng_container_1_span_2_1_ng_template_0_Template(rf, ctx) {}\nfunction Password_ng_container_6_ng_container_1_span_2_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, Password_ng_container_6_ng_container_1_span_2_1_ng_template_0_Template, 0, 0, \"ng-template\");\n }\n}\nfunction Password_ng_container_6_ng_container_1_span_2_Template(rf, ctx) {\n if (rf & 1) {\n const _r6 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"span\", 13);\n i0.ɵɵlistener(\"click\", function Password_ng_container_6_ng_container_1_span_2_Template_span_click_0_listener() {\n i0.ɵɵrestoreView(_r6);\n const ctx_r3 = i0.ɵɵnextContext(3);\n return i0.ɵɵresetView(ctx_r3.onMaskToggle());\n });\n i0.ɵɵtemplate(1, Password_ng_container_6_ng_container_1_span_2_1_Template, 1, 0, null, 14);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r3 = i0.ɵɵnextContext(3);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r3.hideIconTemplate || ctx_r3._hideIconTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction0(2, _c7));\n }\n}\nfunction Password_ng_container_6_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, Password_ng_container_6_ng_container_1_EyeSlashIcon_1_Template, 1, 1, \"EyeSlashIcon\", 10)(2, Password_ng_container_6_ng_container_1_span_2_Template, 2, 3, \"span\", 11);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r3 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r3.hideIconTemplate && !ctx_r3._hideIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r3.hideIconTemplate || ctx_r3._hideIconTemplate);\n }\n}\nfunction Password_ng_container_6_ng_container_2_EyeIcon_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r7 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"EyeIcon\", 12);\n i0.ɵɵlistener(\"click\", function Password_ng_container_6_ng_container_2_EyeIcon_1_Template_EyeIcon_click_0_listener() {\n i0.ɵɵrestoreView(_r7);\n const ctx_r3 = i0.ɵɵnextContext(3);\n return i0.ɵɵresetView(ctx_r3.onMaskToggle());\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵattribute(\"data-pc-section\", \"showIcon\");\n }\n}\nfunction Password_ng_container_6_ng_container_2_span_2_1_ng_template_0_Template(rf, ctx) {}\nfunction Password_ng_container_6_ng_container_2_span_2_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, Password_ng_container_6_ng_container_2_span_2_1_ng_template_0_Template, 0, 0, \"ng-template\");\n }\n}\nfunction Password_ng_container_6_ng_container_2_span_2_Template(rf, ctx) {\n if (rf & 1) {\n const _r8 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"span\", 13);\n i0.ɵɵlistener(\"click\", function Password_ng_container_6_ng_container_2_span_2_Template_span_click_0_listener() {\n i0.ɵɵrestoreView(_r8);\n const ctx_r3 = i0.ɵɵnextContext(3);\n return i0.ɵɵresetView(ctx_r3.onMaskToggle());\n });\n i0.ɵɵtemplate(1, Password_ng_container_6_ng_container_2_span_2_1_Template, 1, 0, null, 9);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r3 = i0.ɵɵnextContext(3);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r3.showIconTemplate || ctx_r3._showIconTemplate);\n }\n}\nfunction Password_ng_container_6_ng_container_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, Password_ng_container_6_ng_container_2_EyeIcon_1_Template, 1, 1, \"EyeIcon\", 10)(2, Password_ng_container_6_ng_container_2_span_2_Template, 2, 1, \"span\", 11);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r3 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r3.showIconTemplate && !ctx_r3._showIconTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r3.showIconTemplate || ctx_r3._showIconTemplate);\n }\n}\nfunction Password_ng_container_6_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, Password_ng_container_6_ng_container_1_Template, 3, 2, \"ng-container\", 5)(2, Password_ng_container_6_ng_container_2_Template, 3, 2, \"ng-container\", 5);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r3 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r3.unmasked);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r3.unmasked);\n }\n}\nfunction Password_div_7_ng_container_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0);\n }\n}\nfunction Password_div_7_ng_container_3_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0);\n }\n}\nfunction Password_div_7_ng_container_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, Password_div_7_ng_container_3_ng_container_1_Template, 1, 0, \"ng-container\", 9);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r3 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r3.contentTemplate || ctx_r3._contentTemplate);\n }\n}\nfunction Password_div_7_ng_template_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 17)(1, \"div\", 18);\n i0.ɵɵelement(2, \"div\", 3);\n i0.ɵɵpipe(3, \"mapper\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(4, \"div\", 19);\n i0.ɵɵtext(5);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r3 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"data-pc-section\", \"meter\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngClass\", i0.ɵɵpipeBind2(3, 6, ctx_r3.meter, ctx_r3.strengthClass))(\"ngStyle\", i0.ɵɵpureFunction1(9, _c10, ctx_r3.meter ? ctx_r3.meter.width : \"\"));\n i0.ɵɵattribute(\"data-pc-section\", \"meterLabel\");\n i0.ɵɵadvance(2);\n i0.ɵɵattribute(\"data-pc-section\", \"info\");\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r3.infoText);\n }\n}\nfunction Password_div_7_ng_container_6_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0);\n }\n}\nfunction Password_div_7_Template(rf, ctx) {\n if (rf & 1) {\n const _r9 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 15, 1);\n i0.ɵɵlistener(\"click\", function Password_div_7_Template_div_click_0_listener($event) {\n i0.ɵɵrestoreView(_r9);\n const ctx_r3 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r3.onOverlayClick($event));\n })(\"@overlayAnimation.start\", function Password_div_7_Template_div_animation_overlayAnimation_start_0_listener($event) {\n i0.ɵɵrestoreView(_r9);\n const ctx_r3 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r3.onAnimationStart($event));\n })(\"@overlayAnimation.done\", function Password_div_7_Template_div_animation_overlayAnimation_done_0_listener($event) {\n i0.ɵɵrestoreView(_r9);\n const ctx_r3 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r3.onAnimationEnd($event));\n });\n i0.ɵɵtemplate(2, Password_div_7_ng_container_2_Template, 1, 0, \"ng-container\", 9)(3, Password_div_7_ng_container_3_Template, 2, 1, \"ng-container\", 16)(4, Password_div_7_ng_template_4_Template, 6, 11, \"ng-template\", null, 2, i0.ɵɵtemplateRefExtractor)(6, Password_div_7_ng_container_6_Template, 1, 0, \"ng-container\", 9);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const content_r10 = i0.ɵɵreference(5);\n const ctx_r3 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"@overlayAnimation\", i0.ɵɵpureFunction1(9, _c9, i0.ɵɵpureFunction2(6, _c8, ctx_r3.showTransitionOptions, ctx_r3.hideTransitionOptions)));\n i0.ɵɵattribute(\"data-pc-section\", \"panel\");\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r3.headerTemplate || ctx_r3._headerTemplate);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r3.contentTemplate || ctx_r3._contentTemplate)(\"ngIfElse\", content_r10);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r3.footerTemplate || ctx_r3._footerTemplate);\n }\n}\nconst theme = ({\n dt\n}) => `\n.p-password {\n display: inline-flex;\n position: relative;\n}\n\n.p-password .p-password-overlay {\n min-width: 100%;\n}\n\n.p-password-meter {\n height: ${dt('password.meter.height')};\n background: ${dt('password.meter.background')};\n border-radius: ${dt('password.meter.border.radius')};\n}\n\n.p-password-meter-label {\n height: 100%;\n width: 0;\n transition: width 1s ease-in-out;\n border-radius: ${dt('password.meter.border.radius')};\n}\n\n.p-password-meter-weak {\n background: ${dt('password.strength.weak.background')};\n}\n\n.p-password-meter-medium {\n background: ${dt('password.strength.medium.background')};\n}\n\n.p-password-meter-strong {\n background: ${dt('password.strength.strong.background')};\n}\n\n.p-password-fluid {\n display: flex;\n}\n\n.p-password-fluid .p-password-input {\n width: 100%;\n}\n\n.p-password-input::-ms-reveal,\n.p-password-input::-ms-clear {\n display: none;\n}\n\n.p-password-overlay {\n position: absolute;\n padding: ${dt('password.overlay.padding')};\n background: ${dt('password.overlay.background')};\n color: ${dt('password.overlay.color')};\n border: 1px solid ${dt('password.overlay.border.color')};\n box-shadow: ${dt('password.overlay.shadow')};\n border-radius: ${dt('password.overlay.border.radius')};\n}\n\n.p-password-content {\n display: flex;\n flex-direction: column;\n gap: ${dt('password.content.gap')};\n}\n\n.p-password-toggle-mask-icon {\n inset-inline-end: ${dt('form.field.padding.x')};\n color: ${dt('password.icon.color')};\n position: absolute;\n top: 50%;\n margin-top: calc(-1 * calc(${dt('icon.size')} / 2));\n width: ${dt('icon.size')};\n height: ${dt('icon.size')};\n}\n\n.p-password:has(.p-password-toggle-mask-icon) .p-password-input {\n padding-inline-end: calc((${dt('form.field.padding.x')} * 2) + ${dt('icon.size')});\n}\n\n/* For PrimeNG */\np-password.ng-invalid.ng-dirty .p-inputtext {\n border-color: ${dt('inputtext.invalid.border.color')};\n}\n\np-password.ng-invalid.ng-dirty .p-inputtext:enabled:focus {\n border-color: ${dt('inputtext.focus.border.color')};\n}\n\np-password.ng-invalid.ng-dirty .p-inputtext::placeholder {\n color: ${dt('inputtext.invalid.placeholder.color')};\n}\n\n.p-password-clear-icon {\n position: absolute;\n top: 50%;\n margin-top: -0.5rem;\n cursor: pointer;\n inset-inline-end: ${dt('form.field.padding.x')};\n color: ${dt('form.field.icon.color')};\n}\n\n.p-password-fluid-directive {\n width:100%\n}\n`;\nconst inlineStyles = {\n root: ({\n instance\n }) => ({\n position: instance.appendTo === 'self' ? 'relative' : undefined\n })\n};\nconst classes = {\n root: ({\n instance\n }) => ({\n 'p-password p-component p-inputwrapper': true,\n 'p-inputwrapper-filled': instance.filled(),\n 'p-variant-filled': 'instance.variant === \"filled\" || instance.config.inputVariant() === \"filled\" || instance.config.inputStyle() === \"filled\"',\n 'p-inputwrapper-focus': instance.focused,\n 'p-password-fluid': instance.hasFluid\n }),\n pcInput: 'p-password-input',\n maskIcon: 'p-password-toggle-mask-icon p-password-mask-icon',\n unmaskIcon: 'p-password-toggle-mask-icon p-password-unmask-icon',\n overlay: 'p-password-overlay p-component',\n content: 'p-password-content',\n meter: 'p-password-meter',\n meterLabel: ({\n instance\n }) => `p-password-meter-label ${instance.meter ? 'p-password-meter-' + instance.meter.strength : ''}`,\n meterText: 'p-password-meter-text'\n};\nclass PasswordStyle extends BaseStyle {\n name = 'password';\n theme = theme;\n classes = classes;\n inlineStyles = inlineStyles;\n static ɵfac = /* @__PURE__ */(() => {\n let ɵPasswordStyle_BaseFactory;\n return function PasswordStyle_Factory(__ngFactoryType__) {\n return (ɵPasswordStyle_BaseFactory || (ɵPasswordStyle_BaseFactory = i0.ɵɵgetInheritedFactory(PasswordStyle)))(__ngFactoryType__ || PasswordStyle);\n };\n })();\n static ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: PasswordStyle,\n factory: PasswordStyle.ɵfac\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(PasswordStyle, [{\n type: Injectable\n }], null, null);\n})();\n/**\n *\n * Password displays strength indicator for password fields.\n *\n * [Live Demo](https://www.primeng.org/password/)\n *\n * @module passwordstyle\n *\n */\nvar PasswordClasses;\n(function (PasswordClasses) {\n /**\n * Class name of the root element\n */\n PasswordClasses[\"root\"] = \"p-password\";\n /**\n * Class name of the pt input element\n */\n PasswordClasses[\"pcInput\"] = \"p-password-input\";\n /**\n * Class name of the mask icon element\n */\n PasswordClasses[\"maskIcon\"] = \"p-password-mask-icon\";\n /**\n * Class name of the unmask icon element\n */\n PasswordClasses[\"unmaskIcon\"] = \"p-password-unmask-icon\";\n /**\n * Class name of the overlay element\n */\n PasswordClasses[\"overlay\"] = \"p-password-overlay\";\n /**\n * Class name of the meter element\n */\n PasswordClasses[\"meter\"] = \"p-password-meter\";\n /**\n * Class name of the meter label element\n */\n PasswordClasses[\"meterLabel\"] = \"p-password-meter-label\";\n /**\n * Class name of the meter text element\n */\n PasswordClasses[\"meterText\"] = \"p-password-meter-text\";\n})(PasswordClasses || (PasswordClasses = {}));\n\n/**\n * Password directive.\n * @group Components\n */\n// strengthClass(meter: any) {\n// return `p-password-meter-label p-password-meter${meter?.strength ? `-${meter.strength}` : ''}`;\n// }\nclass PasswordDirective extends BaseComponent {\n zone;\n /**\n * Text to prompt password entry. Defaults to PrimeNG I18N API configuration.\n * @group Props\n */\n promptLabel = 'Enter a password';\n /**\n * Text for a weak password. Defaults to PrimeNG I18N API configuration.\n * @group Props\n */\n weakLabel = 'Weak';\n /**\n * Text for a medium password. Defaults to PrimeNG I18N API configuration.\n * @group Props\n */\n mediumLabel = 'Medium';\n /**\n * Text for a strong password. Defaults to PrimeNG I18N API configuration.\n * @group Props\n */\n strongLabel = 'Strong';\n /**\n * Whether to show the strength indicator or not.\n * @group Props\n */\n feedback = true;\n /**\n * Sets the visibility of the password field.\n * @group Props\n */\n set showPassword(show) {\n this.el.nativeElement.type = show ? 'text' : 'password';\n }\n /**\n * Specifies the input variant of the component.\n * @group Props\n */\n variant;\n /**\n * Spans 100% width of the container when enabled.\n * @group Props\n */\n fluid = false;\n panel;\n meter;\n info;\n filled;\n content;\n label;\n scrollHandler;\n documentResizeListener;\n _componentStyle = inject(PasswordStyle);\n get hasFluid() {\n const nativeElement = this.el.nativeElement;\n const fluidComponent = nativeElement.closest('p-fluid');\n return this.fluid || !!fluidComponent;\n }\n constructor(zone) {\n super();\n this.zone = zone;\n }\n ngDoCheck() {\n this.updateFilledState();\n }\n onInput(e) {\n this.updateFilledState();\n }\n updateFilledState() {\n this.filled = this.el.nativeElement.value && this.el.nativeElement.value.length;\n }\n createPanel() {\n if (isPlatformBrowser(this.platformId)) {\n this.panel = this.renderer.createElement('div');\n this.renderer.addClass(this.panel, 'p-password-overlay');\n this.renderer.addClass(this.panel, 'p-component');\n this.content = this.renderer.createElement('div');\n this.renderer.addClass(this.content, 'p-password-content');\n this.renderer.appendChild(this.panel, this.content);\n this.meter = this.renderer.createElement('div');\n this.renderer.addClass(this.meter, 'p-password-meter');\n this.renderer.appendChild(this.content, this.meter);\n this.label = this.renderer.createElement('div');\n this.renderer.addClass(this.label, 'p-password-meter-label');\n this.renderer.appendChild(this.meter, this.label);\n this.info = this.renderer.createElement('div');\n this.renderer.addClass(this.info, 'p-password-meter-text');\n this.renderer.setProperty(this.info, 'textContent', this.promptLabel);\n this.renderer.appendChild(this.content, this.info);\n this.renderer.setStyle(this.panel, 'minWidth', `${this.el.nativeElement.offsetWidth}px`);\n this.renderer.appendChild(document.body, this.panel);\n this.updateMeter();\n }\n }\n showOverlay() {\n if (this.feedback) {\n if (!this.panel) {\n this.createPanel();\n }\n this.renderer.setStyle(this.panel, 'zIndex', String(++DomHandler.zindex));\n this.renderer.setStyle(this.panel, 'display', 'block');\n this.zone.runOutsideAngular(() => {\n setTimeout(() => {\n addClass(this.panel, 'p-connected-overlay-visible');\n this.bindScrollListener();\n this.bindDocumentResizeListener();\n }, 1);\n });\n absolutePosition(this.panel, this.el.nativeElement);\n }\n }\n hideOverlay() {\n if (this.feedback && this.panel) {\n addClass(this.panel, 'p-connected-overlay-hidden');\n removeClass(this.panel, 'p-connected-overlay-visible');\n this.unbindScrollListener();\n this.unbindDocumentResizeListener();\n this.zone.runOutsideAngular(() => {\n setTimeout(() => {\n this.ngOnDestroy();\n }, 150);\n });\n }\n }\n onFocus() {\n this.showOverlay();\n }\n onBlur() {\n this.hideOverlay();\n }\n labelSignal = signal('');\n onKeyup(e) {\n if (this.feedback) {\n let value = e.target.value,\n label = null,\n meterPos = null;\n if (value.length === 0) {\n label = this.promptLabel;\n meterPos = '0px 0px';\n } else {\n var score = this.testStrength(value);\n if (score < 30) {\n label = this.weakLabel;\n meterPos = '0px -10px';\n } else if (score >= 30 && score < 80) {\n label = this.mediumLabel;\n meterPos = '0px -20px';\n } else if (score >= 80) {\n label = this.strongLabel;\n meterPos = '0px -30px';\n }\n this.labelSignal.set(label);\n this.updateMeter();\n }\n if (!this.panel || !hasClass(this.panel, 'p-connected-overlay-visible')) {\n this.showOverlay();\n }\n this.renderer.setStyle(this.meter, 'backgroundPosition', meterPos);\n this.info.textContent = label;\n }\n }\n updateMeter() {\n if (this.labelSignal()) {\n const label = this.labelSignal();\n const strengthClass = this.strengthClass(label.toLowerCase());\n const width = this.getWidth(label.toLowerCase());\n this.renderer.addClass(this.meter, strengthClass);\n this.renderer.setStyle(this.meter, 'width', width);\n this.info.textContent = label;\n }\n }\n getWidth(label) {\n return label === 'weak' ? '33.33%' : label === 'medium' ? '66.66%' : label === 'strong' ? '100%' : '';\n }\n strengthClass(label) {\n return `p-password-meter${label ? `-${label}` : ''}`;\n }\n testStrength(str) {\n let grade = 0;\n let val;\n val = str.match('[0-9]');\n grade += this.normalize(val ? val.length : 1 / 4, 1) * 25;\n val = str.match('[a-zA-Z]');\n grade += this.normalize(val ? val.length : 1 / 2, 3) * 10;\n val = str.match('[!@#$%^&*?_~.,;=]');\n grade += this.normalize(val ? val.length : 1 / 6, 1) * 35;\n val = str.match('[A-Z]');\n grade += this.normalize(val ? val.length : 1 / 6, 1) * 30;\n grade *= str.length / 8;\n return grade > 100 ? 100 : grade;\n }\n normalize(x, y) {\n let diff = x - y;\n if (diff <= 0) return x / y;else return 1 + 0.5 * (x / (x + y / 4));\n }\n get disabled() {\n return this.el.nativeElement.disabled;\n }\n bindScrollListener() {\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.el.nativeElement, () => {\n if (hasClass(this.panel, 'p-connected-overlay-visible')) {\n this.hideOverlay();\n }\n });\n }\n this.scrollHandler.bindScrollListener();\n }\n unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n }\n bindDocumentResizeListener() {\n if (isPlatformBrowser(this.platformId)) {\n if (!this.documentResizeListener) {\n const window = this.document.defaultView;\n this.documentResizeListener = this.renderer.listen(window, 'resize', this.onWindowResize.bind(this));\n }\n }\n }\n unbindDocumentResizeListener() {\n if (this.documentResizeListener) {\n this.documentResizeListener();\n this.documentResizeListener = null;\n }\n }\n onWindowResize() {\n if (!isTouchDevice()) {\n this.hideOverlay();\n }\n }\n ngOnDestroy() {\n if (this.panel) {\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n this.unbindDocumentResizeListener();\n this.renderer.removeChild(this.document.body, this.panel);\n this.panel = null;\n this.meter = null;\n this.info = null;\n }\n super.ngOnDestroy();\n }\n static ɵfac = function PasswordDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || PasswordDirective)(i0.ɵɵdirectiveInject(i0.NgZone));\n };\n static ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: PasswordDirective,\n selectors: [[\"\", \"pPassword\", \"\"]],\n hostAttrs: [1, \"p-password\", \"p-inputtext\", \"p-component\", \"p-inputwrapper\"],\n hostVars: 6,\n hostBindings: function PasswordDirective_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"input\", function PasswordDirective_input_HostBindingHandler($event) {\n return ctx.onInput($event);\n })(\"focus\", function PasswordDirective_focus_HostBindingHandler() {\n return ctx.onFocus();\n })(\"blur\", function PasswordDirective_blur_HostBindingHandler() {\n return ctx.onBlur();\n })(\"keyup\", function PasswordDirective_keyup_HostBindingHandler($event) {\n return ctx.onKeyup($event);\n });\n }\n if (rf & 2) {\n i0.ɵɵclassProp(\"p-inputwrapper-filled\", ctx.filled)(\"p-variant-filled\", ctx.variant === \"filled\" || ctx.config.inputStyle() === \"filled\" || ctx.config.inputVariant() === \"filled\")(\"p-password-fluid-directive\", ctx.hasFluid);\n }\n },\n inputs: {\n promptLabel: \"promptLabel\",\n weakLabel: \"weakLabel\",\n mediumLabel: \"mediumLabel\",\n strongLabel: \"strongLabel\",\n feedback: [2, \"feedback\", \"feedback\", booleanAttribute],\n showPassword: \"showPassword\",\n variant: \"variant\",\n fluid: [2, \"fluid\", \"fluid\", booleanAttribute]\n },\n features: [i0.ɵɵProvidersFeature([PasswordStyle]), i0.ɵɵInheritDefinitionFeature]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(PasswordDirective, [{\n type: Directive,\n args: [{\n selector: '[pPassword]',\n standalone: true,\n host: {\n class: 'p-password p-inputtext p-component p-inputwrapper',\n '[class.p-inputwrapper-filled]': 'filled',\n '[class.p-variant-filled]': 'variant === \"filled\" || config.inputStyle() === \"filled\" || config.inputVariant() === \"filled\"',\n '[class.p-password-fluid-directive]': 'hasFluid'\n },\n providers: [PasswordStyle]\n }]\n }], () => [{\n type: i0.NgZone\n }], {\n promptLabel: [{\n type: Input\n }],\n weakLabel: [{\n type: Input\n }],\n mediumLabel: [{\n type: Input\n }],\n strongLabel: [{\n type: Input\n }],\n feedback: [{\n type: Input,\n args: [{\n transform: booleanAttribute\n }]\n }],\n showPassword: [{\n type: Input\n }],\n variant: [{\n type: Input\n }],\n fluid: [{\n type: Input,\n args: [{\n transform: booleanAttribute\n }]\n }],\n onInput: [{\n type: HostListener,\n args: ['input', ['$event']]\n }],\n onFocus: [{\n type: HostListener,\n args: ['focus']\n }],\n onBlur: [{\n type: HostListener,\n args: ['blur']\n }],\n onKeyup: [{\n type: HostListener,\n args: ['keyup', ['$event']]\n }]\n });\n})();\nclass MapperPipe {\n transform(value, mapper, ...args) {\n return mapper(value, ...args);\n }\n static ɵfac = function MapperPipe_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MapperPipe)();\n };\n static ɵpipe = /* @__PURE__ */i0.ɵɵdefinePipe({\n name: \"mapper\",\n type: MapperPipe,\n pure: true\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MapperPipe, [{\n type: Pipe,\n args: [{\n name: 'mapper',\n pure: true,\n standalone: true\n }]\n }], null, null);\n})();\nconst Password_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => Password),\n multi: true\n};\n/**\n * Password displays strength indicator for password fields.\n * @group Components\n */\nclass Password extends BaseComponent {\n /**\n * Defines a string that labels the input for accessibility.\n * @group Props\n */\n ariaLabel;\n /**\n * Whether the component should span the full width of its parent.\n * @group Props\n */\n fluid;\n /**\n * Specifies one or more IDs in the DOM that labels the input field.\n * @group Props\n */\n ariaLabelledBy;\n /**\n * Label of the input for accessibility.\n * @group Props\n */\n label;\n /**\n * Indicates whether the component is disabled or not.\n * @group Props\n */\n disabled;\n /**\n * Text to prompt password entry. Defaults to PrimeNG I18N API configuration.\n * @group Props\n */\n promptLabel;\n /**\n * Regex value for medium regex.\n * @group Props\n */\n mediumRegex = '^(((?=.*[a-z])(?=.*[A-Z]))|((?=.*[a-z])(?=.*[0-9]))|((?=.*[A-Z])(?=.*[0-9])))(?=.{6,})';\n /**\n * Regex value for strong regex.\n * @group Props\n */\n strongRegex = '^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.{8,})';\n /**\n * Text for a weak password. Defaults to PrimeNG I18N API configuration.\n * @group Props\n */\n weakLabel;\n /**\n * Text for a medium password. Defaults to PrimeNG I18N API configuration.\n * @group Props\n */\n mediumLabel;\n /**\n * specifies the maximum number of characters allowed in the input element.\n * @group Props\n */\n maxLength;\n /**\n * Text for a strong password. Defaults to PrimeNG I18N API configuration.\n * @group Props\n */\n strongLabel;\n /**\n * Identifier of the accessible input element.\n * @group Props\n */\n inputId;\n /**\n * Whether to show the strength indicator or not.\n * @group Props\n */\n feedback = true;\n /**\n * Id of the element or \"body\" for document where the overlay should be appended to.\n * @group Props\n */\n appendTo;\n /**\n * Whether to show an icon to display the password as plain text.\n * @group Props\n */\n toggleMask;\n /**\n * Defines the size of the component.\n * @group Props\n */\n size;\n /**\n * Style class of the input field.\n * @group Props\n */\n inputStyleClass;\n /**\n * Style class of the element.\n * @group Props\n */\n styleClass;\n /**\n * Inline style of the component.\n * @group Props\n */\n style;\n /**\n * Inline style of the input field.\n * @group Props\n */\n inputStyle;\n /**\n * Transition options of the show animation.\n * @group Props\n */\n showTransitionOptions = '.12s cubic-bezier(0, 0, 0.2, 1)';\n /**\n * Transition options of the hide animation.\n * @group Props\n */\n hideTransitionOptions = '.1s linear';\n /**\n * Specify automated assistance in filling out password by browser.\n * @group Props\n */\n autocomplete;\n /**\n * Advisory information to display on input.\n * @group Props\n */\n placeholder;\n /**\n * When enabled, a clear icon is displayed to clear the value.\n * @group Props\n */\n showClear = false;\n /**\n * When present, it specifies that the component should automatically get focus on load.\n * @group Props\n */\n autofocus;\n /**\n * Specifies the input variant of the component.\n * @group Props\n */\n variant;\n /**\n * Index of the element in tabbing order.\n * @group Props\n */\n tabindex;\n /**\n * Callback to invoke when the component receives focus.\n * @param {Event} event - Browser event.\n * @group Emits\n */\n onFocus = new EventEmitter();\n /**\n * Callback to invoke when the component loses focus.\n * @param {Event} event - Browser event.\n * @group Emits\n */\n onBlur = new EventEmitter();\n /**\n * Callback to invoke when clear button is clicked.\n * @group Emits\n */\n onClear = new EventEmitter();\n input;\n contentTemplate;\n footerTemplate;\n headerTemplate;\n clearIconTemplate;\n hideIconTemplate;\n showIconTemplate;\n templates;\n _contentTemplate;\n _footerTemplate;\n _headerTemplate;\n _clearIconTemplate;\n _hideIconTemplate;\n _showIconTemplate;\n overlayVisible = false;\n meter;\n infoText;\n focused = false;\n unmasked = false;\n mediumCheckRegExp;\n strongCheckRegExp;\n resizeListener;\n scrollHandler;\n overlay;\n value = null;\n onModelChange = () => {};\n onModelTouched = () => {};\n translationSubscription;\n _componentStyle = inject(PasswordStyle);\n get hasFluid() {\n const nativeElement = this.el.nativeElement;\n const fluidComponent = nativeElement.closest('p-fluid');\n return this.fluid || !!fluidComponent;\n }\n overlayService = inject(OverlayService);\n ngOnInit() {\n super.ngOnInit();\n this.infoText = this.promptText();\n this.mediumCheckRegExp = new RegExp(this.mediumRegex);\n this.strongCheckRegExp = new RegExp(this.strongRegex);\n this.translationSubscription = this.config.translationObserver.subscribe(() => {\n this.updateUI(this.value || '');\n });\n }\n ngAfterContentInit() {\n this.templates.forEach(item => {\n switch (item.getType()) {\n case 'content':\n this._contentTemplate = item.template;\n break;\n case 'header':\n this._headerTemplate = item.template;\n break;\n case 'footer':\n this._footerTemplate = item.template;\n break;\n case 'clearicon':\n this._clearIconTemplate = item.template;\n break;\n case 'hideicon':\n this._hideIconTemplate = item.template;\n break;\n case 'showicon':\n this._showIconTemplate = item.template;\n break;\n default:\n this._contentTemplate = item.template;\n break;\n }\n });\n }\n onAnimationStart(event) {\n switch (event.toState) {\n case 'visible':\n this.overlay = event.element;\n ZIndexUtils.set('overlay', this.overlay, this.config.zIndex.overlay);\n this.appendContainer();\n this.alignOverlay();\n this.bindScrollListener();\n this.bindResizeListener();\n break;\n case 'void':\n this.unbindScrollListener();\n this.unbindResizeListener();\n this.overlay = null;\n break;\n }\n }\n onAnimationEnd(event) {\n switch (event.toState) {\n case 'void':\n ZIndexUtils.clear(event.element);\n break;\n }\n }\n appendContainer() {\n if (this.appendTo) {\n if (this.appendTo === 'body') this.renderer.appendChild(this.document.body, this.overlay);else this.document.getElementById(this.appendTo).appendChild(this.overlay);\n }\n }\n alignOverlay() {\n if (this.appendTo) {\n this.overlay.style.minWidth = getOuterWidth(this.input.nativeElement) + 'px';\n absolutePosition(this.overlay, this.input.nativeElement);\n } else {\n relativePosition(this.overlay, this.input.nativeElement);\n }\n }\n onInput(event) {\n this.value = event.target.value;\n this.onModelChange(this.value);\n }\n onInputFocus(event) {\n this.focused = true;\n if (this.feedback) {\n this.overlayVisible = true;\n }\n this.onFocus.emit(event);\n }\n onInputBlur(event) {\n this.focused = false;\n if (this.feedback) {\n this.overlayVisible = false;\n }\n this.onModelTouched();\n this.onBlur.emit(event);\n }\n onKeyUp(event) {\n if (this.feedback) {\n let value = event.target.value;\n this.updateUI(value);\n if (event.code === 'Escape') {\n this.overlayVisible && (this.overlayVisible = false);\n return;\n }\n if (!this.overlayVisible) {\n this.overlayVisible = true;\n }\n }\n }\n updateUI(value) {\n let label = null;\n let meter = null;\n switch (this.testStrength(value)) {\n case 1:\n label = this.weakText();\n meter = {\n strength: 'weak',\n width: '33.33%'\n };\n break;\n case 2:\n label = this.mediumText();\n meter = {\n strength: 'medium',\n width: '66.66%'\n };\n break;\n case 3:\n label = this.strongText();\n meter = {\n strength: 'strong',\n width: '100%'\n };\n break;\n default:\n label = this.promptText();\n meter = null;\n break;\n }\n this.meter = meter;\n this.infoText = label;\n }\n onMaskToggle() {\n this.unmasked = !this.unmasked;\n }\n onOverlayClick(event) {\n this.overlayService.add({\n originalEvent: event,\n target: this.el.nativeElement\n });\n }\n testStrength(str) {\n let level = 0;\n if (this.strongCheckRegExp.test(str)) level = 3;else if (this.mediumCheckRegExp.test(str)) level = 2;else if (str.length) level = 1;\n return level;\n }\n writeValue(value) {\n if (value === undefined) this.value = null;else this.value = value;\n if (this.feedback) this.updateUI(this.value || '');\n this.cd.markForCheck();\n }\n registerOnChange(fn) {\n this.onModelChange = fn;\n }\n registerOnTouched(fn) {\n this.onModelTouched = fn;\n }\n setDisabledState(val) {\n this.disabled = val;\n this.cd.markForCheck();\n }\n bindScrollListener() {\n if (isPlatformBrowser(this.platformId)) {\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.input.nativeElement, () => {\n if (this.overlayVisible) {\n this.overlayVisible = false;\n }\n });\n }\n this.scrollHandler.bindScrollListener();\n }\n }\n bindResizeListener() {\n if (isPlatformBrowser(this.platformId)) {\n if (!this.resizeListener) {\n const window = this.document.defaultView;\n this.resizeListener = this.renderer.listen(window, 'resize', () => {\n if (this.overlayVisible && !isTouchDevice()) {\n this.overlayVisible = false;\n }\n });\n }\n }\n }\n unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n }\n unbindResizeListener() {\n if (this.resizeListener) {\n this.resizeListener();\n this.resizeListener = null;\n }\n }\n containerClass(toggleMask) {\n return {\n 'p-password p-component p-inputwrapper': true,\n 'p-input-icon-right': toggleMask\n };\n }\n get rootClass() {\n return this._componentStyle.classes.root({\n instance: this\n });\n }\n inputFieldClass(disabled) {\n return {\n 'p-password-input': true,\n 'p-disabled': disabled\n };\n }\n strengthClass(meter) {\n return `p-password-meter-label p-password-meter${meter?.strength ? `-${meter.strength}` : ''}`;\n }\n filled() {\n return this.value != null && this.value.toString().length > 0;\n }\n promptText() {\n return this.promptLabel || this.getTranslation(TranslationKeys.PASSWORD_PROMPT);\n }\n weakText() {\n return this.weakLabel || this.getTranslation(TranslationKeys.WEAK);\n }\n mediumText() {\n return this.mediumLabel || this.getTranslation(TranslationKeys.MEDIUM);\n }\n strongText() {\n return this.strongLabel || this.getTranslation(TranslationKeys.STRONG);\n }\n restoreAppend() {\n if (this.overlay && this.appendTo) {\n if (this.appendTo === 'body') this.renderer.removeChild(this.document.body, this.overlay);else this.document.getElementById(this.appendTo).removeChild(this.overlay);\n }\n }\n inputType(unmasked) {\n return unmasked ? 'text' : 'password';\n }\n getTranslation(option) {\n return this.config.getTranslation(option);\n }\n clear() {\n this.value = null;\n this.onModelChange(this.value);\n this.writeValue(this.value);\n this.onClear.emit();\n }\n ngOnDestroy() {\n if (this.overlay) {\n ZIndexUtils.clear(this.overlay);\n this.overlay = null;\n }\n this.restoreAppend();\n this.unbindResizeListener();\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n if (this.translationSubscription) {\n this.translationSubscription.unsubscribe();\n }\n super.ngOnDestroy();\n }\n static ɵfac = /* @__PURE__ */(() => {\n let ɵPassword_BaseFactory;\n return function Password_Factory(__ngFactoryType__) {\n return (ɵPassword_BaseFactory || (ɵPassword_BaseFactory = i0.ɵɵgetInheritedFactory(Password)))(__ngFactoryType__ || Password);\n };\n })();\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: Password,\n selectors: [[\"p-password\"]],\n contentQueries: function Password_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, _c0, 4);\n i0.ɵɵcontentQuery(dirIndex, _c1, 4);\n i0.ɵɵcontentQuery(dirIndex, _c2, 4);\n i0.ɵɵcontentQuery(dirIndex, _c3, 4);\n i0.ɵɵcontentQuery(dirIndex, _c4, 4);\n i0.ɵɵcontentQuery(dirIndex, _c5, 4);\n i0.ɵɵcontentQuery(dirIndex, PrimeTemplate, 4);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.contentTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.footerTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.headerTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.clearIconTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.hideIconTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.showIconTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.templates = _t);\n }\n },\n viewQuery: function Password_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c6, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.input = _t.first);\n }\n },\n inputs: {\n ariaLabel: \"ariaLabel\",\n fluid: [2, \"fluid\", \"fluid\", booleanAttribute],\n ariaLabelledBy: \"ariaLabelledBy\",\n label: \"label\",\n disabled: [2, \"disabled\", \"disabled\", booleanAttribute],\n promptLabel: \"promptLabel\",\n mediumRegex: \"mediumRegex\",\n strongRegex: \"strongRegex\",\n weakLabel: \"weakLabel\",\n mediumLabel: \"mediumLabel\",\n maxLength: [2, \"maxLength\", \"maxLength\", numberAttribute],\n strongLabel: \"strongLabel\",\n inputId: \"inputId\",\n feedback: [2, \"feedback\", \"feedback\", booleanAttribute],\n appendTo: \"appendTo\",\n toggleMask: [2, \"toggleMask\", \"toggleMask\", booleanAttribute],\n size: \"size\",\n inputStyleClass: \"inputStyleClass\",\n styleClass: \"styleClass\",\n style: \"style\",\n inputStyle: \"inputStyle\",\n showTransitionOptions: \"showTransitionOptions\",\n hideTransitionOptions: \"hideTransitionOptions\",\n autocomplete: \"autocomplete\",\n placeholder: \"placeholder\",\n showClear: [2, \"showClear\", \"showClear\", booleanAttribute],\n autofocus: [2, \"autofocus\", \"autofocus\", booleanAttribute],\n variant: \"variant\",\n tabindex: [2, \"tabindex\", \"tabindex\", numberAttribute]\n },\n outputs: {\n onFocus: \"onFocus\",\n onBlur: \"onBlur\",\n onClear: \"onClear\"\n },\n features: [i0.ɵɵProvidersFeature([Password_VALUE_ACCESSOR, PasswordStyle]), i0.ɵɵInheritDefinitionFeature],\n decls: 8,\n vars: 34,\n consts: [[\"input\", \"\"], [\"overlay\", \"\"], [\"content\", \"\"], [3, \"ngClass\", \"ngStyle\"], [\"pInputText\", \"\", 3, \"input\", \"focus\", \"blur\", \"keyup\", \"disabled\", \"pSize\", \"ngClass\", \"ngStyle\", \"value\", \"variant\", \"pAutoFocus\"], [4, \"ngIf\"], [\"class\", \"p-password-overlay p-component\", 3, \"click\", 4, \"ngIf\"], [\"class\", \"p-password-clear-icon\", 3, \"click\", 4, \"ngIf\"], [1, \"p-password-clear-icon\", 3, \"click\"], [4, \"ngTemplateOutlet\"], [\"class\", \"p-password-toggle-mask-icon p-password-mask-icon\", 3, \"click\", 4, \"ngIf\"], [3, \"click\", 4, \"ngIf\"], [1, \"p-password-toggle-mask-icon\", \"p-password-mask-icon\", 3, \"click\"], [3, \"click\"], [4, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [1, \"p-password-overlay\", \"p-component\", 3, \"click\"], [4, \"ngIf\", \"ngIfElse\"], [1, \"p-password-content\"], [1, \"p-password-meter\"], [1, \"p-password-meter-text\"]],\n template: function Password_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 3)(1, \"input\", 4, 0);\n i0.ɵɵpipe(3, \"mapper\");\n i0.ɵɵpipe(4, \"mapper\");\n i0.ɵɵlistener(\"input\", function Password_Template_input_input_1_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.onInput($event));\n })(\"focus\", function Password_Template_input_focus_1_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.onInputFocus($event));\n })(\"blur\", function Password_Template_input_blur_1_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.onInputBlur($event));\n })(\"keyup\", function Password_Template_input_keyup_1_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.onKeyUp($event));\n });\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(5, Password_ng_container_5_Template, 4, 3, \"ng-container\", 5)(6, Password_ng_container_6_Template, 3, 2, \"ng-container\", 5)(7, Password_div_7_Template, 7, 11, \"div\", 6);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵclassMap(ctx.styleClass);\n i0.ɵɵproperty(\"ngClass\", ctx.rootClass)(\"ngStyle\", ctx.style);\n i0.ɵɵattribute(\"data-pc-name\", \"password\")(\"data-pc-section\", \"root\");\n i0.ɵɵadvance();\n i0.ɵɵclassMap(ctx.inputStyleClass);\n i0.ɵɵproperty(\"disabled\", ctx.disabled)(\"pSize\", ctx.size)(\"ngClass\", i0.ɵɵpipeBind2(3, 28, ctx.disabled, ctx.inputFieldClass))(\"ngStyle\", ctx.inputStyle)(\"value\", ctx.value)(\"variant\", ctx.variant)(\"pAutoFocus\", ctx.autofocus);\n i0.ɵɵattribute(\"label\", ctx.label)(\"aria-label\", ctx.ariaLabel)(\"aria-labelledBy\", ctx.ariaLabelledBy)(\"id\", ctx.inputId)(\"tabindex\", ctx.tabindex)(\"type\", i0.ɵɵpipeBind2(4, 31, ctx.unmasked, ctx.inputType))(\"placeholder\", ctx.placeholder)(\"autocomplete\", ctx.autocomplete)(\"maxlength\", ctx.maxLength)(\"data-pc-section\", \"input\");\n i0.ɵɵadvance(4);\n i0.ɵɵproperty(\"ngIf\", ctx.showClear && ctx.value != null);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.toggleMask);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.overlayVisible);\n }\n },\n dependencies: [CommonModule, i1.NgClass, i1.NgIf, i1.NgTemplateOutlet, i1.NgStyle, InputText, AutoFocus, TimesIcon, EyeSlashIcon, EyeIcon, MapperPipe, SharedModule],\n encapsulation: 2,\n data: {\n animation: [trigger('overlayAnimation', [transition(':enter', [style({\n opacity: 0,\n transform: 'scaleY(0.8)'\n }), animate('{{showTransitionParams}}')]), transition(':leave', [animate('{{hideTransitionParams}}', style({\n opacity: 0\n }))])])]\n },\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(Password, [{\n type: Component,\n args: [{\n selector: 'p-password',\n standalone: true,\n imports: [CommonModule, InputText, AutoFocus, TimesIcon, EyeSlashIcon, EyeIcon, MapperPipe, SharedModule],\n template: `\n