@acorex/components 21.0.1-next.86 → 21.0.1-next.88

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.
@@ -6,10 +6,13 @@ import { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';
6
6
  import { classes } from 'polytype';
7
7
  import { AXBadgeComponent, AXBadgeModule } from '@acorex/components/badge';
8
8
  import { AXButtonModule } from '@acorex/components/button';
9
+ import * as i2 from '@acorex/components/decorators';
9
10
  import { AXDecoratorModule } from '@acorex/components/decorators';
10
11
  import { AXProgressBarComponent, AXProgressBarModule } from '@acorex/components/progress-bar';
11
12
  import { AXTranslatorPipe, AXTranslationModule } from '@acorex/core/translation';
12
13
  import { AsyncPipe, CommonModule } from '@angular/common';
14
+ import * as i1$1 from '@acorex/components/popover';
15
+ import { AXPopoverModule } from '@acorex/components/popover';
13
16
 
14
17
  /**
15
18
  * A specialized input field designed for securely capturing user passwords. It incorporates essential features to enhance usability, accessibility, and security while maintaining a user-friendly interface. The component extends MXInputBaseValueComponent and MXLookComponent to provide comprehensive input functionality with visual styling options.
@@ -114,6 +117,7 @@ class AXPasswordStrengthValidationComponent {
114
117
  this.showUseLowerCase = input(true, ...(ngDevMode ? [{ debugName: "showUseLowerCase" }] : []));
115
118
  this.showUseNumber = input(true, ...(ngDevMode ? [{ debugName: "showUseNumber" }] : []));
116
119
  this.showUseSpecialCharacter = input(true, ...(ngDevMode ? [{ debugName: "showUseSpecialCharacter" }] : []));
120
+ this.mode = input('full', ...(ngDevMode ? [{ debugName: "mode" }] : []));
117
121
  this.isLengthGraterThan8 = signal({ regex: /.{8,}/, state: false }, ...(ngDevMode ? [{ debugName: "isLengthGraterThan8" }] : []));
118
122
  this.isUseUpperCase = signal({ regex: /[A-Z]/, state: false }, ...(ngDevMode ? [{ debugName: "isUseUpperCase" }] : []));
119
123
  this.isUseLowerCase = signal({ regex: /[a-z]/, state: false }, ...(ngDevMode ? [{ debugName: "isUseLowerCase" }] : []));
@@ -166,12 +170,12 @@ class AXPasswordStrengthValidationComponent {
166
170
  this.passwordStrength.set((strength * 100) / 5);
167
171
  }
168
172
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXPasswordStrengthValidationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
169
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.3", type: AXPasswordStrengthValidationComponent, isStandalone: true, selector: "ax-password-strength-validation", inputs: { showProgress: { classPropertyName: "showProgress", publicName: "showProgress", isSignal: true, isRequired: false, transformFunction: null }, showLengthGraterThan8: { classPropertyName: "showLengthGraterThan8", publicName: "showLengthGraterThan8", isSignal: true, isRequired: false, transformFunction: null }, showUseUpperCase: { classPropertyName: "showUseUpperCase", publicName: "showUseUpperCase", isSignal: true, isRequired: false, transformFunction: null }, showUseLowerCase: { classPropertyName: "showUseLowerCase", publicName: "showUseLowerCase", isSignal: true, isRequired: false, transformFunction: null }, showUseNumber: { classPropertyName: "showUseNumber", publicName: "showUseNumber", isSignal: true, isRequired: false, transformFunction: null }, showUseSpecialCharacter: { classPropertyName: "showUseSpecialCharacter", publicName: "showUseSpecialCharacter", isSignal: true, isRequired: false, transformFunction: null } }, providers: [{ provide: AXComponent, useExisting: AXPasswordStrengthValidationComponent }], ngImport: i0, template: "@if (showProgress()) {\n <small\n class=\"ax-state-password\"\n [class.ax-text-red]=\"strengthLabelColor() === 'danger'\"\n [class.ax-text-orange]=\"strengthLabelColor() === 'warning'\"\n [class.ax-text-green]=\"strengthLabelColor() === 'success'\"\n >\n {{ '@acorex:password-strength.levels.' + strengthLabel() | translate | async }}\n </small>\n\n <ax-progress-bar [color]=\"strengthLabelColor()\" [progress]=\"passwordStrength()\" [height]=\"4\"></ax-progress-bar>\n}\n\n<div class=\"ax-hint-container\">\n @if (showLengthGraterThan8()) {\n <small class=\"ax-hint-state\">\n <ax-badge [color]=\"isLengthGraterThan8().state ? 'success' : 'danger'\"></ax-badge>\n <span>\n {{ '@acorex:password-strength.rules.at-least-8-characters' | translate | async }}\n </span>\n </small>\n }\n @if (showUseUpperCase()) {\n <small class=\"ax-hint-state\">\n <ax-badge [color]=\"isUseUpperCase().state ? 'success' : 'danger'\"></ax-badge>\n <span>\n {{ '@acorex:password-strength.rules.english-upper-case-letter' | translate | async }}\n </span>\n </small>\n }\n @if (showUseLowerCase()) {\n <small class=\"ax-hint-state\">\n <ax-badge [color]=\"isUseLowerCase().state ? 'success' : 'danger'\"></ax-badge>\n <span>\n {{ '@acorex:password-strength.rules.english-lower-case-letter' | translate | async }}\n </span>\n </small>\n }\n @if (showUseNumber()) {\n <small class=\"ax-hint-state\">\n <ax-badge [color]=\"isUseNumber().state ? 'success' : 'danger'\"></ax-badge\n ><span> {{ '@acorex:password-strength.rules.digits' | translate | async }} </span>\n </small>\n }\n @if (showUseSpecialCharacter()) {\n <small class=\"ax-hint-state\">\n <ax-badge [color]=\"isUseSpecialCharacter().state ? 'success' : 'danger'\"></ax-badge>\n <span>\n {{ '@acorex:password-strength.rules.special-character' | translate | async }}\n </span>\n </small>\n }\n</div>\n", styles: ["@layer components{.ax-state-password{margin-bottom:calc(var(--spacing,.25rem) * 1.5);display:block}.ax-state-password.ax-text-red{color:rgba(var(--ax-sys-color-danger-surface))}.ax-state-password.ax-text-orange{color:rgba(var(--ax-sys-color-warning-surface))}.ax-state-password.ax-text-green{color:rgba(var(--ax-sys-color-success-surface))}.ax-hint-container{gap:calc(var(--spacing,.25rem) * 2);padding-top:calc(var(--spacing,.25rem) * 2);flex-direction:column;display:flex}.ax-hint-container ax-badge{margin-inline-end:calc(var(--spacing,.25rem) * 1)}}\n/*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "component", type: AXProgressBarComponent, selector: "ax-progress-bar", inputs: ["color", "mode", "progress", "height"], outputs: ["ValueChange", "sizeChange"] }, { kind: "component", type: AXBadgeComponent, selector: "ax-badge", inputs: ["color", "look", "text"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
173
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.3", type: AXPasswordStrengthValidationComponent, isStandalone: true, selector: "ax-password-strength-validation", inputs: { showProgress: { classPropertyName: "showProgress", publicName: "showProgress", isSignal: true, isRequired: false, transformFunction: null }, showLengthGraterThan8: { classPropertyName: "showLengthGraterThan8", publicName: "showLengthGraterThan8", isSignal: true, isRequired: false, transformFunction: null }, showUseUpperCase: { classPropertyName: "showUseUpperCase", publicName: "showUseUpperCase", isSignal: true, isRequired: false, transformFunction: null }, showUseLowerCase: { classPropertyName: "showUseLowerCase", publicName: "showUseLowerCase", isSignal: true, isRequired: false, transformFunction: null }, showUseNumber: { classPropertyName: "showUseNumber", publicName: "showUseNumber", isSignal: true, isRequired: false, transformFunction: null }, showUseSpecialCharacter: { classPropertyName: "showUseSpecialCharacter", publicName: "showUseSpecialCharacter", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null } }, providers: [{ provide: AXComponent, useExisting: AXPasswordStrengthValidationComponent }], ngImport: i0, template: "<div class=\"ax-hint-icon\">\n <small\n class=\"ax-state-password\"\n [class.ax-text-red]=\"strengthLabelColor() === 'danger'\"\n [class.ax-text-orange]=\"strengthLabelColor() === 'warning'\"\n [class.ax-text-green]=\"strengthLabelColor() === 'success'\"\n >\n {{ '@acorex:password-strength.levels.' + strengthLabel() | translate | async }}\n </small>\n\n @if (mode() === 'compact') {\n <ax-icon\n [class.ax-text-red]=\"strengthLabelColor() === 'danger'\"\n [class.ax-text-orange]=\"strengthLabelColor() === 'warning'\"\n [class.ax-text-green]=\"strengthLabelColor() === 'success'\"\n #hint\n class=\"ax-icon ax-icon-info ax-state-password ax-sm\"\n ></ax-icon>\n <ax-popover openOn=\"click\" [target]=\"hint\">\n <div class=\"ax-password-box-hint-container\">\n @if (showLengthGraterThan8()) {\n <small class=\"ax-hint-state\">\n <ax-badge [color]=\"isLengthGraterThan8().state ? 'success' : 'danger'\"></ax-badge>\n <span>\n {{ '@acorex:password-strength.rules.at-least-8-characters' | translate | async }}\n </span>\n </small>\n }\n @if (showUseUpperCase()) {\n <small class=\"ax-hint-state\">\n <ax-badge [color]=\"isUseUpperCase().state ? 'success' : 'danger'\"></ax-badge>\n <span>\n {{ '@acorex:password-strength.rules.english-upper-case-letter' | translate | async }}\n </span>\n </small>\n }\n @if (showUseLowerCase()) {\n <small class=\"ax-hint-state\">\n <ax-badge [color]=\"isUseLowerCase().state ? 'success' : 'danger'\"></ax-badge>\n <span>\n {{ '@acorex:password-strength.rules.english-lower-case-letter' | translate | async }}\n </span>\n </small>\n }\n @if (showUseNumber()) {\n <small class=\"ax-hint-state\">\n <ax-badge [color]=\"isUseNumber().state ? 'success' : 'danger'\"></ax-badge\n ><span> {{ '@acorex:password-strength.rules.digits' | translate | async }} </span>\n </small>\n }\n @if (showUseSpecialCharacter()) {\n <small class=\"ax-hint-state\">\n <ax-badge [color]=\"isUseSpecialCharacter().state ? 'success' : 'danger'\"></ax-badge>\n <span>\n {{ '@acorex:password-strength.rules.special-character' | translate | async }}\n </span>\n </small>\n }\n </div>\n </ax-popover>\n }\n</div>\n\n@if (showProgress()) {\n <ax-progress-bar [color]=\"strengthLabelColor()\" [progress]=\"passwordStrength()\" [height]=\"4\"></ax-progress-bar>\n}\n\n<div class=\"ax-hint-container\">\n @if (mode() === 'full') {\n @if (showLengthGraterThan8()) {\n <small class=\"ax-hint-state\">\n <ax-badge [color]=\"isLengthGraterThan8().state ? 'success' : 'danger'\"></ax-badge>\n <span>\n {{ '@acorex:password-strength.rules.at-least-8-characters' | translate | async }}\n </span>\n </small>\n }\n @if (showUseUpperCase()) {\n <small class=\"ax-hint-state\">\n <ax-badge [color]=\"isUseUpperCase().state ? 'success' : 'danger'\"></ax-badge>\n <span>\n {{ '@acorex:password-strength.rules.english-upper-case-letter' | translate | async }}\n </span>\n </small>\n }\n @if (showUseLowerCase()) {\n <small class=\"ax-hint-state\">\n <ax-badge [color]=\"isUseLowerCase().state ? 'success' : 'danger'\"></ax-badge>\n <span>\n {{ '@acorex:password-strength.rules.english-lower-case-letter' | translate | async }}\n </span>\n </small>\n }\n @if (showUseNumber()) {\n <small class=\"ax-hint-state\">\n <ax-badge [color]=\"isUseNumber().state ? 'success' : 'danger'\"></ax-badge\n ><span> {{ '@acorex:password-strength.rules.digits' | translate | async }} </span>\n </small>\n }\n @if (showUseSpecialCharacter()) {\n <small class=\"ax-hint-state\">\n <ax-badge [color]=\"isUseSpecialCharacter().state ? 'success' : 'danger'\"></ax-badge>\n <span>\n {{ '@acorex:password-strength.rules.special-character' | translate | async }}\n </span>\n </small>\n }\n }\n</div>\n", styles: ["ax-password-strength-validation .ax-state-password{display:block}ax-password-strength-validation .ax-state-password.ax-text-red{color:rgb(var(--ax-sys-color-danger-surface))}ax-password-strength-validation .ax-state-password.ax-text-orange{color:rgb(var(--ax-sys-color-warning-surface))}ax-password-strength-validation .ax-state-password.ax-text-green{color:rgb(var(--ax-sys-color-success-surface))}ax-password-strength-validation .ax-hint-container{flex-direction:column;gap:.5rem;padding-top:.5rem;display:flex}ax-password-strength-validation .ax-hint-container ax-badge{margin-inline-end:.25rem}ax-password-strength-validation .ax-hint-text{cursor:pointer;width:fit-content}ax-password-strength-validation .ax-hint-icon{align-items:center;gap:.25rem;margin-bottom:.375rem;display:flex}ax-password-strength-validation .ax-hint-icon ax-icon{cursor:pointer;font-size:.7rem}.ax-password-box-hint-container{flex-direction:column;gap:.5rem;padding:.5rem;display:flex}\n"], dependencies: [{ kind: "component", type: AXProgressBarComponent, selector: "ax-progress-bar", inputs: ["color", "mode", "progress", "height"], outputs: ["ValueChange", "sizeChange"] }, { kind: "component", type: AXBadgeComponent, selector: "ax-badge", inputs: ["color", "look", "text"] }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "component", type: i1$1.AXPopoverComponent, selector: "ax-popover", inputs: ["width", "disablePanelClass", "disabled", "offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "repositionOnScroll", "backdropClass", "panelClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
170
174
  }
171
175
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXPasswordStrengthValidationComponent, decorators: [{
172
176
  type: Component,
173
- args: [{ selector: 'ax-password-strength-validation', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [AXProgressBarComponent, AXBadgeComponent, AsyncPipe, AXTranslatorPipe], providers: [{ provide: AXComponent, useExisting: AXPasswordStrengthValidationComponent }], template: "@if (showProgress()) {\n <small\n class=\"ax-state-password\"\n [class.ax-text-red]=\"strengthLabelColor() === 'danger'\"\n [class.ax-text-orange]=\"strengthLabelColor() === 'warning'\"\n [class.ax-text-green]=\"strengthLabelColor() === 'success'\"\n >\n {{ '@acorex:password-strength.levels.' + strengthLabel() | translate | async }}\n </small>\n\n <ax-progress-bar [color]=\"strengthLabelColor()\" [progress]=\"passwordStrength()\" [height]=\"4\"></ax-progress-bar>\n}\n\n<div class=\"ax-hint-container\">\n @if (showLengthGraterThan8()) {\n <small class=\"ax-hint-state\">\n <ax-badge [color]=\"isLengthGraterThan8().state ? 'success' : 'danger'\"></ax-badge>\n <span>\n {{ '@acorex:password-strength.rules.at-least-8-characters' | translate | async }}\n </span>\n </small>\n }\n @if (showUseUpperCase()) {\n <small class=\"ax-hint-state\">\n <ax-badge [color]=\"isUseUpperCase().state ? 'success' : 'danger'\"></ax-badge>\n <span>\n {{ '@acorex:password-strength.rules.english-upper-case-letter' | translate | async }}\n </span>\n </small>\n }\n @if (showUseLowerCase()) {\n <small class=\"ax-hint-state\">\n <ax-badge [color]=\"isUseLowerCase().state ? 'success' : 'danger'\"></ax-badge>\n <span>\n {{ '@acorex:password-strength.rules.english-lower-case-letter' | translate | async }}\n </span>\n </small>\n }\n @if (showUseNumber()) {\n <small class=\"ax-hint-state\">\n <ax-badge [color]=\"isUseNumber().state ? 'success' : 'danger'\"></ax-badge\n ><span> {{ '@acorex:password-strength.rules.digits' | translate | async }} </span>\n </small>\n }\n @if (showUseSpecialCharacter()) {\n <small class=\"ax-hint-state\">\n <ax-badge [color]=\"isUseSpecialCharacter().state ? 'success' : 'danger'\"></ax-badge>\n <span>\n {{ '@acorex:password-strength.rules.special-character' | translate | async }}\n </span>\n </small>\n }\n</div>\n", styles: ["@layer components{.ax-state-password{margin-bottom:calc(var(--spacing,.25rem) * 1.5);display:block}.ax-state-password.ax-text-red{color:rgba(var(--ax-sys-color-danger-surface))}.ax-state-password.ax-text-orange{color:rgba(var(--ax-sys-color-warning-surface))}.ax-state-password.ax-text-green{color:rgba(var(--ax-sys-color-success-surface))}.ax-hint-container{gap:calc(var(--spacing,.25rem) * 2);padding-top:calc(var(--spacing,.25rem) * 2);flex-direction:column;display:flex}.ax-hint-container ax-badge{margin-inline-end:calc(var(--spacing,.25rem) * 1)}}\n/*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */\n"] }]
174
- }], propDecorators: { showProgress: [{ type: i0.Input, args: [{ isSignal: true, alias: "showProgress", required: false }] }], showLengthGraterThan8: [{ type: i0.Input, args: [{ isSignal: true, alias: "showLengthGraterThan8", required: false }] }], showUseUpperCase: [{ type: i0.Input, args: [{ isSignal: true, alias: "showUseUpperCase", required: false }] }], showUseLowerCase: [{ type: i0.Input, args: [{ isSignal: true, alias: "showUseLowerCase", required: false }] }], showUseNumber: [{ type: i0.Input, args: [{ isSignal: true, alias: "showUseNumber", required: false }] }], showUseSpecialCharacter: [{ type: i0.Input, args: [{ isSignal: true, alias: "showUseSpecialCharacter", required: false }] }] } });
177
+ args: [{ selector: 'ax-password-strength-validation', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [AXProgressBarComponent, AXBadgeComponent, AsyncPipe, AXTranslatorPipe, AXPopoverModule, AXDecoratorModule], providers: [{ provide: AXComponent, useExisting: AXPasswordStrengthValidationComponent }], template: "<div class=\"ax-hint-icon\">\n <small\n class=\"ax-state-password\"\n [class.ax-text-red]=\"strengthLabelColor() === 'danger'\"\n [class.ax-text-orange]=\"strengthLabelColor() === 'warning'\"\n [class.ax-text-green]=\"strengthLabelColor() === 'success'\"\n >\n {{ '@acorex:password-strength.levels.' + strengthLabel() | translate | async }}\n </small>\n\n @if (mode() === 'compact') {\n <ax-icon\n [class.ax-text-red]=\"strengthLabelColor() === 'danger'\"\n [class.ax-text-orange]=\"strengthLabelColor() === 'warning'\"\n [class.ax-text-green]=\"strengthLabelColor() === 'success'\"\n #hint\n class=\"ax-icon ax-icon-info ax-state-password ax-sm\"\n ></ax-icon>\n <ax-popover openOn=\"click\" [target]=\"hint\">\n <div class=\"ax-password-box-hint-container\">\n @if (showLengthGraterThan8()) {\n <small class=\"ax-hint-state\">\n <ax-badge [color]=\"isLengthGraterThan8().state ? 'success' : 'danger'\"></ax-badge>\n <span>\n {{ '@acorex:password-strength.rules.at-least-8-characters' | translate | async }}\n </span>\n </small>\n }\n @if (showUseUpperCase()) {\n <small class=\"ax-hint-state\">\n <ax-badge [color]=\"isUseUpperCase().state ? 'success' : 'danger'\"></ax-badge>\n <span>\n {{ '@acorex:password-strength.rules.english-upper-case-letter' | translate | async }}\n </span>\n </small>\n }\n @if (showUseLowerCase()) {\n <small class=\"ax-hint-state\">\n <ax-badge [color]=\"isUseLowerCase().state ? 'success' : 'danger'\"></ax-badge>\n <span>\n {{ '@acorex:password-strength.rules.english-lower-case-letter' | translate | async }}\n </span>\n </small>\n }\n @if (showUseNumber()) {\n <small class=\"ax-hint-state\">\n <ax-badge [color]=\"isUseNumber().state ? 'success' : 'danger'\"></ax-badge\n ><span> {{ '@acorex:password-strength.rules.digits' | translate | async }} </span>\n </small>\n }\n @if (showUseSpecialCharacter()) {\n <small class=\"ax-hint-state\">\n <ax-badge [color]=\"isUseSpecialCharacter().state ? 'success' : 'danger'\"></ax-badge>\n <span>\n {{ '@acorex:password-strength.rules.special-character' | translate | async }}\n </span>\n </small>\n }\n </div>\n </ax-popover>\n }\n</div>\n\n@if (showProgress()) {\n <ax-progress-bar [color]=\"strengthLabelColor()\" [progress]=\"passwordStrength()\" [height]=\"4\"></ax-progress-bar>\n}\n\n<div class=\"ax-hint-container\">\n @if (mode() === 'full') {\n @if (showLengthGraterThan8()) {\n <small class=\"ax-hint-state\">\n <ax-badge [color]=\"isLengthGraterThan8().state ? 'success' : 'danger'\"></ax-badge>\n <span>\n {{ '@acorex:password-strength.rules.at-least-8-characters' | translate | async }}\n </span>\n </small>\n }\n @if (showUseUpperCase()) {\n <small class=\"ax-hint-state\">\n <ax-badge [color]=\"isUseUpperCase().state ? 'success' : 'danger'\"></ax-badge>\n <span>\n {{ '@acorex:password-strength.rules.english-upper-case-letter' | translate | async }}\n </span>\n </small>\n }\n @if (showUseLowerCase()) {\n <small class=\"ax-hint-state\">\n <ax-badge [color]=\"isUseLowerCase().state ? 'success' : 'danger'\"></ax-badge>\n <span>\n {{ '@acorex:password-strength.rules.english-lower-case-letter' | translate | async }}\n </span>\n </small>\n }\n @if (showUseNumber()) {\n <small class=\"ax-hint-state\">\n <ax-badge [color]=\"isUseNumber().state ? 'success' : 'danger'\"></ax-badge\n ><span> {{ '@acorex:password-strength.rules.digits' | translate | async }} </span>\n </small>\n }\n @if (showUseSpecialCharacter()) {\n <small class=\"ax-hint-state\">\n <ax-badge [color]=\"isUseSpecialCharacter().state ? 'success' : 'danger'\"></ax-badge>\n <span>\n {{ '@acorex:password-strength.rules.special-character' | translate | async }}\n </span>\n </small>\n }\n }\n</div>\n", styles: ["ax-password-strength-validation .ax-state-password{display:block}ax-password-strength-validation .ax-state-password.ax-text-red{color:rgb(var(--ax-sys-color-danger-surface))}ax-password-strength-validation .ax-state-password.ax-text-orange{color:rgb(var(--ax-sys-color-warning-surface))}ax-password-strength-validation .ax-state-password.ax-text-green{color:rgb(var(--ax-sys-color-success-surface))}ax-password-strength-validation .ax-hint-container{flex-direction:column;gap:.5rem;padding-top:.5rem;display:flex}ax-password-strength-validation .ax-hint-container ax-badge{margin-inline-end:.25rem}ax-password-strength-validation .ax-hint-text{cursor:pointer;width:fit-content}ax-password-strength-validation .ax-hint-icon{align-items:center;gap:.25rem;margin-bottom:.375rem;display:flex}ax-password-strength-validation .ax-hint-icon ax-icon{cursor:pointer;font-size:.7rem}.ax-password-box-hint-container{flex-direction:column;gap:.5rem;padding:.5rem;display:flex}\n"] }]
178
+ }], propDecorators: { showProgress: [{ type: i0.Input, args: [{ isSignal: true, alias: "showProgress", required: false }] }], showLengthGraterThan8: [{ type: i0.Input, args: [{ isSignal: true, alias: "showLengthGraterThan8", required: false }] }], showUseUpperCase: [{ type: i0.Input, args: [{ isSignal: true, alias: "showUseUpperCase", required: false }] }], showUseLowerCase: [{ type: i0.Input, args: [{ isSignal: true, alias: "showUseLowerCase", required: false }] }], showUseNumber: [{ type: i0.Input, args: [{ isSignal: true, alias: "showUseNumber", required: false }] }], showUseSpecialCharacter: [{ type: i0.Input, args: [{ isSignal: true, alias: "showUseSpecialCharacter", required: false }] }], mode: [{ type: i0.Input, args: [{ isSignal: true, alias: "mode", required: false }] }] } });
175
179
 
