@firestitch/2fa 12.4.4 → 12.6.0
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/app/enums/verification-method-type.enum.d.ts +5 -5
- package/app/interfaces/verification-method.interface.d.ts +11 -11
- package/app/modules/code-input/code-input.module.d.ts +8 -8
- package/app/modules/code-input/components/code-input/code-input.component.d.ts +13 -13
- package/app/modules/code-input/components/code-input/index.d.ts +1 -1
- package/app/modules/code-input/index.d.ts +1 -1
- package/app/modules/{manage → defaulted}/components/defaulted/defaulted.component.d.ts +5 -5
- package/app/modules/{manage → defaulted}/components/defaulted/index.d.ts +1 -1
- package/app/modules/defaulted/defaulted.module.d.ts +7 -0
- package/app/modules/manage/components/2fa-manage/2fa-manage.component.d.ts +28 -28
- package/app/modules/manage/components/2fa-manage/index.d.ts +1 -1
- package/app/modules/manage/components/app/app.component.d.ts +31 -31
- package/app/modules/manage/components/app/index.d.ts +1 -1
- package/app/modules/manage/components/email/email.component.d.ts +26 -26
- package/app/modules/manage/components/email/index.d.ts +1 -1
- package/app/modules/manage/components/emails/emails.component.d.ts +17 -17
- package/app/modules/manage/components/emails/index.d.ts +1 -1
- package/app/modules/manage/components/manage-methods/index.d.ts +1 -1
- package/app/modules/manage/components/manage-methods/manage-methods.component.d.ts +35 -35
- package/app/modules/manage/components/number/index.d.ts +1 -1
- package/app/modules/manage/components/number/number.component.d.ts +27 -27
- package/app/modules/manage/components/numbers/index.d.ts +1 -1
- package/app/modules/manage/components/numbers/numbers.component.d.ts +18 -18
- package/app/modules/manage/components/verification-methods/index.d.ts +1 -1
- package/app/modules/manage/components/verification-methods/verification-methods.component.d.ts +20 -18
- package/app/modules/manage/fs-2f-manage.module.d.ts +32 -32
- package/app/modules/manage/services/index.d.ts +1 -1
- package/app/modules/manage/services/two-factor-manage.service.d.ts +42 -42
- package/app/modules/resend/components/resend/index.d.ts +1 -1
- package/app/modules/resend/components/resend/resend.component.d.ts +14 -14
- package/app/modules/resend/resend.module.d.ts +9 -9
- package/app/modules/verification/components/2fa-verification/2fa-verification.component.d.ts +33 -33
- package/app/modules/verification/components/2fa-verification-code/2fa-verification-code.component.d.ts +17 -17
- package/app/modules/verification/components/2fa-verification-methods/2fa-verification-methods.component.d.ts +22 -22
- package/app/modules/verification/fs-2fa-verification.module.d.ts +23 -23
- package/app/modules/verification-methods/components/verification-methods/verification-methods.component.d.ts +21 -0
- package/app/modules/verification-methods/fs-2f-verification-methods.module.d.ts +14 -0
- package/bundles/firestitch-2fa.umd.js +1316 -1198
- package/bundles/firestitch-2fa.umd.js.map +1 -1
- package/esm2015/app/enums/verification-method-type.enum.js +6 -6
- package/esm2015/app/interfaces/verification-method.interface.js +1 -1
- package/esm2015/app/modules/code-input/code-input.module.js +25 -25
- package/esm2015/app/modules/code-input/components/code-input/code-input.component.js +36 -36
- package/esm2015/app/modules/code-input/components/code-input/index.js +1 -1
- package/esm2015/app/modules/code-input/index.js +1 -1
- package/esm2015/app/modules/{manage → defaulted}/components/defaulted/defaulted.component.js +16 -16
- package/esm2015/app/modules/defaulted/components/defaulted/index.js +2 -0
- package/esm2015/app/modules/defaulted/defaulted.module.js +18 -0
- package/esm2015/app/modules/manage/components/2fa-manage/2fa-manage.component.js +100 -100
- package/esm2015/app/modules/manage/components/2fa-manage/index.js +1 -1
- package/esm2015/app/modules/manage/components/app/app.component.js +83 -82
- package/esm2015/app/modules/manage/components/app/index.js +1 -1
- package/esm2015/app/modules/manage/components/email/email.component.js +83 -82
- package/esm2015/app/modules/manage/components/email/index.js +1 -1
- package/esm2015/app/modules/manage/components/emails/emails.component.js +42 -42
- package/esm2015/app/modules/manage/components/emails/index.js +1 -1
- package/esm2015/app/modules/manage/components/manage-methods/index.js +1 -1
- package/esm2015/app/modules/manage/components/manage-methods/manage-methods.component.js +125 -125
- package/esm2015/app/modules/manage/components/number/index.js +1 -1
- package/esm2015/app/modules/manage/components/number/number.component.js +85 -84
- package/esm2015/app/modules/manage/components/numbers/index.js +1 -1
- package/esm2015/app/modules/manage/components/numbers/numbers.component.js +43 -43
- package/esm2015/app/modules/manage/components/verification-methods/index.js +1 -1
- package/esm2015/app/modules/manage/components/verification-methods/verification-methods.component.js +65 -63
- package/esm2015/app/modules/manage/fs-2f-manage.module.js +113 -112
- package/esm2015/app/modules/manage/services/index.js +1 -1
- package/esm2015/app/modules/manage/services/two-factor-manage.service.js +132 -132
- package/esm2015/app/modules/resend/components/resend/index.js +1 -1
- package/esm2015/app/modules/resend/components/resend/resend.component.js +39 -39
- package/esm2015/app/modules/resend/resend.module.js +29 -29
- package/esm2015/app/modules/verification/components/2fa-verification/2fa-verification.component.js +112 -112
- package/esm2015/app/modules/verification/components/2fa-verification-code/2fa-verification-code.component.js +58 -58
- package/esm2015/app/modules/verification/components/2fa-verification-methods/2fa-verification-methods.component.js +62 -62
- package/esm2015/app/modules/verification/fs-2fa-verification.module.js +87 -87
- package/esm2015/app/modules/verification-methods/components/verification-methods/verification-methods.component.js +66 -0
- package/esm2015/app/modules/verification-methods/fs-2f-verification-methods.module.js +48 -0
- package/esm2015/firestitch-2fa.js +4 -4
- package/esm2015/public_api.js +8 -6
- package/fesm2015/firestitch-2fa.js +1193 -1085
- package/fesm2015/firestitch-2fa.js.map +1 -1
- package/firestitch-2fa.d.ts +5 -5
- package/package.json +3 -1
- package/public_api.d.ts +8 -6
- package/esm2015/app/modules/manage/components/defaulted/index.js +0 -2
|
@@ -1,133 +1,133 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { MatDialog } from '@angular/material/dialog';
|
|
3
|
-
import { VerificationMethodType } from '../../../enums/verification-method-type.enum';
|
|
4
|
-
import { BehaviorSubject, of, Subject } from 'rxjs';
|
|
5
|
-
import { switchMap, takeUntil, tap } from 'rxjs/operators';
|
|
6
|
-
import { AppComponent } from '../components/app';
|
|
7
|
-
import { EmailComponent } from '../components/email';
|
|
8
|
-
import { NumberComponent } from '../components/number';
|
|
9
|
-
import * as i0 from "@angular/core";
|
|
10
|
-
import * as i1 from "@angular/material/dialog";
|
|
11
|
-
export class TwoFactorManageService {
|
|
12
|
-
constructor(_dialog) {
|
|
13
|
-
this._dialog = _dialog;
|
|
14
|
-
this._destroy$ = new Subject();
|
|
15
|
-
this._verificationMethods$ = new BehaviorSubject([]);
|
|
16
|
-
}
|
|
17
|
-
get verificationMethods$() {
|
|
18
|
-
return this._verificationMethods$
|
|
19
|
-
.pipe(takeUntil(this._destroy$));
|
|
20
|
-
}
|
|
21
|
-
get verificationMethods() {
|
|
22
|
-
return this._verificationMethods$.getValue();
|
|
23
|
-
}
|
|
24
|
-
get hasVerificationMethods() {
|
|
25
|
-
return !!this._verificationMethods$.getValue().length;
|
|
26
|
-
}
|
|
27
|
-
get emailVerificationMethods() {
|
|
28
|
-
return this.getVerificationMethods(VerificationMethodType.Email);
|
|
29
|
-
}
|
|
30
|
-
get smsVerificationMethods() {
|
|
31
|
-
return this.getVerificationMethods(VerificationMethodType.Sms);
|
|
32
|
-
}
|
|
33
|
-
get appVerificationMethods() {
|
|
34
|
-
return this.getVerificationMethods(VerificationMethodType.App);
|
|
35
|
-
}
|
|
36
|
-
getVerificationMethods(type) {
|
|
37
|
-
return this.verificationMethods
|
|
38
|
-
.filter((verificationMethod) => {
|
|
39
|
-
return verificationMethod.type === type;
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
hasVerificationMethod(type) {
|
|
43
|
-
return this.verificationMethods
|
|
44
|
-
.some((verificationMethod) => {
|
|
45
|
-
return verificationMethod.type === type;
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
registerVerificationMethodResend(value) {
|
|
49
|
-
this._verificationMethodResend = value;
|
|
50
|
-
}
|
|
51
|
-
registerVerificationMethodFetch(value) {
|
|
52
|
-
this._verificationMethodFetch = value;
|
|
53
|
-
}
|
|
54
|
-
registerVerificationMethodDelete(value) {
|
|
55
|
-
this._verificationMethodDelete = value;
|
|
56
|
-
}
|
|
57
|
-
registerVerificationMethodCreate(value) {
|
|
58
|
-
this._verificationMethodCreate = value;
|
|
59
|
-
}
|
|
60
|
-
registerVerificationMethodVerify(value) {
|
|
61
|
-
this._verificationMethodVerify = value;
|
|
62
|
-
}
|
|
63
|
-
registerAccountVerify(value) {
|
|
64
|
-
this._accountVerify = value;
|
|
65
|
-
}
|
|
66
|
-
verificationMethodDelete(verificationMethod) {
|
|
67
|
-
return this._verificationMethodDelete(verificationMethod)
|
|
68
|
-
.pipe(tap(() => {
|
|
69
|
-
this.verificationMethodFetch();
|
|
70
|
-
}));
|
|
71
|
-
}
|
|
72
|
-
verificationMethodVerify(verificationMethod) {
|
|
73
|
-
return this._verificationMethodVerify(verificationMethod)
|
|
74
|
-
.pipe(tap(() => {
|
|
75
|
-
this.verificationMethodFetch();
|
|
76
|
-
}));
|
|
77
|
-
}
|
|
78
|
-
verificationMethodCreate(verificationMethod) {
|
|
79
|
-
return this._verificationMethodCreate(verificationMethod);
|
|
80
|
-
}
|
|
81
|
-
verificationMethodResend() {
|
|
82
|
-
return this._verificationMethodResend();
|
|
83
|
-
}
|
|
84
|
-
verificationMethodFetch() {
|
|
85
|
-
this._verificationMethodFetch()
|
|
86
|
-
.subscribe((verificationMethods) => {
|
|
87
|
-
this._verificationMethods$.next(verificationMethods);
|
|
88
|
-
});
|
|
89
|
-
}
|
|
90
|
-
accountVerify() {
|
|
91
|
-
return this._accountVerify ? this._accountVerify() : of(true);
|
|
92
|
-
}
|
|
93
|
-
ngOnDestroy() {
|
|
94
|
-
this._destroy$.next();
|
|
95
|
-
this._destroy$.complete();
|
|
96
|
-
}
|
|
97
|
-
addSms(defaultCountry) {
|
|
98
|
-
return this.accountVerify()
|
|
99
|
-
.pipe(switchMap(() => this._dialog.open(NumberComponent, {
|
|
100
|
-
data: {
|
|
101
|
-
defaultCountry,
|
|
102
|
-
twoFactorManageService: this,
|
|
103
|
-
},
|
|
104
|
-
})
|
|
105
|
-
.afterClosed()), tap(() => {
|
|
106
|
-
this.verificationMethodFetch();
|
|
107
|
-
}), takeUntil(this._destroy$));
|
|
108
|
-
}
|
|
109
|
-
addEmail() {
|
|
110
|
-
return this.accountVerify()
|
|
111
|
-
.pipe(switchMap(() => this._dialog.open(EmailComponent, {
|
|
112
|
-
data: { twoFactorManageService: this },
|
|
113
|
-
})
|
|
114
|
-
.afterClosed()), tap(() => {
|
|
115
|
-
this.verificationMethodFetch();
|
|
116
|
-
}), takeUntil(this._destroy$));
|
|
117
|
-
}
|
|
118
|
-
addApp() {
|
|
119
|
-
return this.accountVerify()
|
|
120
|
-
.pipe(switchMap(() => this._dialog.open(AppComponent, {
|
|
121
|
-
data: { twoFactorManageService: this },
|
|
122
|
-
})
|
|
123
|
-
.afterClosed()), tap(() => {
|
|
124
|
-
this.verificationMethodFetch();
|
|
125
|
-
}), takeUntil(this._destroy$));
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
TwoFactorManageService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TwoFactorManageService, deps: [{ token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
129
|
-
TwoFactorManageService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TwoFactorManageService });
|
|
130
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TwoFactorManageService, decorators: [{
|
|
131
|
-
type: Injectable
|
|
132
|
-
}], ctorParameters: function () { return [{ type: i1.MatDialog }]; } });
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { MatDialog } from '@angular/material/dialog';
|
|
3
|
+
import { VerificationMethodType } from '../../../enums/verification-method-type.enum';
|
|
4
|
+
import { BehaviorSubject, of, Subject } from 'rxjs';
|
|
5
|
+
import { switchMap, takeUntil, tap } from 'rxjs/operators';
|
|
6
|
+
import { AppComponent } from '../components/app';
|
|
7
|
+
import { EmailComponent } from '../components/email';
|
|
8
|
+
import { NumberComponent } from '../components/number';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
import * as i1 from "@angular/material/dialog";
|
|
11
|
+
export class TwoFactorManageService {
|
|
12
|
+
constructor(_dialog) {
|
|
13
|
+
this._dialog = _dialog;
|
|
14
|
+
this._destroy$ = new Subject();
|
|
15
|
+
this._verificationMethods$ = new BehaviorSubject([]);
|
|
16
|
+
}
|
|
17
|
+
get verificationMethods$() {
|
|
18
|
+
return this._verificationMethods$
|
|
19
|
+
.pipe(takeUntil(this._destroy$));
|
|
20
|
+
}
|
|
21
|
+
get verificationMethods() {
|
|
22
|
+
return this._verificationMethods$.getValue();
|
|
23
|
+
}
|
|
24
|
+
get hasVerificationMethods() {
|
|
25
|
+
return !!this._verificationMethods$.getValue().length;
|
|
26
|
+
}
|
|
27
|
+
get emailVerificationMethods() {
|
|
28
|
+
return this.getVerificationMethods(VerificationMethodType.Email);
|
|
29
|
+
}
|
|
30
|
+
get smsVerificationMethods() {
|
|
31
|
+
return this.getVerificationMethods(VerificationMethodType.Sms);
|
|
32
|
+
}
|
|
33
|
+
get appVerificationMethods() {
|
|
34
|
+
return this.getVerificationMethods(VerificationMethodType.App);
|
|
35
|
+
}
|
|
36
|
+
getVerificationMethods(type) {
|
|
37
|
+
return this.verificationMethods
|
|
38
|
+
.filter((verificationMethod) => {
|
|
39
|
+
return verificationMethod.type === type;
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
hasVerificationMethod(type) {
|
|
43
|
+
return this.verificationMethods
|
|
44
|
+
.some((verificationMethod) => {
|
|
45
|
+
return verificationMethod.type === type;
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
registerVerificationMethodResend(value) {
|
|
49
|
+
this._verificationMethodResend = value;
|
|
50
|
+
}
|
|
51
|
+
registerVerificationMethodFetch(value) {
|
|
52
|
+
this._verificationMethodFetch = value;
|
|
53
|
+
}
|
|
54
|
+
registerVerificationMethodDelete(value) {
|
|
55
|
+
this._verificationMethodDelete = value;
|
|
56
|
+
}
|
|
57
|
+
registerVerificationMethodCreate(value) {
|
|
58
|
+
this._verificationMethodCreate = value;
|
|
59
|
+
}
|
|
60
|
+
registerVerificationMethodVerify(value) {
|
|
61
|
+
this._verificationMethodVerify = value;
|
|
62
|
+
}
|
|
63
|
+
registerAccountVerify(value) {
|
|
64
|
+
this._accountVerify = value;
|
|
65
|
+
}
|
|
66
|
+
verificationMethodDelete(verificationMethod) {
|
|
67
|
+
return this._verificationMethodDelete(verificationMethod)
|
|
68
|
+
.pipe(tap(() => {
|
|
69
|
+
this.verificationMethodFetch();
|
|
70
|
+
}));
|
|
71
|
+
}
|
|
72
|
+
verificationMethodVerify(verificationMethod) {
|
|
73
|
+
return this._verificationMethodVerify(verificationMethod)
|
|
74
|
+
.pipe(tap(() => {
|
|
75
|
+
this.verificationMethodFetch();
|
|
76
|
+
}));
|
|
77
|
+
}
|
|
78
|
+
verificationMethodCreate(verificationMethod) {
|
|
79
|
+
return this._verificationMethodCreate(verificationMethod);
|
|
80
|
+
}
|
|
81
|
+
verificationMethodResend() {
|
|
82
|
+
return this._verificationMethodResend();
|
|
83
|
+
}
|
|
84
|
+
verificationMethodFetch() {
|
|
85
|
+
this._verificationMethodFetch()
|
|
86
|
+
.subscribe((verificationMethods) => {
|
|
87
|
+
this._verificationMethods$.next(verificationMethods);
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
accountVerify() {
|
|
91
|
+
return this._accountVerify ? this._accountVerify() : of(true);
|
|
92
|
+
}
|
|
93
|
+
ngOnDestroy() {
|
|
94
|
+
this._destroy$.next();
|
|
95
|
+
this._destroy$.complete();
|
|
96
|
+
}
|
|
97
|
+
addSms(defaultCountry) {
|
|
98
|
+
return this.accountVerify()
|
|
99
|
+
.pipe(switchMap(() => this._dialog.open(NumberComponent, {
|
|
100
|
+
data: {
|
|
101
|
+
defaultCountry,
|
|
102
|
+
twoFactorManageService: this,
|
|
103
|
+
},
|
|
104
|
+
})
|
|
105
|
+
.afterClosed()), tap(() => {
|
|
106
|
+
this.verificationMethodFetch();
|
|
107
|
+
}), takeUntil(this._destroy$));
|
|
108
|
+
}
|
|
109
|
+
addEmail() {
|
|
110
|
+
return this.accountVerify()
|
|
111
|
+
.pipe(switchMap(() => this._dialog.open(EmailComponent, {
|
|
112
|
+
data: { twoFactorManageService: this },
|
|
113
|
+
})
|
|
114
|
+
.afterClosed()), tap(() => {
|
|
115
|
+
this.verificationMethodFetch();
|
|
116
|
+
}), takeUntil(this._destroy$));
|
|
117
|
+
}
|
|
118
|
+
addApp() {
|
|
119
|
+
return this.accountVerify()
|
|
120
|
+
.pipe(switchMap(() => this._dialog.open(AppComponent, {
|
|
121
|
+
data: { twoFactorManageService: this },
|
|
122
|
+
})
|
|
123
|
+
.afterClosed()), tap(() => {
|
|
124
|
+
this.verificationMethodFetch();
|
|
125
|
+
}), takeUntil(this._destroy$));
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
TwoFactorManageService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TwoFactorManageService, deps: [{ token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
129
|
+
TwoFactorManageService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TwoFactorManageService });
|
|
130
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TwoFactorManageService, decorators: [{
|
|
131
|
+
type: Injectable
|
|
132
|
+
}], ctorParameters: function () { return [{ type: i1.MatDialog }]; } });
|
|
133
133
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHdvLWZhY3Rvci1tYW5hZ2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9tYW5hZ2Uvc2VydmljZXMvdHdvLWZhY3Rvci1tYW5hZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBRXRELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUV0RixPQUFPLEVBQUUsZUFBZSxFQUFjLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7OztBQUl2RCxNQUFNLE9BQU8sc0JBQXNCO0lBWWpDLFlBQ1UsT0FBa0I7UUFBbEIsWUFBTyxHQUFQLE9BQU8sQ0FBVztRQVhwQixjQUFTLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQVExQiwwQkFBcUIsR0FBRyxJQUFJLGVBQWUsQ0FBUSxFQUFFLENBQUMsQ0FBQztJQUk1RCxDQUFDO0lBRUosSUFBVyxvQkFBb0I7UUFDN0IsT0FBTyxJQUFJLENBQUMscUJBQXFCO2FBQzlCLElBQUksQ0FDSCxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUMxQixDQUFDO0lBQ04sQ0FBQztJQUVELElBQVcsbUJBQW1CO1FBQzVCLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixDQUFDLFFBQVEsRUFBRSxD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Q0FBQyxhQUFhLEVBQUU7YUFDeEIsSUFBSSxDQUNILFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDOUMsSUFBSSxFQUFFLEVBQUUsc0JBQXNCLEVBQUUsSUFBSSxFQUFHO1NBQ3hDLENBQUM7YUFDQyxXQUFXLEVBQUUsQ0FDZixFQUNELEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDUCxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztRQUNqQyxDQUFDLENBQUMsRUFDRixTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUMxQixDQUFDO0lBQ04sQ0FBQzs7b0hBektVLHNCQUFzQjt3SEFBdEIsc0JBQXNCOzRGQUF0QixzQkFBc0I7a0JBRGxDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IFZlcmlmaWNhdGlvbk1ldGhvZFR5cGUgfSBmcm9tICcuLi8uLi8uLi9lbnVtcy92ZXJpZmljYXRpb24tbWV0aG9kLXR5cGUuZW51bSc7XG5cbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHN3aXRjaE1hcCwgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEFwcENvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvYXBwJztcbmltcG9ydCB7IEVtYWlsQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9lbWFpbCc7XG5pbXBvcnQgeyBOdW1iZXJDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL251bWJlcic7XG5cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFR3b0ZhY3Rvck1hbmFnZVNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXG4gIHByaXZhdGUgX2Rlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcblxuICBwcml2YXRlIF92ZXJpZmljYXRpb25NZXRob2RGZXRjaDogKCkgPT4gT2JzZXJ2YWJsZTxhbnlbXT47XG4gIHByaXZhdGUgX3ZlcmlmaWNhdGlvbk1ldGhvZENyZWF0ZTogKHZlcmlmaWNhdGlvbk1ldGhvZCkgPT4gT2JzZXJ2YWJsZTxhbnk+O1xuICBwcml2YXRlIF92ZXJpZmljYXRpb25NZXRob2REZWxldGU6ICh2ZXJpZmljYXRpb25NZXRob2QpID0+IE9ic2VydmFibGU8YW55PjtcbiAgcHJpdmF0ZSBfdmVyaWZpY2F0aW9uTWV0aG9kVmVyaWZ5OiAodmVyaWZpY2F0aW9uTWV0aG9kKSA9PiBPYnNlcnZhYmxlPGFueT47XG4gIHByaXZhdGUgX3ZlcmlmaWNhdGlvbk1ldGhvZFJlc2VuZDogKCkgPT4gT2JzZXJ2YWJsZTxhbnk+O1xuICBwcml2YXRlIF9hY2NvdW50VmVyaWZ5OiAoKSA9PiBPYnNlcnZhYmxlPGFueVtdPjtcbiAgcHJpdmF0ZSBfdmVyaWZpY2F0aW9uTWV0aG9kcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueVtdPihbXSk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfZGlhbG9nOiBNYXREaWFsb2csXG4gICkge31cblxuICBwdWJsaWMgZ2V0IHZlcmlmaWNhdGlvbk1ldGhvZHMkKCkge1xuICAgIHJldHVybiB0aGlzLl92ZXJpZmljYXRpb25NZXRob2RzJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICApO1xuICB9XG4gIFxuICBwdWJsaWMgZ2V0IHZlcmlmaWNhdGlvbk1ldGhvZHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3ZlcmlmaWNhdGlvbk1ldGhvZHMkLmdldFZhbHVlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGhhc1ZlcmlmaWNhdGlvbk1ldGhvZHMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5fdmVyaWZpY2F0aW9uTWV0aG9kcyQuZ2V0VmFsdWUoKS5sZW5ndGg7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGVtYWlsVmVyaWZpY2F0aW9uTWV0aG9kcygpIHtcbiAgICByZXR1cm4gdGhpcy5nZXRWZXJpZmljYXRpb25NZXRob2RzKFZlcmlmaWNhdGlvbk1ldGhvZFR5cGUuRW1haWwpO1xuICB9XG5cbiAgcHVibGljIGdldCBzbXNWZXJpZmljYXRpb25NZXRob2RzKCkge1xuICAgIHJldHVybiB0aGlzLmdldFZlcmlmaWNhdGlvbk1ldGhvZHMoVmVyaWZpY2F0aW9uTWV0aG9kVHlwZS5TbXMpO1xuICB9XG5cbiAgcHVibGljIGdldCBhcHBWZXJpZmljYXRpb25NZXRob2RzKCkge1xuICAgIHJldHVybiB0aGlzLmdldFZlcmlmaWNhdGlvbk1ldGhvZHMoVmVyaWZpY2F0aW9uTWV0aG9kVHlwZS5BcHApO1xuICB9XG4gIFxuICBwdWJsaWMgZ2V0VmVyaWZpY2F0aW9uTWV0aG9kcyh0eXBlKSB7XG4gICAgcmV0dXJuIHRoaXMudmVyaWZpY2F0aW9uTWV0aG9kc1xuICAgIC5maWx0ZXIoKHZlcmlmaWNhdGlvbk1ldGhvZCkgPT4ge1xuICAgICAgcmV0dXJuIHZlcmlmaWNhdGlvbk1ldGhvZC50eXBlID09PSB0eXBlO1xuICAgIH0pO1xuICB9XG4gIFxuICBwdWJsaWMgaGFzVmVyaWZpY2F0aW9uTWV0aG9kKHR5cGUpIHtcbiAgICByZXR1cm4gdGhpcy52ZXJpZmljYXRpb25NZXRob2RzXG4gICAgLnNvbWUoKHZlcmlmaWNhdGlvbk1ldGhvZCkgPT4ge1xuICAgICAgcmV0dXJuIHZlcmlmaWNhdGlvbk1ldGhvZC50eXBlID09PSB0eXBlO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyVmVyaWZpY2F0aW9uTWV0aG9kUmVzZW5kKHZhbHVlKSB7XG4gICAgdGhpcy5fdmVyaWZpY2F0aW9uTWV0aG9kUmVzZW5kID0gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJWZXJpZmljYXRpb25NZXRob2RGZXRjaCh2YWx1ZSkge1xuICAgIHRoaXMuX3ZlcmlmaWNhdGlvbk1ldGhvZEZldGNoID0gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJWZXJpZmljYXRpb25NZXRob2REZWxldGUodmFsdWUpIHtcbiAgICB0aGlzLl92ZXJpZmljYXRpb25NZXRob2REZWxldGUgPSB2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3RlclZlcmlmaWNhdGlvbk1ldGhvZENyZWF0ZSh2YWx1ZSkge1xuICAgIHRoaXMuX3ZlcmlmaWNhdGlvbk1ldGhvZENyZWF0ZSA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyVmVyaWZpY2F0aW9uTWV0aG9kVmVyaWZ5KHZhbHVlKSB7XG4gICAgdGhpcy5fdmVyaWZpY2F0aW9uTWV0aG9kVmVyaWZ5ID0gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJBY2NvdW50VmVyaWZ5KHZhbHVlKSB7XG4gICAgdGhpcy5fYWNjb3VudFZlcmlmeSA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIHZlcmlmaWNhdGlvbk1ldGhvZERlbGV0ZSh2ZXJpZmljYXRpb25NZXRob2QpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLl92ZXJpZmljYXRpb25NZXRob2REZWxldGUodmVyaWZpY2F0aW9uTWV0aG9kKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy52ZXJpZmljYXRpb25NZXRob2RGZXRjaCgpO1xuICAgICAgICB9KSxcbiAgICAgICk7XG4gIH1cblxuICBwdWJsaWMgdmVyaWZpY2F0aW9uTWV0aG9kVmVyaWZ5KHZlcmlmaWNhdGlvbk1ldGhvZCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuX3ZlcmlmaWNhdGlvbk1ldGhvZFZlcmlmeSh2ZXJpZmljYXRpb25NZXRob2QpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICB0aGlzLnZlcmlmaWNhdGlvbk1ldGhvZEZldGNoKCk7XG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgfVxuXG4gIHB1YmxpYyB2ZXJpZmljYXRpb25NZXRob2RDcmVhdGUodmVyaWZpY2F0aW9uTWV0aG9kKTogT2JzZXJ2YWJsZTxhbnk+ICB7XG4gICAgcmV0dXJuIHRoaXMuX3ZlcmlmaWNhdGlvbk1ldGhvZENyZWF0ZSh2ZXJpZmljYXRpb25NZXRob2QpO1xuICB9XG5cbiAgcHVibGljIHZlcmlmaWNhdGlvbk1ldGhvZFJlc2VuZCgpOiBPYnNlcnZhYmxlPGFueT4gIHtcbiAgICByZXR1cm4gdGhpcy5fdmVyaWZpY2F0aW9uTWV0aG9kUmVzZW5kKCk7XG4gIH1cblxuICBwdWJsaWMgdmVyaWZpY2F0aW9uTWV0aG9kRmV0Y2goKSB7XG4gICAgdGhpcy5fdmVyaWZpY2F0aW9uTWV0aG9kRmV0Y2goKVxuICAgICAgLnN1YnNjcmliZSgodmVyaWZpY2F0aW9uTWV0aG9kcykgPT4ge1xuICAgICAgICB0aGlzLl92ZXJpZmljYXRpb25NZXRob2RzJC5uZXh0KHZlcmlmaWNhdGlvbk1ldGhvZHMpO1xuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYWNjb3VudFZlcmlmeSgpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLl9hY2NvdW50VmVyaWZ5ID8gdGhpcy5fYWNjb3VudFZlcmlmeSgpIDogb2YodHJ1ZSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuX2Rlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwdWJsaWMgYWRkU21zKGRlZmF1bHRDb3VudHJ5KTogT2JzZXJ2YWJsZTxhbnk+e1xuICAgIHJldHVybiB0aGlzLmFjY291bnRWZXJpZnkoKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLl9kaWFsb2cub3BlbihOdW1iZXJDb21wb25lbnQsIHtcbiAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICBkZWZhdWx0Q291bnRyeSxcbiAgICAgICAgICAgIHR3b0ZhY3Rvck1hbmFnZVNlcnZpY2U6IHRoaXMsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSlcbiAgICAgICAgICAuYWZ0ZXJDbG9zZWQoKSxcbiAgICAgICAgKSxcbiAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICB0aGlzLnZlcmlmaWNhdGlvbk1ldGhvZEZldGNoKCk7XG4gICAgICAgIH0pLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRFbWFpbCgpOiBPYnNlcnZhYmxlPGFueT57XG4gICAgcmV0dXJuIHRoaXMuYWNjb3VudFZlcmlmeSgpXG4gICAgICAucGlwZShcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMuX2RpYWxvZy5vcGVuKEVtYWlsQ29tcG9uZW50LCB7XG4gICAgICAgICAgZGF0YTogeyB0d29GYWN0b3JNYW5hZ2VTZXJ2aWNlOiB0aGlzIH0sXG4gICAgICAgIH0pXG4gICAgICAgICAgLmFmdGVyQ2xvc2VkKCksXG4gICAgICAgICksXG4gICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy52ZXJpZmljYXRpb25NZXRob2RGZXRjaCgpO1xuICAgICAgICB9KSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgICk7XG4gIH1cblxuICBwdWJsaWMgYWRkQXBwKCk6IE9ic2VydmFibGU8YW55PntcbiAgICByZXR1cm4gdGhpcy5hY2NvdW50VmVyaWZ5KClcbiAgICAgIC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5fZGlhbG9nLm9wZW4oQXBwQ29tcG9uZW50LCB7XG4gICAgICAgICAgZGF0YTogeyB0d29GYWN0b3JNYW5hZ2VTZXJ2aWNlOiB0aGlzICB9LFxuICAgICAgICB9KVxuICAgICAgICAgIC5hZnRlckNsb3NlZCgpLFxuICAgICAgICApLFxuICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgIHRoaXMudmVyaWZpY2F0aW9uTWV0aG9kRmV0Y2goKTtcbiAgICAgICAgfSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICApO1xuICB9XG59XG4iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from './resend.component';
|
|
1
|
+
export * from './resend.component';
|
|
2
2
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvcmVzZW5kL2NvbXBvbmVudHMvcmVzZW5kL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsb0JBQW9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3Jlc2VuZC5jb21wb25lbnQnO1xuIl19
|
|
@@ -1,40 +1,40 @@
|
|
|
1
|
-
import { Component, ChangeDetectionStrategy, Input, ChangeDetectorRef } from '@angular/core';
|
|
2
|
-
import { Subject } from 'rxjs';
|
|
3
|
-
import { finalize, takeUntil } from 'rxjs/operators';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "@angular/material/progress-spinner";
|
|
6
|
-
import * as i2 from "@angular/common";
|
|
7
|
-
export class ResendComponent {
|
|
8
|
-
constructor(_cdRef) {
|
|
9
|
-
this._cdRef = _cdRef;
|
|
10
|
-
this.resendInProgress = false;
|
|
11
|
-
this._destroy$ = new Subject();
|
|
12
|
-
}
|
|
13
|
-
resendClick() {
|
|
14
|
-
this.resendInProgress = true;
|
|
15
|
-
this.resend()
|
|
16
|
-
.pipe(finalize(() => {
|
|
17
|
-
this.resendInProgress = false;
|
|
18
|
-
this._cdRef.markForCheck();
|
|
19
|
-
}), takeUntil(this._destroy$))
|
|
20
|
-
.subscribe();
|
|
21
|
-
}
|
|
22
|
-
ngOnDestroy() {
|
|
23
|
-
this._destroy$.next();
|
|
24
|
-
this._destroy$.complete();
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
ResendComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ResendComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
28
|
-
ResendComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: ResendComponent, selector: "app-resend", inputs: { resend: "resend" }, ngImport: i0, template: "<ng-container *ngIf=\"!resendInProgress else sending\">\n Didn't receive a code? <a (click)=\"resendClick()\">Resend</a>\n</ng-container>\n<ng-template #sending>\n <div class=\"sending\">\n <mat-spinner [diameter]=\"12\"></mat-spinner> Sending\n </div>\n</ng-template>\n\n", styles: ["small{color:inherit}.sending{display:inline-flex;align-items:center}.sending mat-spinner{margin-right:2px}\n"], components: [{ type: i1.MatSpinner, selector: "mat-spinner", inputs: ["color"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
29
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ResendComponent, decorators: [{
|
|
30
|
-
type: Component,
|
|
31
|
-
args: [{
|
|
32
|
-
selector: 'app-resend',
|
|
33
|
-
templateUrl: './resend.component.html',
|
|
34
|
-
styleUrls: ['./resend.component.scss'],
|
|
35
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
36
|
-
}]
|
|
37
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { resend: [{
|
|
38
|
-
type: Input
|
|
39
|
-
}] } });
|
|
1
|
+
import { Component, ChangeDetectionStrategy, Input, ChangeDetectorRef } from '@angular/core';
|
|
2
|
+
import { Subject } from 'rxjs';
|
|
3
|
+
import { finalize, takeUntil } from 'rxjs/operators';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/material/progress-spinner";
|
|
6
|
+
import * as i2 from "@angular/common";
|
|
7
|
+
export class ResendComponent {
|
|
8
|
+
constructor(_cdRef) {
|
|
9
|
+
this._cdRef = _cdRef;
|
|
10
|
+
this.resendInProgress = false;
|
|
11
|
+
this._destroy$ = new Subject();
|
|
12
|
+
}
|
|
13
|
+
resendClick() {
|
|
14
|
+
this.resendInProgress = true;
|
|
15
|
+
this.resend()
|
|
16
|
+
.pipe(finalize(() => {
|
|
17
|
+
this.resendInProgress = false;
|
|
18
|
+
this._cdRef.markForCheck();
|
|
19
|
+
}), takeUntil(this._destroy$))
|
|
20
|
+
.subscribe();
|
|
21
|
+
}
|
|
22
|
+
ngOnDestroy() {
|
|
23
|
+
this._destroy$.next();
|
|
24
|
+
this._destroy$.complete();
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
ResendComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ResendComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
28
|
+
ResendComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: ResendComponent, selector: "app-resend", inputs: { resend: "resend" }, ngImport: i0, template: "<ng-container *ngIf=\"!resendInProgress else sending\">\n Didn't receive a code? <a (click)=\"resendClick()\">Resend</a>\n</ng-container>\n<ng-template #sending>\n <div class=\"sending\">\n <mat-spinner [diameter]=\"12\"></mat-spinner> Sending\n </div>\n</ng-template>\n\n", styles: ["small{color:inherit}.sending{display:inline-flex;align-items:center}.sending mat-spinner{margin-right:2px}\n"], components: [{ type: i1.MatSpinner, selector: "mat-spinner", inputs: ["color"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
29
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ResendComponent, decorators: [{
|
|
30
|
+
type: Component,
|
|
31
|
+
args: [{
|
|
32
|
+
selector: 'app-resend',
|
|
33
|
+
templateUrl: './resend.component.html',
|
|
34
|
+
styleUrls: ['./resend.component.scss'],
|
|
35
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
36
|
+
}]
|
|
37
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { resend: [{
|
|
38
|
+
type: Input
|
|
39
|
+
}] } });
|
|
40
40
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzZW5kLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9yZXNlbmQvY29tcG9uZW50cy9yZXNlbmQvcmVzZW5kLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9yZXNlbmQvY29tcG9uZW50cy9yZXNlbmQvcmVzZW5kLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsdUJBQXVCLEVBQXdCLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuSCxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFTckQsTUFBTSxPQUFPLGVBQWU7SUFRMUIsWUFDVSxNQUF5QjtRQUF6QixXQUFNLEdBQU4sTUFBTSxDQUFtQjtRQUw1QixxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFFeEIsY0FBUyxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7SUFJL0IsQ0FBQztJQUVHLFdBQVc7UUFDaEIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztRQUM3QixJQUFJLENBQUMsTUFBTSxFQUFFO2FBQ1YsSUFBSSxDQUNILFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDWixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO1lBQzlCLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDN0IsQ0FBQyxDQUFDLEVBQ0YsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FDMUI7YUFDQSxTQUFTLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDNUIsQ0FBQzs7NkdBNUJVLGVBQWU7aUdBQWYsZUFBZSxnRkNYNUIsd1JBU0E7NEZERWEsZUFBZTtrQkFOM0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsWUFBWTtvQkFDdEIsV0FBVyxFQUFFLHlCQUF5QjtvQkFDdEMsU0FBUyxFQUFFLENBQUMseUJBQXlCLENBQUM7b0JBQ3RDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNoRDt3R0FHaUIsTUFBTTtzQkFBckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgQ2hhbmdlRGV0ZWN0b3JSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbmFsaXplLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLXJlc2VuZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9yZXNlbmQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9yZXNlbmQuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFJlc2VuZENvbXBvbmVudCB7XG5cbiAgQElucHV0KCkgcHVibGljIHJlc2VuZDogKCkgPT4gT2JzZXJ2YWJsZTxhbnk+O1xuICBcbiAgcHVibGljIHJlc2VuZEluUHJvZ3Jlc3MgPSBmYWxzZTtcblxuICBwcml2YXRlIF9kZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XG4gIFxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9jZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICkge31cblxuICBwdWJsaWMgcmVzZW5kQ2xpY2soKTogdm9pZCB7XG4gICAgdGhpcy5yZXNlbmRJblByb2dyZXNzID0gdHJ1ZTtcbiAgICB0aGlzLnJlc2VuZCgpXG4gICAgICAucGlwZShcbiAgICAgICAgZmluYWxpemUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMucmVzZW5kSW5Qcm9ncmVzcyA9IGZhbHNlOyAgXG4gICAgICAgICAgdGhpcy5fY2RSZWYubWFya0ZvckNoZWNrKCk7ICBcbiAgICAgICAgfSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuX2Rlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cblxuXG59IiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFyZXNlbmRJblByb2dyZXNzIGVsc2Ugc2VuZGluZ1wiPlxuICBEaWRuJ3QgcmVjZWl2ZSBhIGNvZGU/IDxhIChjbGljayk9XCJyZXNlbmRDbGljaygpXCI+UmVzZW5kPC9hPlxuPC9uZy1jb250YWluZXI+XG48bmctdGVtcGxhdGUgI3NlbmRpbmc+XG4gIDxkaXYgY2xhc3M9XCJzZW5kaW5nXCI+XG4gICAgPG1hdC1zcGlubmVyIFtkaWFtZXRlcl09XCIxMlwiPjwvbWF0LXNwaW5uZXI+IFNlbmRpbmdcbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG4iXX0=
|
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
import { CommonModule } from '@angular/common';
|
|
2
|
-
import { NgModule } from '@angular/core';
|
|
3
|
-
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
|
|
4
|
-
import { ResendComponent } from './components/resend';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
export class ResendModule {
|
|
7
|
-
}
|
|
8
|
-
ResendModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ResendModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
9
|
-
ResendModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ResendModule, declarations: [ResendComponent], imports: [CommonModule,
|
|
10
|
-
MatProgressSpinnerModule], exports: [ResendComponent] });
|
|
11
|
-
ResendModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ResendModule, imports: [[
|
|
12
|
-
CommonModule,
|
|
13
|
-
MatProgressSpinnerModule,
|
|
14
|
-
]] });
|
|
15
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ResendModule, decorators: [{
|
|
16
|
-
type: NgModule,
|
|
17
|
-
args: [{
|
|
18
|
-
imports: [
|
|
19
|
-
CommonModule,
|
|
20
|
-
MatProgressSpinnerModule,
|
|
21
|
-
],
|
|
22
|
-
declarations: [
|
|
23
|
-
ResendComponent,
|
|
24
|
-
],
|
|
25
|
-
exports: [
|
|
26
|
-
ResendComponent,
|
|
27
|
-
],
|
|
28
|
-
}]
|
|
29
|
-
}] });
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { NgModule } from '@angular/core';
|
|
3
|
+
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
|
|
4
|
+
import { ResendComponent } from './components/resend';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class ResendModule {
|
|
7
|
+
}
|
|
8
|
+
ResendModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ResendModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
9
|
+
ResendModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ResendModule, declarations: [ResendComponent], imports: [CommonModule,
|
|
10
|
+
MatProgressSpinnerModule], exports: [ResendComponent] });
|
|
11
|
+
ResendModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ResendModule, imports: [[
|
|
12
|
+
CommonModule,
|
|
13
|
+
MatProgressSpinnerModule,
|
|
14
|
+
]] });
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ResendModule, decorators: [{
|
|
16
|
+
type: NgModule,
|
|
17
|
+
args: [{
|
|
18
|
+
imports: [
|
|
19
|
+
CommonModule,
|
|
20
|
+
MatProgressSpinnerModule,
|
|
21
|
+
],
|
|
22
|
+
declarations: [
|
|
23
|
+
ResendComponent,
|
|
24
|
+
],
|
|
25
|
+
exports: [
|
|
26
|
+
ResendComponent,
|
|
27
|
+
],
|
|
28
|
+
}]
|
|
29
|
+
}] });
|
|
30
30
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzZW5kLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9yZXNlbmQvcmVzZW5kLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUU5RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7O0FBZ0J0RCxNQUFNLE9BQU8sWUFBWTs7MEdBQVosWUFBWTsyR0FBWixZQUFZLGlCQU5yQixlQUFlLGFBTGYsWUFBWTtRQUVaLHdCQUF3QixhQU14QixlQUFlOzJHQUdOLFlBQVksWUFaZDtZQUNQLFlBQVk7WUFFWix3QkFBd0I7U0FDekI7NEZBUVUsWUFBWTtrQkFieEIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFFWix3QkFBd0I7cUJBQ3pCO29CQUNELFlBQVksRUFBRTt3QkFDWixlQUFlO3FCQUNoQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsZUFBZTtxQkFDaEI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3Mtc3Bpbm5lcic7XG5cbmltcG9ydCB7IFJlc2VuZENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9yZXNlbmQnO1xuXG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG5cbiAgICBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUsXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIFJlc2VuZENvbXBvbmVudCxcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIFJlc2VuZENvbXBvbmVudCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgUmVzZW5kTW9kdWxlIHtcbn1cbiJdfQ==
|