barsa-novin-ray-core 2.0.125 → 2.0.127
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/barsa-novin-ray-core-routing.module.mjs +8 -1
- package/esm2022/lib/barsa-novin-ray-core.module.mjs +35 -12
- package/esm2022/lib/button-loading/button-loading.component.mjs +18 -0
- package/esm2022/lib/constants.mjs +9 -1
- package/esm2022/lib/controllers/base-controller.mjs +30 -0
- package/esm2022/lib/controllers/index.mjs +5 -0
- package/esm2022/lib/controllers/login-controller.mjs +54 -0
- package/esm2022/lib/controllers/login-verification-controller.mjs +54 -0
- package/esm2022/lib/controllers/models.mjs +2 -0
- package/esm2022/lib/login-enter-mobile/login-enter-mobile.component.mjs +64 -0
- package/esm2022/lib/login-verification/login-verification.component.mjs +79 -0
- package/esm2022/lib/login2/login2.component.mjs +60 -0
- package/esm2022/lib/services/form-panel.service.mjs +2 -2
- package/esm2022/public-api.mjs +6 -1
- package/fesm2022/barsa-novin-ray-core.mjs +364 -11
- package/fesm2022/barsa-novin-ray-core.mjs.map +1 -1
- package/lib/barsa-novin-ray-core.module.d.ts +92 -83
- package/lib/button-loading/button-loading.component.d.ts +8 -0
- package/lib/constants.d.ts +4 -0
- package/lib/controllers/base-controller.d.ts +29 -0
- package/lib/controllers/index.d.ts +4 -0
- package/lib/controllers/login-controller.d.ts +22 -0
- package/lib/controllers/login-verification-controller.d.ts +19 -0
- package/lib/controllers/models.d.ts +6 -0
- package/lib/login-enter-mobile/login-enter-mobile.component.d.ts +24 -0
- package/lib/login-verification/login-verification.component.d.ts +31 -0
- package/lib/login2/login2.component.d.ts +34 -0
- package/package.json +1 -1
- package/public-api.d.ts +5 -0
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { Directive, inject, signal } from '@angular/core';
|
|
2
|
+
import { BaseController } from './base-controller';
|
|
3
|
+
import { HttpClient } from '@angular/common/http';
|
|
4
|
+
import { catchError, finalize, throwError } from 'rxjs';
|
|
5
|
+
import { BarsaApi } from '../abstract-classes';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export class LoginVerificationController extends BaseController {
|
|
8
|
+
constructor(view) {
|
|
9
|
+
super(view);
|
|
10
|
+
this.loading = signal(false);
|
|
11
|
+
this.canVerify = signal(false);
|
|
12
|
+
this._httpClient = inject(HttpClient);
|
|
13
|
+
}
|
|
14
|
+
get form() {
|
|
15
|
+
return this.view.form;
|
|
16
|
+
}
|
|
17
|
+
verifyCode(e) {
|
|
18
|
+
this.form.valid && this.loading.set(true);
|
|
19
|
+
const { code, cap, capId } = e;
|
|
20
|
+
this.form.valid && this.loading.set(true);
|
|
21
|
+
this._httpClient
|
|
22
|
+
.post(`/api/openid/callback?provider=BarsaOtpLogin`, {
|
|
23
|
+
otpId: localStorage.getItem('otpId'),
|
|
24
|
+
otpCode: code,
|
|
25
|
+
captchaCode: cap,
|
|
26
|
+
capId
|
|
27
|
+
})
|
|
28
|
+
.pipe(finalize(() => {
|
|
29
|
+
this.loading.set(false);
|
|
30
|
+
}), catchError((err) => {
|
|
31
|
+
if (typeof err === 'object' && err.status === 403) {
|
|
32
|
+
this.view.showError(err.error.Message, err.error.Code);
|
|
33
|
+
}
|
|
34
|
+
return throwError(() => new Error(err));
|
|
35
|
+
}))
|
|
36
|
+
.subscribe((c) => {
|
|
37
|
+
if (c?.Sth) {
|
|
38
|
+
localStorage.removeItem('otpId');
|
|
39
|
+
window.localStorage.setItem(BarsaApi.LoginAction.token2StorageKey, c.Sth);
|
|
40
|
+
this.view.codeVerified();
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
init() {
|
|
45
|
+
this.form.valueChanges.subscribe((c) => this.form.valid ? this.canVerify.set(true) : this.canVerify.set(false));
|
|
46
|
+
}
|
|
47
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: LoginVerificationController, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive }); }
|
|
48
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.5", type: LoginVerificationController, usesInheritance: true, ngImport: i0 }); }
|
|
49
|
+
}
|
|
50
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: LoginVerificationController, decorators: [{
|
|
51
|
+
type: Directive,
|
|
52
|
+
args: [{}]
|
|
53
|
+
}], ctorParameters: () => [{ type: undefined }] });
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4tdmVyaWZpY2F0aW9uLWNvbnRyb2xsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1ub3Zpbi1yYXktY29yZS9zcmMvbGliL2NvbnRyb2xsZXJzL2xvZ2luLXZlcmlmaWNhdGlvbi1jb250cm9sbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQUUsY0FBYyxFQUFhLE1BQU0sbUJBQW1CLENBQUM7QUFFOUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN4RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0scUJBQXFCLENBQUM7O0FBRS9DLE1BQU0sT0FBTywyQkFBNEIsU0FBUSxjQUFzQztJQUluRixZQUFZLElBQTRCO1FBQ3BDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUpoQixZQUFPLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hCLGNBQVMsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUIsZ0JBQVcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFHakMsQ0FBQztJQUNELElBQUksSUFBSTtRQUNKLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDMUIsQ0FBQztJQUNELFVBQVUsQ0FBQyxDQUFDO1FBQ1IsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUMsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFDLElBQUksQ0FBQyxXQUFXO2FBQ1gsSUFBSSxDQUFrQiw2Q0FBNkMsRUFBRTtZQUNsRSxLQUFLLEVBQUUsWUFBWSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7WUFDcEMsT0FBTyxFQUFFLElBQUk7WUFDYixXQUFXLEVBQUUsR0FBRztZQUNoQixLQUFLO1NBQ1IsQ0FBQzthQUNELElBQUksQ0FDRCxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ1YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUIsQ0FBQyxDQUFDLEVBQ0YsVUFBVSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDZixJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDO2dCQUNoRCxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzNELENBQUM7WUFDRCxPQUFPLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzVDLENBQUMsQ0FBQyxDQUNMO2FBQ0EsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDYixJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQztnQkFDVCxZQUFZLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUNqQyxNQUFNLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDMUUsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUM3QixDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBQ0QsSUFBSTtRQUNBLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQ25DLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQ3pFLENBQUM7SUFDTixDQUFDOzhHQTVDUSwyQkFBMkI7a0dBQTNCLDJCQUEyQjs7MkZBQTNCLDJCQUEyQjtrQkFEdkMsU0FBUzttQkFBQyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBpbmplY3QsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmFzZUNvbnRyb2xsZXIsIElWaWV3QmFzZSB9IGZyb20gJy4vYmFzZS1jb250cm9sbGVyJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBmaW5hbGl6ZSwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQmFyc2FBcGkgfSBmcm9tICcuLi9hYnN0cmFjdC1jbGFzc2VzJztcbkBEaXJlY3RpdmUoe30pXG5leHBvcnQgY2xhc3MgTG9naW5WZXJpZmljYXRpb25Db250cm9sbGVyIGV4dGVuZHMgQmFzZUNvbnRyb2xsZXI8SUxvZ2luVmVyaWZpY2F0aW9uVmlldz4ge1xuICAgIGxvYWRpbmcgPSBzaWduYWwoZmFsc2UpO1xuICAgIGNhblZlcmlmeSA9IHNpZ25hbChmYWxzZSk7XG4gICAgX2h0dHBDbGllbnQgPSBpbmplY3QoSHR0cENsaWVudCk7XG4gICAgY29uc3RydWN0b3IodmlldzogSUxvZ2luVmVyaWZpY2F0aW9uVmlldykge1xuICAgICAgICBzdXBlcih2aWV3KTtcbiAgICB9XG4gICAgZ2V0IGZvcm0oKTogRm9ybUdyb3VwIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmlldy5mb3JtO1xuICAgIH1cbiAgICB2ZXJpZnlDb2RlKGUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5mb3JtLnZhbGlkICYmIHRoaXMubG9hZGluZy5zZXQodHJ1ZSk7XG4gICAgICAgIGNvbnN0IHsgY29kZSwgY2FwLCBjYXBJZCB9ID0gZTtcbiAgICAgICAgdGhpcy5mb3JtLnZhbGlkICYmIHRoaXMubG9hZGluZy5zZXQodHJ1ZSk7XG4gICAgICAgIHRoaXMuX2h0dHBDbGllbnRcbiAgICAgICAgICAgIC5wb3N0PHsgU3RoOiBzdHJpbmcgfT4oYC9hcGkvb3BlbmlkL2NhbGxiYWNrP3Byb3ZpZGVyPUJhcnNhT3RwTG9naW5gLCB7XG4gICAgICAgICAgICAgICAgb3RwSWQ6IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdvdHBJZCcpLFxuICAgICAgICAgICAgICAgIG90cENvZGU6IGNvZGUsXG4gICAgICAgICAgICAgICAgY2FwdGNoYUNvZGU6IGNhcCxcbiAgICAgICAgICAgICAgICBjYXBJZFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIGZpbmFsaXplKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nLnNldChmYWxzZSk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgZXJyID09PSAnb2JqZWN0JyAmJiBlcnIuc3RhdHVzID09PSA0MDMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudmlldy5zaG93RXJyb3IoZXJyLmVycm9yLk1lc3NhZ2UsIGVyci5lcnJvci5Db2RlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBuZXcgRXJyb3IoZXJyKSk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGMpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoYz8uU3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdvdHBJZCcpO1xuICAgICAgICAgICAgICAgICAgICB3aW5kb3cubG9jYWxTdG9yYWdlLnNldEl0ZW0oQmFyc2FBcGkuTG9naW5BY3Rpb24udG9rZW4yU3RvcmFnZUtleSwgYy5TdGgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnZpZXcuY29kZVZlcmlmaWVkKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgfVxuICAgIGluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZm9ybS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKChjKSA9PlxuICAgICAgICAgICAgdGhpcy5mb3JtLnZhbGlkID8gdGhpcy5jYW5WZXJpZnkuc2V0KHRydWUpIDogdGhpcy5jYW5WZXJpZnkuc2V0KGZhbHNlKVxuICAgICAgICApO1xuICAgIH1cbn1cbmV4cG9ydCBpbnRlcmZhY2UgSUxvZ2luVmVyaWZpY2F0aW9uVmlldyBleHRlbmRzIElWaWV3QmFzZSB7XG4gICAgZm9ybTogRm9ybUdyb3VwO1xuICAgIGNvZGVWZXJpZmllZDogKCkgPT4gdm9pZDtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etbm92aW4tcmF5LWNvcmUvc3JjL2xpYi9jb250cm9sbGVycy9tb2RlbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgSUFwaVJlc3VsdCB7XG4gICAgZGF0YTogYW55O1xuICAgIGVycm9yPzogYW55O1xuICAgIHN1Y2NlZWQ6IGJvb2xlYW47XG59XG5leHBvcnQgdHlwZSBMb2dpblN0YXRlID0gJ2VudGVyLW1vYmlsZScgfCAndmVyaWZpY2F0aW9uJztcbiJdfQ==
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, inject, Input, Output, signal } from '@angular/core';
|
|
2
|
+
import { LoginController, ViewBase } from '../controllers';
|
|
3
|
+
import { Validators } from '@angular/forms';
|
|
4
|
+
import { forbiddenValidator, mobile_regex } from '../constants';
|
|
5
|
+
import { MessageToastService, ToastBottomCenterPosition } from '@fundamental-ngx/core';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@angular/forms";
|
|
8
|
+
import * as i2 from "../button-loading/button-loading.component";
|
|
9
|
+
export class LoginEnterMobileComponent extends ViewBase {
|
|
10
|
+
constructor(fb) {
|
|
11
|
+
super();
|
|
12
|
+
this.fb = fb;
|
|
13
|
+
this.otpSent = new EventEmitter();
|
|
14
|
+
this.capId = signal('-');
|
|
15
|
+
this.showCaptcha = signal(false);
|
|
16
|
+
this.messageToastService = inject(MessageToastService);
|
|
17
|
+
this.showCaptcha.set(false);
|
|
18
|
+
this.form = this.fb.group({
|
|
19
|
+
mobile: [
|
|
20
|
+
'',
|
|
21
|
+
Validators.compose([Validators.required, Validators.maxLength(11), forbiddenValidator(mobile_regex)])
|
|
22
|
+
],
|
|
23
|
+
cap: [''],
|
|
24
|
+
capId: [this.capId(), Validators.required]
|
|
25
|
+
});
|
|
26
|
+
this.controller = new LoginController(this);
|
|
27
|
+
}
|
|
28
|
+
showError(message, code) {
|
|
29
|
+
super.showError(message, code);
|
|
30
|
+
this.messageToastService.open(this.errorTemplate, {
|
|
31
|
+
duration: 5000,
|
|
32
|
+
positionStrategy: ToastBottomCenterPosition,
|
|
33
|
+
data: {
|
|
34
|
+
message
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
codeSent() {
|
|
39
|
+
this.otpSent.emit(this.form.value.mobile);
|
|
40
|
+
}
|
|
41
|
+
ngOnInit() {
|
|
42
|
+
super.ngOnInit();
|
|
43
|
+
}
|
|
44
|
+
get loading() {
|
|
45
|
+
return this.controller.loading();
|
|
46
|
+
}
|
|
47
|
+
get canSend() {
|
|
48
|
+
return this.controller.canSend();
|
|
49
|
+
}
|
|
50
|
+
onSendCode() {
|
|
51
|
+
this.controller.sendCode(this.form.value);
|
|
52
|
+
}
|
|
53
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: LoginEnterMobileComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
54
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.5", type: LoginEnterMobileComponent, selector: "bnrc-login-enter-mobile", inputs: { errorTemplate: "errorTemplate" }, outputs: { otpSent: "otpSent" }, usesInheritance: true, ngImport: i0, template: "<form class=\"tw-px-8 tw-pt-6 tw-pb-8 tw-mb-2 tw-mt-2\" [formGroup]=\"form\">\n <div class=\"tw-mb-4\">\n <label class=\"tw-block tw-text-gray-500 tw-text-md tw-font-bold tw-mb-4\" for=\"username\"> \u0634\u0645\u0627\u0631\u0647 \u0647\u0645\u0631\u0627\u0647 </label>\n <input\n class=\"tw-rounded-lg tw-border tw-w-full tw-py-4 tw-px-3 tw-text-gray-700 tw-leading-tight tw-focus:tw-outline-none tw-focus:tw-shadow-outline\"\n name=\"mobile\"\n formControlName=\"mobile\"\n placeholder=\"09121234567\"\n maxlength=\"11\"\n type=\"tel\"\n [disabled]=\"loading\"\n />\n </div>\n <!-- <app-form-captcha [capId]=\"capId()\" [showCaptcha]=\"showCaptcha()\" formControlName=\"cap\"></app-form-captcha> -->\n <div class=\"tw-flex tw-items-center\">\n <bnrc-button-loading\n [text]=\"'\u0627\u0631\u0633\u0627\u0644 \u06A9\u062F \u062A\u0627\u06CC\u06CC\u062F'\"\n [valid]=\"canSend\"\n [loading]=\"loading\"\n (click)=\"onSendCode()\"\n ></bnrc-button-loading>\n </div>\n</form>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { 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.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i2.ButtonLoadingComponent, selector: "bnrc-button-loading", inputs: ["valid", "loading", "text"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
55
|
+
}
|
|
56
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: LoginEnterMobileComponent, decorators: [{
|
|
57
|
+
type: Component,
|
|
58
|
+
args: [{ selector: 'bnrc-login-enter-mobile', changeDetection: ChangeDetectionStrategy.OnPush, template: "<form class=\"tw-px-8 tw-pt-6 tw-pb-8 tw-mb-2 tw-mt-2\" [formGroup]=\"form\">\n <div class=\"tw-mb-4\">\n <label class=\"tw-block tw-text-gray-500 tw-text-md tw-font-bold tw-mb-4\" for=\"username\"> \u0634\u0645\u0627\u0631\u0647 \u0647\u0645\u0631\u0627\u0647 </label>\n <input\n class=\"tw-rounded-lg tw-border tw-w-full tw-py-4 tw-px-3 tw-text-gray-700 tw-leading-tight tw-focus:tw-outline-none tw-focus:tw-shadow-outline\"\n name=\"mobile\"\n formControlName=\"mobile\"\n placeholder=\"09121234567\"\n maxlength=\"11\"\n type=\"tel\"\n [disabled]=\"loading\"\n />\n </div>\n <!-- <app-form-captcha [capId]=\"capId()\" [showCaptcha]=\"showCaptcha()\" formControlName=\"cap\"></app-form-captcha> -->\n <div class=\"tw-flex tw-items-center\">\n <bnrc-button-loading\n [text]=\"'\u0627\u0631\u0633\u0627\u0644 \u06A9\u062F \u062A\u0627\u06CC\u06CC\u062F'\"\n [valid]=\"canSend\"\n [loading]=\"loading\"\n (click)=\"onSendCode()\"\n ></bnrc-button-loading>\n </div>\n</form>\n" }]
|
|
59
|
+
}], ctorParameters: () => [{ type: i1.FormBuilder }], propDecorators: { otpSent: [{
|
|
60
|
+
type: Output
|
|
61
|
+
}], errorTemplate: [{
|
|
62
|
+
type: Input
|
|
63
|
+
}] } });
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4tZW50ZXItbW9iaWxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLW5vdmluLXJheS1jb3JlL3NyYy9saWIvbG9naW4tZW50ZXItbW9iaWxlL2xvZ2luLWVudGVyLW1vYmlsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1ub3Zpbi1yYXktY29yZS9zcmMvbGliL2xvZ2luLWVudGVyLW1vYmlsZS9sb2dpbi1lbnRlci1tb2JpbGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLE1BQU0sRUFFVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWMsZUFBZSxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZFLE9BQU8sRUFBMEIsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNoRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7OztBQVF2RixNQUFNLE9BQU8seUJBQTBCLFNBQVEsUUFBeUI7SUFTcEUsWUFBb0IsRUFBZTtRQUMvQixLQUFLLEVBQUUsQ0FBQztRQURRLE9BQUUsR0FBRixFQUFFLENBQWE7UUFSekIsWUFBTyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFJL0MsVUFBSyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNwQixnQkFBVyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1Qix3QkFBbUIsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUk5QyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQ3RCLE1BQU0sRUFBRTtnQkFDSixFQUFFO2dCQUNGLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLEVBQUUsa0JBQWtCLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQzthQUN4RztZQUNELEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUNULEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1NBQzdDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUNELFNBQVMsQ0FBQyxPQUFlLEVBQUUsSUFBWTtRQUNuQyxLQUFLLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDOUMsUUFBUSxFQUFFLElBQUk7WUFDZCxnQkFBZ0IsRUFBRSx5QkFBeUI7WUFDM0MsSUFBSSxFQUFFO2dCQUNGLE9BQU87YUFDVjtTQUNKLENBQUMsQ0FBQztJQUNQLENBQUM7SUFDRCxRQUFRO1FBQ0osSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUNELFFBQVE7UUFDSixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUNELElBQUksT0FBTztRQUNQLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBQ0QsSUFBSSxPQUFPO1FBQ1AsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFDRCxVQUFVO1FBQ04sSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QyxDQUFDOzhHQTlDUSx5QkFBeUI7a0dBQXpCLHlCQUF5QixtS0NyQnRDLDRuQ0F1QkE7OzJGREZhLHlCQUF5QjtrQkFOckMsU0FBUzsrQkFDSSx5QkFBeUIsbUJBR2xCLHVCQUF1QixDQUFDLE1BQU07Z0ZBR3JDLE9BQU87c0JBQWhCLE1BQU07Z0JBQ0UsYUFBYTtzQkFBckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxuICAgIHNpZ25hbCxcbiAgICBUZW1wbGF0ZVJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElMb2dpblZpZXcsIExvZ2luQ29udHJvbGxlciwgVmlld0Jhc2UgfSBmcm9tICcuLi9jb250cm9sbGVycyc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgZm9yYmlkZGVuVmFsaWRhdG9yLCBtb2JpbGVfcmVnZXggfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgTWVzc2FnZVRvYXN0U2VydmljZSwgVG9hc3RCb3R0b21DZW50ZXJQb3NpdGlvbiB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYm5yYy1sb2dpbi1lbnRlci1tb2JpbGUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9sb2dpbi1lbnRlci1tb2JpbGUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsOiAnLi9sb2dpbi1lbnRlci1tb2JpbGUuY29tcG9uZW50LnNjc3MnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIExvZ2luRW50ZXJNb2JpbGVDb21wb25lbnQgZXh0ZW5kcyBWaWV3QmFzZTxMb2dpbkNvbnRyb2xsZXI+IGltcGxlbWVudHMgSUxvZ2luVmlldyB7XG4gICAgQE91dHB1dCgpIG90cFNlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgICBASW5wdXQoKSBlcnJvclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIGNvbnRyb2xsZXI6IExvZ2luQ29udHJvbGxlcjtcbiAgICBmb3JtOiBGb3JtR3JvdXA7XG4gICAgY2FwSWQgPSBzaWduYWwoJy0nKTtcbiAgICBzaG93Q2FwdGNoYSA9IHNpZ25hbChmYWxzZSk7XG4gICAgbWVzc2FnZVRvYXN0U2VydmljZSA9IGluamVjdChNZXNzYWdlVG9hc3RTZXJ2aWNlKTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuc2hvd0NhcHRjaGEuc2V0KGZhbHNlKTtcbiAgICAgICAgdGhpcy5mb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICAgICAgICBtb2JpbGU6IFtcbiAgICAgICAgICAgICAgICAnJyxcbiAgICAgICAgICAgICAgICBWYWxpZGF0b3JzLmNvbXBvc2UoW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDExKSwgZm9yYmlkZGVuVmFsaWRhdG9yKG1vYmlsZV9yZWdleCldKVxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIGNhcDogWycnXSxcbiAgICAgICAgICAgIGNhcElkOiBbdGhpcy5jYXBJZCgpLCBWYWxpZGF0b3JzLnJlcXVpcmVkXVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5jb250cm9sbGVyID0gbmV3IExvZ2luQ29udHJvbGxlcih0aGlzKTtcbiAgICB9XG4gICAgc2hvd0Vycm9yKG1lc3NhZ2U6IHN0cmluZywgY29kZTogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLnNob3dFcnJvcihtZXNzYWdlLCBjb2RlKTtcbiAgICAgICAgdGhpcy5tZXNzYWdlVG9hc3RTZXJ2aWNlLm9wZW4odGhpcy5lcnJvclRlbXBsYXRlLCB7XG4gICAgICAgICAgICBkdXJhdGlvbjogNTAwMCxcbiAgICAgICAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IFRvYXN0Qm90dG9tQ2VudGVyUG9zaXRpb24sXG4gICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgbWVzc2FnZVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29kZVNlbnQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMub3RwU2VudC5lbWl0KHRoaXMuZm9ybS52YWx1ZS5tb2JpbGUpO1xuICAgIH1cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICB9XG4gICAgZ2V0IGxvYWRpbmcoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRyb2xsZXIubG9hZGluZygpO1xuICAgIH1cbiAgICBnZXQgY2FuU2VuZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udHJvbGxlci5jYW5TZW5kKCk7XG4gICAgfVxuICAgIG9uU2VuZENvZGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29udHJvbGxlci5zZW5kQ29kZSh0aGlzLmZvcm0udmFsdWUpO1xuICAgIH1cbn1cbiIsIjxmb3JtIGNsYXNzPVwidHctcHgtOCB0dy1wdC02IHR3LXBiLTggdHctbWItMiB0dy1tdC0yXCIgW2Zvcm1Hcm91cF09XCJmb3JtXCI+XG4gICAgPGRpdiBjbGFzcz1cInR3LW1iLTRcIj5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwidHctYmxvY2sgdHctdGV4dC1ncmF5LTUwMCB0dy10ZXh0LW1kIHR3LWZvbnQtYm9sZCB0dy1tYi00XCIgZm9yPVwidXNlcm5hbWVcIj4g2LTZhdin2LHZhyDZh9mF2LHYp9mHIDwvbGFiZWw+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgY2xhc3M9XCJ0dy1yb3VuZGVkLWxnIHR3LWJvcmRlciB0dy13LWZ1bGwgdHctcHktNCB0dy1weC0zIHR3LXRleHQtZ3JheS03MDAgdHctbGVhZGluZy10aWdodCB0dy1mb2N1czp0dy1vdXRsaW5lLW5vbmUgdHctZm9jdXM6dHctc2hhZG93LW91dGxpbmVcIlxuICAgICAgICAgICAgbmFtZT1cIm1vYmlsZVwiXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJtb2JpbGVcIlxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCIwOTEyMTIzNDU2N1wiXG4gICAgICAgICAgICBtYXhsZW5ndGg9XCIxMVwiXG4gICAgICAgICAgICB0eXBlPVwidGVsXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJsb2FkaW5nXCJcbiAgICAgICAgLz5cbiAgICA8L2Rpdj5cbiAgICA8IS0tIDxhcHAtZm9ybS1jYXB0Y2hhIFtjYXBJZF09XCJjYXBJZCgpXCIgW3Nob3dDYXB0Y2hhXT1cInNob3dDYXB0Y2hhKClcIiBmb3JtQ29udHJvbE5hbWU9XCJjYXBcIj48L2FwcC1mb3JtLWNhcHRjaGE+IC0tPlxuICAgIDxkaXYgY2xhc3M9XCJ0dy1mbGV4IHR3LWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICA8Ym5yYy1idXR0b24tbG9hZGluZ1xuICAgICAgICAgICAgW3RleHRdPVwiJ9in2LHYs9in2YQg2qnYryDYqtin24zbjNivJ1wiXG4gICAgICAgICAgICBbdmFsaWRdPVwiY2FuU2VuZFwiXG4gICAgICAgICAgICBbbG9hZGluZ109XCJsb2FkaW5nXCJcbiAgICAgICAgICAgIChjbGljayk9XCJvblNlbmRDb2RlKClcIlxuICAgICAgICA+PC9ibnJjLWJ1dHRvbi1sb2FkaW5nPlxuICAgIDwvZGl2PlxuPC9mb3JtPlxuIl19
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, inject, Input, NgZone, Output, signal, ViewChild, ViewChildren } from '@angular/core';
|
|
2
|
+
import { Validators } from '@angular/forms';
|
|
3
|
+
import { ViewBase, LoginVerificationController } from '../controllers';
|
|
4
|
+
import { MessageToastService, ToastBottomCenterPosition } from '@fundamental-ngx/core';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/forms";
|
|
7
|
+
import * as i2 from "../button-loading/button-loading.component";
|
|
8
|
+
export class LoginVerificationComponent extends ViewBase {
|
|
9
|
+
constructor(fb) {
|
|
10
|
+
super();
|
|
11
|
+
this.fb = fb;
|
|
12
|
+
this.otpVerified = new EventEmitter();
|
|
13
|
+
this.changeMobile = new EventEmitter();
|
|
14
|
+
this.capId = signal('-');
|
|
15
|
+
this.showCaptcha = signal(false);
|
|
16
|
+
this._ngZone = inject(NgZone);
|
|
17
|
+
this.messageToastService = inject(MessageToastService);
|
|
18
|
+
this.showCaptcha.set(false);
|
|
19
|
+
this.form = this.fb.group({
|
|
20
|
+
in1: ['', Validators.compose([Validators.required, Validators.maxLength(6)])],
|
|
21
|
+
cap: [''],
|
|
22
|
+
capId: [this.capId(), Validators.required]
|
|
23
|
+
});
|
|
24
|
+
this.controller = new LoginVerificationController(this);
|
|
25
|
+
}
|
|
26
|
+
ngOnInit() {
|
|
27
|
+
super.ngOnInit();
|
|
28
|
+
}
|
|
29
|
+
codeVerified() {
|
|
30
|
+
this.otpVerified.emit();
|
|
31
|
+
}
|
|
32
|
+
showError(message, code) {
|
|
33
|
+
super.showError(message, code);
|
|
34
|
+
this.messageToastService.open(this.errorTemplate, {
|
|
35
|
+
duration: 5000,
|
|
36
|
+
positionStrategy: ToastBottomCenterPosition,
|
|
37
|
+
data: {
|
|
38
|
+
message
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
onVerifyCode() {
|
|
43
|
+
this._verifyCode();
|
|
44
|
+
}
|
|
45
|
+
_verifyCode() {
|
|
46
|
+
const { in1, capId, cap } = this.form.value;
|
|
47
|
+
this.controller.verifyCode({ code: `${in1}`, capId, cap });
|
|
48
|
+
}
|
|
49
|
+
get invArr() {
|
|
50
|
+
return this._inputsEl.toArray();
|
|
51
|
+
}
|
|
52
|
+
get loading() {
|
|
53
|
+
return this.controller.loading();
|
|
54
|
+
}
|
|
55
|
+
get canVerify() {
|
|
56
|
+
return this.controller.canVerify();
|
|
57
|
+
}
|
|
58
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: LoginVerificationComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
59
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.5", type: LoginVerificationComponent, selector: "bnrc-login-verification", inputs: { mobile: "mobile", errorTemplate: "errorTemplate" }, outputs: { otpVerified: "otpVerified", changeMobile: "changeMobile" }, viewQueries: [{ propertyName: "_loadingBtn", first: true, predicate: ["loadingBtn"], descendants: true }, { propertyName: "_inputsEl", predicate: ["inputv"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<form class=\"tw-px-8 tw-pt-6 tw-pb-8 tw-mb-2 tw-mt-2\" [formGroup]=\"form\">\n <label class=\"tw-block tw-w-full tw-text-gray-500 tw-text-md tw-font-bold tw-mb-4 tw-text-sm\">\n \u06A9\u062F \u0627\u0631\u0633\u0627\u0644 \u0634\u062F\u0647 \u0628\u0647 \u0634\u0645\u0627\u0631\u0647 <strong>{{ mobile }}</strong> \u0631\u0627 \u0648\u0627\u0631\u062F \u0646\u0645\u0627\u06CC\u06CC\u062F.\n </label>\n <a\n class=\"tw-inline-flex tw-flex tw-gap-3 tw-items-center tw-text-blue-600 tw-visited:tw-text-purple-600 tw-text-sm tw-font-extrabold tw-mb-4\"\n (click)=\"changeMobile.emit()\"\n >\u0648\u06CC\u0631\u0627\u06CC\u0634 \u0634\u0645\u0627\u0631\u0647 \u0647\u0645\u0631\u0627\u0647\n <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"tw-w-6\">\n <path\n d=\"M5,18H9.24a1,1,0,0,0,.71-.29l6.92-6.93h0L19.71,8a1,1,0,0,0,0-1.42L15.47,2.29a1,1,0,0,0-1.42,0L11.23,5.12h0L4.29,12.05a1,1,0,0,0-.29.71V17A1,1,0,0,0,5,18ZM14.76,4.41l2.83,2.83L16.17,8.66,13.34,5.83ZM6,13.17l5.93-5.93,2.83,2.83L8.83,16H6ZM21,20H3a1,1,0,0,0,0,2H21a1,1,0,0,0,0-2Z\"\n fill=\"#316bec\"\n />\n </svg>\n </a>\n <div class=\"tw-flex tw-items-center tw-justify-center tw-gap-3 tw-mb-4 tw-flex-row-reverse\">\n <input\n #inputv\n class=\"tw-rounded-lg tw-border tw-w-full tw-py-4 tw-px-3 tw-text-gray-700 tw-leading-tight tw-focus:tw-outline-none tw-focus:tw-shadow-outline\"\n maxlength=\"6\"\n tabindex=\"0\"\n name=\"in1\"\n formControlName=\"in1\"\n />\n </div>\n <div class=\"tw-flex tw-items-center\">\n <bnrc-button-loading\n #loadingBtn\n [text]=\"'\u062A\u0627\u06CC\u06CC\u062F \u06A9\u062F'\"\n [valid]=\"canVerify\"\n [loading]=\"loading\"\n (click)=\"onVerifyCode()\"\n ></bnrc-button-loading>\n </div>\n</form>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { 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.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i2.ButtonLoadingComponent, selector: "bnrc-button-loading", inputs: ["valid", "loading", "text"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
60
|
+
}
|
|
61
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: LoginVerificationComponent, decorators: [{
|
|
62
|
+
type: Component,
|
|
63
|
+
args: [{ selector: 'bnrc-login-verification', changeDetection: ChangeDetectionStrategy.OnPush, template: "<form class=\"tw-px-8 tw-pt-6 tw-pb-8 tw-mb-2 tw-mt-2\" [formGroup]=\"form\">\n <label class=\"tw-block tw-w-full tw-text-gray-500 tw-text-md tw-font-bold tw-mb-4 tw-text-sm\">\n \u06A9\u062F \u0627\u0631\u0633\u0627\u0644 \u0634\u062F\u0647 \u0628\u0647 \u0634\u0645\u0627\u0631\u0647 <strong>{{ mobile }}</strong> \u0631\u0627 \u0648\u0627\u0631\u062F \u0646\u0645\u0627\u06CC\u06CC\u062F.\n </label>\n <a\n class=\"tw-inline-flex tw-flex tw-gap-3 tw-items-center tw-text-blue-600 tw-visited:tw-text-purple-600 tw-text-sm tw-font-extrabold tw-mb-4\"\n (click)=\"changeMobile.emit()\"\n >\u0648\u06CC\u0631\u0627\u06CC\u0634 \u0634\u0645\u0627\u0631\u0647 \u0647\u0645\u0631\u0627\u0647\n <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"tw-w-6\">\n <path\n d=\"M5,18H9.24a1,1,0,0,0,.71-.29l6.92-6.93h0L19.71,8a1,1,0,0,0,0-1.42L15.47,2.29a1,1,0,0,0-1.42,0L11.23,5.12h0L4.29,12.05a1,1,0,0,0-.29.71V17A1,1,0,0,0,5,18ZM14.76,4.41l2.83,2.83L16.17,8.66,13.34,5.83ZM6,13.17l5.93-5.93,2.83,2.83L8.83,16H6ZM21,20H3a1,1,0,0,0,0,2H21a1,1,0,0,0,0-2Z\"\n fill=\"#316bec\"\n />\n </svg>\n </a>\n <div class=\"tw-flex tw-items-center tw-justify-center tw-gap-3 tw-mb-4 tw-flex-row-reverse\">\n <input\n #inputv\n class=\"tw-rounded-lg tw-border tw-w-full tw-py-4 tw-px-3 tw-text-gray-700 tw-leading-tight tw-focus:tw-outline-none tw-focus:tw-shadow-outline\"\n maxlength=\"6\"\n tabindex=\"0\"\n name=\"in1\"\n formControlName=\"in1\"\n />\n </div>\n <div class=\"tw-flex tw-items-center\">\n <bnrc-button-loading\n #loadingBtn\n [text]=\"'\u062A\u0627\u06CC\u06CC\u062F \u06A9\u062F'\"\n [valid]=\"canVerify\"\n [loading]=\"loading\"\n (click)=\"onVerifyCode()\"\n ></bnrc-button-loading>\n </div>\n</form>\n" }]
|
|
64
|
+
}], ctorParameters: () => [{ type: i1.FormBuilder }], propDecorators: { _inputsEl: [{
|
|
65
|
+
type: ViewChildren,
|
|
66
|
+
args: ['inputv']
|
|
67
|
+
}], _loadingBtn: [{
|
|
68
|
+
type: ViewChild,
|
|
69
|
+
args: ['loadingBtn']
|
|
70
|
+
}], otpVerified: [{
|
|
71
|
+
type: Output
|
|
72
|
+
}], changeMobile: [{
|
|
73
|
+
type: Output
|
|
74
|
+
}], mobile: [{
|
|
75
|
+
type: Input
|
|
76
|
+
}], errorTemplate: [{
|
|
77
|
+
type: Input
|
|
78
|
+
}] } });
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4tdmVyaWZpY2F0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLW5vdmluLXJheS1jb3JlL3NyYy9saWIvbG9naW4tdmVyaWZpY2F0aW9uL2xvZ2luLXZlcmlmaWNhdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1ub3Zpbi1yYXktY29yZS9zcmMvbGliL2xvZ2luLXZlcmlmaWNhdGlvbi9sb2dpbi12ZXJpZmljYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBRVQsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLE1BQU0sRUFFTixNQUFNLEVBRU4sU0FBUyxFQUNULFlBQVksRUFDZixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQTBCLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxRQUFRLEVBQTBCLDJCQUEyQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0YsT0FBTyxFQUFFLG1CQUFtQixFQUFFLHlCQUF5QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7QUFRdkYsTUFBTSxPQUFPLDBCQUNULFNBQVEsUUFBcUM7SUFnQjdDLFlBQW9CLEVBQWU7UUFDL0IsS0FBSyxFQUFFLENBQUM7UUFEUSxPQUFFLEdBQUYsRUFBRSxDQUFhO1FBWHpCLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNqQyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFLNUMsVUFBSyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUVwQixnQkFBVyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1QixZQUFPLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3pCLHdCQUFtQixHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBRzlDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUM7WUFDdEIsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzdFLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUNULEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1NBQzdDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSwyQkFBMkIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsWUFBWTtRQUNSLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUNELFNBQVMsQ0FBQyxPQUFlLEVBQUUsSUFBWTtRQUNuQyxLQUFLLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDOUMsUUFBUSxFQUFFLElBQUk7WUFDZCxnQkFBZ0IsRUFBRSx5QkFBeUI7WUFDM0MsSUFBSSxFQUFFO2dCQUNGLE9BQU87YUFDVjtTQUNKLENBQUMsQ0FBQztJQUNQLENBQUM7SUFDRCxZQUFZO1FBQ1IsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFDRCxXQUFXO1FBQ1AsTUFBTSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDNUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsRUFBRSxJQUFJLEVBQUUsR0FBRyxHQUFHLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBQ0QsSUFBSSxNQUFNO1FBQ04sT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFDRCxJQUFJLE9BQU87UUFDUCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDckMsQ0FBQztJQUNELElBQUksU0FBUztRQUNULE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUN2QyxDQUFDOzhHQTVEUSwwQkFBMEI7a0dBQTFCLDBCQUEwQiwrWUN6QnZDLG84REFtQ0E7OzJGRFZhLDBCQUEwQjtrQkFOdEMsU0FBUzsrQkFDSSx5QkFBeUIsbUJBR2xCLHVCQUF1QixDQUFDLE1BQU07Z0ZBTXZCLFNBQVM7c0JBQWhDLFlBQVk7dUJBQUMsUUFBUTtnQkFDRyxXQUFXO3NCQUFuQyxTQUFTO3VCQUFDLFlBQVk7Z0JBQ2IsV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNO2dCQUNFLE1BQU07c0JBQWQsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgaW5qZWN0LFxuICAgIElucHV0LFxuICAgIE5nWm9uZSxcbiAgICBPdXRwdXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIHNpZ25hbCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0NoaWxkcmVuXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFZpZXdCYXNlLCBJTG9naW5WZXJpZmljYXRpb25WaWV3LCBMb2dpblZlcmlmaWNhdGlvbkNvbnRyb2xsZXIgfSBmcm9tICcuLi9jb250cm9sbGVycyc7XG5pbXBvcnQgeyBNZXNzYWdlVG9hc3RTZXJ2aWNlLCBUb2FzdEJvdHRvbUNlbnRlclBvc2l0aW9uIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdibnJjLWxvZ2luLXZlcmlmaWNhdGlvbicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2xvZ2luLXZlcmlmaWNhdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL2xvZ2luLXZlcmlmaWNhdGlvbi5jb21wb25lbnQuc2NzcycsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgTG9naW5WZXJpZmljYXRpb25Db21wb25lbnRcbiAgICBleHRlbmRzIFZpZXdCYXNlPExvZ2luVmVyaWZpY2F0aW9uQ29udHJvbGxlcj5cbiAgICBpbXBsZW1lbnRzIElMb2dpblZlcmlmaWNhdGlvblZpZXdcbntcbiAgICBAVmlld0NoaWxkcmVuKCdpbnB1dHYnKSBfaW5wdXRzRWw6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPjtcbiAgICBAVmlld0NoaWxkKCdsb2FkaW5nQnRuJykgX2xvYWRpbmdCdG46IFRlbXBsYXRlUmVmPGFueT47XG4gICAgQE91dHB1dCgpIG90cFZlcmlmaWVkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBjaGFuZ2VNb2JpbGUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQElucHV0KCkgbW9iaWxlOiBzdHJpbmc7XG4gICAgQElucHV0KCkgZXJyb3JUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBjb250cm9sbGVyOiBMb2dpblZlcmlmaWNhdGlvbkNvbnRyb2xsZXI7XG4gICAgZm9ybTogRm9ybUdyb3VwO1xuICAgIGNhcElkID0gc2lnbmFsKCctJyk7XG5cbiAgICBzaG93Q2FwdGNoYSA9IHNpZ25hbChmYWxzZSk7XG4gICAgX25nWm9uZSA9IGluamVjdChOZ1pvbmUpO1xuICAgIG1lc3NhZ2VUb2FzdFNlcnZpY2UgPSBpbmplY3QoTWVzc2FnZVRvYXN0U2VydmljZSk7XG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5zaG93Q2FwdGNoYS5zZXQoZmFsc2UpO1xuICAgICAgICB0aGlzLmZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgICAgICAgIGluMTogWycnLCBWYWxpZGF0b3JzLmNvbXBvc2UoW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDYpXSldLFxuICAgICAgICAgICAgY2FwOiBbJyddLFxuICAgICAgICAgICAgY2FwSWQ6IFt0aGlzLmNhcElkKCksIFZhbGlkYXRvcnMucmVxdWlyZWRdXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmNvbnRyb2xsZXIgPSBuZXcgTG9naW5WZXJpZmljYXRpb25Db250cm9sbGVyKHRoaXMpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgIH1cblxuICAgIGNvZGVWZXJpZmllZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vdHBWZXJpZmllZC5lbWl0KCk7XG4gICAgfVxuICAgIHNob3dFcnJvcihtZXNzYWdlOiBzdHJpbmcsIGNvZGU6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBzdXBlci5zaG93RXJyb3IobWVzc2FnZSwgY29kZSk7XG4gICAgICAgIHRoaXMubWVzc2FnZVRvYXN0U2VydmljZS5vcGVuKHRoaXMuZXJyb3JUZW1wbGF0ZSwge1xuICAgICAgICAgICAgZHVyYXRpb246IDUwMDAsXG4gICAgICAgICAgICBwb3NpdGlvblN0cmF0ZWd5OiBUb2FzdEJvdHRvbUNlbnRlclBvc2l0aW9uLFxuICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgIG1lc3NhZ2VcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIG9uVmVyaWZ5Q29kZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdmVyaWZ5Q29kZSgpO1xuICAgIH1cbiAgICBfdmVyaWZ5Q29kZSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgeyBpbjEsIGNhcElkLCBjYXAgfSA9IHRoaXMuZm9ybS52YWx1ZTtcbiAgICAgICAgdGhpcy5jb250cm9sbGVyLnZlcmlmeUNvZGUoeyBjb2RlOiBgJHtpbjF9YCwgY2FwSWQsIGNhcCB9KTtcbiAgICB9XG4gICAgZ2V0IGludkFycigpOiBFbGVtZW50UmVmW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5faW5wdXRzRWwudG9BcnJheSgpO1xuICAgIH1cbiAgICBnZXQgbG9hZGluZygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udHJvbGxlci5sb2FkaW5nKCk7XG4gICAgfVxuICAgIGdldCBjYW5WZXJpZnkoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRyb2xsZXIuY2FuVmVyaWZ5KCk7XG4gICAgfVxufVxuIiwiPGZvcm0gY2xhc3M9XCJ0dy1weC04IHR3LXB0LTYgdHctcGItOCB0dy1tYi0yIHR3LW10LTJcIiBbZm9ybUdyb3VwXT1cImZvcm1cIj5cbiAgICA8bGFiZWwgY2xhc3M9XCJ0dy1ibG9jayB0dy13LWZ1bGwgdHctdGV4dC1ncmF5LTUwMCB0dy10ZXh0LW1kIHR3LWZvbnQtYm9sZCB0dy1tYi00IHR3LXRleHQtc21cIj5cbiAgICAgICAg2qnYryDYp9ix2LPYp9mEINi02K/ZhyDYqNmHINi02YXYp9ix2YcgPHN0cm9uZz57eyBtb2JpbGUgfX08L3N0cm9uZz4g2LHYpyDZiNin2LHYryDZhtmF2KfbjNuM2K8uXG4gICAgPC9sYWJlbD5cbiAgICA8YVxuICAgICAgICBjbGFzcz1cInR3LWlubGluZS1mbGV4IHR3LWZsZXggdHctZ2FwLTMgdHctaXRlbXMtY2VudGVyIHR3LXRleHQtYmx1ZS02MDAgdHctdmlzaXRlZDp0dy10ZXh0LXB1cnBsZS02MDAgdHctdGV4dC1zbSB0dy1mb250LWV4dHJhYm9sZCB0dy1tYi00XCJcbiAgICAgICAgKGNsaWNrKT1cImNoYW5nZU1vYmlsZS5lbWl0KClcIlxuICAgICAgICA+2YjbjNix2KfbjNi0INi02YXYp9ix2Ycg2YfZhdix2KfZh1xuICAgICAgICA8c3ZnIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgY2xhc3M9XCJ0dy13LTZcIj5cbiAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgZD1cIk01LDE4SDkuMjRhMSwxLDAsMCwwLC43MS0uMjlsNi45Mi02LjkzaDBMMTkuNzEsOGExLDEsMCwwLDAsMC0xLjQyTDE1LjQ3LDIuMjlhMSwxLDAsMCwwLTEuNDIsMEwxMS4yMyw1LjEyaDBMNC4yOSwxMi4wNWExLDEsMCwwLDAtLjI5LjcxVjE3QTEsMSwwLDAsMCw1LDE4Wk0xNC43Niw0LjQxbDIuODMsMi44M0wxNi4xNyw4LjY2LDEzLjM0LDUuODNaTTYsMTMuMTdsNS45My01LjkzLDIuODMsMi44M0w4LjgzLDE2SDZaTTIxLDIwSDNhMSwxLDAsMCwwLDAsMkgyMWExLDEsMCwwLDAsMC0yWlwiXG4gICAgICAgICAgICAgICAgZmlsbD1cIiMzMTZiZWNcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgPC9zdmc+XG4gICAgPC9hPlxuICAgIDxkaXYgY2xhc3M9XCJ0dy1mbGV4IHR3LWl0ZW1zLWNlbnRlciB0dy1qdXN0aWZ5LWNlbnRlciB0dy1nYXAtMyB0dy1tYi00IHR3LWZsZXgtcm93LXJldmVyc2VcIj5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAjaW5wdXR2XG4gICAgICAgICAgICBjbGFzcz1cInR3LXJvdW5kZWQtbGcgdHctYm9yZGVyIHR3LXctZnVsbCB0dy1weS00IHR3LXB4LTMgdHctdGV4dC1ncmF5LTcwMCB0dy1sZWFkaW5nLXRpZ2h0IHR3LWZvY3VzOnR3LW91dGxpbmUtbm9uZSB0dy1mb2N1czp0dy1zaGFkb3ctb3V0bGluZVwiXG4gICAgICAgICAgICBtYXhsZW5ndGg9XCI2XCJcbiAgICAgICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgICAgICBuYW1lPVwiaW4xXCJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImluMVwiXG4gICAgICAgIC8+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInR3LWZsZXggdHctaXRlbXMtY2VudGVyXCI+XG4gICAgICAgIDxibnJjLWJ1dHRvbi1sb2FkaW5nXG4gICAgICAgICAgICAjbG9hZGluZ0J0blxuICAgICAgICAgICAgW3RleHRdPVwiJ9iq2KfbjNuM2K8g2qnYrydcIlxuICAgICAgICAgICAgW3ZhbGlkXT1cImNhblZlcmlmeVwiXG4gICAgICAgICAgICBbbG9hZGluZ109XCJsb2FkaW5nXCJcbiAgICAgICAgICAgIChjbGljayk9XCJvblZlcmlmeUNvZGUoKVwiXG4gICAgICAgID48L2JucmMtYnV0dG9uLWxvYWRpbmc+XG4gICAgPC9kaXY+XG48L2Zvcm0+XG4iXX0=
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, inject, signal } from '@angular/core';
|
|
2
|
+
import { Router } from '@angular/router';
|
|
3
|
+
import { PortalService } from '../services/portal.service';
|
|
4
|
+
import { BarsaApi } from '../abstract-classes';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "../login-enter-mobile/login-enter-mobile.component";
|
|
7
|
+
import * as i2 from "../login-verification/login-verification.component";
|
|
8
|
+
import * as i3 from "../directives/mobile.directive";
|
|
9
|
+
export class Login2Component {
|
|
10
|
+
constructor() {
|
|
11
|
+
this.mobile = signal('');
|
|
12
|
+
this.loading = signal(false);
|
|
13
|
+
this._router = inject(Router);
|
|
14
|
+
this._portalService = inject(PortalService);
|
|
15
|
+
this.state = signal('enter-mobile');
|
|
16
|
+
this.appSettings = signal({
|
|
17
|
+
BackgroundUrl: '',
|
|
18
|
+
LogoUrl: '',
|
|
19
|
+
HideGovSso: true,
|
|
20
|
+
Section1Title: 'برسانوینرای',
|
|
21
|
+
Section1Description: 'سیستم ساز',
|
|
22
|
+
Subtitle: 'ورود به سامانه',
|
|
23
|
+
Title: 'برسانوینرای'
|
|
24
|
+
});
|
|
25
|
+
this.logoUrl = '';
|
|
26
|
+
this.backgroundUrl = '';
|
|
27
|
+
this.title = '';
|
|
28
|
+
this.hideGovSso = false;
|
|
29
|
+
}
|
|
30
|
+
ngOnInit() {
|
|
31
|
+
fetch(`/assets/login2.json?x=${BarsaApi.LoginFormData.ChangeKeyVersion}`)
|
|
32
|
+
.then((res) => res.json())
|
|
33
|
+
.then((res) => this.appSettings.set(res));
|
|
34
|
+
}
|
|
35
|
+
onOtpSent(mobile) {
|
|
36
|
+
this.mobile.set(mobile);
|
|
37
|
+
this.state.set('verification');
|
|
38
|
+
}
|
|
39
|
+
onChangeMobile() {
|
|
40
|
+
this.state.set('enter-mobile');
|
|
41
|
+
}
|
|
42
|
+
onOtpVerfied() {
|
|
43
|
+
this.loading.set(true);
|
|
44
|
+
this._portalService
|
|
45
|
+
.loadServerStartupData()
|
|
46
|
+
.then(() => this._portalService.loadSystem())
|
|
47
|
+
.then(() => this._portalService.loadUserPortalSetting())
|
|
48
|
+
.then(() => {
|
|
49
|
+
this._router.navigate([this._portalService.DefaultPage?.Route || '/']);
|
|
50
|
+
})
|
|
51
|
+
.catch(() => this.loading.set(false));
|
|
52
|
+
}
|
|
53
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: Login2Component, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
54
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: Login2Component, selector: "bnrc-login2", ngImport: i0, template: "<div class=\"tw-bg-white dark:tw-bg-gray-900 tw-w-full tw-h-full\">\n <div class=\"tw-flex tw-justify-center tw-h-screen\">\n <div\n class=\"tw-hidden tw-bg-cover lg:tw-block lg:tw-w-2/3\"\n [style.background-image]=\"'url(' + appSettings().BackgroundUrl + ')'\"\n >\n <div class=\"tw-flex tw-items-center tw-h-full tw-px-20 tw-bg-gray-900 tw-bg-opacity-40\">\n <div>\n <h2 class=\"tw-text-4xl tw-font-bold tw-text-white\">{{ appSettings().Section1Title }}</h2>\n\n <p class=\"tw-max-w-xl tw-mt-3 tw-text-gray-300\">{{ appSettings().Section1Description }}</p>\n </div>\n </div>\n </div>\n\n <div class=\"tw-flex tw-items-center tw-w-full tw-max-w-md tw-px-6 tw-mx-auto lg:tw-w-2/6\">\n <div class=\"tw-flex-1\">\n <div class=\"tw-text-center tw-flex tw-flex-col tw-items-center\">\n <div class=\"tw-flex tw-gap-2 tw-items-center\">\n <img [src]=\"appSettings().LogoUrl\" />\n <h2 class=\"tw-text-4xl tw-font-bold tw-text-center tw-text-gray-700 dark:tw-text-white\">\n {{ appSettings().Title }}\n </h2>\n </div>\n <div class=\"tw-flex tw-gap-2 tw-items-center\">\n <img [src]=\"appSettings().LogoUrl\" class=\"tw-invisible\" />\n <p class=\"tw-mt-3 tw-text-gray-500 dark:tw-text-gray-300\">{{ appSettings().Subtitle }}</p>\n </div>\n </div>\n <div>\n @if(state()==='enter-mobile'){\n <bnrc-login-enter-mobile\n (otpSent)=\"onOtpSent($event)\"\n [errorTemplate]=\"template\"\n ></bnrc-login-enter-mobile>\n }@else{\n <bnrc-login-verification\n [mobile]=\"mobile()\"\n (changeMobile)=\"onChangeMobile()\"\n (otpVerified)=\"onOtpVerfied()\"\n [errorTemplate]=\"template\"\n ></bnrc-login-verification>\n }\n </div>\n @if(state()==='enter-mobile' && !appSettings().HideGovSso){\n <div class=\"tw-relative tw-flex tw-py-5 tw-items-center tw-px-2\">\n <div class=\"tw-flex-grow tw-border-t tw-border-gray-400\"></div>\n <span class=\"tw-font-[IRANYekan] tw-flex-shrink tw-mx-4 tw-text-gray-400\">\u0648\u0631\u0648\u062F \u0627\u0632 \u0637\u0631\u06CC\u0642 \u062F\u0631\u06AF\u0627\u0647</span>\n <div class=\"tw-flex-grow tw-border-t tw-border-gray-400\"></div>\n </div>\n <div class=\"tw-rounded-lg back-box-color tw-w-full tw-py-3\">\n <div class=\"tw-flex tw-items-center tw-text-center\">\n <a class=\"tw-w-full tw-text-blue-600 tw-visited:tw-text-purple-600 tw-text-sm\" href=\"\"\n >\u0648\u0631\u0648\u062F \u0627\u0632 \u0637\u0631\u06CC\u0642 \u062F\u0631\u06AF\u0627\u0647 \u062F\u0648\u0644\u062A \u0645\u0646\n </a>\n </div>\n </div>\n }\n </div>\n </div>\n </div>\n</div>\n<ng-template let-messageToast #template>\n <p class=\"error\" [dismissible]=\"true\">{{ messageToast.data.message }}</p>\n</ng-template>\n", styles: [":host{font-family:IRANYekanDigits}\n"], dependencies: [{ kind: "component", type: i1.LoginEnterMobileComponent, selector: "bnrc-login-enter-mobile", inputs: ["errorTemplate"], outputs: ["otpSent"] }, { kind: "component", type: i2.LoginVerificationComponent, selector: "bnrc-login-verification", inputs: ["mobile", "errorTemplate"], outputs: ["otpVerified", "changeMobile"] }, { kind: "directive", type: i3.MobileDirective, selector: "[mobile]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
55
|
+
}
|
|
56
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: Login2Component, decorators: [{
|
|
57
|
+
type: Component,
|
|
58
|
+
args: [{ selector: 'bnrc-login2', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"tw-bg-white dark:tw-bg-gray-900 tw-w-full tw-h-full\">\n <div class=\"tw-flex tw-justify-center tw-h-screen\">\n <div\n class=\"tw-hidden tw-bg-cover lg:tw-block lg:tw-w-2/3\"\n [style.background-image]=\"'url(' + appSettings().BackgroundUrl + ')'\"\n >\n <div class=\"tw-flex tw-items-center tw-h-full tw-px-20 tw-bg-gray-900 tw-bg-opacity-40\">\n <div>\n <h2 class=\"tw-text-4xl tw-font-bold tw-text-white\">{{ appSettings().Section1Title }}</h2>\n\n <p class=\"tw-max-w-xl tw-mt-3 tw-text-gray-300\">{{ appSettings().Section1Description }}</p>\n </div>\n </div>\n </div>\n\n <div class=\"tw-flex tw-items-center tw-w-full tw-max-w-md tw-px-6 tw-mx-auto lg:tw-w-2/6\">\n <div class=\"tw-flex-1\">\n <div class=\"tw-text-center tw-flex tw-flex-col tw-items-center\">\n <div class=\"tw-flex tw-gap-2 tw-items-center\">\n <img [src]=\"appSettings().LogoUrl\" />\n <h2 class=\"tw-text-4xl tw-font-bold tw-text-center tw-text-gray-700 dark:tw-text-white\">\n {{ appSettings().Title }}\n </h2>\n </div>\n <div class=\"tw-flex tw-gap-2 tw-items-center\">\n <img [src]=\"appSettings().LogoUrl\" class=\"tw-invisible\" />\n <p class=\"tw-mt-3 tw-text-gray-500 dark:tw-text-gray-300\">{{ appSettings().Subtitle }}</p>\n </div>\n </div>\n <div>\n @if(state()==='enter-mobile'){\n <bnrc-login-enter-mobile\n (otpSent)=\"onOtpSent($event)\"\n [errorTemplate]=\"template\"\n ></bnrc-login-enter-mobile>\n }@else{\n <bnrc-login-verification\n [mobile]=\"mobile()\"\n (changeMobile)=\"onChangeMobile()\"\n (otpVerified)=\"onOtpVerfied()\"\n [errorTemplate]=\"template\"\n ></bnrc-login-verification>\n }\n </div>\n @if(state()==='enter-mobile' && !appSettings().HideGovSso){\n <div class=\"tw-relative tw-flex tw-py-5 tw-items-center tw-px-2\">\n <div class=\"tw-flex-grow tw-border-t tw-border-gray-400\"></div>\n <span class=\"tw-font-[IRANYekan] tw-flex-shrink tw-mx-4 tw-text-gray-400\">\u0648\u0631\u0648\u062F \u0627\u0632 \u0637\u0631\u06CC\u0642 \u062F\u0631\u06AF\u0627\u0647</span>\n <div class=\"tw-flex-grow tw-border-t tw-border-gray-400\"></div>\n </div>\n <div class=\"tw-rounded-lg back-box-color tw-w-full tw-py-3\">\n <div class=\"tw-flex tw-items-center tw-text-center\">\n <a class=\"tw-w-full tw-text-blue-600 tw-visited:tw-text-purple-600 tw-text-sm\" href=\"\"\n >\u0648\u0631\u0648\u062F \u0627\u0632 \u0637\u0631\u06CC\u0642 \u062F\u0631\u06AF\u0627\u0647 \u062F\u0648\u0644\u062A \u0645\u0646\n </a>\n </div>\n </div>\n }\n </div>\n </div>\n </div>\n</div>\n<ng-template let-messageToast #template>\n <p class=\"error\" [dismissible]=\"true\">{{ messageToast.data.message }}</p>\n</ng-template>\n", styles: [":host{font-family:IRANYekanDigits}\n"] }]
|
|
59
|
+
}], ctorParameters: () => [] });
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLW5vdmluLXJheS1jb3JlL3NyYy9saWIvbG9naW4yL2xvZ2luMi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1ub3Zpbi1yYXktY29yZS9zcmMvbGliL2xvZ2luMi9sb2dpbjIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUEwQixNQUFNLGVBQWUsQ0FBQztBQUMzRyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRTNELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7QUFRL0MsTUFBTSxPQUFPLGVBQWU7SUFtQnhCO1FBbEJBLFdBQU0sR0FBRyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDcEIsWUFBTyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QixZQUFPLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3pCLG1CQUFjLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3ZDLFVBQUssR0FBK0IsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzNELGdCQUFXLEdBQTZCLE1BQU0sQ0FBQztZQUMzQyxhQUFhLEVBQUUsRUFBRTtZQUNqQixPQUFPLEVBQUUsRUFBRTtZQUNYLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLGFBQWEsRUFBRSxjQUFjO1lBQzdCLG1CQUFtQixFQUFFLFdBQVc7WUFDaEMsUUFBUSxFQUFFLGdCQUFnQjtZQUMxQixLQUFLLEVBQUUsY0FBYztTQUN4QixDQUFDLENBQUM7UUFDSCxZQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2Isa0JBQWEsR0FBRyxFQUFFLENBQUM7UUFDbkIsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUNYLGVBQVUsR0FBRyxLQUFLLENBQUM7SUFDSixDQUFDO0lBQ2hCLFFBQVE7UUFDSixLQUFLLENBQUMseUJBQXlCLFFBQVEsQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQzthQUNwRSxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQzthQUN6QixJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUNELFNBQVMsQ0FBQyxNQUFjO1FBQ3BCLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFDRCxjQUFjO1FBQ1YsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUNELFlBQVk7UUFDUixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2QixJQUFJLENBQUMsY0FBYzthQUNkLHFCQUFxQixFQUFFO2FBQ3ZCLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsRUFBRSxDQUFDO2FBQzVDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLHFCQUFxQixFQUFFLENBQUM7YUFDdkQsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNQLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsS0FBSyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDM0UsQ0FBQyxDQUFDO2FBQ0QsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDOUMsQ0FBQzs4R0ExQ1EsZUFBZTtrR0FBZixlQUFlLG1EQ1o1Qix3aEhBaUVBOzsyRkRyRGEsZUFBZTtrQkFOM0IsU0FBUzsrQkFDSSxhQUFhLG1CQUdOLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbmplY3QsIHNpZ25hbCwgV3JpdGFibGVTaWduYWwsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFBvcnRhbFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9wb3J0YWwuc2VydmljZSc7XG5pbXBvcnQgeyBMb2dpblN0YXRlIH0gZnJvbSAnLi4vY29udHJvbGxlcnMnO1xuaW1wb3J0IHsgQmFyc2FBcGkgfSBmcm9tICcuLi9hYnN0cmFjdC1jbGFzc2VzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdibnJjLWxvZ2luMicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2xvZ2luMi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL2xvZ2luMi5jb21wb25lbnQuc2NzcycsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgTG9naW4yQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBtb2JpbGUgPSBzaWduYWwoJycpO1xuICAgIGxvYWRpbmcgPSBzaWduYWwoZmFsc2UpO1xuICAgIF9yb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcbiAgICBfcG9ydGFsU2VydmljZSA9IGluamVjdChQb3J0YWxTZXJ2aWNlKTtcbiAgICBzdGF0ZTogV3JpdGFibGVTaWduYWw8TG9naW5TdGF0ZT4gPSBzaWduYWwoJ2VudGVyLW1vYmlsZScpO1xuICAgIGFwcFNldHRpbmdzOiBXcml0YWJsZVNpZ25hbDxTZXR0aW5ncz4gPSBzaWduYWwoe1xuICAgICAgICBCYWNrZ3JvdW5kVXJsOiAnJyxcbiAgICAgICAgTG9nb1VybDogJycsXG4gICAgICAgIEhpZGVHb3ZTc286IHRydWUsXG4gICAgICAgIFNlY3Rpb24xVGl0bGU6ICfYqNix2LPYp9mG2YjbjNmG4oCM2LHYp9uMJyxcbiAgICAgICAgU2VjdGlvbjFEZXNjcmlwdGlvbjogJ9iz24zYs9iq2YUg2LPYp9iyJyxcbiAgICAgICAgU3VidGl0bGU6ICfZiNix2YjYryDYqNmHINiz2KfZhdin2YbZhycsXG4gICAgICAgIFRpdGxlOiAn2KjYsdiz2KfZhtmI24zZhuKAjNix2KfbjCdcbiAgICB9KTtcbiAgICBsb2dvVXJsID0gJyc7XG4gICAgYmFja2dyb3VuZFVybCA9ICcnO1xuICAgIHRpdGxlID0gJyc7XG4gICAgaGlkZUdvdlNzbyA9IGZhbHNlO1xuICAgIGNvbnN0cnVjdG9yKCkge31cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgZmV0Y2goYC9hc3NldHMvbG9naW4yLmpzb24/eD0ke0JhcnNhQXBpLkxvZ2luRm9ybURhdGEuQ2hhbmdlS2V5VmVyc2lvbn1gKVxuICAgICAgICAgICAgLnRoZW4oKHJlcykgPT4gcmVzLmpzb24oKSlcbiAgICAgICAgICAgIC50aGVuKChyZXMpID0+IHRoaXMuYXBwU2V0dGluZ3Muc2V0KHJlcykpO1xuICAgIH1cbiAgICBvbk90cFNlbnQobW9iaWxlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tb2JpbGUuc2V0KG1vYmlsZSk7XG4gICAgICAgIHRoaXMuc3RhdGUuc2V0KCd2ZXJpZmljYXRpb24nKTtcbiAgICB9XG4gICAgb25DaGFuZ2VNb2JpbGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3RhdGUuc2V0KCdlbnRlci1tb2JpbGUnKTtcbiAgICB9XG4gICAgb25PdHBWZXJmaWVkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmxvYWRpbmcuc2V0KHRydWUpO1xuICAgICAgICB0aGlzLl9wb3J0YWxTZXJ2aWNlXG4gICAgICAgICAgICAubG9hZFNlcnZlclN0YXJ0dXBEYXRhKClcbiAgICAgICAgICAgIC50aGVuKCgpID0+IHRoaXMuX3BvcnRhbFNlcnZpY2UubG9hZFN5c3RlbSgpKVxuICAgICAgICAgICAgLnRoZW4oKCkgPT4gdGhpcy5fcG9ydGFsU2VydmljZS5sb2FkVXNlclBvcnRhbFNldHRpbmcoKSlcbiAgICAgICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGUoW3RoaXMuX3BvcnRhbFNlcnZpY2UuRGVmYXVsdFBhZ2U/LlJvdXRlIHx8ICcvJ10pO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5jYXRjaCgoKSA9PiB0aGlzLmxvYWRpbmcuc2V0KGZhbHNlKSk7XG4gICAgfVxufVxuaW50ZXJmYWNlIFNldHRpbmdzIHtcbiAgICBUaXRsZTogc3RyaW5nO1xuICAgIFN1YnRpdGxlOiBzdHJpbmc7XG4gICAgU2VjdGlvbjFUaXRsZTogc3RyaW5nO1xuICAgIFNlY3Rpb24xRGVzY3JpcHRpb246IHN0cmluZztcbiAgICBMb2dvVXJsOiBzdHJpbmc7XG4gICAgQmFja2dyb3VuZFVybDogc3RyaW5nO1xuICAgIEhpZGVHb3ZTc286IGJvb2xlYW47XG59XG4iLCI8ZGl2IGNsYXNzPVwidHctYmctd2hpdGUgZGFyazp0dy1iZy1ncmF5LTkwMCB0dy13LWZ1bGwgdHctaC1mdWxsXCI+XG4gICAgPGRpdiBjbGFzcz1cInR3LWZsZXggdHctanVzdGlmeS1jZW50ZXIgdHctaC1zY3JlZW5cIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJ0dy1oaWRkZW4gdHctYmctY292ZXIgbGc6dHctYmxvY2sgbGc6dHctdy0yLzNcIlxuICAgICAgICAgICAgW3N0eWxlLmJhY2tncm91bmQtaW1hZ2VdPVwiJ3VybCgnICsgYXBwU2V0dGluZ3MoKS5CYWNrZ3JvdW5kVXJsICsgJyknXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInR3LWZsZXggdHctaXRlbXMtY2VudGVyIHR3LWgtZnVsbCB0dy1weC0yMCB0dy1iZy1ncmF5LTkwMCB0dy1iZy1vcGFjaXR5LTQwXCI+XG4gICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgPGgyIGNsYXNzPVwidHctdGV4dC00eGwgdHctZm9udC1ib2xkIHR3LXRleHQtd2hpdGVcIj57eyBhcHBTZXR0aW5ncygpLlNlY3Rpb24xVGl0bGUgfX08L2gyPlxuXG4gICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidHctbWF4LXcteGwgdHctbXQtMyB0dy10ZXh0LWdyYXktMzAwXCI+e3sgYXBwU2V0dGluZ3MoKS5TZWN0aW9uMURlc2NyaXB0aW9uIH19PC9wPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0dy1mbGV4IHR3LWl0ZW1zLWNlbnRlciB0dy13LWZ1bGwgdHctbWF4LXctbWQgdHctcHgtNiB0dy1teC1hdXRvIGxnOnR3LXctMi82XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHctZmxleC0xXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInR3LXRleHQtY2VudGVyIHR3LWZsZXggdHctZmxleC1jb2wgdHctaXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0dy1mbGV4IHR3LWdhcC0yIHR3LWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBbc3JjXT1cImFwcFNldHRpbmdzKCkuTG9nb1VybFwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aDIgY2xhc3M9XCJ0dy10ZXh0LTR4bCB0dy1mb250LWJvbGQgdHctdGV4dC1jZW50ZXIgdHctdGV4dC1ncmF5LTcwMCBkYXJrOnR3LXRleHQtd2hpdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBhcHBTZXR0aW5ncygpLlRpdGxlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2gyPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInR3LWZsZXggdHctZ2FwLTIgdHctaXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW1nIFtzcmNdPVwiYXBwU2V0dGluZ3MoKS5Mb2dvVXJsXCIgY2xhc3M9XCJ0dy1pbnZpc2libGVcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ0dy1tdC0zIHR3LXRleHQtZ3JheS01MDAgZGFyazp0dy10ZXh0LWdyYXktMzAwXCI+e3sgYXBwU2V0dGluZ3MoKS5TdWJ0aXRsZSB9fTwvcD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgQGlmKHN0YXRlKCk9PT0nZW50ZXItbW9iaWxlJyl7XG4gICAgICAgICAgICAgICAgICAgIDxibnJjLWxvZ2luLWVudGVyLW1vYmlsZVxuICAgICAgICAgICAgICAgICAgICAgICAgKG90cFNlbnQpPVwib25PdHBTZW50KCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2Vycm9yVGVtcGxhdGVdPVwidGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICA+PC9ibnJjLWxvZ2luLWVudGVyLW1vYmlsZT5cbiAgICAgICAgICAgICAgICAgICAgfUBlbHNle1xuICAgICAgICAgICAgICAgICAgICA8Ym5yYy1sb2dpbi12ZXJpZmljYXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgIFttb2JpbGVdPVwibW9iaWxlKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZU1vYmlsZSk9XCJvbkNoYW5nZU1vYmlsZSgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChvdHBWZXJpZmllZCk9XCJvbk90cFZlcmZpZWQoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZXJyb3JUZW1wbGF0ZV09XCJ0ZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgID48L2JucmMtbG9naW4tdmVyaWZpY2F0aW9uPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgQGlmKHN0YXRlKCk9PT0nZW50ZXItbW9iaWxlJyAmJiAhYXBwU2V0dGluZ3MoKS5IaWRlR292U3NvKXtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHctcmVsYXRpdmUgdHctZmxleCB0dy1weS01IHR3LWl0ZW1zLWNlbnRlciB0dy1weC0yXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0dy1mbGV4LWdyb3cgdHctYm9yZGVyLXQgdHctYm9yZGVyLWdyYXktNDAwXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHctZm9udC1bSVJBTllla2FuXSB0dy1mbGV4LXNocmluayB0dy1teC00IHR3LXRleHQtZ3JheS00MDBcIj7ZiNix2YjYryDYp9iyINi32LHbjNmCINiv2LHar9in2Yc8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0dy1mbGV4LWdyb3cgdHctYm9yZGVyLXQgdHctYm9yZGVyLWdyYXktNDAwXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInR3LXJvdW5kZWQtbGcgYmFjay1ib3gtY29sb3IgdHctdy1mdWxsIHR3LXB5LTNcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInR3LWZsZXggdHctaXRlbXMtY2VudGVyIHR3LXRleHQtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cInR3LXctZnVsbCB0dy10ZXh0LWJsdWUtNjAwIHR3LXZpc2l0ZWQ6dHctdGV4dC1wdXJwbGUtNjAwIHR3LXRleHQtc21cIiBocmVmPVwiXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+2YjYsdmI2K8g2KfYsiDYt9ix24zZgiDYr9ix2q/Yp9mHINiv2YjZhNiqINmF2YZcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG48bmctdGVtcGxhdGUgbGV0LW1lc3NhZ2VUb2FzdCAjdGVtcGxhdGU+XG4gICAgPHAgY2xhc3M9XCJlcnJvclwiIFtkaXNtaXNzaWJsZV09XCJ0cnVlXCI+e3sgbWVzc2FnZVRvYXN0LmRhdGEubWVzc2FnZSB9fTwvcD5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|