176
180
  const COMPONENT = [AXPasswordBoxComponent, AXPasswordStrengthValidationComponent];
177
181
  const MODULES = [
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-components-password-box.mjs","sources":["../../../../packages/components/password-box/src/lib/password-box.component.ts","../../../../packages/components/password-box/src/lib/password-box.component.html","../../../../packages/components/password-box/src/lib/password-strength-validation/password-strength-validation.component.ts","../../../../packages/components/password-box/src/lib/password-strength-validation/password-strength-validation.component.html","../../../../packages/components/password-box/src/lib/password-box.module.ts","../../../../packages/components/password-box/src/acorex-components-password-box.ts"],"sourcesContent":["import {\n AXClearableComponent,\n AXComponent,\n AXFocusableComponent,\n AXValuableComponent,\n MXInputBaseValueComponent,\n MXLookComponent,\n} from '@acorex/cdk/common';\nimport { ChangeDetectionStrategy, Component, HostBinding, Input, ViewEncapsulation, forwardRef } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { classes } from 'polytype';\n\n/**\n * A specialized input field designed for securely capturing user passwords. It incorporates essential features to enhance usability, accessibility, and security while maintaining a user-friendly interface. The component extends MXInputBaseValueComponent and MXLookComponent to provide comprehensive input functionality with visual styling options.\n *\n * @category Components\n */\n@Component({\n selector: 'ax-password-box',\n templateUrl: 'password-box.component.html',\n inputs: ['readonly', 'disabled', 'tabIndex', 'placeholder', 'value', 'state', 'name', 'id', 'look', 'name'],\n styleUrl: './password-box.component.compiled.css',\n outputs: [\n 'valueChange',\n 'stateChange',\n 'onValueChanged',\n 'onBlur',\n 'onFocus',\n 'readonlyChange',\n 'disabledChange',\n 'onKeyDown',\n 'onKeyUp',\n 'onKeyPress',\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: AXComponent, useExisting: AXPasswordBoxComponent },\n { provide: AXFocusableComponent, useExisting: AXPasswordBoxComponent },\n { provide: AXClearableComponent, useExisting: AXPasswordBoxComponent },\n { provide: AXValuableComponent, useExisting: AXPasswordBoxComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXPasswordBoxComponent),\n multi: true,\n },\n ],\n imports: [FormsModule],\n})\nexport class AXPasswordBoxComponent extends classes(MXInputBaseValueComponent<string>, MXLookComponent) {\n /** @ignore */\n protected _type: 'password' | 'text' = 'password';\n\n /** @ignore */\n protected _icon: 'ax-icon-visibility' | 'ax-icon-visibility-off' = 'ax-icon-visibility';\n\n /**\n * Sets the autocomplete behavior for the input field.\n */\n @Input()\n autoComplete: 'current-password' | 'new-password' | 'one-time-code' | 'off' = 'one-time-code';\n\n /**\n * A flag for showing or hiding password button.\n */\n @Input()\n showToggleButton = true;\n\n /**\n * Defines custom CSS classes to apply to the component.\n */\n @Input('class')\n classNames: string;\n\n /** @ignore */\n protected _handleModelChange(value: string) {\n this.commitValue(value, true);\n }\n\n /**\n * Toggles the input type between 'password' and 'text' to show or hide the password.\n */\n toggleType() {\n if (this._type === 'password') {\n this._type = 'text';\n this._icon = 'ax-icon-visibility-off';\n } else {\n this._type = 'password';\n this._icon = 'ax-icon-visibility';\n }\n }\n\n @HostBinding('attr.name')\n private get __hostName(): string {\n return this.name;\n }\n}\n","<div\n class=\"ax-editor-container ax-default {{ classNames }} {{ look }}\"\n [class.ax-state-disabled]=\"disabled\"\n [class.ax-state-readonly]=\"readonly\"\n>\n <ng-content select=\"ax-prefix\"> </ng-content>\n\n <input\n #input\n [name]=\"name\"\n class=\"ax-input\"\n [type]=\"_type\"\n [id]=\"id\"\n [attr.placeholder]=\"placeholder\"\n [class.ax-state-disabled]=\"disabled\"\n [class.ax-state-readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [tabindex]=\"tabIndex\"\n [ngModel]=\"value\"\n [attr.autocomplete]=\"autoComplete\"\n (ngModelChange)=\"_handleModelChange($event)\"\n (keydown)=\"emitOnKeydownEvent($event)\"\n (keyup)=\"emitOnKeyupEvent($event)\"\n (keypress)=\"emitOnKeypressEvent($event)\"\n (focus)=\"emitOnFocusEvent($event)\"\n (blur)=\"emitOnBlurEvent($event)\"\n />\n\n @if (value && !disabled && !readonly) {\n <ng-content select=\"ax-clear-button\"></ng-content>\n }\n @if (showToggleButton) {\n <button type=\"button\" class=\"ax-general-button-icon\" (click)=\"toggleType()\" [tabIndex]=\"-1\" [disabled]=\"disabled\">\n <span class=\"ax-icon {{ _icon }}\"></span>\n </button>\n }\n <ng-content select=\"ax-suffix\"> </ng-content>\n</div>\n<ng-content select=\"ax-validation-rule\"> </ng-content>\n<div class=\"ax-error-container\"></div>\n<ng-content select=\"ax-password-strength-validation\" [showHint]=\"showStrength()\"></ng-content>\n","import { AXComponent } from '@acorex/cdk/common';\nimport { AXBadgeComponent } from '@acorex/components/badge';\nimport { AXProgressBarComponent } from '@acorex/components/progress-bar';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe } from '@angular/common';\nimport {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n inject,\n input,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AXPasswordBoxComponent } from '../password-box.component';\n\n@Component({\n selector: 'ax-password-strength-validation',\n templateUrl: './password-strength-validation.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n styleUrl: './password-strength-validation.component.compiled.css',\n imports: [AXProgressBarComponent, AXBadgeComponent, AsyncPipe, AXTranslatorPipe],\n providers: [{ provide: AXComponent, useExisting: AXPasswordStrengthValidationComponent }],\n})\nexport class AXPasswordStrengthValidationComponent {\n protected parent = inject(AXPasswordBoxComponent);\n protected passwordStrength = signal(0);\n protected updatedPassword = signal('');\n protected strengthLabel = signal('fragile');\n protected strengthLabelColor = signal('danger');\n\n readonly showProgress = input(true);\n readonly showLengthGraterThan8 = input(true);\n readonly showUseUpperCase = input(true);\n readonly showUseLowerCase = input(true);\n readonly showUseNumber = input(true);\n readonly showUseSpecialCharacter = input(true);\n\n protected isLengthGraterThan8 = signal({ regex: /.{8,}/, state: false });\n protected isUseUpperCase = signal({ regex: /[A-Z]/, state: false });\n protected isUseLowerCase = signal({ regex: /[a-z]/, state: false });\n protected isUseNumber = signal({ regex: /\\d/, state: false });\n protected isUseSpecialCharacter = signal({\n regex: /[!@#$%^&*(),.?\":{}|<>]/,\n state: false,\n });\n\n #onComponentInit = afterNextRender(() => {\n this.parent.onValueChanged.subscribe((v) => {\n if (v.value) {\n this.updatedPassword.set(v.value);\n } else {\n this.updatedPassword.set('');\n }\n this.checkPasswordStrength();\n });\n });\n\n private checkRegexHandler(inter) {\n if (inter().regex.test(this.updatedPassword())) {\n inter.update((prev) => ({ ...prev, state: true }));\n return true;\n }\n inter.update((prev) => ({ ...prev, state: false }));\n return false;\n }\n\n protected checkPasswordStrength() {\n let strength = 0;\n if (this.isLengthGraterThan8()) {\n this.checkRegexHandler(this.isLengthGraterThan8) && strength++;\n }\n if (this.showUseUpperCase()) {\n this.checkRegexHandler(this.isUseUpperCase) && strength++;\n }\n if (this.showUseLowerCase()) {\n this.checkRegexHandler(this.isUseLowerCase) && strength++;\n }\n if (this.showUseNumber()) {\n this.checkRegexHandler(this.isUseNumber) && strength++;\n }\n if (this.showUseSpecialCharacter()) {\n this.checkRegexHandler(this.isUseSpecialCharacter) && strength++;\n }\n\n const strengthLabels = ['fragile', 'fragile', 'weak', 'good', 'strong', 'unbreakable'];\n this.strengthLabel.set(strengthLabels[strength]);\n this.strengthLabelColor.set(strength <= 2 ? 'danger' : strength <= 3 ? 'warning' : 'success');\n this.passwordStrength.set((strength * 100) / 5);\n }\n}\n","@if (showProgress()) {\n <small\n class=\"ax-state-password\"\n [class.ax-text-red]=\"strengthLabelColor() === 'danger'\"\n [class.ax-text-orange]=\"strengthLabelColor() === 'warning'\"\n [class.ax-text-green]=\"strengthLabelColor() === 'success'\"\n >\n {{ '@acorex:password-strength.levels.' + strengthLabel() | translate | async }}\n </small>\n\n <ax-progress-bar [color]=\"strengthLabelColor()\" [progress]=\"passwordStrength()\" [height]=\"4\"></ax-progress-bar>\n}\n\n<div class=\"ax-hint-container\">\n @if (showLengthGraterThan8()) {\n <small class=\"ax-hint-state\">\n <ax-badge [color]=\"isLengthGraterThan8().state ? 'success' : 'danger'\"></ax-badge>\n <span>\n {{ '@acorex:password-strength.rules.at-least-8-characters' | translate | async }}\n </span>\n </small>\n }\n @if (showUseUpperCase()) {\n <small class=\"ax-hint-state\">\n <ax-badge [color]=\"isUseUpperCase().state ? 'success' : 'danger'\"></ax-badge>\n <span>\n {{ '@acorex:password-strength.rules.english-upper-case-letter' | translate | async }}\n </span>\n </small>\n }\n @if (showUseLowerCase()) {\n <small class=\"ax-hint-state\">\n <ax-badge [color]=\"isUseLowerCase().state ? 'success' : 'danger'\"></ax-badge>\n <span>\n {{ '@acorex:password-strength.rules.english-lower-case-letter' | translate | async }}\n </span>\n </small>\n }\n @if (showUseNumber()) {\n <small class=\"ax-hint-state\">\n <ax-badge [color]=\"isUseNumber().state ? 'success' : 'danger'\"></ax-badge\n ><span> {{ '@acorex:password-strength.rules.digits' | translate | async }} </span>\n </small>\n }\n @if (showUseSpecialCharacter()) {\n <small class=\"ax-hint-state\">\n <ax-badge [color]=\"isUseSpecialCharacter().state ? 'success' : 'danger'\"></ax-badge>\n <span>\n {{ '@acorex:password-strength.rules.special-character' | translate | async }}\n </span>\n </small>\n }\n</div>\n","import { AXBadgeModule } from '@acorex/components/badge';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXProgressBarModule } from '@acorex/components/progress-bar';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXPasswordBoxComponent } from './password-box.component';\nimport { AXPasswordStrengthValidationComponent } from './password-strength-validation/password-strength-validation.component';\n\nconst COMPONENT = [AXPasswordBoxComponent, AXPasswordStrengthValidationComponent];\nconst MODULES = [\n CommonModule,\n FormsModule,\n AXButtonModule,\n AXDecoratorModule,\n AXProgressBarModule,\n AXBadgeModule,\n AXTranslationModule,\n];\n\n@NgModule({\n imports: [...MODULES, ...COMPONENT],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXPasswordBoxModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;AAYA;;;;AAIG;AAiCG,MAAO,sBAAuB,SAAQ,OAAO,EAAC,yBAAiC,GAAE,eAAe,CAAC,CAAA;AAhCvG,IAAA,WAAA,GAAA;;;QAkCY,IAAA,CAAA,KAAK,GAAwB,UAAU;;QAGvC,IAAA,CAAA,KAAK,GAAoD,oBAAoB;AAEvF;;AAEG;QAEH,IAAA,CAAA,YAAY,GAAkE,eAAe;AAE7F;;AAEG;QAEH,IAAA,CAAA,gBAAgB,GAAG,IAAI;AA8BxB,IAAA;;AArBW,IAAA,kBAAkB,CAAC,KAAa,EAAA;AACxC,QAAA,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC;IAC/B;AAEA;;AAEG;IACH,UAAU,GAAA;AACR,QAAA,IAAI,IAAI,CAAC,KAAK,KAAK,UAAU,EAAE;AAC7B,YAAA,IAAI,CAAC,KAAK,GAAG,MAAM;AACnB,YAAA,IAAI,CAAC,KAAK,GAAG,wBAAwB;QACvC;aAAO;AACL,YAAA,IAAI,CAAC,KAAK,GAAG,UAAU;AACvB,YAAA,IAAI,CAAC,KAAK,GAAG,oBAAoB;QACnC;IACF;AAEA,IAAA,IACY,UAAU,GAAA;QACpB,OAAO,IAAI,CAAC,IAAI;IAClB;8GA9CW,sBAAsB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,WAAA,EAAA,aAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,OAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,YAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,CAAA,OAAA,EAAA,YAAA,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,OAAA,EAAA,SAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,SAAA,EAbtB;AACT,YAAA,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,sBAAsB,EAAE;AAC7D,YAAA,EAAE,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,sBAAsB,EAAE;AACtE,YAAA,EAAE,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,sBAAsB,EAAE;AACtE,YAAA,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,sBAAsB,EAAE;AACrE,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,sBAAsB,CAAC;AACrD,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;SACF,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC9CH,w8CA0CA,mbDKY,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAEV,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAhClC,SAAS;+BACE,iBAAiB,EAAA,MAAA,EAEnB,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAA,OAAA,EAElG;wBACP,aAAa;wBACb,aAAa;wBACb,gBAAgB;wBAChB,QAAQ;wBACR,SAAS;wBACT,gBAAgB;wBAChB,gBAAgB;wBAChB,WAAW;wBACX,SAAS;wBACT,YAAY;AACb,qBAAA,EAAA,aAAA,EACc,iBAAiB,CAAC,IAAI,mBACpB,uBAAuB,CAAC,MAAM,EAAA,SAAA,EACpC;AACT,wBAAA,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,wBAAwB,EAAE;AAC7D,wBAAA,EAAE,OAAO,EAAE,oBAAoB,EAAE,WAAW,wBAAwB,EAAE;AACtE,wBAAA,EAAE,OAAO,EAAE,oBAAoB,EAAE,WAAW,wBAAwB,EAAE;AACtE,wBAAA,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,wBAAwB,EAAE;AACrE,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,4BAA4B,CAAC;AACrD,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;qBACF,EAAA,OAAA,EACQ,CAAC,WAAW,CAAC,EAAA,QAAA,EAAA,w8CAAA,EAAA,MAAA,EAAA,CAAA,4XAAA,CAAA,EAAA;;sBAYrB;;sBAMA;;sBAMA,KAAK;uBAAC,OAAO;;sBAqBb,WAAW;uBAAC,WAAW;;;MEnEb,qCAAqC,CAAA;AATlD,IAAA,WAAA,GAAA;AAUY,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,sBAAsB,CAAC;AACvC,QAAA,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAAC,CAAC,4DAAC;AAC5B,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,EAAE,2DAAC;AAC5B,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,SAAS,yDAAC;AACjC,QAAA,IAAA,CAAA,kBAAkB,GAAG,MAAM,CAAC,QAAQ,8DAAC;AAEtC,QAAA,IAAA,CAAA,YAAY,GAAG,KAAK,CAAC,IAAI,wDAAC;AAC1B,QAAA,IAAA,CAAA,qBAAqB,GAAG,KAAK,CAAC,IAAI,iEAAC;AACnC,QAAA,IAAA,CAAA,gBAAgB,GAAG,KAAK,CAAC,IAAI,4DAAC;AAC9B,QAAA,IAAA,CAAA,gBAAgB,GAAG,KAAK,CAAC,IAAI,4DAAC;AAC9B,QAAA,IAAA,CAAA,aAAa,GAAG,KAAK,CAAC,IAAI,yDAAC;AAC3B,QAAA,IAAA,CAAA,uBAAuB,GAAG,KAAK,CAAC,IAAI,mEAAC;AAEpC,QAAA,IAAA,CAAA,mBAAmB,GAAG,MAAM,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,+DAAC;AAC9D,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,0DAAC;AACzD,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,0DAAC;AACzD,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,uDAAC;QACnD,IAAA,CAAA,qBAAqB,GAAG,MAAM,CAAC;AACvC,YAAA,KAAK,EAAE,wBAAwB;AAC/B,YAAA,KAAK,EAAE,KAAK;AACb,SAAA,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,uBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;AAEF,QAAA,IAAA,CAAA,gBAAgB,GAAG,eAAe,CAAC,MAAK;YACtC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,KAAI;AACzC,gBAAA,IAAI,CAAC,CAAC,KAAK,EAAE;oBACX,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;gBACnC;qBAAO;AACL,oBAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC9B;gBACA,IAAI,CAAC,qBAAqB,EAAE;AAC9B,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC,CAAC;AAkCH,IAAA;AA3CC,IAAA,gBAAgB;AAWR,IAAA,iBAAiB,CAAC,KAAK,EAAA;AAC7B,QAAA,IAAI,KAAK,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,EAAE;AAC9C,YAAA,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,MAAM,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAClD,YAAA,OAAO,IAAI;QACb;AACA,QAAA,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,MAAM,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;AACnD,QAAA,OAAO,KAAK;IACd;IAEU,qBAAqB,GAAA;QAC7B,IAAI,QAAQ,GAAG,CAAC;AAChB,QAAA,IAAI,IAAI,CAAC,mBAAmB,EAAE,EAAE;YAC9B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,QAAQ,EAAE;QAChE;AACA,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE,EAAE;YAC3B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,QAAQ,EAAE;QAC3D;AACA,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE,EAAE;YAC3B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,QAAQ,EAAE;QAC3D;AACA,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;YACxB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,QAAQ,EAAE;QACxD;AACA,QAAA,IAAI,IAAI,CAAC,uBAAuB,EAAE,EAAE;YAClC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,QAAQ,EAAE;QAClE;AAEA,QAAA,MAAM,cAAc,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,CAAC;QACtF,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAChD,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,GAAG,QAAQ,GAAG,QAAQ,IAAI,CAAC,GAAG,SAAS,GAAG,SAAS,CAAC;AAC7F,QAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,QAAQ,GAAG,GAAG,IAAI,CAAC,CAAC;IACjD;8GAjEW,qCAAqC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAArC,qCAAqC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iCAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,qBAAA,EAAA,EAAA,iBAAA,EAAA,uBAAA,EAAA,UAAA,EAAA,uBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,uBAAA,EAAA,EAAA,iBAAA,EAAA,yBAAA,EAAA,UAAA,EAAA,yBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,SAAA,EAFrC,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,qCAAqC,EAAE,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECvB3F,08DAqDA,EAAA,MAAA,EAAA,CAAA,gnBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,ED/BY,sBAAsB,qJAAE,gBAAgB,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAE,SAAS,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAE,gBAAgB,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAGpE,qCAAqC,EAAA,UAAA,EAAA,CAAA;kBATjD,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iCAAiC,EAAA,eAAA,EAE1B,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,EAAA,OAAA,EAE5B,CAAC,sBAAsB,EAAE,gBAAgB,EAAE,SAAS,EAAE,gBAAgB,CAAC,EAAA,SAAA,EACrE,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAA,qCAAuC,EAAE,CAAC,EAAA,QAAA,EAAA,08DAAA,EAAA,MAAA,EAAA,CAAA,gnBAAA,CAAA,EAAA;;;AEZ3F,MAAM,SAAS,GAAG,CAAC,sBAAsB,EAAE,qCAAqC,CAAC;AACjF,MAAM,OAAO,GAAG;IACd,YAAY;IACZ,WAAW;IACX,cAAc;IACd,iBAAiB;IACjB,mBAAmB;IACnB,aAAa;IACb,mBAAmB;CACpB;MAOY,mBAAmB,CAAA;8GAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,YAd9B,YAAY;YACZ,WAAW;YACX,cAAc;YACd,iBAAiB;YACjB,mBAAmB;YACnB,aAAa;AACb,YAAA,mBAAmB,EARF,sBAAsB,EAAE,qCAAqC,CAAA,EAAA,OAAA,EAAA,CAA7D,sBAAsB,EAAE,qCAAqC,CAAA,EAAA,CAAA,CAAA;+GAgBnE,mBAAmB,EAAA,OAAA,EAAA,CAJjB,OAAO,EAAK,SAAS,CAAA,EAAA,CAAA,CAAA;;2FAIvB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAL/B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,CAAC,GAAG,OAAO,EAAE,GAAG,SAAS,CAAC;AACnC,oBAAA,OAAO,EAAE,CAAC,GAAG,SAAS,CAAC;AACvB,oBAAA,SAAS,EAAE,EAAE;AACd,iBAAA;;;AC1BD;;AAEG;;;;"}
1
+ {"version":3,"file":"acorex-components-password-box.mjs","sources":["../../../../packages/components/password-box/src/lib/password-box.component.ts","../../../../packages/components/password-box/src/lib/password-box.component.html","../../../../packages/components/password-box/src/lib/password-strength-validation/password-strength-validation.component.ts","../../../../packages/components/password-box/src/lib/password-strength-validation/password-strength-validation.component.html","../../../../packages/components/password-box/src/lib/password-box.module.ts","../../../../packages/components/password-box/src/acorex-components-password-box.ts"],"sourcesContent":["import {\n AXClearableComponent,\n AXComponent,\n AXFocusableComponent,\n AXValuableComponent,\n MXInputBaseValueComponent,\n MXLookComponent,\n} from '@acorex/cdk/common';\nimport { ChangeDetectionStrategy, Component, HostBinding, Input, ViewEncapsulation, forwardRef } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { classes } from 'polytype';\n\n/**\n * A specialized input field designed for securely capturing user passwords. It incorporates essential features to enhance usability, accessibility, and security while maintaining a user-friendly interface. The component extends MXInputBaseValueComponent and MXLookComponent to provide comprehensive input functionality with visual styling options.\n *\n * @category Components\n */\n@Component({\n selector: 'ax-password-box',\n templateUrl: 'password-box.component.html',\n inputs: ['readonly', 'disabled', 'tabIndex', 'placeholder', 'value', 'state', 'name', 'id', 'look', 'name'],\n styleUrl: './password-box.component.compiled.css',\n outputs: [\n 'valueChange',\n 'stateChange',\n 'onValueChanged',\n 'onBlur',\n 'onFocus',\n 'readonlyChange',\n 'disabledChange',\n 'onKeyDown',\n 'onKeyUp',\n 'onKeyPress',\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: AXComponent, useExisting: AXPasswordBoxComponent },\n { provide: AXFocusableComponent, useExisting: AXPasswordBoxComponent },\n { provide: AXClearableComponent, useExisting: AXPasswordBoxComponent },\n { provide: AXValuableComponent, useExisting: AXPasswordBoxComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXPasswordBoxComponent),\n multi: true,\n },\n ],\n imports: [FormsModule],\n})\nexport class AXPasswordBoxComponent extends classes(MXInputBaseValueComponent<string>, MXLookComponent) {\n /** @ignore */\n protected _type: 'password' | 'text' = 'password';\n\n /** @ignore */\n protected _icon: 'ax-icon-visibility' | 'ax-icon-visibility-off' = 'ax-icon-visibility';\n\n /**\n * Sets the autocomplete behavior for the input field.\n */\n @Input()\n autoComplete: 'current-password' | 'new-password' | 'one-time-code' | 'off' = 'one-time-code';\n\n /**\n * A flag for showing or hiding password button.\n */\n @Input()\n showToggleButton = true;\n\n /**\n * Defines custom CSS classes to apply to the component.\n */\n @Input('class')\n classNames: string;\n\n /** @ignore */\n protected _handleModelChange(value: string) {\n this.commitValue(value, true);\n }\n\n /**\n * Toggles the input type between 'password' and 'text' to show or hide the password.\n */\n toggleType() {\n if (this._type === 'password') {\n this._type = 'text';\n this._icon = 'ax-icon-visibility-off';\n } else {\n this._type = 'password';\n this._icon = 'ax-icon-visibility';\n }\n }\n\n @HostBinding('attr.name')\n private get __hostName(): string {\n return this.name;\n }\n}\n","<div\n class=\"ax-editor-container ax-default {{ classNames }} {{ look }}\"\n [class.ax-state-disabled]=\"disabled\"\n [class.ax-state-readonly]=\"readonly\"\n>\n <ng-content select=\"ax-prefix\"> </ng-content>\n\n <input\n #input\n [name]=\"name\"\n class=\"ax-input\"\n [type]=\"_type\"\n [id]=\"id\"\n [attr.placeholder]=\"placeholder\"\n [class.ax-state-disabled]=\"disabled\"\n [class.ax-state-readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [tabindex]=\"tabIndex\"\n [ngModel]=\"value\"\n [attr.autocomplete]=\"autoComplete\"\n (ngModelChange)=\"_handleModelChange($event)\"\n (keydown)=\"emitOnKeydownEvent($event)\"\n (keyup)=\"emitOnKeyupEvent($event)\"\n (keypress)=\"emitOnKeypressEvent($event)\"\n (focus)=\"emitOnFocusEvent($event)\"\n (blur)=\"emitOnBlurEvent($event)\"\n />\n\n @if (value && !disabled && !readonly) {\n <ng-content select=\"ax-clear-button\"></ng-content>\n }\n @if (showToggleButton) {\n <button type=\"button\" class=\"ax-general-button-icon\" (click)=\"toggleType()\" [tabIndex]=\"-1\" [disabled]=\"disabled\">\n <span class=\"ax-icon {{ _icon }}\"></span>\n </button>\n }\n <ng-content select=\"ax-suffix\"> </ng-content>\n</div>\n<ng-content select=\"ax-validation-rule\"> </ng-content>\n<div class=\"ax-error-container\"></div>\n<ng-content select=\"ax-password-strength-validation\" [showHint]=\"showStrength()\"></ng-content>\n","import { AXComponent } from '@acorex/cdk/common';\nimport { AXBadgeComponent } from '@acorex/components/badge';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXPopoverModule } from '@acorex/components/popover';\nimport { AXProgressBarComponent } from '@acorex/components/progress-bar';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe } from '@angular/common';\nimport {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n inject,\n input,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AXPasswordBoxComponent } from '../password-box.component';\n\n@Component({\n selector: 'ax-password-strength-validation',\n templateUrl: './password-strength-validation.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n styleUrl: './password-strength-validation.component.compiled.css',\n imports: [AXProgressBarComponent, AXBadgeComponent, AsyncPipe, AXTranslatorPipe, AXPopoverModule, AXDecoratorModule],\n providers: [{ provide: AXComponent, useExisting: AXPasswordStrengthValidationComponent }],\n})\nexport class AXPasswordStrengthValidationComponent {\n protected parent = inject(AXPasswordBoxComponent);\n protected passwordStrength = signal(0);\n protected updatedPassword = signal('');\n protected strengthLabel = signal('fragile');\n protected strengthLabelColor = signal('danger');\n\n readonly showProgress = input(true);\n readonly showLengthGraterThan8 = input(true);\n readonly showUseUpperCase = input(true);\n readonly showUseLowerCase = input(true);\n readonly showUseNumber = input(true);\n readonly showUseSpecialCharacter = input(true);\n readonly mode = input<'full' | 'compact'>('full');\n\n protected isLengthGraterThan8 = signal({ regex: /.{8,}/, state: false });\n protected isUseUpperCase = signal({ regex: /[A-Z]/, state: false });\n protected isUseLowerCase = signal({ regex: /[a-z]/, state: false });\n protected isUseNumber = signal({ regex: /\\d/, state: false });\n protected isUseSpecialCharacter = signal({\n regex: /[!@#$%^&*(),.?\":{}|<>]/,\n state: false,\n });\n\n #onComponentInit = afterNextRender(() => {\n this.parent.onValueChanged.subscribe((v) => {\n if (v.value) {\n this.updatedPassword.set(v.value);\n } else {\n this.updatedPassword.set('');\n }\n this.checkPasswordStrength();\n });\n });\n\n private checkRegexHandler(inter) {\n if (inter().regex.test(this.updatedPassword())) {\n inter.update((prev) => ({ ...prev, state: true }));\n return true;\n }\n inter.update((prev) => ({ ...prev, state: false }));\n return false;\n }\n\n protected checkPasswordStrength() {\n let strength = 0;\n if (this.isLengthGraterThan8()) {\n this.checkRegexHandler(this.isLengthGraterThan8) && strength++;\n }\n if (this.showUseUpperCase()) {\n this.checkRegexHandler(this.isUseUpperCase) && strength++;\n }\n if (this.showUseLowerCase()) {\n this.checkRegexHandler(this.isUseLowerCase) && strength++;\n }\n if (this.showUseNumber()) {\n this.checkRegexHandler(this.isUseNumber) && strength++;\n }\n if (this.showUseSpecialCharacter()) {\n this.checkRegexHandler(this.isUseSpecialCharacter) && strength++;\n }\n\n const strengthLabels = ['fragile', 'fragile', 'weak', 'good', 'strong', 'unbreakable'];\n this.strengthLabel.set(strengthLabels[strength]);\n this.strengthLabelColor.set(strength <= 2 ? 'danger' : strength <= 3 ? 'warning' : 'success');\n this.passwordStrength.set((strength * 100) / 5);\n }\n}\n","<div class=\"ax-hint-icon\">\n <small\n class=\"ax-state-password\"\n [class.ax-text-red]=\"strengthLabelColor() === 'danger'\"\n [class.ax-text-orange]=\"strengthLabelColor() === 'warning'\"\n [class.ax-text-green]=\"strengthLabelColor() === 'success'\"\n >\n {{ '@acorex:password-strength.levels.' + strengthLabel() | translate | async }}\n </small>\n\n @if (mode() === 'compact') {\n <ax-icon\n [class.ax-text-red]=\"strengthLabelColor() === 'danger'\"\n [class.ax-text-orange]=\"strengthLabelColor() === 'warning'\"\n [class.ax-text-green]=\"strengthLabelColor() === 'success'\"\n #hint\n class=\"ax-icon ax-icon-info ax-state-password ax-sm\"\n ></ax-icon>\n <ax-popover openOn=\"click\" [target]=\"hint\">\n <div class=\"ax-password-box-hint-container\">\n @if (showLengthGraterThan8()) {\n <small class=\"ax-hint-state\">\n <ax-badge [color]=\"isLengthGraterThan8().state ? 'success' : 'danger'\"></ax-badge>\n <span>\n {{ '@acorex:password-strength.rules.at-least-8-characters' | translate | async }}\n </span>\n </small>\n }\n @if (showUseUpperCase()) {\n <small class=\"ax-hint-state\">\n <ax-badge [color]=\"isUseUpperCase().state ? 'success' : 'danger'\"></ax-badge>\n <span>\n {{ '@acorex:password-strength.rules.english-upper-case-letter' | translate | async }}\n </span>\n </small>\n }\n @if (showUseLowerCase()) {\n <small class=\"ax-hint-state\">\n <ax-badge [color]=\"isUseLowerCase().state ? 'success' : 'danger'\"></ax-badge>\n <span>\n {{ '@acorex:password-strength.rules.english-lower-case-letter' | translate | async }}\n </span>\n </small>\n }\n @if (showUseNumber()) {\n <small class=\"ax-hint-state\">\n <ax-badge [color]=\"isUseNumber().state ? 'success' : 'danger'\"></ax-badge\n ><span> {{ '@acorex:password-strength.rules.digits' | translate | async }} </span>\n </small>\n }\n @if (showUseSpecialCharacter()) {\n <small class=\"ax-hint-state\">\n <ax-badge [color]=\"isUseSpecialCharacter().state ? 'success' : 'danger'\"></ax-badge>\n <span>\n {{ '@acorex:password-strength.rules.special-character' | translate | async }}\n </span>\n </small>\n }\n </div>\n </ax-popover>\n }\n</div>\n\n@if (showProgress()) {\n <ax-progress-bar [color]=\"strengthLabelColor()\" [progress]=\"passwordStrength()\" [height]=\"4\"></ax-progress-bar>\n}\n\n<div class=\"ax-hint-container\">\n @if (mode() === 'full') {\n @if (showLengthGraterThan8()) {\n <small class=\"ax-hint-state\">\n <ax-badge [color]=\"isLengthGraterThan8().state ? 'success' : 'danger'\"></ax-badge>\n <span>\n {{ '@acorex:password-strength.rules.at-least-8-characters' | translate | async }}\n </span>\n </small>\n }\n @if (showUseUpperCase()) {\n <small class=\"ax-hint-state\">\n <ax-badge [color]=\"isUseUpperCase().state ? 'success' : 'danger'\"></ax-badge>\n <span>\n {{ '@acorex:password-strength.rules.english-upper-case-letter' | translate | async }}\n </span>\n </small>\n }\n @if (showUseLowerCase()) {\n <small class=\"ax-hint-state\">\n <ax-badge [color]=\"isUseLowerCase().state ? 'success' : 'danger'\"></ax-badge>\n <span>\n {{ '@acorex:password-strength.rules.english-lower-case-letter' | translate | async }}\n </span>\n </small>\n }\n @if (showUseNumber()) {\n <small class=\"ax-hint-state\">\n <ax-badge [color]=\"isUseNumber().state ? 'success' : 'danger'\"></ax-badge\n ><span> {{ '@acorex:password-strength.rules.digits' | translate | async }} </span>\n </small>\n }\n @if (showUseSpecialCharacter()) {\n <small class=\"ax-hint-state\">\n <ax-badge [color]=\"isUseSpecialCharacter().state ? 'success' : 'danger'\"></ax-badge>\n <span>\n {{ '@acorex:password-strength.rules.special-character' | translate | async }}\n </span>\n </small>\n }\n }\n</div>\n","import { AXBadgeModule } from '@acorex/components/badge';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXProgressBarModule } from '@acorex/components/progress-bar';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXPasswordBoxComponent } from './password-box.component';\nimport { AXPasswordStrengthValidationComponent } from './password-strength-validation/password-strength-validation.component';\n\nconst COMPONENT = [AXPasswordBoxComponent, AXPasswordStrengthValidationComponent];\nconst MODULES = [\n CommonModule,\n FormsModule,\n AXButtonModule,\n AXDecoratorModule,\n AXProgressBarModule,\n AXBadgeModule,\n AXTranslationModule,\n];\n\n@NgModule({\n imports: [...MODULES, ...COMPONENT],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXPasswordBoxModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@acorex/components",
3
- "version": "21.0.1-next.86",
3
+ "version": "21.0.1-next.88",
4
4
  "peerDependencies": {
5
- "@acorex/core": "21.0.1-next.86",
6
- "@acorex/cdk": "21.0.1-next.86",
5
+ "@acorex/core": "21.0.1-next.88",
6
+ "@acorex/cdk": "21.0.1-next.88",
7
7
  "polytype": ">=0.17.0",
8
8
  "angular-imask": ">=7.6.1",
9
9
  "gridstack": ">=12.0.0",
@@ -3118,177 +3118,6 @@ declare abstract class AXUserApi {
3118
3118
  protected createError(code: string, message: string, statusCode?: number, details?: unknown): AXApiError;
3119
3119
  }
3120
3120
 
3121
- /**
3122
- * Conversation Store Service
3123
- * Unified signal-based store for conversations and messages
3124
- */
3125
- declare class AXConversationStoreService {
3126
- private readonly config;
3127
- private readonly errorHandler;
3128
- /** All conversations (keyed by ID) */
3129
- private readonly _conversations;
3130
- /** All messages (keyed by message ID) */
3131
- private readonly _messages;
3132
- /** Message IDs grouped by conversation */
3133
- private readonly _conversationMessages;
3134
- /** All conversations as array (unsorted - sorting is handled by consumers) */
3135
- readonly conversations: _angular_core.Signal<AXConversation[]>;
3136
- /** All messages as array */
3137
- readonly messages: _angular_core.Signal<AXMessage[]>;
3138
- /**
3139
- * Initialize the store
3140
- */
3141
- initialize(): Promise<void>;
3142
- /**
3143
- * Set all conversations (replaces existing)
3144
- * @param conversations - Array of conversations
3145
- */
3146
- setConversations(conversations: AXConversation[]): void;
3147
- /**
3148
- * Add multiple conversations (append to existing)
3149
- * Used for pagination - appends new conversations without replacing existing ones
3150
- * @param conversations - Array of conversations to add
3151
- */
3152
- addConversations(conversations: AXConversation[]): void;
3153
- /**
3154
- * Add or update a single conversation
3155
- * @param conversation - Conversation to add/update
3156
- */
3157
- setConversation(conversation: AXConversation): void;
3158
- /**
3159
- * Get a conversation by ID
3160
- * @param conversationId - Conversation ID
3161
- * @returns Conversation or undefined
3162
- */
3163
- getConversation(conversationId: string): AXConversation | undefined;
3164
- /**
3165
- * Update a conversation with partial data
3166
- * @param conversationId - Conversation ID
3167
- * @param updates - Partial conversation updates
3168
- */
3169
- updateConversation(conversationId: string, updates: Partial<AXConversation>): void;
3170
- /**
3171
- * Delete a conversation
3172
- * @param conversationId - Conversation ID
3173
- */
3174
- deleteConversation(conversationId: string): void;
3175
- /**
3176
- * Update conversation's last message
3177
- * @param message - The message to set as last message
3178
- */
3179
- updateLastMessage(message: AXMessage): void;
3180
- /**
3181
- * Increment unread count
3182
- * @param conversationId - Conversation ID
3183
- */
3184
- incrementUnreadCount(conversationId: string): void;
3185
- /**
3186
- * Reset unread count to zero
3187
- * @param conversationId - Conversation ID
3188
- */
3189
- resetUnreadCount(conversationId: string): void;
3190
- /**
3191
- * Update conversation settings
3192
- * @param conversationId - Conversation ID
3193
- * @param settings - Settings to merge
3194
- */
3195
- updateSettings(conversationId: string, settings: Partial<AXConversation['settings']>): void;
3196
- /**
3197
- * Update conversation title
3198
- * @param conversationId - Conversation ID
3199
- * @param title - New title
3200
- */
3201
- updateTitle(conversationId: string, title: string): void;
3202
- /**
3203
- * Update conversation metadata
3204
- * @param conversationId - Conversation ID
3205
- * @param metadata - Metadata to merge
3206
- */
3207
- updateMetadata(conversationId: string, metadata: Record<string, unknown>): void;
3208
- /**
3209
- * Update typing indicator
3210
- * @param conversationId - Conversation ID
3211
- * @param userId - User ID
3212
- * @param isTyping - Whether user is typing
3213
- */
3214
- updateTypingIndicator(conversationId: string, userId: string, isTyping: boolean): void;
3215
- /**
3216
- * Update participant presence across all conversations
3217
- * @param userId - User ID
3218
- * @param status - Presence status
3219
- * @param lastSeen - Last seen date
3220
- */
3221
- updateParticipantPresence(userId: string, status: AXParticipantStatus, lastSeen?: Date): void;
3222
- /**
3223
- * Add a message to the store
3224
- * @param message - Message to add
3225
- */
3226
- addMessage(message: AXMessage): void;
3227
- /**
3228
- * Add multiple messages
3229
- * @param messages - Messages to add
3230
- */
3231
- addMessages(messages: AXMessage[]): void;
3232
- /**
3233
- * Get a message by ID
3234
- * @param messageId - Message ID
3235
- * @returns Message or undefined
3236
- */
3237
- getMessage(messageId: string): AXMessage | undefined;
3238
- /**
3239
- * Get messages for a conversation
3240
- * @param conversationId - Conversation ID
3241
- * @returns Array of messages sorted by timestamp
3242
- */
3243
- getConversationMessages(conversationId: string): AXMessage[];
3244
- /**
3245
- * Get messages signal for a conversation
3246
- * @param conversationId - Conversation ID
3247
- * @returns Computed signal of messages
3248
- */
3249
- getConversationMessagesSignal(conversationId: string): _angular_core.Signal<AXMessage[]>;
3250
- /**
3251
- * Update a message
3252
- * @param messageId - Message ID
3253
- * @param updates - Partial message updates
3254
- */
3255
- updateMessage(messageId: string, updates: Partial<AXMessage>): void;
3256
- /**
3257
- * Delete a message
3258
- * @param messageId - Message ID
3259
- */
3260
- deleteMessage(messageId: string): void;
3261
- /**
3262
- * Clear messages for a conversation
3263
- * @param conversationId - Conversation ID
3264
- */
3265
- clearConversationMessages(conversationId: string): void;
3266
- /**
3267
- * Clear all data
3268
- */
3269
- clearAll(): void;
3270
- /**
3271
- * Cleanup old messages to prevent unbounded memory growth
3272
- * Keeps only the most recent messages up to MAX_TOTAL_MESSAGES
3273
- */
3274
- private cleanupOldMessages;
3275
- /**
3276
- * Cleanup messages per conversation to prevent memory leaks
3277
- * Keeps only recent messages per conversation
3278
- */
3279
- private cleanupConversationMessages;
3280
- /**
3281
- * Get store statistics
3282
- */
3283
- getStats(): {
3284
- conversationCount: number;
3285
- messageCount: number;
3286
- conversationsWithMessages: number;
3287
- };
3288
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationStoreService, never>;
3289
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXConversationStoreService>;
3290
- }
3291
-
3292
3121
  /**
3293
3122
  * Central Registry Service
3294
3123
  * Provides unified access to all registries
@@ -3331,11 +3160,11 @@ declare class AXRegistryService {
3331
3160
  declare class AXConversationService {
3332
3161
  private static normalizeOptionalString;
3333
3162
  private readonly config;
3163
+ private readonly state;
3334
3164
  readonly userApi: AXUserApi;
3335
3165
  readonly conversationApi: AXConversationApi;
3336
3166
  readonly messageApi: AXMessageApi;
3337
3167
  readonly realtimeApi: AXRealtimeApi;
3338
- private readonly store;
3339
3168
  private readonly errorHandler;
3340
3169
  readonly dialogService: AXDialogService;
3341
3170
  readonly popupService: AXPopupService;
@@ -3778,16 +3607,15 @@ declare class AXErrorHandlerService {
3778
3607
  */
3779
3608
  handle(error: unknown, operation: string, context?: Record<string, unknown>): AXConversationError;
3780
3609
  /**
3781
- * Handle API error
3610
+ * Handle API error (same pipeline as {@link handle}, for typed API failures)
3782
3611
  */
3783
3612
  handleApiError(apiError: AXApiError, operation: string, context?: Record<string, unknown>): AXConversationError;
3613
+ private publish;
3784
3614
  /**
3785
- * Normalize any error to conversation error format
3615
+ * Normalize any error to conversation error format (does not publish — use {@link handle})
3786
3616
  */
3787
3617
  private normalizeError;
3788
- /**
3789
- * Check if error is API error
3790
- */
3618
+ private conversationErrorFromApi;
3791
3619
  private isApiError;
3792
3620
  /**
3793
3621
  * Determine severity based on status code
@@ -3827,20 +3655,10 @@ declare class AXErrorHandlerService {
3827
3655
  * @param ms - Milliseconds to delay
3828
3656
  */
3829
3657
  private delay;
3830
- /**
3831
- * Clear error history
3832
- */
3833
- clear(): void;
3834
3658
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXErrorHandlerService, never>;
3835
3659
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXErrorHandlerService>;
3836
3660
  }
3837
3661
 
3838
- interface FileUploadProgress {
3839
- file: File;
3840
- progress: number;
3841
- status: 'pending' | 'uploading' | 'completed' | 'error';
3842
- error?: string;
3843
- }
3844
3662
  interface FilePreview {
3845
3663
  file: File;
3846
3664
  preview?: string;
@@ -3849,66 +3667,19 @@ interface FilePreview {
3849
3667
  declare class AXFileUploadService {
3850
3668
  private readonly config;
3851
3669
  private readonly platformId;
3852
- private uploadProgress$;
3853
- /**
3854
- * Get upload progress observable
3855
- */
3856
- getUploadProgress(): Observable<FileUploadProgress>;
3857
- /**
3858
- * Read file as data URL for preview
3859
- */
3860
3670
  readFileAsDataURL(file: File): Promise<string>;
3861
- /**
3862
- * Get file type category
3863
- */
3864
3671
  getFileType(file: File): 'image' | 'video' | 'audio' | 'file';
3865
- /**
3866
- * Generate file preview
3867
- */
3868
3672
  generatePreview(file: File): Promise<FilePreview>;
3869
- /**
3870
- * Generate previews for multiple files
3871
- */
3872
3673
  generatePreviews(files: File[]): Promise<FilePreview[]>;
3873
- /**
3874
- * Get video duration
3875
- */
3876
3674
  getVideoDuration(file: File): Promise<number>;
3877
- /**
3878
- * Get audio duration
3879
- */
3880
3675
  getAudioDuration(file: File): Promise<number>;
3881
- /**
3882
- * Format file size
3883
- */
3884
3676
  formatFileSize(bytes: number): string;
3885
- /**
3886
- * Format duration (seconds to mm:ss)
3887
- */
3888
3677
  formatDuration(seconds: number): string;
3889
- /**
3890
- * Validate file type
3891
- */
3892
3678
  validateFileType(file: File, allowedTypes: string[]): boolean;
3893
- /**
3894
- * Validate file size
3895
- */
3896
3679
  validateFileSize(file: File, maxSizeInMB: number): boolean;
3897
- /**
3898
- * Filter files by type
3899
- */
3900
3680
  filterFilesByType(files: File[], allowedTypes: string[]): File[];
3901
- /**
3902
- * Validate file type against conversation config
3903
- */
3904
3681
  isFileTypeAllowed(file: File): boolean;
3905
- /**
3906
- * Validate file size against conversation config
3907
- */
3908
3682
  isFileSizeAllowed(file: File): boolean;
3909
- /**
3910
- * Validate a set of files using conversation config
3911
- */
3912
3683
  validateFilesWithConfig(files: File[]): {
3913
3684
  accepted: File[];
3914
3685
  rejected: {
@@ -3927,7 +3698,12 @@ declare class AXForwardMessageDialogComponent implements OnInit {
3927
3698
  * Set by {@link AXPopupComponent} when opened via {@link AXPopupService} so the shell title can update.
3928
3699
  */
3929
3700
  readonly __popup__: _angular_core.InputSignal<AXPopupRef<any>>;
3701
+ /**
3702
+ * Assigned from `open(..., { data: { conversationService } })` — see {@link AXNewConversationDialogComponent}
3703
+ * for why this is not `inject(AXConversationService)`.
3704
+ */
3930
3705
  conversationService: AXConversationService;
3706
+ /** Assigned from `open(..., { data: { message } })`. */
3931
3707
  message: AXMessage;
3932
3708
  readonly onClosed: EventEmitter<AXComponentCloseEvent>;
3933
3709
  readonly allConversations: _angular_core.WritableSignal<AXConversation[]>;
@@ -4281,6 +4057,11 @@ declare class AXSidebarComponent implements OnDestroy {
4281
4057
 
4282
4058
  type NewConversationWizardStep = 'selectUsers' | 'groupDetails';
4283
4059
  declare class AXNewConversationDialogComponent extends AXBasePageComponent {
4060
+ /**
4061
+ * Assigned by {@link AXPopupComponent} from `open(..., { data: { conversationService } })`.
4062
+ * Not injected: popup content is created on the root view container, so route-scoped providers
4063
+ * would not see the same `AXConversationService` instance as the conversation feature.
4064
+ */
4284
4065
  conversationService: AXConversationService;
4285
4066
  private readonly toastService;
4286
4067
  private readonly translation;
@@ -6459,5 +6240,5 @@ declare function getErrorMessage(code: string, params?: Record<string, string |
6459
6240
  */
6460
6241
  type AXErrorCode = typeof MESSAGE_ERRORS[keyof typeof MESSAGE_ERRORS]['code'] | typeof FILE_ERRORS[keyof typeof FILE_ERRORS]['code'] | typeof USER_ERRORS[keyof typeof USER_ERRORS]['code'] | typeof CONVERSATION_ERRORS[keyof typeof CONVERSATION_ERRORS]['code'] | typeof CONNECTION_ERRORS[keyof typeof CONNECTION_ERRORS]['code'] | typeof LOCATION_ERRORS[keyof typeof LOCATION_ERRORS]['code'] | typeof URL_ERRORS[keyof typeof URL_ERRORS]['code'] | typeof PERMISSION_ERRORS[keyof typeof PERMISSION_ERRORS]['code'];
6461
6242
 
6462
- export { AXAudioInfoBarBannerComponent, AXAudioPickerComponent, AXAudioRendererComponent, AXBaseRegistry, AXComposerActionRegistry, AXComposerComponent, AXComposerPopupComponent, AXComposerService, AXComposerTabRegistry, AXConversation2Module, AXConversationAiApiKey, AXConversationAiResponderService, AXConversationApi, AXConversationContainerComponent, AXConversationContainerDirective, AXConversationDateUtilsService, AXConversationIndexedDbConversationApi, AXConversationIndexedDbMessageAiApi, AXConversationIndexedDbMessageApi, AXConversationIndexedDbRealtimeApi, AXConversationIndexedDbStorage, AXConversationIndexedDbStores, AXConversationIndexedDbUserApi, AXConversationInfoPanelComponent, AXConversationItemActionRegistry, AXConversationMessageRendererStateComponent, AXConversationMessageUtilsService, AXConversationService, AXConversationSharedStorage, AXConversationStoreService, AXConversationTabRegistry, AXEmojiTabComponent, AXErrorHandlerService, AXFallbackRendererComponent, AXFilePickerComponent, AXFileRendererComponent, AXFileUploadService, AXForwardMessageDialogComponent, AXImagePickerComponent, AXImageRendererComponent, AXInfiniteScrollDirective, AXInfoBarActionRegistry, AXInfoBarComponent, AXInfoBarSearchComponent, AXInfoBarService, AXLocationPickerComponent, AXLocationRendererComponent, AXMessageActionRegistry, AXMessageApi, AXMessageListComponent, AXMessageListNoActiveDefaultComponent, AXMessageListService, AXMessageRendererRegistry, AXNewConversationDialogComponent, AXPickerFooterComponent, AXPickerHeaderComponent, AXRealtimeApi, AXRegistryService, AXSidebarComponent, AXSidebarService, AXStickerRendererComponent, AXStickerTabComponent, AXSystemRendererComponent, AXTextRendererComponent, AXUserApi, AXVideoInfoBarBannerComponent, AXVideoPickerComponent, AXVideoRendererComponent, AXVoiceInfoBarBannerComponent, AXVoiceRecorderComponent, AXVoiceRendererComponent, AX_CONVERSATION_AUDIO_RENDERER, AX_CONVERSATION_COMPOSER_AUDIO_ACTION, AX_CONVERSATION_COMPOSER_EMOJI_ACTION, AX_CONVERSATION_COMPOSER_EMOJI_TAB, AX_CONVERSATION_COMPOSER_FILE_ACTION, AX_CONVERSATION_COMPOSER_IMAGE_ACTION, AX_CONVERSATION_COMPOSER_LOCATION_ACTION, AX_CONVERSATION_COMPOSER_STICKER_TAB, AX_CONVERSATION_COMPOSER_VIDEO_ACTION, AX_CONVERSATION_COMPOSER_VOICE_RECORDING_ACTION, AX_CONVERSATION_FALLBACK_RENDERER, AX_CONVERSATION_FILE_RENDERER, AX_CONVERSATION_IMAGE_RENDERER, AX_CONVERSATION_INFO_BAR_ARCHIVE_ACTION, AX_CONVERSATION_INFO_BAR_BLOCK_ACTION, AX_CONVERSATION_INFO_BAR_DELETE_ACTION, AX_CONVERSATION_INFO_BAR_DIVIDER, AX_CONVERSATION_INFO_BAR_INFO_ACTION, AX_CONVERSATION_INFO_BAR_MUTE_ACTION, AX_CONVERSATION_INFO_BAR_SEARCH_ACTION, AX_CONVERSATION_ITEM_BLOCK_ACTION, AX_CONVERSATION_ITEM_DELETE_ACTION, AX_CONVERSATION_ITEM_DIVIDER, AX_CONVERSATION_ITEM_MARK_READ_ACTION, AX_CONVERSATION_ITEM_MUTE_ACTION, AX_CONVERSATION_ITEM_PIN_ACTION, AX_CONVERSATION_LOCATION_RENDERER, AX_CONVERSATION_MESSAGE_COPY_ACTION, AX_CONVERSATION_MESSAGE_DELETE_ACTION, AX_CONVERSATION_MESSAGE_EDIT_ACTION, AX_CONVERSATION_MESSAGE_FORWARD_ACTION, AX_CONVERSATION_MESSAGE_REPLY_ACTION, AX_CONVERSATION_STICKER_RENDERER, AX_CONVERSATION_SYSTEM_RENDERER, AX_CONVERSATION_TAB_ALL, AX_CONVERSATION_TAB_ARCHIVED, AX_CONVERSATION_TAB_BOT, AX_CONVERSATION_TAB_CHANNELS, AX_CONVERSATION_TAB_GROUPS, AX_CONVERSATION_TAB_PRIVATE, AX_CONVERSATION_TAB_UNREAD, AX_CONVERSATION_TEXT_RENDERER, AX_CONVERSATION_VIDEO_RENDERER, AX_CONVERSATION_VOICE_RENDERER, AX_DEFAULT_CONVERSATION_CONFIG, AX_STICKER_API_KEY, CONNECTION_ERRORS, CONVERSATION_CONFIG, CONVERSATION_ERRORS, DEFAULT_COMPOSER_ACTIONS, DEFAULT_COMPOSER_TABS, DEFAULT_CONVERSATION_ITEM_ACTIONS, DEFAULT_CONVERSATION_TABS, DEFAULT_INFO_BAR_ACTIONS, DEFAULT_MESSAGE_ACTIONS, DEFAULT_MESSAGE_RENDERERS, ERROR_HANDLER_CONFIG, ERROR_MESSAGES, FILE_ERRORS, LOCATION_ERRORS, MESSAGE_ERRORS, PERMISSION_ERRORS, REGISTRY_CONFIG, URL_ERRORS, USER_ERRORS, axConversationIndexedDbStorage, conversationSharedStorage, formatErrorMessage, getDefaultConversationItemActions, getErrorMessage, mergeWithDefaults, provideConversation, sanitizeInput, validateConversationId, validateEmail, validateFile, validateLatitude, validateLongitude, validateMessagePayload, validateMessageText, validateMessageType, validateUrl, validateUserId, validateUserIds };
6463
- export type { AXApiError, AXAudioPayload, AXBlockReportReason, AXCallEvent, AXComposerAction, AXComposerActionComponent, AXComposerActionContext, AXComposerActiveComponent, AXComposerTab, AXConnectionEvent, AXConnectionOptions, AXConnectionStatus, AXConversation, AXConversationAiResponderConfig, AXConversationConfig, AXConversationCreateData, AXConversationError, AXConversationFilter, AXConversationFilters, AXConversationItemAction, AXConversationItemActionContext, AXConversationMetadata, AXConversationOptions, AXConversationPermissions, AXConversationSettings, AXConversationSettingsUpdate, AXConversationSort, AXConversationStatus, AXConversationTab, AXConversationType, AXConversationUpdateData, AXDeleteMessageCommand, AXEditMessageCommand, AXErrorCode, AXErrorHandlerConfig, AXErrorMessage, AXErrorSeverity, AXFilePayload, AXFileValidationResult, AXGroupedReaction, AXImagePayload, AXInfoBarAction, AXInfoBarActionComponent, AXInfoBarActionContext, AXInfoBarActiveBanner, AXInfoBarActiveComponent, AXLink, AXLinkPreview, AXLocationPayload, AXMention, AXMessage, AXMessageAction, AXMessageActionContext, AXMessageAvatarTemplateContext, AXMessageForwardData, AXMessageInfoBarBannerComponent, AXMessageListEmptyComponent, AXMessagePayload, AXMessageRenderer, AXMessageRendererCapabilities, AXMessageRendererComponent, AXMessageRendererContentState, AXMessageRendererState, AXMessageSearchFilters, AXMessageStatus, AXMessageType, AXNotificationEvent, AXPaginatedResult, AXPagination, AXParticipant, AXParticipantRole, AXParticipantStatus, AXParticipantUpdate, AXPinnedMessage, AXPollOption, AXPollPayload, AXPresenceStatus, AXPresenceUpdate, AXReaction, AXReadReceipt, AXRegistryConfiguration, AXRegistryItem, AXSendMessageCommand, AXStickerPayload, AXSystemPayload, AXTextFormat, AXTextPayload, AXTypingIndicator, AXUserProfileUpdate, AXUserRole, AXUserSearchFilters, AXValidationResult, AXVideoPayload, AXVoicePayload, DropdownMenuItem, FilePreview, FileUploadProgress };
6243
+ export { AXAudioInfoBarBannerComponent, AXAudioPickerComponent, AXAudioRendererComponent, AXBaseRegistry, AXComposerActionRegistry, AXComposerComponent, AXComposerPopupComponent, AXComposerService, AXComposerTabRegistry, AXConversation2Module, AXConversationAiApiKey, AXConversationAiResponderService, AXConversationApi, AXConversationContainerComponent, AXConversationContainerDirective, AXConversationDateUtilsService, AXConversationIndexedDbConversationApi, AXConversationIndexedDbMessageAiApi, AXConversationIndexedDbMessageApi, AXConversationIndexedDbRealtimeApi, AXConversationIndexedDbStorage, AXConversationIndexedDbStores, AXConversationIndexedDbUserApi, AXConversationInfoPanelComponent, AXConversationItemActionRegistry, AXConversationMessageRendererStateComponent, AXConversationMessageUtilsService, AXConversationService, AXConversationSharedStorage, AXConversationTabRegistry, AXEmojiTabComponent, AXErrorHandlerService, AXFallbackRendererComponent, AXFilePickerComponent, AXFileRendererComponent, AXFileUploadService, AXForwardMessageDialogComponent, AXImagePickerComponent, AXImageRendererComponent, AXInfiniteScrollDirective, AXInfoBarActionRegistry, AXInfoBarComponent, AXInfoBarSearchComponent, AXInfoBarService, AXLocationPickerComponent, AXLocationRendererComponent, AXMessageActionRegistry, AXMessageApi, AXMessageListComponent, AXMessageListNoActiveDefaultComponent, AXMessageListService, AXMessageRendererRegistry, AXNewConversationDialogComponent, AXPickerFooterComponent, AXPickerHeaderComponent, AXRealtimeApi, AXRegistryService, AXSidebarComponent, AXSidebarService, AXStickerRendererComponent, AXStickerTabComponent, AXSystemRendererComponent, AXTextRendererComponent, AXUserApi, AXVideoInfoBarBannerComponent, AXVideoPickerComponent, AXVideoRendererComponent, AXVoiceInfoBarBannerComponent, AXVoiceRecorderComponent, AXVoiceRendererComponent, AX_CONVERSATION_AUDIO_RENDERER, AX_CONVERSATION_COMPOSER_AUDIO_ACTION, AX_CONVERSATION_COMPOSER_EMOJI_ACTION, AX_CONVERSATION_COMPOSER_EMOJI_TAB, AX_CONVERSATION_COMPOSER_FILE_ACTION, AX_CONVERSATION_COMPOSER_IMAGE_ACTION, AX_CONVERSATION_COMPOSER_LOCATION_ACTION, AX_CONVERSATION_COMPOSER_STICKER_TAB, AX_CONVERSATION_COMPOSER_VIDEO_ACTION, AX_CONVERSATION_COMPOSER_VOICE_RECORDING_ACTION, AX_CONVERSATION_FALLBACK_RENDERER, AX_CONVERSATION_FILE_RENDERER, AX_CONVERSATION_IMAGE_RENDERER, AX_CONVERSATION_INFO_BAR_ARCHIVE_ACTION, AX_CONVERSATION_INFO_BAR_BLOCK_ACTION, AX_CONVERSATION_INFO_BAR_DELETE_ACTION, AX_CONVERSATION_INFO_BAR_DIVIDER, AX_CONVERSATION_INFO_BAR_INFO_ACTION, AX_CONVERSATION_INFO_BAR_MUTE_ACTION, AX_CONVERSATION_INFO_BAR_SEARCH_ACTION, AX_CONVERSATION_ITEM_BLOCK_ACTION, AX_CONVERSATION_ITEM_DELETE_ACTION, AX_CONVERSATION_ITEM_DIVIDER, AX_CONVERSATION_ITEM_MARK_READ_ACTION, AX_CONVERSATION_ITEM_MUTE_ACTION, AX_CONVERSATION_ITEM_PIN_ACTION, AX_CONVERSATION_LOCATION_RENDERER, AX_CONVERSATION_MESSAGE_COPY_ACTION, AX_CONVERSATION_MESSAGE_DELETE_ACTION, AX_CONVERSATION_MESSAGE_EDIT_ACTION, AX_CONVERSATION_MESSAGE_FORWARD_ACTION, AX_CONVERSATION_MESSAGE_REPLY_ACTION, AX_CONVERSATION_STICKER_RENDERER, AX_CONVERSATION_SYSTEM_RENDERER, AX_CONVERSATION_TAB_ALL, AX_CONVERSATION_TAB_ARCHIVED, AX_CONVERSATION_TAB_BOT, AX_CONVERSATION_TAB_CHANNELS, AX_CONVERSATION_TAB_GROUPS, AX_CONVERSATION_TAB_PRIVATE, AX_CONVERSATION_TAB_UNREAD, AX_CONVERSATION_TEXT_RENDERER, AX_CONVERSATION_VIDEO_RENDERER, AX_CONVERSATION_VOICE_RENDERER, AX_DEFAULT_CONVERSATION_CONFIG, AX_STICKER_API_KEY, CONNECTION_ERRORS, CONVERSATION_CONFIG, CONVERSATION_ERRORS, DEFAULT_COMPOSER_ACTIONS, DEFAULT_COMPOSER_TABS, DEFAULT_CONVERSATION_ITEM_ACTIONS, DEFAULT_CONVERSATION_TABS, DEFAULT_INFO_BAR_ACTIONS, DEFAULT_MESSAGE_ACTIONS, DEFAULT_MESSAGE_RENDERERS, ERROR_HANDLER_CONFIG, ERROR_MESSAGES, FILE_ERRORS, LOCATION_ERRORS, MESSAGE_ERRORS, PERMISSION_ERRORS, REGISTRY_CONFIG, URL_ERRORS, USER_ERRORS, axConversationIndexedDbStorage, conversationSharedStorage, formatErrorMessage, getDefaultConversationItemActions, getErrorMessage, mergeWithDefaults, provideConversation, sanitizeInput, validateConversationId, validateEmail, validateFile, validateLatitude, validateLongitude, validateMessagePayload, validateMessageText, validateMessageType, validateUrl, validateUserId, validateUserIds };
6244
+ export type { AXApiError, AXAudioPayload, AXBlockReportReason, AXCallEvent, AXComposerAction, AXComposerActionComponent, AXComposerActionContext, AXComposerActiveComponent, AXComposerTab, AXConnectionEvent, AXConnectionOptions, AXConnectionStatus, AXConversation, AXConversationAiResponderConfig, AXConversationConfig, AXConversationCreateData, AXConversationError, AXConversationFilter, AXConversationFilters, AXConversationItemAction, AXConversationItemActionContext, AXConversationMetadata, AXConversationOptions, AXConversationPermissions, AXConversationSettings, AXConversationSettingsUpdate, AXConversationSort, AXConversationStatus, AXConversationTab, AXConversationType, AXConversationUpdateData, AXDeleteMessageCommand, AXEditMessageCommand, AXErrorCode, AXErrorHandlerConfig, AXErrorMessage, AXErrorSeverity, AXFilePayload, AXFileValidationResult, AXGroupedReaction, AXImagePayload, AXInfoBarAction, AXInfoBarActionComponent, AXInfoBarActionContext, AXInfoBarActiveBanner, AXInfoBarActiveComponent, AXLink, AXLinkPreview, AXLocationPayload, AXMention, AXMessage, AXMessageAction, AXMessageActionContext, AXMessageAvatarTemplateContext, AXMessageForwardData, AXMessageInfoBarBannerComponent, AXMessageListEmptyComponent, AXMessagePayload, AXMessageRenderer, AXMessageRendererCapabilities, AXMessageRendererComponent, AXMessageRendererContentState, AXMessageRendererState, AXMessageSearchFilters, AXMessageStatus, AXMessageType, AXNotificationEvent, AXPaginatedResult, AXPagination, AXParticipant, AXParticipantRole, AXParticipantStatus, AXParticipantUpdate, AXPinnedMessage, AXPollOption, AXPollPayload, AXPresenceStatus, AXPresenceUpdate, AXReaction, AXReadReceipt, AXRegistryConfiguration, AXRegistryItem, AXSendMessageCommand, AXStickerPayload, AXSystemPayload, AXTextFormat, AXTextPayload, AXTypingIndicator, AXUserProfileUpdate, AXUserRole, AXUserSearchFilters, AXValidationResult, AXVideoPayload, AXVoicePayload, DropdownMenuItem, FilePreview };
@@ -60,6 +60,7 @@ declare class AXPasswordStrengthValidationComponent {
60
60
  readonly showUseLowerCase: _angular_core.InputSignal<boolean>;
61
61
  readonly showUseNumber: _angular_core.InputSignal<boolean>;
62
62
  readonly showUseSpecialCharacter: _angular_core.InputSignal<boolean>;
63
+ readonly mode: _angular_core.InputSignal<"full" | "compact">;
63
64
  protected isLengthGraterThan8: _angular_core.WritableSignal<{
64
65
  regex: RegExp;
65
66
  state: boolean;
@@ -83,7 +84,7 @@ declare class AXPasswordStrengthValidationComponent {
83
84
  private checkRegexHandler;
84
85
  protected checkPasswordStrength(): void;
85
86
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPasswordStrengthValidationComponent, never>;
86
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPasswordStrengthValidationComponent, "ax-password-strength-validation", never, { "showProgress": { "alias": "showProgress"; "required": false; "isSignal": true; }; "showLengthGraterThan8": { "alias": "showLengthGraterThan8"; "required": false; "isSignal": true; }; "showUseUpperCase": { "alias": "showUseUpperCase"; "required": false; "isSignal": true; }; "showUseLowerCase": { "alias": "showUseLowerCase"; "required": false; "isSignal": true; }; "showUseNumber": { "alias": "showUseNumber"; "required": false; "isSignal": true; }; "showUseSpecialCharacter": { "alias": "showUseSpecialCharacter"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
87
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPasswordStrengthValidationComponent, "ax-password-strength-validation", never, { "showProgress": { "alias": "showProgress"; "required": false; "isSignal": true; }; "showLengthGraterThan8": { "alias": "showLengthGraterThan8"; "required": false; "isSignal": true; }; "showUseUpperCase": { "alias": "showUseUpperCase"; "required": false; "isSignal": true; }; "showUseLowerCase": { "alias": "showUseLowerCase"; "required": false; "isSignal": true; }; "showUseNumber": { "alias": "showUseNumber"; "required": false; "isSignal": true; }; "showUseSpecialCharacter": { "alias": "showUseSpecialCharacter"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
87
88
  }
88
89
 
89
90
  declare class AXPasswordBoxModule {