ngx-firebase 1.1.13 → 22.0.1
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/README.md +121 -13
- package/fesm2022/ngx-firebase.mjs +158 -0
- package/fesm2022/ngx-firebase.mjs.map +1 -0
- package/package.json +39 -30
- package/types/ngx-firebase.d.ts +55 -0
- package/bundles/ngx-firebase-capacitor.umd.js +0 -763
- package/bundles/ngx-firebase-capacitor.umd.js.map +0 -1
- package/bundles/ngx-firebase-capacitor.umd.min.js +0 -16
- package/bundles/ngx-firebase-capacitor.umd.min.js.map +0 -1
- package/bundles/ngx-firebase-iap.umd.js +0 -718
- package/bundles/ngx-firebase-iap.umd.js.map +0 -1
- package/bundles/ngx-firebase-iap.umd.min.js +0 -2
- package/bundles/ngx-firebase-iap.umd.min.js.map +0 -1
- package/bundles/ngx-firebase-ionic-auth-ui.umd.js +0 -2116
- package/bundles/ngx-firebase-ionic-auth-ui.umd.js.map +0 -1
- package/bundles/ngx-firebase-ionic-auth-ui.umd.min.js +0 -16
- package/bundles/ngx-firebase-ionic-auth-ui.umd.min.js.map +0 -1
- package/bundles/ngx-firebase-ionic.umd.js +0 -979
- package/bundles/ngx-firebase-ionic.umd.js.map +0 -1
- package/bundles/ngx-firebase-ionic.umd.min.js +0 -16
- package/bundles/ngx-firebase-ionic.umd.min.js.map +0 -1
- package/bundles/ngx-firebase-testing.umd.js +0 -801
- package/bundles/ngx-firebase-testing.umd.js.map +0 -1
- package/bundles/ngx-firebase-testing.umd.min.js +0 -2
- package/bundles/ngx-firebase-testing.umd.min.js.map +0 -1
- package/bundles/ngx-firebase.umd.js +0 -2299
- package/bundles/ngx-firebase.umd.js.map +0 -1
- package/bundles/ngx-firebase.umd.min.js +0 -2
- package/bundles/ngx-firebase.umd.min.js.map +0 -1
- package/capacitor/capacitor.module.d.ts +0 -9
- package/capacitor/interfaces/config.d.ts +0 -12
- package/capacitor/interfaces/index.d.ts +0 -1
- package/capacitor/ngx-firebase-capacitor.d.ts +0 -5
- package/capacitor/ngx-firebase-capacitor.metadata.json +0 -1
- package/capacitor/package.json +0 -25
- package/capacitor/public-api.d.ts +0 -3
- package/capacitor/services/analytics-firebase-capacitor.service.d.ts +0 -9
- package/capacitor/services/crashlytics-firebase-capacitor.service.d.ts +0 -8
- package/capacitor/services/credential-factory-capacitor.service.d.ts +0 -18
- package/capacitor/services/index.d.ts +0 -3
- package/esm2015/capacitor/capacitor.module.js +0 -78
- package/esm2015/capacitor/interfaces/config.js +0 -3
- package/esm2015/capacitor/interfaces/index.js +0 -2
- package/esm2015/capacitor/ngx-firebase-capacitor.js +0 -6
- package/esm2015/capacitor/public-api.js +0 -4
- package/esm2015/capacitor/services/analytics-firebase-capacitor.service.js +0 -43
- package/esm2015/capacitor/services/crashlytics-firebase-capacitor.service.js +0 -40
- package/esm2015/capacitor/services/credential-factory-capacitor.service.js +0 -182
- package/esm2015/capacitor/services/index.js +0 -4
- package/esm2015/iap/iap.module.js +0 -32
- package/esm2015/iap/interfaces/index.js +0 -5
- package/esm2015/iap/ngx-firebase-iap.js +0 -5
- package/esm2015/iap/public-api.js +0 -5
- package/esm2015/iap/services/iap.service.js +0 -317
- package/esm2015/iap/tokens/index.js +0 -4
- package/esm2015/ionic/animations/index.js +0 -30
- package/esm2015/ionic/components/avatar/avatar.component.js +0 -98
- package/esm2015/ionic/components/avatar/index.js +0 -2
- package/esm2015/ionic/components/index.js +0 -3
- package/esm2015/ionic/components/popover-menu/index.js +0 -3
- package/esm2015/ionic/components/popover-menu/interface.js +0 -2
- package/esm2015/ionic/components/popover-menu/popover-menu.component.js +0 -34
- package/esm2015/ionic/ionic.module.js +0 -46
- package/esm2015/ionic/ngx-firebase-ionic.js +0 -5
- package/esm2015/ionic/public-api.js +0 -5
- package/esm2015/ionic/services/alerts-ionic.service.js +0 -107
- package/esm2015/ionic/services/index.js +0 -6
- package/esm2015/ionic/services/legality-dialog-ionic.service.js +0 -85
- package/esm2015/ionic/services/loading-ionic.service.js +0 -46
- package/esm2015/ionic/services/picker-ionic.service.js +0 -44
- package/esm2015/ionic/services/toast-ionic.service.js +0 -49
- package/esm2015/ionic-auth-ui/animations/index.js +0 -30
- package/esm2015/ionic-auth-ui/components/email-confirmation/email-confirmation.component.js +0 -99
- package/esm2015/ionic-auth-ui/components/email-field/email-field.component.js +0 -25
- package/esm2015/ionic-auth-ui/components/form-field/form-field.component.js +0 -82
- package/esm2015/ionic-auth-ui/components/index.js +0 -12
- package/esm2015/ionic-auth-ui/components/name-field/name-field.component.js +0 -30
- package/esm2015/ionic-auth-ui/components/or-divider/or-divider.component.js +0 -11
- package/esm2015/ionic-auth-ui/components/password-field/password-field.component.js +0 -138
- package/esm2015/ionic-auth-ui/components/password-field/passwordValidatorFunctions.js +0 -62
- package/esm2015/ionic-auth-ui/components/providers/providers.component.js +0 -70
- package/esm2015/ionic-auth-ui/components/reauthenticate/reauthenticate.component.js +0 -99
- package/esm2015/ionic-auth-ui/components/register/register.component.js +0 -142
- package/esm2015/ionic-auth-ui/components/register-with-email/register-with-email.component.js +0 -60
- package/esm2015/ionic-auth-ui/components/register-with-email-popover/register-with-email-popover.component.js +0 -26
- package/esm2015/ionic-auth-ui/components/signin/signin.component.js +0 -92
- package/esm2015/ionic-auth-ui/components/terms-field/terms-field.component.js +0 -99
- package/esm2015/ionic-auth-ui/components/user/user.component.js +0 -195
- package/esm2015/ionic-auth-ui/ionic-auth-ui.module.js +0 -92
- package/esm2015/ionic-auth-ui/ngx-firebase-ionic-auth-ui.js +0 -23
- package/esm2015/ionic-auth-ui/pages/index.js +0 -5
- package/esm2015/ionic-auth-ui/pages/register/index.js +0 -2
- package/esm2015/ionic-auth-ui/pages/register/register.page.js +0 -56
- package/esm2015/ionic-auth-ui/pages/signin/index.js +0 -2
- package/esm2015/ionic-auth-ui/pages/signin/signin.page.js +0 -78
- package/esm2015/ionic-auth-ui/pages/user/index.js +0 -2
- package/esm2015/ionic-auth-ui/pages/user/user.page.js +0 -11
- package/esm2015/ionic-auth-ui/pages/verifyemail/index.js +0 -2
- package/esm2015/ionic-auth-ui/pages/verifyemail/verifyemail.page.js +0 -85
- package/esm2015/ionic-auth-ui/public-api.js +0 -5
- package/esm2015/ngx-firebase.js +0 -6
- package/esm2015/public-api.js +0 -6
- package/esm2015/shared/guards/index.js +0 -3
- package/esm2015/shared/guards/logged-in.guard.js +0 -60
- package/esm2015/shared/guards/verify-email.guard.js +0 -41
- package/esm2015/shared/interfaces/accounts.enum.js +0 -9
- package/esm2015/shared/interfaces/authprovider.enum.js +0 -15
- package/esm2015/shared/interfaces/config.interface.js +0 -61
- package/esm2015/shared/interfaces/index.js +0 -8
- package/esm2015/shared/interfaces/main.interface.js +0 -7
- package/esm2015/shared/interfaces/providers.interface.js +0 -2
- package/esm2015/shared/interfaces/tokens.js +0 -19
- package/esm2015/shared/interfaces/ui-providers.interface.js +0 -2
- package/esm2015/shared/services/analytics.service.js +0 -24
- package/esm2015/shared/services/auth-process.service.js +0 -779
- package/esm2015/shared/services/crashlytics.service.js +0 -42
- package/esm2015/shared/services/device-info.service.js +0 -14
- package/esm2015/shared/services/firebase.service.js +0 -37
- package/esm2015/shared/services/firestore-sync.service.js +0 -60
- package/esm2015/shared/services/index.js +0 -10
- package/esm2015/shared/services/performance.service.js +0 -28
- package/esm2015/shared/services/remoteconfig.service.js +0 -49
- package/esm2015/shared/services/ui.service.js +0 -45
- package/esm2015/shared/shared.module.js +0 -175
- package/esm2015/shared/types/DisplayWidth.js +0 -9
- package/esm2015/shared/types/Location.js +0 -2
- package/esm2015/shared/types/ValueAccessorControlComponent.js +0 -85
- package/esm2015/shared/types/ValueAccessorValueComponent.js +0 -40
- package/esm2015/shared/types/index.js +0 -5
- package/esm2015/testing/fakeavatar.module.js +0 -22
- package/esm2015/testing/fakes/FakeAuthProcessService.js +0 -31
- package/esm2015/testing/fakes/FakeAvatarComponent.js +0 -13
- package/esm2015/testing/fakes/FakeFireService.js +0 -21
- package/esm2015/testing/fakes/FakeFirestoreSyncService.js +0 -11
- package/esm2015/testing/fakes/FakeIAPurchaseService.js +0 -11
- package/esm2015/testing/fakes/FakePickerService.js +0 -9
- package/esm2015/testing/fakes/FakeRemoteConfigService.js +0 -44
- package/esm2015/testing/fakes/FakeTranslateService.js +0 -21
- package/esm2015/testing/fakes/FakeUiService.js +0 -26
- package/esm2015/testing/fakes/angular-fire/FakeAngularFireAuth.js +0 -30
- package/esm2015/testing/fakes/angular-fire/FakeAngularFireFunctions.js +0 -17
- package/esm2015/testing/fakes/angular-fire/FakeAngularFirePerformance.js +0 -17
- package/esm2015/testing/fakes/angular-fire/FakeAngularFireStorage.js +0 -8
- package/esm2015/testing/fakes/angular-fire/FakeAngularFirestore.js +0 -8
- package/esm2015/testing/fakes/angular-fire/FakeUserCredential.js +0 -18
- package/esm2015/testing/fakes/index.js +0 -19
- package/esm2015/testing/ngx-firebase-testing.js +0 -6
- package/esm2015/testing/public-api.js +0 -5
- package/esm2015/testing/test.module.js +0 -66
- package/esm2015/testing/utils/index.js +0 -17
- package/esm2015/testing/utils/patchConsole.js +0 -14
- package/fesm2015/ngx-firebase-capacitor.js +0 -328
- package/fesm2015/ngx-firebase-capacitor.js.map +0 -1
- package/fesm2015/ngx-firebase-iap.js +0 -354
- package/fesm2015/ngx-firebase-iap.js.map +0 -1
- package/fesm2015/ngx-firebase-ionic-auth-ui.js +0 -1482
- package/fesm2015/ngx-firebase-ionic-auth-ui.js.map +0 -1
- package/fesm2015/ngx-firebase-ionic.js +0 -495
- package/fesm2015/ngx-firebase-ionic.js.map +0 -1
- package/fesm2015/ngx-firebase-testing.js +0 -388
- package/fesm2015/ngx-firebase-testing.js.map +0 -1
- package/fesm2015/ngx-firebase.js +0 -1509
- package/fesm2015/ngx-firebase.js.map +0 -1
- package/iap/iap.module.d.ts +0 -5
- package/iap/interfaces/index.d.ts +0 -11
- package/iap/ngx-firebase-iap.d.ts +0 -4
- package/iap/ngx-firebase-iap.metadata.json +0 -1
- package/iap/package.json +0 -23
- package/iap/public-api.d.ts +0 -4
- package/iap/services/iap.service.d.ts +0 -47
- package/iap/tokens/index.d.ts +0 -3
- package/ionic/animations/index.d.ts +0 -1
- package/ionic/components/avatar/avatar.component.d.ts +0 -27
- package/ionic/components/avatar/index.d.ts +0 -1
- package/ionic/components/index.d.ts +0 -2
- package/ionic/components/popover-menu/index.d.ts +0 -2
- package/ionic/components/popover-menu/interface.d.ts +0 -6
- package/ionic/components/popover-menu/popover-menu.component.d.ts +0 -10
- package/ionic/ionic.module.d.ts +0 -2
- package/ionic/ngx-firebase-ionic.d.ts +0 -4
- package/ionic/ngx-firebase-ionic.metadata.json +0 -1
- package/ionic/package.json +0 -30
- package/ionic/public-api.d.ts +0 -4
- package/ionic/services/alerts-ionic.service.d.ts +0 -13
- package/ionic/services/index.d.ts +0 -5
- package/ionic/services/legality-dialog-ionic.service.d.ts +0 -10
- package/ionic/services/loading-ionic.service.d.ts +0 -17
- package/ionic/services/picker-ionic.service.d.ts +0 -9
- package/ionic/services/toast-ionic.service.d.ts +0 -11
- package/ionic-auth-ui/animations/index.d.ts +0 -1
- package/ionic-auth-ui/components/email-confirmation/email-confirmation.component.d.ts +0 -31
- package/ionic-auth-ui/components/email-field/email-field.component.d.ts +0 -7
- package/ionic-auth-ui/components/form-field/form-field.component.d.ts +0 -28
- package/ionic-auth-ui/components/index.d.ts +0 -11
- package/ionic-auth-ui/components/name-field/name-field.component.d.ts +0 -8
- package/ionic-auth-ui/components/or-divider/or-divider.component.d.ts +0 -2
- package/ionic-auth-ui/components/password-field/password-field.component.d.ts +0 -34
- package/ionic-auth-ui/components/password-field/passwordValidatorFunctions.d.ts +0 -4
- package/ionic-auth-ui/components/providers/providers.component.d.ts +0 -26
- package/ionic-auth-ui/components/reauthenticate/reauthenticate.component.d.ts +0 -30
- package/ionic-auth-ui/components/register/register.component.d.ts +0 -26
- package/ionic-auth-ui/components/register-with-email/register-with-email.component.d.ts +0 -24
- package/ionic-auth-ui/components/register-with-email-popover/register-with-email-popover.component.d.ts +0 -7
- package/ionic-auth-ui/components/signin/signin.component.d.ts +0 -28
- package/ionic-auth-ui/components/terms-field/terms-field.component.d.ts +0 -27
- package/ionic-auth-ui/components/user/user.component.d.ts +0 -45
- package/ionic-auth-ui/ionic-auth-ui.module.d.ts +0 -32
- package/ionic-auth-ui/ngx-firebase-ionic-auth-ui.d.ts +0 -22
- package/ionic-auth-ui/ngx-firebase-ionic-auth-ui.metadata.json +0 -1
- package/ionic-auth-ui/package.json +0 -30
- package/ionic-auth-ui/pages/index.d.ts +0 -4
- package/ionic-auth-ui/pages/register/index.d.ts +0 -1
- package/ionic-auth-ui/pages/register/register.page.d.ts +0 -16
- package/ionic-auth-ui/pages/signin/index.d.ts +0 -1
- package/ionic-auth-ui/pages/signin/signin.page.d.ts +0 -22
- package/ionic-auth-ui/pages/user/index.d.ts +0 -1
- package/ionic-auth-ui/pages/user/user.page.d.ts +0 -3
- package/ionic-auth-ui/pages/verifyemail/index.d.ts +0 -1
- package/ionic-auth-ui/pages/verifyemail/verifyemail.page.d.ts +0 -19
- package/ionic-auth-ui/public-api.d.ts +0 -4
- package/ngx-firebase.d.ts +0 -5
- package/ngx-firebase.metadata.json +0 -1
- package/public-api.d.ts +0 -5
- package/shared/guards/index.d.ts +0 -2
- package/shared/guards/logged-in.guard.d.ts +0 -13
- package/shared/guards/verify-email.guard.d.ts +0 -11
- package/shared/interfaces/accounts.enum.d.ts +0 -7
- package/shared/interfaces/authprovider.enum.d.ts +0 -13
- package/shared/interfaces/config.interface.d.ts +0 -63
- package/shared/interfaces/index.d.ts +0 -7
- package/shared/interfaces/main.interface.d.ts +0 -13
- package/shared/interfaces/providers.interface.d.ts +0 -70
- package/shared/interfaces/tokens.d.ts +0 -16
- package/shared/interfaces/ui-providers.interface.d.ts +0 -66
- package/shared/services/analytics.service.d.ts +0 -10
- package/shared/services/auth-process.service.d.ts +0 -197
- package/shared/services/crashlytics.service.d.ts +0 -11
- package/shared/services/device-info.service.d.ts +0 -3
- package/shared/services/firebase.service.d.ts +0 -16
- package/shared/services/firestore-sync.service.d.ts +0 -16
- package/shared/services/index.d.ts +0 -9
- package/shared/services/performance.service.d.ts +0 -12
- package/shared/services/remoteconfig.service.d.ts +0 -18
- package/shared/services/ui.service.d.ts +0 -22
- package/shared/shared.module.d.ts +0 -14
- package/shared/types/DisplayWidth.d.ts +0 -7
- package/shared/types/Location.d.ts +0 -8
- package/shared/types/ValueAccessorControlComponent.d.ts +0 -27
- package/shared/types/ValueAccessorValueComponent.d.ts +0 -19
- package/shared/types/index.d.ts +0 -4
- package/testing/fakeavatar.module.d.ts +0 -2
- package/testing/fakes/FakeAuthProcessService.d.ts +0 -28
- package/testing/fakes/FakeAvatarComponent.d.ts +0 -3
- package/testing/fakes/FakeFireService.d.ts +0 -20
- package/testing/fakes/FakeFirestoreSyncService.d.ts +0 -9
- package/testing/fakes/FakeIAPurchaseService.d.ts +0 -9
- package/testing/fakes/FakePickerService.d.ts +0 -6
- package/testing/fakes/FakeRemoteConfigService.d.ts +0 -19
- package/testing/fakes/FakeTranslateService.d.ts +0 -15
- package/testing/fakes/FakeUiService.d.ts +0 -25
- package/testing/fakes/angular-fire/FakeAngularFireAuth.d.ts +0 -52
- package/testing/fakes/angular-fire/FakeAngularFireFunctions.d.ts +0 -11
- package/testing/fakes/angular-fire/FakeAngularFirePerformance.d.ts +0 -10
- package/testing/fakes/angular-fire/FakeAngularFireStorage.d.ts +0 -5
- package/testing/fakes/angular-fire/FakeAngularFirestore.d.ts +0 -5
- package/testing/fakes/angular-fire/FakeUserCredential.d.ts +0 -9
- package/testing/fakes/index.d.ts +0 -16
- package/testing/ngx-firebase-testing.d.ts +0 -5
- package/testing/ngx-firebase-testing.metadata.json +0 -1
- package/testing/package.json +0 -29
- package/testing/public-api.d.ts +0 -4
- package/testing/test.module.d.ts +0 -4
- package/testing/utils/index.d.ts +0 -5
- package/testing/utils/patchConsole.d.ts +0 -4
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
import { Component, Input } from '@angular/core';
|
|
2
|
-
import { UiService } from 'ngx-firebase';
|
|
3
|
-
import { BehaviorSubject, of } from 'rxjs';
|
|
4
|
-
import { catchError, map, startWith, switchMap } from 'rxjs/operators';
|
|
5
|
-
export class AuthUIFormFieldComponent {
|
|
6
|
-
constructor(ui) {
|
|
7
|
-
this.ui = ui;
|
|
8
|
-
this.label = '';
|
|
9
|
-
this.control$ = new BehaviorSubject(undefined);
|
|
10
|
-
this.errors$ = this.control$.pipe(switchMap(control => (control && control.statusChanges)
|
|
11
|
-
? control.statusChanges.pipe(startWith(control.errors), map(_ => this.errorMessageFn(control.errors)))
|
|
12
|
-
: of([])), catchError(error => {
|
|
13
|
-
this.ui.logError(error);
|
|
14
|
-
return of([error.message]);
|
|
15
|
-
}));
|
|
16
|
-
this.isValid$ = this.control$.pipe(switchMap(control => (control && control.statusChanges)
|
|
17
|
-
? control.statusChanges.pipe(startWith(control.valid), map(() => control.valid || false))
|
|
18
|
-
: of(true)));
|
|
19
|
-
this.isDisabled$ = this.control$.pipe(switchMap(control => (control && control.statusChanges)
|
|
20
|
-
? control.statusChanges.pipe(startWith(control.disabled), map(() => control.disabled || false))
|
|
21
|
-
: of(true)));
|
|
22
|
-
this.errorMessageFn = this.flattenErrors.bind(this);
|
|
23
|
-
this.translateParams = {};
|
|
24
|
-
}
|
|
25
|
-
get control() { return this.control$.value; }
|
|
26
|
-
set control(val) { this.control$.next(val); }
|
|
27
|
-
flattenErrors(errors) {
|
|
28
|
-
if (errors) {
|
|
29
|
-
if (this.customErrors || this.errorPrefix) {
|
|
30
|
-
return Object.keys(errors)
|
|
31
|
-
.map(key => {
|
|
32
|
-
if (this.customErrors) {
|
|
33
|
-
if (undefined !== this.customErrors[key]) {
|
|
34
|
-
return this.customErrors[key];
|
|
35
|
-
}
|
|
36
|
-
else if (undefined !== this.customErrors.default) {
|
|
37
|
-
return this.customErrors.default;
|
|
38
|
-
}
|
|
39
|
-
else {
|
|
40
|
-
return '';
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
else if (this.errorPrefix) {
|
|
44
|
-
return `${this.errorPrefix}.${key}`;
|
|
45
|
-
}
|
|
46
|
-
})
|
|
47
|
-
.filter(item => !!item) || [];
|
|
48
|
-
}
|
|
49
|
-
else if (this.errorMessage) {
|
|
50
|
-
return [this.errorMessage];
|
|
51
|
-
}
|
|
52
|
-
else {
|
|
53
|
-
return [];
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
else {
|
|
57
|
-
return [];
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
AuthUIFormFieldComponent.decorators = [
|
|
62
|
-
{ type: Component, args: [{
|
|
63
|
-
selector: 'mal-authui-form-field',
|
|
64
|
-
template: "<ion-item class=\"ion-no-padding input form-field\">\n <ion-label color=\"text\" class=\"text-size-xs\" position=\"floating\">{{ label | translate }}</ion-label>\n <div class=\"input-wrap\">\n <ng-content></ng-content>\n <ion-icon size=\"large\" *ngIf=\"!(isValid$ | async) && !(isDisabled$ | async)\" class=\"invalid\" name=\"remove-circle\"></ion-icon>\n <ion-icon size=\"large\" *ngIf=\"icon\" class=\"custom\" [name]=\"icon\"></ion-icon>\n </div>\n</ion-item>\n<ion-grid class=\"footer-messages\">\n <span class=\"hint-end\" *ngIf=\"hintEnd\">{{ hintEnd | translate:translateParams }}</span>\n <ion-row *ngFor=\"let error of (errors$ | async)\" class=\"error-message\">\n <ion-col>{{ error | translate:translateParams }} </ion-col>\n </ion-row>\n</ion-grid>",
|
|
65
|
-
styles: ["ion-item.form-field{width:100%}ion-item.form-field div.input-wrap{display:flex;flex-wrap:nowrap;width:100%}ion-item.form-field div.input-wrap ion-icon.invalid{color:var(--ion-color-danger,red);align-items:right;height:100%}ion-grid.footer-messages{text-align:left;margin:0;padding:0;font-size:small}ion-grid.footer-messages ion-row.error-message ion-col{color:var(--ion-color-danger,red);margin:0;padding:0}ion-grid.footer-messages span.hint-end{float:right}", "div.authui-logo{margin:32px auto;width:30%}div.authui-logo img{display:block;max-width:120px;border-radius:20px;margin-left:auto;margin-right:auto}div.authui-title{font-size:20px;margin:16px 0}div.authui-alternate-action{margin:32px auto 24px;font-weight:500}div.authui-alternate-action .text{margin-right:8px}ion-content.auth-page{--background:var(--auth-pages-background,--background)}div.resend-confirmation{margin:24px 0;font-size:.9em;text-align:center}ion-button.authui-provider-button{width:220px;margin:8px auto;display:block;text-align:center;--background:var(--auth-provider-background-color,#fff)}@media screen and (max-width:599px){ion-button.authui-provider-button{width:100%}}ion-button.authui-submit-button{width:220px;margin:16px auto;display:block}@media screen and (max-width:599px){ion-button.authui-submit-button{width:100%}}ion-grid.terms{width:100%;margin:24px 0;text-align:left;font-size:.9em}ion-grid.terms ion-col ion-row a{font-size:16px;margin-left:4px}div.forgot-password{margin:24px 0;font-size:.9em}@media (prefers-color-scheme:dark){a{color:#fff}}div.auth-ui-form{width:384px;max-width:384px;padding:32px;text-align:center;flex:1 0 auto}@media screen and (max-width:599px){div.auth-ui-form{padding:24px;width:100%}}div.auth-ui-form form{width:100%;text-align:left}div.authui-wrapper{width:100%;background-size:cover;flex:1 0 auto;padding:32px}@media screen and (max-width:599px){div.authui-wrapper{padding:16px}}button.confirm:disabled{color:grey}div.email-popover-outer{width:100%}div.email-popover-outer div.email-popover-inner{padding:10%}"]
|
|
66
|
-
},] }
|
|
67
|
-
];
|
|
68
|
-
AuthUIFormFieldComponent.ctorParameters = () => [
|
|
69
|
-
{ type: UiService }
|
|
70
|
-
];
|
|
71
|
-
AuthUIFormFieldComponent.propDecorators = {
|
|
72
|
-
label: [{ type: Input }],
|
|
73
|
-
control: [{ type: Input }],
|
|
74
|
-
errorMessage: [{ type: Input }],
|
|
75
|
-
errorMessageFn: [{ type: Input }],
|
|
76
|
-
errorPrefix: [{ type: Input }],
|
|
77
|
-
customErrors: [{ type: Input }],
|
|
78
|
-
translateParams: [{ type: Input }],
|
|
79
|
-
icon: [{ type: Input }],
|
|
80
|
-
hintEnd: [{ type: Input }]
|
|
81
|
-
};
|
|
82
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZmlyZWJhc2UvaW9uaWMtYXV0aC11aS9zcmMvY29tcG9uZW50cy9mb3JtLWZpZWxkL2Zvcm0tZmllbGQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWpELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDekMsT0FBTyxFQUFFLGVBQWUsRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBU3ZFLE1BQU0sT0FBTyx3QkFBd0I7SUEwQ25DLFlBQ1UsRUFBYTtRQUFiLE9BQUUsR0FBRixFQUFFLENBQVc7UUF6Q2QsVUFBSyxHQUFXLEVBQUUsQ0FBQztRQUtwQixhQUFRLEdBQWlDLElBQUksZUFBZSxDQUFjLFNBQVMsQ0FBQyxDQUFDO1FBRXRGLFlBQU8sR0FBeUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQ3ZELFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxhQUFhLENBQUM7WUFDckQsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUN0RyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUNULEVBQ0QsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFF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QUFDO2dCQUNULFFBQVEsRUFBRSx1QkFBdUI7Z0JBQ2pDLHV4QkFBd0M7O2FBRXpDOzs7WUFWUSxTQUFTOzs7b0JBYWYsS0FBSztzQkFFTCxLQUFLOzJCQThCTCxLQUFLOzZCQUNMLEtBQUs7MEJBQ0wsS0FBSzsyQkFDTCxLQUFLOzhCQUNMLEtBQUs7bUJBQ0wsS0FBSztzQkFDTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIE5nQ29udHJvbCwgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFVpU2VydmljZSB9IGZyb20gJ25neC1maXJlYmFzZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAsIHN0YXJ0V2l0aCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG50eXBlIENvbnRyb2xUeXBlID0gTmdDb250cm9sIHwgRm9ybUNvbnRyb2wgfCB1bmRlZmluZWQgfCBudWxsO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtYWwtYXV0aHVpLWZvcm0tZmllbGQnLFxuICB0ZW1wbGF0ZVVybDogJ2Zvcm0tZmllbGQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnZm9ybS1maWVsZC5jb21wb25lbnQuc2NzcycsICcuLi8uLi9pb25pYy1hdXRoLXVpLnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBBdXRoVUlGb3JtRmllbGRDb21wb25lbnQge1xuXG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmcgPSAnJztcblxuICBASW5wdXQoKVxuICBnZXQgY29udHJvbCgpOiBDb250cm9sVHlwZSB7IHJldHVybiB0aGlzLmNvbnRyb2wkLnZhbHVlOyB9XG4gIHNldCBjb250cm9sKHZhbDogQ29udHJvbFR5cGUpIHsgdGhpcy5jb250cm9sJC5uZXh0KHZhbCk7IH1cbiAgcHJpdmF0ZSBjb250cm9sJDogQmVoYXZpb3JTdWJqZWN0PENvbnRyb2xUeXBlPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Q29udHJvbFR5cGU+KHVuZGVmaW5lZCk7XG5cbiAgcHVibGljIGVycm9ycyQ6IE9ic2VydmFibGU8c3RyaW5nW10+ID0gdGhpcy5jb250cm9sJC5waXBlKFxuICAgIHN3aXRjaE1hcChjb250cm9sID0+IChjb250cm9sICYmIGNvbnRyb2wuc3RhdHVzQ2hhbmdlcylcbiAgICAgID8gY29udHJvbC5zdGF0dXNDaGFuZ2VzLnBpcGUoc3RhcnRXaXRoKGNvbnRyb2wuZXJyb3JzKSwgbWFwKF8gPT4gdGhpcy5lcnJvck1lc3NhZ2VGbihjb250cm9sLmVycm9ycykpKVxuICAgICAgOiBvZihbXSlcbiAgICApLFxuICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4ge1xuICAgICAgdGhpcy51aS5sb2dFcnJvcihlcnJvcik7XG4gICAgICByZXR1cm4gb2YoW2Vycm9yLm1lc3NhZ2VdKTtcbiAgICB9KVxuICApO1xuXG4gIHB1YmxpYyByZWFkb25seSBpc1ZhbGlkJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMuY29udHJvbCQucGlwZShcbiAgICBzd2l0Y2hNYXAoY29udHJvbCA9PiAoY29udHJvbCAmJiBjb250cm9sLnN0YXR1c0NoYW5nZXMpXG4gICAgICA/IGNvbnRyb2wuc3RhdHVzQ2hhbmdlcy5waXBlKHN0YXJ0V2l0aChjb250cm9sLnZhbGlkKSwgbWFwKCgpID0+IGNvbnRyb2wudmFsaWQgfHwgZmFsc2UpKVxuICAgICAgOiBvZih0cnVlKVxuICAgIClcbiAgKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgaXNEaXNhYmxlZCQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLmNvbnRyb2wkLnBpcGUoXG4gICAgc3dpdGNoTWFwKGNvbnRyb2wgPT4gKGNvbnRyb2wgJiYgY29udHJvbC5zdGF0dXNDaGFuZ2VzKVxuICAgICAgPyBjb250cm9sLnN0YXR1c0NoYW5nZXMucGlwZShzdGFydFdpdGgoY29udHJvbC5kaXNhYmxlZCksIG1hcCgoKSA9PiBjb250cm9sLmRpc2FibGVkIHx8IGZhbHNlKSlcbiAgICAgIDogb2YodHJ1ZSlcbiAgICApXG4gICk7XG5cbiAgQElucHV0KCkgZXJyb3JNZXNzYWdlPzogc3RyaW5nO1xuICBASW5wdXQoKSBlcnJvck1lc3NhZ2VGbjogKGVycm9yczogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwpID0+IHN0cmluZ1tdID0gdGhpcy5mbGF0dGVuRXJyb3JzLmJpbmQodGhpcyk7XG4gIEBJbnB1dCgpIGVycm9yUHJlZml4Pzogc3RyaW5nO1xuICBASW5wdXQoKSBjdXN0b21FcnJvcnM/OiB7IFtpbmRleDogc3RyaW5nXTogc3RyaW5nIH07XG4gIEBJbnB1dCgpIHRyYW5zbGF0ZVBhcmFtczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9O1xuICBASW5wdXQoKSBpY29uPzogc3RyaW5nO1xuICBASW5wdXQoKSBoaW50RW5kPzogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgdWk6IFVpU2VydmljZVxuICApIHsgfVxuXG4gIHByaXZhdGUgZmxhdHRlbkVycm9ycyhlcnJvcnM6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsKTogc3RyaW5nW10ge1xuICAgIGlmIChlcnJvcnMpIHtcbiAgICAgIGlmICh0aGlzLmN1c3RvbUVycm9ycyB8fCB0aGlzLmVycm9yUHJlZml4KSB7XG4gICAgICAgIHJldHVybiBPYmplY3Qua2V5cyhlcnJvcnMpXG4gICAgICAgICAgLm1hcChrZXkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuY3VzdG9tRXJyb3JzKSB7XG4gICAgICAgICAgICAgIGlmICh1bmRlZmluZWQgIT09IHRoaXMuY3VzdG9tRXJyb3JzW2tleV0pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jdXN0b21FcnJvcnNba2V5XTtcbiAgICAgICAgICAgICAgfSBlbHNlIGlmICh1bmRlZmluZWQgIT09IHRoaXMuY3VzdG9tRXJyb3JzLmRlZmF1bHQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jdXN0b21FcnJvcnMuZGVmYXVsdDtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5lcnJvclByZWZpeCkge1xuICAgICAgICAgICAgICByZXR1cm4gYCR7dGhpcy5lcnJvclByZWZpeH0uJHtrZXl9YDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KVxuICAgICAgICAgIC5maWx0ZXIoaXRlbSA9PiAhIWl0ZW0pIGFzIHN0cmluZ1tdIHx8IFtdO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLmVycm9yTWVzc2FnZSkge1xuICAgICAgICByZXR1cm4gW3RoaXMuZXJyb3JNZXNzYWdlXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgfVxuXG59XG4iXX0=
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
export * from './email-confirmation/email-confirmation.component';
|
|
2
|
-
export * from './signin/signin.component';
|
|
3
|
-
export * from './register/register.component';
|
|
4
|
-
export * from './user/user.component';
|
|
5
|
-
export * from './reauthenticate/reauthenticate.component';
|
|
6
|
-
export * from './providers/providers.component';
|
|
7
|
-
export * from './email-field/email-field.component';
|
|
8
|
-
export * from './form-field/form-field.component';
|
|
9
|
-
export * from './name-field/name-field.component';
|
|
10
|
-
export * from './or-divider/or-divider.component';
|
|
11
|
-
export * from './password-field/password-field.component';
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZmlyZWJhc2UvaW9uaWMtYXV0aC11aS9zcmMvY29tcG9uZW50cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG1EQUFtRCxDQUFDO0FBQ2xFLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsMkNBQTJDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2VtYWlsLWNvbmZpcm1hdGlvbi9lbWFpbC1jb25maXJtYXRpb24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc2lnbmluL3NpZ25pbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9yZWdpc3Rlci9yZWdpc3Rlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi91c2VyL3VzZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vcmVhdXRoZW50aWNhdGUvcmVhdXRoZW50aWNhdGUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vcHJvdmlkZXJzL3Byb3ZpZGVycy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9lbWFpbC1maWVsZC9lbWFpbC1maWVsZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9mb3JtLWZpZWxkL2Zvcm0tZmllbGQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbmFtZS1maWVsZC9uYW1lLWZpZWxkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL29yLWRpdmlkZXIvb3ItZGl2aWRlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9wYXNzd29yZC1maWVsZC9wYXNzd29yZC1maWVsZC5jb21wb25lbnQnO1xuIl19
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectorRef, Component, forwardRef, Inject, Injector } from '@angular/core';
|
|
2
|
-
import { FormControl, NG_VALUE_ACCESSOR, Validators, NG_VALIDATORS } from '@angular/forms';
|
|
3
|
-
import { MalSharedConfigToken, ValueAccessorControlComponent } from 'ngx-firebase';
|
|
4
|
-
export class AuthUINameFieldComponent extends ValueAccessorControlComponent {
|
|
5
|
-
constructor(config, injector, cdRef) {
|
|
6
|
-
super(injector, cdRef);
|
|
7
|
-
this.config = config;
|
|
8
|
-
this.control = new FormControl('', [
|
|
9
|
-
Validators.minLength(this.config.authUi.nameMinLength),
|
|
10
|
-
Validators.maxLength(this.config.authUi.nameMaxLength)
|
|
11
|
-
]);
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
AuthUINameFieldComponent.decorators = [
|
|
15
|
-
{ type: Component, args: [{
|
|
16
|
-
selector: 'mal-authui-name-field',
|
|
17
|
-
template: "<mal-authui-form-field [control]=\"parentControl\"\n label=\"auth.name.label\"\n [hintEnd]=\"(control.value?.length || 0 ) + ' / ' + config.authUi.nameMaxLength\"\n errorPrefix=\"auth.name.errors\">\n\n <ion-input [placeholder]=\"'auth.name.placeholder' | translate\"\n [maxlength]=\"config.authUi.nameMaxLength\"\n [minlength]=\"config.authUi.nameMinLength\"\n color=\"text\"\n [formControl]=\"control\">\n </ion-input>\n\n</mal-authui-form-field>",
|
|
18
|
-
providers: [
|
|
19
|
-
{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => AuthUINameFieldComponent), multi: true },
|
|
20
|
-
{ provide: NG_VALIDATORS, useExisting: AuthUINameFieldComponent, multi: true }
|
|
21
|
-
],
|
|
22
|
-
styles: ["div.authui-logo{margin:32px auto;width:30%}div.authui-logo img{display:block;max-width:120px;border-radius:20px;margin-left:auto;margin-right:auto}div.authui-title{font-size:20px;margin:16px 0}div.authui-alternate-action{margin:32px auto 24px;font-weight:500}div.authui-alternate-action .text{margin-right:8px}ion-content.auth-page{--background:var(--auth-pages-background,--background)}div.resend-confirmation{margin:24px 0;font-size:.9em;text-align:center}ion-button.authui-provider-button{width:220px;margin:8px auto;display:block;text-align:center;--background:var(--auth-provider-background-color,#fff)}@media screen and (max-width:599px){ion-button.authui-provider-button{width:100%}}ion-button.authui-submit-button{width:220px;margin:16px auto;display:block}@media screen and (max-width:599px){ion-button.authui-submit-button{width:100%}}ion-grid.terms{width:100%;margin:24px 0;text-align:left;font-size:.9em}ion-grid.terms ion-col ion-row a{font-size:16px;margin-left:4px}div.forgot-password{margin:24px 0;font-size:.9em}@media (prefers-color-scheme:dark){a{color:#fff}}div.auth-ui-form{width:384px;max-width:384px;padding:32px;text-align:center;flex:1 0 auto}@media screen and (max-width:599px){div.auth-ui-form{padding:24px;width:100%}}div.auth-ui-form form{width:100%;text-align:left}div.authui-wrapper{width:100%;background-size:cover;flex:1 0 auto;padding:32px}@media screen and (max-width:599px){div.authui-wrapper{padding:16px}}button.confirm:disabled{color:grey}div.email-popover-outer{width:100%}div.email-popover-outer div.email-popover-inner{padding:10%}"]
|
|
23
|
-
},] }
|
|
24
|
-
];
|
|
25
|
-
AuthUINameFieldComponent.ctorParameters = () => [
|
|
26
|
-
{ type: undefined, decorators: [{ type: Inject, args: [forwardRef(() => MalSharedConfigToken),] }] },
|
|
27
|
-
{ type: Injector },
|
|
28
|
-
{ type: ChangeDetectorRef }
|
|
29
|
-
];
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmFtZS1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZmlyZWJhc2UvaW9uaWMtYXV0aC11aS9zcmMvY29tcG9uZW50cy9uYW1lLWZpZWxkL25hbWUtZmllbGQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3JILE9BQU8sRUFBd0IsV0FBVyxFQUFFLGlCQUFpQixFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQWEsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1SCxPQUFPLEVBQUUsb0JBQW9CLEVBQW1CLDZCQUE2QixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBVXBHLE1BQU0sT0FBTyx3QkFBeUIsU0FBUSw2QkFBcUM7SUFRL0UsWUFDMkQsTUFBdUIsRUFDOUUsUUFBa0IsRUFDbEIsS0FBd0I7UUFFeEIsS0FBSyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUpnQyxXQUFNLEdBQU4sTUFBTSxDQUFpQjtRQU4zRSxZQUFPLEdBQWdCLElBQUksV0FBVyxDQUFDLEVBQUUsRUFBRTtZQUM5QyxVQUFVLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQztZQUN0RCxVQUFVLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQztTQUN6RCxDQUFDLENBQUM7SUFRSCxDQUFDOzs7WUF0QkosU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSx1QkFBdUI7Z0JBQ2pDLHVqQkFBd0M7Z0JBRXhDLFNBQVMsRUFBRTtvQkFDUCxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHdCQUF3QixDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtvQkFDcEcsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSx3QkFBd0IsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO2lCQUFDOzthQUN0Rjs7OzRDQVVRLE1BQU0sU0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsb0JBQW9CLENBQUM7WUFyQm9CLFFBQVE7WUFBMUQsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgZm9yd2FyZFJlZiwgSW5qZWN0LCBJbmplY3RvciwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybUNvbnRyb2wsIE5HX1ZBTFVFX0FDQ0VTU09SLCBWYWxpZGF0b3JzLCBOR19WQUxJREFUT1JTLCBWYWxpZGF0b3IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYWxTaGFyZWRDb25maWdUb2tlbiwgTWFsU2hhcmVkQ29uZmlnLCBWYWx1ZUFjY2Vzc29yQ29udHJvbENvbXBvbmVudCB9IGZyb20gJ25neC1maXJlYmFzZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbWFsLWF1dGh1aS1uYW1lLWZpZWxkJyxcbiAgICB0ZW1wbGF0ZVVybDogJ25hbWUtZmllbGQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuLi8uLi9pb25pYy1hdXRoLXVpLnNjc3MnXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgeyBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUiwgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQXV0aFVJTmFtZUZpZWxkQ29tcG9uZW50KSwgbXVsdGk6IHRydWUgfSxcbiAgICAgICAgeyBwcm92aWRlOiBOR19WQUxJREFUT1JTLCB1c2VFeGlzdGluZzogQXV0aFVJTmFtZUZpZWxkQ29tcG9uZW50LCBtdWx0aTogdHJ1ZSB9XVxufSlcbmV4cG9ydCBjbGFzcyBBdXRoVUlOYW1lRmllbGRDb21wb25lbnQgZXh0ZW5kcyBWYWx1ZUFjY2Vzc29yQ29udHJvbENvbXBvbmVudDxzdHJpbmc+XG4gICAgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yLCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQge1xuXG4gICAgcHVibGljIGNvbnRyb2w6IEZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sKCcnLCBbXG4gICAgICAgIFZhbGlkYXRvcnMubWluTGVuZ3RoKHRoaXMuY29uZmlnLmF1dGhVaS5uYW1lTWluTGVuZ3RoKSxcbiAgICAgICAgVmFsaWRhdG9ycy5tYXhMZW5ndGgodGhpcy5jb25maWcuYXV0aFVpLm5hbWVNYXhMZW5ndGgpXG4gICAgXSk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChmb3J3YXJkUmVmKCgpID0+IE1hbFNoYXJlZENvbmZpZ1Rva2VuKSkgcHVibGljIGNvbmZpZzogTWFsU2hhcmVkQ29uZmlnLFxuICAgICAgICBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxuICAgICkge1xuICAgICAgICBzdXBlcihpbmplY3RvciwgY2RSZWYpO1xuICAgIH1cblxufVxuIl19
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { Component } from '@angular/core';
|
|
2
|
-
export class AuthUIOrDividerComponent {
|
|
3
|
-
}
|
|
4
|
-
AuthUIOrDividerComponent.decorators = [
|
|
5
|
-
{ type: Component, args: [{
|
|
6
|
-
selector: 'mal-authui-or-divider',
|
|
7
|
-
template: "<div \n class=\"separator\">\n <ion-text color=\"text\" class=\"text\">{{ \"auth.common.orLabel\" | translate }}</ion-text>\n</div>",
|
|
8
|
-
styles: [".separator{font-size:15px;font-weight:600;margin:20px auto 6px;position:relative;overflow:hidden;width:100px}.separator .text{display:inline-flex;position:relative;padding:0 8px;z-index:9999}.separator .text:after,.separator .text:before{content:\"\";display:block;width:30px;position:absolute;top:10px;border-top:1px solid}.separator .text:before{right:100%}.separator .text:after{left:100%}", "div.authui-logo{margin:32px auto;width:30%}div.authui-logo img{display:block;max-width:120px;border-radius:20px;margin-left:auto;margin-right:auto}div.authui-title{font-size:20px;margin:16px 0}div.authui-alternate-action{margin:32px auto 24px;font-weight:500}div.authui-alternate-action .text{margin-right:8px}ion-content.auth-page{--background:var(--auth-pages-background,--background)}div.resend-confirmation{margin:24px 0;font-size:.9em;text-align:center}ion-button.authui-provider-button{width:220px;margin:8px auto;display:block;text-align:center;--background:var(--auth-provider-background-color,#fff)}@media screen and (max-width:599px){ion-button.authui-provider-button{width:100%}}ion-button.authui-submit-button{width:220px;margin:16px auto;display:block}@media screen and (max-width:599px){ion-button.authui-submit-button{width:100%}}ion-grid.terms{width:100%;margin:24px 0;text-align:left;font-size:.9em}ion-grid.terms ion-col ion-row a{font-size:16px;margin-left:4px}div.forgot-password{margin:24px 0;font-size:.9em}@media (prefers-color-scheme:dark){a{color:#fff}}div.auth-ui-form{width:384px;max-width:384px;padding:32px;text-align:center;flex:1 0 auto}@media screen and (max-width:599px){div.auth-ui-form{padding:24px;width:100%}}div.auth-ui-form form{width:100%;text-align:left}div.authui-wrapper{width:100%;background-size:cover;flex:1 0 auto;padding:32px}@media screen and (max-width:599px){div.authui-wrapper{padding:16px}}button.confirm:disabled{color:grey}div.email-popover-outer{width:100%}div.email-popover-outer div.email-popover-inner{padding:10%}"]
|
|
9
|
-
},] }
|
|
10
|
-
];
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ItZGl2aWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZmlyZWJhc2UvaW9uaWMtYXV0aC11aS9zcmMvY29tcG9uZW50cy9vci1kaXZpZGVyL29yLWRpdmlkZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFPMUMsTUFBTSxPQUFPLHdCQUF3Qjs7O1lBTHBDLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsdUJBQXVCO2dCQUNqQyxzSkFBd0M7O2FBRTNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbWFsLWF1dGh1aS1vci1kaXZpZGVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJ29yLWRpdmlkZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWydvci1kaXZpZGVyLmNvbXBvbmVudC5zY3NzJywgJy4uLy4uL2lvbmljLWF1dGgtdWkuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEF1dGhVSU9yRGl2aWRlckNvbXBvbmVudCB7XG5cbn1cbiJdfQ==
|
|
@@ -1,138 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectorRef, Component, forwardRef, Inject, Injector, Input } from '@angular/core';
|
|
2
|
-
import { FormControl, NG_VALUE_ACCESSOR, Validators, FormGroup, NG_VALIDATORS, NgControl } from '@angular/forms';
|
|
3
|
-
import { UiService, MalSharedConfigToken } from 'ngx-firebase';
|
|
4
|
-
import { Subject } from 'rxjs';
|
|
5
|
-
import { takeUntil } from 'rxjs/operators';
|
|
6
|
-
import { confirmPasswordValidator, passwordStrengthValidator } from './passwordValidatorFunctions';
|
|
7
|
-
export class AuthUIPasswordFieldComponent {
|
|
8
|
-
constructor(config, injector, cdRef, ui) {
|
|
9
|
-
this.config = config;
|
|
10
|
-
this.injector = injector;
|
|
11
|
-
this.cdRef = cdRef;
|
|
12
|
-
this.ui = ui;
|
|
13
|
-
// Validators are added by set validators function
|
|
14
|
-
this.form = new FormGroup({
|
|
15
|
-
password: new FormControl('', []),
|
|
16
|
-
passwordConfirm: new FormControl('', [])
|
|
17
|
-
});
|
|
18
|
-
this.autocomplete = 'current-password';
|
|
19
|
-
this._forUpdate = false;
|
|
20
|
-
this.isDisabled = false;
|
|
21
|
-
this.destroy$ = new Subject();
|
|
22
|
-
this.propogateChange = (val) => { };
|
|
23
|
-
this.propogateTouch = () => { };
|
|
24
|
-
this.propogateValidationChange = () => { };
|
|
25
|
-
this.setValidators();
|
|
26
|
-
this.form.controls.password.valueChanges
|
|
27
|
-
.pipe(takeUntil(this.destroy$))
|
|
28
|
-
.subscribe(val => {
|
|
29
|
-
try {
|
|
30
|
-
this.form.controls.passwordConfirm.updateValueAndValidity();
|
|
31
|
-
this.propogateChange(val);
|
|
32
|
-
}
|
|
33
|
-
catch (error) {
|
|
34
|
-
this.ui.logError(error);
|
|
35
|
-
}
|
|
36
|
-
});
|
|
37
|
-
this.form.statusChanges
|
|
38
|
-
.pipe(takeUntil(this.destroy$))
|
|
39
|
-
.subscribe(_ => {
|
|
40
|
-
try {
|
|
41
|
-
this.propogateValidationChange();
|
|
42
|
-
}
|
|
43
|
-
catch (error) {
|
|
44
|
-
this.ui.logError(error);
|
|
45
|
-
}
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
set forUpdate(val) {
|
|
49
|
-
this._forUpdate = val;
|
|
50
|
-
this.setValidators();
|
|
51
|
-
if (val) {
|
|
52
|
-
this.autocomplete = 'new-password';
|
|
53
|
-
}
|
|
54
|
-
else {
|
|
55
|
-
this.autocomplete = 'current-password';
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
get forUpdate() {
|
|
59
|
-
return this._forUpdate;
|
|
60
|
-
}
|
|
61
|
-
set value(val) {
|
|
62
|
-
if (val) {
|
|
63
|
-
this.form.patchValue({
|
|
64
|
-
password: val,
|
|
65
|
-
passwordConfirm: val
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
|
-
else {
|
|
69
|
-
this.form.reset();
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
get value() {
|
|
73
|
-
return this.form.controls.password.value;
|
|
74
|
-
}
|
|
75
|
-
ngOnDestroy() {
|
|
76
|
-
this.destroy$.next();
|
|
77
|
-
this.destroy$.complete();
|
|
78
|
-
}
|
|
79
|
-
ngAfterViewInit() {
|
|
80
|
-
this.parentControl = this.injector.get(NgControl, null);
|
|
81
|
-
this.setValidators();
|
|
82
|
-
this.cdRef.detectChanges();
|
|
83
|
-
}
|
|
84
|
-
// Form Accessor functions
|
|
85
|
-
registerOnChange(fn) { this.propogateChange = fn; }
|
|
86
|
-
registerOnTouched(fn) { this.propogateTouch = fn; }
|
|
87
|
-
registerOnValidatorChange(fn) { this.propogateValidationChange = fn; }
|
|
88
|
-
writeValue(val) { this.value = val; }
|
|
89
|
-
setDisabledState(isDisabled) { this.isDisabled = isDisabled; }
|
|
90
|
-
validate(control) {
|
|
91
|
-
if (this.form.controls.password.errors || this.form.controls.passwordConfirm.errors) {
|
|
92
|
-
return Object.assign(this.form.controls.password.errors || {}, this.form.controls.passwordConfirm.errors || {});
|
|
93
|
-
}
|
|
94
|
-
else {
|
|
95
|
-
return null;
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
setValidators() {
|
|
99
|
-
if (this.forUpdate) {
|
|
100
|
-
this.form.controls.password.setValidators([
|
|
101
|
-
Validators.maxLength(this.config.authUi.passwordMaxLength),
|
|
102
|
-
Validators.minLength(this.config.authUi.passwordMinLength),
|
|
103
|
-
passwordStrengthValidator(this.config.authUi)
|
|
104
|
-
]);
|
|
105
|
-
this.form.controls.passwordConfirm.setValidators([
|
|
106
|
-
confirmPasswordValidator
|
|
107
|
-
]);
|
|
108
|
-
}
|
|
109
|
-
else {
|
|
110
|
-
this.form.controls.password.setValidators([]);
|
|
111
|
-
this.form.controls.passwordConfirm.setValidators([]);
|
|
112
|
-
}
|
|
113
|
-
this.form.controls.password.updateValueAndValidity();
|
|
114
|
-
this.form.controls.passwordConfirm.updateValueAndValidity();
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
AuthUIPasswordFieldComponent.decorators = [
|
|
118
|
-
{ type: Component, args: [{
|
|
119
|
-
selector: 'mal-authui-password-field',
|
|
120
|
-
template: "<form name=\"form\" [formGroup]=\"form\">\n <mal-authui-form-field [control]=\"parentControl\"\n label=\"auth.password.label\"\n [hintEnd]=\"form.value.password?.length || 0 + ' / ' + config.authUi.passwordMaxLength\"\n errorPrefix=\"auth.password.errors\">\n\n <ion-input (onBlur)=\"propogateTouch()\"\n [maxlength]=\"config.authUi.passwordMaxLength\"\n [minlength]=\"config.authUi.passwordMinLength\"\n [placeholder]=\"'auth.password.placeholder' | translate\"\n formControlName=\"password\"\n color=\"text\"\n type=\"password\"\n [autocomplete]=\"autocomplete\">\n </ion-input>\n\n </mal-authui-form-field>\n\n <mal-authui-form-field *ngIf=\"forUpdate\"\n label=\"auth.password.confirmLabel\"\n errorPrefix=\"auth.password.errors\">\n\n <ion-input (onBlur)=\"propogateTouch()\"\n [placeholder]=\"'auth.password.confirmPlaceholder' | translate\"\n formControlName=\"passwordConfirm\"\n color=\"text\"\n type=\"password\">\n </ion-input>\n\n </mal-authui-form-field>\n</form>\n\n<!-- TODO <mat-pass-toggle-visibility #toggle matSuffix></mat-pass-toggle-visibility> -->\n<!-- TODO <mat-password-strength #passwordStrength\n [customValidator]=\"customValidator\"\n [enableDigitRule]=\"enableDigitRule\"\n [enableLengthRule]=\"enableLengthRule\"\n [enableLowerCaseLetterRule]=\"enableLowerCaseLetterRule\"\n [enableSpecialCharRule]=\"enableSpecialCharRule\"\n [enableUpperCaseLetterRule]=\"enableUpperCaseLetterRule\"\n [externalError]=\"signUpFormGroup.controls.password.dirty\"\n [max]=\"max\"\n [min]=\"min\"\n [password]=\"signUpFormGroup.value.password\">\n </mat-password-strength> -->",
|
|
121
|
-
providers: [
|
|
122
|
-
{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => AuthUIPasswordFieldComponent), multi: true },
|
|
123
|
-
{ provide: NG_VALIDATORS, useExisting: AuthUIPasswordFieldComponent, multi: true }
|
|
124
|
-
],
|
|
125
|
-
styles: ["div.authui-logo{margin:32px auto;width:30%}div.authui-logo img{display:block;max-width:120px;border-radius:20px;margin-left:auto;margin-right:auto}div.authui-title{font-size:20px;margin:16px 0}div.authui-alternate-action{margin:32px auto 24px;font-weight:500}div.authui-alternate-action .text{margin-right:8px}ion-content.auth-page{--background:var(--auth-pages-background,--background)}div.resend-confirmation{margin:24px 0;font-size:.9em;text-align:center}ion-button.authui-provider-button{width:220px;margin:8px auto;display:block;text-align:center;--background:var(--auth-provider-background-color,#fff)}@media screen and (max-width:599px){ion-button.authui-provider-button{width:100%}}ion-button.authui-submit-button{width:220px;margin:16px auto;display:block}@media screen and (max-width:599px){ion-button.authui-submit-button{width:100%}}ion-grid.terms{width:100%;margin:24px 0;text-align:left;font-size:.9em}ion-grid.terms ion-col ion-row a{font-size:16px;margin-left:4px}div.forgot-password{margin:24px 0;font-size:.9em}@media (prefers-color-scheme:dark){a{color:#fff}}div.auth-ui-form{width:384px;max-width:384px;padding:32px;text-align:center;flex:1 0 auto}@media screen and (max-width:599px){div.auth-ui-form{padding:24px;width:100%}}div.auth-ui-form form{width:100%;text-align:left}div.authui-wrapper{width:100%;background-size:cover;flex:1 0 auto;padding:32px}@media screen and (max-width:599px){div.authui-wrapper{padding:16px}}button.confirm:disabled{color:grey}div.email-popover-outer{width:100%}div.email-popover-outer div.email-popover-inner{padding:10%}"]
|
|
126
|
-
},] }
|
|
127
|
-
];
|
|
128
|
-
AuthUIPasswordFieldComponent.ctorParameters = () => [
|
|
129
|
-
{ type: undefined, decorators: [{ type: Inject, args: [forwardRef(() => MalSharedConfigToken),] }] },
|
|
130
|
-
{ type: Injector },
|
|
131
|
-
{ type: ChangeDetectorRef },
|
|
132
|
-
{ type: UiService }
|
|
133
|
-
];
|
|
134
|
-
AuthUIPasswordFieldComponent.propDecorators = {
|
|
135
|
-
forUpdate: [{ type: Input }],
|
|
136
|
-
value: [{ type: Input }]
|
|
137
|
-
};
|
|
138
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFzc3dvcmQtZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWZpcmViYXNlL2lvbmljLWF1dGgtdWkvc3JjL2NvbXBvbmVudHMvcGFzc3dvcmQtZmllbGQvcGFzc3dvcmQtZmllbGQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUM1SCxPQUFPLEVBQ29DLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxVQUFVLEVBQ2pGLFNBQVMsRUFBRSxhQUFhLEVBQStCLFNBQVMsRUFDbkUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsU0FBUyxFQUFtQixvQkFBb0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNoRixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQVluRyxNQUFNLE9BQU8sNEJBQTRCO0lBaURyQyxZQUMyRCxNQUF1QixFQUN0RSxRQUFrQixFQUNsQixLQUF3QixFQUN4QixFQUFhO1FBSGtDLFdBQU0sR0FBTixNQUFNLENBQWlCO1FBQ3RFLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsVUFBSyxHQUFMLEtBQUssQ0FBbUI7UUFDeEIsT0FBRSxHQUFGLEVBQUUsQ0FBVztRQW5EekIsa0RBQWtEO1FBQzNDLFNBQUksR0FBYyxJQUFJLFNBQVMsQ0FBQztZQUNuQyxRQUFRLEVBQUUsSUFBSSxXQUFXLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUNqQyxlQUFlLEVBQUUsSUFBSSxXQUFXLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQztTQUMzQyxDQUFDLENBQUM7UUFFSSxpQkFBWSxHQUFXLGtCQUFrQixDQUFDO1FBZXpDLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFpQjdCLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFHM0IsYUFBUSxHQUFrQixJQUFJLE9BQU8sRUFBUSxDQUFDO1FBRXRELG9CQUFlLEdBQUcsQ0FBQyxHQUFjLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUMxQyxtQkFBYyxHQUFHLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUMzQiw4QkFBeUIsR0FBRyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFRbEMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxZQUFZO2FBQ25DLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQzlCLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNiLElBQUk7Z0JBQ0EsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLHNCQUFzQixFQUFFLENBQUM7Z0JBQzVELElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDN0I7WUFBQyxPQUFPLEtBQUssRUFBRTtnQkFDWixJQUFJLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUMzQjtRQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ1AsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhO2FBQ2xCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQzlCLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNYLElBQUk7Z0JBQ0EsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUE7YUFDbkM7WUFBQyxPQUFPLEtBQUssRUFBRTtnQkFDWixJQUFJLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUMzQjtRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQWpFRCxJQUNJLFNBQVMsQ0FBQyxHQUFZO1FBQ3RCLElBQUksQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNyQixJQUFJLEdBQUcsRUFBRTtZQUNMLElBQUksQ0FBQyxZQUFZLEdBQUcsY0FBYyxDQUFDO1NBQ3RDO2FBQU07WUFDSCxJQUFJLENBQUMsWUFBWSxHQUFHLGtCQUFrQixDQUFDO1NBQzFDO0lBQ0wsQ0FBQztJQUNELElBQUksU0FBUztRQUNULE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUMzQixDQUFDO0lBR0QsSUFDSSxLQUFLLENBQUMsR0FBYztRQUNwQixJQUFJLEdBQUcsRUFBRTtZQUNMLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO2dCQUNqQixRQUFRLEVBQUUsR0FBRztnQkFDYixlQUFlLEVBQUUsR0FBRzthQUN2QixDQUFDLENBQUM7U0FDTjthQUFNO1lBQ0gsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUNyQjtJQUNMLENBQUM7SUFDRCxJQUFJLEtBQUs7UUFDTCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7SUFDN0MsQ0FBQztJQXVDRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxlQUFlO1FBQ1gsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVELDBCQUEwQjtJQUMxQixnQkFBZ0IsQ0FBQyxFQUFPLElBQUksSUFBSSxDQUFDLGVBQWUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3hELGlCQUFpQixDQUFDLEVBQU8sSUFBSSxJQUFJLENBQUMsY0FBYyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDeEQseUJBQXlCLENBQUUsRUFBYyxJQUFJLElBQUksQ0FBQyx5QkFBeUIsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ25GLFVBQVUsQ0FBQyxHQUFjLElBQUksSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ2hELGdCQUFnQixDQUFDLFVBQW1CLElBQUksSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBQ3ZFLFFBQVEsQ0FBQyxPQUF3QjtRQUM3QixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRTtZQUNqRixPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLE1BQU0sSUFBSSxFQUFFLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUMsQ0FBQztTQUNuSDthQUFNO1lBQ0gsT0FBTyxJQUFJLENBQUM7U0FDZjtJQUNMLENBQUM7SUFFTyxhQUFhO1FBQ2pCLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNoQixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDO2dCQUN0QyxVQUFVLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDO2dCQUMxRCxVQUFVLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDO2dCQUMxRCx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQzthQUNoRCxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDO2dCQUM3Qyx3QkFBd0I7YUFDM0IsQ0FBQyxDQUFDO1NBQ047YUFBTTtZQUNILElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDOUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUN4RDtRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBQ3JELElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ2hFLENBQUM7OztZQTlISixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLDJCQUEyQjtnQkFDckMsNHpFQUE0QztnQkFFNUMsU0FBUyxFQUFFO29CQUNQLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsNEJBQTRCLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO29CQUN4RyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLDRCQUE0QixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7aUJBQUM7O2FBQzFGOzs7NENBbURRLE1BQU0sU0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsb0JBQW9CLENBQUM7WUF0RW9CLFFBQVE7WUFBMUQsaUJBQWlCO1lBS2hDLFNBQVM7Ozt3QkF5QmIsS0FBSztvQkFlTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgZm9yd2FyZFJlZiwgSW5qZWN0LCBJbmplY3RvciwgSW5wdXQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBBYnN0cmFjdENvbnRyb2wsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3JtQ29udHJvbCwgTkdfVkFMVUVfQUNDRVNTT1IsIFZhbGlkYXRvcnMsXG4gICAgRm9ybUdyb3VwLCBOR19WQUxJREFUT1JTLCBWYWxpZGF0b3IsIFZhbGlkYXRpb25FcnJvcnMsIE5nQ29udHJvbFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBVaVNlcnZpY2UsIE1hbFNoYXJlZENvbmZpZywgTWFsU2hhcmVkQ29uZmlnVG9rZW4gfSBmcm9tICduZ3gtZmlyZWJhc2UnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgY29uZmlybVBhc3N3b3JkVmFsaWRhdG9yLCBwYXNzd29yZFN0cmVuZ3RoVmFsaWRhdG9yIH0gZnJvbSAnLi9wYXNzd29yZFZhbGlkYXRvckZ1bmN0aW9ucyc7XG5cbnR5cGUgVmFsdWVUeXBlID0gc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ21hbC1hdXRodWktcGFzc3dvcmQtZmllbGQnLFxuICAgIHRlbXBsYXRlVXJsOiAncGFzc3dvcmQtZmllbGQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuLi8uLi9pb25pYy1hdXRoLXVpLnNjc3MnXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgeyBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUiwgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQXV0aFVJUGFzc3dvcmRGaWVsZENvbXBvbmVudCksIG11bHRpOiB0cnVlIH0sXG4gICAgICAgIHsgcHJvdmlkZTogTkdfVkFMSURBVE9SUywgdXNlRXhpc3Rpbmc6IEF1dGhVSVBhc3N3b3JkRmllbGRDb21wb25lbnQsIG11bHRpOiB0cnVlIH1dXG59KVxuZXhwb3J0IGNsYXNzIEF1dGhVSVBhc3N3b3JkRmllbGRDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yLCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQge1xuXG4gICAgLy8gVmFsaWRhdG9ycyBhcmUgYWRkZWQgYnkgc2V0IHZhbGlkYXRvcnMgZnVuY3Rpb25cbiAgICBwdWJsaWMgZm9ybTogRm9ybUdyb3VwID0gbmV3IEZvcm1Hcm91cCh7XG4gICAgICAgIHBhc3N3b3JkOiBuZXcgRm9ybUNvbnRyb2woJycsIFtdKSxcbiAgICAgICAgcGFzc3dvcmRDb25maXJtOiBuZXcgRm9ybUNvbnRyb2woJycsIFtdKVxuICAgIH0pO1xuXG4gICAgcHVibGljIGF1dG9jb21wbGV0ZTogc3RyaW5nID0gJ2N1cnJlbnQtcGFzc3dvcmQnO1xuXG4gICAgQElucHV0KClcbiAgICBzZXQgZm9yVXBkYXRlKHZhbDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9mb3JVcGRhdGUgPSB2YWw7XG4gICAgICAgIHRoaXMuc2V0VmFsaWRhdG9ycygpO1xuICAgICAgICBpZiAodmFsKSB7XG4gICAgICAgICAgICB0aGlzLmF1dG9jb21wbGV0ZSA9ICduZXctcGFzc3dvcmQnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5hdXRvY29tcGxldGUgPSAnY3VycmVudC1wYXNzd29yZCc7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0IGZvclVwZGF0ZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZvclVwZGF0ZTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfZm9yVXBkYXRlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCB2YWx1ZSh2YWw6IFZhbHVlVHlwZSkge1xuICAgICAgICBpZiAodmFsKSB7XG4gICAgICAgICAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICAgICAgICAgICAgcGFzc3dvcmQ6IHZhbCxcbiAgICAgICAgICAgICAgICBwYXNzd29yZENvbmZpcm06IHZhbFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmZvcm0ucmVzZXQoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBnZXQgdmFsdWUoKTogVmFsdWVUeXBlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybS5jb250cm9scy5wYXNzd29yZC52YWx1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNEaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIHB1YmxpYyBwYXJlbnRDb250cm9sPzogTmdDb250cm9sIHwgbnVsbDtcblxuICAgIHByaXZhdGUgZGVzdHJveSQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgcHJvcG9nYXRlQ2hhbmdlID0gKHZhbDogVmFsdWVUeXBlKSA9PiB7IH07XG4gICAgcHJvcG9nYXRlVG91Y2ggPSAoKSA9PiB7IH07XG4gICAgcHJvcG9nYXRlVmFsaWRhdGlvbkNoYW5nZSA9ICgpID0+IHsgfTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KGZvcndhcmRSZWYoKCkgPT4gTWFsU2hhcmVkQ29uZmlnVG9rZW4pKSBwdWJsaWMgY29uZmlnOiBNYWxTaGFyZWRDb25maWcsXG4gICAgICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICAgICBwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJpdmF0ZSB1aTogVWlTZXJ2aWNlXG4gICAgKSB7XG4gICAgICAgIHRoaXMuc2V0VmFsaWRhdG9ycygpO1xuICAgICAgICB0aGlzLmZvcm0uY29udHJvbHMucGFzc3dvcmQudmFsdWVDaGFuZ2VzXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHZhbCA9PiB7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzLnBhc3N3b3JkQ29uZmlybS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcG9nYXRlQ2hhbmdlKHZhbCk7XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51aS5sb2dFcnJvcihlcnJvcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuZm9ybS5zdGF0dXNDaGFuZ2VzXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKF8gPT4ge1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcG9nYXRlVmFsaWRhdGlvbkNoYW5nZSgpXG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51aS5sb2dFcnJvcihlcnJvcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICB0aGlzLnBhcmVudENvbnRyb2wgPSB0aGlzLmluamVjdG9yLmdldChOZ0NvbnRyb2wsIG51bGwpO1xuICAgICAgICB0aGlzLnNldFZhbGlkYXRvcnMoKTtcbiAgICAgICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLy8gRm9ybSBBY2Nlc3NvciBmdW5jdGlvbnNcbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpIHsgdGhpcy5wcm9wb2dhdGVDaGFuZ2UgPSBmbjsgfVxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpIHsgdGhpcy5wcm9wb2dhdGVUb3VjaCA9IGZuOyB9XG4gICAgcmVnaXN0ZXJPblZhbGlkYXRvckNoYW5nZT8oZm46ICgpID0+IHZvaWQpIHsgdGhpcy5wcm9wb2dhdGVWYWxpZGF0aW9uQ2hhbmdlID0gZm47IH1cbiAgICB3cml0ZVZhbHVlKHZhbDogVmFsdWVUeXBlKSB7IHRoaXMudmFsdWUgPSB2YWw7IH1cbiAgICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pIHsgdGhpcy5pc0Rpc2FibGVkID0gaXNEaXNhYmxlZDsgfVxuICAgIHZhbGlkYXRlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICAgICAgaWYgKHRoaXMuZm9ybS5jb250cm9scy5wYXNzd29yZC5lcnJvcnMgfHwgdGhpcy5mb3JtLmNvbnRyb2xzLnBhc3N3b3JkQ29uZmlybS5lcnJvcnMpIHtcbiAgICAgICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKHRoaXMuZm9ybS5jb250cm9scy5wYXNzd29yZC5lcnJvcnMgfHwge30sIHRoaXMuZm9ybS5jb250cm9scy5wYXNzd29yZENvbmZpcm0uZXJyb3JzIHx8IHt9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRWYWxpZGF0b3JzKCkge1xuICAgICAgICBpZiAodGhpcy5mb3JVcGRhdGUpIHtcbiAgICAgICAgICAgIHRoaXMuZm9ybS5jb250cm9scy5wYXNzd29yZC5zZXRWYWxpZGF0b3JzKFtcbiAgICAgICAgICAgICAgICBWYWxpZGF0b3JzLm1heExlbmd0aCh0aGlzLmNvbmZpZy5hdXRoVWkucGFzc3dvcmRNYXhMZW5ndGgpLFxuICAgICAgICAgICAgICAgIFZhbGlkYXRvcnMubWluTGVuZ3RoKHRoaXMuY29uZmlnLmF1dGhVaS5wYXNzd29yZE1pbkxlbmd0aCksXG4gICAgICAgICAgICAgICAgcGFzc3dvcmRTdHJlbmd0aFZhbGlkYXRvcih0aGlzLmNvbmZpZy5hdXRoVWkpXG4gICAgICAgICAgICBdKTtcbiAgICAgICAgICAgIHRoaXMuZm9ybS5jb250cm9scy5wYXNzd29yZENvbmZpcm0uc2V0VmFsaWRhdG9ycyhbXG4gICAgICAgICAgICAgICAgY29uZmlybVBhc3N3b3JkVmFsaWRhdG9yXG4gICAgICAgICAgICBdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZm9ybS5jb250cm9scy5wYXNzd29yZC5zZXRWYWxpZGF0b3JzKFtdKTtcbiAgICAgICAgICAgIHRoaXMuZm9ybS5jb250cm9scy5wYXNzd29yZENvbmZpcm0uc2V0VmFsaWRhdG9ycyhbXSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzLnBhc3N3b3JkLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzLnBhc3N3b3JkQ29uZmlybS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgfVxuXG59XG4iXX0=
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
export function passwordStrengthValidator(config) {
|
|
2
|
-
return (control) => {
|
|
3
|
-
let strengthErrors = null;
|
|
4
|
-
if (control.value) {
|
|
5
|
-
if (config.passwordMinLength && control.value.length < config.passwordMinLength) {
|
|
6
|
-
return { minlength: true };
|
|
7
|
-
}
|
|
8
|
-
if (config.passwordMaxLength && control.value.length > config.passwordMaxLength) {
|
|
9
|
-
return { maxlength: true };
|
|
10
|
-
}
|
|
11
|
-
if (config.passwordRequireLowercase && (!/[a-z]/.test(control.value))) {
|
|
12
|
-
if (!strengthErrors) {
|
|
13
|
-
strengthErrors = {};
|
|
14
|
-
}
|
|
15
|
-
strengthErrors.requireLowercase = true;
|
|
16
|
-
}
|
|
17
|
-
if (config.passwordRequireUppercase && (!/[A-Z]/.test(control.value))) {
|
|
18
|
-
if (!strengthErrors) {
|
|
19
|
-
strengthErrors = {};
|
|
20
|
-
}
|
|
21
|
-
strengthErrors.requireUppercase = true;
|
|
22
|
-
}
|
|
23
|
-
if (config.passwordRequireSpecial && (!/[!@#\$%\^&]/.test(control.value))) {
|
|
24
|
-
if (!strengthErrors) {
|
|
25
|
-
strengthErrors = {};
|
|
26
|
-
}
|
|
27
|
-
strengthErrors.requireSpecial = true;
|
|
28
|
-
}
|
|
29
|
-
if (config.passwordRequireNumbers && (!/[0-9]/.test(control.value))) {
|
|
30
|
-
if (!strengthErrors) {
|
|
31
|
-
strengthErrors = {};
|
|
32
|
-
}
|
|
33
|
-
strengthErrors.requireNumbers = true;
|
|
34
|
-
}
|
|
35
|
-
if (strengthErrors) {
|
|
36
|
-
return { passwordStrength: strengthErrors };
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
return null;
|
|
40
|
-
};
|
|
41
|
-
}
|
|
42
|
-
export function confirmPasswordValidator(control) {
|
|
43
|
-
if (!control.parent || !control) {
|
|
44
|
-
return null;
|
|
45
|
-
}
|
|
46
|
-
const password = control.parent.get('password');
|
|
47
|
-
const passwordConfirm = control.parent.get('passwordConfirm');
|
|
48
|
-
if (!password || !passwordConfirm) {
|
|
49
|
-
return null;
|
|
50
|
-
}
|
|
51
|
-
if (!password.value && !passwordConfirm.value) {
|
|
52
|
-
return null;
|
|
53
|
-
}
|
|
54
|
-
if (password.value === passwordConfirm.value) {
|
|
55
|
-
return null;
|
|
56
|
-
}
|
|
57
|
-
if (password.value && !passwordConfirm.value) {
|
|
58
|
-
return { passwordConfirmationRequired: true };
|
|
59
|
-
}
|
|
60
|
-
return { passwordsNotMatching: true };
|
|
61
|
-
}
|
|
62
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFzc3dvcmRWYWxpZGF0b3JGdW5jdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZmlyZWJhc2UvaW9uaWMtYXV0aC11aS9zcmMvY29tcG9uZW50cy9wYXNzd29yZC1maWVsZC9wYXNzd29yZFZhbGlkYXRvckZ1bmN0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLFVBQVUseUJBQXlCLENBQUMsTUFBdUI7SUFDN0QsT0FBTyxDQUFDLE9BQXdCLEVBQTJCLEVBQUU7UUFDekQsSUFBSSxjQUFjLEdBQTRCLElBQUksQ0FBQztRQUNuRCxJQUFJLE9BQU8sQ0FBQyxLQUFLLEVBQUU7WUFDZixJQUFJLE1BQU0sQ0FBQyxpQkFBaUIsSUFBSSxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsaUJBQWlCLEVBQUU7Z0JBQzdFLE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUM7YUFDOUI7WUFDRCxJQUFJLE1BQU0sQ0FBQyxpQkFBaUIsSUFBSSxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsaUJBQWlCLEVBQUU7Z0JBQzdFLE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUM7YUFDOUI7WUFDRCxJQUFJLE1BQU0sQ0FBQyx3QkFBd0IsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtnQkFDbkUsSUFBSSxDQUFDLGNBQWMsRUFBRTtvQkFBRSxjQUFjLEdBQUcsRUFBRSxDQUFDO2lCQUFFO2dCQUM3QyxjQUFjLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO2FBQzFDO1lBQ0QsSUFBSSxNQUFNLENBQUMsd0JBQXdCLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7Z0JBQ25FLElBQUksQ0FBQyxjQUFjLEVBQUU7b0JBQUUsY0FBYyxHQUFHLEVBQUUsQ0FBQztpQkFBRTtnQkFDN0MsY0FBYyxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQzthQUMxQztZQUNELElBQUksTUFBTSxDQUFDLHNCQUFzQixJQUFJLENBQUMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO2dCQUN2RSxJQUFJLENBQUMsY0FBYyxFQUFFO29CQUFFLGNBQWMsR0FBRyxFQUFFLENBQUM7aUJBQUU7Z0JBQzdDLGNBQWMsQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO2FBQ3hDO1lBQ0QsSUFBSSxNQUFNLENBQUMsc0JBQXNCLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7Z0JBQ2pFLElBQUksQ0FBQyxjQUFjLEVBQUU7b0JBQUUsY0FBYyxHQUFHLEVBQUUsQ0FBQztpQkFBRTtnQkFDN0MsY0FBYyxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7YUFDeEM7WUFDRCxJQUFJLGNBQWMsRUFBRTtnQkFDaEIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGNBQWMsRUFBRSxDQUFDO2FBQy9DO1NBQ0o7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDLENBQUM7QUFDTixDQUFDO0FBRUQsTUFBTSxVQUFVLHdCQUF3QixDQUFDLE9BQXdCO0lBQzdELElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLENBQUMsT0FBTyxFQUFFO1FBQzdCLE9BQU8sSUFBSSxDQUFDO0tBQ2Y7SUFFRCxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNoRCxNQUFNLGVBQWUsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBRTlELElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxlQUFlLEVBQUU7UUFDL0IsT0FBTyxJQUFJLENBQUM7S0FDZjtJQUVELElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssRUFBRTtRQUMzQyxPQUFPLElBQUksQ0FBQztLQUNmO0lBRUQsSUFBSSxRQUFRLENBQUMsS0FBSyxLQUFLLGVBQWUsQ0FBQyxLQUFLLEVBQUU7UUFDMUMsT0FBTyxJQUFJLENBQUM7S0FDZjtJQUVELElBQUksUUFBUSxDQUFDLEtBQUssSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUU7UUFDMUMsT0FBTyxFQUFFLDRCQUE0QixFQUFFLElBQUksRUFBRSxDQUFDO0tBQ2pEO0lBRUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLElBQUksRUFBRSxDQUFDO0FBQzFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIFZhbGlkYXRpb25FcnJvcnMsIFZhbGlkYXRvckZuIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWFsQXV0aFVJQ29uZmlnIH0gZnJvbSAnbmd4LWZpcmViYXNlJztcblxuZXhwb3J0IGZ1bmN0aW9uIHBhc3N3b3JkU3RyZW5ndGhWYWxpZGF0b3IoY29uZmlnOiBNYWxBdXRoVUlDb25maWcpOiBWYWxpZGF0b3JGbiB7XG4gICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4gICAgICAgIGxldCBzdHJlbmd0aEVycm9yczogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPSBudWxsO1xuICAgICAgICBpZiAoY29udHJvbC52YWx1ZSkge1xuICAgICAgICAgICAgaWYgKGNvbmZpZy5wYXNzd29yZE1pbkxlbmd0aCAmJiBjb250cm9sLnZhbHVlLmxlbmd0aCA8IGNvbmZpZy5wYXNzd29yZE1pbkxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IG1pbmxlbmd0aDogdHJ1ZSB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGNvbmZpZy5wYXNzd29yZE1heExlbmd0aCAmJiBjb250cm9sLnZhbHVlLmxlbmd0aCA+IGNvbmZpZy5wYXNzd29yZE1heExlbmd0aCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IG1heGxlbmd0aDogdHJ1ZSB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGNvbmZpZy5wYXNzd29yZFJlcXVpcmVMb3dlcmNhc2UgJiYgKCEvW2Etel0vLnRlc3QoY29udHJvbC52YWx1ZSkpKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFzdHJlbmd0aEVycm9ycykgeyBzdHJlbmd0aEVycm9ycyA9IHt9OyB9XG4gICAgICAgICAgICAgICAgc3RyZW5ndGhFcnJvcnMucmVxdWlyZUxvd2VyY2FzZSA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoY29uZmlnLnBhc3N3b3JkUmVxdWlyZVVwcGVyY2FzZSAmJiAoIS9bQS1aXS8udGVzdChjb250cm9sLnZhbHVlKSkpIHtcbiAgICAgICAgICAgICAgICBpZiAoIXN0cmVuZ3RoRXJyb3JzKSB7IHN0cmVuZ3RoRXJyb3JzID0ge307IH1cbiAgICAgICAgICAgICAgICBzdHJlbmd0aEVycm9ycy5yZXF1aXJlVXBwZXJjYXNlID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjb25maWcucGFzc3dvcmRSZXF1aXJlU3BlY2lhbCAmJiAoIS9bIUAjXFwkJVxcXiZdLy50ZXN0KGNvbnRyb2wudmFsdWUpKSkge1xuICAgICAgICAgICAgICAgIGlmICghc3RyZW5ndGhFcnJvcnMpIHsgc3RyZW5ndGhFcnJvcnMgPSB7fTsgfVxuICAgICAgICAgICAgICAgIHN0cmVuZ3RoRXJyb3JzLnJlcXVpcmVTcGVjaWFsID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjb25maWcucGFzc3dvcmRSZXF1aXJlTnVtYmVycyAmJiAoIS9bMC05XS8udGVzdChjb250cm9sLnZhbHVlKSkpIHtcbiAgICAgICAgICAgICAgICBpZiAoIXN0cmVuZ3RoRXJyb3JzKSB7IHN0cmVuZ3RoRXJyb3JzID0ge307IH1cbiAgICAgICAgICAgICAgICBzdHJlbmd0aEVycm9ycy5yZXF1aXJlTnVtYmVycyA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoc3RyZW5ndGhFcnJvcnMpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBwYXNzd29yZFN0cmVuZ3RoOiBzdHJlbmd0aEVycm9ycyB9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb25maXJtUGFzc3dvcmRWYWxpZGF0b3IoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIGlmICghY29udHJvbC5wYXJlbnQgfHwgIWNvbnRyb2wpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29uc3QgcGFzc3dvcmQgPSBjb250cm9sLnBhcmVudC5nZXQoJ3Bhc3N3b3JkJyk7XG4gICAgY29uc3QgcGFzc3dvcmRDb25maXJtID0gY29udHJvbC5wYXJlbnQuZ2V0KCdwYXNzd29yZENvbmZpcm0nKTtcblxuICAgIGlmICghcGFzc3dvcmQgfHwgIXBhc3N3b3JkQ29uZmlybSkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAoIXBhc3N3b3JkLnZhbHVlICYmICFwYXNzd29yZENvbmZpcm0udmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKHBhc3N3b3JkLnZhbHVlID09PSBwYXNzd29yZENvbmZpcm0udmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKHBhc3N3b3JkLnZhbHVlICYmICFwYXNzd29yZENvbmZpcm0udmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIHsgcGFzc3dvcmRDb25maXJtYXRpb25SZXF1aXJlZDogdHJ1ZSB9O1xuICAgIH1cblxuICAgIHJldHVybiB7IHBhc3N3b3Jkc05vdE1hdGNoaW5nOiB0cnVlIH07XG59XG4iXX0=
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
import { __awaiter } from "tslib";
|
|
2
|
-
import { Component, Input, Output, EventEmitter, Inject, forwardRef } from '@angular/core';
|
|
3
|
-
import { AuthProcessService, AuthProvider, MalSharedConfigToken, UiService } from 'ngx-firebase';
|
|
4
|
-
import { BehaviorSubject, of } from 'rxjs';
|
|
5
|
-
import { catchError, map, switchMap } from 'rxjs/operators';
|
|
6
|
-
import { NgxAuthFirebaseuiAnimations } from '../../animations';
|
|
7
|
-
export var Layout;
|
|
8
|
-
(function (Layout) {
|
|
9
|
-
Layout["ROW"] = "row";
|
|
10
|
-
Layout["COLUMN"] = "column";
|
|
11
|
-
})(Layout || (Layout = {}));
|
|
12
|
-
const displayProviders = {
|
|
13
|
-
google: { name: AuthProvider.Google, icon: 'logo-google', label: 'Google' },
|
|
14
|
-
apple: { name: AuthProvider.Apple, icon: 'logo-apple', label: 'Apple' },
|
|
15
|
-
facebook: { name: AuthProvider.Facebook, icon: 'logo-facebook', label: 'Facebook' },
|
|
16
|
-
twitter: { name: AuthProvider.Twitter, icon: 'logo-twitter', label: 'Twitter' },
|
|
17
|
-
github: { name: AuthProvider.Github, icon: 'logo-github', label: 'GitHub' },
|
|
18
|
-
microsoft: { name: AuthProvider.Microsoft, label: 'Microsoft' },
|
|
19
|
-
yahoo: { name: AuthProvider.Yahoo, icon: 'logo-yahoo', label: 'Yahoo' }
|
|
20
|
-
};
|
|
21
|
-
export class AuthProvidersComponent {
|
|
22
|
-
constructor(aps, ui, config) {
|
|
23
|
-
this.aps = aps;
|
|
24
|
-
this.ui = ui;
|
|
25
|
-
this.config = config;
|
|
26
|
-
this.layout = Layout.ROW;
|
|
27
|
-
this.providers$ = new BehaviorSubject(AuthProvider.ALL);
|
|
28
|
-
this.providerClick = new EventEmitter();
|
|
29
|
-
this.displayProviders$ = this.providers$.pipe(
|
|
30
|
-
// Filter for those in config
|
|
31
|
-
map(providerOrArray => {
|
|
32
|
-
if (providerOrArray === AuthProvider.ALL) {
|
|
33
|
-
providerOrArray = this.config.authUi.supportedProviders;
|
|
34
|
-
}
|
|
35
|
-
const providers = Array.isArray(providerOrArray) ? providerOrArray : [providerOrArray];
|
|
36
|
-
return providers.filter(item => this.providers === AuthProvider.ALL || this.providers.includes(item));
|
|
37
|
-
}),
|
|
38
|
-
// Filter for those valid on platform
|
|
39
|
-
switchMap((providers) => __awaiter(this, void 0, void 0, function* () {
|
|
40
|
-
const providerFilter = yield Promise.all(providers.map(item => this.aps.isProviderSupported(item)));
|
|
41
|
-
return providers.filter((_item, index) => providerFilter[index]);
|
|
42
|
-
})),
|
|
43
|
-
// Map to display type
|
|
44
|
-
map(providers => providers.map(item => displayProviders[item])), catchError(error => {
|
|
45
|
-
this.ui.logError(error);
|
|
46
|
-
return of([]);
|
|
47
|
-
}));
|
|
48
|
-
}
|
|
49
|
-
get providers() { return this.providers$.value; }
|
|
50
|
-
set providers(val) { this.providers$.next(val); }
|
|
51
|
-
}
|
|
52
|
-
AuthProvidersComponent.decorators = [
|
|
53
|
-
{ type: Component, args: [{
|
|
54
|
-
selector: 'mal-authui-providers',
|
|
55
|
-
template: "<div [@animateStagger]=\"{ value: '50' }\">\n\n <!--default icon buttons-->\n <div [fxLayoutAlign]=\"layout == 'row' ? 'center' : 'stretch'\"\n [fxLayout]=\"layout\"\n fxLayout.xs=\"column\"\n class=\"provider-buttons\">\n\n <div *ngFor=\"let provider of (displayProviders$ | async)\">\n <ion-button [id]=\"'auth_provider_' + provider.name + '_btn'\"\n (click)=\"providerClick.emit(provider.name)\"\n [@animate]=\"{value:'*',params:{duration:'300ms',y:'100px'}}\"\n [class]=\"provider.name + ' authui-provider-button'\">\n\n <ion-icon *ngIf=\"provider.icon\" slot=\"start\" [name]=\"provider.icon\"></ion-icon>\n <ion-label slot=\"end\">{{ 'auth.provider.' + provider.name | translate }}</ion-label>\n\n </ion-button>\n </div>\n\n </div>\n</div>",
|
|
56
|
-
animations: NgxAuthFirebaseuiAnimations,
|
|
57
|
-
styles: [":host{display:block}ion-button.google{color:#db4437!important}ion-button.apple{color:#000!important}ion-button.facebook{color:#385899!important}ion-button.twitter{color:#1da1f2!important}ion-button.github{color:#000!important}ion-button.microsoft{color:#0078d4!important}ion-button.yahoo{color:#720e9e!important}ion-button.phone{color:#02bd7e}", "div.authui-logo{margin:32px auto;width:30%}div.authui-logo img{display:block;max-width:120px;border-radius:20px;margin-left:auto;margin-right:auto}div.authui-title{font-size:20px;margin:16px 0}div.authui-alternate-action{margin:32px auto 24px;font-weight:500}div.authui-alternate-action .text{margin-right:8px}ion-content.auth-page{--background:var(--auth-pages-background,--background)}div.resend-confirmation{margin:24px 0;font-size:.9em;text-align:center}ion-button.authui-provider-button{width:220px;margin:8px auto;display:block;text-align:center;--background:var(--auth-provider-background-color,#fff)}@media screen and (max-width:599px){ion-button.authui-provider-button{width:100%}}ion-button.authui-submit-button{width:220px;margin:16px auto;display:block}@media screen and (max-width:599px){ion-button.authui-submit-button{width:100%}}ion-grid.terms{width:100%;margin:24px 0;text-align:left;font-size:.9em}ion-grid.terms ion-col ion-row a{font-size:16px;margin-left:4px}div.forgot-password{margin:24px 0;font-size:.9em}@media (prefers-color-scheme:dark){a{color:#fff}}div.auth-ui-form{width:384px;max-width:384px;padding:32px;text-align:center;flex:1 0 auto}@media screen and (max-width:599px){div.auth-ui-form{padding:24px;width:100%}}div.auth-ui-form form{width:100%;text-align:left}div.authui-wrapper{width:100%;background-size:cover;flex:1 0 auto;padding:32px}@media screen and (max-width:599px){div.authui-wrapper{padding:16px}}button.confirm:disabled{color:grey}div.email-popover-outer{width:100%}div.email-popover-outer div.email-popover-inner{padding:10%}"]
|
|
58
|
-
},] }
|
|
59
|
-
];
|
|
60
|
-
AuthProvidersComponent.ctorParameters = () => [
|
|
61
|
-
{ type: AuthProcessService },
|
|
62
|
-
{ type: UiService },
|
|
63
|
-
{ type: undefined, decorators: [{ type: Inject, args: [forwardRef(() => MalSharedConfigToken),] }] }
|
|
64
|
-
];
|
|
65
|
-
AuthProvidersComponent.propDecorators = {
|
|
66
|
-
layout: [{ type: Input }],
|
|
67
|
-
providers: [{ type: Input }],
|
|
68
|
-
providerClick: [{ type: Output }]
|
|
69
|
-
};
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXJzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1maXJlYmFzZS9pb25pYy1hdXRoLXVpL3NyYy9jb21wb25lbnRzL3Byb3ZpZGVycy9wcm92aWRlcnMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0YsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBbUIsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2xILE9BQU8sRUFBRSxlQUFlLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRS9ELE1BQU0sQ0FBTixJQUFZLE1BR1g7QUFIRCxXQUFZLE1BQU07SUFDaEIscUJBQVcsQ0FBQTtJQUNYLDJCQUFpQixDQUFBO0FBQ25CLENBQUMsRUFIVyxNQUFNLEtBQU4sTUFBTSxRQUdqQjtBQU9ELE1BQU0sZ0JBQWdCLEdBQXVDO0lBQzNELE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxZQUFZLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRTtJQUMzRSxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsWUFBWSxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUU7SUFDdkUsUUFBUSxFQUFFLEVBQUUsSUFBSSxFQUFFLFlBQVksQ0FBQyxRQUFRLEVBQUUsSUFBSSxF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SSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7OztZQVpuRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHNCQUFzQjtnQkFDaEMsMjFCQUF1QztnQkFFdkMsVUFBVSxFQUFFLDJCQUEyQjs7YUFDeEM7OztZQWhDUSxrQkFBa0I7WUFBdUQsU0FBUzs0Q0FxRXRGLE1BQU0sU0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsb0JBQW9CLENBQUM7OztxQkFsQy9DLEtBQUs7d0JBRUwsS0FBSzs0QkFLTCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIEluamVjdCwgZm9yd2FyZFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQXV0aFByb2Nlc3NTZXJ2aWNlLCBBdXRoUHJvdmlkZXIsIE1hbFNoYXJlZENvbmZpZ1Rva2VuLCBNYWxTaGFyZWRDb25maWcsIFVpU2VydmljZSB9IGZyb20gJ25neC1maXJlYmFzZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IE5neEF1dGhGaXJlYmFzZXVpQW5pbWF0aW9ucyB9IGZyb20gJy4uLy4uL2FuaW1hdGlvbnMnO1xuXG5leHBvcnQgZW51bSBMYXlvdXQge1xuICBST1cgPSAncm93JyxcbiAgQ09MVU1OID0gJ2NvbHVtbidcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEaXNwbGF5UHJvdmlkZXIge1xuICBuYW1lOiBBdXRoUHJvdmlkZXI7XG4gIGljb24/OiBzdHJpbmc7XG4gIGxhYmVsOiBzdHJpbmc7XG59XG5jb25zdCBkaXNwbGF5UHJvdmlkZXJzOiB7IFtrZXk6IHN0cmluZ106IERpc3BsYXlQcm92aWRlciB9ID0ge1xuICBnb29nbGU6IHsgbmFtZTogQXV0aFByb3ZpZGVyLkdvb2dsZSwgaWNvbjogJ2xvZ28tZ29vZ2xlJywgbGFiZWw6ICdHb29nbGUnIH0sXG4gIGFwcGxlOiB7IG5hbWU6IEF1dGhQcm92aWRlci5BcHBsZSwgaWNvbjogJ2xvZ28tYXBwbGUnLCBsYWJlbDogJ0FwcGxlJyB9LFxuICBmYWNlYm9vazogeyBuYW1lOiBBdXRoUHJvdmlkZXIuRmFjZWJvb2ssIGljb246ICdsb2dvLWZhY2Vib29rJywgbGFiZWw6ICdGYWNlYm9vaycgfSxcbiAgdHdpdHRlcjogeyBuYW1lOiBBdXRoUHJvdmlkZXIuVHdpdHRlciwgaWNvbjogJ2xvZ28tdHdpdHRlcicsIGxhYmVsOiAnVHdpdHRlcicgfSxcbiAgZ2l0aHViOiB7IG5hbWU6IEF1dGhQcm92aWRlci5HaXRodWIsIGljb246ICdsb2dvLWdpdGh1YicsIGxhYmVsOiAnR2l0SHViJyB9LFxuICBtaWNyb3NvZnQ6IHsgbmFtZTogQXV0aFByb3ZpZGVyLk1pY3Jvc29mdCwgbGFiZWw6ICdNaWNyb3NvZnQnIH0sXG4gIHlhaG9vOiB7IG5hbWU6IEF1dGhQcm92aWRlci5ZYWhvbywgaWNvbjogJ2xvZ28teWFob28nLCBsYWJlbDogJ1lhaG9vJyB9XG59O1xuXG5kZWNsYXJlIHR5cGUgUHJvdmlkZXJUeXBlID0gQXV0aFByb3ZpZGVyW10gfCBBdXRoUHJvdmlkZXI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21hbC1hdXRodWktcHJvdmlkZXJzJyxcbiAgdGVtcGxhdGVVcmw6ICdwcm92aWRlcnMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsncHJvdmlkZXJzLmNvbXBvbmVudC5zY3NzJywgJy4uLy4uL2lvbmljLWF1dGgtdWkuc2NzcyddLFxuICBhbmltYXRpb25zOiBOZ3hBdXRoRmlyZWJhc2V1aUFuaW1hdGlvbnNcbn0pXG5leHBvcnQgY2xhc3MgQXV0aFByb3ZpZGVyc0NvbXBvbmVudCB7XG5cbiAgQElucHV0KCkgbGF5b3V0OiBzdHJpbmcgPSBMYXlvdXQuUk9XO1xuXG4gIEBJbnB1dCgpXG4gIGdldCBwcm92aWRlcnMoKTogUHJvdmlkZXJUeXBlIHwgQXV0aFByb3ZpZGVyLkFMTCB7IHJldHVybiB0aGlzLnByb3ZpZGVycyQudmFsdWU7IH1cbiAgc2V0IHByb3ZpZGVycyh2YWw6IFByb3ZpZGVyVHlwZSB8IEF1dGhQcm92aWRlci5BTEwpIHsgdGhpcy5wcm92aWRlcnMkLm5leHQodmFsKTsgfVxuICBwcml2YXRlIHByb3ZpZGVycyQ6IEJlaGF2aW9yU3ViamVjdDxQcm92aWRlclR5cGUgfCBBdXRoUHJvdmlkZXIuQUxMPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UHJvdmlkZXJUeXBlPihBdXRoUHJvdmlkZXIuQUxMKTtcblxuICBAT3V0cHV0KCkgcHJvdmlkZXJDbGljazogRXZlbnRFbWl0dGVyPEF1dGhQcm92aWRlcj4gPSBuZXcgRXZlbnRFbWl0dGVyPEF1dGhQcm92aWRlcj4oKTtcblxuICByZWFkb25seSBkaXNwbGF5UHJvdmlkZXJzJDogT2JzZXJ2YWJsZTxEaXNwbGF5UHJvdmlkZXJbXT4gPSB0aGlzLnByb3ZpZGVycyQucGlwZShcbiAgICAvLyBGaWx0ZXIgZm9yIHRob3NlIGluIGNvbmZpZ1xuICAgIG1hcChwcm92aWRlck9yQXJyYXkgPT4ge1xuICAgICAgaWYgKHByb3ZpZGVyT3JBcnJheSA9PT0gQXV0aFByb3ZpZGVyLkFMTCkge1xuICAgICAgICBwcm92aWRlck9yQXJyYXkgPSB0aGlzLmNvbmZpZy5hdXRoVWkuc3VwcG9ydGVkUHJvdmlkZXJzO1xuICAgICAgfVxuICAgICAgY29uc3QgcHJvdmlkZXJzID0gQXJyYXkuaXNBcnJheShwcm92aWRlck9yQXJyYXkpID8gcHJvdmlkZXJPckFycmF5IDogW3Byb3ZpZGVyT3JBcnJheV07XG4gICAgICByZXR1cm4gcHJvdmlkZXJzLmZpbHRlcihpdGVtID0+IHRoaXMucHJvdmlkZXJzID09PSBBdXRoUHJvdmlkZXIuQUxMIHx8IHRoaXMucHJvdmlkZXJzLmluY2x1ZGVzKGl0ZW0pKTtcbiAgICB9KSxcbiAgICAvLyBGaWx0ZXIgZm9yIHRob3NlIHZhbGlkIG9uIHBsYXRmb3JtXG4gICAgc3dpdGNoTWFwKGFzeW5jIHByb3ZpZGVycyA9PiB7XG4gICAgICBjb25zdCBwcm92aWRlckZpbHRlciA9IGF3YWl0IFByb21pc2UuYWxsKHByb3ZpZGVycy5tYXAoaXRlbSA9PiB0aGlzLmFwcy5pc1Byb3ZpZGVyU3VwcG9ydGVkKGl0ZW0pKSk7XG4gICAgICByZXR1cm4gcHJvdmlkZXJzLmZpbHRlcigoX2l0ZW0sIGluZGV4KSA9PiBwcm92aWRlckZpbHRlcltpbmRleF0pO1xuICAgIH0pLFxuICAgIC8vIE1hcCB0byBkaXNwbGF5IHR5cGVcbiAgICBtYXAocHJvdmlkZXJzID0+IHByb3ZpZGVycy5tYXAoaXRlbSA9PiBkaXNwbGF5UHJvdmlkZXJzW2l0ZW1dKSksXG4gICAgY2F0Y2hFcnJvcihlcnJvciA9PiB7XG4gICAgICB0aGlzLnVpLmxvZ0Vycm9yKGVycm9yKTtcbiAgICAgIHJldHVybiBvZihbXSk7XG4gICAgfSlcbiAgKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgYXBzOiBBdXRoUHJvY2Vzc1NlcnZpY2UsXG4gICAgcHVibGljIHVpOiBVaVNlcnZpY2UsXG4gICAgQEluamVjdChmb3J3YXJkUmVmKCgpID0+IE1hbFNoYXJlZENvbmZpZ1Rva2VuKSkgcHVibGljIGNvbmZpZzogTWFsU2hhcmVkQ29uZmlnXG4gICkge1xuICB9XG5cbn1cbiJdfQ==
|