@acorex/components 18.14.1-next.4 → 18.15.0
Sign up to get free protection for your applications and to get access to all the features.
- package/comment/lib/comment-container/comment-container.component.d.ts +1 -0
- package/common/lib/components/value-component.class.d.ts +1 -0
- package/common/lib/directives/auto-focus.directive.d.ts +1 -0
- package/common/lib/directives/ripple.directive.d.ts +1 -0
- package/data-table/lib/columns/data-table-column-resizable.directive.d.ts +1 -0
- package/data-table/lib/data-table/data-table.component.d.ts +61 -60
- package/data-table/lib/infinite-scroll-data-table/infinite-scroll-data-table.component.d.ts +7 -6
- package/drawer/lib/drawer/drawer-item/drawer.component.d.ts +4 -6
- package/esm2022/audio-wave/lib/audio-wave.component.mjs +79 -14
- package/esm2022/avatar/lib/avatar.component.mjs +2 -2
- package/esm2022/button/lib/button.component.mjs +2 -2
- package/esm2022/calendar/lib/calendar-range.component.mjs +2 -2
- package/esm2022/calendar/lib/calendar.component.mjs +3 -3
- package/esm2022/comment/lib/comment-container/comment-container.component.mjs +7 -3
- package/esm2022/common/lib/components/value-component.class.mjs +4 -2
- package/esm2022/common/lib/directives/auto-focus.directive.mjs +5 -3
- package/esm2022/common/lib/directives/inverted-color.directive.mjs +1 -1
- package/esm2022/common/lib/directives/ripple.directive.mjs +5 -3
- package/esm2022/conversation/lib/conversation-message/conversation-message.component.mjs +2 -2
- package/esm2022/conversation/lib/conversation-messages/conversation-message-voice/conversation-message-voice.component.mjs +2 -2
- package/esm2022/cron-job/lib/cron-job-container/cron-job-container.component.mjs +3 -3
- package/esm2022/cron-job/lib/day/day.component.mjs +7 -6
- package/esm2022/cron-job/lib/hours/hours.component.mjs +7 -6
- package/esm2022/cron-job/lib/minutes/minutes.component.mjs +7 -6
- package/esm2022/cron-job/lib/month/month.component.mjs +7 -6
- package/esm2022/cron-job/lib/seconds/seconds.component.mjs +7 -6
- package/esm2022/cron-job/lib/year/year.component.mjs +7 -6
- package/esm2022/data-table/lib/columns/data-table-column-resizable.directive.mjs +9 -7
- package/esm2022/data-table/lib/data-table/data-table.component.mjs +71 -67
- package/esm2022/data-table/lib/infinite-scroll-data-table/infinite-scroll-data-table.component.mjs +16 -11
- package/esm2022/drawer/lib/drawer/drawer-item/drawer.component.mjs +10 -10
- package/esm2022/list/lib/list.component.mjs +17 -5
- package/esm2022/loading/lib/loading-spinner.component.mjs +2 -2
- package/esm2022/loading-dialog/lib/loading-dialog.component.mjs +2 -2
- package/esm2022/menu/lib/context-menu.component.mjs +28 -21
- package/esm2022/password-box/index.mjs +2 -1
- package/esm2022/password-box/lib/password-box.component.mjs +17 -9
- package/esm2022/password-box/lib/password-box.module.mjs +22 -4
- package/esm2022/password-box/lib/password-strength-validation/password-strength-validation.component.mjs +63 -0
- package/esm2022/phone-box/lib/phone-box.component.mjs +17 -5
- package/esm2022/popover/lib/popover.component.mjs +5 -3
- package/esm2022/popup/lib/popup.component.mjs +2 -2
- package/esm2022/select-box/lib/select-box.component.mjs +7 -24
- package/esm2022/selection-list/lib/selection-list.component.mjs +2 -2
- package/esm2022/side-menu/index.mjs +2 -2
- package/esm2022/side-menu/lib/side-menu-item/side-menu-item.component.mjs +81 -0
- package/esm2022/side-menu/lib/side-menu.module.mjs +2 -2
- package/esm2022/step-wizard/lib/step-wizard-item/step-wizard-item.component.mjs +5 -4
- package/esm2022/step-wizard/lib/step-wizard.class.mjs +1 -1
- package/esm2022/step-wizard/lib/step-wizard.component.mjs +21 -32
- package/esm2022/uploader/lib/uploader-zone.directive.mjs +7 -5
- package/fesm2022/acorex-components-audio-wave.mjs +78 -13
- package/fesm2022/acorex-components-audio-wave.mjs.map +1 -1
- package/fesm2022/acorex-components-avatar.mjs +2 -2
- package/fesm2022/acorex-components-avatar.mjs.map +1 -1
- package/fesm2022/acorex-components-button.mjs +2 -2
- package/fesm2022/acorex-components-calendar.mjs +4 -4
- package/fesm2022/acorex-components-calendar.mjs.map +1 -1
- package/fesm2022/acorex-components-comment.mjs +7 -4
- package/fesm2022/acorex-components-comment.mjs.map +1 -1
- package/fesm2022/acorex-components-common.mjs +6 -3
- package/fesm2022/acorex-components-common.mjs.map +1 -1
- package/fesm2022/acorex-components-conversation.mjs +2 -2
- package/fesm2022/acorex-components-conversation.mjs.map +1 -1
- package/fesm2022/acorex-components-cron-job.mjs +19 -18
- package/fesm2022/acorex-components-cron-job.mjs.map +1 -1
- package/fesm2022/acorex-components-data-table.mjs +89 -81
- package/fesm2022/acorex-components-data-table.mjs.map +1 -1
- package/fesm2022/acorex-components-drawer.mjs +10 -11
- package/fesm2022/acorex-components-drawer.mjs.map +1 -1
- package/fesm2022/acorex-components-list.mjs +16 -4
- package/fesm2022/acorex-components-list.mjs.map +1 -1
- package/fesm2022/acorex-components-loading-dialog.mjs +2 -2
- package/fesm2022/acorex-components-loading.mjs +2 -2
- package/fesm2022/acorex-components-loading.mjs.map +1 -1
- package/fesm2022/acorex-components-menu.mjs +24 -18
- package/fesm2022/acorex-components-menu.mjs.map +1 -1
- package/fesm2022/acorex-components-password-box.mjs +97 -12
- package/fesm2022/acorex-components-password-box.mjs.map +1 -1
- package/fesm2022/acorex-components-phone-box.mjs +16 -4
- package/fesm2022/acorex-components-phone-box.mjs.map +1 -1
- package/fesm2022/acorex-components-popover.mjs +4 -3
- package/fesm2022/acorex-components-popover.mjs.map +1 -1
- package/fesm2022/acorex-components-popup.mjs +2 -2
- package/fesm2022/acorex-components-select-box.mjs +6 -23
- package/fesm2022/acorex-components-select-box.mjs.map +1 -1
- package/fesm2022/acorex-components-selection-list.mjs +2 -2
- package/fesm2022/acorex-components-selection-list.mjs.map +1 -1
- package/fesm2022/acorex-components-side-menu.mjs.map +1 -1
- package/fesm2022/acorex-components-step-wizard.mjs +24 -34
- package/fesm2022/acorex-components-step-wizard.mjs.map +1 -1
- package/fesm2022/acorex-components-uploader.mjs +7 -6
- package/fesm2022/acorex-components-uploader.mjs.map +1 -1
- package/menu/lib/context-menu.component.d.ts +2 -1
- package/package.json +1 -1
- package/password-box/index.d.ts +1 -0
- package/password-box/lib/password-box.component.d.ts +15 -7
- package/password-box/lib/password-box.module.d.ts +9 -5
- package/password-box/lib/password-strength-validation/password-strength-validation.component.d.ts +34 -0
- package/phone-box/lib/phone-box.component.d.ts +4 -2
- package/popover/lib/popover.component.d.ts +1 -0
- package/select-box/lib/select-box.component.d.ts +0 -8
- package/side-menu/index.d.ts +1 -1
- package/side-menu/lib/side-menu.module.d.ts +1 -1
- package/step-wizard/lib/step-wizard-item/step-wizard-item.component.d.ts +10 -9
- package/step-wizard/lib/step-wizard.class.d.ts +1 -1
- package/step-wizard/lib/step-wizard.component.d.ts +7 -13
- package/uploader/lib/uploader-zone.directive.d.ts +1 -0
- package/esm2022/side-menu/lib/side-menu-item/side-menu-item.compoent.mjs +0 -81
- /package/side-menu/lib/side-menu-item/{side-menu-item.compoent.d.ts → side-menu-item.component.d.ts} +0 -0
@@ -1,10 +1,11 @@
|
|
1
1
|
import { NXComponent, NXEvent } from '@acorex/components/common';
|
2
|
-
import {
|
3
|
-
import { AXRootMenu } from './menu.types';
|
4
|
-
import { AXMenuService } from './menu.service';
|
2
|
+
import { isBrowser } from '@acorex/core/platform';
|
5
3
|
import { AXHtmlUtil } from '@acorex/core/utils';
|
4
|
+
import { DOCUMENT } from '@angular/common';
|
5
|
+
import { afterNextRender, ChangeDetectionStrategy, Component, HostBinding, HostListener, inject, input, output, Renderer2, signal, ViewEncapsulation, } from '@angular/core';
|
6
6
|
import { cloneDeep } from 'lodash-es';
|
7
|
-
import {
|
7
|
+
import { AXMenuService } from './menu.service';
|
8
|
+
import { AXRootMenu, } from './menu.types';
|
8
9
|
import * as i0 from "@angular/core";
|
9
10
|
import * as i1 from "@angular/common";
|
10
11
|
import * as i2 from "@acorex/components/decorators";
|
@@ -28,13 +29,14 @@ export class AXContextMenuComponent extends NXComponent {
|
|
28
29
|
this.orientation = input('vertical');
|
29
30
|
this.openOn = input('hover');
|
30
31
|
this.closeOn = input('click');
|
31
|
-
this.orginalItems = input([], { alias:
|
32
|
+
this.orginalItems = input([], { alias: 'items' });
|
32
33
|
this.target = input();
|
33
34
|
this.onItemClick = output();
|
34
35
|
this.onOpening = output();
|
35
36
|
// Injected Services
|
36
37
|
this.service = inject(AXMenuService);
|
37
38
|
this.renderer = inject(Renderer2);
|
39
|
+
this.document = inject(DOCUMENT);
|
38
40
|
this.items = signal([]);
|
39
41
|
//
|
40
42
|
afterNextRender(() => {
|
@@ -72,11 +74,11 @@ export class AXContextMenuComponent extends NXComponent {
|
|
72
74
|
// Private Methods (Internal Logic)
|
73
75
|
/** @ignore */
|
74
76
|
getTargetElements() {
|
75
|
-
const elements = typeof this.target() == 'string'
|
76
|
-
Array.from(document.querySelectorAll(this.target()))
|
77
|
-
Array.isArray(this.target())
|
78
|
-
this.target()
|
79
|
-
[this.target()];
|
77
|
+
const elements = typeof this.target() == 'string'
|
78
|
+
? Array.from(this.document.querySelectorAll(this.target()))
|
79
|
+
: Array.isArray(this.target())
|
80
|
+
? this.target()
|
81
|
+
: [this.target()];
|
80
82
|
return elements;
|
81
83
|
}
|
82
84
|
/** @ignore */
|
@@ -96,9 +98,9 @@ export class AXContextMenuComponent extends NXComponent {
|
|
96
98
|
e.preventDefault();
|
97
99
|
e.stopPropagation();
|
98
100
|
//
|
99
|
-
const elementsUnderMouse = document.elementsFromPoint(e.x, e.y);
|
101
|
+
const elementsUnderMouse = this.document.elementsFromPoint(e.x, e.y);
|
100
102
|
const targetElements = this.getTargetElements();
|
101
|
-
const targetElement = elementsUnderMouse.find(target => targetElements.includes(target));
|
103
|
+
const targetElement = elementsUnderMouse.find((target) => targetElements.includes(target));
|
102
104
|
//
|
103
105
|
const event = {
|
104
106
|
sender: this,
|
@@ -172,9 +174,9 @@ export class AXContextMenuComponent extends NXComponent {
|
|
172
174
|
const l3 = this.renderer.listen(this.backdropElement, 'contextmenu', (e) => {
|
173
175
|
this.close();
|
174
176
|
// Get all elements under the mouse pointer
|
175
|
-
const elementsUnderMouse = document.elementsFromPoint(e.x, e.y);
|
177
|
+
const elementsUnderMouse = this.document.elementsFromPoint(e.x, e.y);
|
176
178
|
const targetElements = this.getTargetElements();
|
177
|
-
if (targetElements.some(target => elementsUnderMouse.includes(target))) {
|
179
|
+
if (targetElements.some((target) => elementsUnderMouse.includes(target))) {
|
178
180
|
e.preventDefault();
|
179
181
|
setTimeout(() => {
|
180
182
|
//this.internalShowAt({ x: e.x, y: e.y });
|
@@ -183,7 +185,7 @@ export class AXContextMenuComponent extends NXComponent {
|
|
183
185
|
}
|
184
186
|
l3();
|
185
187
|
});
|
186
|
-
document.body.appendChild(this.backdropElement);
|
188
|
+
this.document.body.appendChild(this.backdropElement);
|
187
189
|
}
|
188
190
|
/** @ignore */
|
189
191
|
removeBackdrop() {
|
@@ -202,15 +204,20 @@ export class AXContextMenuComponent extends NXComponent {
|
|
202
204
|
}
|
203
205
|
/** @ignore */
|
204
206
|
get __hostClass() {
|
205
|
-
return [
|
207
|
+
return [
|
208
|
+
'ax-menu-container',
|
209
|
+
`ax-orientation-${this.orientation()}`,
|
210
|
+
'ax-action-list',
|
211
|
+
'ax-action-list-vertical',
|
212
|
+
];
|
206
213
|
}
|
207
214
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXContextMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
208
215
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXContextMenuComponent, selector: "ax-context-menu", inputs: { orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, openOn: { classPropertyName: "openOn", publicName: "openOn", isSignal: true, isRequired: false, transformFunction: null }, closeOn: { classPropertyName: "closeOn", publicName: "closeOn", isSignal: true, isRequired: false, transformFunction: null }, orginalItems: { classPropertyName: "orginalItems", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, target: { classPropertyName: "target", publicName: "target", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onItemClick: "onItemClick", onOpening: "onOpening" }, host: { listeners: { "window:scroll": "onWindowEvent($event)", "window:resize": "onWindowEvent($event)" }, properties: { "class": "this.__hostClass" } }, providers: [
|
209
216
|
AXMenuService,
|
210
217
|
{
|
211
218
|
provide: AXRootMenu,
|
212
|
-
useExisting: AXContextMenuComponent
|
213
|
-
}
|
219
|
+
useExisting: AXContextMenuComponent,
|
220
|
+
},
|
214
221
|
], usesInheritance: true, ngImport: i0, template: "<ng-content select=\"ax-menu-item,ax-divider,ax-title,ng-container\"></ng-content>\n\n<ng-container\n *ngFor=\"let node of items()\"\n [ngTemplateOutlet]=\"Recursion\"\n [ngTemplateOutletContext]=\"{ $implicit: node }\"\n>\n</ng-container>\n<ng-template #Recursion let-item>\n @if (item.group?.title) {\n <ax-title>{{ item.group?.title }}</ax-title>\n }\n <ax-menu-item [name]=\"item.name\" [data]=\"item.data\" [disabled]=\"item.disabled\" [color]=\"item.color\">\n <ax-prefix>\n @if (item.icon) {\n <ax-icon [icon]=\"item.icon\"> </ax-icon>\n }\n </ax-prefix>\n @if (item.text) {\n <ax-text>{{ item.text }}</ax-text>\n }\n @if (item.suffix) {\n <ax-suffix>\n <ax-text>{{ item.suffix.text }}</ax-text>\n </ax-suffix>\n }\n <ng-container\n *ngFor=\"let child of item.items\"\n [ngTemplateOutlet]=\"Recursion\"\n [ngTemplateOutletContext]=\"{ $implicit: child }\"\n ></ng-container>\n </ax-menu-item>\n @if (item.break) {\n <ax-divider></ax-divider>\n }\n</ng-template>\n", styles: ["ax-context-menu,ax-menu{width:100%;color:inherit;display:flex;width:max-content}ax-context-menu .ax-action-item,ax-menu .ax-action-item{padding-inline-end:0!important}ax-context-menu.ax-menu-container,ax-context-menu .ax-menu-items,ax-menu.ax-menu-container,ax-menu .ax-menu-items{padding-block:.5rem;display:flex;opacity:0;visibility:hidden;transition:opacity .3s;width:max-content;min-width:12rem;height:max-content;position:fixed;flex-direction:column;border-radius:0;border-width:1px;border-color:rgba(var(--ax-color-border-default));background-color:rgba(var(--ax-color-surface));--ax-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--ax-shadow-colored: 0 4px 6px -1px var(--ax-shadow-color), 0 2px 4px -2px var(--ax-shadow-color);box-shadow:var(--ax-ring-offset-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-ring-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-shadow);border-radius:var(--ax-rounded-border-default);z-index:9999;color:rgba(var(--ax-color-text-default))}ax-context-menu.ax-menu-container.ax-state-open,ax-context-menu .ax-menu-items.ax-state-open,ax-menu.ax-menu-container.ax-state-open,ax-menu .ax-menu-items.ax-state-open{opacity:1;visibility:visible}ax-context-menu.ax-menu-container .ax-action-item:hover,ax-context-menu .ax-menu-items .ax-action-item:hover,ax-menu.ax-menu-container .ax-action-item:hover,ax-menu .ax-menu-items .ax-action-item:hover{background-color:rgba(var(--ax-color-on-surface),var(--tw-bg-opacity))}ax-context-menu.ax-action-list-horizontal{padding-inline:1rem}ax-menu.ax-action-list-horizontal{min-width:12rem;gap:.875rem}ax-menu.ax-action-list-horizontal>ax-title{display:none}ax-menu.ax-action-list-horizontal>ax-menu-item{font-weight:500}ax-menu.ax-action-list-horizontal>ax-menu-item>.ax-action-item-prefix{padding-inline-start:0!important}ax-menu.ax-action-list-horizontal>ax-menu-item>.ax-action-item-suffix:not(ax-menu.ax-action-list-horizontal>ax-menu-item>.ax-action-item-suffix:empty){padding-inline-end:0!important;margin-inline-start:0!important}ax-menu.ax-action-list-horizontal>ax-menu-item:hover{background-color:transparent!important}ax-menu.ax-action-list-horizontal>ax-menu-item:hover>.ax-action-item-prefix{opacity:.5}ax-menu.ax-action-list-horizontal>ax-menu-item:hover>.ax-action-item-suffix{opacity:.5}ax-menu.ax-action-list-vertical{width:max-content;min-width:12rem}ax-menu.ax-action-list-vertical>ax-menu-item{font-weight:500}ax-menu.ax-action-list-vertical>ax-menu-item:hover{background-color:transparent!important}ax-menu.ax-action-list-vertical>ax-menu-item:hover>.ax-action-item-prefix{opacity:.5}ax-menu.ax-action-list-vertical>ax-menu-item:hover>.ax-action-item-suffix{opacity:.5}ax-menu>ax-menu-item{padding-block:.5rem}ax-menu>ax-menu-item:hover:not(ax-menu>ax-menu-item:hover.ax-state-disabled){border-radius:var(--ax-rounded-border-default)}ax-menu>ax-menu-item:hover:not(ax-menu>ax-menu-item:hover.ax-state-disabled)>ax-icon,ax-menu>ax-menu-item:hover:not(ax-menu>ax-menu-item:hover.ax-state-disabled)>ax-text{opacity:.5}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "component", type: i3.AXMenuItemComponent, selector: "ax-menu-item", inputs: ["name", "data", "disabled", "color"], outputs: ["onClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
215
222
|
}
|
216
223
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXContextMenuComponent, decorators: [{
|
@@ -219,8 +226,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
219
226
|
AXMenuService,
|
220
227
|
{
|
221
228
|
provide: AXRootMenu,
|
222
|
-
useExisting: AXContextMenuComponent
|
223
|
-
}
|
229
|
+
useExisting: AXContextMenuComponent,
|
230
|
+
},
|
224
231
|
], template: "<ng-content select=\"ax-menu-item,ax-divider,ax-title,ng-container\"></ng-content>\n\n<ng-container\n *ngFor=\"let node of items()\"\n [ngTemplateOutlet]=\"Recursion\"\n [ngTemplateOutletContext]=\"{ $implicit: node }\"\n>\n</ng-container>\n<ng-template #Recursion let-item>\n @if (item.group?.title) {\n <ax-title>{{ item.group?.title }}</ax-title>\n }\n <ax-menu-item [name]=\"item.name\" [data]=\"item.data\" [disabled]=\"item.disabled\" [color]=\"item.color\">\n <ax-prefix>\n @if (item.icon) {\n <ax-icon [icon]=\"item.icon\"> </ax-icon>\n }\n </ax-prefix>\n @if (item.text) {\n <ax-text>{{ item.text }}</ax-text>\n }\n @if (item.suffix) {\n <ax-suffix>\n <ax-text>{{ item.suffix.text }}</ax-text>\n </ax-suffix>\n }\n <ng-container\n *ngFor=\"let child of item.items\"\n [ngTemplateOutlet]=\"Recursion\"\n [ngTemplateOutletContext]=\"{ $implicit: child }\"\n ></ng-container>\n </ax-menu-item>\n @if (item.break) {\n <ax-divider></ax-divider>\n }\n</ng-template>\n", styles: ["ax-context-menu,ax-menu{width:100%;color:inherit;display:flex;width:max-content}ax-context-menu .ax-action-item,ax-menu .ax-action-item{padding-inline-end:0!important}ax-context-menu.ax-menu-container,ax-context-menu .ax-menu-items,ax-menu.ax-menu-container,ax-menu .ax-menu-items{padding-block:.5rem;display:flex;opacity:0;visibility:hidden;transition:opacity .3s;width:max-content;min-width:12rem;height:max-content;position:fixed;flex-direction:column;border-radius:0;border-width:1px;border-color:rgba(var(--ax-color-border-default));background-color:rgba(var(--ax-color-surface));--ax-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--ax-shadow-colored: 0 4px 6px -1px var(--ax-shadow-color), 0 2px 4px -2px var(--ax-shadow-color);box-shadow:var(--ax-ring-offset-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-ring-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-shadow);border-radius:var(--ax-rounded-border-default);z-index:9999;color:rgba(var(--ax-color-text-default))}ax-context-menu.ax-menu-container.ax-state-open,ax-context-menu .ax-menu-items.ax-state-open,ax-menu.ax-menu-container.ax-state-open,ax-menu .ax-menu-items.ax-state-open{opacity:1;visibility:visible}ax-context-menu.ax-menu-container .ax-action-item:hover,ax-context-menu .ax-menu-items .ax-action-item:hover,ax-menu.ax-menu-container .ax-action-item:hover,ax-menu .ax-menu-items .ax-action-item:hover{background-color:rgba(var(--ax-color-on-surface),var(--tw-bg-opacity))}ax-context-menu.ax-action-list-horizontal{padding-inline:1rem}ax-menu.ax-action-list-horizontal{min-width:12rem;gap:.875rem}ax-menu.ax-action-list-horizontal>ax-title{display:none}ax-menu.ax-action-list-horizontal>ax-menu-item{font-weight:500}ax-menu.ax-action-list-horizontal>ax-menu-item>.ax-action-item-prefix{padding-inline-start:0!important}ax-menu.ax-action-list-horizontal>ax-menu-item>.ax-action-item-suffix:not(ax-menu.ax-action-list-horizontal>ax-menu-item>.ax-action-item-suffix:empty){padding-inline-end:0!important;margin-inline-start:0!important}ax-menu.ax-action-list-horizontal>ax-menu-item:hover{background-color:transparent!important}ax-menu.ax-action-list-horizontal>ax-menu-item:hover>.ax-action-item-prefix{opacity:.5}ax-menu.ax-action-list-horizontal>ax-menu-item:hover>.ax-action-item-suffix{opacity:.5}ax-menu.ax-action-list-vertical{width:max-content;min-width:12rem}ax-menu.ax-action-list-vertical>ax-menu-item{font-weight:500}ax-menu.ax-action-list-vertical>ax-menu-item:hover{background-color:transparent!important}ax-menu.ax-action-list-vertical>ax-menu-item:hover>.ax-action-item-prefix{opacity:.5}ax-menu.ax-action-list-vertical>ax-menu-item:hover>.ax-action-item-suffix{opacity:.5}ax-menu>ax-menu-item{padding-block:.5rem}ax-menu>ax-menu-item:hover:not(ax-menu>ax-menu-item:hover.ax-state-disabled){border-radius:var(--ax-rounded-border-default)}ax-menu>ax-menu-item:hover:not(ax-menu>ax-menu-item:hover.ax-state-disabled)>ax-icon,ax-menu>ax-menu-item:hover:not(ax-menu>ax-menu-item:hover.ax-state-disabled)>ax-text{opacity:.5}\n"] }]
|
225
232
|
}], ctorParameters: () => [], propDecorators: { onWindowEvent: [{
|
226
233
|
type: HostListener,
|
@@ -232,4 +239,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
232
239
|
type: HostBinding,
|
233
240
|
args: ['class']
|
234
241
|
}] } });
|
235
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9tZW51L3NyYy9saWIvY29udGV4dC1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9tZW51L3NyYy9saWIvbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFdBQVcsRUFBRSxPQUFPLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNoRixPQUFPLEVBQ0gsZUFBZSxFQUNmLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsV0FBVyxFQUNYLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBQ1QsTUFBTSxFQUNOLGlCQUFpQixHQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQStFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN2SCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFVBQVUsRUFBVyxNQUFNLG9CQUFvQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDdEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7OztBQUdsRCxNQUFNLE9BQU8seUJBQTBCLFNBQVEsT0FBK0I7SUFBOUU7O1FBRUksYUFBUSxHQUFHLEtBQUssQ0FBQztJQUdyQixDQUFDO0NBQUE7QUFHRDs7O0dBR0c7QUFlSCxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsV0FBVztJQWtCbkQscUNBQXFDO0lBRXJDLGNBQWM7SUFDZDtRQUNJLEtBQUssRUFBRSxDQUFDO1FBcEJaLHFCQUFxQjtRQUVyQixnQkFBVyxHQUFHLEtBQUssQ0FBZ0IsVUFBVSxDQUFDLENBQUM7UUFDL0MsV0FB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RUFBRSxFQUFFLGdCQUFnQixFQUFFLHlCQUF5QixDQUFDLENBQUM7SUFDdEgsQ0FBQzs4R0FyT1Esc0JBQXNCO2tHQUF0QixzQkFBc0IscTVCQVJwQjtZQUNQLGFBQWE7WUFDYjtnQkFDSSxPQUFPLEVBQUUsVUFBVTtnQkFDbkIsV0FBVyxFQUFFLHNCQUFzQjthQUN0QztTQUNKLGlEQzdDTCx5aUNBb0NBOzsyRkRXYSxzQkFBc0I7a0JBZGxDLFNBQVM7K0JBQ0ksaUJBQWlCLG1CQUdWLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksYUFDMUI7d0JBQ1AsYUFBYTt3QkFDYjs0QkFDSSxPQUFPLEVBQUUsVUFBVTs0QkFDbkIsV0FBVyx3QkFBd0I7eUJBQ3RDO3FCQUNKO3dEQThOTyxhQUFhO3NCQUZwQixZQUFZO3VCQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQzs7c0JBQ3hDLFlBQVk7dUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQVFyQyxXQUFXO3NCQURkLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYT3JpZW50YXRpb24sIE5YQ29tcG9uZW50LCBOWEV2ZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIGFmdGVyTmV4dFJlbmRlcixcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIGluamVjdCxcbiAgICBpbnB1dCxcbiAgICBvdXRwdXQsXG4gICAgUmVuZGVyZXIyLFxuICAgIHNpZ25hbCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWE1lbnVDbG9zZVRyaWdnZXIsIEFYTWVudUl0ZW0sIEFYTWVudUl0ZW1DbGlja0Jhc2VFdmVudCwgQVhNZW51T3BlblRyaWdnZXIsIEFYUm9vdE1lbnUgfSBmcm9tICcuL21lbnUudHlwZXMnO1xuaW1wb3J0IHsgQVhNZW51U2VydmljZSB9IGZyb20gJy4vbWVudS5zZXJ2aWNlJztcbmltcG9ydCB7IEFYSHRtbFV0aWwsIEFYUG9pbnQgfSBmcm9tICdAYWNvcmV4L2NvcmUvdXRpbHMnO1xuaW1wb3J0IHsgY2xvbmVEZWVwIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IGlzQnJvd3NlciB9IGZyb20gJ0BhY29yZXgvY29yZS9wbGF0Zm9ybSc7XG5cblxuZXhwb3J0IGNsYXNzIEFYQ29udGV4dE1lbnVPcGVuaW5nRXZlbnQgZXh0ZW5kcyBOWEV2ZW50PEFYQ29udGV4dE1lbnVDb21wb25lbnQ+IHtcbiAgICBpdGVtczogQVhNZW51SXRlbVtdO1xuICAgIGNhbmNlbGVkID0gZmFsc2U7XG4gICAgdGFyZ2V0RWxlbWVudDogSFRNTEVsZW1lbnRcblxufVxuZXhwb3J0IHR5cGUgQVhDb250ZXh0TWVudUl0ZW1zQ2xpY2tFdmVudCA9IEFYTWVudUl0ZW1DbGlja0Jhc2VFdmVudDxBWENvbnRleHRNZW51Q29tcG9uZW50PlxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBtZW51IGNvbXBvbmVudCB0aGF0IGRpc3BsYXlzIGNvbnRleHQgbWVudS5cbiAqIEBjYXRlZ29yeSBDb21wb25lbnRzXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYXgtY29udGV4dC1tZW51JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbWVudS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vbWVudS5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIEFYTWVudVNlcnZpY2UsXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEFYUm9vdE1lbnUsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogQVhDb250ZXh0TWVudUNvbXBvbmVudFxuICAgICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBBWENvbnRleHRNZW51Q29tcG9uZW50IGV4dGVuZHMgTlhDb21wb25lbnQge1xuXG4gICAgLy8gSW5wdXRzIGFuZCBPdXRwdXRzXG5cbiAgICBvcmllbnRhdGlvbiA9IGlucHV0PEFYT3JpZW50YXRpb24+KCd2ZXJ0aWNhbCcpO1xuICAgIG9wZW5PbiA9IGlucHV0PEFYTWVudU9wZW5UcmlnZ2VyPignaG92ZXInKTtcbiAgICBjbG9zZU9uID0gaW5wdXQ8QVhNZW51Q2xvc2VUcmlnZ2VyPignY2xpY2snKTtcbiAgICBvcmdpbmFsSXRlbXMgPSBpbnB1dDxBWE1lbnVJdGVtW10+KFtdLCB7IGFsaWFzOiBcIml0ZW1zXCIgfSk7XG4gICAgdGFyZ2V0ID0gaW5wdXQ8SFRNTEVsZW1lbnQgfCBIVE1MRWxlbWVudFtdIHwgc3RyaW5nPigpO1xuXG4gICAgb25JdGVtQ2xpY2sgPSBvdXRwdXQ8QVhDb250ZXh0TWVudUl0ZW1zQ2xpY2tFdmVudD4oKTtcbiAgICBvbk9wZW5pbmcgPSBvdXRwdXQ8QVhDb250ZXh0TWVudU9wZW5pbmdFdmVudD4oKTtcblxuICAgIC8vIEluamVjdGVkIFNlcnZpY2VzXG5cbiAgICBwcml2YXRlIHNlcnZpY2UgPSBpbmplY3QoQVhNZW51U2VydmljZSk7XG4gICAgcHJpdmF0ZSByZW5kZXJlciA9IGluamVjdChSZW5kZXJlcjIpXG5cbiAgICAvLyBDb25zdHJ1Y3RvciAoRGVwZW5kZW5jeSBJbmplY3Rpb24pXG5cbiAgICAvKiogQGlnbm9yZSAqL1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICAvL1xuICAgICAgICBhZnRlck5leHRSZW5kZXIoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5iaW5kQ29udGV4dEV2ZW50KCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuc2VydmljZS5jbG9zZUFsbENvbnRleHRNZW51JC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zZXJ2aWNlLmNsb3NlQWxsJC5uZXh0KCk7XG4gICAgICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuc2VydmljZS5vcGVuQ29udGV4dE1lbnUkLnN1YnNjcmliZSgoZSkgPT4ge1xuICAgICAgICAgICAgaWYgKGUuc2VuZGVyIGFzIGFueSA9PSB0aGlzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pbnRlcm5hbFNob3dBdChlLnBvaW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG5cblxuICAgIC8vIExpZmVjeWNsZSBIb29rc1xuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIGlmIChpc0Jyb3dzZXIoKSkge1xuICAgICAgICAgICAgdGhpcy5yZW1vdmVDb250ZXh0RXZlbnQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyByZWZyZXNoKCl7XG4gICAgICAgIHRoaXMuYmluZENvbnRleHRFdmVudCgpXG4gICAgfVxuXG4gICAgLy8gUHVibGljIE1ldGhvZHNcblxuICAgIHB1YmxpYyBzaG93QXQocG9pbnQ6IEFYUG9pbnQpIHtcbiAgICAgICAgY29uc3Qgc2VuZGVyID0gdGhpcyBhcyBhbnkgYXMgQVhSb290TWVudTtcbiAgICAgICAgdGhpcy5zZXJ2aWNlLmNsb3NlQWxsQ29udGV4dE1lbnUkLm5leHQoeyBzZW5kZXIgfSk7XG4gICAgICAgIHRoaXMuc2VydmljZS5vcGVuQ29udGV4dE1lbnUkLm5leHQoeyBzZW5kZXIsIHBvaW50IH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBjbG9zZSgpIHtcbiAgICAgICAgdGhpcy5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoJ2F4LXN0YXRlLW9wZW4nKTtcbiAgICAgICAgdGhpcy5yZW1vdmVCYWNrZHJvcCgpO1xuICAgIH1cblxuICAgIC8vIFByaXZhdGUgUHJvcGVydGllc1xuXG4gICAgcHJpdmF0ZSBiYWNrZHJvcEVsZW1lbnQhOiBIVE1MRWxlbWVudDtcblxuICAgIHByb3RlY3RlZCBpdGVtcyA9IHNpZ25hbDxBWE1lbnVJdGVtW10+KFtdKTtcblxuICAgIC8vIFByaXZhdGUgTWV0aG9kcyAoSW50ZXJuYWwgTG9naWMpXG5cbiAgICAvKiogQGlnbm9yZSAqL1xuICAgIHByaXZhdGUgZ2V0VGFyZ2V0RWxlbWVudHMoKTogSFRNTEVsZW1lbnRbXSB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnRzOiBIVE1MRWxlbWVudFtdID0gdHlwZW9mIHRoaXMudGFyZ2V0KCkgPT0gJ3N0cmluZycgP1xuICAgICAgICAgICAgQXJyYXkuZnJvbShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsPEhUTUxFbGVtZW50Pih0aGlzLnRhcmdldCgpIGFzIHN0cmluZykpIDpcbiAgICAgICAgICAgIEFycmF5LmlzQXJyYXkodGhpcy50YXJnZXQoKSkgP1xuICAgICAgICAgICAgICAgIHRoaXMudGFyZ2V0KCkgYXMgSFRNTEVsZW1lbnRbXSA6XG4gICAgICAgICAgICAgICAgW3RoaXMudGFyZ2V0KCkgYXMgSFRNTEVsZW1lbnRdXG5cbiAgICAgICAgcmV0dXJuIGVsZW1lbnRzO1xuICAgIH1cblxuICAgIC8qKiBAaWdub3JlICovXG4gICAgcHJpdmF0ZSBiaW5kQ29udGV4dEV2ZW50KCkge1xuICAgICAgICB0aGlzLmdldFRhcmdldEVsZW1lbnRzKCkuZm9yRWFjaCgoZSkgPT4ge1xuICAgICAgICAgICAgZS5hZGRFdmVudExpc3RlbmVyKCdjb250ZXh0bWVudScsIHRoaXMuaGFuZGxlQ29udGV4dE1lbnUuYmluZCh0aGlzKSk7XG4gICAgICAgIH0pXG4gICAgfVxuXG4gICAgLyoqIEBpZ25vcmUgKi9cbiAgICBwcml2YXRlIHJlbW92ZUNvbnRleHRFdmVudCgpIHtcbiAgICAgICAgdGhpcy5nZXRUYXJnZXRFbGVtZW50cygpLmZvckVhY2goKGUpID0+IHtcbiAgICAgICAgICAgIGUucmVtb3ZlRXZlbnRMaXN0ZW5lcignY29udGV4dG1lbnUnLCB0aGlzLmhhbmRsZUNvbnRleHRNZW51LmJpbmQodGhpcykpO1xuICAgICAgICB9KVxuICAgIH1cblxuICAgIC8qKiBAaWdub3JlICovXG4gICAgcHJpdmF0ZSBoYW5kbGVDb250ZXh0TWVudShlOiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgLy9cbiAgICAgICAgY29uc3QgZWxlbWVudHNVbmRlck1vdXNlID0gZG9jdW1lbnQuZWxlbWVudHNGcm9tUG9pbnQoZS54LCBlLnkpIGFzIEhUTUxFbGVtZW50W107XG4gICAgICAgIGNvbnN0IHRhcmdldEVsZW1lbnRzID0gdGhpcy5nZXRUYXJnZXRFbGVtZW50cygpO1xuICAgICAgICBjb25zdCB0YXJnZXRFbGVtZW50ID0gZWxlbWVudHNVbmRlck1vdXNlLmZpbmQodGFyZ2V0ID0+IHRhcmdldEVsZW1lbnRzLmluY2x1ZGVzKHRhcmdldCkpXG4gICAgICAgIC8vXG4gICAgICAgIGNvbnN0IGV2ZW50ID0ge1xuICAgICAgICAgICAgc2VuZGVyOiB0aGlzLFxuICAgICAgICAgICAgY2FuY2VsZWQ6IGZhbHNlLFxuICAgICAgICAgICAgdGFyZ2V0RWxlbWVudDogdGFyZ2V0RWxlbWVudCxcbiAgICAgICAgICAgIGl0ZW1zOiBjbG9uZURlZXAodGhpcy5vcmdpbmFsSXRlbXMoKSksXG4gICAgICAgIH0gYXMgQVhDb250ZXh0TWVudU9wZW5pbmdFdmVudDtcbiAgICAgICAgdGhpcy5vbk9wZW5pbmcuZW1pdChldmVudCk7XG4gICAgICAgIHRoaXMuaXRlbXMuc2V0KGV2ZW50Lml0ZW1zKTtcbiAgICAgICAgLy9cbiAgICAgICAgaWYgKCFldmVudC5jYW5jZWxlZCkge1xuICAgICAgICAgICAgdGhpcy5zaG93QXQoeyB4OiBlLmNsaWVudFgsIHk6IGUuY2xpZW50WSB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaWdub3JlICovXG4gICAgcHJpdmF0ZSBpbnRlcm5hbFNob3dBdChwb2ludDogQVhQb2ludCkge1xuICAgICAgICBjb25zdCBlbGVtZW50UmVmID0gdGhpcy5uYXRpdmVFbGVtZW50O1xuICAgICAgICBlbGVtZW50UmVmLmNsYXNzTGlzdC5hZGQoJ2F4LXN0YXRlLW9wZW4nKTtcbiAgICAgICAgY29uc3QgaXRlbVJlY3QgPSBlbGVtZW50UmVmLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICBjb25zdCB3aW5kb3dXaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoO1xuICAgICAgICBjb25zdCB3aW5kb3dIZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQ7XG5cbiAgICAgICAgLy8gRGV0ZWN0IFJUTCAoUmlnaHQtVG8tTGVmdCkgbW9kZVxuICAgICAgICBjb25zdCBpc1J0bCA9IEFYSHRtbFV0aWwuaXNSdGwoZWxlbWVudFJlZik7XG5cbiAgICAgICAgbGV0IGxlZnQ6IG51bWJlcjtcbiAgICAgICAgaWYgKGlzUnRsKSB7XG4gICAgICAgICAgICBsZWZ0ID0gcG9pbnQueCAtIGl0ZW1SZWN0LndpZHRoO1xuICAgICAgICAgICAgaWYgKGxlZnQgPCAwKSB7XG4gICAgICAgICAgICAgICAgbGVmdCA9IHBvaW50Lng7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBsZWZ0ID0gcG9pbnQueDtcbiAgICAgICAgICAgIGlmIChsZWZ0ICsgaXRlbVJlY3Qud2lkdGggPiB3aW5kb3dXaWR0aCkge1xuICAgICAgICAgICAgICAgIGxlZnQgPSBwb2ludC54IC0gaXRlbVJlY3Qud2lkdGg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBib3R0b20gPSBwb2ludC55ICsgaXRlbVJlY3QuaGVpZ2h0O1xuICAgICAgICBsZXQgdG9wOiBudW1iZXI7XG5cbiAgICAgICAgaWYgKGJvdHRvbSA+IHdpbmRvd0hlaWdodCkge1xuICAgICAgICAgICAgdG9wID0gcG9pbnQueSAtIGl0ZW1SZWN0LmhlaWdodDtcbiAgICAgICAgICAgIGlmICh0b3AgPCAwKSB7XG4gICAgICAgICAgICAgICAgdG9wID0gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRvcCA9IHBvaW50Lnk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGVsZW1lbnRSZWYsICdsZWZ0JywgYCR7bGVmdH1weGApO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGVsZW1lbnRSZWYsICd0b3AnLCBgJHt0b3B9cHhgKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShlbGVtZW50UmVmLCAncG9zaXRpb24nLCAnZml4ZWQnKTtcblxuICAgICAgICB0aGlzLmNyZWF0ZUJhY2tkcm9wKCk7XG4gICAgfVxuXG4gICAgLyoqIEBpZ25vcmUgKi9cbiAgICBwcml2YXRlIGNyZWF0ZUJhY2tkcm9wKCkge1xuICAgICAgICB0aGlzLmJhY2tkcm9wRWxlbWVudCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5iYWNrZHJvcEVsZW1lbnQsICdwb3NpdGlvbicsICdmaXhlZCcpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuYmFja2Ryb3BFbGVtZW50LCAndG9wJywgJzAnKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmJhY2tkcm9wRWxlbWVudCwgJ2xlZnQnLCAnMCcpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuYmFja2Ryb3BFbGVtZW50LCAnd2lkdGgnLCAnMTAwJScpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuYmFja2Ryb3BFbGVtZW50LCAnaGVpZ2h0JywgJzEwMCUnKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmJhY2tkcm9wRWxlbWVudCwgJ3otaW5kZXgnLCAnOTk5Jyk7IC8vIEVuc3VyZSBpdCdzIGJlbG93IHRoZSBjb250ZXh0IG1lbnVcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmJhY2tkcm9wRWxlbWVudCwgJ2JhY2tncm91bmQnLCAndHJhbnNwYXJlbnQnKTtcblxuICAgICAgICBjb25zdCBsMSA9IHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuYmFja2Ryb3BFbGVtZW50LCAnY2xpY2snLCAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgICAgICBsMSgpO1xuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCBsMiA9IHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuYmFja2Ryb3BFbGVtZW50LCAnd2hlZWwnLCAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgICAgICBsMigpO1xuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCBsMyA9IHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuYmFja2Ryb3BFbGVtZW50LCAnY29udGV4dG1lbnUnLCAoZTogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICAgICAgLy8gR2V0IGFsbCBlbGVtZW50cyB1bmRlciB0aGUgbW91c2UgcG9pbnRlclxuICAgICAgICAgICAgY29uc3QgZWxlbWVudHNVbmRlck1vdXNlID0gZG9jdW1lbnQuZWxlbWVudHNGcm9tUG9pbnQoZS54LCBlLnkpIGFzIEhUTUxFbGVtZW50W107XG4gICAgICAgICAgICBjb25zdCB0YXJnZXRFbGVtZW50cyA9IHRoaXMuZ2V0VGFyZ2V0RWxlbWVudHMoKTtcbiAgICAgICAgICAgIGlmICh0YXJnZXRFbGVtZW50cy5zb21lKHRhcmdldCA9PiBlbGVtZW50c1VuZGVyTW91c2UuaW5jbHVkZXModGFyZ2V0KSkpIHtcbiAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIC8vdGhpcy5pbnRlcm5hbFNob3dBdCh7IHg6IGUueCwgeTogZS55IH0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZUNvbnRleHRNZW51KGUpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbDMoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0aGlzLmJhY2tkcm9wRWxlbWVudCk7XG4gICAgfVxuXG4gICAgLyoqIEBpZ25vcmUgKi9cbiAgICBwcml2YXRlIHJlbW92ZUJhY2tkcm9wKCkge1xuICAgICAgICBpZiAodGhpcy5iYWNrZHJvcEVsZW1lbnQpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmJhY2tkcm9wRWxlbWVudC5wYXJlbnROb2RlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5iYWNrZHJvcEVsZW1lbnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLmJhY2tkcm9wRWxlbWVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmJhY2tkcm9wRWxlbWVudCA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBIb3N0IExpc3RlbmVycyAoVUkgSW50ZXJhY3Rpb24gSGFuZGxpbmcpXG5cbiAgICAvKiogQGlnbm9yZSAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpzY3JvbGwnLCBbJyRldmVudCddKVxuICAgIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnLCBbJyRldmVudCddKVxuICAgIHByaXZhdGUgb25XaW5kb3dFdmVudCgpIHtcbiAgICAgICAgY29uc3Qgc2VuZGVyID0gdGhpcyBhcyBhbnkgYXMgQVhSb290TWVudTtcbiAgICAgICAgdGhpcy5zZXJ2aWNlLmNsb3NlQWxsQ29udGV4dE1lbnUkLm5leHQoeyBzZW5kZXI6IHNlbmRlciB9KTsgLy8gQ2xvc2UgYWxsIG1lbnVzIG9uIHNjcm9sbCBvciByZXNpemVcbiAgICB9XG5cbiAgICAvKiogQGlnbm9yZSAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICAgIGdldCBfX2hvc3RDbGFzcygpOiBhbnkge1xuICAgICAgICByZXR1cm4gWydheC1tZW51LWNvbnRhaW5lcicsIGBheC1vcmllbnRhdGlvbi0ke3RoaXMub3JpZW50YXRpb24oKX1gLCAnYXgtYWN0aW9uLWxpc3QnLCAnYXgtYWN0aW9uLWxpc3QtdmVydGljYWwnXTtcbiAgICB9XG59XG4iLCI8bmctY29udGVudCBzZWxlY3Q9XCJheC1tZW51LWl0ZW0sYXgtZGl2aWRlcixheC10aXRsZSxuZy1jb250YWluZXJcIj48L25nLWNvbnRlbnQ+XG5cbjxuZy1jb250YWluZXJcbiAgKm5nRm9yPVwibGV0IG5vZGUgb2YgaXRlbXMoKVwiXG4gIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIlJlY3Vyc2lvblwiXG4gIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogbm9kZSB9XCJcbj5cbjwvbmctY29udGFpbmVyPlxuPG5nLXRlbXBsYXRlICNSZWN1cnNpb24gbGV0LWl0ZW0+XG4gIEBpZiAoaXRlbS5ncm91cD8udGl0bGUpIHtcbiAgICA8YXgtdGl0bGU+e3sgaXRlbS5ncm91cD8udGl0bGUgfX08L2F4LXRpdGxlPlxuICB9XG4gIDxheC1tZW51LWl0ZW0gW25hbWVdPVwiaXRlbS5uYW1lXCIgW2RhdGFdPVwiaXRlbS5kYXRhXCIgW2Rpc2FibGVkXT1cIml0ZW0uZGlzYWJsZWRcIiBbY29sb3JdPVwiaXRlbS5jb2xvclwiPlxuICAgIDxheC1wcmVmaXg+XG4gICAgICBAaWYgKGl0ZW0uaWNvbikge1xuICAgICAgICA8YXgtaWNvbiBbaWNvbl09XCJpdGVtLmljb25cIj4gPC9heC1pY29uPlxuICAgICAgfVxuICAgIDwvYXgtcHJlZml4PlxuICAgIEBpZiAoaXRlbS50ZXh0KSB7XG4gICAgICA8YXgtdGV4dD57eyBpdGVtLnRleHQgfX08L2F4LXRleHQ+XG4gICAgfVxuICAgIEBpZiAoaXRlbS5zdWZmaXgpIHtcbiAgICAgIDxheC1zdWZmaXg+XG4gICAgICAgIDxheC10ZXh0Pnt7IGl0ZW0uc3VmZml4LnRleHQgfX08L2F4LXRleHQ+XG4gICAgICA8L2F4LXN1ZmZpeD5cbiAgICB9XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgKm5nRm9yPVwibGV0IGNoaWxkIG9mIGl0ZW0uaXRlbXNcIlxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiUmVjdXJzaW9uXCJcbiAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogY2hpbGQgfVwiXG4gICAgPjwvbmctY29udGFpbmVyPlxuICA8L2F4LW1lbnUtaXRlbT5cbiAgQGlmIChpdGVtLmJyZWFrKSB7XG4gICAgPGF4LWRpdmlkZXI+PC9heC1kaXZpZGVyPlxuICB9XG48L25nLXRlbXBsYXRlPlxuIl19
|
242
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9tZW51L3NyYy9saWIvY29udGV4dC1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9tZW51L3NyYy9saWIvbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFdBQVcsRUFBRSxPQUFPLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNoRixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBVyxNQUFNLG9CQUFvQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQ0wsZUFBZSxFQUNmLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsV0FBVyxFQUNYLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBQ1QsTUFBTSxFQUNOLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvQyxPQUFPLEVBS0wsVUFBVSxHQUNYLE1BQU0sY0FBYyxDQUFDOzs7OztBQUV0QixNQUFNLE9BQU8seUJBQTBCLFNBQVEsT0FBK0I7SUFBOUU7O1FBRUUsYUFBUSxHQUFHLEtBQUssQ0FBQztJQUVuQixDQUFDO0NBQUE7QUFHRDs7O0dBR0c7QUFlSCxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsV0FBVztJQWtCckQscUNBQXFDO0lBRXJDLGNBQWM7SUFDZDtRQUNFLEtBQUssRUFBRSxDQUFDO1FBckJWLHFCQUFxQjtRQUVyQixnQkFB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TUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxzQ0FBc0M7SUFDcEcsQ0FBQztJQUVELGNBQWM7SUFDZCxJQUNJLFdBQVc7UUFDYixPQUFPO1lBQ0wsbUJBQW1CO1lBQ25CLGtCQUFrQixJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUU7WUFDdEMsZ0JBQWdCO1lBQ2hCLHlCQUF5QjtTQUMxQixDQUFDO0lBQ0osQ0FBQzs4R0F6T1Usc0JBQXNCO2tHQUF0QixzQkFBc0IscTVCQVJ0QjtZQUNULGFBQWE7WUFDYjtnQkFDRSxPQUFPLEVBQUUsVUFBVTtnQkFDbkIsV0FBVyxFQUFFLHNCQUFzQjthQUNwQztTQUNGLGlEQ2xESCx5aUNBb0NBOzsyRkRnQmEsc0JBQXNCO2tCQWRsQyxTQUFTOytCQUNFLGlCQUFpQixtQkFHVix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLGFBQzFCO3dCQUNULGFBQWE7d0JBQ2I7NEJBQ0UsT0FBTyxFQUFFLFVBQVU7NEJBQ25CLFdBQVcsd0JBQXdCO3lCQUNwQztxQkFDRjt3REE2Tk8sYUFBYTtzQkFGcEIsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUM7O3NCQUN4QyxZQUFZO3VCQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFRckMsV0FBVztzQkFEZCxXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWE9yaWVudGF0aW9uLCBOWENvbXBvbmVudCwgTlhFdmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9jb21tb24nO1xuaW1wb3J0IHsgaXNCcm93c2VyIH0gZnJvbSAnQGFjb3JleC9jb3JlL3BsYXRmb3JtJztcbmltcG9ydCB7IEFYSHRtbFV0aWwsIEFYUG9pbnQgfSBmcm9tICdAYWNvcmV4L2NvcmUvdXRpbHMnO1xuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgYWZ0ZXJOZXh0UmVuZGVyLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBIb3N0QmluZGluZyxcbiAgSG9zdExpc3RlbmVyLFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBvdXRwdXQsXG4gIFJlbmRlcmVyMixcbiAgc2lnbmFsLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjbG9uZURlZXAgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgQVhNZW51U2VydmljZSB9IGZyb20gJy4vbWVudS5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIEFYTWVudUNsb3NlVHJpZ2dlcixcbiAgQVhNZW51SXRlbSxcbiAgQVhNZW51SXRlbUNsaWNrQmFzZUV2ZW50LFxuICBBWE1lbnVPcGVuVHJpZ2dlcixcbiAgQVhSb290TWVudSxcbn0gZnJvbSAnLi9tZW51LnR5cGVzJztcblxuZXhwb3J0IGNsYXNzIEFYQ29udGV4dE1lbnVPcGVuaW5nRXZlbnQgZXh0ZW5kcyBOWEV2ZW50PEFYQ29udGV4dE1lbnVDb21wb25lbnQ+IHtcbiAgaXRlbXM6IEFYTWVudUl0ZW1bXTtcbiAgY2FuY2VsZWQgPSBmYWxzZTtcbiAgdGFyZ2V0RWxlbWVudDogSFRNTEVsZW1lbnQ7XG59XG5leHBvcnQgdHlwZSBBWENvbnRleHRNZW51SXRlbXNDbGlja0V2ZW50ID0gQVhNZW51SXRlbUNsaWNrQmFzZUV2ZW50PEFYQ29udGV4dE1lbnVDb21wb25lbnQ+O1xuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBtZW51IGNvbXBvbmVudCB0aGF0IGRpc3BsYXlzIGNvbnRleHQgbWVudS5cbiAqIEBjYXRlZ29yeSBDb21wb25lbnRzXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LWNvbnRleHQtbWVudScsXG4gIHRlbXBsYXRlVXJsOiAnLi9tZW51LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWVudS5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgQVhNZW51U2VydmljZSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBBWFJvb3RNZW51LFxuICAgICAgdXNlRXhpc3Rpbmc6IEFYQ29udGV4dE1lbnVDb21wb25lbnQsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhDb250ZXh0TWVudUNvbXBvbmVudCBleHRlbmRzIE5YQ29tcG9uZW50IHtcbiAgLy8gSW5wdXRzIGFuZCBPdXRwdXRzXG5cbiAgb3JpZW50YXRpb24gPSBpbnB1dDxBWE9yaWVudGF0aW9uPigndmVydGljYWwnKTtcbiAgb3Blbk9uID0gaW5wdXQ8QVhNZW51T3BlblRyaWdnZXI+KCdob3ZlcicpO1xuICBjbG9zZU9uID0gaW5wdXQ8QVhNZW51Q2xvc2VUcmlnZ2VyPignY2xpY2snKTtcbiAgb3JnaW5hbEl0ZW1zID0gaW5wdXQ8QVhNZW51SXRlbVtdPihbXSwgeyBhbGlhczogJ2l0ZW1zJyB9KTtcbiAgdGFyZ2V0ID0gaW5wdXQ8SFRNTEVsZW1lbnQgfCBIVE1MRWxlbWVudFtdIHwgc3RyaW5nPigpO1xuXG4gIG9uSXRlbUNsaWNrID0gb3V0cHV0PEFYQ29udGV4dE1lbnVJdGVtc0NsaWNrRXZlbnQ+KCk7XG4gIG9uT3BlbmluZyA9IG91dHB1dDxBWENvbnRleHRNZW51T3BlbmluZ0V2ZW50PigpO1xuXG4gIC8vIEluamVjdGVkIFNlcnZpY2VzXG5cbiAgcHJpdmF0ZSBzZXJ2aWNlID0gaW5qZWN0KEFYTWVudVNlcnZpY2UpO1xuICBwcml2YXRlIHJlbmRlcmVyID0gaW5qZWN0KFJlbmRlcmVyMik7XG4gIHByaXZhdGUgZG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xuXG4gIC8vIENvbnN0cnVjdG9yIChEZXBlbmRlbmN5IEluamVjdGlvbilcblxuICAvKiogQGlnbm9yZSAqL1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIC8vXG4gICAgYWZ0ZXJOZXh0UmVuZGVyKCgpID0+IHtcbiAgICAgIHRoaXMuYmluZENvbnRleHRFdmVudCgpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5zZXJ2aWNlLmNsb3NlQWxsQ29udGV4dE1lbnUkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLnNlcnZpY2UuY2xvc2VBbGwkLm5leHQoKTtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICB9KTtcblxuICAgIHRoaXMuc2VydmljZS5vcGVuQ29udGV4dE1lbnUkLnN1YnNjcmliZSgoZSkgPT4ge1xuICAgICAgaWYgKChlLnNlbmRlciBhcyBhbnkpID09IHRoaXMpIHtcbiAgICAgICAgdGhpcy5pbnRlcm5hbFNob3dBdChlLnBvaW50KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8vIExpZmVjeWNsZSBIb29rc1xuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGlmIChpc0Jyb3dzZXIoKSkge1xuICAgICAgdGhpcy5yZW1vdmVDb250ZXh0RXZlbnQoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcmVmcmVzaCgpIHtcbiAgICB0aGlzLmJpbmRDb250ZXh0RXZlbnQoKTtcbiAgfVxuXG4gIC8vIFB1YmxpYyBNZXRob2RzXG5cbiAgcHVibGljIHNob3dBdChwb2ludDogQVhQb2ludCkge1xuICAgIGNvbnN0IHNlbmRlciA9IHRoaXMgYXMgYW55IGFzIEFYUm9vdE1lbnU7XG4gICAgdGhpcy5zZXJ2aWNlLmNsb3NlQWxsQ29udGV4dE1lbnUkLm5leHQoeyBzZW5kZXIgfSk7XG4gICAgdGhpcy5zZXJ2aWNlLm9wZW5Db250ZXh0TWVudSQubmV4dCh7IHNlbmRlciwgcG9pbnQgfSk7XG4gIH1cblxuICBwdWJsaWMgY2xvc2UoKSB7XG4gICAgdGhpcy5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoJ2F4LXN0YXRlLW9wZW4nKTtcbiAgICB0aGlzLnJlbW92ZUJhY2tkcm9wKCk7XG4gIH1cblxuICAvLyBQcml2YXRlIFByb3BlcnRpZXNcblxuICBwcml2YXRlIGJhY2tkcm9wRWxlbWVudCE6IEhUTUxFbGVtZW50O1xuXG4gIHByb3RlY3RlZCBpdGVtcyA9IHNpZ25hbDxBWE1lbnVJdGVtW10+KFtdKTtcblxuICAvLyBQcml2YXRlIE1ldGhvZHMgKEludGVybmFsIExvZ2ljKVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgZ2V0VGFyZ2V0RWxlbWVudHMoKTogSFRNTEVsZW1lbnRbXSB7XG4gICAgY29uc3QgZWxlbWVudHM6IEhUTUxFbGVtZW50W10gPVxuICAgICAgdHlwZW9mIHRoaXMudGFyZ2V0KCkgPT0gJ3N0cmluZydcbiAgICAgICAgPyBBcnJheS5mcm9tKHRoaXMuZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbDxIVE1MRWxlbWVudD4odGhpcy50YXJnZXQoKSBhcyBzdHJpbmcpKVxuICAgICAgICA6IEFycmF5LmlzQXJyYXkodGhpcy50YXJnZXQoKSlcbiAgICAgICAgICA/ICh0aGlzLnRhcmdldCgpIGFzIEhUTUxFbGVtZW50W10pXG4gICAgICAgICAgOiBbdGhpcy50YXJnZXQoKSBhcyBIVE1MRWxlbWVudF07XG5cbiAgICByZXR1cm4gZWxlbWVudHM7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIGJpbmRDb250ZXh0RXZlbnQoKSB7XG4gICAgdGhpcy5nZXRUYXJnZXRFbGVtZW50cygpLmZvckVhY2goKGUpID0+IHtcbiAgICAgIGUuYWRkRXZlbnRMaXN0ZW5lcignY29udGV4dG1lbnUnLCB0aGlzLmhhbmRsZUNvbnRleHRNZW51LmJpbmQodGhpcykpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSByZW1vdmVDb250ZXh0RXZlbnQoKSB7XG4gICAgdGhpcy5nZXRUYXJnZXRFbGVtZW50cygpLmZvckVhY2goKGUpID0+IHtcbiAgICAgIGUucmVtb3ZlRXZlbnRMaXN0ZW5lcignY29udGV4dG1lbnUnLCB0aGlzLmhhbmRsZUNvbnRleHRNZW51LmJpbmQodGhpcykpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBoYW5kbGVDb250ZXh0TWVudShlOiBNb3VzZUV2ZW50KSB7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgLy9cbiAgICBjb25zdCBlbGVtZW50c1VuZGVyTW91c2UgPSB0aGlzLmRvY3VtZW50LmVsZW1lbnRzRnJvbVBvaW50KGUueCwgZS55KSBhcyBIVE1MRWxlbWVudFtdO1xuICAgIGNvbnN0IHRhcmdldEVsZW1lbnRzID0gdGhpcy5nZXRUYXJnZXRFbGVtZW50cygpO1xuICAgIGNvbnN0IHRhcmdldEVsZW1lbnQgPSBlbGVtZW50c1VuZGVyTW91c2UuZmluZCgodGFyZ2V0KSA9PiB0YXJnZXRFbGVtZW50cy5pbmNsdWRlcyh0YXJnZXQpKTtcbiAgICAvL1xuICAgIGNvbnN0IGV2ZW50ID0ge1xuICAgICAgc2VuZGVyOiB0aGlzLFxuICAgICAgY2FuY2VsZWQ6IGZhbHNlLFxuICAgICAgdGFyZ2V0RWxlbWVudDogdGFyZ2V0RWxlbWVudCxcbiAgICAgIGl0ZW1zOiBjbG9uZURlZXAodGhpcy5vcmdpbmFsSXRlbXMoKSksXG4gICAgfSBhcyBBWENvbnRleHRNZW51T3BlbmluZ0V2ZW50O1xuICAgIHRoaXMub25PcGVuaW5nLmVtaXQoZXZlbnQpO1xuICAgIHRoaXMuaXRlbXMuc2V0KGV2ZW50Lml0ZW1zKTtcbiAgICAvL1xuICAgIGlmICghZXZlbnQuY2FuY2VsZWQpIHtcbiAgICAgIHRoaXMuc2hvd0F0KHsgeDogZS5jbGllbnRYLCB5OiBlLmNsaWVudFkgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBpbnRlcm5hbFNob3dBdChwb2ludDogQVhQb2ludCkge1xuICAgIGNvbnN0IGVsZW1lbnRSZWYgPSB0aGlzLm5hdGl2ZUVsZW1lbnQ7XG4gICAgZWxlbWVudFJlZi5jbGFzc0xpc3QuYWRkKCdheC1zdGF0ZS1vcGVuJyk7XG4gICAgY29uc3QgaXRlbVJlY3QgPSBlbGVtZW50UmVmLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IHdpbmRvd1dpZHRoID0gd2luZG93LmlubmVyV2lkdGg7XG4gICAgY29uc3Qgd2luZG93SGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0O1xuXG4gICAgLy8gRGV0ZWN0IFJUTCAoUmlnaHQtVG8tTGVmdCkgbW9kZVxuICAgIGNvbnN0IGlzUnRsID0gQVhIdG1sVXRpbC5pc1J0bChlbGVtZW50UmVmKTtcblxuICAgIGxldCBsZWZ0OiBudW1iZXI7XG4gICAgaWYgKGlzUnRsKSB7XG4gICAgICBsZWZ0ID0gcG9pbnQueCAtIGl0ZW1SZWN0LndpZHRoO1xuICAgICAgaWYgKGxlZnQgPCAwKSB7XG4gICAgICAgIGxlZnQgPSBwb2ludC54O1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBsZWZ0ID0gcG9pbnQueDtcbiAgICAgIGlmIChsZWZ0ICsgaXRlbVJlY3Qud2lkdGggPiB3aW5kb3dXaWR0aCkge1xuICAgICAgICBsZWZ0ID0gcG9pbnQueCAtIGl0ZW1SZWN0LndpZHRoO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGJvdHRvbSA9IHBvaW50LnkgKyBpdGVtUmVjdC5oZWlnaHQ7XG4gICAgbGV0IHRvcDogbnVtYmVyO1xuXG4gICAgaWYgKGJvdHRvbSA+IHdpbmRvd0hlaWdodCkge1xuICAgICAgdG9wID0gcG9pbnQueSAtIGl0ZW1SZWN0LmhlaWdodDtcbiAgICAgIGlmICh0b3AgPCAwKSB7XG4gICAgICAgIHRvcCA9IDA7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRvcCA9IHBvaW50Lnk7XG4gICAgfVxuXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShlbGVtZW50UmVmLCAnbGVmdCcsIGAke2xlZnR9cHhgKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGVsZW1lbnRSZWYsICd0b3AnLCBgJHt0b3B9cHhgKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGVsZW1lbnRSZWYsICdwb3NpdGlvbicsICdmaXhlZCcpO1xuXG4gICAgdGhpcy5jcmVhdGVCYWNrZHJvcCgpO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBjcmVhdGVCYWNrZHJvcCgpIHtcbiAgICB0aGlzLmJhY2tkcm9wRWxlbWVudCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmJhY2tkcm9wRWxlbWVudCwgJ3Bvc2l0aW9uJywgJ2ZpeGVkJyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmJhY2tkcm9wRWxlbWVudCwgJ3RvcCcsICcwJyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmJhY2tkcm9wRWxlbWVudCwgJ2xlZnQnLCAnMCcpO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5iYWNrZHJvcEVsZW1lbnQsICd3aWR0aCcsICcxMDAlJyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmJhY2tkcm9wRWxlbWVudCwgJ2hlaWdodCcsICcxMDAlJyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmJhY2tkcm9wRWxlbWVudCwgJ3otaW5kZXgnLCAnOTk5Jyk7IC8vIEVuc3VyZSBpdCdzIGJlbG93IHRoZSBjb250ZXh0IG1lbnVcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuYmFja2Ryb3BFbGVtZW50LCAnYmFja2dyb3VuZCcsICd0cmFuc3BhcmVudCcpO1xuXG4gICAgY29uc3QgbDEgPSB0aGlzLnJlbmRlcmVyLmxpc3Rlbih0aGlzLmJhY2tkcm9wRWxlbWVudCwgJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgbDEoKTtcbiAgICB9KTtcblxuICAgIGNvbnN0IGwyID0gdGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy5iYWNrZHJvcEVsZW1lbnQsICd3aGVlbCcsICgpID0+IHtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgIGwyKCk7XG4gICAgfSk7XG5cbiAgICBjb25zdCBsMyA9IHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuYmFja2Ryb3BFbGVtZW50LCAnY29udGV4dG1lbnUnLCAoZTogTW91c2VFdmVudCkgPT4ge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgLy8gR2V0IGFsbCBlbGVtZW50cyB1bmRlciB0aGUgbW91c2UgcG9pbnRlclxuICAgICAgY29uc3QgZWxlbWVudHNVbmRlck1vdXNlID0gdGhpcy5kb2N1bWVudC5lbGVtZW50c0Zyb21Qb2ludChlLngsIGUueSkgYXMgSFRNTEVsZW1lbnRbXTtcbiAgICAgIGNvbnN0IHRhcmdldEVsZW1lbnRzID0gdGhpcy5nZXRUYXJnZXRFbGVtZW50cygpO1xuICAgICAgaWYgKHRhcmdldEVsZW1lbnRzLnNvbWUoKHRhcmdldCkgPT4gZWxlbWVudHNVbmRlck1vdXNlLmluY2x1ZGVzKHRhcmdldCkpKSB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgLy90aGlzLmludGVybmFsU2hvd0F0KHsgeDogZS54LCB5OiBlLnkgfSk7XG4gICAgICAgICAgdGhpcy5oYW5kbGVDb250ZXh0TWVudShlKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBsMygpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5kb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRoaXMuYmFja2Ryb3BFbGVtZW50KTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgcmVtb3ZlQmFja2Ryb3AoKSB7XG4gICAgaWYgKHRoaXMuYmFja2Ryb3BFbGVtZW50KSB7XG4gICAgICBpZiAodGhpcy5iYWNrZHJvcEVsZW1lbnQucGFyZW50Tm9kZSkge1xuICAgICAgICB0aGlzLmJhY2tkcm9wRWxlbWVudC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMuYmFja2Ryb3BFbGVtZW50KTtcbiAgICAgIH1cbiAgICAgIHRoaXMuYmFja2Ryb3BFbGVtZW50ID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICAvLyBIb3N0IExpc3RlbmVycyAoVUkgSW50ZXJhY3Rpb24gSGFuZGxpbmcpXG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnNjcm9sbCcsIFsnJGV2ZW50J10pXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnLCBbJyRldmVudCddKVxuICBwcml2YXRlIG9uV2luZG93RXZlbnQoKSB7XG4gICAgY29uc3Qgc2VuZGVyID0gdGhpcyBhcyBhbnkgYXMgQVhSb290TWVudTtcbiAgICB0aGlzLnNlcnZpY2UuY2xvc2VBbGxDb250ZXh0TWVudSQubmV4dCh7IHNlbmRlcjogc2VuZGVyIH0pOyAvLyBDbG9zZSBhbGwgbWVudXMgb24gc2Nyb2xsIG9yIHJlc2l6ZVxuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gIGdldCBfX2hvc3RDbGFzcygpOiBhbnkge1xuICAgIHJldHVybiBbXG4gICAgICAnYXgtbWVudS1jb250YWluZXInLFxuICAgICAgYGF4LW9yaWVudGF0aW9uLSR7dGhpcy5vcmllbnRhdGlvbigpfWAsXG4gICAgICAnYXgtYWN0aW9uLWxpc3QnLFxuICAgICAgJ2F4LWFjdGlvbi1saXN0LXZlcnRpY2FsJyxcbiAgICBdO1xuICB9XG59XG4iLCI8bmctY29udGVudCBzZWxlY3Q9XCJheC1tZW51LWl0ZW0sYXgtZGl2aWRlcixheC10aXRsZSxuZy1jb250YWluZXJcIj48L25nLWNvbnRlbnQ+XG5cbjxuZy1jb250YWluZXJcbiAgKm5nRm9yPVwibGV0IG5vZGUgb2YgaXRlbXMoKVwiXG4gIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIlJlY3Vyc2lvblwiXG4gIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogbm9kZSB9XCJcbj5cbjwvbmctY29udGFpbmVyPlxuPG5nLXRlbXBsYXRlICNSZWN1cnNpb24gbGV0LWl0ZW0+XG4gIEBpZiAoaXRlbS5ncm91cD8udGl0bGUpIHtcbiAgICA8YXgtdGl0bGU+e3sgaXRlbS5ncm91cD8udGl0bGUgfX08L2F4LXRpdGxlPlxuICB9XG4gIDxheC1tZW51LWl0ZW0gW25hbWVdPVwiaXRlbS5uYW1lXCIgW2RhdGFdPVwiaXRlbS5kYXRhXCIgW2Rpc2FibGVkXT1cIml0ZW0uZGlzYWJsZWRcIiBbY29sb3JdPVwiaXRlbS5jb2xvclwiPlxuICAgIDxheC1wcmVmaXg+XG4gICAgICBAaWYgKGl0ZW0uaWNvbikge1xuICAgICAgICA8YXgtaWNvbiBbaWNvbl09XCJpdGVtLmljb25cIj4gPC9heC1pY29uPlxuICAgICAgfVxuICAgIDwvYXgtcHJlZml4PlxuICAgIEBpZiAoaXRlbS50ZXh0KSB7XG4gICAgICA8YXgtdGV4dD57eyBpdGVtLnRleHQgfX08L2F4LXRleHQ+XG4gICAgfVxuICAgIEBpZiAoaXRlbS5zdWZmaXgpIHtcbiAgICAgIDxheC1zdWZmaXg+XG4gICAgICAgIDxheC10ZXh0Pnt7IGl0ZW0uc3VmZml4LnRleHQgfX08L2F4LXRleHQ+XG4gICAgICA8L2F4LXN1ZmZpeD5cbiAgICB9XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgKm5nRm9yPVwibGV0IGNoaWxkIG9mIGl0ZW0uaXRlbXNcIlxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiUmVjdXJzaW9uXCJcbiAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogY2hpbGQgfVwiXG4gICAgPjwvbmctY29udGFpbmVyPlxuICA8L2F4LW1lbnUtaXRlbT5cbiAgQGlmIChpdGVtLmJyZWFrKSB7XG4gICAgPGF4LWRpdmlkZXI+PC9heC1kaXZpZGVyPlxuICB9XG48L25nLXRlbXBsYXRlPlxuIl19
|
@@ -1,3 +1,4 @@
|
|
1
1
|
export * from './lib/password-box.component';
|
2
2
|
export * from './lib/password-box.module';
|
3
|
-
|
3
|
+
export * from './lib/password-strength-validation/password-strength-validation.component';
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvcGFzc3dvcmQtYm94L3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYywyRUFBMkUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL3Bhc3N3b3JkLWJveC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcGFzc3dvcmQtYm94Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9wYXNzd29yZC1zdHJlbmd0aC12YWxpZGF0aW9uL3Bhc3N3b3JkLXN0cmVuZ3RoLXZhbGlkYXRpb24uY29tcG9uZW50JztcbiJdfQ==
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { AXClearableComponent, AXComponent, AXFocusableComponent, AXValuableComponent, MXInputBaseValueComponent, MXLookComponent, } from '@acorex/components/common';
|
2
|
-
import { ChangeDetectionStrategy, Component, ElementRef, Input, ViewChild, ViewEncapsulation, forwardRef } from '@angular/core';
|
2
|
+
import { ChangeDetectionStrategy, Component, ElementRef, Input, ViewChild, ViewEncapsulation, forwardRef, input, } from '@angular/core';
|
3
3
|
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
4
4
|
import { classes } from 'polytype';
|
5
5
|
import * as i0 from "@angular/core";
|
@@ -17,21 +17,29 @@ export class AXPasswordBoxComponent extends classes((MXInputBaseValueComponent),
|
|
17
17
|
/** @ignore */
|
18
18
|
this._icon = 'ax-icon-visibility';
|
19
19
|
/**
|
20
|
-
|
21
|
-
|
20
|
+
* Sets the autocomplete behavior for the input field.
|
21
|
+
*/
|
22
22
|
this.autoComplete = 'one-time-code';
|
23
23
|
/**
|
24
24
|
* A flag for showing or hiding password button.
|
25
25
|
*/
|
26
26
|
this.showToggleButton = true;
|
27
|
+
/**
|
28
|
+
* Hint status.
|
29
|
+
*/
|
30
|
+
this.showHint = input(false);
|
31
|
+
/**
|
32
|
+
* Progress status.
|
33
|
+
*/
|
34
|
+
this.showProgress = input(false);
|
27
35
|
}
|
28
36
|
/** @ignore */
|
29
37
|
_handleModelChange(value) {
|
30
38
|
this.commitValue(value, true);
|
31
39
|
}
|
32
40
|
/**
|
33
|
-
|
34
|
-
|
41
|
+
* Toggles the input type between 'password' and 'text' to show or hide the password.
|
42
|
+
*/
|
35
43
|
toggleType() {
|
36
44
|
if (this._type === 'password') {
|
37
45
|
this._type = 'text';
|
@@ -43,7 +51,7 @@ export class AXPasswordBoxComponent extends classes((MXInputBaseValueComponent),
|
|
43
51
|
}
|
44
52
|
}
|
45
53
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPasswordBoxComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
46
|
-
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:
|
54
|
+
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: [
|
47
55
|
{ provide: AXComponent, useExisting: AXPasswordBoxComponent },
|
48
56
|
{ provide: AXFocusableComponent, useExisting: AXPasswordBoxComponent },
|
49
57
|
{ provide: AXClearableComponent, useExisting: AXPasswordBoxComponent },
|
@@ -53,7 +61,7 @@ export class AXPasswordBoxComponent extends classes((MXInputBaseValueComponent),
|
|
53
61
|
useExisting: forwardRef(() => AXPasswordBoxComponent),
|
54
62
|
multi: true,
|
55
63
|
},
|
56
|
-
], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"ax-editor-container ax-look-{{look}} {{classNames}}\" [class.ax-state-disabled]=\"disabled\">\n
|
64
|
+
], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<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", styles: [".ax-strength-validation-container{margin-top:.25rem}\n"], dependencies: [{ kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
57
65
|
}
|
58
66
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPasswordBoxComponent, decorators: [{
|
59
67
|
type: Component,
|
@@ -78,7 +86,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
78
86
|
useExisting: forwardRef(() => AXPasswordBoxComponent),
|
79
87
|
multi: true,
|
80
88
|
},
|
81
|
-
], template: "<div class=\"ax-editor-container ax-look-{{look}} {{classNames}}\" [class.ax-state-disabled]=\"disabled\">\n
|
89
|
+
], template: "<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", styles: [".ax-strength-validation-container{margin-top:.25rem}\n"] }]
|
82
90
|
}], propDecorators: { input: [{
|
83
91
|
type: ViewChild,
|
84
92
|
args: ['input']
|
@@ -90,4 +98,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
90
98
|
type: Input,
|
91
99
|
args: ['class']
|
92
100
|
}] } });
|
93
|
-
//# sourceMappingURL=data:application/json;base64,
|
101
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFzc3dvcmQtYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9wYXNzd29yZC1ib3gvc3JjL2xpYi9wYXNzd29yZC1ib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3Bhc3N3b3JkLWJveC9zcmMvbGliL3Bhc3N3b3JkLWJveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLFdBQVcsRUFDWCxvQkFBb0IsRUFDcEIsbUJBQW1CLEVBQ25CLHlCQUF5QixFQUN6QixlQUFlLEdBQ2hCLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLEtBQUssRUFDTCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLFVBQVUsRUFDVixLQUFLLEdBQ04sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFVBQVUsQ0FBQzs7O0FBRW5DOzs7O0dBSUc7QUFxQ0gsTUFBTSxPQUFPLHNCQUF1QixTQUFRLE9BQU8sQ0FBQyxDQUFBLHlCQUFpQyxDQUFBLEVBQUUsZUFBZSxDQUFDO0lBcEN2Rzs7UUF3Q0UsY0FBYztRQUNKLFVBQUssR0FBd0IsVUFBVSxDQUFDO1FBRWxELGNBQWM7UUFDSixVQUFLLEdBQW9ELG9CQUFvQixDQUFDO1FBRXhGOztXQUVHO1FBRUgsaUJBQVksR0FBa0UsZUFBZSxDQUFDO1FBRTlGOztXQUVHO1FBRUgscUJBQWdCLEdBQUcsSUFBSSxDQUFDO1FBUXhCOztXQUVHO1FBQ0gsYUFBUSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV4Qjs7V0FFRztRQUNILGlCQUFZLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBd0I3QjtJQXRCQyxjQUFjO0lBQ2Qsa0JBQWtCLENBQUMsS0FBYTtRQUM5QixJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxVQUFVO1FBQ1IsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLFVBQVUsRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxLQUFLLEdBQUcsd0JBQXdCLENBQUM7UUFDeEMsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsS0FBSyxHQUFHLFVBQVUsQ0FBQztZQUN4QixJQUFJLENBQUMsS0FBSyxHQUFHLG9CQUFvQixDQUFDO1FBQ3BDLENBQUM7SUFDSCxDQUFDOzhHQXREVSxzQkFBc0I7a0dBQXRCLHNCQUFzQixxbUVBWnRCO1lBQ1QsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxzQkFBc0IsRUFBRTtZQUM3RCxFQUFFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxXQUFXLEVBQUUsc0JBQXNCLEVBQUU7WUFDdEUsRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsV0FBVyxFQUFFLHNCQUFzQixFQUFFO1lBQ3RFLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFdBQVcsRUFBRSxzQkFBc0IsRUFBRTtZQUNyRTtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHNCQUFzQixDQUFDO2dCQUNyRCxLQUFLLEVBQUUsSUFBSTthQUNaO1NBQ0YsaUpDNURILGk4Q0F1Q0E7OzJGRHVCYSxzQkFBc0I7a0JBcENsQyxTQUFTOytCQUNFLGlCQUFpQixVQUVuQixDQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLFdBTTFGO3dCQUNQLGFBQWE7d0JBQ2IsYUFBYTt3QkFDYixnQkFBZ0I7d0JBQ2hCLFFBQVE7d0JBQ1IsU0FBUzt3QkFDVCxnQkFBZ0I7d0JBQ2hCLGdCQUFnQjt3QkFDaEIsV0FBVzt3QkFDWCxTQUFTO3dCQUNULFlBQVk7cUJBQ2IsaUJBQ2MsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxhQUVwQzt3QkFDVCxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyx3QkFBd0IsRUFBRTt3QkFDN0QsRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsV0FBVyx3QkFBd0IsRUFBRTt3QkFDdEUsRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsV0FBVyx3QkFBd0IsRUFBRTt3QkFDdEUsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyx3QkFBd0IsRUFBRTt3QkFDckU7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsdUJBQXVCLENBQUM7NEJBQ3JELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGOzhCQUltQixLQUFLO3NCQUF4QixTQUFTO3VCQUFDLE9BQU87Z0JBWWxCLFlBQVk7c0JBRFgsS0FBSztnQkFPTixnQkFBZ0I7c0JBRGYsS0FBSztnQkFPTixVQUFVO3NCQURULEtBQUs7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFYQ2xlYXJhYmxlQ29tcG9uZW50LFxuICBBWENvbXBvbmVudCxcbiAgQVhGb2N1c2FibGVDb21wb25lbnQsXG4gIEFYVmFsdWFibGVDb21wb25lbnQsXG4gIE1YSW5wdXRCYXNlVmFsdWVDb21wb25lbnQsXG4gIE1YTG9va0NvbXBvbmVudCxcbn0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBJbnB1dCxcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgZm9yd2FyZFJlZixcbiAgaW5wdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBjbGFzc2VzIH0gZnJvbSAncG9seXR5cGUnO1xuXG4vKipcbiAqIFRoZSBUZXh0Ym94IGlzIGEgY29tcG9uZW50IHdoaWNoIGRldGVjdHMgdXNlciBpbnRlcmFjdGlvbiBhbmQgdHJpZ2dlcnMgYSBjb3JyZXNwb25kaW5nIGV2ZW50XG4gKlxuICogQGNhdGVnb3J5IENvbXBvbmVudHNcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtcGFzc3dvcmQtYm94JyxcbiAgdGVtcGxhdGVVcmw6ICdwYXNzd29yZC1ib3guY29tcG9uZW50Lmh0bWwnLFxuICBpbnB1dHM6IFsncmVhZG9ubHknLCAnZGlzYWJsZWQnLCAndGFiSW5kZXgnLCAncGxhY2Vob2xkZXInLCAndmFsdWUnLCAnc3RhdGUnLCAnbmFtZScsICdpZCcsICdsb29rJ10sXG4gIHN0eWxlczogYFxuICAgIC5heC1zdHJlbmd0aC12YWxpZGF0aW9uLWNvbnRhaW5lciB7XG4gICAgICBtYXJnaW4tdG9wOiAwLjI1cmVtO1xuICAgIH1cbiAgYCxcbiAgb3V0cHV0czogW1xuICAgICd2YWx1ZUNoYW5nZScsXG4gICAgJ3N0YXRlQ2hhbmdlJyxcbiAgICAnb25WYWx1ZUNoYW5nZWQnLFxuICAgICdvbkJsdXInLFxuICAgICdvbkZvY3VzJyxcbiAgICAncmVhZG9ubHlDaGFuZ2UnLFxuICAgICdkaXNhYmxlZENoYW5nZScsXG4gICAgJ29uS2V5RG93bicsXG4gICAgJ29uS2V5VXAnLFxuICAgICdvbktleVByZXNzJyxcbiAgXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG5cbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBBWENvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYUGFzc3dvcmRCb3hDb21wb25lbnQgfSxcbiAgICB7IHByb3ZpZGU6IEFYRm9jdXNhYmxlQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhQYXNzd29yZEJveENvbXBvbmVudCB9LFxuICAgIHsgcHJvdmlkZTogQVhDbGVhcmFibGVDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWFBhc3N3b3JkQm94Q29tcG9uZW50IH0sXG4gICAgeyBwcm92aWRlOiBBWFZhbHVhYmxlQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhQYXNzd29yZEJveENvbXBvbmVudCB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQVhQYXNzd29yZEJveENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBhc3N3b3JkQm94Q29tcG9uZW50IGV4dGVuZHMgY2xhc3NlcyhNWElucHV0QmFzZVZhbHVlQ29tcG9uZW50PHN0cmluZz4sIE1YTG9va0NvbXBvbmVudCkge1xuICAvKiogQGlnbm9yZSAqL1xuICBAVmlld0NoaWxkKCdpbnB1dCcpIGlucHV0OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBfdHlwZTogJ3Bhc3N3b3JkJyB8ICd0ZXh0JyA9ICdwYXNzd29yZCc7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIF9pY29uOiAnYXgtaWNvbi12aXNpYmlsaXR5JyB8ICdheC1pY29uLXZpc2liaWxpdHktb2ZmJyA9ICdheC1pY29uLXZpc2liaWxpdHknO1xuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBhdXRvY29tcGxldGUgYmVoYXZpb3IgZm9yIHRoZSBpbnB1dCBmaWVsZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIGF1dG9Db21wbGV0ZTogJ2N1cnJlbnQtcGFzc3dvcmQnIHwgJ25ldy1wYXNzd29yZCcgfCAnb25lLXRpbWUtY29kZScgfCAnb2ZmJyA9ICdvbmUtdGltZS1jb2RlJztcblxuICAvKipcbiAgICogIEEgZmxhZyBmb3Igc2hvd2luZyBvciBoaWRpbmcgcGFzc3dvcmQgYnV0dG9uLlxuICAgKi9cbiAgQElucHV0KClcbiAgc2hvd1RvZ2dsZUJ1dHRvbiA9IHRydWU7XG5cbiAgLyoqXG4gICAqIERlZmluZXMgY3VzdG9tIENTUyBjbGFzc2VzIHRvIGFwcGx5IHRvIHRoZSBjb21wb25lbnQuXG4gICAqL1xuICBASW5wdXQoJ2NsYXNzJylcbiAgY2xhc3NOYW1lczogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBIaW50IHN0YXR1cy5cbiAgICovXG4gIHNob3dIaW50ID0gaW5wdXQoZmFsc2UpO1xuXG4gIC8qKlxuICAgKiBQcm9ncmVzcyBzdGF0dXMuXG4gICAqL1xuICBzaG93UHJvZ3Jlc3MgPSBpbnB1dChmYWxzZSk7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgX2hhbmRsZU1vZGVsQ2hhbmdlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLmNvbW1pdFZhbHVlKHZhbHVlLCB0cnVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUb2dnbGVzIHRoZSBpbnB1dCB0eXBlIGJldHdlZW4gJ3Bhc3N3b3JkJyBhbmQgJ3RleHQnIHRvIHNob3cgb3IgaGlkZSB0aGUgcGFzc3dvcmQuXG4gICAqL1xuICB0b2dnbGVUeXBlKCkge1xuICAgIGlmICh0aGlzLl90eXBlID09PSAncGFzc3dvcmQnKSB7XG4gICAgICB0aGlzLl90eXBlID0gJ3RleHQnO1xuICAgICAgdGhpcy5faWNvbiA9ICdheC1pY29uLXZpc2liaWxpdHktb2ZmJztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fdHlwZSA9ICdwYXNzd29yZCc7XG4gICAgICB0aGlzLl9pY29uID0gJ2F4LWljb24tdmlzaWJpbGl0eSc7XG4gICAgfVxuICB9XG5cbiAgLy8gQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gIC8vIGdldCBfX2hvc3RDbGFzcygpOiBzdHJpbmdbXSB7XG4gIC8vICAgcmV0dXJuIFsnYXgtZWRpdG9yLWNvbnRhaW5lcicsIGBheC1sb29rLSR7dGhpcy5sb29rfWAsIGAke3RoaXMuZGlzYWJsZWQgPyAnYXgtc3RhdGUtZGlzYWJsZWQnIDogJyd9YF07XG4gIC8vIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJheC1lZGl0b3ItY29udGFpbmVyIGF4LWxvb2ste3sgbG9vayB9fSB7eyBjbGFzc05hbWVzIH19XCIgW2NsYXNzLmF4LXN0YXRlLWRpc2FibGVkXT1cImRpc2FibGVkXCI+XG4gIDxuZy1jb250ZW50IHNlbGVjdD1cImF4LXByZWZpeFwiPiA8L25nLWNvbnRlbnQ+XG4gIDxpbnB1dFxuICAgICNpbnB1dFxuICAgIGNsYXNzPVwiYXgtaW5wdXRcIlxuICAgIFtuYW1lXT1cIm5hbWVcIlxuICAgIFt0eXBlXT1cIl90eXBlXCJcbiAgICBbaWRdPVwiaWRcIlxuICAgIFthdHRyLnBsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICBbY2xhc3MuYXgtc3RhdGUtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIFtjbGFzcy5heC1zdGF0ZS1yZWFkb25seV09XCJyZWFkb25seVwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgIFt0YWJpbmRleF09XCJ0YWJJbmRleFwiXG4gICAgW25nTW9kZWxdPVwidmFsdWVcIlxuICAgIFthdHRyLmF1dG9jb21wbGV0ZV09XCJhdXRvQ29tcGxldGVcIlxuICAgIChuZ01vZGVsQ2hhbmdlKT1cIl9oYW5kbGVNb2RlbENoYW5nZSgkZXZlbnQpXCJcbiAgICAoa2V5ZG93bik9XCJlbWl0T25LZXlkb3duRXZlbnQoJGV2ZW50KVwiXG4gICAgKGtleXVwKT1cImVtaXRPbktleXVwRXZlbnQoJGV2ZW50KVwiXG4gICAgKGtleXByZXNzKT1cImVtaXRPbktleXByZXNzRXZlbnQoJGV2ZW50KVwiXG4gICAgKGZvY3VzKT1cImVtaXRPbkZvY3VzRXZlbnQoJGV2ZW50KVwiXG4gICAgKGJsdXIpPVwiZW1pdE9uQmx1ckV2ZW50KCRldmVudClcIlxuICAvPlxuICBAaWYgKHZhbHVlICYmICFkaXNhYmxlZCAmJiAhcmVhZG9ubHkpIHtcbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJheC1jbGVhci1idXR0b25cIj48L25nLWNvbnRlbnQ+XG4gIH1cbiAgQGlmIChzaG93VG9nZ2xlQnV0dG9uKSB7XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJheC1nZW5lcmFsLWJ1dHRvbiBheC1idXR0b24taWNvblwiIChjbGljayk9XCJ0b2dnbGVUeXBlKClcIiBbdGFiSW5kZXhdPVwiLTFcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwiYXgtaWNvbiB7eyBfaWNvbiB9fVwiPjwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgfVxuICA8bmctY29udGVudCBzZWxlY3Q9XCJheC1zdWZmaXhcIj4gPC9uZy1jb250ZW50PlxuICA8bmctY29udGVudCBzZWxlY3Q9XCJheC12YWxpZGF0aW9uLXJ1bGVcIj4gPC9uZy1jb250ZW50PlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwiYXgtZXJyb3ItY29udGFpbmVyXCI+PC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJheC1zdHJlbmd0aC12YWxpZGF0aW9uLWNvbnRhaW5lclwiPlxuICA8bmctY29udGVudCBzZWxlY3Q9XCJheC1wYXNzd29yZC1zdHJlbmd0aC12YWxpZGF0aW9uXCIgW3Nob3dIaW50XT1cInNob3dTdHJlbmd0aCgpXCI+PC9uZy1jb250ZW50PlxuPC9kaXY+XG4iXX0=
|
@@ -1,15 +1,33 @@
|
|
1
|
+
import { AXBadgeModule } from '@acorex/components/badge';
|
1
2
|
import { AXButtonModule } from '@acorex/components/button';
|
2
3
|
import { AXDecoratorModule } from '@acorex/components/decorators';
|
4
|
+
import { AXProgressBarModule } from '@acorex/components/progress-bar';
|
5
|
+
import { AXTranslationModule } from '@acorex/core/translation';
|
3
6
|
import { CommonModule } from '@angular/common';
|
4
7
|
import { NgModule } from '@angular/core';
|
5
8
|
import { FormsModule } from '@angular/forms';
|
6
9
|
import { AXPasswordBoxComponent } from './password-box.component';
|
10
|
+
import { AXPasswordStrengthValidationComponent } from './password-strength-validation/password-strength-validation.component';
|
7
11
|
import * as i0 from "@angular/core";
|
8
|
-
const COMPONENT = [AXPasswordBoxComponent];
|
9
|
-
const MODULES = [
|
12
|
+
const COMPONENT = [AXPasswordBoxComponent, AXPasswordStrengthValidationComponent];
|
13
|
+
const MODULES = [
|
14
|
+
CommonModule,
|
15
|
+
FormsModule,
|
16
|
+
AXButtonModule,
|
17
|
+
AXDecoratorModule,
|
18
|
+
AXProgressBarModule,
|
19
|
+
AXBadgeModule,
|
20
|
+
AXTranslationModule,
|
21
|
+
];
|
10
22
|
export class AXPasswordBoxModule {
|
11
23
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPasswordBoxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
12
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.0", ngImport: i0, type: AXPasswordBoxModule, declarations: [AXPasswordBoxComponent], imports: [CommonModule,
|
24
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.0", ngImport: i0, type: AXPasswordBoxModule, declarations: [AXPasswordBoxComponent, AXPasswordStrengthValidationComponent], imports: [CommonModule,
|
25
|
+
FormsModule,
|
26
|
+
AXButtonModule,
|
27
|
+
AXDecoratorModule,
|
28
|
+
AXProgressBarModule,
|
29
|
+
AXBadgeModule,
|
30
|
+
AXTranslationModule], exports: [AXPasswordBoxComponent, AXPasswordStrengthValidationComponent] }); }
|
13
31
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPasswordBoxModule, imports: [MODULES] }); }
|
14
32
|
}
|
15
33
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPasswordBoxModule, decorators: [{
|
@@ -21,4 +39,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
21
39
|
providers: [],
|
22
40
|
}]
|
23
41
|
}] });
|
24
|
-
//# sourceMappingURL=data:application/json;base64,
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFzc3dvcmQtYm94Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9wYXNzd29yZC1ib3gvc3JjL2xpYi9wYXNzd29yZC1ib3gubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxxQ0FBcUMsRUFBRSxNQUFNLHVFQUF1RSxDQUFDOztBQUU5SCxNQUFNLFNBQVMsR0FBRyxDQUFDLHNCQUFzQixFQUFFLHFDQUFxQyxDQUFDLENBQUM7QUFDbEYsTUFBTSxPQUFPLEdBQUc7SUFDZCxZQUFZO0lBQ1osV0FBVztJQUNYLGNBQWM7SUFDZCxpQkFBaUI7SUFDakIsbUJBQW1CO0lBQ25CLGFBQWE7SUFDYixtQkFBbUI7Q0FDcEIsQ0FBQztBQVFGLE1BQU0sT0FBTyxtQkFBbUI7OEdBQW5CLG1CQUFtQjsrR0FBbkIsbUJBQW1CLGlCQWpCYixzQkFBc0IsRUFBRSxxQ0FBcUMsYUFFOUUsWUFBWTtZQUNaLFdBQVc7WUFDWCxjQUFjO1lBQ2QsaUJBQWlCO1lBQ2pCLG1CQUFtQjtZQUNuQixhQUFhO1lBQ2IsbUJBQW1CLGFBUkYsc0JBQXNCLEVBQUUscUNBQXFDOytHQWlCbkUsbUJBQW1CLFlBSmpCLE9BQU87OzJGQUlULG1CQUFtQjtrQkFOL0IsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxHQUFHLFNBQVMsQ0FBQztvQkFDNUIsT0FBTyxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUM7b0JBQ3JCLE9BQU8sRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDO29CQUN2QixTQUFTLEVBQUUsRUFBRTtpQkFDZCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQmFkZ2VNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYmFkZ2UnO1xuaW1wb3J0IHsgQVhCdXR0b25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IEFYRGVjb3JhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhQcm9ncmVzc0Jhck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9wcm9ncmVzcy1iYXInO1xuaW1wb3J0IHsgQVhUcmFuc2xhdGlvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29yZS90cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQVhQYXNzd29yZEJveENvbXBvbmVudCB9IGZyb20gJy4vcGFzc3dvcmQtYm94LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWFBhc3N3b3JkU3RyZW5ndGhWYWxpZGF0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9wYXNzd29yZC1zdHJlbmd0aC12YWxpZGF0aW9uL3Bhc3N3b3JkLXN0cmVuZ3RoLXZhbGlkYXRpb24uY29tcG9uZW50JztcblxuY29uc3QgQ09NUE9ORU5UID0gW0FYUGFzc3dvcmRCb3hDb21wb25lbnQsIEFYUGFzc3dvcmRTdHJlbmd0aFZhbGlkYXRpb25Db21wb25lbnRdO1xuY29uc3QgTU9EVUxFUyA9IFtcbiAgQ29tbW9uTW9kdWxlLFxuICBGb3Jtc01vZHVsZSxcbiAgQVhCdXR0b25Nb2R1bGUsXG4gIEFYRGVjb3JhdG9yTW9kdWxlLFxuICBBWFByb2dyZXNzQmFyTW9kdWxlLFxuICBBWEJhZGdlTW9kdWxlLFxuICBBWFRyYW5zbGF0aW9uTW9kdWxlLFxuXTtcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbLi4uQ09NUE9ORU5UXSxcbiAgaW1wb3J0czogWy4uLk1PRFVMRVNdLFxuICBleHBvcnRzOiBbLi4uQ09NUE9ORU5UXSxcbiAgcHJvdmlkZXJzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhQYXNzd29yZEJveE1vZHVsZSB7fVxuIl19
|
@@ -0,0 +1,63 @@
|
|
1
|
+
import { afterNextRender, ChangeDetectionStrategy, Component, inject, signal, ViewEncapsulation, } from '@angular/core';
|
2
|
+
import { AXPasswordBoxComponent } from '../password-box.component';
|
3
|
+
import * as i0 from "@angular/core";
|
4
|
+
import * as i1 from "@acorex/components/progress-bar";
|
5
|
+
import * as i2 from "@acorex/components/badge";
|
6
|
+
import * as i3 from "@angular/common";
|
7
|
+
import * as i4 from "@acorex/core/translation";
|
8
|
+
export class AXPasswordStrengthValidationComponent {
|
9
|
+
constructor() {
|
10
|
+
this.passwordStrength = signal(0);
|
11
|
+
this.updatedPassword = signal('');
|
12
|
+
this.strengthLabel = signal('fragile');
|
13
|
+
this.strengthLabelColor = signal('danger');
|
14
|
+
this.parent = inject(AXPasswordBoxComponent);
|
15
|
+
this.isLenghtgraterThan8 = signal({ regex: /.{8,}/, state: false });
|
16
|
+
this.isUseUpperCase = signal({ regex: /[A-Z]/, state: false });
|
17
|
+
this.isUseLowerCase = signal({ regex: /[a-z]/, state: false });
|
18
|
+
this.isUseNumber = signal({ regex: /\d/, state: false });
|
19
|
+
this.isUseSpecialCharacter = signal({
|
20
|
+
regex: /[!@#$%^&*(),.?":{}|<>]/,
|
21
|
+
state: false,
|
22
|
+
});
|
23
|
+
this.#onComponentInit = afterNextRender(() => {
|
24
|
+
this.parent.onValueChanged.subscribe((v) => {
|
25
|
+
if (v.value) {
|
26
|
+
this.updatedPassword.set(v.value);
|
27
|
+
}
|
28
|
+
else {
|
29
|
+
this.updatedPassword.set('');
|
30
|
+
}
|
31
|
+
this.checkPasswordStrength();
|
32
|
+
});
|
33
|
+
});
|
34
|
+
}
|
35
|
+
#onComponentInit;
|
36
|
+
checkRegexHandler(inter) {
|
37
|
+
if (inter().regex.test(this.updatedPassword())) {
|
38
|
+
inter.update((prev) => ({ ...prev, state: true }));
|
39
|
+
return true;
|
40
|
+
}
|
41
|
+
inter.update((prev) => ({ ...prev, state: false }));
|
42
|
+
return false;
|
43
|
+
}
|
44
|
+
checkPasswordStrength() {
|
45
|
+
let strength = 0;
|
46
|
+
this.checkRegexHandler(this.isLenghtgraterThan8) && strength++;
|
47
|
+
this.checkRegexHandler(this.isUseUpperCase) && strength++;
|
48
|
+
this.checkRegexHandler(this.isUseLowerCase) && strength++;
|
49
|
+
this.checkRegexHandler(this.isUseNumber) && strength++;
|
50
|
+
this.checkRegexHandler(this.isUseSpecialCharacter) && strength++;
|
51
|
+
const strengthLabels = ['fragile', 'fragile', 'weak', 'good', 'strong', 'unbreakable'];
|
52
|
+
this.strengthLabel.set(strengthLabels[strength]);
|
53
|
+
this.strengthLabelColor.set(strength <= 2 ? 'danger' : strength <= 3 ? 'warning' : 'success');
|
54
|
+
this.passwordStrength.set((strength * 100) / 5);
|
55
|
+
}
|
56
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPasswordStrengthValidationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
57
|
+
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.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 }); }
|
58
|
+
}
|
59
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPasswordStrengthValidationComponent, decorators: [{
|
60
|
+
type: Component,
|
61
|
+
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"] }]
|
62
|
+
}] });
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFzc3dvcmQtc3RyZW5ndGgtdmFsaWRhdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvcGFzc3dvcmQtYm94L3NyYy9saWIvcGFzc3dvcmQtc3RyZW5ndGgtdmFsaWRhdGlvbi9wYXNzd29yZC1zdHJlbmd0aC12YWxpZGF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9wYXNzd29yZC1ib3gvc3JjL2xpYi9wYXNzd29yZC1zdHJlbmd0aC12YWxpZGF0aW9uL3Bhc3N3b3JkLXN0cmVuZ3RoLXZhbGlkYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGVBQWUsRUFDZix1QkFBdUIsRUFDdkIsU0FBUyxFQUNULE1BQU0sRUFDTixNQUFNLEVBQ04saUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7QUFTbkUsTUFBTSxPQUFPLHFDQUFxQztJQVBsRDtRQVFZLHFCQUFnQixHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3QixvQkFBZSxHQUFHLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM3QixrQkFBYSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNsQyx1QkFBa0IsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdEMsV0FBTSxHQUFHLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBRXhDLHdCQUFtQixHQUFHLE1BQU0sQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDL0QsbUJBQWMsR0FBRyxNQUFNLENBQUMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFF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QUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDbEQsQ0FBQzs4R0FqRFUscUNBQXFDO2tHQUFyQyxxQ0FBcUMsdUVDakJsRCxzMkRBZ0RBOzsyRkQvQmEscUNBQXFDO2tCQVBqRCxTQUFTOytCQUNFLGlDQUFpQyxtQkFFMUIsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGFmdGVyTmV4dFJlbmRlcixcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgaW5qZWN0LFxuICBzaWduYWwsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUGFzc3dvcmRCb3hDb21wb25lbnQgfSBmcm9tICcuLi9wYXNzd29yZC1ib3guY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtcGFzc3dvcmQtc3RyZW5ndGgtdmFsaWRhdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9wYXNzd29yZC1zdHJlbmd0aC12YWxpZGF0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHN0eWxlVXJsOiAnLi9wYXNzd29yZC1zdHJlbmd0aC12YWxpZGF0aW9uLmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgQVhQYXNzd29yZFN0cmVuZ3RoVmFsaWRhdGlvbkNvbXBvbmVudCB7XG4gIHByb3RlY3RlZCBwYXNzd29yZFN0cmVuZ3RoID0gc2lnbmFsKDApO1xuICBwcm90ZWN0ZWQgdXBkYXRlZFBhc3N3b3JkID0gc2lnbmFsKCcnKTtcbiAgcHJvdGVjdGVkIHN0cmVuZ3RoTGFiZWwgPSBzaWduYWwoJ2ZyYWdpbGUnKTtcbiAgcHJvdGVjdGVkIHN0cmVuZ3RoTGFiZWxDb2xvciA9IHNpZ25hbCgnZGFuZ2VyJyk7XG4gIHByb3RlY3RlZCBwYXJlbnQgPSBpbmplY3QoQVhQYXNzd29yZEJveENvbXBvbmVudCk7XG5cbiAgcHJvdGVjdGVkIGlzTGVuZ2h0Z3JhdGVyVGhhbjggPSBzaWduYWwoeyByZWdleDogLy57OCx9Lywgc3RhdGU6IGZhbHNlIH0pO1xuICBwcm90ZWN0ZWQgaXNVc2VVcHBlckNhc2UgPSBzaWduYWwoeyByZWdleDogL1tBLVpdLywgc3RhdGU6IGZhbHNlIH0pO1xuICBwcm90ZWN0ZWQgaXNVc2VMb3dlckNhc2UgPSBzaWduYWwoeyByZWdleDogL1thLXpdLywgc3RhdGU6IGZhbHNlIH0pO1xuICBwcm90ZWN0ZWQgaXNVc2VOdW1iZXIgPSBzaWduYWwoeyByZWdleDogL1xcZC8sIHN0YXRlOiBmYWxzZSB9KTtcbiAgcHJvdGVjdGVkIGlzVXNlU3BlY2lhbENoYXJhY3RlciA9IHNpZ25hbCh7XG4gICAgcmVnZXg6IC9bIUAjJCVeJiooKSwuP1wiOnt9fDw+XS8sXG4gICAgc3RhdGU6IGZhbHNlLFxuICB9KTtcblxuICAjb25Db21wb25lbnRJbml0ID0gYWZ0ZXJOZXh0UmVuZGVyKCgpID0+IHtcbiAgICB0aGlzLnBhcmVudC5vblZhbHVlQ2hhbmdlZC5zdWJzY3JpYmUoKHYpID0+IHtcbiAgICAgIGlmICh2LnZhbHVlKSB7XG4gICAgICAgIHRoaXMudXBkYXRlZFBhc3N3b3JkLnNldCh2LnZhbHVlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMudXBkYXRlZFBhc3N3b3JkLnNldCgnJyk7XG4gICAgICB9XG4gICAgICB0aGlzLmNoZWNrUGFzc3dvcmRTdHJlbmd0aCgpO1xuICAgIH0pO1xuICB9KTtcblxuICBwcml2YXRlIGNoZWNrUmVnZXhIYW5kbGVyKGludGVyKSB7XG4gICAgaWYgKGludGVyKCkucmVnZXgudGVzdCh0aGlzLnVwZGF0ZWRQYXNzd29yZCgpKSkge1xuICAgICAgaW50ZXIudXBkYXRlKChwcmV2KSA9PiAoeyAuLi5wcmV2LCBzdGF0ZTogdHJ1ZSB9KSk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaW50ZXIudXBkYXRlKChwcmV2KSA9PiAoeyAuLi5wcmV2LCBzdGF0ZTogZmFsc2UgfSkpO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjaGVja1Bhc3N3b3JkU3RyZW5ndGgoKSB7XG4gICAgbGV0IHN0cmVuZ3RoID0gMDtcblxuICAgIHRoaXMuY2hlY2tSZWdleEhhbmRsZXIodGhpcy5pc0xlbmdodGdyYXRlclRoYW44KSAmJiBzdHJlbmd0aCsrO1xuICAgIHRoaXMuY2hlY2tSZWdleEhhbmRsZXIodGhpcy5pc1VzZVVwcGVyQ2FzZSkgJiYgc3RyZW5ndGgrKztcbiAgICB0aGlzLmNoZWNrUmVnZXhIYW5kbGVyKHRoaXMuaXNVc2VMb3dlckNhc2UpICYmIHN0cmVuZ3RoKys7XG4gICAgdGhpcy5jaGVja1JlZ2V4SGFuZGxlcih0aGlzLmlzVXNlTnVtYmVyKSAmJiBzdHJlbmd0aCsrO1xuICAgIHRoaXMuY2hlY2tSZWdleEhhbmRsZXIodGhpcy5pc1VzZVNwZWNpYWxDaGFyYWN0ZXIpICYmIHN0cmVuZ3RoKys7XG5cbiAgICBjb25zdCBzdHJlbmd0aExhYmVscyA9IFsnZnJhZ2lsZScsICdmcmFnaWxlJywgJ3dlYWsnLCAnZ29vZCcsICdzdHJvbmcnLCAndW5icmVha2FibGUnXTtcbiAgICB0aGlzLnN0cmVuZ3RoTGFiZWwuc2V0KHN0cmVuZ3RoTGFiZWxzW3N0cmVuZ3RoXSk7XG4gICAgdGhpcy5zdHJlbmd0aExhYmVsQ29sb3Iuc2V0KHN0cmVuZ3RoIDw9IDIgPyAnZGFuZ2VyJyA6IHN0cmVuZ3RoIDw9IDMgPyAnd2FybmluZycgOiAnc3VjY2VzcycpO1xuICAgIHRoaXMucGFzc3dvcmRTdHJlbmd0aC5zZXQoKHN0cmVuZ3RoICogMTAwKSAvIDUpO1xuICB9XG59XG4iLCJAaWYgKHBhcmVudC5zaG93UHJvZ3Jlc3MoKSkge1xuICA8c21hbGxcbiAgICBjbGFzcz1cImF4LXN0YXRlLXBhc3N3b3JkXCJcbiAgICBbY2xhc3MuYXgtdGV4dC1yZWRdPVwic3RyZW5ndGhMYWJlbENvbG9yKCkgPT09ICdkYW5nZXInXCJcbiAgICBbY2xhc3MuYXgtdGV4dC1vcmFuZ2VdPVwic3RyZW5ndGhMYWJlbENvbG9yKCkgPT09ICd3YXJuaW5nJ1wiXG4gICAgW2NsYXNzLmF4LXRleHQtZ3JlZW5dPVwic3RyZW5ndGhMYWJlbENvbG9yKCkgPT09ICdzdWNjZXNzJ1wiXG4gID5cbiAgICB7eyBzdHJlbmd0aExhYmVsKCkgfCB0cmFuc2xhdGUgfCBhc3luYyB9fVxuICA8L3NtYWxsPlxuXG4gIDxheC1wcm9ncmVzcy1iYXJcbiAgICBbY29sb3JdPVwic3RyZW5ndGhMYWJlbENvbG9yKClcIlxuICAgIFtwcm9ncmVzc109XCJwYXNzd29yZFN0cmVuZ3RoKClcIlxuICAgIFtoZWlnaHRdPVwiNFwiXG4gID48L2F4LXByb2dyZXNzLWJhcj5cbn1cbkBpZiAocGFyZW50LnNob3dIaW50KCkpIHtcbiAgPGRpdiBjbGFzcz1cImF4LWhpbnQtY29udGFpbmVyXCI+XG4gICAgPHNtYWxsIGNsYXNzPVwiYXgtaGludC1zdGF0ZVwiPlxuICAgICAgPGF4LWJhZGdlIFtjb2xvcl09XCJpc0xlbmdodGdyYXRlclRoYW44KCkuc3RhdGUgPyAnc3VjY2VzcycgOiAnZGFuZ2VyJ1wiPjwvYXgtYmFkZ2U+XG4gICAgICA8c3BhbiBbY2xhc3MuYXgtbGluZV09XCJpc0xlbmdodGdyYXRlclRoYW44KCkuc3RhdGVcIj5cbiAgICAgICAge3sgJ2F0LWxlYXN0LTgtY2hhcmFjdGVycycgfCB0cmFuc2xhdGUgfCBhc3luYyB9fVxuICAgICAgPC9zcGFuPlxuICAgIDwvc21hbGw+XG4gICAgPHNtYWxsIGNsYXNzPVwiYXgtaGludC1zdGF0ZVwiIFtjbGFzcy5heC1saW5lXT1cImlzVXNlVXBwZXJDYXNlKCkuc3RhdGVcIj5cbiAgICAgIDxheC1iYWRnZSBbY29sb3JdPVwiaXNVc2VVcHBlckNhc2UoKS5zdGF0ZSA/ICdzdWNjZXNzJyA6ICdkYW5nZXInXCI+PC9heC1iYWRnZT5cbiAgICAgIDxzcGFuPlxuICAgICAgICB7eyAnZW5nbGlzaC11cHBlci1jYXNlLWxldHRlcicgfCB0cmFuc2xhdGUgfCBhc3luYyB9fVxuICAgICAgPC9zcGFuPlxuICAgIDwvc21hbGw+XG4gICAgPHNtYWxsIGNsYXNzPVwiYXgtaGludC1zdGF0ZVwiIFtjbGFzcy5heC1saW5lXT1cImlzVXNlTG93ZXJDYXNlKCkuc3RhdGVcIj5cbiAgICAgIDxheC1iYWRnZSBbY29sb3JdPVwiaXNVc2VMb3dlckNhc2UoKS5zdGF0ZSA/ICdzdWNjZXNzJyA6ICdkYW5nZXInXCI+PC9heC1iYWRnZT5cbiAgICAgIDxzcGFuPlxuICAgICAgICB7eyAnZW5nbGlzaC1sb3dlci1jYXNlLWxldHRlcicgfCB0cmFuc2xhdGUgfCBhc3luYyB9fVxuICAgICAgPC9zcGFuPlxuICAgIDwvc21hbGw+XG4gICAgPHNtYWxsIGNsYXNzPVwiYXgtaGludC1zdGF0ZVwiIFtjbGFzcy5heC1saW5lXT1cImlzVXNlTnVtYmVyKCkuc3RhdGVcIj5cbiAgICAgIDxheC1iYWRnZSBbY29sb3JdPVwiaXNVc2VOdW1iZXIoKS5zdGF0ZSA/ICdzdWNjZXNzJyA6ICdkYW5nZXInXCI+PC9heC1iYWRnZVxuICAgICAgPjxzcGFuPiB7eyAnZGlnaXRzJyB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19IDwvc3Bhbj5cbiAgICA8L3NtYWxsPlxuICAgIDxzbWFsbCBjbGFzcz1cImF4LWhpbnQtc3RhdGVcIiBbY2xhc3MuYXgtbGluZV09XCJpc1VzZVNwZWNpYWxDaGFyYWN0ZXIoKS5zdGF0ZVwiPlxuICAgICAgPGF4LWJhZGdlIFtjb2xvcl09XCJpc1VzZVNwZWNpYWxDaGFyYWN0ZXIoKS5zdGF0ZSA/ICdzdWNjZXNzJyA6ICdkYW5nZXInXCI+PC9heC1iYWRnZT5cbiAgICAgIDxzcGFuPlxuICAgICAgICB7eyAnc3BlY2lhbC1jaGFyYWN0ZXInIHwgdHJhbnNsYXRlIHwgYXN5bmMgfX1cbiAgICAgIDwvc3Bhbj5cbiAgICA8L3NtYWxsPlxuICA8L2Rpdj5cbn1cbiJdfQ==
|