{"version":3,"file":"uipath-angular-components-ui-password-indicator.mjs","sources":["../../../projects/angular/components/ui-password-indicator/src/ui-password-indicator.intl.ts","../../../projects/angular/components/ui-password-indicator/src/ui-password-indicator.animations.ts","../../../projects/angular/components/ui-password-indicator/src/ui-password-indicator.validator.ts","../../../projects/angular/components/ui-password-indicator/src/ui-password-indicator.component.ts","../../../projects/angular/components/ui-password-indicator/src/ui-password-indicator.component.html","../../../projects/angular/components/ui-password-indicator/src/ui-password-indicator.module.ts","../../../projects/angular/components/ui-password-indicator/src/uipath-angular-components-ui-password-indicator.ts"],"sourcesContent":["import startCase from 'lodash-es/startCase';\nimport { Subject } from 'rxjs';\n\nimport { Injectable } from '@angular/core';\n\n@Injectable({\n    providedIn: 'root',\n})\nexport class UiPasswordComplexityIntl {\n    // eslint-disable-next-line rxjs/finnish\n    changes = new Subject<void>();\n    notMet = 'Complexity rules not met:';\n    allMet = 'All complexity rules are met';\n\n    ruleLabel = (ruleKey: string) => startCase(ruleKey);\n    percentageTitle = (percentage: number) => `${percentage}%`;\n}\n","import {\n    animate,\n    style,\n    transition,\n    trigger,\n} from '@angular/animations';\n\n/**\n * Enter / Leave animation generator.\n * NOTE: keep exported as function in order for it to be hoisted! Else the AOT build will fail.\n *\n * @internal\n * @ignore\n */\nexport function inAndOut(inView: Record<string, any>, outOfView: Record<string, any>, timing: string) {\n    return [\n        transition(':enter', [\n            style(outOfView),\n            animate(\n                timing,\n                style(inView),\n            ),\n        ]),\n        transition(':leave', [\n            style(inView),\n            animate(\n                timing,\n                style(outOfView),\n            ),\n        ]),\n    ];\n}\n\nconst ANIMATION_TIMING = '300ms cubic-bezier(0.55, 0, 0.55, 0.2)';\n\nconst INVALID_RULE_OUT = {\n    width: 0,\n    opacity: 0,\n};\nconst INVALID_RULE_IN = {\n    width: '*',\n    opacity: 1,\n};\n\nexport const RULE_ITEM_ANIMATION = trigger(\n    'ruleAnimation',\n    inAndOut(INVALID_RULE_IN, INVALID_RULE_OUT, ANIMATION_TIMING),\n);\n\nconst RULE_LIST_OUT = {\n    opacity: 0,\n    transform: 'translateY(-25%)',\n};\n\nconst RULE_LIST_IN = {\n    opacity: 1,\n    transform: 'translateY(0)',\n};\n\nexport const RULE_LIST_ANIMATION = trigger(\n    'ruleListAnimation',\n    inAndOut(RULE_LIST_IN, RULE_LIST_OUT, ANIMATION_TIMING),\n);\n\nconst PROGRESS_OUT = {\n    opacity: 0,\n};\n\nconst PROGRESS_IN = {\n    opacity: 1,\n};\n\nexport const PROGRESS_ANIMATION = trigger(\n    'progressAnimation',\n    inAndOut(PROGRESS_IN, PROGRESS_OUT, ANIMATION_TIMING),\n);\n","import type { AbstractControl } from '@angular/forms';\n\nexport type IPasswordValidationFn = (value: string) => boolean;\nexport interface IRegexLike {\n    test: (value: string) => boolean;\n}\nexport type IPasswordRuleSet = Record<string, IRegexLike | IPasswordValidationFn>;\nexport type IRuleValidationState = Record<string, boolean>;\nexport const VALIDATION_RULE_NAME = 'complexity';\n\nconst resolveFn = (obj: IRegexLike | IPasswordValidationFn) => {\n    const isRegexLike = typeof obj === 'object' && !!obj.test;\n\n    if (isRegexLike) { return (obj as IRegexLike).test.bind(obj); }\n\n    if (typeof obj === 'function') { return obj; }\n\n    throw Error('The validation member must be a Function or a Regex!');\n};\n\nexport const complexityValidator = (rules: IPasswordRuleSet, required: boolean) =>\n    (control: AbstractControl) => {\n        const value: string = control.value;\n\n        if (\n            !required &&\n            (value == null || value === '')\n        ) { return null; }\n\n        const ruleKeys = Object.keys(rules);\n\n        const validityMap = ruleKeys\n            .reduce(\n                (ruleStateMap, ruleKey) => {\n                    const validator = rules[ruleKey];\n                    if (\n                        value == null ||\n                        !resolveFn(validator)(value)\n                    ) {\n                        ruleStateMap[ruleKey] = true;\n                    }\n\n                    return ruleStateMap;\n                },\n                {} as IRuleValidationState,\n            );\n\n        return !Object.keys(validityMap).length ?\n            null :\n            {\n                [VALIDATION_RULE_NAME]: validityMap,\n            };\n    };\n","import {\n    combineLatest,\n    Observable,\n    Subject,\n} from 'rxjs';\nimport {\n    distinctUntilChanged,\n    map,\n    share,\n    takeUntil,\n} from 'rxjs/operators';\n\nimport { LiveAnnouncer } from '@angular/cdk/a11y';\nimport {\n    ChangeDetectionStrategy,\n    Component,\n    Input,\n    OnDestroy,\n    OnInit,\n    ViewEncapsulation,\n} from '@angular/core';\nimport type { AbstractControl } from '@angular/forms';\n\nimport {\n    PROGRESS_ANIMATION,\n    RULE_ITEM_ANIMATION,\n    RULE_LIST_ANIMATION,\n} from './ui-password-indicator.animations';\nimport { UiPasswordComplexityIntl } from './ui-password-indicator.intl';\nimport {\n    IPasswordRuleSet,\n    IRuleValidationState,\n    VALIDATION_RULE_NAME,\n} from './ui-password-indicator.validator';\n\ntype RulesAndStates = [string[], IRuleValidationState];\n\n@Component({\n    selector: 'ui-password-indicator',\n    templateUrl: './ui-password-indicator.component.html',\n    styleUrls: ['./ui-password-indicator.component.scss'],\n    encapsulation: ViewEncapsulation.None,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    animations: [\n        RULE_ITEM_ANIMATION,\n        RULE_LIST_ANIMATION,\n        PROGRESS_ANIMATION,\n    ],\n})\nexport class UiPasswordIndicatorComponent implements OnInit, OnDestroy {\n    @Input()\n    control!: AbstractControl;\n\n    @Input()\n    passwordRules!: IPasswordRuleSet;\n\n    @Input()\n    hideValidRuleDefinition = false;\n\n    state$!: Observable<IRuleValidationState>;\n    rules$!: Observable<string[]>;\n    visibleRules$!: Observable<string[]>;\n    percentage$!: Observable<number>;\n    isErrorState$!: Observable<boolean>;\n\n    private _destroyed$ = new Subject<void>();\n\n    constructor(\n        public intl: UiPasswordComplexityIntl,\n        private _announcer: LiveAnnouncer,\n    ) { }\n\n    ngOnInit() {\n        this.state$ = this.control\n            .valueChanges\n            .pipe(\n                map(() => this.control.getError(VALIDATION_RULE_NAME) || {}),\n                share(),\n                takeUntil(this._destroyed$),\n            );\n\n        this.isErrorState$ = this.control\n            .statusChanges\n            .pipe(\n                map(this._mapDirtyState),\n                takeUntil(this._destroyed$),\n            );\n\n        this.rules$ = this.state$\n            .pipe(\n                map(() => Object.keys(this.passwordRules || {})),\n                share(),\n            );\n\n        const rulesAndState$ = combineLatest([\n            this.rules$,\n            this.state$,\n        ]).pipe(\n            share(),\n        );\n\n        this.visibleRules$ = rulesAndState$\n            .pipe(\n                map(this._mapVisibleRules),\n            );\n\n        this.percentage$ = rulesAndState$\n            .pipe(\n                map(this._calculatePercentage),\n                distinctUntilChanged(),\n            );\n\n        this.state$.pipe(\n            distinctUntilChanged(\n                (left, right) => Object.values(left).join('') === Object.values(right).join(''),\n            ),\n            takeUntil(this._destroyed$),\n        ).subscribe(this._announceChanges);\n    }\n\n    ngOnDestroy() {\n        this._destroyed$.next();\n        this._destroyed$.complete();\n    }\n\n    trackByKey = (_id: number, key: string) => key;\n\n    private _mapDirtyState = () => this.control.dirty &&\n        this.control.hasError(VALIDATION_RULE_NAME);\n\n    private _calculatePercentage = ([rules, state]: RulesAndStates) => {\n        if (!state) { return 100; }\n\n        const increment = 100 / rules.length;\n\n        const validationPercentage = rules\n            .reduce(\n                (percentage, ruleKey) => !state[ruleKey] ? percentage + increment : percentage,\n                0,\n            );\n\n        return validationPercentage;\n    };\n\n    private _mapVisibleRules = ([rules, state]: RulesAndStates) => this.hideValidRuleDefinition ?\n        rules.filter(rule => state[rule]) :\n        rules;\n\n    private _announceChanges = (state: IRuleValidationState) => {\n        const rulesNotMet = Object.keys(this.passwordRules || {})\n            .filter(\n                rule => state[rule],\n            )\n            .map(\n                rule => this.intl.ruleLabel(rule),\n            );\n\n        this._announcer.announce(\n            rulesNotMet.length\n                ? `${this.intl.notMet} ${rulesNotMet.join(', ')}`\n                : this.intl.allMet,\n            'polite',\n        );\n    };\n}\n","<ng-container *ngLet=\"{\n    rules: visibleRules$ | async,\n    percentage: percentage$ | async,\n    state: state$ | async,\n    isErrorState: isErrorState$ | async,\n    intlChange: intl.changes | async\n} as data\">\n    <ng-container *ngIf=\"data.isErrorState\"\n                  aria-hidden=\"true\">\n        <div @progressAnimation\n             class=\"ui-password-progress-container\">\n            <mat-progress-bar [value]=\"data.percentage\"\n                              [attr.title]=\"intl.percentageTitle(data.percentage)\">\n            </mat-progress-bar>\n        </div>\n        <mat-list @ruleListAnimation\n                  role=\"list\"\n                  mat-elevation-z0\n                  class=\"ui-password-complexity-list\">\n            <ng-container *ngFor=\"let rule of data.rules; trackBy: trackByKey\">\n                <mat-list-item @ruleAnimation\n                               [class.ui-password-rule-invalid]=\"data.state[rule] != null\"\n                               [class.ui-password-rule-valid]=\"data.state[rule] == null\"\n                               [attr.data-rule-name]=\"rule\"\n                               role=\"listitem\"\n                               class=\"ui-password-rule\">\n                    <span mat-line>\n                        <mat-icon *ngIf=\"data.state[rule] == null; else errorIconTmpl\">check_circle</mat-icon>\n                        <ng-template #errorIconTmpl>\n                            <mat-icon>error</mat-icon>\n                        </ng-template>\n                    </span>\n                    <span mat-line\n                          class=\"ui-password-rule-label\">\n                        {{ intl.ruleLabel(rule) }}\n                    </span>\n                </mat-list-item>\n            </ng-container>\n        </mat-list>\n    </ng-container>\n</ng-container>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatListModule } from '@angular/material/list';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { UiNgLetModule } from '@uipath/angular/directives/ui-ng-let';\n\nimport { UiPasswordIndicatorComponent } from './ui-password-indicator.component';\n\n@NgModule({\n    imports: [\n        CommonModule,\n        MatListModule,\n        MatProgressBarModule,\n        MatIconModule,\n        UiNgLetModule,\n    ],\n    declarations: [\n        UiPasswordIndicatorComponent,\n    ],\n    exports: [\n        UiPasswordIndicatorComponent,\n    ],\n})\nexport class UiPasswordIndicatorModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.UiPasswordComplexityIntl"],"mappings":"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"}