primeng 20.0.0-rc.2 → 20.0.0-rc.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. package/autocomplete/index.d.ts +8 -7
  2. package/baseeditableholder/index.d.ts +14 -5
  3. package/basemodelholder/index.d.ts +12 -0
  4. package/cascadeselect/index.d.ts +7 -5
  5. package/checkbox/index.d.ts +9 -7
  6. package/colorpicker/index.d.ts +8 -7
  7. package/datepicker/index.d.ts +8 -7
  8. package/editor/index.d.ts +9 -8
  9. package/fesm2022/primeng-autocomplete.mjs +33 -35
  10. package/fesm2022/primeng-autocomplete.mjs.map +1 -1
  11. package/fesm2022/primeng-baseeditableholder.mjs +25 -7
  12. package/fesm2022/primeng-baseeditableholder.mjs.map +1 -1
  13. package/fesm2022/primeng-basemodelholder.mjs +25 -0
  14. package/fesm2022/primeng-basemodelholder.mjs.map +1 -0
  15. package/fesm2022/primeng-card.mjs +2 -2
  16. package/fesm2022/primeng-card.mjs.map +1 -1
  17. package/fesm2022/primeng-cascadeselect.mjs +21 -23
  18. package/fesm2022/primeng-cascadeselect.mjs.map +1 -1
  19. package/fesm2022/primeng-checkbox.mjs +13 -15
  20. package/fesm2022/primeng-checkbox.mjs.map +1 -1
  21. package/fesm2022/primeng-colorpicker.mjs +35 -37
  22. package/fesm2022/primeng-colorpicker.mjs.map +1 -1
  23. package/fesm2022/primeng-contextmenu.mjs +1 -9
  24. package/fesm2022/primeng-contextmenu.mjs.map +1 -1
  25. package/fesm2022/primeng-datepicker.mjs +41 -43
  26. package/fesm2022/primeng-datepicker.mjs.map +1 -1
  27. package/fesm2022/primeng-divider.mjs +2 -2
  28. package/fesm2022/primeng-divider.mjs.map +1 -1
  29. package/fesm2022/primeng-editor.mjs +8 -10
  30. package/fesm2022/primeng-editor.mjs.map +1 -1
  31. package/fesm2022/primeng-fileupload.mjs +4 -3
  32. package/fesm2022/primeng-fileupload.mjs.map +1 -1
  33. package/fesm2022/primeng-inputmask.mjs +23 -25
  34. package/fesm2022/primeng-inputmask.mjs.map +1 -1
  35. package/fesm2022/primeng-inputnumber.mjs +28 -30
  36. package/fesm2022/primeng-inputnumber.mjs.map +1 -1
  37. package/fesm2022/primeng-inputotp.mjs +26 -28
  38. package/fesm2022/primeng-inputotp.mjs.map +1 -1
  39. package/fesm2022/primeng-inputtext.mjs +11 -5
  40. package/fesm2022/primeng-inputtext.mjs.map +1 -1
  41. package/fesm2022/primeng-knob.mjs +22 -24
  42. package/fesm2022/primeng-knob.mjs.map +1 -1
  43. package/fesm2022/primeng-listbox.mjs +36 -38
  44. package/fesm2022/primeng-listbox.mjs.map +1 -1
  45. package/fesm2022/primeng-menubar.mjs +2 -2
  46. package/fesm2022/primeng-menubar.mjs.map +1 -1
  47. package/fesm2022/primeng-multiselect.mjs +38 -39
  48. package/fesm2022/primeng-multiselect.mjs.map +1 -1
  49. package/fesm2022/primeng-password.mjs +19 -21
  50. package/fesm2022/primeng-password.mjs.map +1 -1
  51. package/fesm2022/primeng-radiobutton.mjs +16 -18
  52. package/fesm2022/primeng-radiobutton.mjs.map +1 -1
  53. package/fesm2022/primeng-rating.mjs +14 -16
  54. package/fesm2022/primeng-rating.mjs.map +1 -1
  55. package/fesm2022/primeng-select.mjs +32 -34
  56. package/fesm2022/primeng-select.mjs.map +1 -1
  57. package/fesm2022/primeng-selectbutton.mjs +15 -17
  58. package/fesm2022/primeng-selectbutton.mjs.map +1 -1
  59. package/fesm2022/primeng-slider.mjs +28 -30
  60. package/fesm2022/primeng-slider.mjs.map +1 -1
  61. package/fesm2022/primeng-stepper.mjs +32 -7
  62. package/fesm2022/primeng-stepper.mjs.map +1 -1
  63. package/fesm2022/primeng-table.mjs +13 -21
  64. package/fesm2022/primeng-table.mjs.map +1 -1
  65. package/fesm2022/primeng-textarea.mjs +10 -5
  66. package/fesm2022/primeng-textarea.mjs.map +1 -1
  67. package/fesm2022/primeng-togglebutton.mjs +13 -15
  68. package/fesm2022/primeng-togglebutton.mjs.map +1 -1
  69. package/fesm2022/primeng-toggleswitch.mjs +14 -16
  70. package/fesm2022/primeng-toggleswitch.mjs.map +1 -1
  71. package/fesm2022/primeng-tree.mjs +1 -1
  72. package/fesm2022/primeng-tree.mjs.map +1 -1
  73. package/fesm2022/primeng-treeselect.mjs +16 -18
  74. package/fesm2022/primeng-treeselect.mjs.map +1 -1
  75. package/fesm2022/primeng-treetable.mjs +8 -8
  76. package/fesm2022/primeng-treetable.mjs.map +1 -1
  77. package/inputmask/index.d.ts +8 -7
  78. package/inputnumber/index.d.ts +8 -7
  79. package/inputotp/index.d.ts +7 -5
  80. package/inputtext/index.d.ts +10 -4
  81. package/knob/index.d.ts +7 -5
  82. package/listbox/index.d.ts +8 -7
  83. package/multiselect/index.d.ts +8 -7
  84. package/package.json +213 -209
  85. package/password/index.d.ts +7 -5
  86. package/radiobutton/index.d.ts +9 -7
  87. package/rating/index.d.ts +8 -7
  88. package/select/index.d.ts +8 -7
  89. package/selectbutton/index.d.ts +9 -8
  90. package/slider/index.d.ts +9 -8
  91. package/stepper/index.d.ts +4 -0
  92. package/table/index.d.ts +1 -5
  93. package/textarea/index.d.ts +9 -4
  94. package/togglebutton/index.d.ts +8 -7
  95. package/toggleswitch/index.d.ts +7 -5
  96. package/treeselect/index.d.ts +7 -5
