@acorex/components 18.15.0 → 18.15.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,6 +1,6 @@
1
1
  import { MXInputBaseValueComponent, MXLookComponent, AXComponent, AXFocusableComponent, AXClearableComponent, AXValuableComponent } from '@acorex/components/common';
2
2
  import * as i0 from '@angular/core';
3
- import { input, forwardRef, Component, ViewEncapsulation, ChangeDetectionStrategy, ViewChild, Input, signal, inject, afterNextRender, NgModule } from '@angular/core';
3
+ import { forwardRef, Component, ViewEncapsulation, ChangeDetectionStrategy, ViewChild, Input, signal, inject, input, afterNextRender, NgModule } from '@angular/core';
4
4
  import * as i1 from '@angular/forms';
5
5
  import { NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';
6
6
  import { classes } from 'polytype';
@@ -35,14 +35,6 @@ class AXPasswordBoxComponent extends classes((MXInputBaseValueComponent), MXLook
35
35
  * A flag for showing or hiding password button.
36
36
  */
37
37
  this.showToggleButton = true;
38
- /**
39
- * Hint status.
40
- */
41
- this.showHint = input(false);
42
- /**
43
- * Progress status.
44
- */
45
- this.showProgress = input(false);
46
38
  }
47
39
  /** @ignore */
48
40
  _handleModelChange(value) {
@@ -62,7 +54,7 @@ class AXPasswordBoxComponent extends classes((MXInputBaseValueComponent), MXLook
62
54
  }
63
55
  }
64
56
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPasswordBoxComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
65
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXPasswordBoxComponent, selector: "ax-password-box", inputs: { readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: false, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: null }, tabIndex: { classPropertyName: "tabIndex", publicName: "tabIndex", isSignal: false, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: false, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: false, isRequired: false, transformFunction: null }, state: { classPropertyName: "state", publicName: "state", isSignal: false, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: false, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: false, isRequired: false, transformFunction: null }, look: { classPropertyName: "look", publicName: "look", isSignal: false, isRequired: false, transformFunction: null }, autoComplete: { classPropertyName: "autoComplete", publicName: "autoComplete", isSignal: false, isRequired: false, transformFunction: null }, showToggleButton: { classPropertyName: "showToggleButton", publicName: "showToggleButton", isSignal: false, isRequired: false, transformFunction: null }, classNames: { classPropertyName: "classNames", publicName: "class", isSignal: false, isRequired: false, transformFunction: null }, showHint: { classPropertyName: "showHint", publicName: "showHint", isSignal: true, isRequired: false, transformFunction: null }, showProgress: { classPropertyName: "showProgress", publicName: "showProgress", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange", stateChange: "stateChange", onValueChanged: "onValueChanged", onBlur: "onBlur", onFocus: "onFocus", readonlyChange: "readonlyChange", disabledChange: "disabledChange", onKeyDown: "onKeyDown", onKeyUp: "onKeyUp", onKeyPress: "onKeyPress" }, providers: [
57
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXPasswordBoxComponent, selector: "ax-password-box", inputs: { readonly: "readonly", disabled: "disabled", tabIndex: "tabIndex", placeholder: "placeholder", value: "value", state: "state", name: "name", id: "id", look: "look", autoComplete: "autoComplete", showToggleButton: "showToggleButton", classNames: ["class", "classNames"] }, outputs: { valueChange: "valueChange", stateChange: "stateChange", onValueChanged: "onValueChanged", onBlur: "onBlur", onFocus: "onFocus", readonlyChange: "readonlyChange", disabledChange: "disabledChange", onKeyDown: "onKeyDown", onKeyUp: "onKeyUp", onKeyPress: "onKeyPress" }, providers: [
66
58
  { provide: AXComponent, useExisting: AXPasswordBoxComponent },
67
59
  { provide: AXFocusableComponent, useExisting: AXPasswordBoxComponent },
68
60
  { provide: AXClearableComponent, useExisting: AXPasswordBoxComponent },
@@ -117,6 +109,14 @@ class AXPasswordStrengthValidationComponent {
117
109
  this.strengthLabel = signal('fragile');
118
110
  this.strengthLabelColor = signal('danger');
119
111
  this.parent = inject(AXPasswordBoxComponent);
112
+ /**
113
+ * Hint status.
114
+ */
115
+ this.showHint = input(false);
116
+ /**
117
+ * Progress status.
118
+ */
119
+ this.showProgress = input(true);
120
120
  this.isLenghtgraterThan8 = signal({ regex: /.{8,}/, state: false });
121
121
  this.isUseUpperCase = signal({ regex: /[A-Z]/, state: false });
122
122
  this.isUseLowerCase = signal({ regex: /[a-z]/, state: false });
@@ -159,11 +159,11 @@ class AXPasswordStrengthValidationComponent {
159
159
  this.passwordStrength.set((strength * 100) / 5);
160
160
  }
161
161
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPasswordStrengthValidationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
162
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXPasswordStrengthValidationComponent, selector: "ax-password-strength-validation", ngImport: i0, template: "@if (parent.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 {{ strengthLabel() | translate | async }}\n </small>\n\n <ax-progress-bar\n [color]=\"strengthLabelColor()\"\n [progress]=\"passwordStrength()\"\n [height]=\"4\"\n ></ax-progress-bar>\n}\n@if (parent.showHint()) {\n <div class=\"ax-hint-container\">\n <small class=\"ax-hint-state\">\n <ax-badge [color]=\"isLenghtgraterThan8().state ? 'success' : 'danger'\"></ax-badge>\n <span [class.ax-line]=\"isLenghtgraterThan8().state\">\n {{ 'at-least-8-characters' | translate | async }}\n </span>\n </small>\n <small class=\"ax-hint-state\" [class.ax-line]=\"isUseUpperCase().state\">\n <ax-badge [color]=\"isUseUpperCase().state ? 'success' : 'danger'\"></ax-badge>\n <span>\n {{ 'english-upper-case-letter' | translate | async }}\n </span>\n </small>\n <small class=\"ax-hint-state\" [class.ax-line]=\"isUseLowerCase().state\">\n <ax-badge [color]=\"isUseLowerCase().state ? 'success' : 'danger'\"></ax-badge>\n <span>\n {{ 'english-lower-case-letter' | translate | async }}\n </span>\n </small>\n <small class=\"ax-hint-state\" [class.ax-line]=\"isUseNumber().state\">\n <ax-badge [color]=\"isUseNumber().state ? 'success' : 'danger'\"></ax-badge\n ><span> {{ 'digits' | translate | async }} </span>\n </small>\n <small class=\"ax-hint-state\" [class.ax-line]=\"isUseSpecialCharacter().state\">\n <ax-badge [color]=\"isUseSpecialCharacter().state ? 'success' : 'danger'\"></ax-badge>\n <span>\n {{ 'special-character' | translate | async }}\n </span>\n </small>\n </div>\n}\n", styles: [".ax-state-password.ax-text-red{color:rgb(var(--ax-color-danger-500))}.ax-state-password.ax-text-orange{color:rgb(var(--ax-color-warning-500))}.ax-state-password.ax-text-green{color:rgb(var(--ax-color-success-500))}.ax-hint-container{display:flex;flex-direction:column;gap:.5rem;padding-top:.5rem}.ax-hint-container .ax-line{text-decoration:line-through}\n"], dependencies: [{ kind: "component", type: i1$1.AXProgressBarComponent, selector: "ax-progress-bar", inputs: ["color", "mode", "progress", "height"], outputs: ["ValueChange", "sizeChange"] }, { kind: "component", type: i2.AXBadgeComponent, selector: "ax-badge", inputs: ["color", "look", "text"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
162
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXPasswordStrengthValidationComponent, selector: "ax-password-strength-validation", inputs: { showHint: { classPropertyName: "showHint", publicName: "showHint", isSignal: true, isRequired: false, transformFunction: null }, showProgress: { classPropertyName: "showProgress", publicName: "showProgress", isSignal: true, isRequired: false, transformFunction: null } }, 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 {{ strengthLabel() | translate | async }}\n </small>\n\n <ax-progress-bar\n [color]=\"strengthLabelColor()\"\n [progress]=\"passwordStrength()\"\n [height]=\"4\"\n ></ax-progress-bar>\n}\n@if (showHint()) {\n <div class=\"ax-hint-container\">\n <small class=\"ax-hint-state\">\n <ax-badge [color]=\"isLenghtgraterThan8().state ? 'success' : 'danger'\"></ax-badge>\n <span [class.ax-line]=\"isLenghtgraterThan8().state\">\n {{ 'at-least-8-characters' | translate | async }}\n </span>\n </small>\n <small class=\"ax-hint-state\" [class.ax-line]=\"isUseUpperCase().state\">\n <ax-badge [color]=\"isUseUpperCase().state ? 'success' : 'danger'\"></ax-badge>\n <span>\n {{ 'english-upper-case-letter' | translate | async }}\n </span>\n </small>\n <small class=\"ax-hint-state\" [class.ax-line]=\"isUseLowerCase().state\">\n <ax-badge [color]=\"isUseLowerCase().state ? 'success' : 'danger'\"></ax-badge>\n <span>\n {{ 'english-lower-case-letter' | translate | async }}\n </span>\n </small>\n <small class=\"ax-hint-state\" [class.ax-line]=\"isUseNumber().state\">\n <ax-badge [color]=\"isUseNumber().state ? 'success' : 'danger'\"></ax-badge\n ><span> {{ 'digits' | translate | async }} </span>\n </small>\n <small class=\"ax-hint-state\" [class.ax-line]=\"isUseSpecialCharacter().state\">\n <ax-badge [color]=\"isUseSpecialCharacter().state ? 'success' : 'danger'\"></ax-badge>\n <span>\n {{ 'special-character' | translate | async }}\n </span>\n </small>\n </div>\n}\n", styles: [".ax-state-password.ax-text-red{color:rgb(var(--ax-color-danger-500))}.ax-state-password.ax-text-orange{color:rgb(var(--ax-color-warning-500))}.ax-state-password.ax-text-green{color:rgb(var(--ax-color-success-500))}.ax-hint-container{display:flex;flex-direction:column;gap:.5rem;padding-top:.5rem}.ax-hint-container .ax-line{text-decoration:line-through}\n"], dependencies: [{ kind: "component", type: i1$1.AXProgressBarComponent, selector: "ax-progress-bar", inputs: ["color", "mode", "progress", "height"], outputs: ["ValueChange", "sizeChange"] }, { kind: "component", type: i2.AXBadgeComponent, selector: "ax-badge", inputs: ["color", "look", "text"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
163
163
  }
164
164
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPasswordStrengthValidationComponent, decorators: [{
165
165
  type: Component,
166
- args: [{ selector: 'ax-password-strength-validation', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "@if (parent.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 {{ strengthLabel() | translate | async }}\n </small>\n\n <ax-progress-bar\n [color]=\"strengthLabelColor()\"\n [progress]=\"passwordStrength()\"\n [height]=\"4\"\n ></ax-progress-bar>\n}\n@if (parent.showHint()) {\n <div class=\"ax-hint-container\">\n <small class=\"ax-hint-state\">\n <ax-badge [color]=\"isLenghtgraterThan8().state ? 'success' : 'danger'\"></ax-badge>\n <span [class.ax-line]=\"isLenghtgraterThan8().state\">\n {{ 'at-least-8-characters' | translate | async }}\n </span>\n </small>\n <small class=\"ax-hint-state\" [class.ax-line]=\"isUseUpperCase().state\">\n <ax-badge [color]=\"isUseUpperCase().state ? 'success' : 'danger'\"></ax-badge>\n <span>\n {{ 'english-upper-case-letter' | translate | async }}\n </span>\n </small>\n <small class=\"ax-hint-state\" [class.ax-line]=\"isUseLowerCase().state\">\n <ax-badge [color]=\"isUseLowerCase().state ? 'success' : 'danger'\"></ax-badge>\n <span>\n {{ 'english-lower-case-letter' | translate | async }}\n </span>\n </small>\n <small class=\"ax-hint-state\" [class.ax-line]=\"isUseNumber().state\">\n <ax-badge [color]=\"isUseNumber().state ? 'success' : 'danger'\"></ax-badge\n ><span> {{ 'digits' | translate | async }} </span>\n </small>\n <small class=\"ax-hint-state\" [class.ax-line]=\"isUseSpecialCharacter().state\">\n <ax-badge [color]=\"isUseSpecialCharacter().state ? 'success' : 'danger'\"></ax-badge>\n <span>\n {{ 'special-character' | translate | async }}\n </span>\n </small>\n </div>\n}\n", styles: [".ax-state-password.ax-text-red{color:rgb(var(--ax-color-danger-500))}.ax-state-password.ax-text-orange{color:rgb(var(--ax-color-warning-500))}.ax-state-password.ax-text-green{color:rgb(var(--ax-color-success-500))}.ax-hint-container{display:flex;flex-direction:column;gap:.5rem;padding-top:.5rem}.ax-hint-container .ax-line{text-decoration:line-through}\n"] }]
166
+ args: [{ selector: 'ax-password-strength-validation', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, 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 {{ strengthLabel() | translate | async }}\n </small>\n\n <ax-progress-bar\n [color]=\"strengthLabelColor()\"\n [progress]=\"passwordStrength()\"\n [height]=\"4\"\n ></ax-progress-bar>\n}\n@if (showHint()) {\n <div class=\"ax-hint-container\">\n <small class=\"ax-hint-state\">\n <ax-badge [color]=\"isLenghtgraterThan8().state ? 'success' : 'danger'\"></ax-badge>\n <span [class.ax-line]=\"isLenghtgraterThan8().state\">\n {{ 'at-least-8-characters' | translate | async }}\n </span>\n </small>\n <small class=\"ax-hint-state\" [class.ax-line]=\"isUseUpperCase().state\">\n <ax-badge [color]=\"isUseUpperCase().state ? 'success' : 'danger'\"></ax-badge>\n <span>\n {{ 'english-upper-case-letter' | translate | async }}\n </span>\n </small>\n <small class=\"ax-hint-state\" [class.ax-line]=\"isUseLowerCase().state\">\n <ax-badge [color]=\"isUseLowerCase().state ? 'success' : 'danger'\"></ax-badge>\n <span>\n {{ 'english-lower-case-letter' | translate | async }}\n </span>\n </small>\n <small class=\"ax-hint-state\" [class.ax-line]=\"isUseNumber().state\">\n <ax-badge [color]=\"isUseNumber().state ? 'success' : 'danger'\"></ax-badge\n ><span> {{ 'digits' | translate | async }} </span>\n </small>\n <small class=\"ax-hint-state\" [class.ax-line]=\"isUseSpecialCharacter().state\">\n <ax-badge [color]=\"isUseSpecialCharacter().state ? 'success' : 'danger'\"></ax-badge>\n <span>\n {{ 'special-character' | translate | async }}\n </span>\n </small>\n </div>\n}\n", styles: [".ax-state-password.ax-text-red{color:rgb(var(--ax-color-danger-500))}.ax-state-password.ax-text-orange{color:rgb(var(--ax-color-warning-500))}.ax-state-password.ax-text-green{color:rgb(var(--ax-color-success-500))}.ax-hint-container{display:flex;flex-direction:column;gap:.5rem;padding-top:.5rem}.ax-hint-container .ax-line{text-decoration:line-through}\n"] }]
167
167
  }] });
168
168
 
169
169
  const COMPONENT = [AXPasswordBoxComponent, AXPasswordStrengthValidationComponent];
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-components-password-box.mjs","sources":["../../../../libs/components/password-box/src/lib/password-box.component.ts","../../../../libs/components/password-box/src/lib/password-box.component.html","../../../../libs/components/password-box/src/lib/password-strength-validation/password-strength-validation.component.ts","../../../../libs/components/password-box/src/lib/password-strength-validation/password-strength-validation.component.html","../../../../libs/components/password-box/src/lib/password-box.module.ts","../../../../libs/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/components/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n ViewChild,\n ViewEncapsulation,\n forwardRef,\n input,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { classes } from 'polytype';\n\n/**\n * The Textbox is a component which detects user interaction and triggers a corresponding event\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'],\n styles: `\n .ax-strength-validation-container {\n margin-top: 0.25rem;\n }\n `,\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\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})\nexport class AXPasswordBoxComponent extends classes(MXInputBaseValueComponent<string>, MXLookComponent) {\n /** @ignore */\n @ViewChild('input') input: ElementRef<HTMLInputElement>;\n\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 /**\n * Hint status.\n */\n showHint = input(false);\n\n /**\n * Progress status.\n */\n showProgress = input(false);\n\n /** @ignore */\n _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('class')\n // get __hostClass(): string[] {\n // return ['ax-editor-container', `ax-look-${this.look}`, `${this.disabled ? 'ax-state-disabled' : ''}`];\n // }\n}\n","<div class=\"ax-editor-container ax-look-{{ look }} {{ classNames }}\" [class.ax-state-disabled]=\"disabled\">\n <ng-content select=\"ax-prefix\"> </ng-content>\n <input\n #input\n class=\"ax-input\"\n [name]=\"name\"\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 @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 ax-button-icon\" (click)=\"toggleType()\" [tabIndex]=\"-1\">\n <span class=\"ax-icon {{ _icon }}\"></span>\n </button>\n }\n <ng-content select=\"ax-suffix\"> </ng-content>\n <ng-content select=\"ax-validation-rule\"> </ng-content>\n</div>\n<div class=\"ax-error-container\"></div>\n\n<div class=\"ax-strength-validation-container\">\n <ng-content select=\"ax-password-strength-validation\" [showHint]=\"showStrength()\"></ng-content>\n</div>\n","import {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n inject,\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.scss',\n})\nexport class AXPasswordStrengthValidationComponent {\n protected passwordStrength = signal(0);\n protected updatedPassword = signal('');\n protected strengthLabel = signal('fragile');\n protected strengthLabelColor = signal('danger');\n protected parent = inject(AXPasswordBoxComponent);\n\n protected isLenghtgraterThan8 = 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\n this.checkRegexHandler(this.isLenghtgraterThan8) && strength++;\n this.checkRegexHandler(this.isUseUpperCase) && strength++;\n this.checkRegexHandler(this.isUseLowerCase) && strength++;\n this.checkRegexHandler(this.isUseNumber) && strength++;\n this.checkRegexHandler(this.isUseSpecialCharacter) && strength++;\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 (parent.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 {{ strengthLabel() | translate | async }}\n </small>\n\n <ax-progress-bar\n [color]=\"strengthLabelColor()\"\n [progress]=\"passwordStrength()\"\n [height]=\"4\"\n ></ax-progress-bar>\n}\n@if (parent.showHint()) {\n <div class=\"ax-hint-container\">\n <small class=\"ax-hint-state\">\n <ax-badge [color]=\"isLenghtgraterThan8().state ? 'success' : 'danger'\"></ax-badge>\n <span [class.ax-line]=\"isLenghtgraterThan8().state\">\n {{ 'at-least-8-characters' | translate | async }}\n </span>\n </small>\n <small class=\"ax-hint-state\" [class.ax-line]=\"isUseUpperCase().state\">\n <ax-badge [color]=\"isUseUpperCase().state ? 'success' : 'danger'\"></ax-badge>\n <span>\n {{ 'english-upper-case-letter' | translate | async }}\n </span>\n </small>\n <small class=\"ax-hint-state\" [class.ax-line]=\"isUseLowerCase().state\">\n <ax-badge [color]=\"isUseLowerCase().state ? 'success' : 'danger'\"></ax-badge>\n <span>\n {{ 'english-lower-case-letter' | translate | async }}\n </span>\n </small>\n <small class=\"ax-hint-state\" [class.ax-line]=\"isUseNumber().state\">\n <ax-badge [color]=\"isUseNumber().state ? 'success' : 'danger'\"></ax-badge\n ><span> {{ 'digits' | translate | async }} </span>\n </small>\n <small class=\"ax-hint-state\" [class.ax-line]=\"isUseSpecialCharacter().state\">\n <ax-badge [color]=\"isUseSpecialCharacter().state ? 'success' : 'danger'\"></ax-badge>\n <span>\n {{ 'special-character' | translate | async }}\n </span>\n </small>\n </div>\n}\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 declarations: [...COMPONENT],\n imports: [...MODULES],\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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"}
1
+ {"version":3,"file":"acorex-components-password-box.mjs","sources":["../../../../libs/components/password-box/src/lib/password-box.component.ts","../../../../libs/components/password-box/src/lib/password-box.component.html","../../../../libs/components/password-box/src/lib/password-strength-validation/password-strength-validation.component.ts","../../../../libs/components/password-box/src/lib/password-strength-validation/password-strength-validation.component.html","../../../../libs/components/password-box/src/lib/password-box.module.ts","../../../../libs/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/components/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n ViewChild,\n ViewEncapsulation,\n forwardRef,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { classes } from 'polytype';\n\n/**\n * The Textbox is a component which detects user interaction and triggers a corresponding event\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'],\n styles: `\n .ax-strength-validation-container {\n margin-top: 0.25rem;\n }\n `,\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\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})\nexport class AXPasswordBoxComponent extends classes(MXInputBaseValueComponent<string>, MXLookComponent) {\n /** @ignore */\n @ViewChild('input') input: ElementRef<HTMLInputElement>;\n\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 _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('class')\n // get __hostClass(): string[] {\n // return ['ax-editor-container', `ax-look-${this.look}`, `${this.disabled ? 'ax-state-disabled' : ''}`];\n // }\n}\n","<div class=\"ax-editor-container ax-look-{{ look }} {{ classNames }}\" [class.ax-state-disabled]=\"disabled\">\n <ng-content select=\"ax-prefix\"> </ng-content>\n <input\n #input\n class=\"ax-input\"\n [name]=\"name\"\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 @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 ax-button-icon\" (click)=\"toggleType()\" [tabIndex]=\"-1\">\n <span class=\"ax-icon {{ _icon }}\"></span>\n </button>\n }\n <ng-content select=\"ax-suffix\"> </ng-content>\n <ng-content select=\"ax-validation-rule\"> </ng-content>\n</div>\n<div class=\"ax-error-container\"></div>\n\n<div class=\"ax-strength-validation-container\">\n <ng-content select=\"ax-password-strength-validation\" [showHint]=\"showStrength()\"></ng-content>\n</div>\n","import {\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.scss',\n})\nexport class AXPasswordStrengthValidationComponent {\n protected passwordStrength = signal(0);\n protected updatedPassword = signal('');\n protected strengthLabel = signal('fragile');\n protected strengthLabelColor = signal('danger');\n protected parent = inject(AXPasswordBoxComponent);\n\n /**\n * Hint status.\n */\n showHint = input(false);\n\n /**\n * Progress status.\n */\n showProgress = input(true);\n\n protected isLenghtgraterThan8 = 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\n this.checkRegexHandler(this.isLenghtgraterThan8) && strength++;\n this.checkRegexHandler(this.isUseUpperCase) && strength++;\n this.checkRegexHandler(this.isUseLowerCase) && strength++;\n this.checkRegexHandler(this.isUseNumber) && strength++;\n this.checkRegexHandler(this.isUseSpecialCharacter) && strength++;\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 {{ strengthLabel() | translate | async }}\n </small>\n\n <ax-progress-bar\n [color]=\"strengthLabelColor()\"\n [progress]=\"passwordStrength()\"\n [height]=\"4\"\n ></ax-progress-bar>\n}\n@if (showHint()) {\n <div class=\"ax-hint-container\">\n <small class=\"ax-hint-state\">\n <ax-badge [color]=\"isLenghtgraterThan8().state ? 'success' : 'danger'\"></ax-badge>\n <span [class.ax-line]=\"isLenghtgraterThan8().state\">\n {{ 'at-least-8-characters' | translate | async }}\n </span>\n </small>\n <small class=\"ax-hint-state\" [class.ax-line]=\"isUseUpperCase().state\">\n <ax-badge [color]=\"isUseUpperCase().state ? 'success' : 'danger'\"></ax-badge>\n <span>\n {{ 'english-upper-case-letter' | translate | async }}\n </span>\n </small>\n <small class=\"ax-hint-state\" [class.ax-line]=\"isUseLowerCase().state\">\n <ax-badge [color]=\"isUseLowerCase().state ? 'success' : 'danger'\"></ax-badge>\n <span>\n {{ 'english-lower-case-letter' | translate | async }}\n </span>\n </small>\n <small class=\"ax-hint-state\" [class.ax-line]=\"isUseNumber().state\">\n <ax-badge [color]=\"isUseNumber().state ? 'success' : 'danger'\"></ax-badge\n ><span> {{ 'digits' | translate | async }} </span>\n </small>\n <small class=\"ax-hint-state\" [class.ax-line]=\"isUseSpecialCharacter().state\">\n <ax-badge [color]=\"isUseSpecialCharacter().state ? 'success' : 'danger'\"></ax-badge>\n <span>\n {{ 'special-character' | translate | async }}\n </span>\n </small>\n </div>\n}\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 declarations: [...COMPONENT],\n imports: [...MODULES],\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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"}
@@ -129,7 +129,6 @@ class AXSelectBoxComponent extends classes(MXDropdownBoxBaseComponent, MXSelecti
129
129
  this.renderList = true;
130
130
  this.list?.render();
131
131
  this._handleFocus();
132
- this.setDropdownSize();
133
132
  //
134
133
  this.onOpened.emit({
135
134
  component: this,
@@ -201,9 +200,7 @@ class AXSelectBoxComponent extends classes(MXDropdownBoxBaseComponent, MXSelecti
201
200
  const hostWidth = Math.max(this.getHostElement().offsetWidth, this.dropdownWidth);
202
201
  this.dropdownSizes = {
203
202
  width: `${hostWidth}px`,
204
- height: this._listDataSource.totalCount == 0
205
- ? 'auto'
206
- : `${Math.min(5, this._listDataSource.totalCount) * 40}px`,
203
+ height: count == 0 ? 'auto' : `${Math.min(5, count) * 40}px`,
207
204
  };
208
205
  }
209
206
  setTimeout(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-components-select-box.mjs","sources":["../../../../libs/components/select-box/src/lib/select-box.component.ts","../../../../libs/components/select-box/src/lib/select-box.component.html","../../../../libs/components/select-box/src/lib/select-box.module.ts","../../../../libs/components/select-box/src/acorex-components-select-box.ts"],"sourcesContent":["import {\r\n AXClearableComponent,\r\n AXClosbaleComponent,\r\n AXComponent,\r\n AXDataSource,\r\n AXEvent,\r\n AXFocusableComponent,\r\n AXHotkeysService,\r\n AXItemClickEvent,\r\n AXSearchableComponent,\r\n AXValuableComponent,\r\n AXValueChangedEvent,\r\n AX_SELECTION_DATA_TOKEN,\r\n MXLookComponent,\r\n MXSelectionBridgeService,\r\n MXSelectionValueComponent,\r\n convertArrayToDataSource,\r\n} from '@acorex/components/common';\r\nimport { AXDropdownBoxComponent, MXDropdownBoxBaseComponent } from '@acorex/components/dropdown';\r\nimport { AXListComponent } from '@acorex/components/list';\r\nimport { AXSearchBoxComponent } from '@acorex/components/search-box';\r\nimport { AXUnsubscriber } from '@acorex/core/utils';\r\nimport {\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n Component,\r\n ContentChild,\r\n ElementRef,\r\n HostListener,\r\n Input,\r\n OnDestroy,\r\n TemplateRef,\r\n ViewChild,\r\n ViewEncapsulation,\r\n WritableSignal,\r\n forwardRef,\r\n inject,\r\n signal,\r\n} from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { findLastIndex, last, nth } from 'lodash-es';\r\nimport { classes } from 'polytype';\r\nimport { Observable } from 'rxjs';\r\n\r\n/**\r\n * The Button is a component which detects user interaction and triggers a corresponding event\r\n * @category\r\n */\r\n@Component({\r\n selector: 'ax-select-box',\r\n templateUrl: './select-box.component.html',\r\n styleUrls: ['./select-box.component.scss'],\r\n inputs: [\r\n 'disabled',\r\n 'readonly',\r\n 'tabIndex',\r\n 'placeholder',\r\n 'minValue',\r\n 'maxValue',\r\n 'value',\r\n 'state',\r\n 'name',\r\n 'id',\r\n 'type',\r\n 'look',\r\n 'multiple',\r\n 'valueField',\r\n 'textField',\r\n 'textTemplate',\r\n ],\r\n outputs: [\r\n 'valueChange',\r\n 'stateChange',\r\n 'onValueChanged',\r\n 'onBlur',\r\n 'onFocus',\r\n 'readonlyChange',\r\n 'disabledChange',\r\n 'onOpened',\r\n 'onClosed',\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [\r\n { provide: AXComponent, useExisting: AXSelectBoxComponent },\r\n { provide: AXFocusableComponent, useExisting: AXSelectBoxComponent },\r\n { provide: AXValuableComponent, useExisting: AXSelectBoxComponent },\r\n { provide: AXClearableComponent, useExisting: AXSelectBoxComponent },\r\n { provide: AXClosbaleComponent, useExisting: AXSelectBoxComponent },\r\n { provide: AXSearchableComponent, useExisting: AXSelectBoxComponent },\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => AXSelectBoxComponent),\r\n multi: true,\r\n },\r\n {\r\n provide: AX_SELECTION_DATA_TOKEN,\r\n useClass: MXSelectionBridgeService,\r\n },\r\n AXUnsubscriber,\r\n ],\r\n host: { ngSkipHydration: 'true' },\r\n})\r\nexport class AXSelectBoxComponent\r\n extends classes(MXDropdownBoxBaseComponent, MXSelectionValueComponent, MXLookComponent)\r\n implements AfterViewInit, OnDestroy\r\n{\r\n /** @ignore */\r\n private hotKeyService: AXHotkeysService = inject(AXHotkeysService);\r\n\r\n /** @ignore */\r\n protected isLoading: WritableSignal<boolean> = signal(false);\r\n\r\n /** @ignore */\r\n protected renderList = false;\r\n\r\n /** @ignore */\r\n protected dropdownSizes: { width: string; height: string } = {\r\n width: '100%',\r\n height: 'auto',\r\n };\r\n\r\n /** @ignore */\r\n protected _listDataSource: AXDataSource<any> = convertArrayToDataSource([], {\r\n key: this.valueField,\r\n pageSize: 10,\r\n });\r\n\r\n /** @ignore */\r\n private _dataSource: AXDataSource<any> | any[];\r\n\r\n /**\r\n * Gets the data source for the component, which can be either an `AXDataSource` or an array of items.\r\n * @returns {AXDataSource<any> | any[]}\r\n */\r\n public get dataSource(): AXDataSource<any> | any[] {\r\n return this._dataSource;\r\n }\r\n\r\n /**\r\n * Sets the data source, either as an `AXDataSource` or an array.\r\n * @param {AXDataSource<any> | any[]} v\r\n */\r\n @Input()\r\n\r\n /**\r\n * Sets the data source, either as `AXDataSource` or an array. Converts arrays to `AXDataSource` and subscribes to data and loading changes.\r\n * @param {AXDataSource<any> | any[]} v\r\n */\r\n public set dataSource(v: AXDataSource<any> | any[]) {\r\n this._dataSource = v;\r\n if (Array.isArray(v)) {\r\n this._listDataSource = convertArrayToDataSource(v, {\r\n key: this.valueField,\r\n pageSize: 10,\r\n });\r\n } else {\r\n this._listDataSource = this.dataSource as AXDataSource<any>;\r\n }\r\n //\r\n //\r\n this._listDataSource.onChanged.pipe(this._unsubscriber.takeUntilDestroy).subscribe((data) => {\r\n this.setDropdownSize(data.totalCount);\r\n });\r\n this._listDataSource.onLoadingChanged.pipe(this._unsubscriber.takeUntilDestroy).subscribe((loading) => {\r\n this.isLoading.set(loading);\r\n });\r\n }\r\n\r\n /**\r\n * The placeholder text displayed when the component is empty.\r\n * @param {string} placeholder\r\n */\r\n @Input()\r\n placeholder: string;\r\n\r\n /**\r\n * The caption text to be displayed in the component.\r\n * @param {string} caption\r\n */\r\n @Input()\r\n caption: string;\r\n\r\n /**\r\n * The template used to customize the rendering of items.\r\n * @param {TemplateRef<any>} itemTemplate\r\n */\r\n @Input()\r\n itemTemplate: TemplateRef<any>;\r\n\r\n /**\r\n * The template used to customize the rendering of selected items.\r\n * @param {TemplateRef<any>} selectedTemplate\r\n */\r\n @Input()\r\n selectedTemplate: TemplateRef<any>;\r\n\r\n /**\r\n * The template used to display when there are no items.\r\n * @param {TemplateRef<any>} emptyTemplate\r\n */\r\n @Input()\r\n emptyTemplate: TemplateRef<any>;\r\n\r\n /**\r\n * The template used to display while loading.\r\n * @param {TemplateRef<any>} loadingTemplate\r\n */\r\n @Input()\r\n loadingTemplate: TemplateRef<any>;\r\n\r\n /**\r\n * The width of the dropdown in pixels.\r\n * @defaultValue 260\r\n */\r\n @Input()\r\n dropdownWidth = 260;\r\n\r\n /** @ignore */\r\n @ViewChild('panel') panel!: ElementRef<HTMLDivElement>;\r\n\r\n /** @ignore */\r\n @ViewChild(AXListComponent)\r\n list: AXListComponent;\r\n\r\n /** @ignore */\r\n @ContentChild(AXSearchBoxComponent, { static: true })\r\n searchBox: AXSearchBoxComponent;\r\n\r\n /** @ignore */\r\n @ViewChild(AXDropdownBoxComponent, { static: true })\r\n protected dropdown: AXDropdownBoxComponent;\r\n\r\n /**\r\n * Service for managing selection data, injected via `AX_SELECTION_DATA_TOKEN`.\r\n */\r\n public selectionService = inject(AX_SELECTION_DATA_TOKEN);\r\n\r\n searchEvent: Observable<any>;\r\n\r\n /** @ignore */\r\n private _unsubscriber = inject(AXUnsubscriber);\r\n\r\n /** @ignore */\r\n protected override ngOnInit(): void {\r\n super.ngOnInit();\r\n //\r\n this.registerValidation();\r\n }\r\n\r\n /** @ignore */\r\n ngAfterViewInit() {\r\n this.setDropdownSize();\r\n }\r\n\r\n /** @ignore */\r\n override ngOnDestroy(): void {\r\n this.searchBox?.onKeyDown.unsubscribe();\r\n }\r\n\r\n /**\r\n * Retrieves an item by its key.\r\n * @param {any} key\r\n */\r\n getItemByKey(key: any): Promise<any> | any {\r\n const startTime = Date.now();\r\n\r\n const check = async () => {\r\n while (Date.now() - startTime < 2000) {\r\n if (typeof this._listDataSource.find === 'function') {\r\n return this._listDataSource.find(key);\r\n } else {\r\n await new Promise((resolve) => setTimeout(resolve, 50));\r\n }\r\n }\r\n console.warn('Timeout reached without finding the \"getItemByKey\" method');\r\n };\r\n return check();\r\n }\r\n\r\n /** @ignore */\r\n protected _handleOnOpenedEvent(e: AXEvent) {\r\n this.renderList = true;\r\n this.list?.render();\r\n this._handleFocus();\r\n this.setDropdownSize();\r\n //\r\n this.onOpened.emit({\r\n component: this,\r\n isUserInteraction: e.isUserInteraction,\r\n });\r\n }\r\n\r\n /** @ignore */\r\n protected _handleOnClosedEvent(e: AXEvent) {\r\n //this.input.focus();\r\n this.onClosed.emit({\r\n component: this,\r\n isUserInteraction: e.isUserInteraction,\r\n });\r\n this._unsubscriber.unsubscribe();\r\n }\r\n\r\n /** @ignore */\r\n protected _handleFocus() {\r\n setTimeout(() => {\r\n if (this.searchBox) {\r\n this.searchBox.focus();\r\n //TODO: unsubscribe\r\n this.hotKeyService\r\n .addShortcut({ keys: 'Control.f', element: this.panel.nativeElement })\r\n .pipe(this._unsubscriber.takeUntilDestroy)\r\n .subscribe(() => {\r\n this.searchBox.focus();\r\n });\r\n this.searchBox.onKeyDown.pipe(this._unsubscriber.takeUntilDestroy).subscribe((e) => {\r\n if (e.nativeEvent.code === 'ArrowDown' || e.nativeEvent.key === 'ArrowDown') {\r\n this.list?.focus();\r\n e.nativeEvent.preventDefault();\r\n }\r\n });\r\n } else {\r\n this.list?.focus();\r\n }\r\n });\r\n }\r\n\r\n /** @ignore */\r\n protected _handleBadgeRemove(e: MouseEvent, item) {\r\n this.unselectItems(item);\r\n e.stopPropagation();\r\n }\r\n\r\n /** @ignore */\r\n protected _handleValueChanged(e: AXValueChangedEvent) {\r\n if (e.isUserInteraction) {\r\n this.commitValue(e.component.selectedItems, true);\r\n }\r\n }\r\n\r\n /** @ignore */\r\n protected _handleOnItemClick(e: AXItemClickEvent) {\r\n if (!this.multiple) {\r\n this.close();\r\n }\r\n }\r\n\r\n /** @ignore */\r\n private setDropdownSize(count = 0) {\r\n if (this.dropdown.isActionsheetStyle) {\r\n this.dropdownSizes = {\r\n width: '100%',\r\n height: ['auto', '0px'].includes(this.dropdownSizes.height)\r\n ? `${Math.min(15, count) * 40}px`\r\n : this.dropdownSizes.height,\r\n };\r\n } else {\r\n //TODO: calc min-with from formula or config\r\n const hostWidth = Math.max(this.getHostElement().offsetWidth, this.dropdownWidth);\r\n this.dropdownSizes = {\r\n width: `${hostWidth}px`,\r\n height:\r\n this._listDataSource.totalCount == 0\r\n ? 'auto'\r\n : `${Math.min(5, this._listDataSource.totalCount) * 40}px`,\r\n };\r\n }\r\n setTimeout(() => {\r\n this.dropdown.updatePosition();\r\n });\r\n }\r\n\r\n /** @ignore */\r\n @HostListener('keydown', ['$event'])\r\n _handleKeydown(e: KeyboardEvent) {\r\n if (e.code === 'ArrowDown' || e.code === 'ArrowUp') {\r\n this.selectItemByNav(e.code === 'ArrowDown' ? 1 : -1);\r\n e.preventDefault();\r\n } else if (e.code === 'Backspace') {\r\n this.unselectItems(this.selectedItems.pop());\r\n e.preventDefault();\r\n }\r\n // if ((e.code === 'Space' || e.code === 'Enter') && this.hasItems) {\r\n // if (this.readonly || this.disabled) {\r\n // e.preventDefault();\r\n // e.stopPropagation();\r\n // return;\r\n // }\r\n // const id = document.activeElement?.closest('li')?.dataset?.id;\r\n // this.toggleSelect(id);\r\n // e.preventDefault();\r\n // e.stopPropagation()\r\n // }\r\n }\r\n\r\n /** @ignore */\r\n private selectItemByNav(sign: 1 | -1) {\r\n if (Array.isArray(this.dataSource) && !this.multiple) {\r\n const items = this.normalizeItemsList(this.dataSource);\r\n const _last: any = last(this.selectedItems);\r\n let i = -1;\r\n if (_last) {\r\n i = findLastIndex(items, [this.valueField, _last[this.valueField]]);\r\n }\r\n i += sign;\r\n if (i < 0 || i >= items.length) return;\r\n const next = nth<any>(items, i);\r\n if (next) {\r\n this.selectItems(next);\r\n }\r\n } else {\r\n this.open();\r\n }\r\n }\r\n\r\n /**\r\n * Filters the data source based on the provided search term.\r\n * @param {string} term\r\n */\r\n search(term: string) {\r\n if (term) {\r\n this._listDataSource.filter({\r\n field: this.textField,\r\n value: term,\r\n operator: { type: 'contains' },\r\n });\r\n } else {\r\n this._listDataSource.clearFilter();\r\n }\r\n this._listDataSource.refresh();\r\n }\r\n\r\n /**\r\n * Refreshes the component by resetting state, clearing selection cache, refreshing the list, and closing the component.\r\n */\r\n refresh() {\r\n this.reset(false);\r\n this.clearSelectionCache();\r\n this.list?.refresh();\r\n this.close();\r\n }\r\n}\r\n","<ax-dropdown-box\r\n (onOpened)=\"_handleOnOpenedEvent($event)\"\r\n (onClosed)=\"_handleOnClosedEvent($event)\"\r\n (focus)=\"emitOnFocusEvent($event)\"\r\n (blur)=\"emitOnBlurEvent($event)\"\r\n [disabled]=\"disabled\"\r\n [look]=\"look\"\r\n class=\"ax-auto-height\"\r\n>\r\n <ng-container input>\r\n <ng-content select=\"ax-prefix\"> </ng-content>\r\n <div\r\n class=\"ax-select-box-selection ax-content\"\r\n [class.ax-multiple]=\"multiple\"\r\n [tabindex]=\"tabIndex\"\r\n (click)=\"toggle()\"\r\n >\r\n @if (selectedItems.length === 0) {\r\n <div class=\"ax-placeholder\" role=\"textbox\" area-readonly=\"true\">\r\n {{ placeholder }}\r\n </div>\r\n }\r\n @for (item of selectedItems; track $index) {\r\n @if (selectedTemplate) {\r\n <ng-template\r\n *ngTemplateOutlet=\"selectedTemplate; context: { $implicit: { data: item } }\"\r\n ></ng-template>\r\n } @else {\r\n <div class=\"ax-selected-token\">\r\n {{ getDisplayText(item) }}\r\n @if (!disabled && !readonly && multiple) {\r\n <span class=\"ax-icon ax-icon-close\" (click)=\"_handleBadgeRemove($event, item)\"> </span>\r\n }\r\n </div>\r\n }\r\n }\r\n </div>\r\n @if (selectedItems?.length && !disabled && !readonly) {\r\n <ng-content select=\"ax-clear-button\"></ng-content>\r\n }\r\n <button\r\n type=\"button\"\r\n [disabled]=\"disabled\"\r\n [tabIndex]=\"-1\"\r\n class=\"ax-general-button ax-button-icon\"\r\n (click)=\"toggle()\"\r\n >\r\n <!-- @if (isLoading() && !isOpen) {\r\n <ax-loading type=\"spinner\"></ax-loading>\r\n } @else { -->\r\n <span\r\n class=\"ax-icon ax-icon-chevron-left ax-arrow-button\"\r\n [ngClass]=\"{\r\n '-rotation-90': !isOpen,\r\n 'rotation-90': isOpen,\r\n }\"\r\n ></span>\r\n <!-- } -->\r\n </button>\r\n <ng-content select=\"ax-suffix\"> </ng-content>\r\n <ng-template #search>\r\n <ng-content select=\"ax-search-box\"> </ng-content>\r\n </ng-template>\r\n </ng-container>\r\n <ng-container panel>\r\n <div #panel class=\"ax-select-box-panel\" [style.min-width]=\"dropdownSizes.width\">\r\n @if (dropdown.isActionsheetStyle) {\r\n <ax-header class=\"ax-solid\">\r\n <ax-title>{{ caption || placeholder || 'selectbox.popover.title' | translate | async }}</ax-title>\r\n <ax-close-button\r\n [icon]=\"multiple ? 'ax-icon ax-icon-check !ax-text-primary-500' : 'ax-icon ax-icon-close'\"\r\n ></ax-close-button>\r\n </ax-header>\r\n }\r\n @if (searchBox) {\r\n <div class=\"ax-search-container\">\r\n <ng-template [ngTemplateOutlet]=\"search\"></ng-template>\r\n </div>\r\n }\r\n @if (renderList) {\r\n <ax-list\r\n [readonly]=\"readonly\"\r\n [dataSource]=\"_listDataSource\"\r\n [multiple]=\"multiple\"\r\n [style.height]=\"dropdownSizes.height\"\r\n [valueField]=\"valueField\"\r\n [textField]=\"textField\"\r\n [textTemplate]=\"textTemplate\"\r\n [emptyTemplate]=\"emptyTemplate ?? empty\"\r\n [itemTemplate]=\"itemTemplate\"\r\n [loadingTemplate]=\"loadingTemplate\"\r\n [ngModel]=\"value\"\r\n (onValueChanged)=\"_handleValueChanged($event)\"\r\n [selectionMode]=\"'item'\"\r\n (onItemClick)=\"_handleOnItemClick($event)\"\r\n >\r\n <ng-template #empty> {{ 'no-result-found' | translate | async }} </ng-template>\r\n </ax-list>\r\n }\r\n\r\n @if (isLoading()) {\r\n @if (loadingTemplate) {\r\n <ng-template *ngTemplateOutlet=\"loadingTemplate\"></ng-template>\r\n } @else {\r\n <div class=\"ax-flex ax-items-center ax-justify-center ax-p-4\">\r\n <ax-loading></ax-loading>\r\n </div>\r\n }\r\n }\r\n\r\n <ng-content select=\"ax-footer\"> </ng-content>\r\n </div>\r\n </ng-container>\r\n</ax-dropdown-box>\r\n<ng-content select=\"ax-validation-rule\"> </ng-content>\r\n","import { AXBadgeModule } from '@acorex/components/badge';\nimport { AXCheckBoxModule } from '@acorex/components/check-box';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXPopoverModule } from '@acorex/components/popover';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { AXCommonModule } from '@acorex/components/common';\nimport { AXDropdownModule } from '@acorex/components/dropdown';\nimport { AXListModule } from '@acorex/components/list';\nimport { AXTextBoxModule } from '@acorex/components/text-box';\nimport { AXSelectBoxComponent } from './select-box.component';\n\n@NgModule({\n imports: [\n CommonModule,\n AXCommonModule,\n FormsModule,\n AXCheckBoxModule,\n AXBadgeModule,\n AXDecoratorModule,\n AXTranslationModule,\n AXPopoverModule,\n AXLoadingModule,\n A11yModule,\n AXTextBoxModule,\n AXDropdownModule,\n AXListModule,\n ],\n exports: [AXSelectBoxComponent],\n declarations: [AXSelectBoxComponent],\n providers: [],\n})\nexport class AXSelectBoxModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acorex-components-select-box.mjs","sources":["../../../../libs/components/select-box/src/lib/select-box.component.ts","../../../../libs/components/select-box/src/lib/select-box.component.html","../../../../libs/components/select-box/src/lib/select-box.module.ts","../../../../libs/components/select-box/src/acorex-components-select-box.ts"],"sourcesContent":["import {\r\n AXClearableComponent,\r\n AXClosbaleComponent,\r\n AXComponent,\r\n AXDataSource,\r\n AXEvent,\r\n AXFocusableComponent,\r\n AXHotkeysService,\r\n AXItemClickEvent,\r\n AXSearchableComponent,\r\n AXValuableComponent,\r\n AXValueChangedEvent,\r\n AX_SELECTION_DATA_TOKEN,\r\n MXLookComponent,\r\n MXSelectionBridgeService,\r\n MXSelectionValueComponent,\r\n convertArrayToDataSource,\r\n} from '@acorex/components/common';\r\nimport { AXDropdownBoxComponent, MXDropdownBoxBaseComponent } from '@acorex/components/dropdown';\r\nimport { AXListComponent } from '@acorex/components/list';\r\nimport { AXSearchBoxComponent } from '@acorex/components/search-box';\r\nimport { AXUnsubscriber } from '@acorex/core/utils';\r\nimport {\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n Component,\r\n ContentChild,\r\n ElementRef,\r\n HostListener,\r\n Input,\r\n OnDestroy,\r\n TemplateRef,\r\n ViewChild,\r\n ViewEncapsulation,\r\n WritableSignal,\r\n forwardRef,\r\n inject,\r\n signal,\r\n} from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { findLastIndex, last, nth } from 'lodash-es';\r\nimport { classes } from 'polytype';\r\nimport { Observable } from 'rxjs';\r\n\r\n/**\r\n * The Button is a component which detects user interaction and triggers a corresponding event\r\n * @category\r\n */\r\n@Component({\r\n selector: 'ax-select-box',\r\n templateUrl: './select-box.component.html',\r\n styleUrls: ['./select-box.component.scss'],\r\n inputs: [\r\n 'disabled',\r\n 'readonly',\r\n 'tabIndex',\r\n 'placeholder',\r\n 'minValue',\r\n 'maxValue',\r\n 'value',\r\n 'state',\r\n 'name',\r\n 'id',\r\n 'type',\r\n 'look',\r\n 'multiple',\r\n 'valueField',\r\n 'textField',\r\n 'textTemplate',\r\n ],\r\n outputs: [\r\n 'valueChange',\r\n 'stateChange',\r\n 'onValueChanged',\r\n 'onBlur',\r\n 'onFocus',\r\n 'readonlyChange',\r\n 'disabledChange',\r\n 'onOpened',\r\n 'onClosed',\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [\r\n { provide: AXComponent, useExisting: AXSelectBoxComponent },\r\n { provide: AXFocusableComponent, useExisting: AXSelectBoxComponent },\r\n { provide: AXValuableComponent, useExisting: AXSelectBoxComponent },\r\n { provide: AXClearableComponent, useExisting: AXSelectBoxComponent },\r\n { provide: AXClosbaleComponent, useExisting: AXSelectBoxComponent },\r\n { provide: AXSearchableComponent, useExisting: AXSelectBoxComponent },\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => AXSelectBoxComponent),\r\n multi: true,\r\n },\r\n {\r\n provide: AX_SELECTION_DATA_TOKEN,\r\n useClass: MXSelectionBridgeService,\r\n },\r\n AXUnsubscriber,\r\n ],\r\n host: { ngSkipHydration: 'true' },\r\n})\r\nexport class AXSelectBoxComponent\r\n extends classes(MXDropdownBoxBaseComponent, MXSelectionValueComponent, MXLookComponent)\r\n implements AfterViewInit, OnDestroy\r\n{\r\n /** @ignore */\r\n private hotKeyService: AXHotkeysService = inject(AXHotkeysService);\r\n\r\n /** @ignore */\r\n protected isLoading: WritableSignal<boolean> = signal(false);\r\n\r\n /** @ignore */\r\n protected renderList = false;\r\n\r\n /** @ignore */\r\n protected dropdownSizes: { width: string; height: string } = {\r\n width: '100%',\r\n height: 'auto',\r\n };\r\n\r\n /** @ignore */\r\n protected _listDataSource: AXDataSource<any> = convertArrayToDataSource([], {\r\n key: this.valueField,\r\n pageSize: 10,\r\n });\r\n\r\n /** @ignore */\r\n private _dataSource: AXDataSource<any> | any[];\r\n\r\n /**\r\n * Gets the data source for the component, which can be either an `AXDataSource` or an array of items.\r\n * @returns {AXDataSource<any> | any[]}\r\n */\r\n public get dataSource(): AXDataSource<any> | any[] {\r\n return this._dataSource;\r\n }\r\n\r\n /**\r\n * Sets the data source, either as an `AXDataSource` or an array.\r\n * @param {AXDataSource<any> | any[]} v\r\n */\r\n @Input()\r\n\r\n /**\r\n * Sets the data source, either as `AXDataSource` or an array. Converts arrays to `AXDataSource` and subscribes to data and loading changes.\r\n * @param {AXDataSource<any> | any[]} v\r\n */\r\n public set dataSource(v: AXDataSource<any> | any[]) {\r\n this._dataSource = v;\r\n if (Array.isArray(v)) {\r\n this._listDataSource = convertArrayToDataSource(v, {\r\n key: this.valueField,\r\n pageSize: 10,\r\n });\r\n } else {\r\n this._listDataSource = this.dataSource as AXDataSource<any>;\r\n }\r\n //\r\n //\r\n this._listDataSource.onChanged.pipe(this._unsubscriber.takeUntilDestroy).subscribe((data) => {\r\n this.setDropdownSize(data.totalCount);\r\n });\r\n this._listDataSource.onLoadingChanged.pipe(this._unsubscriber.takeUntilDestroy).subscribe((loading) => {\r\n this.isLoading.set(loading);\r\n });\r\n }\r\n\r\n /**\r\n * The placeholder text displayed when the component is empty.\r\n * @param {string} placeholder\r\n */\r\n @Input()\r\n placeholder: string;\r\n\r\n /**\r\n * The caption text to be displayed in the component.\r\n * @param {string} caption\r\n */\r\n @Input()\r\n caption: string;\r\n\r\n /**\r\n * The template used to customize the rendering of items.\r\n * @param {TemplateRef<any>} itemTemplate\r\n */\r\n @Input()\r\n itemTemplate: TemplateRef<any>;\r\n\r\n /**\r\n * The template used to customize the rendering of selected items.\r\n * @param {TemplateRef<any>} selectedTemplate\r\n */\r\n @Input()\r\n selectedTemplate: TemplateRef<any>;\r\n\r\n /**\r\n * The template used to display when there are no items.\r\n * @param {TemplateRef<any>} emptyTemplate\r\n */\r\n @Input()\r\n emptyTemplate: TemplateRef<any>;\r\n\r\n /**\r\n * The template used to display while loading.\r\n * @param {TemplateRef<any>} loadingTemplate\r\n */\r\n @Input()\r\n loadingTemplate: TemplateRef<any>;\r\n\r\n /**\r\n * The width of the dropdown in pixels.\r\n * @defaultValue 260\r\n */\r\n @Input()\r\n dropdownWidth = 260;\r\n\r\n /** @ignore */\r\n @ViewChild('panel') panel!: ElementRef<HTMLDivElement>;\r\n\r\n /** @ignore */\r\n @ViewChild(AXListComponent)\r\n list: AXListComponent;\r\n\r\n /** @ignore */\r\n @ContentChild(AXSearchBoxComponent, { static: true })\r\n searchBox: AXSearchBoxComponent;\r\n\r\n /** @ignore */\r\n @ViewChild(AXDropdownBoxComponent, { static: true })\r\n protected dropdown: AXDropdownBoxComponent;\r\n\r\n /**\r\n * Service for managing selection data, injected via `AX_SELECTION_DATA_TOKEN`.\r\n */\r\n public selectionService = inject(AX_SELECTION_DATA_TOKEN);\r\n\r\n searchEvent: Observable<any>;\r\n\r\n /** @ignore */\r\n private _unsubscriber = inject(AXUnsubscriber);\r\n\r\n /** @ignore */\r\n protected override ngOnInit(): void {\r\n super.ngOnInit();\r\n //\r\n this.registerValidation();\r\n }\r\n\r\n /** @ignore */\r\n ngAfterViewInit() {\r\n this.setDropdownSize();\r\n }\r\n\r\n /** @ignore */\r\n override ngOnDestroy(): void {\r\n this.searchBox?.onKeyDown.unsubscribe();\r\n }\r\n\r\n /**\r\n * Retrieves an item by its key.\r\n * @param {any} key\r\n */\r\n getItemByKey(key: any): Promise<any> | any {\r\n const startTime = Date.now();\r\n\r\n const check = async () => {\r\n while (Date.now() - startTime < 2000) {\r\n if (typeof this._listDataSource.find === 'function') {\r\n return this._listDataSource.find(key);\r\n } else {\r\n await new Promise((resolve) => setTimeout(resolve, 50));\r\n }\r\n }\r\n console.warn('Timeout reached without finding the \"getItemByKey\" method');\r\n };\r\n return check();\r\n }\r\n\r\n /** @ignore */\r\n protected _handleOnOpenedEvent(e: AXEvent) {\r\n this.renderList = true;\r\n this.list?.render();\r\n this._handleFocus();\r\n //\r\n this.onOpened.emit({\r\n component: this,\r\n isUserInteraction: e.isUserInteraction,\r\n });\r\n }\r\n\r\n /** @ignore */\r\n protected _handleOnClosedEvent(e: AXEvent) {\r\n //this.input.focus();\r\n this.onClosed.emit({\r\n component: this,\r\n isUserInteraction: e.isUserInteraction,\r\n });\r\n this._unsubscriber.unsubscribe();\r\n }\r\n\r\n /** @ignore */\r\n protected _handleFocus() {\r\n setTimeout(() => {\r\n if (this.searchBox) {\r\n this.searchBox.focus();\r\n //TODO: unsubscribe\r\n this.hotKeyService\r\n .addShortcut({ keys: 'Control.f', element: this.panel.nativeElement })\r\n .pipe(this._unsubscriber.takeUntilDestroy)\r\n .subscribe(() => {\r\n this.searchBox.focus();\r\n });\r\n this.searchBox.onKeyDown.pipe(this._unsubscriber.takeUntilDestroy).subscribe((e) => {\r\n if (e.nativeEvent.code === 'ArrowDown' || e.nativeEvent.key === 'ArrowDown') {\r\n this.list?.focus();\r\n e.nativeEvent.preventDefault();\r\n }\r\n });\r\n } else {\r\n this.list?.focus();\r\n }\r\n });\r\n }\r\n\r\n /** @ignore */\r\n protected _handleBadgeRemove(e: MouseEvent, item) {\r\n this.unselectItems(item);\r\n e.stopPropagation();\r\n }\r\n\r\n /** @ignore */\r\n protected _handleValueChanged(e: AXValueChangedEvent) {\r\n if (e.isUserInteraction) {\r\n this.commitValue(e.component.selectedItems, true);\r\n }\r\n }\r\n\r\n /** @ignore */\r\n protected _handleOnItemClick(e: AXItemClickEvent) {\r\n if (!this.multiple) {\r\n this.close();\r\n }\r\n }\r\n\r\n /** @ignore */\r\n private setDropdownSize(count = 0) {\r\n if (this.dropdown.isActionsheetStyle) {\r\n this.dropdownSizes = {\r\n width: '100%',\r\n height: ['auto', '0px'].includes(this.dropdownSizes.height)\r\n ? `${Math.min(15, count) * 40}px`\r\n : this.dropdownSizes.height,\r\n };\r\n } else {\r\n //TODO: calc min-with from formula or config\r\n const hostWidth = Math.max(this.getHostElement().offsetWidth, this.dropdownWidth);\r\n this.dropdownSizes = {\r\n width: `${hostWidth}px`,\r\n height: count == 0 ? 'auto' : `${Math.min(5, count) * 40}px`,\r\n };\r\n }\r\n setTimeout(() => {\r\n this.dropdown.updatePosition();\r\n });\r\n }\r\n\r\n /** @ignore */\r\n @HostListener('keydown', ['$event'])\r\n _handleKeydown(e: KeyboardEvent) {\r\n if (e.code === 'ArrowDown' || e.code === 'ArrowUp') {\r\n this.selectItemByNav(e.code === 'ArrowDown' ? 1 : -1);\r\n e.preventDefault();\r\n } else if (e.code === 'Backspace') {\r\n this.unselectItems(this.selectedItems.pop());\r\n e.preventDefault();\r\n }\r\n // if ((e.code === 'Space' || e.code === 'Enter') && this.hasItems) {\r\n // if (this.readonly || this.disabled) {\r\n // e.preventDefault();\r\n // e.stopPropagation();\r\n // return;\r\n // }\r\n // const id = document.activeElement?.closest('li')?.dataset?.id;\r\n // this.toggleSelect(id);\r\n // e.preventDefault();\r\n // e.stopPropagation()\r\n // }\r\n }\r\n\r\n /** @ignore */\r\n private selectItemByNav(sign: 1 | -1) {\r\n if (Array.isArray(this.dataSource) && !this.multiple) {\r\n const items = this.normalizeItemsList(this.dataSource);\r\n const _last: any = last(this.selectedItems);\r\n let i = -1;\r\n if (_last) {\r\n i = findLastIndex(items, [this.valueField, _last[this.valueField]]);\r\n }\r\n i += sign;\r\n if (i < 0 || i >= items.length) return;\r\n const next = nth<any>(items, i);\r\n if (next) {\r\n this.selectItems(next);\r\n }\r\n } else {\r\n this.open();\r\n }\r\n }\r\n\r\n /**\r\n * Filters the data source based on the provided search term.\r\n * @param {string} term\r\n */\r\n search(term: string) {\r\n if (term) {\r\n this._listDataSource.filter({\r\n field: this.textField,\r\n value: term,\r\n operator: { type: 'contains' },\r\n });\r\n } else {\r\n this._listDataSource.clearFilter();\r\n }\r\n this._listDataSource.refresh();\r\n }\r\n\r\n /**\r\n * Refreshes the component by resetting state, clearing selection cache, refreshing the list, and closing the component.\r\n */\r\n refresh() {\r\n this.reset(false);\r\n this.clearSelectionCache();\r\n this.list?.refresh();\r\n this.close();\r\n }\r\n}\r\n","<ax-dropdown-box\r\n (onOpened)=\"_handleOnOpenedEvent($event)\"\r\n (onClosed)=\"_handleOnClosedEvent($event)\"\r\n (focus)=\"emitOnFocusEvent($event)\"\r\n (blur)=\"emitOnBlurEvent($event)\"\r\n [disabled]=\"disabled\"\r\n [look]=\"look\"\r\n class=\"ax-auto-height\"\r\n>\r\n <ng-container input>\r\n <ng-content select=\"ax-prefix\"> </ng-content>\r\n <div\r\n class=\"ax-select-box-selection ax-content\"\r\n [class.ax-multiple]=\"multiple\"\r\n [tabindex]=\"tabIndex\"\r\n (click)=\"toggle()\"\r\n >\r\n @if (selectedItems.length === 0) {\r\n <div class=\"ax-placeholder\" role=\"textbox\" area-readonly=\"true\">\r\n {{ placeholder }}\r\n </div>\r\n }\r\n @for (item of selectedItems; track $index) {\r\n @if (selectedTemplate) {\r\n <ng-template\r\n *ngTemplateOutlet=\"selectedTemplate; context: { $implicit: { data: item } }\"\r\n ></ng-template>\r\n } @else {\r\n <div class=\"ax-selected-token\">\r\n {{ getDisplayText(item) }}\r\n @if (!disabled && !readonly && multiple) {\r\n <span class=\"ax-icon ax-icon-close\" (click)=\"_handleBadgeRemove($event, item)\"> </span>\r\n }\r\n </div>\r\n }\r\n }\r\n </div>\r\n @if (selectedItems?.length && !disabled && !readonly) {\r\n <ng-content select=\"ax-clear-button\"></ng-content>\r\n }\r\n <button\r\n type=\"button\"\r\n [disabled]=\"disabled\"\r\n [tabIndex]=\"-1\"\r\n class=\"ax-general-button ax-button-icon\"\r\n (click)=\"toggle()\"\r\n >\r\n <!-- @if (isLoading() && !isOpen) {\r\n <ax-loading type=\"spinner\"></ax-loading>\r\n } @else { -->\r\n <span\r\n class=\"ax-icon ax-icon-chevron-left ax-arrow-button\"\r\n [ngClass]=\"{\r\n '-rotation-90': !isOpen,\r\n 'rotation-90': isOpen,\r\n }\"\r\n ></span>\r\n <!-- } -->\r\n </button>\r\n <ng-content select=\"ax-suffix\"> </ng-content>\r\n <ng-template #search>\r\n <ng-content select=\"ax-search-box\"> </ng-content>\r\n </ng-template>\r\n </ng-container>\r\n <ng-container panel>\r\n <div #panel class=\"ax-select-box-panel\" [style.min-width]=\"dropdownSizes.width\">\r\n @if (dropdown.isActionsheetStyle) {\r\n <ax-header class=\"ax-solid\">\r\n <ax-title>{{ caption || placeholder || 'selectbox.popover.title' | translate | async }}</ax-title>\r\n <ax-close-button\r\n [icon]=\"multiple ? 'ax-icon ax-icon-check !ax-text-primary-500' : 'ax-icon ax-icon-close'\"\r\n ></ax-close-button>\r\n </ax-header>\r\n }\r\n @if (searchBox) {\r\n <div class=\"ax-search-container\">\r\n <ng-template [ngTemplateOutlet]=\"search\"></ng-template>\r\n </div>\r\n }\r\n @if (renderList) {\r\n <ax-list\r\n [readonly]=\"readonly\"\r\n [dataSource]=\"_listDataSource\"\r\n [multiple]=\"multiple\"\r\n [style.height]=\"dropdownSizes.height\"\r\n [valueField]=\"valueField\"\r\n [textField]=\"textField\"\r\n [textTemplate]=\"textTemplate\"\r\n [emptyTemplate]=\"emptyTemplate ?? empty\"\r\n [itemTemplate]=\"itemTemplate\"\r\n [loadingTemplate]=\"loadingTemplate\"\r\n [ngModel]=\"value\"\r\n (onValueChanged)=\"_handleValueChanged($event)\"\r\n [selectionMode]=\"'item'\"\r\n (onItemClick)=\"_handleOnItemClick($event)\"\r\n >\r\n <ng-template #empty> {{ 'no-result-found' | translate | async }} </ng-template>\r\n </ax-list>\r\n }\r\n\r\n @if (isLoading()) {\r\n @if (loadingTemplate) {\r\n <ng-template *ngTemplateOutlet=\"loadingTemplate\"></ng-template>\r\n } @else {\r\n <div class=\"ax-flex ax-items-center ax-justify-center ax-p-4\">\r\n <ax-loading></ax-loading>\r\n </div>\r\n }\r\n }\r\n\r\n <ng-content select=\"ax-footer\"> </ng-content>\r\n </div>\r\n </ng-container>\r\n</ax-dropdown-box>\r\n<ng-content select=\"ax-validation-rule\"> </ng-content>\r\n","import { AXBadgeModule } from '@acorex/components/badge';\nimport { AXCheckBoxModule } from '@acorex/components/check-box';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXPopoverModule } from '@acorex/components/popover';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { AXCommonModule } from '@acorex/components/common';\nimport { AXDropdownModule } from '@acorex/components/dropdown';\nimport { AXListModule } from '@acorex/components/list';\nimport { AXTextBoxModule } from '@acorex/components/text-box';\nimport { AXSelectBoxComponent } from './select-box.component';\n\n@NgModule({\n imports: [\n CommonModule,\n AXCommonModule,\n FormsModule,\n AXCheckBoxModule,\n AXBadgeModule,\n AXDecoratorModule,\n AXTranslationModule,\n AXPopoverModule,\n AXLoadingModule,\n A11yModule,\n AXTextBoxModule,\n AXDropdownModule,\n AXListModule,\n ],\n exports: [AXSelectBoxComponent],\n declarations: [AXSelectBoxComponent],\n providers: [],\n})\nexport class AXSelectBoxModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@acorex/components",
3
- "version": "18.15.0",
3
+ "version": "18.15.2",
4
4
  "peerDependencies": {
5
5
  "@angular/common": ">=18.2.0",
6
6
  "@angular/core": ">=18.2.0",
@@ -30,14 +30,6 @@ export declare class AXPasswordBoxComponent extends AXPasswordBoxComponent_base
30
30
  * Defines custom CSS classes to apply to the component.
31
31
  */
32
32
  classNames: string;
33
- /**
34
- * Hint status.
35
- */
36
- showHint: import("@angular/core").InputSignal<boolean>;
37
- /**
38
- * Progress status.
39
- */
40
- showProgress: import("@angular/core").InputSignal<boolean>;
41
33
  /** @ignore */
42
34
  _handleModelChange(value: string): void;
43
35
  /**
@@ -45,6 +37,6 @@ export declare class AXPasswordBoxComponent extends AXPasswordBoxComponent_base
45
37
  */
46
38
  toggleType(): void;
47
39
  static ɵfac: i0.ɵɵFactoryDeclaration<AXPasswordBoxComponent, never>;
48
- static ɵcmp: i0.ɵɵComponentDeclaration<AXPasswordBoxComponent, "ax-password-box", never, { "readonly": { "alias": "readonly"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "value": { "alias": "value"; "required": false; }; "state": { "alias": "state"; "required": false; }; "name": { "alias": "name"; "required": false; }; "id": { "alias": "id"; "required": false; }; "look": { "alias": "look"; "required": false; }; "autoComplete": { "alias": "autoComplete"; "required": false; }; "showToggleButton": { "alias": "showToggleButton"; "required": false; }; "classNames": { "alias": "class"; "required": false; }; "showHint": { "alias": "showHint"; "required": false; "isSignal": true; }; "showProgress": { "alias": "showProgress"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; "stateChange": "stateChange"; "onValueChanged": "onValueChanged"; "onBlur": "onBlur"; "onFocus": "onFocus"; "readonlyChange": "readonlyChange"; "disabledChange": "disabledChange"; "onKeyDown": "onKeyDown"; "onKeyUp": "onKeyUp"; "onKeyPress": "onKeyPress"; }, never, ["ax-prefix", "ax-clear-button", "ax-suffix", "ax-validation-rule", "ax-password-strength-validation"], false, never>;
40
+ static ɵcmp: i0.ɵɵComponentDeclaration<AXPasswordBoxComponent, "ax-password-box", never, { "readonly": { "alias": "readonly"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "value": { "alias": "value"; "required": false; }; "state": { "alias": "state"; "required": false; }; "name": { "alias": "name"; "required": false; }; "id": { "alias": "id"; "required": false; }; "look": { "alias": "look"; "required": false; }; "autoComplete": { "alias": "autoComplete"; "required": false; }; "showToggleButton": { "alias": "showToggleButton"; "required": false; }; "classNames": { "alias": "class"; "required": false; }; }, { "valueChange": "valueChange"; "stateChange": "stateChange"; "onValueChanged": "onValueChanged"; "onBlur": "onBlur"; "onFocus": "onFocus"; "readonlyChange": "readonlyChange"; "disabledChange": "disabledChange"; "onKeyDown": "onKeyDown"; "onKeyUp": "onKeyUp"; "onKeyPress": "onKeyPress"; }, never, ["ax-prefix", "ax-clear-button", "ax-suffix", "ax-validation-rule", "ax-password-strength-validation"], false, never>;
49
41
  }
50
42
  export {};
@@ -7,6 +7,14 @@ export declare class AXPasswordStrengthValidationComponent {
7
7
  protected strengthLabel: import("@angular/core").WritableSignal<string>;
8
8
  protected strengthLabelColor: import("@angular/core").WritableSignal<string>;
9
9
  protected parent: AXPasswordBoxComponent;
10
+ /**
11
+ * Hint status.
12
+ */
13
+ showHint: import("@angular/core").InputSignal<boolean>;
14
+ /**
15
+ * Progress status.
16
+ */
17
+ showProgress: import("@angular/core").InputSignal<boolean>;
10
18
  protected isLenghtgraterThan8: import("@angular/core").WritableSignal<{
11
19
  regex: RegExp;
12
20
  state: boolean;
@@ -30,5 +38,5 @@ export declare class AXPasswordStrengthValidationComponent {
30
38
  private checkRegexHandler;
31
39
  protected checkPasswordStrength(): void;
32
40
  static ɵfac: i0.ɵɵFactoryDeclaration<AXPasswordStrengthValidationComponent, never>;
33
- static ɵcmp: i0.ɵɵComponentDeclaration<AXPasswordStrengthValidationComponent, "ax-password-strength-validation", never, {}, {}, never, never, false, never>;
41
+ static ɵcmp: i0.ɵɵComponentDeclaration<AXPasswordStrengthValidationComponent, "ax-password-strength-validation", never, { "showHint": { "alias": "showHint"; "required": false; "isSignal": true; }; "showProgress": { "alias": "showProgress"; "required": false; "isSignal": true; }; }, {}, never, never, false, never>;
34
42
  }