@@ -614,8 +614,6 @@ class Password extends BaseInput {
614
614
  scrollHandler;
615
615
  overlay;
616
616
  value = null;
617
- onModelChange = () => { };
618
- onModelTouched = () => { };
619
617
  translationSubscription;
620
618
  _componentStyle = inject(PasswordStyle);
621
619
  overlayService = inject(OverlayService);
@@ -774,22 +772,6 @@ class Password extends BaseInput {
774
772
  level = 1;
775
773
  return level;
776
774
  }
777
- writeValue(value) {
778
- if (value === undefined)
779
- this.value = null;
780
- else
781
- this.value = value;
782
- if (this.feedback)
783
- this.updateUI(this.value || '');
784
- this.writeModelValue(this.value);
785
- this.cd.markForCheck();
786
- }
787
- registerOnChange(fn) {
788
- this.onModelChange = fn;
789
- }
790
- registerOnTouched(fn) {
791
- this.onModelTouched = fn;
792
- }
793
775
  bindScrollListener() {
794
776
  if (isPlatformBrowser(this.platformId)) {
795
777
  if (!this.scrollHandler) {
@@ -857,6 +839,22 @@ class Password extends BaseInput {
857
839
  this.writeValue(this.value);
858
840
  this.onClear.emit();
859
841
  }
842
+ /**
843
+ * @override
844
+ *
845
+ * @see {@link BaseEditableHolder.writeControlValue}
846
+ * Writes the value to the control.
847
+ */
848
+ writeControlValue(value, setModelValue) {
849
+ if (value === undefined)
850
+ this.value = null;
851
+ else
852
+ this.value = value;
853
+ if (this.feedback)
854
+ this.updateUI(this.value || '');
855
+ setModelValue(this.value);
856
+ this.cd.markForCheck();
857
+ }
860
858
  ngOnDestroy() {
861
859
  if (this.overlay) {
862
860
  ZIndexUtils.clear(this.overlay);
@@ -895,7 +893,7 @@ class Password extends BaseInput {
895
893
  [attr.maxlength]="maxlength() || maxLength"
896
894
  [attr.minlength]="minlength()"
897
895
  [attr.required]="required() ? '' : undefined"
898
- [attr.disabled]="disabled() ? '' : undefined"
896
+ [attr.disabled]="$disabled() ? '' : undefined"
899
897
  [invalid]="invalid()"
900
898
  (input)="onInput($event)"
901
899
  (focus)="onInputFocus($event)"
@@ -954,7 +952,7 @@ class Password extends BaseInput {
954
952
  </ng-template>
955
953
  <ng-container *ngTemplateOutlet="footerTemplate || _footerTemplate"></ng-container>
956
954
  </div>
957
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: InputText, selector: "[pInputText]", inputs: ["pSize", "variant", "fluid"] }, { kind: "directive", type: AutoFocus, selector: "[pAutoFocus]", inputs: ["pAutoFocus"] }, { kind: "component", type: TimesIcon, selector: "[data-p-icon=\"times\"]" }, { kind: "component", type: EyeSlashIcon, selector: "[data-p-icon=\"eyeslash\"]" }, { kind: "component", type: EyeIcon, selector: "[data-p-icon=\"eye\"]" }, { kind: "pipe", type: MapperPipe, name: "mapper" }, { kind: "ngmodule", type: SharedModule }], animations: [trigger('overlayAnimation', [transition(':enter', [style$1({ opacity: 0, transform: 'scaleY(0.8)' }), animate('{{showTransitionParams}}')]), transition(':leave', [animate('{{hideTransitionParams}}', style$1({ opacity: 0 }))])])], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
955
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: InputText, selector: "[pInputText]", inputs: ["pSize", "variant", "fluid", "invalid"] }, { kind: "directive", type: AutoFocus, selector: "[pAutoFocus]", inputs: ["pAutoFocus"] }, { kind: "component", type: TimesIcon, selector: "[data-p-icon=\"times\"]" }, { kind: "component", type: EyeSlashIcon, selector: "[data-p-icon=\"eyeslash\"]" }, { kind: "component", type: EyeIcon, selector: "[data-p-icon=\"eye\"]" }, { kind: "pipe", type: MapperPipe, name: "mapper" }, { kind: "ngmodule", type: SharedModule }], animations: [trigger('overlayAnimation', [transition(':enter', [style$1({ opacity: 0, transform: 'scaleY(0.8)' }), animate('{{showTransitionParams}}')]), transition(':leave', [animate('{{hideTransitionParams}}', style$1({ opacity: 0 }))])])], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
958
956
  }
959
957
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: Password, decorators: [{
960
958
  type: Component,
@@ -983,7 +981,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
983
981
  [attr.maxlength]="maxlength() || maxLength"
984
982
  [attr.minlength]="minlength()"
985
983
  [attr.required]="required() ? '' : undefined"
986
- [attr.disabled]="disabled() ? '' : undefined"
984
+ [attr.disabled]="$disabled() ? '' : undefined"
987
985
  [invalid]="invalid()"
988
986
  (input)="onInput($event)"
989
987
  (focus)="onInputFocus($event)"
@@ -1 +1 @@
1
- {"version":3,"file":"primeng-password.mjs","sources":["../../src/password/style/passwordstyle.ts","../../src/password/password.ts","../../src/password/primeng-password.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { style } from '@primeuix/styles/password';\nimport { BaseStyle } from 'primeng/base';\n\nconst theme = /*css*/ `\n ${style}\n\n /* For PrimeNG */\n p-password.ng-invalid.ng-dirty .p-inputtext {\n border-color: dt('inputtext.invalid.border.color');\n }\n\n p-password.ng-invalid.ng-dirty .p-inputtext:enabled:focus {\n border-color: dt('inputtext.focus.border.color');\n }\n\n p-password.ng-invalid.ng-dirty .p-inputtext::placeholder {\n color: dt('inputtext.invalid.placeholder.color');\n }\n\n .p-password-fluid-directive {\n width: 100%;\n }\n`;\n\nconst inlineStyles = {\n root: ({ instance }) => ({ position: instance.$appendTo() === 'self' ? 'relative' : undefined }),\n overlay: { position: 'absolute' }\n};\n\nconst classes = {\n root: ({ instance }) => [\n 'p-password p-component p-inputwrapper',\n {\n 'p-inputwrapper-filled': instance.$filled(),\n 'p-variant-filled': instance.$variant() === 'filled',\n 'p-inputwrapper-focus': instance.focused,\n 'p-password-fluid': instance.hasFluid\n }\n ],\n rootDirective: ({ instance }) => [\n 'p-password p-inputtext p-component p-inputwrapper',\n {\n 'p-inputwrapper-filled': instance.$filled(),\n 'p-variant-filled': instance.$variant() === 'filled',\n 'p-password-fluid-directive': instance.hasFluid\n }\n ],\n pcInputText: '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: ({ instance }) => `p-password-meter-label ${instance.meter ? 'p-password-meter-' + instance.meter.strength : ''}`,\n meterText: 'p-password-meter-text',\n clearIcon: 'p-password-clear-icon'\n};\n\n@Injectable()\nexport class PasswordStyle extends BaseStyle {\n name = 'password';\n\n theme = theme;\n\n classes = classes;\n\n inlineStyles = inlineStyles;\n}\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 */\n\nexport enum PasswordClasses {\n /**\n * Class name of the root element\n */\n root = 'p-password',\n /**\n * Class name of the pt input element\n */\n pcInputText = 'p-password-input',\n /**\n * Class name of the mask icon element\n */\n maskIcon = 'p-password-mask-icon',\n /**\n * Class name of the unmask icon element\n */\n unmaskIcon = 'p-password-unmask-icon',\n /**\n * Class name of the overlay element\n */\n overlay = 'p-password-overlay',\n /**\n * Class name of the meter element\n */\n meter = 'p-password-meter',\n /**\n * Class name of the meter label element\n */\n meterLabel = 'p-password-meter-label',\n /**\n * Class name of the meter text element\n */\n meterText = 'p-password-meter-text',\n /**\n * Class name of the clear icon\n */\n clearIcon = 'p-password-clear-icon'\n}\n\nexport interface PasswordStyle extends BaseStyle {}\n","import { animate, AnimationEvent, style, transition, trigger } from '@angular/animations';\nimport { CommonModule, isPlatformBrowser } from '@angular/common';\nimport {\n AfterContentInit,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n ContentChild,\n ContentChildren,\n Directive,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostListener,\n inject,\n input,\n Input,\n NgModule,\n NgZone,\n numberAttribute,\n OnDestroy,\n OnInit,\n Output,\n Pipe,\n PipeTransform,\n QueryList,\n signal,\n TemplateRef,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { absolutePosition, addClass, getOuterWidth, hasClass, isTouchDevice, relativePosition, removeClass } from '@primeuix/utils';\nimport { OverlayService, PrimeTemplate, SharedModule, TranslationKeys } from 'primeng/api';\nimport { AutoFocus } from 'primeng/autofocus';\nimport { BaseEditableHolder } from 'primeng/baseeditableholder';\nimport { BaseInput } from 'primeng/baseinput';\nimport { ConnectedOverlayScrollHandler, DomHandler } from 'primeng/dom';\nimport { Fluid } from 'primeng/fluid';\nimport { EyeIcon, EyeSlashIcon, TimesIcon } from 'primeng/icons';\nimport { InputText } from 'primeng/inputtext';\nimport { Nullable, VoidListener } from 'primeng/ts-helpers';\nimport { ZIndexUtils } from 'primeng/utils';\nimport { Subscription } from 'rxjs';\nimport { PasswordStyle } from './style/passwordstyle';\n\ntype Meter = {\n strength: string;\n width: string;\n};\n/**\n * Password directive.\n * @group Components\n */\n@Directive({\n selector: '[pPassword]',\n standalone: true,\n host: {\n '[class]': \"cx('rootDirective')\"\n },\n providers: [PasswordStyle]\n})\nexport class PasswordDirective extends BaseEditableHolder implements OnDestroy {\n /**\n * Text to prompt password entry. Defaults to PrimeNG I18N API configuration.\n * @group Props\n */\n @Input() promptLabel: string = 'Enter a password';\n /**\n * Text for a weak password. Defaults to PrimeNG I18N API configuration.\n * @group Props\n */\n @Input() weakLabel: string = 'Weak';\n /**\n * Text for a medium password. Defaults to PrimeNG I18N API configuration.\n * @group Props\n */\n @Input() mediumLabel: string = 'Medium';\n /**\n * Text for a strong password. Defaults to PrimeNG I18N API configuration.\n * @group Props\n */\n @Input() strongLabel: string = 'Strong';\n /**\n * Whether to show the strength indicator or not.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) feedback: boolean = true;\n /**\n * Sets the visibility of the password field.\n * @defaultValue false\n * @type boolean\n * @group Props\n */\n @Input() set showPassword(show: boolean) {\n this.el.nativeElement.type = show ? 'text' : 'password';\n }\n /**\n * Specifies the input variant of the component.\n * @defaultValue 'outlined'\n * @group Props\n */\n variant = input<'filled' | 'outlined' | undefined>();\n /**\n * Spans 100% width of the container when enabled.\n * @defaultValue false\n * @group Props\n */\n fluid = input(undefined, { transform: booleanAttribute });\n /**\n * Specifies the size of the component.\n * @defaultValue undefined\n * @group Props\n */\n size = input<'large' | 'small' | undefined>(undefined, { alias: 'pSize' });\n\n pcFluid: Fluid = inject(Fluid, { optional: true, host: true, skipSelf: true });\n\n $variant = computed(() => this.variant() || this.config.inputStyle() || this.config.inputVariant());\n\n get hasFluid() {\n return this.fluid() ?? !!this.pcFluid;\n }\n\n panel: Nullable<HTMLDivElement>;\n\n meter: Nullable<HTMLDivElement>;\n\n info: Nullable<HTMLDivElement>;\n\n filled: Nullable<boolean>;\n\n content: Nullable<HTMLDivElement>;\n\n label: Nullable<HTMLLabelElement>;\n\n scrollHandler: Nullable<ConnectedOverlayScrollHandler>;\n\n documentResizeListener: VoidListener;\n\n _componentStyle = inject(PasswordStyle);\n\n constructor(public zone: NgZone) {\n super();\n }\n\n @HostListener('input', ['$event'])\n onInput(e: Event) {\n this.writeModelValue(this.el.nativeElement.value);\n }\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\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\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\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\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\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\n showOverlay() {\n if (this.feedback) {\n if (!this.panel) {\n this.createPanel();\n }\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\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\n this.zone.runOutsideAngular(() => {\n setTimeout(() => {\n this.ngOnDestroy();\n }, 150);\n });\n }\n }\n\n @HostListener('focus')\n onFocus() {\n this.showOverlay();\n }\n\n @HostListener('blur')\n onBlur() {\n this.hideOverlay();\n }\n\n labelSignal = signal('');\n\n @HostListener('keyup', ['$event'])\n onKeyup(e: Event) {\n if (this.feedback) {\n let value = (e.target as HTMLInputElement).value,\n label = null,\n meterPos = null;\n\n if (value.length === 0) {\n label = this.promptLabel;\n meterPos = '0px 0px';\n } else {\n var score = this.testStrength(value);\n\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\n this.labelSignal.set(label);\n this.updateMeter();\n }\n\n if (!this.panel || !hasClass(this.panel, 'p-connected-overlay-visible')) {\n this.showOverlay();\n }\n\n this.renderer.setStyle(this.meter, 'backgroundPosition', meterPos);\n\n (this.info as HTMLDivElement).textContent = label;\n }\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\n this.renderer.addClass(this.meter, strengthClass);\n this.renderer.setStyle(this.meter, 'width', width);\n (this.info as HTMLDivElement).textContent = label;\n }\n }\n\n getWidth(label: string) {\n return label === 'weak' ? '33.33%' : label === 'medium' ? '66.66%' : label === 'strong' ? '100%' : '';\n }\n\n strengthClass(label) {\n return `p-password-meter${label ? `-${label}` : ''}`;\n }\n\n testStrength(str: string) {\n let grade: number = 0;\n let val: Nullable<RegExpMatchArray>;\n\n val = str.match('[0-9]');\n grade += this.normalize(val ? val.length : 1 / 4, 1) * 25;\n\n val = str.match('[a-zA-Z]');\n grade += this.normalize(val ? val.length : 1 / 2, 3) * 10;\n\n val = str.match('[!@#$%^&*?_~.,;=]');\n grade += this.normalize(val ? val.length : 1 / 6, 1) * 35;\n\n val = str.match('[A-Z]');\n grade += this.normalize(val ? val.length : 1 / 6, 1) * 30;\n\n grade *= str.length / 8;\n\n return grade > 100 ? 100 : grade;\n }\n\n normalize(x: number, y: number) {\n let diff = x - y;\n\n if (diff <= 0) return x / y;\n else return 1 + 0.5 * (x / (x + y / 4));\n }\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\n this.scrollHandler.bindScrollListener();\n }\n\n unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n }\n\n bindDocumentResizeListener() {\n if (isPlatformBrowser(this.platformId)) {\n if (!this.documentResizeListener) {\n const window = this.document.defaultView as Window;\n this.documentResizeListener = this.renderer.listen(window, 'resize', this.onWindowResize.bind(this));\n }\n }\n }\n\n unbindDocumentResizeListener() {\n if (this.documentResizeListener) {\n this.documentResizeListener();\n this.documentResizeListener = null;\n }\n }\n\n onWindowResize() {\n if (!isTouchDevice()) {\n this.hideOverlay();\n }\n }\n\n ngOnDestroy() {\n if (this.panel) {\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n\n this.unbindDocumentResizeListener();\n\n this.renderer.removeChild(this.document.body, this.panel);\n this.panel = null;\n this.meter = null;\n this.info = null;\n }\n\n super.ngOnDestroy();\n }\n}\n\ntype Mapper<T, G> = (item: T, ...args: any[]) => G;\n\n@Pipe({\n name: 'mapper',\n pure: true,\n standalone: true\n})\nexport class MapperPipe implements PipeTransform {\n public transform<T, G>(value: T, mapper: Mapper<T, G>, ...args: unknown[]): G {\n return mapper(value, ...args);\n }\n}\n\nexport const Password_VALUE_ACCESSOR: any = {\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 */\n@Component({\n selector: 'p-password',\n standalone: true,\n imports: [CommonModule, InputText, AutoFocus, TimesIcon, EyeSlashIcon, EyeIcon, MapperPipe, SharedModule],\n template: `\n <input\n #input\n [attr.label]=\"label\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledBy]=\"ariaLabelledBy\"\n [attr.id]=\"inputId\"\n [attr.tabindex]=\"tabindex\"\n pInputText\n [pSize]=\"size()\"\n [ngStyle]=\"inputStyle\"\n [class]=\"cn(cx('pcInputText'), inputStyleClass)\"\n [attr.type]=\"unmasked | mapper: inputType\"\n [attr.placeholder]=\"placeholder\"\n [attr.autocomplete]=\"autocomplete\"\n [value]=\"value\"\n [variant]=\"$variant()\"\n [attr.name]=\"name()\"\n [attr.maxlength]=\"maxlength() || maxLength\"\n [attr.minlength]=\"minlength()\"\n [attr.required]=\"required() ? '' : undefined\"\n [attr.disabled]=\"disabled() ? '' : undefined\"\n [invalid]=\"invalid()\"\n (input)=\"onInput($event)\"\n (focus)=\"onInputFocus($event)\"\n (blur)=\"onInputBlur($event)\"\n (keyup)=\"onKeyUp($event)\"\n [attr.data-pc-section]=\"'input'\"\n [pAutoFocus]=\"autofocus\"\n />\n <ng-container *ngIf=\"showClear && value != null\">\n <svg data-p-icon=\"times\" *ngIf=\"!clearIconTemplate && !_clearIconTemplate\" [class]=\"cx('clearIcon')\" (click)=\"clear()\" [attr.data-pc-section]=\"'clearIcon'\" />\n <span (click)=\"clear()\" [class]=\"cx('clearIcon')\" [attr.data-pc-section]=\"'clearIcon'\">\n <ng-template *ngTemplateOutlet=\"clearIconTemplate || _clearIconTemplate\"></ng-template>\n </span>\n </ng-container>\n\n <ng-container *ngIf=\"toggleMask\">\n <ng-container *ngIf=\"unmasked\">\n <svg data-p-icon=\"eyeslash\" [class]=\"cx('maskIcon')\" *ngIf=\"!hideIconTemplate && !_hideIconTemplate\" (click)=\"onMaskToggle()\" [attr.data-pc-section]=\"'hideIcon'\" />\n <span *ngIf=\"hideIconTemplate || _hideIconTemplate\" (click)=\"onMaskToggle()\">\n <ng-template *ngTemplateOutlet=\"hideIconTemplate || _hideIconTemplate; context: { class: cx('maskIcon') }\"></ng-template>\n </span>\n </ng-container>\n <ng-container *ngIf=\"!unmasked\">\n <svg data-p-icon=\"eye\" *ngIf=\"!showIconTemplate && !_showIconTemplate\" [class]=\"cx('unmaskIcon')\" (click)=\"onMaskToggle()\" [attr.data-pc-section]=\"'showIcon'\" />\n <span *ngIf=\"showIconTemplate || _showIconTemplate\" (click)=\"onMaskToggle()\">\n <ng-template *ngTemplateOutlet=\"showIconTemplate || _showIconTemplate; context: { class: cx('unmaskIcon') }\"></ng-template>\n </span>\n </ng-container>\n </ng-container>\n\n <div\n #overlay\n *ngIf=\"overlayVisible\"\n [class]=\"cx('overlay')\"\n [style]=\"sx('overlay')\"\n (click)=\"onOverlayClick($event)\"\n [@overlayAnimation]=\"{\n value: 'visible',\n params: { showTransitionParams: showTransitionOptions, hideTransitionParams: hideTransitionOptions }\n }\"\n (@overlayAnimation.start)=\"onAnimationStart($event)\"\n (@overlayAnimation.done)=\"onAnimationEnd($event)\"\n [attr.data-pc-section]=\"'panel'\"\n >\n <ng-container *ngTemplateOutlet=\"headerTemplate || _headerTemplate\"></ng-container>\n <ng-container *ngIf=\"contentTemplate || _contentTemplate; else content\">\n <ng-container *ngTemplateOutlet=\"contentTemplate || _contentTemplate\"></ng-container>\n </ng-container>\n <ng-template #content>\n <div [class]=\"cx('content')\">\n <div [class]=\"cx('meter')\" [attr.data-pc-section]=\"'meter'\">\n <div [class]=\"cx('meterLabel')\" [ngStyle]=\"{ width: meter ? meter.width : '' }\" [attr.data-pc-section]=\"'meterLabel'\"></div>\n </div>\n <div [class]=\"cx('meterText')\" [attr.data-pc-section]=\"'info'\">{{ infoText }}</div>\n </div>\n </ng-template>\n <ng-container *ngTemplateOutlet=\"footerTemplate || _footerTemplate\"></ng-container>\n </div>\n `,\n animations: [trigger('overlayAnimation', [transition(':enter', [style({ opacity: 0, transform: 'scaleY(0.8)' }), animate('{{showTransitionParams}}')]), transition(':leave', [animate('{{hideTransitionParams}}', style({ opacity: 0 }))])])],\n providers: [Password_VALUE_ACCESSOR, PasswordStyle],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class]': \"cn(cx('root'), styleClass)\",\n '[style]': \"sx('root')\",\n 'data-pc-name': 'password',\n 'data-pc-section': 'root'\n }\n})\nexport class Password extends BaseInput implements OnInit, AfterContentInit {\n /**\n * Defines a string that labels the input for accessibility.\n * @group Props\n */\n @Input() ariaLabel: string | undefined;\n /**\n * Specifies one or more IDs in the DOM that labels the input field.\n * @group Props\n */\n @Input() ariaLabelledBy: string | undefined;\n /**\n * Label of the input for accessibility.\n * @group Props\n */\n @Input() label: string | undefined;\n /**\n * Text to prompt password entry. Defaults to PrimeNG I18N API configuration.\n * @group Props\n */\n @Input() promptLabel: string | undefined;\n /**\n * Regex value for medium regex.\n * @group Props\n */\n @Input() mediumRegex: string = '^(((?=.*[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 @Input() strongRegex: string = '^(?=.*[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 @Input() weakLabel: string | undefined;\n /**\n * Text for a medium password. Defaults to PrimeNG I18N API configuration.\n * @group Props\n */\n @Input() mediumLabel: string | undefined;\n /**\n * specifies the maximum number of characters allowed in the input element.\n * @deprecated since v20.0.0, use maxlength instead.\n * @group Props\n */\n @Input({ transform: numberAttribute }) maxLength: number | undefined;\n /**\n * Text for a strong password. Defaults to PrimeNG I18N API configuration.\n * @group Props\n */\n @Input() strongLabel: string | undefined;\n /**\n * Identifier of the accessible input element.\n * @group Props\n */\n @Input() inputId: string | undefined;\n /**\n * Whether to show the strength indicator or not.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) feedback: boolean = true;\n /**\n * Whether to show an icon to display the password as plain text.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) toggleMask: boolean | undefined;\n /**\n * Style class of the input field.\n * @group Props\n */\n @Input() inputStyleClass: string | undefined;\n /**\n * Style class of the element.\n * @deprecated since v20.0.0, use `class` instead.\n * @group Props\n */\n @Input() styleClass: string | undefined;\n /**\n * Inline style of the input field.\n * @group Props\n */\n @Input() inputStyle: { [klass: string]: any } | null | undefined;\n /**\n * Transition options of the show animation.\n * @group Props\n */\n @Input() showTransitionOptions: string = '.12s cubic-bezier(0, 0, 0.2, 1)';\n /**\n * Transition options of the hide animation.\n * @group Props\n */\n @Input() hideTransitionOptions: string = '.1s linear';\n /**\n * Specify automated assistance in filling out password by browser.\n * @group Props\n */\n @Input() autocomplete: string | undefined;\n /**\n * Advisory information to display on input.\n * @group Props\n */\n @Input() placeholder: string | undefined;\n /**\n * When enabled, a clear icon is displayed to clear the value.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showClear: boolean = false;\n /**\n * When present, it specifies that the component should automatically get focus on load.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) autofocus: boolean | undefined;\n /**\n * Index of the element in tabbing order.\n * @group Props\n */\n @Input({ transform: numberAttribute }) tabindex?: number;\n /**\n * Target element to attach the overlay, valid values are \"body\" or a local ng-template variable of another element (note: use binding with brackets for template variables, e.g. [appendTo]=\"mydiv\" for a div element having #mydiv as variable name).\n * @defaultValue 'self'\n * @group Props\n */\n appendTo = input<HTMLElement | ElementRef | TemplateRef<any> | 'self' | 'body' | null | undefined | any>(undefined);\n /**\n * Callback to invoke when the component receives focus.\n * @param {Event} event - Browser event.\n * @group Emits\n */\n @Output() onFocus: EventEmitter<Event> = new EventEmitter<Event>();\n /**\n * Callback to invoke when the component loses focus.\n * @param {Event} event - Browser event.\n * @group Emits\n */\n @Output() onBlur: EventEmitter<Event> = new EventEmitter<Event>();\n /**\n * Callback to invoke when clear button is clicked.\n * @group Emits\n */\n @Output() onClear: EventEmitter<any> = new EventEmitter<any>();\n\n @ViewChild('input') input!: ElementRef;\n\n @ContentChild('content', { descendants: false }) contentTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('footer', { descendants: false }) footerTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('header', { descendants: false }) headerTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('clearicon', { descendants: false }) clearIconTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('hideicon', { descendants: false }) hideIconTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('showicon', { descendants: false }) showIconTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChildren(PrimeTemplate) templates!: QueryList<PrimeTemplate>;\n\n $appendTo = computed(() => this.appendTo() || this.config.overlayAppendTo());\n\n _contentTemplate: TemplateRef<any> | undefined;\n\n _footerTemplate: TemplateRef<any> | undefined;\n\n _headerTemplate: TemplateRef<any> | undefined;\n\n _clearIconTemplate: TemplateRef<any> | undefined;\n\n _hideIconTemplate: TemplateRef<any> | undefined;\n\n _showIconTemplate: TemplateRef<any> | undefined;\n\n overlayVisible: boolean = false;\n\n meter: Nullable<Meter>;\n\n infoText: Nullable<string>;\n\n focused: boolean = false;\n\n unmasked: boolean = false;\n\n mediumCheckRegExp!: RegExp;\n\n strongCheckRegExp!: RegExp;\n\n resizeListener: VoidListener;\n\n scrollHandler: Nullable<ConnectedOverlayScrollHandler>;\n\n overlay: any;\n\n value: Nullable<string> = null;\n\n onModelChange: Function = () => {};\n\n onModelTouched: Function = () => {};\n\n translationSubscription: Nullable<Subscription>;\n\n _componentStyle = inject(PasswordStyle);\n\n overlayService = inject(OverlayService);\n\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\n ngAfterContentInit() {\n this.templates.forEach((item) => {\n switch (item.getType()) {\n case 'content':\n this._contentTemplate = item.template;\n break;\n\n case 'header':\n this._headerTemplate = item.template;\n break;\n\n case 'footer':\n this._footerTemplate = item.template;\n break;\n\n case 'clearicon':\n this._clearIconTemplate = item.template;\n break;\n\n case 'hideicon':\n this._hideIconTemplate = item.template;\n break;\n\n case 'showicon':\n this._showIconTemplate = item.template;\n break;\n\n default:\n this._contentTemplate = item.template;\n break;\n }\n });\n }\n\n onAnimationStart(event: AnimationEvent) {\n switch (event.toState) {\n case 'visible':\n this.overlay = event.element;\n ZIndexUtils.set('overlay', this.overlay, this.config.zIndex.overlay);\n this.attrSelector && this.overlay.setAttribute(this.attrSelector, '');\n this.appendContainer();\n this.alignOverlay();\n this.bindScrollListener();\n this.bindResizeListener();\n break;\n\n case 'void':\n this.unbindScrollListener();\n this.unbindResizeListener();\n this.overlay = null;\n break;\n }\n }\n\n onAnimationEnd(event: AnimationEvent) {\n switch (event.toState) {\n case 'void':\n ZIndexUtils.clear(event.element);\n break;\n }\n }\n\n appendContainer() {\n DomHandler.appendOverlay(this.overlay, this.$appendTo() === 'body' ? this.document.body : this.$appendTo(), this.$appendTo());\n }\n\n alignOverlay() {\n (this.overlay as HTMLElement).style.minWidth = getOuterWidth(this.input.nativeElement) + 'px';\n if (this.$appendTo() === 'self') relativePosition(this.overlay as HTMLElement, this.input?.nativeElement);\n else absolutePosition(this.overlay as HTMLElement, this.input?.nativeElement);\n }\n\n onInput(event: Event) {\n this.value = (event.target as HTMLInputElement).value;\n this.onModelChange(this.value);\n }\n\n onInputFocus(event: Event) {\n this.focused = true;\n if (this.feedback) {\n this.overlayVisible = true;\n }\n\n this.onFocus.emit(event);\n }\n\n onInputBlur(event: Event) {\n this.focused = false;\n if (this.feedback) {\n this.overlayVisible = false;\n }\n\n this.onModelTouched();\n this.onBlur.emit(event);\n }\n\n onKeyUp(event: KeyboardEvent) {\n if (this.feedback) {\n let value = (event.target as HTMLInputElement).value;\n this.updateUI(value);\n\n if (event.code === 'Escape') {\n this.overlayVisible && (this.overlayVisible = false);\n\n return;\n }\n\n if (!this.overlayVisible) {\n this.overlayVisible = true;\n }\n }\n }\n\n updateUI(value: string) {\n let label = null;\n let meter = null;\n\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\n case 2:\n label = this.mediumText();\n meter = {\n strength: 'medium',\n width: '66.66%'\n };\n break;\n\n case 3:\n label = this.strongText();\n meter = {\n strength: 'strong',\n width: '100%'\n };\n break;\n\n default:\n label = this.promptText();\n meter = null;\n break;\n }\n\n this.meter = meter;\n this.infoText = label;\n }\n\n onMaskToggle() {\n this.unmasked = !this.unmasked;\n }\n\n onOverlayClick(event: Event) {\n this.overlayService.add({\n originalEvent: event,\n target: this.el.nativeElement\n });\n }\n\n testStrength(str: string) {\n let level = 0;\n\n if (this.strongCheckRegExp.test(str)) level = 3;\n else if (this.mediumCheckRegExp.test(str)) level = 2;\n else if (str.length) level = 1;\n\n return level;\n }\n\n writeValue(value: any): void {\n if (value === undefined) this.value = null;\n else this.value = value;\n\n if (this.feedback) this.updateUI(this.value || '');\n this.writeModelValue(this.value);\n this.cd.markForCheck();\n }\n\n registerOnChange(fn: Function): void {\n this.onModelChange = fn;\n }\n\n registerOnTouched(fn: Function): void {\n this.onModelTouched = fn;\n }\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\n this.scrollHandler.bindScrollListener();\n }\n }\n\n bindResizeListener() {\n if (isPlatformBrowser(this.platformId)) {\n if (!this.resizeListener) {\n const window = this.document.defaultView as Window;\n this.resizeListener = this.renderer.listen(window, 'resize', () => {\n if (this.overlayVisible && !isTouchDevice()) {\n this.overlayVisible = false;\n }\n });\n }\n }\n }\n\n unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n }\n\n unbindResizeListener() {\n if (this.resizeListener) {\n this.resizeListener();\n this.resizeListener = null;\n }\n }\n\n promptText() {\n return this.promptLabel || this.getTranslation(TranslationKeys.PASSWORD_PROMPT);\n }\n\n weakText() {\n return this.weakLabel || this.getTranslation(TranslationKeys.WEAK);\n }\n\n mediumText() {\n return this.mediumLabel || this.getTranslation(TranslationKeys.MEDIUM);\n }\n\n strongText() {\n return this.strongLabel || this.getTranslation(TranslationKeys.STRONG);\n }\n\n restoreAppend() {\n if (this.overlay && this.$appendTo()) {\n if (this.$appendTo() === 'body') this.renderer.removeChild(this.document.body, this.overlay);\n else (this.document as any).getElementById(this.$appendTo()).removeChild(this.overlay);\n }\n }\n\n inputType(unmasked: boolean) {\n return unmasked ? 'text' : 'password';\n }\n\n getTranslation(option: string) {\n return this.config.getTranslation(option);\n }\n\n clear() {\n this.value = null;\n this.onModelChange(this.value);\n this.writeValue(this.value);\n this.onClear.emit();\n }\n\n ngOnDestroy() {\n if (this.overlay) {\n ZIndexUtils.clear(this.overlay);\n this.overlay = null;\n }\n\n this.restoreAppend();\n this.unbindResizeListener();\n\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n\n if (this.translationSubscription) {\n this.translationSubscription.unsubscribe();\n }\n\n super.ngOnDestroy();\n }\n}\n\n@NgModule({\n imports: [Password, PasswordDirective, SharedModule],\n exports: [PasswordDirective, Password, SharedModule]\n})\nexport class PasswordModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["style"],"mappings":"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"}
1
+ {"version":3,"file":"primeng-password.mjs","sources":["../../src/password/style/passwordstyle.ts","../../src/password/password.ts","../../src/password/primeng-password.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { style } from '@primeuix/styles/password';\nimport { BaseStyle } from 'primeng/base';\n\nconst theme = /*css*/ `\n ${style}\n\n /* For PrimeNG */\n p-password.ng-invalid.ng-dirty .p-inputtext {\n border-color: dt('inputtext.invalid.border.color');\n }\n\n p-password.ng-invalid.ng-dirty .p-inputtext:enabled:focus {\n border-color: dt('inputtext.focus.border.color');\n }\n\n p-password.ng-invalid.ng-dirty .p-inputtext::placeholder {\n color: dt('inputtext.invalid.placeholder.color');\n }\n\n .p-password-fluid-directive {\n width: 100%;\n }\n`;\n\nconst inlineStyles = {\n root: ({ instance }) => ({ position: instance.$appendTo() === 'self' ? 'relative' : undefined }),\n overlay: { position: 'absolute' }\n};\n\nconst classes = {\n root: ({ instance }) => [\n 'p-password p-component p-inputwrapper',\n {\n 'p-inputwrapper-filled': instance.$filled(),\n 'p-variant-filled': instance.$variant() === 'filled',\n 'p-inputwrapper-focus': instance.focused,\n 'p-password-fluid': instance.hasFluid\n }\n ],\n rootDirective: ({ instance }) => [\n 'p-password p-inputtext p-component p-inputwrapper',\n {\n 'p-inputwrapper-filled': instance.$filled(),\n 'p-variant-filled': instance.$variant() === 'filled',\n 'p-password-fluid-directive': instance.hasFluid\n }\n ],\n pcInputText: '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: ({ instance }) => `p-password-meter-label ${instance.meter ? 'p-password-meter-' + instance.meter.strength : ''}`,\n meterText: 'p-password-meter-text',\n clearIcon: 'p-password-clear-icon'\n};\n\n@Injectable()\nexport class PasswordStyle extends BaseStyle {\n name = 'password';\n\n theme = theme;\n\n classes = classes;\n\n inlineStyles = inlineStyles;\n}\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 */\n\nexport enum PasswordClasses {\n /**\n * Class name of the root element\n */\n root = 'p-password',\n /**\n * Class name of the pt input element\n */\n pcInputText = 'p-password-input',\n /**\n * Class name of the mask icon element\n */\n maskIcon = 'p-password-mask-icon',\n /**\n * Class name of the unmask icon element\n */\n unmaskIcon = 'p-password-unmask-icon',\n /**\n * Class name of the overlay element\n */\n overlay = 'p-password-overlay',\n /**\n * Class name of the meter element\n */\n meter = 'p-password-meter',\n /**\n * Class name of the meter label element\n */\n meterLabel = 'p-password-meter-label',\n /**\n * Class name of the meter text element\n */\n meterText = 'p-password-meter-text',\n /**\n * Class name of the clear icon\n */\n clearIcon = 'p-password-clear-icon'\n}\n\nexport interface PasswordStyle extends BaseStyle {}\n","import { animate, AnimationEvent, style, transition, trigger } from '@angular/animations';\nimport { CommonModule, isPlatformBrowser } from '@angular/common';\nimport {\n AfterContentInit,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n ContentChild,\n ContentChildren,\n Directive,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostListener,\n inject,\n input,\n Input,\n NgModule,\n NgZone,\n numberAttribute,\n OnDestroy,\n OnInit,\n Output,\n Pipe,\n PipeTransform,\n QueryList,\n signal,\n TemplateRef,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { absolutePosition, addClass, getOuterWidth, hasClass, isTouchDevice, relativePosition, removeClass } from '@primeuix/utils';\nimport { OverlayService, PrimeTemplate, SharedModule, TranslationKeys } from 'primeng/api';\nimport { AutoFocus } from 'primeng/autofocus';\nimport { BaseEditableHolder } from 'primeng/baseeditableholder';\nimport { BaseInput } from 'primeng/baseinput';\nimport { ConnectedOverlayScrollHandler, DomHandler } from 'primeng/dom';\nimport { Fluid } from 'primeng/fluid';\nimport { EyeIcon, EyeSlashIcon, TimesIcon } from 'primeng/icons';\nimport { InputText } from 'primeng/inputtext';\nimport { Nullable, VoidListener } from 'primeng/ts-helpers';\nimport { ZIndexUtils } from 'primeng/utils';\nimport { Subscription } from 'rxjs';\nimport { PasswordStyle } from './style/passwordstyle';\n\ntype Meter = {\n strength: string;\n width: string;\n};\n/**\n * Password directive.\n * @group Components\n */\n@Directive({\n selector: '[pPassword]',\n standalone: true,\n host: {\n '[class]': \"cx('rootDirective')\"\n },\n providers: [PasswordStyle]\n})\nexport class PasswordDirective extends BaseEditableHolder implements OnDestroy {\n /**\n * Text to prompt password entry. Defaults to PrimeNG I18N API configuration.\n * @group Props\n */\n @Input() promptLabel: string = 'Enter a password';\n /**\n * Text for a weak password. Defaults to PrimeNG I18N API configuration.\n * @group Props\n */\n @Input() weakLabel: string = 'Weak';\n /**\n * Text for a medium password. Defaults to PrimeNG I18N API configuration.\n * @group Props\n */\n @Input() mediumLabel: string = 'Medium';\n /**\n * Text for a strong password. Defaults to PrimeNG I18N API configuration.\n * @group Props\n */\n @Input() strongLabel: string = 'Strong';\n /**\n * Whether to show the strength indicator or not.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) feedback: boolean = true;\n /**\n * Sets the visibility of the password field.\n * @defaultValue false\n * @type boolean\n * @group Props\n */\n @Input() set showPassword(show: boolean) {\n this.el.nativeElement.type = show ? 'text' : 'password';\n }\n /**\n * Specifies the input variant of the component.\n * @defaultValue 'outlined'\n * @group Props\n */\n variant = input<'filled' | 'outlined' | undefined>();\n /**\n * Spans 100% width of the container when enabled.\n * @defaultValue false\n * @group Props\n */\n fluid = input(undefined, { transform: booleanAttribute });\n /**\n * Specifies the size of the component.\n * @defaultValue undefined\n * @group Props\n */\n size = input<'large' | 'small' | undefined>(undefined, { alias: 'pSize' });\n\n pcFluid: Fluid = inject(Fluid, { optional: true, host: true, skipSelf: true });\n\n $variant = computed(() => this.variant() || this.config.inputStyle() || this.config.inputVariant());\n\n get hasFluid() {\n return this.fluid() ?? !!this.pcFluid;\n }\n\n panel: Nullable<HTMLDivElement>;\n\n meter: Nullable<HTMLDivElement>;\n\n info: Nullable<HTMLDivElement>;\n\n filled: Nullable<boolean>;\n\n content: Nullable<HTMLDivElement>;\n\n label: Nullable<HTMLLabelElement>;\n\n scrollHandler: Nullable<ConnectedOverlayScrollHandler>;\n\n documentResizeListener: VoidListener;\n\n _componentStyle = inject(PasswordStyle);\n\n constructor(public zone: NgZone) {\n super();\n }\n\n @HostListener('input', ['$event'])\n onInput(e: Event) {\n this.writeModelValue(this.el.nativeElement.value);\n }\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\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\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\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\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\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\n showOverlay() {\n if (this.feedback) {\n if (!this.panel) {\n this.createPanel();\n }\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\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\n this.zone.runOutsideAngular(() => {\n setTimeout(() => {\n this.ngOnDestroy();\n }, 150);\n });\n }\n }\n\n @HostListener('focus')\n onFocus() {\n this.showOverlay();\n }\n\n @HostListener('blur')\n onBlur() {\n this.hideOverlay();\n }\n\n labelSignal = signal('');\n\n @HostListener('keyup', ['$event'])\n onKeyup(e: Event) {\n if (this.feedback) {\n let value = (e.target as HTMLInputElement).value,\n label = null,\n meterPos = null;\n\n if (value.length === 0) {\n label = this.promptLabel;\n meterPos = '0px 0px';\n } else {\n var score = this.testStrength(value);\n\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\n this.labelSignal.set(label);\n this.updateMeter();\n }\n\n if (!this.panel || !hasClass(this.panel, 'p-connected-overlay-visible')) {\n this.showOverlay();\n }\n\n this.renderer.setStyle(this.meter, 'backgroundPosition', meterPos);\n\n (this.info as HTMLDivElement).textContent = label;\n }\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\n this.renderer.addClass(this.meter, strengthClass);\n this.renderer.setStyle(this.meter, 'width', width);\n (this.info as HTMLDivElement).textContent = label;\n }\n }\n\n getWidth(label: string) {\n return label === 'weak' ? '33.33%' : label === 'medium' ? '66.66%' : label === 'strong' ? '100%' : '';\n }\n\n strengthClass(label) {\n return `p-password-meter${label ? `-${label}` : ''}`;\n }\n\n testStrength(str: string) {\n let grade: number = 0;\n let val: Nullable<RegExpMatchArray>;\n\n val = str.match('[0-9]');\n grade += this.normalize(val ? val.length : 1 / 4, 1) * 25;\n\n val = str.match('[a-zA-Z]');\n grade += this.normalize(val ? val.length : 1 / 2, 3) * 10;\n\n val = str.match('[!@#$%^&*?_~.,;=]');\n grade += this.normalize(val ? val.length : 1 / 6, 1) * 35;\n\n val = str.match('[A-Z]');\n grade += this.normalize(val ? val.length : 1 / 6, 1) * 30;\n\n grade *= str.length / 8;\n\n return grade > 100 ? 100 : grade;\n }\n\n normalize(x: number, y: number) {\n let diff = x - y;\n\n if (diff <= 0) return x / y;\n else return 1 + 0.5 * (x / (x + y / 4));\n }\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\n this.scrollHandler.bindScrollListener();\n }\n\n unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n }\n\n bindDocumentResizeListener() {\n if (isPlatformBrowser(this.platformId)) {\n if (!this.documentResizeListener) {\n const window = this.document.defaultView as Window;\n this.documentResizeListener = this.renderer.listen(window, 'resize', this.onWindowResize.bind(this));\n }\n }\n }\n\n unbindDocumentResizeListener() {\n if (this.documentResizeListener) {\n this.documentResizeListener();\n this.documentResizeListener = null;\n }\n }\n\n onWindowResize() {\n if (!isTouchDevice()) {\n this.hideOverlay();\n }\n }\n\n ngOnDestroy() {\n if (this.panel) {\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n\n this.unbindDocumentResizeListener();\n\n this.renderer.removeChild(this.document.body, this.panel);\n this.panel = null;\n this.meter = null;\n this.info = null;\n }\n\n super.ngOnDestroy();\n }\n}\n\ntype Mapper<T, G> = (item: T, ...args: any[]) => G;\n\n@Pipe({\n name: 'mapper',\n pure: true,\n standalone: true\n})\nexport class MapperPipe implements PipeTransform {\n public transform<T, G>(value: T, mapper: Mapper<T, G>, ...args: unknown[]): G {\n return mapper(value, ...args);\n }\n}\n\nexport const Password_VALUE_ACCESSOR: any = {\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 */\n@Component({\n selector: 'p-password',\n standalone: true,\n imports: [CommonModule, InputText, AutoFocus, TimesIcon, EyeSlashIcon, EyeIcon, MapperPipe, SharedModule],\n template: `\n <input\n #input\n [attr.label]=\"label\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledBy]=\"ariaLabelledBy\"\n [attr.id]=\"inputId\"\n [attr.tabindex]=\"tabindex\"\n pInputText\n [pSize]=\"size()\"\n [ngStyle]=\"inputStyle\"\n [class]=\"cn(cx('pcInputText'), inputStyleClass)\"\n [attr.type]=\"unmasked | mapper: inputType\"\n [attr.placeholder]=\"placeholder\"\n [attr.autocomplete]=\"autocomplete\"\n [value]=\"value\"\n [variant]=\"$variant()\"\n [attr.name]=\"name()\"\n [attr.maxlength]=\"maxlength() || maxLength\"\n [attr.minlength]=\"minlength()\"\n [attr.required]=\"required() ? '' : undefined\"\n [attr.disabled]=\"$disabled() ? '' : undefined\"\n [invalid]=\"invalid()\"\n (input)=\"onInput($event)\"\n (focus)=\"onInputFocus($event)\"\n (blur)=\"onInputBlur($event)\"\n (keyup)=\"onKeyUp($event)\"\n [attr.data-pc-section]=\"'input'\"\n [pAutoFocus]=\"autofocus\"\n />\n <ng-container *ngIf=\"showClear && value != null\">\n <svg data-p-icon=\"times\" *ngIf=\"!clearIconTemplate && !_clearIconTemplate\" [class]=\"cx('clearIcon')\" (click)=\"clear()\" [attr.data-pc-section]=\"'clearIcon'\" />\n <span (click)=\"clear()\" [class]=\"cx('clearIcon')\" [attr.data-pc-section]=\"'clearIcon'\">\n <ng-template *ngTemplateOutlet=\"clearIconTemplate || _clearIconTemplate\"></ng-template>\n </span>\n </ng-container>\n\n <ng-container *ngIf=\"toggleMask\">\n <ng-container *ngIf=\"unmasked\">\n <svg data-p-icon=\"eyeslash\" [class]=\"cx('maskIcon')\" *ngIf=\"!hideIconTemplate && !_hideIconTemplate\" (click)=\"onMaskToggle()\" [attr.data-pc-section]=\"'hideIcon'\" />\n <span *ngIf=\"hideIconTemplate || _hideIconTemplate\" (click)=\"onMaskToggle()\">\n <ng-template *ngTemplateOutlet=\"hideIconTemplate || _hideIconTemplate; context: { class: cx('maskIcon') }\"></ng-template>\n </span>\n </ng-container>\n <ng-container *ngIf=\"!unmasked\">\n <svg data-p-icon=\"eye\" *ngIf=\"!showIconTemplate && !_showIconTemplate\" [class]=\"cx('unmaskIcon')\" (click)=\"onMaskToggle()\" [attr.data-pc-section]=\"'showIcon'\" />\n <span *ngIf=\"showIconTemplate || _showIconTemplate\" (click)=\"onMaskToggle()\">\n <ng-template *ngTemplateOutlet=\"showIconTemplate || _showIconTemplate; context: { class: cx('unmaskIcon') }\"></ng-template>\n </span>\n </ng-container>\n </ng-container>\n\n <div\n #overlay\n *ngIf=\"overlayVisible\"\n [class]=\"cx('overlay')\"\n [style]=\"sx('overlay')\"\n (click)=\"onOverlayClick($event)\"\n [@overlayAnimation]=\"{\n value: 'visible',\n params: { showTransitionParams: showTransitionOptions, hideTransitionParams: hideTransitionOptions }\n }\"\n (@overlayAnimation.start)=\"onAnimationStart($event)\"\n (@overlayAnimation.done)=\"onAnimationEnd($event)\"\n [attr.data-pc-section]=\"'panel'\"\n >\n <ng-container *ngTemplateOutlet=\"headerTemplate || _headerTemplate\"></ng-container>\n <ng-container *ngIf=\"contentTemplate || _contentTemplate; else content\">\n <ng-container *ngTemplateOutlet=\"contentTemplate || _contentTemplate\"></ng-container>\n </ng-container>\n <ng-template #content>\n <div [class]=\"cx('content')\">\n <div [class]=\"cx('meter')\" [attr.data-pc-section]=\"'meter'\">\n <div [class]=\"cx('meterLabel')\" [ngStyle]=\"{ width: meter ? meter.width : '' }\" [attr.data-pc-section]=\"'meterLabel'\"></div>\n </div>\n <div [class]=\"cx('meterText')\" [attr.data-pc-section]=\"'info'\">{{ infoText }}</div>\n </div>\n </ng-template>\n <ng-container *ngTemplateOutlet=\"footerTemplate || _footerTemplate\"></ng-container>\n </div>\n `,\n animations: [trigger('overlayAnimation', [transition(':enter', [style({ opacity: 0, transform: 'scaleY(0.8)' }), animate('{{showTransitionParams}}')]), transition(':leave', [animate('{{hideTransitionParams}}', style({ opacity: 0 }))])])],\n providers: [Password_VALUE_ACCESSOR, PasswordStyle],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class]': \"cn(cx('root'), styleClass)\",\n '[style]': \"sx('root')\",\n 'data-pc-name': 'password',\n 'data-pc-section': 'root'\n }\n})\nexport class Password extends BaseInput implements OnInit, AfterContentInit {\n /**\n * Defines a string that labels the input for accessibility.\n * @group Props\n */\n @Input() ariaLabel: string | undefined;\n /**\n * Specifies one or more IDs in the DOM that labels the input field.\n * @group Props\n */\n @Input() ariaLabelledBy: string | undefined;\n /**\n * Label of the input for accessibility.\n * @group Props\n */\n @Input() label: string | undefined;\n /**\n * Text to prompt password entry. Defaults to PrimeNG I18N API configuration.\n * @group Props\n */\n @Input() promptLabel: string | undefined;\n /**\n * Regex value for medium regex.\n * @group Props\n */\n @Input() mediumRegex: string = '^(((?=.*[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 @Input() strongRegex: string = '^(?=.*[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 @Input() weakLabel: string | undefined;\n /**\n * Text for a medium password. Defaults to PrimeNG I18N API configuration.\n * @group Props\n */\n @Input() mediumLabel: string | undefined;\n /**\n * specifies the maximum number of characters allowed in the input element.\n * @deprecated since v20.0.0, use maxlength instead.\n * @group Props\n */\n @Input({ transform: numberAttribute }) maxLength: number | undefined;\n /**\n * Text for a strong password. Defaults to PrimeNG I18N API configuration.\n * @group Props\n */\n @Input() strongLabel: string | undefined;\n /**\n * Identifier of the accessible input element.\n * @group Props\n */\n @Input() inputId: string | undefined;\n /**\n * Whether to show the strength indicator or not.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) feedback: boolean = true;\n /**\n * Whether to show an icon to display the password as plain text.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) toggleMask: boolean | undefined;\n /**\n * Style class of the input field.\n * @group Props\n */\n @Input() inputStyleClass: string | undefined;\n /**\n * Style class of the element.\n * @deprecated since v20.0.0, use `class` instead.\n * @group Props\n */\n @Input() styleClass: string | undefined;\n /**\n * Inline style of the input field.\n * @group Props\n */\n @Input() inputStyle: { [klass: string]: any } | null | undefined;\n /**\n * Transition options of the show animation.\n * @group Props\n */\n @Input() showTransitionOptions: string = '.12s cubic-bezier(0, 0, 0.2, 1)';\n /**\n * Transition options of the hide animation.\n * @group Props\n */\n @Input() hideTransitionOptions: string = '.1s linear';\n /**\n * Specify automated assistance in filling out password by browser.\n * @group Props\n */\n @Input() autocomplete: string | undefined;\n /**\n * Advisory information to display on input.\n * @group Props\n */\n @Input() placeholder: string | undefined;\n /**\n * When enabled, a clear icon is displayed to clear the value.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) showClear: boolean = false;\n /**\n * When present, it specifies that the component should automatically get focus on load.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) autofocus: boolean | undefined;\n /**\n * Index of the element in tabbing order.\n * @group Props\n */\n @Input({ transform: numberAttribute }) tabindex?: number;\n /**\n * Target element to attach the overlay, valid values are \"body\" or a local ng-template variable of another element (note: use binding with brackets for template variables, e.g. [appendTo]=\"mydiv\" for a div element having #mydiv as variable name).\n * @defaultValue 'self'\n * @group Props\n */\n appendTo = input<HTMLElement | ElementRef | TemplateRef<any> | 'self' | 'body' | null | undefined | any>(undefined);\n /**\n * Callback to invoke when the component receives focus.\n * @param {Event} event - Browser event.\n * @group Emits\n */\n @Output() onFocus: EventEmitter<Event> = new EventEmitter<Event>();\n /**\n * Callback to invoke when the component loses focus.\n * @param {Event} event - Browser event.\n * @group Emits\n */\n @Output() onBlur: EventEmitter<Event> = new EventEmitter<Event>();\n /**\n * Callback to invoke when clear button is clicked.\n * @group Emits\n */\n @Output() onClear: EventEmitter<any> = new EventEmitter<any>();\n\n @ViewChild('input') input!: ElementRef;\n\n @ContentChild('content', { descendants: false }) contentTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('footer', { descendants: false }) footerTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('header', { descendants: false }) headerTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('clearicon', { descendants: false }) clearIconTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('hideicon', { descendants: false }) hideIconTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChild('showicon', { descendants: false }) showIconTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChildren(PrimeTemplate) templates!: QueryList<PrimeTemplate>;\n\n $appendTo = computed(() => this.appendTo() || this.config.overlayAppendTo());\n\n _contentTemplate: TemplateRef<any> | undefined;\n\n _footerTemplate: TemplateRef<any> | undefined;\n\n _headerTemplate: TemplateRef<any> | undefined;\n\n _clearIconTemplate: TemplateRef<any> | undefined;\n\n _hideIconTemplate: TemplateRef<any> | undefined;\n\n _showIconTemplate: TemplateRef<any> | undefined;\n\n overlayVisible: boolean = false;\n\n meter: Nullable<Meter>;\n\n infoText: Nullable<string>;\n\n focused: boolean = false;\n\n unmasked: boolean = false;\n\n mediumCheckRegExp!: RegExp;\n\n strongCheckRegExp!: RegExp;\n\n resizeListener: VoidListener;\n\n scrollHandler: Nullable<ConnectedOverlayScrollHandler>;\n\n overlay: any;\n\n value: Nullable<string> = null;\n\n translationSubscription: Nullable<Subscription>;\n\n _componentStyle = inject(PasswordStyle);\n\n overlayService = inject(OverlayService);\n\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\n ngAfterContentInit() {\n this.templates.forEach((item) => {\n switch (item.getType()) {\n case 'content':\n this._contentTemplate = item.template;\n break;\n\n case 'header':\n this._headerTemplate = item.template;\n break;\n\n case 'footer':\n this._footerTemplate = item.template;\n break;\n\n case 'clearicon':\n this._clearIconTemplate = item.template;\n break;\n\n case 'hideicon':\n this._hideIconTemplate = item.template;\n break;\n\n case 'showicon':\n this._showIconTemplate = item.template;\n break;\n\n default:\n this._contentTemplate = item.template;\n break;\n }\n });\n }\n\n onAnimationStart(event: AnimationEvent) {\n switch (event.toState) {\n case 'visible':\n this.overlay = event.element;\n ZIndexUtils.set('overlay', this.overlay, this.config.zIndex.overlay);\n this.attrSelector && this.overlay.setAttribute(this.attrSelector, '');\n this.appendContainer();\n this.alignOverlay();\n this.bindScrollListener();\n this.bindResizeListener();\n break;\n\n case 'void':\n this.unbindScrollListener();\n this.unbindResizeListener();\n this.overlay = null;\n break;\n }\n }\n\n onAnimationEnd(event: AnimationEvent) {\n switch (event.toState) {\n case 'void':\n ZIndexUtils.clear(event.element);\n break;\n }\n }\n\n appendContainer() {\n DomHandler.appendOverlay(this.overlay, this.$appendTo() === 'body' ? this.document.body : this.$appendTo(), this.$appendTo());\n }\n\n alignOverlay() {\n (this.overlay as HTMLElement).style.minWidth = getOuterWidth(this.input.nativeElement) + 'px';\n if (this.$appendTo() === 'self') relativePosition(this.overlay as HTMLElement, this.input?.nativeElement);\n else absolutePosition(this.overlay as HTMLElement, this.input?.nativeElement);\n }\n\n onInput(event: Event) {\n this.value = (event.target as HTMLInputElement).value;\n this.onModelChange(this.value);\n }\n\n onInputFocus(event: Event) {\n this.focused = true;\n if (this.feedback) {\n this.overlayVisible = true;\n }\n\n this.onFocus.emit(event);\n }\n\n onInputBlur(event: Event) {\n this.focused = false;\n if (this.feedback) {\n this.overlayVisible = false;\n }\n\n this.onModelTouched();\n this.onBlur.emit(event);\n }\n\n onKeyUp(event: KeyboardEvent) {\n if (this.feedback) {\n let value = (event.target as HTMLInputElement).value;\n this.updateUI(value);\n\n if (event.code === 'Escape') {\n this.overlayVisible && (this.overlayVisible = false);\n\n return;\n }\n\n if (!this.overlayVisible) {\n this.overlayVisible = true;\n }\n }\n }\n\n updateUI(value: string) {\n let label = null;\n let meter = null;\n\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\n case 2:\n label = this.mediumText();\n meter = {\n strength: 'medium',\n width: '66.66%'\n };\n break;\n\n case 3:\n label = this.strongText();\n meter = {\n strength: 'strong',\n width: '100%'\n };\n break;\n\n default:\n label = this.promptText();\n meter = null;\n break;\n }\n\n this.meter = meter;\n this.infoText = label;\n }\n\n onMaskToggle() {\n this.unmasked = !this.unmasked;\n }\n\n onOverlayClick(event: Event) {\n this.overlayService.add({\n originalEvent: event,\n target: this.el.nativeElement\n });\n }\n\n testStrength(str: string) {\n let level = 0;\n\n if (this.strongCheckRegExp.test(str)) level = 3;\n else if (this.mediumCheckRegExp.test(str)) level = 2;\n else if (str.length) level = 1;\n\n return level;\n }\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\n this.scrollHandler.bindScrollListener();\n }\n }\n\n bindResizeListener() {\n if (isPlatformBrowser(this.platformId)) {\n if (!this.resizeListener) {\n const window = this.document.defaultView as Window;\n this.resizeListener = this.renderer.listen(window, 'resize', () => {\n if (this.overlayVisible && !isTouchDevice()) {\n this.overlayVisible = false;\n }\n });\n }\n }\n }\n\n unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n }\n\n unbindResizeListener() {\n if (this.resizeListener) {\n this.resizeListener();\n this.resizeListener = null;\n }\n }\n\n promptText() {\n return this.promptLabel || this.getTranslation(TranslationKeys.PASSWORD_PROMPT);\n }\n\n weakText() {\n return this.weakLabel || this.getTranslation(TranslationKeys.WEAK);\n }\n\n mediumText() {\n return this.mediumLabel || this.getTranslation(TranslationKeys.MEDIUM);\n }\n\n strongText() {\n return this.strongLabel || this.getTranslation(TranslationKeys.STRONG);\n }\n\n restoreAppend() {\n if (this.overlay && this.$appendTo()) {\n if (this.$appendTo() === 'body') this.renderer.removeChild(this.document.body, this.overlay);\n else (this.document as any).getElementById(this.$appendTo()).removeChild(this.overlay);\n }\n }\n\n inputType(unmasked: boolean) {\n return unmasked ? 'text' : 'password';\n }\n\n getTranslation(option: string) {\n return this.config.getTranslation(option);\n }\n\n clear() {\n this.value = null;\n this.onModelChange(this.value);\n this.writeValue(this.value);\n this.onClear.emit();\n }\n\n /**\n * @override\n *\n * @see {@link BaseEditableHolder.writeControlValue}\n * Writes the value to the control.\n */\n writeControlValue(value: any, setModelValue: (value: any) => void): void {\n if (value === undefined) this.value = null;\n else this.value = value;\n\n if (this.feedback) this.updateUI(this.value || '');\n setModelValue(this.value);\n this.cd.markForCheck();\n }\n\n ngOnDestroy() {\n if (this.overlay) {\n ZIndexUtils.clear(this.overlay);\n this.overlay = null;\n }\n\n this.restoreAppend();\n this.unbindResizeListener();\n\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n\n if (this.translationSubscription) {\n this.translationSubscription.unsubscribe();\n }\n\n super.ngOnDestroy();\n }\n}\n\n@NgModule({\n imports: [Password, PasswordDirective, SharedModule],\n exports: [PasswordDirective, Password, SharedModule]\n})\nexport class PasswordModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["style"],"mappings":"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"}
@@ -23,7 +23,7 @@ const classes = {
23
23
  'p-radiobutton p-component',
24
24
  {
25
25
  'p-radiobutton-checked': instance.checked,
26
- 'p-disabled': instance.disabled(),
26
+ 'p-disabled': instance.$disabled(),
27
27
  'p-invalid': instance.invalid(),
28
28
  'p-variant-filled': instance.$variant() === 'filled',
29
29
  'p-radiobutton-sm p-inputfield-sm': instance.size() === 'small',
@@ -188,8 +188,6 @@ class RadioButton extends BaseEditableHolder {
188
188
  onBlur = new EventEmitter();
189
189
  inputViewChild;
190
190
  $variant = computed(() => this.variant() || this.config.inputStyle() || this.config.inputVariant());
191
- onModelChange = () => { };
192
- onModelTouched = () => { };
193
191
  checked;
194
192
  focused;
195
193
  control;
@@ -202,12 +200,12 @@ class RadioButton extends BaseEditableHolder {
202
200
  this.registry.add(this.control, this);
203
201
  }
204
202
  onChange(event) {
205
- if (!this.disabled()) {
203
+ if (!this.$disabled()) {
206
204
  this.select(event);
207
205
  }
208
206
  }
209
207
  select(event) {
210
- if (!this.disabled()) {
208
+ if (!this.$disabled()) {
211
209
  this.checked = true;
212
210
  this.writeModelValue(this.checked);
213
211
  this.onModelChange(this.value);
@@ -215,17 +213,6 @@ class RadioButton extends BaseEditableHolder {
215
213
  this.onClick.emit({ originalEvent: event, value: this.value });
216
214
  }
217
215
  }
218
- writeValue(value) {
219
- this.checked = !this.binary ? value == this.value : !!value;
220
- this.writeModelValue(this.checked);
221
- this.cd.markForCheck();
222
- }
223
- registerOnChange(fn) {
224
- this.onModelChange = fn;
225
- }
226
- registerOnTouched(fn) {
227
- this.onModelTouched = fn;
228
- }
229
216
  onInputFocus(event) {
230
217
  this.focused = true;
231
218
  this.onFocus.emit(event);
@@ -242,6 +229,17 @@ class RadioButton extends BaseEditableHolder {
242
229
  focus() {
243
230
  this.inputViewChild.nativeElement.focus();
244
231
  }
232
+ /**
233
+ * @override
234
+ *
235
+ * @see {@link BaseEditableHolder.writeControlValue}
236
+ * Writes the value to the control.
237
+ */
238
+ writeControlValue(value, setModelValue) {
239
+ this.checked = !this.binary ? value == this.value : !!value;
240
+ setModelValue(this.checked);
241
+ this.cd.markForCheck();
242
+ }
245
243
  ngOnDestroy() {
246
244
  this.registry.remove(this);
247
245
  super.ngOnDestroy();
@@ -255,7 +253,7 @@ class RadioButton extends BaseEditableHolder {
255
253
  [class]="cx('input')"
256
254
  [attr.name]="name()"
257
255
  [attr.required]="required() ? '' : undefined"
258
- [attr.disabled]="disabled() ? '' : undefined"
256
+ [attr.disabled]="$disabled() ? '' : undefined"
259
257
  [checked]="checked"
260
258
  [attr.value]="modelValue()"
261
259
  [attr.aria-labelledby]="ariaLabelledBy"
@@ -286,7 +284,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
286
284
  [class]="cx('input')"
287
285
  [attr.name]="name()"
288
286
  [attr.required]="required() ? '' : undefined"
289
- [attr.disabled]="disabled() ? '' : undefined"
287
+ [attr.disabled]="$disabled() ? '' : undefined"
290
288
  [checked]="checked"
291
289
  [attr.value]="modelValue()"
292
290
  [attr.aria-labelledby]="ariaLabelledBy"
@@ -1 +1 @@
1
- {"version":3,"file":"primeng-radiobutton.mjs","sources":["../../src/radiobutton/style/radiobuttonstyle.ts","../../src/radiobutton/radiobutton.ts","../../src/radiobutton/primeng-radiobutton.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { style } from '@primeuix/styles/radiobutton';\nimport { BaseStyle } from 'primeng/base';\n\nconst theme = /*css*/ `\n ${style}\n\n /* For PrimeNG */\n p-radioButton.ng-invalid.ng-dirty .p-radiobutton-box,\n p-radio-button.ng-invalid.ng-dirty .p-radiobutton-box,\n p-radiobutton.ng-invalid.ng-dirty .p-radiobutton-box {\n border-color: dt('radiobutton.invalid.border.color');\n }\n`;\n\nconst classes = {\n root: ({ instance }) => [\n 'p-radiobutton p-component',\n {\n 'p-radiobutton-checked': instance.checked,\n 'p-disabled': instance.disabled(),\n 'p-invalid': instance.invalid(),\n 'p-variant-filled': instance.$variant() === 'filled',\n 'p-radiobutton-sm p-inputfield-sm': instance.size() === 'small',\n 'p-radiobutton-lg p-inputfield-lg': instance.size() === 'large'\n }\n ],\n box: 'p-radiobutton-box',\n input: 'p-radiobutton-input',\n icon: 'p-radiobutton-icon'\n};\n\n@Injectable()\nexport class RadioButtonStyle extends BaseStyle {\n name = 'radiobutton';\n\n theme = theme;\n\n classes = classes;\n}\n\n/**\n *\n * RadioButton is an extension to standard radio button element with theming.\n *\n * [Live Demo](https://www.primeng.org/radiobutton/)\n *\n * @module radiobuttonstyle\n *\n */\nexport enum RadioButtonClasses {\n /**\n * Class name of the root element\n */\n root = 'p-radiobutton',\n /**\n * Class name of the box element\n */\n box = 'p-radiobutton-box',\n /**\n * Class name of the input element\n */\n input = 'p-radiobutton-input',\n /**\n * Class name of the icon element\n */\n icon = 'p-radiobutton-icon'\n}\n\nexport interface RadioButtonStyle extends BaseStyle {}\n","import { CommonModule } from '@angular/common';\nimport { booleanAttribute, ChangeDetectionStrategy, Component, computed, ElementRef, EventEmitter, forwardRef, inject, Injectable, Injector, input, Input, NgModule, numberAttribute, OnDestroy, OnInit, Output, ViewChild } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, NgControl } from '@angular/forms';\nimport { SharedModule } from 'primeng/api';\nimport { AutoFocus } from 'primeng/autofocus';\nimport { BaseEditableHolder } from 'primeng/baseeditableholder';\nimport { Nullable } from 'primeng/ts-helpers';\nimport { RadioButtonClickEvent } from './radiobutton.interface';\nimport { RadioButtonStyle } from './style/radiobuttonstyle';\n\nexport const RADIO_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RadioButton),\n multi: true\n};\n\n@Injectable({\n providedIn: 'root'\n})\nexport class RadioControlRegistry {\n private accessors: any[] = [];\n\n add(control: NgControl, accessor: RadioButton) {\n this.accessors.push([control, accessor]);\n }\n\n remove(accessor: RadioButton) {\n this.accessors = this.accessors.filter((c) => {\n return c[1] !== accessor;\n });\n }\n\n select(accessor: RadioButton) {\n this.accessors.forEach((c) => {\n if (this.isSameGroup(c, accessor) && c[1] !== accessor) {\n c[1].writeValue(accessor.value);\n }\n });\n }\n\n private isSameGroup(controlPair: [NgControl, RadioButton], accessor: RadioButton): boolean {\n if (!controlPair[0].control) {\n return false;\n }\n\n return controlPair[0].control.root === (accessor as any).control.control.root && controlPair[1].name() === accessor.name();\n }\n}\n/**\n * RadioButton is an extension to standard radio button element with theming.\n * @group Components\n */\n@Component({\n selector: 'p-radioButton, p-radiobutton, p-radio-button',\n standalone: true,\n imports: [CommonModule, AutoFocus, SharedModule],\n template: `\n <input\n #input\n [attr.id]=\"inputId\"\n type=\"radio\"\n [class]=\"cx('input')\"\n [attr.name]=\"name()\"\n [attr.required]=\"required() ? '' : undefined\"\n [attr.disabled]=\"disabled() ? '' : undefined\"\n [checked]=\"checked\"\n [attr.value]=\"modelValue()\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.tabindex]=\"tabindex\"\n [attr.aria-checked]=\"checked\"\n (focus)=\"onInputFocus($event)\"\n (blur)=\"onInputBlur($event)\"\n (change)=\"onChange($event)\"\n [pAutoFocus]=\"autofocus\"\n />\n <div [class]=\"cx('box')\" [attr.data-pc-section]=\"'input'\">\n <div [class]=\"cx('icon')\" [attr.data-pc-section]=\"'icon'\"></div>\n </div>\n `,\n providers: [RADIO_VALUE_ACCESSOR, RadioButtonStyle],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.data-pc-name]': \"'radiobutton'\",\n '[attr.data-pc-section]': \"'root'\",\n '[class]': \"cx('root')\"\n }\n})\nexport class RadioButton extends BaseEditableHolder implements ControlValueAccessor, OnInit, OnDestroy {\n /**\n * Value of the radiobutton.\n * @group Props\n */\n @Input() value: any;\n /**\n * Index of the element in tabbing order.\n * @group Props\n */\n @Input({ transform: numberAttribute }) tabindex: number | undefined;\n /**\n * Identifier of the focus input to match a label defined for the component.\n * @group Props\n */\n @Input() inputId: string | undefined;\n /**\n * Establishes relationships between the component and label(s) where its value should be one or more element IDs.\n * @group Props\n */\n @Input() ariaLabelledBy: string | undefined;\n /**\n * Used to define a string that labels the input element.\n * @group Props\n */\n @Input() ariaLabel: string | undefined;\n /**\n * Style class of the component.\n * @deprecated since v20.0.0, use `class` instead.\n * @group Props\n */\n @Input() styleClass: string | undefined;\n /**\n * When present, it specifies that the component should automatically get focus on load.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) autofocus: boolean | undefined;\n /**\n * Allows to select a boolean value.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) binary: boolean | undefined;\n /**\n * Specifies the input variant of the component.\n * @defaultValue undefined\n * @group Props\n */\n variant = input<'filled' | 'outlined' | undefined>();\n /**\n * Specifies the size of the component.\n * @defaultValue undefined\n * @group Props\n */\n size = input<'large' | 'small' | undefined>();\n /**\n * Callback to invoke on radio button click.\n * @param {RadioButtonClickEvent} event - Custom click event.\n * @group Emits\n */\n @Output() onClick: EventEmitter<RadioButtonClickEvent> = new EventEmitter<RadioButtonClickEvent>();\n /**\n * Callback to invoke when the receives focus.\n * @param {Event} event - Browser event.\n * @group Emits\n */\n @Output() onFocus: EventEmitter<Event> = new EventEmitter<Event>();\n /**\n * Callback to invoke when the loses focus.\n * @param {Event} event - Browser event.\n * @group Emits\n */\n @Output() onBlur: EventEmitter<Event> = new EventEmitter<Event>();\n\n @ViewChild('input') inputViewChild!: ElementRef;\n\n $variant = computed(() => this.variant() || this.config.inputStyle() || this.config.inputVariant());\n\n public onModelChange: Function = () => {};\n\n public onModelTouched: Function = () => {};\n\n public checked: Nullable<boolean>;\n\n public focused: Nullable<boolean>;\n\n control: Nullable<NgControl>;\n\n _componentStyle = inject(RadioButtonStyle);\n\n injector = inject(Injector);\n\n registry = inject(RadioControlRegistry);\n\n ngOnInit() {\n super.ngOnInit();\n this.control = this.injector.get(NgControl);\n this.registry.add(this.control, this);\n }\n\n onChange(event) {\n if (!this.disabled()) {\n this.select(event);\n }\n }\n\n select(event: Event) {\n if (!this.disabled()) {\n this.checked = true;\n this.writeModelValue(this.checked);\n this.onModelChange(this.value);\n this.registry.select(this);\n this.onClick.emit({ originalEvent: event, value: this.value });\n }\n }\n\n writeValue(value: any): void {\n this.checked = !this.binary ? value == this.value : !!value;\n this.writeModelValue(this.checked);\n this.cd.markForCheck();\n }\n\n registerOnChange(fn: Function): void {\n this.onModelChange = fn;\n }\n\n registerOnTouched(fn: Function): void {\n this.onModelTouched = fn;\n }\n\n onInputFocus(event: Event) {\n this.focused = true;\n this.onFocus.emit(event);\n }\n\n onInputBlur(event: Event) {\n this.focused = false;\n this.onModelTouched();\n this.onBlur.emit(event);\n }\n\n /**\n * Applies focus to input field.\n * @group Method\n */\n public focus() {\n this.inputViewChild.nativeElement.focus();\n }\n\n ngOnDestroy() {\n this.registry.remove(this);\n super.ngOnDestroy();\n }\n}\n\n@NgModule({\n imports: [RadioButton, SharedModule],\n exports: [RadioButton, SharedModule]\n})\nexport class RadioButtonModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"primeng-radiobutton.mjs","sources":["../../src/radiobutton/style/radiobuttonstyle.ts","../../src/radiobutton/radiobutton.ts","../../src/radiobutton/primeng-radiobutton.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { style } from '@primeuix/styles/radiobutton';\nimport { BaseStyle } from 'primeng/base';\n\nconst theme = /*css*/ `\n ${style}\n\n /* For PrimeNG */\n p-radioButton.ng-invalid.ng-dirty .p-radiobutton-box,\n p-radio-button.ng-invalid.ng-dirty .p-radiobutton-box,\n p-radiobutton.ng-invalid.ng-dirty .p-radiobutton-box {\n border-color: dt('radiobutton.invalid.border.color');\n }\n`;\n\nconst classes = {\n root: ({ instance }) => [\n 'p-radiobutton p-component',\n {\n 'p-radiobutton-checked': instance.checked,\n 'p-disabled': instance.$disabled(),\n 'p-invalid': instance.invalid(),\n 'p-variant-filled': instance.$variant() === 'filled',\n 'p-radiobutton-sm p-inputfield-sm': instance.size() === 'small',\n 'p-radiobutton-lg p-inputfield-lg': instance.size() === 'large'\n }\n ],\n box: 'p-radiobutton-box',\n input: 'p-radiobutton-input',\n icon: 'p-radiobutton-icon'\n};\n\n@Injectable()\nexport class RadioButtonStyle extends BaseStyle {\n name = 'radiobutton';\n\n theme = theme;\n\n classes = classes;\n}\n\n/**\n *\n * RadioButton is an extension to standard radio button element with theming.\n *\n * [Live Demo](https://www.primeng.org/radiobutton/)\n *\n * @module radiobuttonstyle\n *\n */\nexport enum RadioButtonClasses {\n /**\n * Class name of the root element\n */\n root = 'p-radiobutton',\n /**\n * Class name of the box element\n */\n box = 'p-radiobutton-box',\n /**\n * Class name of the input element\n */\n input = 'p-radiobutton-input',\n /**\n * Class name of the icon element\n */\n icon = 'p-radiobutton-icon'\n}\n\nexport interface RadioButtonStyle extends BaseStyle {}\n","import { CommonModule } from '@angular/common';\nimport { booleanAttribute, ChangeDetectionStrategy, Component, computed, ElementRef, EventEmitter, forwardRef, inject, Injectable, Injector, input, Input, NgModule, numberAttribute, OnDestroy, OnInit, Output, ViewChild } from '@angular/core';\nimport { NG_VALUE_ACCESSOR, NgControl } from '@angular/forms';\nimport { SharedModule } from 'primeng/api';\nimport { AutoFocus } from 'primeng/autofocus';\nimport { BaseEditableHolder } from 'primeng/baseeditableholder';\nimport { Nullable } from 'primeng/ts-helpers';\nimport { RadioButtonClickEvent } from './radiobutton.interface';\nimport { RadioButtonStyle } from './style/radiobuttonstyle';\n\nexport const RADIO_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RadioButton),\n multi: true\n};\n\n@Injectable({\n providedIn: 'root'\n})\nexport class RadioControlRegistry {\n private accessors: any[] = [];\n\n add(control: NgControl, accessor: RadioButton) {\n this.accessors.push([control, accessor]);\n }\n\n remove(accessor: RadioButton) {\n this.accessors = this.accessors.filter((c) => {\n return c[1] !== accessor;\n });\n }\n\n select(accessor: RadioButton) {\n this.accessors.forEach((c) => {\n if (this.isSameGroup(c, accessor) && c[1] !== accessor) {\n c[1].writeValue(accessor.value);\n }\n });\n }\n\n private isSameGroup(controlPair: [NgControl, RadioButton], accessor: RadioButton): boolean {\n if (!controlPair[0].control) {\n return false;\n }\n\n return controlPair[0].control.root === (accessor as any).control.control.root && controlPair[1].name() === accessor.name();\n }\n}\n/**\n * RadioButton is an extension to standard radio button element with theming.\n * @group Components\n */\n@Component({\n selector: 'p-radioButton, p-radiobutton, p-radio-button',\n standalone: true,\n imports: [CommonModule, AutoFocus, SharedModule],\n template: `\n <input\n #input\n [attr.id]=\"inputId\"\n type=\"radio\"\n [class]=\"cx('input')\"\n [attr.name]=\"name()\"\n [attr.required]=\"required() ? '' : undefined\"\n [attr.disabled]=\"$disabled() ? '' : undefined\"\n [checked]=\"checked\"\n [attr.value]=\"modelValue()\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.tabindex]=\"tabindex\"\n [attr.aria-checked]=\"checked\"\n (focus)=\"onInputFocus($event)\"\n (blur)=\"onInputBlur($event)\"\n (change)=\"onChange($event)\"\n [pAutoFocus]=\"autofocus\"\n />\n <div [class]=\"cx('box')\" [attr.data-pc-section]=\"'input'\">\n <div [class]=\"cx('icon')\" [attr.data-pc-section]=\"'icon'\"></div>\n </div>\n `,\n providers: [RADIO_VALUE_ACCESSOR, RadioButtonStyle],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.data-pc-name]': \"'radiobutton'\",\n '[attr.data-pc-section]': \"'root'\",\n '[class]': \"cx('root')\"\n }\n})\nexport class RadioButton extends BaseEditableHolder implements OnInit, OnDestroy {\n /**\n * Value of the radiobutton.\n * @group Props\n */\n @Input() value: any;\n /**\n * Index of the element in tabbing order.\n * @group Props\n */\n @Input({ transform: numberAttribute }) tabindex: number | undefined;\n /**\n * Identifier of the focus input to match a label defined for the component.\n * @group Props\n */\n @Input() inputId: string | undefined;\n /**\n * Establishes relationships between the component and label(s) where its value should be one or more element IDs.\n * @group Props\n */\n @Input() ariaLabelledBy: string | undefined;\n /**\n * Used to define a string that labels the input element.\n * @group Props\n */\n @Input() ariaLabel: string | undefined;\n /**\n * Style class of the component.\n * @deprecated since v20.0.0, use `class` instead.\n * @group Props\n */\n @Input() styleClass: string | undefined;\n /**\n * When present, it specifies that the component should automatically get focus on load.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) autofocus: boolean | undefined;\n /**\n * Allows to select a boolean value.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) binary: boolean | undefined;\n /**\n * Specifies the input variant of the component.\n * @defaultValue undefined\n * @group Props\n */\n variant = input<'filled' | 'outlined' | undefined>();\n /**\n * Specifies the size of the component.\n * @defaultValue undefined\n * @group Props\n */\n size = input<'large' | 'small' | undefined>();\n /**\n * Callback to invoke on radio button click.\n * @param {RadioButtonClickEvent} event - Custom click event.\n * @group Emits\n */\n @Output() onClick: EventEmitter<RadioButtonClickEvent> = new EventEmitter<RadioButtonClickEvent>();\n /**\n * Callback to invoke when the receives focus.\n * @param {Event} event - Browser event.\n * @group Emits\n */\n @Output() onFocus: EventEmitter<Event> = new EventEmitter<Event>();\n /**\n * Callback to invoke when the loses focus.\n * @param {Event} event - Browser event.\n * @group Emits\n */\n @Output() onBlur: EventEmitter<Event> = new EventEmitter<Event>();\n\n @ViewChild('input') inputViewChild!: ElementRef;\n\n $variant = computed(() => this.variant() || this.config.inputStyle() || this.config.inputVariant());\n\n public checked: Nullable<boolean>;\n\n public focused: Nullable<boolean>;\n\n control: Nullable<NgControl>;\n\n _componentStyle = inject(RadioButtonStyle);\n\n injector = inject(Injector);\n\n registry = inject(RadioControlRegistry);\n\n ngOnInit() {\n super.ngOnInit();\n this.control = this.injector.get(NgControl);\n this.registry.add(this.control, this);\n }\n\n onChange(event) {\n if (!this.$disabled()) {\n this.select(event);\n }\n }\n\n select(event: Event) {\n if (!this.$disabled()) {\n this.checked = true;\n this.writeModelValue(this.checked);\n this.onModelChange(this.value);\n this.registry.select(this);\n this.onClick.emit({ originalEvent: event, value: this.value });\n }\n }\n\n onInputFocus(event: Event) {\n this.focused = true;\n this.onFocus.emit(event);\n }\n\n onInputBlur(event: Event) {\n this.focused = false;\n this.onModelTouched();\n this.onBlur.emit(event);\n }\n\n /**\n * Applies focus to input field.\n * @group Method\n */\n public focus() {\n this.inputViewChild.nativeElement.focus();\n }\n\n /**\n * @override\n *\n * @see {@link BaseEditableHolder.writeControlValue}\n * Writes the value to the control.\n */\n writeControlValue(value: any, setModelValue: (value: any) => void): void {\n this.checked = !this.binary ? value == this.value : !!value;\n setModelValue(this.checked);\n this.cd.markForCheck();\n }\n\n ngOnDestroy() {\n this.registry.remove(this);\n super.ngOnDestroy();\n }\n}\n\n@NgModule({\n imports: [RadioButton, SharedModule],\n exports: [RadioButton, SharedModule]\n})\nexport class RadioButtonModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}