@dereekb/dbx-firebase 1.2.0 → 3.0.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/README.md +1 -1
- package/_index.scss +18 -0
- package/esm2020/lib/auth/auth.mjs +10 -0
- package/esm2020/lib/auth/error.mjs +28 -0
- package/esm2020/lib/auth/firebase.auth.module.mjs +34 -0
- package/esm2020/lib/auth/index.mjs +6 -0
- package/esm2020/lib/auth/login/firebase.login.module.mjs +274 -0
- package/esm2020/lib/auth/login/index.mjs +26 -0
- package/esm2020/lib/auth/login/login.anonymous.component.mjs +22 -0
- package/esm2020/lib/auth/login/login.apple.component.mjs +22 -0
- package/esm2020/lib/auth/login/login.button.component.mjs +139 -0
- package/esm2020/lib/auth/login/login.component.mjs +43 -0
- package/esm2020/lib/auth/login/login.context.back.component.mjs +27 -0
- package/esm2020/lib/auth/login/login.context.directive.mjs +25 -0
- package/esm2020/lib/auth/login/login.context.mjs +7 -0
- package/esm2020/lib/auth/login/login.email.component.mjs +23 -0
- package/esm2020/lib/auth/login/login.email.content.component.mjs +105 -0
- package/esm2020/lib/auth/login/login.email.form.component.mjs +35 -0
- package/esm2020/lib/auth/login/login.email.recovery.form.component.mjs +21 -0
- package/esm2020/lib/auth/login/login.facebook.component.mjs +22 -0
- package/esm2020/lib/auth/login/login.github.component.mjs +22 -0
- package/esm2020/lib/auth/login/login.google.component.mjs +22 -0
- package/esm2020/lib/auth/login/login.list.component.mjs +87 -0
- package/esm2020/lib/auth/login/login.microsoft.component.mjs +22 -0
- package/esm2020/lib/auth/login/login.mjs +3 -0
- package/esm2020/lib/auth/login/login.password.mjs +4 -0
- package/esm2020/lib/auth/login/login.service.mjs +134 -0
- package/esm2020/lib/auth/login/login.terms.component.mjs +26 -0
- package/esm2020/lib/auth/login/login.terms.mjs +3 -0
- package/esm2020/lib/auth/login/login.terms.simple.component.mjs +39 -0
- package/esm2020/lib/auth/login/login.twitter.component.mjs +22 -0
- package/esm2020/lib/auth/login/register.component.mjs +24 -0
- package/esm2020/lib/auth/login/register.email.component.mjs +21 -0
- package/esm2020/lib/auth/service/firebase.auth.rxjs.mjs +39 -0
- package/esm2020/lib/auth/service/firebase.auth.service.mjs +99 -0
- package/esm2020/lib/auth/service/index.mjs +3 -0
- package/esm2020/lib/firebase/emulators.mjs +3 -0
- package/esm2020/lib/firebase/firebase.emulator.module.mjs +36 -0
- package/esm2020/lib/firebase/firebase.module.mjs +188 -0
- package/esm2020/lib/firebase/index.mjs +5 -0
- package/esm2020/lib/firebase/options.mjs +2 -0
- package/esm2020/lib/firestore/firebase.firestore.context.service.mjs +23 -0
- package/esm2020/lib/firestore/firebase.firestore.mjs +6 -0
- package/esm2020/lib/firestore/firebase.firestore.module.mjs +31 -0
- package/esm2020/lib/firestore/index.mjs +4 -0
- package/esm2020/lib/function/firebase.function.module.mjs +47 -0
- package/esm2020/lib/function/index.mjs +2 -0
- package/esm2020/lib/index.mjs +7 -2
- package/esm2020/lib/model/error.mjs +6 -0
- package/esm2020/lib/model/index.mjs +5 -0
- package/esm2020/lib/model/loader/collection.loader.instance.mjs +101 -0
- package/esm2020/lib/model/loader/collection.loader.mjs +2 -0
- package/esm2020/lib/model/loader/index.mjs +3 -0
- package/esm2020/lib/model/model.module.mjs +17 -0
- package/esm2020/lib/model/store/index.mjs +14 -0
- package/esm2020/lib/model/store/model.store.module.mjs +41 -0
- package/esm2020/lib/model/store/store.collection.change.directive.mjs +54 -0
- package/esm2020/lib/model/store/store.collection.change.if.directive.mjs +57 -0
- package/esm2020/lib/model/store/store.collection.directive.mjs +52 -0
- package/esm2020/lib/model/store/store.collection.list.directive.mjs +27 -0
- package/esm2020/lib/model/store/store.collection.mjs +50 -0
- package/esm2020/lib/model/store/store.document.auth.directive.mjs +33 -0
- package/esm2020/lib/model/store/store.document.directive.mjs +46 -0
- package/esm2020/lib/model/store/store.document.mjs +81 -0
- package/esm2020/lib/model/store/store.document.router.directive.mjs +53 -0
- package/esm2020/lib/model/store/store.subcollection.document.mjs +37 -0
- package/esm2020/lib/model/store/store.subcollection.mjs +37 -0
- package/esm2020/lib/model/store/store.subcollection.rxjs.mjs +42 -0
- package/esm2020/lib/module.mjs +17 -0
- package/fesm2015/dereekb-dbx-firebase.mjs +2266 -2
- package/fesm2015/dereekb-dbx-firebase.mjs.map +1 -1
- package/fesm2020/dereekb-dbx-firebase.mjs +2247 -2
- package/fesm2020/dereekb-dbx-firebase.mjs.map +1 -1
- package/lib/auth/auth.d.ts +4 -0
- package/lib/auth/error.d.ts +9 -0
- package/lib/auth/firebase.auth.module.d.ts +12 -0
- package/lib/auth/index.d.ts +5 -0
- package/lib/auth/login/_login.scss +72 -0
- package/lib/auth/login/firebase.login.module.d.ts +48 -0
- package/lib/auth/login/index.d.ts +25 -0
- package/lib/auth/login/login.anonymous.component.d.ts +8 -0
- package/lib/auth/login/login.apple.component.d.ts +8 -0
- package/lib/auth/login/login.button.component.d.ts +51 -0
- package/lib/auth/login/login.component.d.ts +14 -0
- package/lib/auth/login/login.context.back.component.d.ts +9 -0
- package/lib/auth/login/login.context.d.ts +6 -0
- package/lib/auth/login/login.context.directive.d.ts +10 -0
- package/lib/auth/login/login.d.ts +7 -0
- package/lib/auth/login/login.email.component.d.ts +8 -0
- package/lib/auth/login/login.email.content.component.d.ts +39 -0
- package/lib/auth/login/login.email.form.component.d.ts +21 -0
- package/lib/auth/login/login.email.recovery.form.component.d.ts +11 -0
- package/lib/auth/login/login.facebook.component.d.ts +8 -0
- package/lib/auth/login/login.github.component.d.ts +8 -0
- package/lib/auth/login/login.google.component.d.ts +8 -0
- package/lib/auth/login/login.list.component.d.ts +28 -0
- package/lib/auth/login/login.microsoft.component.d.ts +8 -0
- package/lib/auth/login/login.password.d.ts +4 -0
- package/lib/auth/login/login.service.d.ts +115 -0
- package/lib/auth/login/login.terms.component.d.ts +10 -0
- package/lib/auth/login/login.terms.d.ts +4 -0
- package/lib/auth/login/login.terms.simple.component.d.ts +11 -0
- package/lib/auth/login/login.twitter.component.d.ts +8 -0
- package/lib/auth/login/register.component.d.ts +13 -0
- package/lib/auth/login/register.email.component.d.ts +8 -0
- package/lib/auth/service/firebase.auth.rxjs.d.ts +21 -0
- package/lib/auth/service/firebase.auth.service.d.ts +49 -0
- package/lib/auth/service/index.d.ts +2 -0
- package/lib/firebase/emulators.d.ts +52 -0
- package/lib/firebase/firebase.emulator.module.d.ts +12 -0
- package/lib/firebase/firebase.module.d.ts +50 -0
- package/lib/firebase/index.d.ts +4 -0
- package/lib/firebase/options.d.ts +6 -0
- package/lib/firestore/firebase.firestore.context.service.d.ts +11 -0
- package/lib/firestore/firebase.firestore.d.ts +5 -0
- package/lib/firestore/firebase.firestore.module.d.ts +17 -0
- package/lib/firestore/index.d.ts +3 -0
- package/lib/function/firebase.function.module.d.ts +24 -0
- package/lib/function/index.d.ts +1 -0
- package/lib/index.d.ts +6 -1
- package/lib/model/error.d.ts +5 -0
- package/lib/model/index.d.ts +4 -0
- package/lib/model/loader/collection.loader.d.ts +38 -0
- package/lib/model/loader/collection.loader.instance.d.ts +52 -0
- package/lib/model/loader/index.d.ts +2 -0
- package/lib/model/model.module.d.ts +7 -0
- package/lib/model/store/index.d.ts +13 -0
- package/lib/model/store/model.store.module.d.ts +11 -0
- package/lib/model/store/store.collection.change.directive.d.ts +30 -0
- package/lib/model/store/store.collection.change.if.directive.d.ts +24 -0
- package/lib/model/store/store.collection.d.ts +47 -0
- package/lib/model/store/store.collection.directive.d.ts +30 -0
- package/lib/model/store/store.collection.list.directive.d.ts +13 -0
- package/lib/model/store/store.document.auth.directive.d.ts +19 -0
- package/lib/model/store/store.document.d.ts +69 -0
- package/lib/model/store/store.document.directive.d.ts +34 -0
- package/lib/model/store/store.document.router.directive.d.ts +25 -0
- package/lib/model/store/store.subcollection.d.ts +31 -0
- package/lib/model/store/store.subcollection.document.d.ts +31 -0
- package/lib/model/store/store.subcollection.rxjs.d.ts +23 -0
- package/lib/module.d.ts +7 -0
- package/lib/style/_all-core.scss +6 -0
- package/lib/style/_all-theme.scss +6 -0
- package/lib/style/_all-typography.scss +6 -0
- package/lib/style/_config.scss +20 -0
- package/lib/style/_core.scss +9 -0
- package/lib/style/_mixin.scss +3 -0
- package/lib/style/_theming.scss +19 -0
- package/lib/style/_variables.scss +1 -0
- package/package.json +22 -13
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import { Component, Directive, Input } from "@angular/core";
|
|
2
|
+
import { from } from "rxjs";
|
|
3
|
+
import { DbxFirebaseAuthService } from "../service/firebase.auth.service";
|
|
4
|
+
import { DbxFirebaseAuthLoginService } from "./login.service";
|
|
5
|
+
import { DbxFirebaseLoginContext } from './login.context';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@dereekb/dbx-web";
|
|
8
|
+
import * as i2 from "@angular/material/icon";
|
|
9
|
+
import * as i3 from "@dereekb/dbx-core";
|
|
10
|
+
import * as i4 from "@angular/common";
|
|
11
|
+
import * as i5 from "../service/firebase.auth.service";
|
|
12
|
+
import * as i6 from "./login.service";
|
|
13
|
+
import * as i7 from "./login.context";
|
|
14
|
+
/**
|
|
15
|
+
* Login button and action.
|
|
16
|
+
*/
|
|
17
|
+
export class DbxFirebaseLoginButtonComponent {
|
|
18
|
+
constructor() {
|
|
19
|
+
this.handleAction = (value) => {
|
|
20
|
+
const loginPromise = this.config.handleLogin();
|
|
21
|
+
return from(loginPromise);
|
|
22
|
+
};
|
|
23
|
+
this.onActionSuccess = (value) => {
|
|
24
|
+
// todo: show checkmark on success?
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
get iconUrl() {
|
|
28
|
+
return this.config?.iconUrl;
|
|
29
|
+
}
|
|
30
|
+
get icon() {
|
|
31
|
+
return this.config?.icon;
|
|
32
|
+
}
|
|
33
|
+
get text() {
|
|
34
|
+
return this.config?.text;
|
|
35
|
+
}
|
|
36
|
+
get buttonColor() {
|
|
37
|
+
return this.config?.buttonColor ?? 'transparent';
|
|
38
|
+
}
|
|
39
|
+
get buttonTextColor() {
|
|
40
|
+
return this.config?.buttonTextColor;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
DbxFirebaseLoginButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFirebaseLoginButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
44
|
+
DbxFirebaseLoginButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: DbxFirebaseLoginButtonComponent, selector: "dbx-firebase-login-button", inputs: { config: "config" }, host: { classAttribute: "dbx-firebase-login-button" }, ngImport: i0, template: `
|
|
45
|
+
<ng-container dbxAction [dbxActionHandler]="handleAction" dbxActionValue
|
|
46
|
+
[dbxActionSuccessHandler]="onActionSuccess">
|
|
47
|
+
<dbx-button dbxActionButton [customTextColor]="buttonTextColor" [customButtonColor]="buttonColor" [raised]="true">
|
|
48
|
+
<div class="dbx-firebase-login-button-content">
|
|
49
|
+
<span class="dbx-firebase-login-button-icon dbx-icon-spacer">
|
|
50
|
+
<img *ngIf="iconUrl" [src]="iconUrl"/>
|
|
51
|
+
<mat-icon *ngIf="icon">{{icon}}</mat-icon>
|
|
52
|
+
</span>
|
|
53
|
+
<span class="dbx-firebase-login-button-text">{{ text }}</span>
|
|
54
|
+
</div>
|
|
55
|
+
</dbx-button>
|
|
56
|
+
</ng-container>
|
|
57
|
+
`, isInline: true, components: [{ type: i1.DbxButtonComponent, selector: "dbx-button", inputs: ["type", "raised", "stroked", "flat", "color", "customButtonColor", "customTextColor", "customSpinnerColor"] }, { type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i3.DbxActionDirective, selector: "dbx-action,[dbxAction],dbx-action-context,[dbxActionContext]", exportAs: ["action", "dbxAction"] }, { type: i3.DbxActionValueDirective, selector: "[dbxActionValue]", inputs: ["dbxActionValue"] }, { type: i3.DbxActionHandlerDirective, selector: "[dbxActionHandler]", inputs: ["dbxActionHandler"] }, { type: i3.DbxActionSuccessHandlerDirective, selector: "[dbxActionSuccessHandler]", inputs: ["dbxActionSuccessHandler"] }, { type: i3.DbxActionButtonDirective, selector: "[dbxActionButton]" }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
58
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFirebaseLoginButtonComponent, decorators: [{
|
|
59
|
+
type: Component,
|
|
60
|
+
args: [{
|
|
61
|
+
selector: 'dbx-firebase-login-button',
|
|
62
|
+
template: `
|
|
63
|
+
<ng-container dbxAction [dbxActionHandler]="handleAction" dbxActionValue
|
|
64
|
+
[dbxActionSuccessHandler]="onActionSuccess">
|
|
65
|
+
<dbx-button dbxActionButton [customTextColor]="buttonTextColor" [customButtonColor]="buttonColor" [raised]="true">
|
|
66
|
+
<div class="dbx-firebase-login-button-content">
|
|
67
|
+
<span class="dbx-firebase-login-button-icon dbx-icon-spacer">
|
|
68
|
+
<img *ngIf="iconUrl" [src]="iconUrl"/>
|
|
69
|
+
<mat-icon *ngIf="icon">{{icon}}</mat-icon>
|
|
70
|
+
</span>
|
|
71
|
+
<span class="dbx-firebase-login-button-text">{{ text }}</span>
|
|
72
|
+
</div>
|
|
73
|
+
</dbx-button>
|
|
74
|
+
</ng-container>
|
|
75
|
+
`,
|
|
76
|
+
host: {
|
|
77
|
+
'class': 'dbx-firebase-login-button'
|
|
78
|
+
}
|
|
79
|
+
}]
|
|
80
|
+
}], propDecorators: { config: [{
|
|
81
|
+
type: Input
|
|
82
|
+
}] } });
|
|
83
|
+
export class DbxFirebaseLoginButtonContainerComponent {
|
|
84
|
+
}
|
|
85
|
+
DbxFirebaseLoginButtonContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFirebaseLoginButtonContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
86
|
+
DbxFirebaseLoginButtonContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: DbxFirebaseLoginButtonContainerComponent, selector: "dbx-firebase-login-button-container", ngImport: i0, template: `
|
|
87
|
+
<div class="dbx-firebase-login-button-container">
|
|
88
|
+
<ng-content></ng-content>
|
|
89
|
+
</div>
|
|
90
|
+
`, isInline: true });
|
|
91
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFirebaseLoginButtonContainerComponent, decorators: [{
|
|
92
|
+
type: Component,
|
|
93
|
+
args: [{
|
|
94
|
+
selector: 'dbx-firebase-login-button-container',
|
|
95
|
+
template: `
|
|
96
|
+
<div class="dbx-firebase-login-button-container">
|
|
97
|
+
<ng-content></ng-content>
|
|
98
|
+
</div>
|
|
99
|
+
`
|
|
100
|
+
}]
|
|
101
|
+
}] });
|
|
102
|
+
export const DEFAULT_CONFIGURED_DBX_FIREBASE_LOGIN_BUTTON_TEMPLATE = `
|
|
103
|
+
<dbx-firebase-login-button-container>
|
|
104
|
+
<dbx-firebase-login-button [config]="config"></dbx-firebase-login-button>
|
|
105
|
+
</dbx-firebase-login-button-container>
|
|
106
|
+
`;
|
|
107
|
+
export class AbstractConfiguredDbxFirebaseLoginButtonDirective {
|
|
108
|
+
constructor(dbxFirebaseAuthService, dbxFirebaseAuthLoginService, dbxFirebaseLoginContext) {
|
|
109
|
+
this.dbxFirebaseAuthService = dbxFirebaseAuthService;
|
|
110
|
+
this.dbxFirebaseAuthLoginService = dbxFirebaseAuthLoginService;
|
|
111
|
+
this.dbxFirebaseLoginContext = dbxFirebaseLoginContext;
|
|
112
|
+
}
|
|
113
|
+
ngOnInit() {
|
|
114
|
+
const assets = this.assetConfig;
|
|
115
|
+
this._config = {
|
|
116
|
+
text: assets.loginText ?? `<loginText not configured>`,
|
|
117
|
+
icon: assets.loginIcon,
|
|
118
|
+
iconUrl: assets.logoUrl,
|
|
119
|
+
buttonColor: assets.backgroundColor,
|
|
120
|
+
buttonTextColor: assets.textColor,
|
|
121
|
+
handleLogin: () => this.handleLogin()
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
get providerConfig() {
|
|
125
|
+
return this.dbxFirebaseAuthLoginService.getLoginProvider(this.loginProvider);
|
|
126
|
+
}
|
|
127
|
+
get assetConfig() {
|
|
128
|
+
return this.dbxFirebaseAuthLoginService.getProviderAssets(this.loginProvider) ?? {};
|
|
129
|
+
}
|
|
130
|
+
get config() {
|
|
131
|
+
return this._config;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
AbstractConfiguredDbxFirebaseLoginButtonDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: AbstractConfiguredDbxFirebaseLoginButtonDirective, deps: [{ token: i5.DbxFirebaseAuthService }, { token: i6.DbxFirebaseAuthLoginService }, { token: i7.DbxFirebaseLoginContext }], target: i0.ɵɵFactoryTarget.Directive });
|
|
135
|
+
AbstractConfiguredDbxFirebaseLoginButtonDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.2", type: AbstractConfiguredDbxFirebaseLoginButtonDirective, ngImport: i0 });
|
|
136
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: AbstractConfiguredDbxFirebaseLoginButtonDirective, decorators: [{
|
|
137
|
+
type: Directive
|
|
138
|
+
}], ctorParameters: function () { return [{ type: i5.DbxFirebaseAuthService }, { type: i6.DbxFirebaseAuthLoginService }, { type: i7.DbxFirebaseLoginContext }]; } });
|
|
139
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4uYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1maXJlYmFzZS9zcmMvbGliL2F1dGgvbG9naW4vbG9naW4uYnV0dG9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFHcEUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1QixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUUxRSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7Ozs7O0FBVzFEOztHQUVHO0FBcUJILE1BQU0sT0FBTywrQkFBK0I7SUFwQjVDO1FBNkNXLGlCQUFZLEdBQXlCLENBQUMsS0FBVSxFQUFFLEVBQUU7WUFDM0QsTUFBTSxZQUFZLEdBQWtCLElBQUksQ0FBQyxNQUFPLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDL0QsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDNUIsQ0FBQyxDQUFDO1FBRUYsb0JBQWUsR0FBRyxDQUFDLEtBQVUsRUFBRSxFQUFFO1lBQy9CLG1DQUFtQztRQUNyQyxDQUFDLENBQUM7S0FFSDtJQTdCQyxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsV0FBVyxJQUFJLGFBQWEsQ0FBQztJQUNuRCxDQUFDO0lBRUQsSUFBSSxlQUFlO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxlQUFlLENBQUM7SUFDdEMsQ0FBQzs7NEhBdkJVLCtCQUErQjtnSEFBL0IsK0JBQStCLHNKQWxCaEM7Ozs7Ozs7Ozs7Ozs7R0FhVDsyRkFLVSwrQkFBK0I7a0JBcEIzQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7OztHQWFUO29CQUNELElBQUksRUFBRTt3QkFDSixPQUFPLEVBQUUsMkJBQTJCO3FCQUNyQztpQkFDRjs4QkFJQyxNQUFNO3NCQURMLEtBQUs7O0FBMENSLE1BQU0sT0FBTyx3Q0FBd0M7O3FJQUF4Qyx3Q0FBd0M7eUhBQXhDLHdDQUF3QywyRUFOekM7Ozs7R0FJVDsyRkFFVSx3Q0FBd0M7a0JBUnBELFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHFDQUFxQztvQkFDL0MsUUFBUSxFQUFFOzs7O0dBSVQ7aUJBQ0Y7O0FBR0QsTUFBTSxDQUFDLE1BQU0scURBQXFELEdBQUc7Ozs7Q0FJcEUsQ0FBQztBQUdGLE1BQU0sT0FBZ0IsaURBQWlEO0lBTXJFLFlBQ1csc0JBQThDLEVBQzlDLDJCQUF3RCxFQUN4RCx1QkFBZ0Q7UUFGaEQsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQUM5QyxnQ0FBMkIsR0FBM0IsMkJBQTJCLENBQTZCO1FBQ3hELDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBeUI7SUFBSSxDQUFDO0lBRWhFLFFBQVE7UUFDTixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBRWhDLElBQUksQ0FBQyxPQUFPLEdBQUc7WUFDYixJQUFJLEVBQUUsTUFBTSxDQUFDLFNBQVMsSUFBSSw0QkFBNEI7WUFDdEQsSUFBSSxFQUFFLE1BQU0sQ0FBQyxTQUFTO1lBQ3RCLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTztZQUN2QixXQUFXLEVBQUUsTUFBTSxDQUFDLGVBQWU7WUFDbkMsZUFBZSxFQUFFLE1BQU0sQ0FBQyxTQUFTO1lBQ2pDLFdBQVcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO1NBQ3RDLENBQUM7SUFDSixDQUFDO0lBSUQsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLDJCQUEyQixDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUMvRSxDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsMkJBQTJCLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN0RixDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7OzhJQXBDbUIsaURBQWlEO2tJQUFqRCxpREFBaUQ7MkZBQWpELGlEQUFpRDtrQkFEdEUsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRGlyZWN0aXZlLCBJbnB1dCwgT25Jbml0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEhhbmRsZUFjdGlvbkZ1bmN0aW9uIH0gZnJvbSBcIkBkZXJlZWtiL2RieC1jb3JlXCI7XG5pbXBvcnQgeyBNYXliZSB9IGZyb20gXCJAZGVyZWVrYi91dGlsXCI7XG5pbXBvcnQgeyBmcm9tIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IERieEZpcmViYXNlQXV0aFNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZS9maXJlYmFzZS5hdXRoLnNlcnZpY2VcIjtcbmltcG9ydCB7IEZpcmViYXNlTG9naW5NZXRob2RUeXBlIH0gZnJvbSBcIi4vbG9naW5cIjtcbmltcG9ydCB7IERieEZpcmViYXNlQXV0aExvZ2luU2VydmljZSB9IGZyb20gXCIuL2xvZ2luLnNlcnZpY2VcIjtcbmltcG9ydCB7IERieEZpcmViYXNlTG9naW5Db250ZXh0IH0gZnJvbSAnLi9sb2dpbi5jb250ZXh0JztcblxuZXhwb3J0IGludGVyZmFjZSBEYnhGaXJlYmFzZUxvZ2luQnV0dG9uQ29uZmlnIHtcbiAgdGV4dDogc3RyaW5nO1xuICBpY29uVXJsPzogc3RyaW5nO1xuICBpY29uPzogc3RyaW5nO1xuICBidXR0b25Db2xvcj86IHN0cmluZztcbiAgYnV0dG9uVGV4dENvbG9yPzogc3RyaW5nO1xuICBoYW5kbGVMb2dpbjogKCkgPT4gUHJvbWlzZTx2b2lkPjtcbn1cblxuLyoqXG4gKiBMb2dpbiBidXR0b24gYW5kIGFjdGlvbi5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZGJ4LWZpcmViYXNlLWxvZ2luLWJ1dHRvbicsXG4gIHRlbXBsYXRlOiBgXG4gIDxuZy1jb250YWluZXIgZGJ4QWN0aW9uIFtkYnhBY3Rpb25IYW5kbGVyXT1cImhhbmRsZUFjdGlvblwiIGRieEFjdGlvblZhbHVlXG4gICAgW2RieEFjdGlvblN1Y2Nlc3NIYW5kbGVyXT1cIm9uQWN0aW9uU3VjY2Vzc1wiPlxuICAgIDxkYngtYnV0dG9uIGRieEFjdGlvbkJ1dHRvbiBbY3VzdG9tVGV4dENvbG9yXT1cImJ1dHRvblRleHRDb2xvclwiIFtjdXN0b21CdXR0b25Db2xvcl09XCJidXR0b25Db2xvclwiIFtyYWlzZWRdPVwidHJ1ZVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImRieC1maXJlYmFzZS1sb2dpbi1idXR0b24tY29udGVudFwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImRieC1maXJlYmFzZS1sb2dpbi1idXR0b24taWNvbiBkYngtaWNvbi1zcGFjZXJcIj5cbiAgICAgICAgICA8aW1nICpuZ0lmPVwiaWNvblVybFwiIFtzcmNdPVwiaWNvblVybFwiLz5cbiAgICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJpY29uXCI+e3tpY29ufX08L21hdC1pY29uPlxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZGJ4LWZpcmViYXNlLWxvZ2luLWJ1dHRvbi10ZXh0XCI+e3sgdGV4dCB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGJ4LWJ1dHRvbj5cbiAgPC9uZy1jb250YWluZXI+XG4gIGAsXG4gIGhvc3Q6IHtcbiAgICAnY2xhc3MnOiAnZGJ4LWZpcmViYXNlLWxvZ2luLWJ1dHRvbidcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBEYnhGaXJlYmFzZUxvZ2luQnV0dG9uQ29tcG9uZW50IHtcblxuICBASW5wdXQoKVxuICBjb25maWc6IE1heWJlPERieEZpcmViYXNlTG9naW5CdXR0b25Db25maWc+O1xuXG4gIGdldCBpY29uVXJsKCkge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZz8uaWNvblVybDtcbiAgfVxuXG4gIGdldCBpY29uKCkge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZz8uaWNvbjtcbiAgfVxuXG4gIGdldCB0ZXh0KCkge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZz8udGV4dDtcbiAgfVxuXG4gIGdldCBidXR0b25Db2xvcigpIHtcbiAgICByZXR1cm4gdGhpcy5jb25maWc/LmJ1dHRvbkNvbG9yID8/ICd0cmFuc3BhcmVudCc7XG4gIH1cblxuICBnZXQgYnV0dG9uVGV4dENvbG9yKCkge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZz8uYnV0dG9uVGV4dENvbG9yO1xuICB9XG5cbiAgcmVhZG9ubHkgaGFuZGxlQWN0aW9uOiBIYW5kbGVBY3Rpb25GdW5jdGlvbiA9ICh2YWx1ZTogYW55KSA9PiB7XG4gICAgY29uc3QgbG9naW5Qcm9taXNlOiBQcm9taXNlPHZvaWQ+ID0gdGhpcy5jb25maWchLmhhbmRsZUxvZ2luKCk7XG4gICAgcmV0dXJuIGZyb20obG9naW5Qcm9taXNlKTtcbiAgfTtcblxuICBvbkFjdGlvblN1Y2Nlc3MgPSAodmFsdWU6IGFueSkgPT4ge1xuICAgIC8vIHRvZG86IHNob3cgY2hlY2ttYXJrIG9uIHN1Y2Nlc3M/XG4gIH07XG5cbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZGJ4LWZpcmViYXNlLWxvZ2luLWJ1dHRvbi1jb250YWluZXInLFxuICB0ZW1wbGF0ZTogYFxuICA8ZGl2IGNsYXNzPVwiZGJ4LWZpcmViYXNlLWxvZ2luLWJ1dHRvbi1jb250YWluZXJcIj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuICBgXG59KVxuZXhwb3J0IGNsYXNzIERieEZpcmViYXNlTG9naW5CdXR0b25Db250YWluZXJDb21wb25lbnQgeyB9XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0NPTkZJR1VSRURfREJYX0ZJUkVCQVNFX0xPR0lOX0JVVFRPTl9URU1QTEFURSA9IGBcbiAgPGRieC1maXJlYmFzZS1sb2dpbi1idXR0b24tY29udGFpbmVyPlxuICAgIDxkYngtZmlyZWJhc2UtbG9naW4tYnV0dG9uIFtjb25maWddPVwiY29uZmlnXCI+PC9kYngtZmlyZWJhc2UtbG9naW4tYnV0dG9uPlxuICA8L2RieC1maXJlYmFzZS1sb2dpbi1idXR0b24tY29udGFpbmVyPlxuYDtcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RDb25maWd1cmVkRGJ4RmlyZWJhc2VMb2dpbkJ1dHRvbkRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgcHJpdmF0ZSBfY29uZmlnITogRGJ4RmlyZWJhc2VMb2dpbkJ1dHRvbkNvbmZpZztcblxuICBhYnN0cmFjdCByZWFkb25seSBsb2dpblByb3ZpZGVyOiBGaXJlYmFzZUxvZ2luTWV0aG9kVHlwZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICByZWFkb25seSBkYnhGaXJlYmFzZUF1dGhTZXJ2aWNlOiBEYnhGaXJlYmFzZUF1dGhTZXJ2aWNlLFxuICAgIHJlYWRvbmx5IGRieEZpcmViYXNlQXV0aExvZ2luU2VydmljZTogRGJ4RmlyZWJhc2VBdXRoTG9naW5TZXJ2aWNlLFxuICAgIHJlYWRvbmx5IGRieEZpcmViYXNlTG9naW5Db250ZXh0OiBEYnhGaXJlYmFzZUxvZ2luQ29udGV4dCkgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgY29uc3QgYXNzZXRzID0gdGhpcy5hc3NldENvbmZpZztcblxuICAgIHRoaXMuX2NvbmZpZyA9IHtcbiAgICAgIHRleHQ6IGFzc2V0cy5sb2dpblRleHQgPz8gYDxsb2dpblRleHQgbm90IGNvbmZpZ3VyZWQ+YCxcbiAgICAgIGljb246IGFzc2V0cy5sb2dpbkljb24sXG4gICAgICBpY29uVXJsOiBhc3NldHMubG9nb1VybCxcbiAgICAgIGJ1dHRvbkNvbG9yOiBhc3NldHMuYmFja2dyb3VuZENvbG9yLFxuICAgICAgYnV0dG9uVGV4dENvbG9yOiBhc3NldHMudGV4dENvbG9yLFxuICAgICAgaGFuZGxlTG9naW46ICgpID0+IHRoaXMuaGFuZGxlTG9naW4oKVxuICAgIH07XG4gIH1cblxuICBhYnN0cmFjdCBoYW5kbGVMb2dpbigpOiBQcm9taXNlPGFueT47XG5cbiAgZ2V0IHByb3ZpZGVyQ29uZmlnKCkge1xuICAgIHJldHVybiB0aGlzLmRieEZpcmViYXNlQXV0aExvZ2luU2VydmljZS5nZXRMb2dpblByb3ZpZGVyKHRoaXMubG9naW5Qcm92aWRlcik7XG4gIH1cblxuICBnZXQgYXNzZXRDb25maWcoKSB7XG4gICAgcmV0dXJuIHRoaXMuZGJ4RmlyZWJhc2VBdXRoTG9naW5TZXJ2aWNlLmdldFByb3ZpZGVyQXNzZXRzKHRoaXMubG9naW5Qcm92aWRlcikgPz8ge307XG4gIH1cblxuICBnZXQgY29uZmlnKCkge1xuICAgIHJldHVybiB0aGlzLl9jb25maWc7XG4gIH1cblxufVxuIl19
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { Component, Input } from "@angular/core";
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "./login.list.component";
|
|
4
|
+
import * as i2 from "@dereekb/dbx-core";
|
|
5
|
+
import * as i3 from "./login.context.directive";
|
|
6
|
+
/**
|
|
7
|
+
* Pre-configured login component that displays all configured login types.
|
|
8
|
+
*/
|
|
9
|
+
export class DbxFirebaseLoginComponent {
|
|
10
|
+
constructor() {
|
|
11
|
+
this.loginMode = 'login';
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
DbxFirebaseLoginComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFirebaseLoginComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
15
|
+
DbxFirebaseLoginComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: DbxFirebaseLoginComponent, selector: "dbx-firebase-login", inputs: { loginMode: "loginMode", providerTypes: "providerTypes", omitProviderTypes: "omitProviderTypes", providerCategories: "providerCategories" }, host: { properties: { "class": "{ \"dbx-firebase-register\": loginMode === \"register\" }" }, classAttribute: "d-block dbx-firebase-login" }, ngImport: i0, template: `
|
|
16
|
+
<ng-container *dbxInjectionContext dbxFirebaseLoginContext>
|
|
17
|
+
<dbx-firebase-login-list [providerTypes]="providerTypes" [omitProviderTypes]="omitProviderTypes" [providerCategories]="providerCategories" [loginMode]="loginMode"></dbx-firebase-login-list>
|
|
18
|
+
</ng-container>
|
|
19
|
+
`, isInline: true, components: [{ type: i1.DbxFirebaseLoginListComponent, selector: "dbx-firebase-login-list", inputs: ["loginMode", "providerTypes", "omitProviderTypes", "providerCategories"] }], directives: [{ type: i2.DbxInjectionContextDirective, selector: "[dbxInjectionContext]", inputs: ["config"] }, { type: i3.DbxFirebaseLoginContextDirective, selector: "[dbxFirebaseLoginContext]" }] });
|
|
20
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFirebaseLoginComponent, decorators: [{
|
|
21
|
+
type: Component,
|
|
22
|
+
args: [{
|
|
23
|
+
selector: 'dbx-firebase-login',
|
|
24
|
+
template: `
|
|
25
|
+
<ng-container *dbxInjectionContext dbxFirebaseLoginContext>
|
|
26
|
+
<dbx-firebase-login-list [providerTypes]="providerTypes" [omitProviderTypes]="omitProviderTypes" [providerCategories]="providerCategories" [loginMode]="loginMode"></dbx-firebase-login-list>
|
|
27
|
+
</ng-container>
|
|
28
|
+
`,
|
|
29
|
+
host: {
|
|
30
|
+
'class': 'd-block dbx-firebase-login',
|
|
31
|
+
'[class]': '{ "dbx-firebase-register": loginMode === "register" }'
|
|
32
|
+
}
|
|
33
|
+
}]
|
|
34
|
+
}], propDecorators: { loginMode: [{
|
|
35
|
+
type: Input
|
|
36
|
+
}], providerTypes: [{
|
|
37
|
+
type: Input
|
|
38
|
+
}], omitProviderTypes: [{
|
|
39
|
+
type: Input
|
|
40
|
+
}], providerCategories: [{
|
|
41
|
+
type: Input
|
|
42
|
+
}] } });
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZpcmViYXNlL3NyYy9saWIvYXV0aC9sb2dpbi9sb2dpbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7O0FBR2pEOztHQUVHO0FBYUgsTUFBTSxPQUFPLHlCQUF5QjtJQVp0QztRQWVFLGNBQVMsR0FBeUIsT0FBTyxDQUFDO0tBVzNDOztzSEFkWSx5QkFBeUI7MEdBQXpCLHlCQUF5Qiw4VkFWMUI7Ozs7R0FJVDsyRkFNVSx5QkFBeUI7a0JBWnJDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsUUFBUSxFQUFFOzs7O0dBSVQ7b0JBQ0QsSUFBSSxFQUFFO3dCQUNKLE9BQU8sRUFBRSw0QkFBNEI7d0JBQ3JDLFNBQVMsRUFBRSx1REFBdUQ7cUJBQ25FO2lCQUNGOzhCQUlDLFNBQVM7c0JBRFIsS0FBSztnQkFJTixhQUFhO3NCQURaLEtBQUs7Z0JBSU4saUJBQWlCO3NCQURoQixLQUFLO2dCQUlOLGtCQUFrQjtzQkFEakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERieEZpcmViYXNlTG9naW5Nb2RlLCBGaXJlYmFzZUxvZ2luTWV0aG9kQ2F0ZWdvcnksIEZpcmViYXNlTG9naW5NZXRob2RUeXBlIH0gZnJvbSAnLi9sb2dpbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEFycmF5T3JWYWx1ZSwgTWF5YmUgfSBmcm9tICdAZGVyZWVrYi91dGlsJztcblxuLyoqXG4gKiBQcmUtY29uZmlndXJlZCBsb2dpbiBjb21wb25lbnQgdGhhdCBkaXNwbGF5cyBhbGwgY29uZmlndXJlZCBsb2dpbiB0eXBlcy5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZGJ4LWZpcmViYXNlLWxvZ2luJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8bmctY29udGFpbmVyICpkYnhJbmplY3Rpb25Db250ZXh0IGRieEZpcmViYXNlTG9naW5Db250ZXh0PlxuICAgICAgPGRieC1maXJlYmFzZS1sb2dpbi1saXN0IFtwcm92aWRlclR5cGVzXT1cInByb3ZpZGVyVHlwZXNcIiBbb21pdFByb3ZpZGVyVHlwZXNdPVwib21pdFByb3ZpZGVyVHlwZXNcIiBbcHJvdmlkZXJDYXRlZ29yaWVzXT1cInByb3ZpZGVyQ2F0ZWdvcmllc1wiIFtsb2dpbk1vZGVdPVwibG9naW5Nb2RlXCI+PC9kYngtZmlyZWJhc2UtbG9naW4tbGlzdD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgYCxcbiAgaG9zdDoge1xuICAgICdjbGFzcyc6ICdkLWJsb2NrIGRieC1maXJlYmFzZS1sb2dpbicsXG4gICAgJ1tjbGFzc10nOiAneyBcImRieC1maXJlYmFzZS1yZWdpc3RlclwiOiBsb2dpbk1vZGUgPT09IFwicmVnaXN0ZXJcIiB9J1xuICB9XG59KVxuZXhwb3J0IGNsYXNzIERieEZpcmViYXNlTG9naW5Db21wb25lbnQge1xuXG4gIEBJbnB1dCgpXG4gIGxvZ2luTW9kZTogRGJ4RmlyZWJhc2VMb2dpbk1vZGUgPSAnbG9naW4nO1xuXG4gIEBJbnB1dCgpXG4gIHByb3ZpZGVyVHlwZXM6IE1heWJlPEFycmF5T3JWYWx1ZTxGaXJlYmFzZUxvZ2luTWV0aG9kVHlwZT4+O1xuXG4gIEBJbnB1dCgpXG4gIG9taXRQcm92aWRlclR5cGVzOiBNYXliZTxBcnJheU9yVmFsdWU8RmlyZWJhc2VMb2dpbk1ldGhvZFR5cGU+PjtcblxuICBASW5wdXQoKVxuICBwcm92aWRlckNhdGVnb3JpZXM6IE1heWJlPEFycmF5T3JWYWx1ZTxGaXJlYmFzZUxvZ2luTWV0aG9kQ2F0ZWdvcnk+PjtcblxufVxuIl19
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Component, EventEmitter, Output } from "@angular/core";
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@dereekb/dbx-web";
|
|
4
|
+
export class DbxFirebaseLoginContextBackButtonComponent {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.onCancel = new EventEmitter();
|
|
7
|
+
this.anchor = {
|
|
8
|
+
onClick: () => this.onCancel.emit()
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
DbxFirebaseLoginContextBackButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFirebaseLoginContextBackButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
13
|
+
DbxFirebaseLoginContextBackButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: DbxFirebaseLoginContextBackButtonComponent, selector: "dbx-firebase-login-context-back-button", outputs: { onCancel: "onCancel" }, ngImport: i0, template: `
|
|
14
|
+
<dbx-link [anchor]="anchor">Choose other login method.</dbx-link>
|
|
15
|
+
`, isInline: true, components: [{ type: i1.DbxAnchorLinkComponent, selector: "dbx-link", inputs: ["anchor", "ref", "href"] }] });
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFirebaseLoginContextBackButtonComponent, decorators: [{
|
|
17
|
+
type: Component,
|
|
18
|
+
args: [{
|
|
19
|
+
'selector': 'dbx-firebase-login-context-back-button',
|
|
20
|
+
'template': `
|
|
21
|
+
<dbx-link [anchor]="anchor">Choose other login method.</dbx-link>
|
|
22
|
+
`
|
|
23
|
+
}]
|
|
24
|
+
}], propDecorators: { onCancel: [{
|
|
25
|
+
type: Output
|
|
26
|
+
}] } });
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4uY29udGV4dC5iYWNrLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1maXJlYmFzZS9zcmMvbGliL2F1dGgvbG9naW4vbG9naW4uY29udGV4dC5iYWNrLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQVFoRSxNQUFNLE9BQU8sMENBQTBDO0lBTnZEO1FBU1csYUFBUSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFFcEMsV0FBTSxHQUFvQjtZQUNqQyxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUU7U0FDcEMsQ0FBQztLQUVIOzt1SUFUWSwwQ0FBMEM7MkhBQTFDLDBDQUEwQyxpSEFKekM7O0dBRVg7MkZBRVUsMENBQTBDO2tCQU50RCxTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSx3Q0FBd0M7b0JBQ3BELFVBQVUsRUFBRTs7R0FFWDtpQkFDRjs4QkFJVSxRQUFRO3NCQURoQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2xpY2thYmxlQW5jaG9yIH0gZnJvbSAnQGRlcmVla2IvZGJ4LWNvcmUnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIE91dHB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbkBDb21wb25lbnQoe1xuICAnc2VsZWN0b3InOiAnZGJ4LWZpcmViYXNlLWxvZ2luLWNvbnRleHQtYmFjay1idXR0b24nLFxuICAndGVtcGxhdGUnOiBgXG4gICAgPGRieC1saW5rIFthbmNob3JdPVwiYW5jaG9yXCI+Q2hvb3NlIG90aGVyIGxvZ2luIG1ldGhvZC48L2RieC1saW5rPlxuICBgXG59KVxuZXhwb3J0IGNsYXNzIERieEZpcmViYXNlTG9naW5Db250ZXh0QmFja0J1dHRvbkNvbXBvbmVudCB7XG5cbiAgQE91dHB1dCgpXG4gIHJlYWRvbmx5IG9uQ2FuY2VsID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIHJlYWRvbmx5IGFuY2hvcjogQ2xpY2thYmxlQW5jaG9yID0ge1xuICAgIG9uQ2xpY2s6ICgpID0+IHRoaXMub25DYW5jZWwuZW1pdCgpXG4gIH07XG5cbn1cbiJdfQ==
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Directive } from "@angular/core";
|
|
2
|
+
import { AbstractForwardDbxInjectionContextDirective } from "@dereekb/dbx-core";
|
|
3
|
+
import { DbxFirebaseLoginContext } from "./login.context";
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
/**
|
|
6
|
+
* DbxFirebaseLoginContext implementation.
|
|
7
|
+
*/
|
|
8
|
+
export class DbxFirebaseLoginContextDirective extends AbstractForwardDbxInjectionContextDirective {
|
|
9
|
+
}
|
|
10
|
+
DbxFirebaseLoginContextDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFirebaseLoginContextDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
11
|
+
DbxFirebaseLoginContextDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.2", type: DbxFirebaseLoginContextDirective, selector: "[dbxFirebaseLoginContext]", providers: [{
|
|
12
|
+
provide: DbxFirebaseLoginContext,
|
|
13
|
+
useExisting: DbxFirebaseLoginContextDirective
|
|
14
|
+
}], usesInheritance: true, ngImport: i0 });
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFirebaseLoginContextDirective, decorators: [{
|
|
16
|
+
type: Directive,
|
|
17
|
+
args: [{
|
|
18
|
+
'selector': '[dbxFirebaseLoginContext]',
|
|
19
|
+
providers: [{
|
|
20
|
+
provide: DbxFirebaseLoginContext,
|
|
21
|
+
useExisting: DbxFirebaseLoginContextDirective
|
|
22
|
+
}]
|
|
23
|
+
}]
|
|
24
|
+
}] });
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4uY29udGV4dC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9hdXRoL2xvZ2luL2xvZ2luLmNvbnRleHQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLDJDQUEyQyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDaEYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBRTFEOztHQUVHO0FBUUgsTUFBTSxPQUFPLGdDQUFpQyxTQUFRLDJDQUEyQzs7NkhBQXBGLGdDQUFnQztpSEFBaEMsZ0NBQWdDLG9EQUxoQyxDQUFDO1lBQ1YsT0FBTyxFQUFFLHVCQUF1QjtZQUNoQyxXQUFXLEVBQUUsZ0NBQWdDO1NBQzlDLENBQUM7MkZBRVMsZ0NBQWdDO2tCQVA1QyxTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSwyQkFBMkI7b0JBQ3ZDLFNBQVMsRUFBRSxDQUFDOzRCQUNWLE9BQU8sRUFBRSx1QkFBdUI7NEJBQ2hDLFdBQVcsa0NBQWtDO3lCQUM5QyxDQUFDO2lCQUNIIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEFic3RyYWN0Rm9yd2FyZERieEluamVjdGlvbkNvbnRleHREaXJlY3RpdmUgfSBmcm9tIFwiQGRlcmVla2IvZGJ4LWNvcmVcIjtcbmltcG9ydCB7IERieEZpcmViYXNlTG9naW5Db250ZXh0IH0gZnJvbSBcIi4vbG9naW4uY29udGV4dFwiO1xuXG4vKipcbiAqIERieEZpcmViYXNlTG9naW5Db250ZXh0IGltcGxlbWVudGF0aW9uLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgJ3NlbGVjdG9yJzogJ1tkYnhGaXJlYmFzZUxvZ2luQ29udGV4dF0nLFxuICBwcm92aWRlcnM6IFt7XG4gICAgcHJvdmlkZTogRGJ4RmlyZWJhc2VMb2dpbkNvbnRleHQsXG4gICAgdXNlRXhpc3Rpbmc6IERieEZpcmViYXNlTG9naW5Db250ZXh0RGlyZWN0aXZlXG4gIH1dXG59KVxuZXhwb3J0IGNsYXNzIERieEZpcmViYXNlTG9naW5Db250ZXh0RGlyZWN0aXZlIGV4dGVuZHMgQWJzdHJhY3RGb3J3YXJkRGJ4SW5qZWN0aW9uQ29udGV4dERpcmVjdGl2ZSBpbXBsZW1lbnRzIERieEZpcmViYXNlTG9naW5Db250ZXh0IHsgfVxuIl19
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { DbxInjectionContext } from "@dereekb/dbx-core";
|
|
2
|
+
/**
|
|
3
|
+
* Injection token for a DbxInjectionContext for DbxFirebaseLoginContext.
|
|
4
|
+
*/
|
|
5
|
+
export class DbxFirebaseLoginContext extends DbxInjectionContext {
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4uY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1maXJlYmFzZS9zcmMvbGliL2F1dGgvbG9naW4vbG9naW4uY29udGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUV4RDs7R0FFRztBQUNILE1BQU0sT0FBZ0IsdUJBQXdCLFNBQVEsbUJBQW1CO0NBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYnhJbmplY3Rpb25Db250ZXh0IH0gZnJvbSBcIkBkZXJlZWtiL2RieC1jb3JlXCI7XG5cbi8qKlxuICogSW5qZWN0aW9uIHRva2VuIGZvciBhIERieEluamVjdGlvbkNvbnRleHQgZm9yIERieEZpcmViYXNlTG9naW5Db250ZXh0LlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRGJ4RmlyZWJhc2VMb2dpbkNvbnRleHQgZXh0ZW5kcyBEYnhJbmplY3Rpb25Db250ZXh0IHsgfVxuIl19
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Component } from "@angular/core";
|
|
2
|
+
import { AbstractConfiguredDbxFirebaseLoginButtonDirective, DEFAULT_CONFIGURED_DBX_FIREBASE_LOGIN_BUTTON_TEMPLATE } from "./login.button.component";
|
|
3
|
+
import { DbxFirebaseLoginEmailContentComponent } from "./login.email.content.component";
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "./login.button.component";
|
|
6
|
+
export class DbxFirebaseLoginEmailComponent extends AbstractConfiguredDbxFirebaseLoginButtonDirective {
|
|
7
|
+
constructor() {
|
|
8
|
+
super(...arguments);
|
|
9
|
+
this.loginProvider = 'email';
|
|
10
|
+
}
|
|
11
|
+
handleLogin() {
|
|
12
|
+
return DbxFirebaseLoginEmailContentComponent.openEmailLoginContext(this.dbxFirebaseLoginContext, { loginMode: 'login', passwordConfig: this.dbxFirebaseAuthLoginService.getPasswordConfig() });
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
DbxFirebaseLoginEmailComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFirebaseLoginEmailComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
16
|
+
DbxFirebaseLoginEmailComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: DbxFirebaseLoginEmailComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "\n <dbx-firebase-login-button-container>\n <dbx-firebase-login-button [config]=\"config\"></dbx-firebase-login-button>\n </dbx-firebase-login-button-container>\n", isInline: true, components: [{ type: i1.DbxFirebaseLoginButtonContainerComponent, selector: "dbx-firebase-login-button-container" }, { type: i1.DbxFirebaseLoginButtonComponent, selector: "dbx-firebase-login-button", inputs: ["config"] }] });
|
|
17
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFirebaseLoginEmailComponent, decorators: [{
|
|
18
|
+
type: Component,
|
|
19
|
+
args: [{
|
|
20
|
+
template: DEFAULT_CONFIGURED_DBX_FIREBASE_LOGIN_BUTTON_TEMPLATE
|
|
21
|
+
}]
|
|
22
|
+
}] });
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4uZW1haWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZpcmViYXNlL3NyYy9saWIvYXV0aC9sb2dpbi9sb2dpbi5lbWFpbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsaURBQWlELEVBQUUscURBQXFELEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNwSixPQUFPLEVBQUUscUNBQXFDLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7O0FBS3hGLE1BQU0sT0FBTyw4QkFBK0IsU0FBUSxpREFBaUQ7SUFIckc7O1FBS1csa0JBQWEsR0FBRyxPQUFPLENBQUM7S0FNbEM7SUFKQyxXQUFXO1FBQ1QsT0FBTyxxQ0FBcUMsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLEVBQUUsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxJQUFJLENBQUMsMkJBQTJCLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDak0sQ0FBQzs7MkhBTlUsOEJBQThCOytHQUE5Qiw4QkFBOEI7MkZBQTlCLDhCQUE4QjtrQkFIMUMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUscURBQXFEO2lCQUNoRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBBYnN0cmFjdENvbmZpZ3VyZWREYnhGaXJlYmFzZUxvZ2luQnV0dG9uRGlyZWN0aXZlLCBERUZBVUxUX0NPTkZJR1VSRURfREJYX0ZJUkVCQVNFX0xPR0lOX0JVVFRPTl9URU1QTEFURSB9IGZyb20gXCIuL2xvZ2luLmJ1dHRvbi5jb21wb25lbnRcIjtcbmltcG9ydCB7IERieEZpcmViYXNlTG9naW5FbWFpbENvbnRlbnRDb21wb25lbnQgfSBmcm9tIFwiLi9sb2dpbi5lbWFpbC5jb250ZW50LmNvbXBvbmVudFwiO1xuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGU6IERFRkFVTFRfQ09ORklHVVJFRF9EQlhfRklSRUJBU0VfTE9HSU5fQlVUVE9OX1RFTVBMQVRFXG59KVxuZXhwb3J0IGNsYXNzIERieEZpcmViYXNlTG9naW5FbWFpbENvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0Q29uZmlndXJlZERieEZpcmViYXNlTG9naW5CdXR0b25EaXJlY3RpdmUge1xuXG4gIHJlYWRvbmx5IGxvZ2luUHJvdmlkZXIgPSAnZW1haWwnO1xuXG4gIGhhbmRsZUxvZ2luKCk6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuIERieEZpcmViYXNlTG9naW5FbWFpbENvbnRlbnRDb21wb25lbnQub3BlbkVtYWlsTG9naW5Db250ZXh0KHRoaXMuZGJ4RmlyZWJhc2VMb2dpbkNvbnRleHQsIHsgbG9naW5Nb2RlOiAnbG9naW4nLCBwYXNzd29yZENvbmZpZzogdGhpcy5kYnhGaXJlYmFzZUF1dGhMb2dpblNlcnZpY2UuZ2V0UGFzc3dvcmRDb25maWcoKSB9KTtcbiAgfVxuXG59XG4iXX0=
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { DBX_INJECTION_COMPONENT_DATA } from '@dereekb/dbx-core';
|
|
2
|
+
import { DbxFirebaseAuthService } from './../service/firebase.auth.service';
|
|
3
|
+
import { firstValueFrom, from, tap, BehaviorSubject } from 'rxjs';
|
|
4
|
+
import { Component, EventEmitter } from "@angular/core";
|
|
5
|
+
import { Inject } from '@angular/core';
|
|
6
|
+
import { firebaseAuthErrorToReadableError } from '../error';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "./../service/firebase.auth.service";
|
|
9
|
+
import * as i2 from "./login.email.form.component";
|
|
10
|
+
import * as i3 from "@dereekb/dbx-web";
|
|
11
|
+
import * as i4 from "@angular/material/button";
|
|
12
|
+
import * as i5 from "./login.email.recovery.form.component";
|
|
13
|
+
import * as i6 from "@angular/common";
|
|
14
|
+
import * as i7 from "@dereekb/dbx-core";
|
|
15
|
+
import * as i8 from "@dereekb/dbx-form";
|
|
16
|
+
export class DbxFirebaseLoginEmailContentComponent {
|
|
17
|
+
constructor(dbxFirebaseAuthService, config) {
|
|
18
|
+
this.dbxFirebaseAuthService = dbxFirebaseAuthService;
|
|
19
|
+
this.config = config;
|
|
20
|
+
this.formConfig = {
|
|
21
|
+
loginMode: this.config.loginMode,
|
|
22
|
+
passwordConfig: this.config.passwordConfig
|
|
23
|
+
};
|
|
24
|
+
this._emailMode = new BehaviorSubject('login');
|
|
25
|
+
this.emailMode$ = this._emailMode.asObservable();
|
|
26
|
+
this.forgotAnchor = {
|
|
27
|
+
onClick: () => {
|
|
28
|
+
this.openRecovery();
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
this.doneOrCancelled = new EventEmitter();
|
|
32
|
+
this.handleLoginAction = (value) => {
|
|
33
|
+
this.emailFormValue = value;
|
|
34
|
+
this.recoveryFormValue = { email: value.username }; // cache value for recovery
|
|
35
|
+
let result;
|
|
36
|
+
if (this.loginMode === 'register') {
|
|
37
|
+
result = this.dbxFirebaseAuthService.registerWithEmailAndPassword(value.username, value.password);
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
result = this.dbxFirebaseAuthService.logInWithEmailAndPassword(value.username, value.password).catch((error) => {
|
|
41
|
+
throw firebaseAuthErrorToReadableError(error);
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
return from(result).pipe(tap(() => {
|
|
45
|
+
this.doneOrCancelled.next(true);
|
|
46
|
+
}));
|
|
47
|
+
};
|
|
48
|
+
this.handleRecoveryAction = (value) => {
|
|
49
|
+
this.recoveryFormValue = value;
|
|
50
|
+
this.emailFormValue = { username: value.email, password: '' };
|
|
51
|
+
let result = this.dbxFirebaseAuthService.sendPasswordResetEmail(value.email);
|
|
52
|
+
return from(result).pipe(tap(() => {
|
|
53
|
+
this.onRecoveringSuccess();
|
|
54
|
+
}));
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
ngOnDestroy() {
|
|
58
|
+
this._emailMode.complete();
|
|
59
|
+
}
|
|
60
|
+
static openEmailLoginContext(dbxFirebaseLoginContext, config) {
|
|
61
|
+
return dbxFirebaseLoginContext.showContext({
|
|
62
|
+
config: {
|
|
63
|
+
componentClass: DbxFirebaseLoginEmailContentComponent,
|
|
64
|
+
data: config
|
|
65
|
+
},
|
|
66
|
+
use: (instance) => firstValueFrom(instance.doneOrCancelled)
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
get loginMode() {
|
|
70
|
+
return this.config.loginMode;
|
|
71
|
+
}
|
|
72
|
+
get isLoginMode() {
|
|
73
|
+
return this.loginMode === 'login';
|
|
74
|
+
}
|
|
75
|
+
get isRegisterMode() {
|
|
76
|
+
return this.loginMode === 'register';
|
|
77
|
+
}
|
|
78
|
+
get buttonText() {
|
|
79
|
+
return this.config.loginMode === 'register' ? 'Register' : 'Log In';
|
|
80
|
+
}
|
|
81
|
+
// MARK: Recovery
|
|
82
|
+
openRecovery() {
|
|
83
|
+
this._emailMode.next('recover');
|
|
84
|
+
}
|
|
85
|
+
// MARK: Recovering
|
|
86
|
+
onRecoveringSuccess() {
|
|
87
|
+
}
|
|
88
|
+
// MARK: Cancel
|
|
89
|
+
onCancel() {
|
|
90
|
+
this.doneOrCancelled.next(false);
|
|
91
|
+
}
|
|
92
|
+
onCancelReset() {
|
|
93
|
+
this.doneOrCancelled.next(false);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
DbxFirebaseLoginEmailContentComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFirebaseLoginEmailContentComponent, deps: [{ token: i1.DbxFirebaseAuthService }, { token: DBX_INJECTION_COMPONENT_DATA }], target: i0.ɵɵFactoryTarget.Component });
|
|
97
|
+
DbxFirebaseLoginEmailContentComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: DbxFirebaseLoginEmailContentComponent, selector: "ng-component", ngImport: i0, template: "<div class=\"dbx-firebase-login-email-content\">\n <ng-container [ngSwitch]=\"emailMode$ | async\">\n <ng-container *ngSwitchCase=\"'login'\">\n <ng-container *ngTemplateOutlet=\"loginView\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'recover'\">\n <ng-container *ngTemplateOutlet=\"resetPassword\"></ng-container>\n </ng-container>\n </ng-container>\n</div>\n\n<!-- Login View -->\n<ng-template #loginView>\n <ng-container dbxAction [dbxActionHandler]=\"handleLoginAction\">\n <dbx-firebase-email-form [config]=\"formConfig\" dbxActionForm [dbxFormSource]=\"emailFormValue\">\n </dbx-firebase-email-form>\n <div class=\"dbx-firebase-login-email-forgot-prompt\" *ngIf=\"isLoginMode\">\n <dbx-link [anchor]=\"forgotAnchor\">Forgot Password?</dbx-link>\n </div>\n <div class=\"dbx-flex\">\n <dbx-button class=\"dbx-wide-button\" [text]=\"buttonText\" [raised]=\"true\" color=\"primary\" dbxActionButton>\n </dbx-button>\n <dbx-button-spacer></dbx-button-spacer>\n <span class=\"dbx-spacer\"></span>\n <button mat-flat-button (click)=\"onCancel()\">Cancel</button>\n </div>\n <dbx-error dbxActionError></dbx-error>\n </ng-container>\n</ng-template>\n\n<!-- Reset Password View -->\n<ng-template #resetPassword>\n <ng-container dbxAction [dbxActionHandler]=\"handleRecoveryAction\">\n <dbx-firebase-email-recovery-form dbxActionForm [dbxFormSource]=\"recoveryFormValue\">\n </dbx-firebase-email-recovery-form>\n <p class=\"dbx-hint\">An email will be sent to the above address to help you reset your password.</p>\n <div class=\"dbx-flex\">\n <dbx-button class=\"dbx-wide-button\" text=\"Send Recovery Email\" [raised]=\"true\" color=\"primary\" dbxActionButton>\n </dbx-button>\n <span class=\"dbx-spacer\"></span>\n <button mat-flat-button (click)=\"onCancelReset()\">Cancel Recovery</button>\n </div>\n <dbx-error dbxActionError></dbx-error>\n </ng-container>\n</ng-template>\n", components: [{ type: i2.DbxFirebaseEmailFormComponent, selector: "dbx-firebase-email-form", inputs: ["config"] }, { type: i3.DbxAnchorLinkComponent, selector: "dbx-link", inputs: ["anchor", "ref", "href"] }, { type: i3.DbxButtonComponent, selector: "dbx-button", inputs: ["type", "raised", "stroked", "flat", "color", "customButtonColor", "customTextColor", "customSpinnerColor"] }, { type: i4.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i3.DbxReadableErrorComponent, selector: "dbx-error", inputs: ["error"] }, { type: i5.DbxFirebaseEmailRecoveryFormComponent, selector: "dbx-firebase-email-recovery-form" }], directives: [{ type: i6.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i6.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i7.DbxActionDirective, selector: "dbx-action,[dbxAction],dbx-action-context,[dbxActionContext]", exportAs: ["action", "dbxAction"] }, { type: i7.DbxActionHandlerDirective, selector: "[dbxActionHandler]", inputs: ["dbxActionHandler"] }, { type: i8.DbxActionFormDirective, selector: "[dbxActionForm]", inputs: ["dbxActionFormValidator", "dbxActionFormModified", "formDisabledOnWorking"] }, { type: i8.DbxFormSourceDirective, selector: "[dbxFormSource]", inputs: ["dbxFormSourceMode", "dbxFormSource"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.DbxActionButtonDirective, selector: "[dbxActionButton]" }, { type: i3.DbxButtonSpacerDirective, selector: "dbx-button-spacer,dbxButtonSpacer" }, { type: i3.DbxActionErrorDirective, selector: "[dbxActionError]" }], pipes: { "async": i6.AsyncPipe } });
|
|
98
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFirebaseLoginEmailContentComponent, decorators: [{
|
|
99
|
+
type: Component,
|
|
100
|
+
args: [{ template: "<div class=\"dbx-firebase-login-email-content\">\n <ng-container [ngSwitch]=\"emailMode$ | async\">\n <ng-container *ngSwitchCase=\"'login'\">\n <ng-container *ngTemplateOutlet=\"loginView\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'recover'\">\n <ng-container *ngTemplateOutlet=\"resetPassword\"></ng-container>\n </ng-container>\n </ng-container>\n</div>\n\n<!-- Login View -->\n<ng-template #loginView>\n <ng-container dbxAction [dbxActionHandler]=\"handleLoginAction\">\n <dbx-firebase-email-form [config]=\"formConfig\" dbxActionForm [dbxFormSource]=\"emailFormValue\">\n </dbx-firebase-email-form>\n <div class=\"dbx-firebase-login-email-forgot-prompt\" *ngIf=\"isLoginMode\">\n <dbx-link [anchor]=\"forgotAnchor\">Forgot Password?</dbx-link>\n </div>\n <div class=\"dbx-flex\">\n <dbx-button class=\"dbx-wide-button\" [text]=\"buttonText\" [raised]=\"true\" color=\"primary\" dbxActionButton>\n </dbx-button>\n <dbx-button-spacer></dbx-button-spacer>\n <span class=\"dbx-spacer\"></span>\n <button mat-flat-button (click)=\"onCancel()\">Cancel</button>\n </div>\n <dbx-error dbxActionError></dbx-error>\n </ng-container>\n</ng-template>\n\n<!-- Reset Password View -->\n<ng-template #resetPassword>\n <ng-container dbxAction [dbxActionHandler]=\"handleRecoveryAction\">\n <dbx-firebase-email-recovery-form dbxActionForm [dbxFormSource]=\"recoveryFormValue\">\n </dbx-firebase-email-recovery-form>\n <p class=\"dbx-hint\">An email will be sent to the above address to help you reset your password.</p>\n <div class=\"dbx-flex\">\n <dbx-button class=\"dbx-wide-button\" text=\"Send Recovery Email\" [raised]=\"true\" color=\"primary\" dbxActionButton>\n </dbx-button>\n <span class=\"dbx-spacer\"></span>\n <button mat-flat-button (click)=\"onCancelReset()\">Cancel Recovery</button>\n </div>\n <dbx-error dbxActionError></dbx-error>\n </ng-container>\n</ng-template>\n" }]
|
|
101
|
+
}], ctorParameters: function () { return [{ type: i1.DbxFirebaseAuthService }, { type: undefined, decorators: [{
|
|
102
|
+
type: Inject,
|
|
103
|
+
args: [DBX_INJECTION_COMPONENT_DATA]
|
|
104
|
+
}] }]; } });
|
|
105
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4uZW1haWwuY29udGVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9hdXRoL2xvZ2luL2xvZ2luLmVtYWlsLmNvbnRlbnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZpcmViYXNlL3NyYy9saWIvYXV0aC9sb2dpbi9sb2dpbi5lbWFpbC5jb250ZW50LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBd0IsNEJBQTRCLEVBQW1CLE1BQU0sbUJBQW1CLENBQUE7QUFDdkcsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDNUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUluRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLFVBQVUsQ0FBQzs7Ozs7Ozs7OztBQVk1RCxNQUFNLE9BQU8scUNBQXFDO0lBcUJoRCxZQUFxQixzQkFBOEMsRUFBaUQsTUFBbUQ7UUFBbEosMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQUFpRCxXQUFNLEdBQU4sTUFBTSxDQUE2QztRQW5COUosZUFBVSxHQUErQjtZQUNoRCxTQUFTLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTO1lBQ2hDLGNBQWMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWM7U0FDM0MsQ0FBQztRQUtNLGVBQVUsR0FBRyxJQUFJLGVBQWUsQ0FBbUMsT0FBTyxDQUFDLENBQUM7UUFDM0UsZUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFNUMsaUJBQVksR0FBb0I7WUFDdkMsT0FBTyxFQUFFLEdBQUcsRUFBRTtnQkFDWixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdEIsQ0FBQztTQUNGLENBQUM7UUFFTyxvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFrQzlDLHNCQUFpQixHQUF5QixDQUFDLEtBQWdDLEVBQUUsRUFBRTtZQUN0RixJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztZQUM1QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUksMkJBQTJCO1lBRWxGLElBQUksTUFBTSxDQUFDO1lBRVgsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLFVBQVUsRUFBRTtnQkFDakMsTUFBTSxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyw0QkFBNEIsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUNuRztpQkFBTTtnQkFDTCxNQUFNLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLHlCQUF5QixDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO29CQUM3RyxNQUFNLGdDQUFnQyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNoRCxDQUFDLENBQUMsQ0FBQzthQUNKO1lBRUQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUN0QixHQUFHLENBQUMsR0FBRyxFQUFFO2dCQUNQLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2xDLENBQUMsQ0FBQyxDQUNILENBQUM7UUFDSixDQUFDLENBQUE7UUFPUSx5QkFBb0IsR0FBeUIsQ0FBQyxLQUF3QyxFQUFFLEVBQUU7WUFDakcsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQztZQUMvQixJQUFJLENBQUMsY0FBYyxHQUFHLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBRTlELElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFN0UsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUN0QixHQUFHLENBQUMsR0FBRyxFQUFFO2dCQUNQLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQzdCLENBQUMsQ0FBQyxDQUNILENBQUM7UUFDSixDQUFDLENBQUE7SUFyRTBLLENBQUM7SUFFNUssV0FBVztRQUNULElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyx1QkFBZ0QsRUFBRSxNQUFtRDtRQUNoSSxPQUFPLHVCQUF1QixDQUFDLFdBQVcsQ0FBQztZQUN6QyxNQUFNLEVBQUU7Z0JBQ04sY0FBYyxFQUFFLHFDQUFxQztnQkFDckQsSUFBSSxFQUFFLE1BQU07YUFDYjtZQUNELEdBQUcsRUFBRSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUM7U0FDNUQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUM7SUFDL0IsQ0FBQztJQUVELElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLFNBQVMsS0FBSyxPQUFPLENBQUM7SUFDcEMsQ0FBQztJQUVELElBQUksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxTQUFTLEtBQUssVUFBVSxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7SUFDdEUsQ0FBQztJQXVCRCxpQkFBaUI7SUFDakIsWUFBWTtRQUNWLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFlRCxtQkFBbUI7SUFDbkIsbUJBQW1CO0lBRW5CLENBQUM7SUFFRCxlQUFlO0lBQ2YsUUFBUTtRQUNOLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkMsQ0FBQzs7a0lBeEdVLHFDQUFxQyx3REFxQjZCLDRCQUE0QjtzSEFyQjlGLHFDQUFxQyxvRENyQmxELGsrREE2Q0E7MkZEeEJhLHFDQUFxQztrQkFIakQsU0FBUzs7OzBCQXdCOEQsTUFBTTsyQkFBQyw0QkFBNEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYnhGaXJlYmFzZUVtYWlsUmVjb3ZlcnlGb3JtVmFsdWUgfSBmcm9tICcuL2xvZ2luLmVtYWlsLnJlY292ZXJ5LmZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IEhhbmRsZUFjdGlvbkZ1bmN0aW9uLCBEQlhfSU5KRUNUSU9OX0NPTVBPTkVOVF9EQVRBLCBDbGlja2FibGVBbmNob3IgfSBmcm9tICdAZGVyZWVrYi9kYngtY29yZSdcbmltcG9ydCB7IERieEZpcmViYXNlQXV0aFNlcnZpY2UgfSBmcm9tICcuLy4uL3NlcnZpY2UvZmlyZWJhc2UuYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IGZpcnN0VmFsdWVGcm9tLCBmcm9tLCB0YXAsIEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIE9uRGVzdHJveSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZUxvZ2luQ29udGV4dCB9IGZyb20gXCIuL2xvZ2luLmNvbnRleHRcIjtcbmltcG9ydCB7IERieEZpcmViYXNlRW1haWxGb3JtVmFsdWUsIERieEZpcmViYXNlRW1haWxGb3JtQ29uZmlnIH0gZnJvbSAnLi9sb2dpbi5lbWFpbC5mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZUxvZ2luTW9kZSB9IGZyb20gJy4vbG9naW4nO1xuaW1wb3J0IHsgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBmaXJlYmFzZUF1dGhFcnJvclRvUmVhZGFibGVFcnJvciB9IGZyb20gJy4uL2Vycm9yJztcbmltcG9ydCB7IE1heWJlIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGJ4RmlyZWJhc2VMb2dpbkVtYWlsQ29udGVudENvbXBvbmVudENvbmZpZyBleHRlbmRzIERieEZpcmViYXNlRW1haWxGb3JtQ29uZmlnIHtcbiAgbG9naW5Nb2RlOiBEYnhGaXJlYmFzZUxvZ2luTW9kZTtcbn1cblxuZXhwb3J0IHR5cGUgRGJ4RmlyZWJhc2VMb2dpbkVtYWlsQ29udGVudE1vZGUgPSAnbG9naW4nIHwgJ3JlY292ZXInIHwgJ3JlY292ZXJpbmcnO1xuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGVVcmw6ICcuL2xvZ2luLmVtYWlsLmNvbnRlbnQuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIERieEZpcmViYXNlTG9naW5FbWFpbENvbnRlbnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXG4gIHJlYWRvbmx5IGZvcm1Db25maWc6IERieEZpcmViYXNlRW1haWxGb3JtQ29uZmlnID0ge1xuICAgIGxvZ2luTW9kZTogdGhpcy5jb25maWcubG9naW5Nb2RlLFxuICAgIHBhc3N3b3JkQ29uZmlnOiB0aGlzLmNvbmZpZy5wYXNzd29yZENvbmZpZ1xuICB9O1xuXG4gIGVtYWlsRm9ybVZhbHVlOiBNYXliZTxEYnhGaXJlYmFzZUVtYWlsRm9ybVZhbHVlPjtcbiAgcmVjb3ZlcnlGb3JtVmFsdWU6IE1heWJlPERieEZpcmViYXNlRW1haWxSZWNvdmVyeUZvcm1WYWx1ZT47XG5cbiAgcHJpdmF0ZSBfZW1haWxNb2RlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxEYnhGaXJlYmFzZUxvZ2luRW1haWxDb250ZW50TW9kZT4oJ2xvZ2luJyk7XG4gIHJlYWRvbmx5IGVtYWlsTW9kZSQgPSB0aGlzLl9lbWFpbE1vZGUuYXNPYnNlcnZhYmxlKCk7XG5cbiAgcmVhZG9ubHkgZm9yZ290QW5jaG9yOiBDbGlja2FibGVBbmNob3IgPSB7XG4gICAgb25DbGljazogKCkgPT4ge1xuICAgICAgdGhpcy5vcGVuUmVjb3ZlcnkoKTtcbiAgICB9XG4gIH07XG5cbiAgcmVhZG9ubHkgZG9uZU9yQ2FuY2VsbGVkID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IGRieEZpcmViYXNlQXV0aFNlcnZpY2U6IERieEZpcmViYXNlQXV0aFNlcnZpY2UsIEBJbmplY3QoREJYX0lOSkVDVElPTl9DT01QT05FTlRfREFUQSkgcmVhZG9ubHkgY29uZmlnOiBEYnhGaXJlYmFzZUxvZ2luRW1haWxDb250ZW50Q29tcG9uZW50Q29uZmlnKSB7IH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9lbWFpbE1vZGUuY29tcGxldGUoKTtcbiAgfVxuXG4gIHN0YXRpYyBvcGVuRW1haWxMb2dpbkNvbnRleHQoZGJ4RmlyZWJhc2VMb2dpbkNvbnRleHQ6IERieEZpcmViYXNlTG9naW5Db250ZXh0LCBjb25maWc6IERieEZpcmViYXNlTG9naW5FbWFpbENvbnRlbnRDb21wb25lbnRDb25maWcpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gZGJ4RmlyZWJhc2VMb2dpbkNvbnRleHQuc2hvd0NvbnRleHQoe1xuICAgICAgY29uZmlnOiB7XG4gICAgICAgIGNvbXBvbmVudENsYXNzOiBEYnhGaXJlYmFzZUxvZ2luRW1haWxDb250ZW50Q29tcG9uZW50LFxuICAgICAgICBkYXRhOiBjb25maWdcbiAgICAgIH0sXG4gICAgICB1c2U6IChpbnN0YW5jZSkgPT4gZmlyc3RWYWx1ZUZyb20oaW5zdGFuY2UuZG9uZU9yQ2FuY2VsbGVkKVxuICAgIH0pO1xuICB9XG5cbiAgZ2V0IGxvZ2luTW9kZSgpIHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcubG9naW5Nb2RlO1xuICB9XG5cbiAgZ2V0IGlzTG9naW5Nb2RlKCkge1xuICAgIHJldHVybiB0aGlzLmxvZ2luTW9kZSA9PT0gJ2xvZ2luJztcbiAgfVxuXG4gIGdldCBpc1JlZ2lzdGVyTW9kZSgpIHtcbiAgICByZXR1cm4gdGhpcy5sb2dpbk1vZGUgPT09ICdyZWdpc3Rlcic7XG4gIH1cblxuICBnZXQgYnV0dG9uVGV4dCgpIHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcubG9naW5Nb2RlID09PSAncmVnaXN0ZXInID8gJ1JlZ2lzdGVyJyA6ICdMb2cgSW4nO1xuICB9XG5cbiAgcmVhZG9ubHkgaGFuZGxlTG9naW5BY3Rpb246IEhhbmRsZUFjdGlvbkZ1bmN0aW9uID0gKHZhbHVlOiBEYnhGaXJlYmFzZUVtYWlsRm9ybVZhbHVlKSA9PiB7XG4gICAgdGhpcy5lbWFpbEZvcm1WYWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMucmVjb3ZlcnlGb3JtVmFsdWUgPSB7IGVtYWlsOiB2YWx1ZS51c2VybmFtZSB9OyAgICAvLyBjYWNoZSB2YWx1ZSBmb3IgcmVjb3ZlcnlcblxuICAgIGxldCByZXN1bHQ7XG5cbiAgICBpZiAodGhpcy5sb2dpbk1vZGUgPT09ICdyZWdpc3RlcicpIHtcbiAgICAgIHJlc3VsdCA9IHRoaXMuZGJ4RmlyZWJhc2VBdXRoU2VydmljZS5yZWdpc3RlcldpdGhFbWFpbEFuZFBhc3N3b3JkKHZhbHVlLnVzZXJuYW1lLCB2YWx1ZS5wYXNzd29yZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc3VsdCA9IHRoaXMuZGJ4RmlyZWJhc2VBdXRoU2VydmljZS5sb2dJbldpdGhFbWFpbEFuZFBhc3N3b3JkKHZhbHVlLnVzZXJuYW1lLCB2YWx1ZS5wYXNzd29yZCkuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgIHRocm93IGZpcmViYXNlQXV0aEVycm9yVG9SZWFkYWJsZUVycm9yKGVycm9yKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBmcm9tKHJlc3VsdCkucGlwZShcbiAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgIHRoaXMuZG9uZU9yQ2FuY2VsbGVkLm5leHQodHJ1ZSk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvLyBNQVJLOiBSZWNvdmVyeVxuICBvcGVuUmVjb3ZlcnkoKSB7XG4gICAgdGhpcy5fZW1haWxNb2RlLm5leHQoJ3JlY292ZXInKTtcbiAgfVxuXG4gIHJlYWRvbmx5IGhhbmRsZVJlY292ZXJ5QWN0aW9uOiBIYW5kbGVBY3Rpb25GdW5jdGlvbiA9ICh2YWx1ZTogRGJ4RmlyZWJhc2VFbWFpbFJlY292ZXJ5Rm9ybVZhbHVlKSA9PiB7XG4gICAgdGhpcy5yZWNvdmVyeUZvcm1WYWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMuZW1haWxGb3JtVmFsdWUgPSB7IHVzZXJuYW1lOiB2YWx1ZS5lbWFpbCwgcGFzc3dvcmQ6ICcnIH07XG5cbiAgICBsZXQgcmVzdWx0ID0gdGhpcy5kYnhGaXJlYmFzZUF1dGhTZXJ2aWNlLnNlbmRQYXNzd29yZFJlc2V0RW1haWwodmFsdWUuZW1haWwpO1xuXG4gICAgcmV0dXJuIGZyb20ocmVzdWx0KS5waXBlKFxuICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgdGhpcy5vblJlY292ZXJpbmdTdWNjZXNzKCk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvLyBNQVJLOiBSZWNvdmVyaW5nXG4gIG9uUmVjb3ZlcmluZ1N1Y2Nlc3MoKSB7XG5cbiAgfVxuXG4gIC8vIE1BUks6IENhbmNlbFxuICBvbkNhbmNlbCgpIHtcbiAgICB0aGlzLmRvbmVPckNhbmNlbGxlZC5uZXh0KGZhbHNlKTtcbiAgfVxuXG4gIG9uQ2FuY2VsUmVzZXQoKSB7XG4gICAgdGhpcy5kb25lT3JDYW5jZWxsZWQubmV4dChmYWxzZSk7XG4gIH1cblxufVxuIiwiPGRpdiBjbGFzcz1cImRieC1maXJlYmFzZS1sb2dpbi1lbWFpbC1jb250ZW50XCI+XG4gIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImVtYWlsTW9kZSQgfCBhc3luY1wiPlxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidsb2dpbidcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsb2dpblZpZXdcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIncmVjb3ZlcidcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJyZXNldFBhc3N3b3JkXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuPC9kaXY+XG5cbjwhLS0gTG9naW4gVmlldyAtLT5cbjxuZy10ZW1wbGF0ZSAjbG9naW5WaWV3PlxuICA8bmctY29udGFpbmVyIGRieEFjdGlvbiBbZGJ4QWN0aW9uSGFuZGxlcl09XCJoYW5kbGVMb2dpbkFjdGlvblwiPlxuICAgIDxkYngtZmlyZWJhc2UtZW1haWwtZm9ybSBbY29uZmlnXT1cImZvcm1Db25maWdcIiBkYnhBY3Rpb25Gb3JtIFtkYnhGb3JtU291cmNlXT1cImVtYWlsRm9ybVZhbHVlXCI+XG4gICAgPC9kYngtZmlyZWJhc2UtZW1haWwtZm9ybT5cbiAgICA8ZGl2IGNsYXNzPVwiZGJ4LWZpcmViYXNlLWxvZ2luLWVtYWlsLWZvcmdvdC1wcm9tcHRcIiAqbmdJZj1cImlzTG9naW5Nb2RlXCI+XG4gICAgICA8ZGJ4LWxpbmsgW2FuY2hvcl09XCJmb3Jnb3RBbmNob3JcIj5Gb3Jnb3QgUGFzc3dvcmQ/PC9kYngtbGluaz5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZGJ4LWZsZXhcIj5cbiAgICAgIDxkYngtYnV0dG9uIGNsYXNzPVwiZGJ4LXdpZGUtYnV0dG9uXCIgW3RleHRdPVwiYnV0dG9uVGV4dFwiIFtyYWlzZWRdPVwidHJ1ZVwiIGNvbG9yPVwicHJpbWFyeVwiIGRieEFjdGlvbkJ1dHRvbj5cbiAgICAgIDwvZGJ4LWJ1dHRvbj5cbiAgICAgIDxkYngtYnV0dG9uLXNwYWNlcj48L2RieC1idXR0b24tc3BhY2VyPlxuICAgICAgPHNwYW4gY2xhc3M9XCJkYngtc3BhY2VyXCI+PC9zcGFuPlxuICAgICAgPGJ1dHRvbiBtYXQtZmxhdC1idXR0b24gKGNsaWNrKT1cIm9uQ2FuY2VsKClcIj5DYW5jZWw8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGJ4LWVycm9yIGRieEFjdGlvbkVycm9yPjwvZGJ4LWVycm9yPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG5cbjwhLS0gUmVzZXQgUGFzc3dvcmQgVmlldyAtLT5cbjxuZy10ZW1wbGF0ZSAjcmVzZXRQYXNzd29yZD5cbiAgPG5nLWNvbnRhaW5lciBkYnhBY3Rpb24gW2RieEFjdGlvbkhhbmRsZXJdPVwiaGFuZGxlUmVjb3ZlcnlBY3Rpb25cIj5cbiAgICA8ZGJ4LWZpcmViYXNlLWVtYWlsLXJlY292ZXJ5LWZvcm0gZGJ4QWN0aW9uRm9ybSBbZGJ4Rm9ybVNvdXJjZV09XCJyZWNvdmVyeUZvcm1WYWx1ZVwiPlxuICAgIDwvZGJ4LWZpcmViYXNlLWVtYWlsLXJlY292ZXJ5LWZvcm0+XG4gICAgPHAgY2xhc3M9XCJkYngtaGludFwiPkFuIGVtYWlsIHdpbGwgYmUgc2VudCB0byB0aGUgYWJvdmUgYWRkcmVzcyB0byBoZWxwIHlvdSByZXNldCB5b3VyIHBhc3N3b3JkLjwvcD5cbiAgICA8ZGl2IGNsYXNzPVwiZGJ4LWZsZXhcIj5cbiAgICAgIDxkYngtYnV0dG9uIGNsYXNzPVwiZGJ4LXdpZGUtYnV0dG9uXCIgdGV4dD1cIlNlbmQgUmVjb3ZlcnkgRW1haWxcIiBbcmFpc2VkXT1cInRydWVcIiBjb2xvcj1cInByaW1hcnlcIiBkYnhBY3Rpb25CdXR0b24+XG4gICAgICA8L2RieC1idXR0b24+XG4gICAgICA8c3BhbiBjbGFzcz1cImRieC1zcGFjZXJcIj48L3NwYW4+XG4gICAgICA8YnV0dG9uIG1hdC1mbGF0LWJ1dHRvbiAoY2xpY2spPVwib25DYW5jZWxSZXNldCgpXCI+Q2FuY2VsIFJlY292ZXJ5PC9idXR0b24+XG4gICAgPC9kaXY+XG4gICAgPGRieC1lcnJvciBkYnhBY3Rpb25FcnJvcj48L2RieC1lcnJvcj5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { Component, Input } from "@angular/core";
|
|
2
|
+
import { ProvideFormlyContext, AbstractAsyncFormlyFormDirective, usernamePasswordLoginFields } from "@dereekb/dbx-form";
|
|
3
|
+
import { BehaviorSubject, map } from "rxjs";
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@dereekb/dbx-form";
|
|
6
|
+
export class DbxFirebaseEmailFormComponent extends AbstractAsyncFormlyFormDirective {
|
|
7
|
+
constructor() {
|
|
8
|
+
super(...arguments);
|
|
9
|
+
this._config = new BehaviorSubject({ loginMode: 'login' });
|
|
10
|
+
this.fields$ = this._config.pipe(map(({ loginMode = 'login', passwordConfig }) => {
|
|
11
|
+
const fields = usernamePasswordLoginFields({ username: 'email', password: passwordConfig, verifyPassword: (loginMode === 'register') });
|
|
12
|
+
return fields;
|
|
13
|
+
}));
|
|
14
|
+
}
|
|
15
|
+
set config(config) {
|
|
16
|
+
this._config.next(config);
|
|
17
|
+
}
|
|
18
|
+
ngOnDestroy() {
|
|
19
|
+
super.ngOnDestroy();
|
|
20
|
+
this._config.complete();
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
DbxFirebaseEmailFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFirebaseEmailFormComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
24
|
+
DbxFirebaseEmailFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: DbxFirebaseEmailFormComponent, selector: "dbx-firebase-email-form", inputs: { config: "config" }, providers: [ProvideFormlyContext()], usesInheritance: true, ngImport: i0, template: `<dbx-formly></dbx-formly>`, isInline: true, components: [{ type: i1.DbxFormlyFormComponent, selector: "dbx-formly", exportAs: ["formly"] }] });
|
|
25
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFirebaseEmailFormComponent, decorators: [{
|
|
26
|
+
type: Component,
|
|
27
|
+
args: [{
|
|
28
|
+
template: `<dbx-formly></dbx-formly>`,
|
|
29
|
+
selector: 'dbx-firebase-email-form',
|
|
30
|
+
providers: [ProvideFormlyContext()]
|
|
31
|
+
}]
|
|
32
|
+
}], propDecorators: { config: [{
|
|
33
|
+
type: Input
|
|
34
|
+
}] } });
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4uZW1haWwuZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9hdXRoL2xvZ2luL2xvZ2luLmVtYWlsLmZvcm0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQzVELE9BQU8sRUFBMkIsb0JBQW9CLEVBQUUsZ0NBQWdDLEVBQUUsMkJBQTJCLEVBQW1DLE1BQU0sbUJBQW1CLENBQUM7QUFHbEwsT0FBTyxFQUFFLGVBQWUsRUFBRSxHQUFHLEVBQWMsTUFBTSxNQUFNLENBQUM7OztBQWV4RCxNQUFNLE9BQU8sNkJBQThCLFNBQVEsZ0NBQTJEO0lBTDlHOztRQU9VLFlBQU8sR0FBRyxJQUFJLGVBQWUsQ0FBNkIsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUVqRixZQUFPLEdBQTJDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUMxRSxHQUFHLENBQUMsQ0FBQyxFQUFFLFNBQVMsR0FBRyxPQUFPLEVBQUUsY0FBYyxFQUFFLEVBQUUsRUFBRTtZQUM5QyxNQUFNLE1BQU0sR0FBd0IsMkJBQTJCLENBQUMsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLENBQUMsU0FBUyxLQUFLLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUM3SixPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDLENBQUMsQ0FDSCxDQUFDO0tBWUg7SUFWQyxJQUNJLE1BQU0sQ0FBQyxNQUFrQztRQUMzQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRVEsV0FBVztRQUNsQixLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMxQixDQUFDOzswSEFuQlUsNkJBQTZCOzhHQUE3Qiw2QkFBNkIsZ0ZBRjdCLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxpREFGekIsMkJBQTJCOzJGQUkxQiw2QkFBNkI7a0JBTHpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsUUFBUSxFQUFFLHlCQUF5QjtvQkFDbkMsU0FBUyxFQUFFLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztpQkFDcEM7OEJBYUssTUFBTTtzQkFEVCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IFRleHRQYXNzd29yZEZpZWxkQ29uZmlnLCBQcm92aWRlRm9ybWx5Q29udGV4dCwgQWJzdHJhY3RBc3luY0Zvcm1seUZvcm1EaXJlY3RpdmUsIHVzZXJuYW1lUGFzc3dvcmRMb2dpbkZpZWxkcywgRGVmYXVsdFVzZXJuYW1lTG9naW5GaWVsZHNWYWx1ZSB9IGZyb20gXCJAZGVyZWVrYi9kYngtZm9ybVwiO1xuaW1wb3J0IHsgTWF5YmUgfSBmcm9tIFwiQGRlcmVla2IvdXRpbFwiO1xuaW1wb3J0IHsgRm9ybWx5RmllbGRDb25maWcgfSBmcm9tIFwiQG5neC1mb3JtbHkvY29yZVwiO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBtYXAsIE9ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgRGJ4RmlyZWJhc2VMb2dpbk1vZGUgfSBmcm9tIFwiLi9sb2dpblwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIERieEZpcmViYXNlRW1haWxGb3JtVmFsdWUgZXh0ZW5kcyBEZWZhdWx0VXNlcm5hbWVMb2dpbkZpZWxkc1ZhbHVlIHsgfVxuXG5leHBvcnQgaW50ZXJmYWNlIERieEZpcmViYXNlRW1haWxGb3JtQ29uZmlnIHtcbiAgbG9naW5Nb2RlOiBEYnhGaXJlYmFzZUxvZ2luTW9kZTtcbiAgcGFzc3dvcmRDb25maWc/OiBUZXh0UGFzc3dvcmRGaWVsZENvbmZpZztcbn1cblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlOiBgPGRieC1mb3JtbHk+PC9kYngtZm9ybWx5PmAsXG4gIHNlbGVjdG9yOiAnZGJ4LWZpcmViYXNlLWVtYWlsLWZvcm0nLFxuICBwcm92aWRlcnM6IFtQcm92aWRlRm9ybWx5Q29udGV4dCgpXVxufSlcbmV4cG9ydCBjbGFzcyBEYnhGaXJlYmFzZUVtYWlsRm9ybUNvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0QXN5bmNGb3JtbHlGb3JtRGlyZWN0aXZlPERieEZpcmViYXNlRW1haWxGb3JtVmFsdWU+IGltcGxlbWVudHMgT25EZXN0cm95IHtcblxuICBwcml2YXRlIF9jb25maWcgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PERieEZpcmViYXNlRW1haWxGb3JtQ29uZmlnPih7IGxvZ2luTW9kZTogJ2xvZ2luJyB9KTtcblxuICByZWFkb25seSBmaWVsZHMkOiBPYnNlcnZhYmxlPE1heWJlPEZvcm1seUZpZWxkQ29uZmlnW10+PiA9IHRoaXMuX2NvbmZpZy5waXBlKFxuICAgIG1hcCgoeyBsb2dpbk1vZGUgPSAnbG9naW4nLCBwYXNzd29yZENvbmZpZyB9KSA9PiB7XG4gICAgICBjb25zdCBmaWVsZHM6IEZvcm1seUZpZWxkQ29uZmlnW10gPSB1c2VybmFtZVBhc3N3b3JkTG9naW5GaWVsZHMoeyB1c2VybmFtZTogJ2VtYWlsJywgcGFzc3dvcmQ6IHBhc3N3b3JkQ29uZmlnLCB2ZXJpZnlQYXNzd29yZDogKGxvZ2luTW9kZSA9PT0gJ3JlZ2lzdGVyJykgfSk7XG4gICAgICByZXR1cm4gZmllbGRzO1xuICAgIH0pXG4gICk7XG5cbiAgQElucHV0KClcbiAgc2V0IGNvbmZpZyhjb25maWc6IERieEZpcmViYXNlRW1haWxGb3JtQ29uZmlnKSB7XG4gICAgdGhpcy5fY29uZmlnLm5leHQoY29uZmlnKTtcbiAgfVxuXG4gIG92ZXJyaWRlIG5nT25EZXN0cm95KCkge1xuICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgdGhpcy5fY29uZmlnLmNvbXBsZXRlKCk7XG4gIH1cblxufVxuIl19
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Component } from "@angular/core";
|
|
2
|
+
import { ProvideFormlyContext, AbstractSyncFormlyFormDirective, emailField } from "@dereekb/dbx-form";
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@dereekb/dbx-form";
|
|
5
|
+
export class DbxFirebaseEmailRecoveryFormComponent extends AbstractSyncFormlyFormDirective {
|
|
6
|
+
constructor() {
|
|
7
|
+
super(...arguments);
|
|
8
|
+
this.fields = [emailField({ required: true })];
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
DbxFirebaseEmailRecoveryFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFirebaseEmailRecoveryFormComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
12
|
+
DbxFirebaseEmailRecoveryFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: DbxFirebaseEmailRecoveryFormComponent, selector: "dbx-firebase-email-recovery-form", providers: [ProvideFormlyContext()], usesInheritance: true, ngImport: i0, template: `<dbx-formly></dbx-formly>`, isInline: true, components: [{ type: i1.DbxFormlyFormComponent, selector: "dbx-formly", exportAs: ["formly"] }] });
|
|
13
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFirebaseEmailRecoveryFormComponent, decorators: [{
|
|
14
|
+
type: Component,
|
|
15
|
+
args: [{
|
|
16
|
+
template: `<dbx-formly></dbx-formly>`,
|
|
17
|
+
selector: 'dbx-firebase-email-recovery-form',
|
|
18
|
+
providers: [ProvideFormlyContext()]
|
|
19
|
+
}]
|
|
20
|
+
}] });
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4uZW1haWwucmVjb3ZlcnkuZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9hdXRoL2xvZ2luL2xvZ2luLmVtYWlsLnJlY292ZXJ5LmZvcm0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLCtCQUErQixFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7QUFZdEcsTUFBTSxPQUFPLHFDQUFzQyxTQUFRLCtCQUFrRTtJQUw3SDs7UUFPVyxXQUFNLEdBQXdCLENBQUMsVUFBVSxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztLQUV6RTs7a0lBSlkscUNBQXFDO3NIQUFyQyxxQ0FBcUMsMkRBRnJDLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxpREFGekIsMkJBQTJCOzJGQUkxQixxQ0FBcUM7a0JBTGpELFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsUUFBUSxFQUFFLGtDQUFrQztvQkFDNUMsU0FBUyxFQUFFLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztpQkFDcEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgUHJvdmlkZUZvcm1seUNvbnRleHQsIEFic3RyYWN0U3luY0Zvcm1seUZvcm1EaXJlY3RpdmUsIGVtYWlsRmllbGQgfSBmcm9tIFwiQGRlcmVla2IvZGJ4LWZvcm1cIjtcbmltcG9ydCB7IEZvcm1seUZpZWxkQ29uZmlnIH0gZnJvbSBcIkBuZ3gtZm9ybWx5L2NvcmVcIjtcblxuZXhwb3J0IGludGVyZmFjZSBEYnhGaXJlYmFzZUVtYWlsUmVjb3ZlcnlGb3JtVmFsdWUge1xuICBlbWFpbDogc3RyaW5nO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGU6IGA8ZGJ4LWZvcm1seT48L2RieC1mb3JtbHk+YCxcbiAgc2VsZWN0b3I6ICdkYngtZmlyZWJhc2UtZW1haWwtcmVjb3ZlcnktZm9ybScsXG4gIHByb3ZpZGVyczogW1Byb3ZpZGVGb3JtbHlDb250ZXh0KCldXG59KVxuZXhwb3J0IGNsYXNzIERieEZpcmViYXNlRW1haWxSZWNvdmVyeUZvcm1Db21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdFN5bmNGb3JtbHlGb3JtRGlyZWN0aXZlPERieEZpcmViYXNlRW1haWxSZWNvdmVyeUZvcm1WYWx1ZT4ge1xuXG4gIHJlYWRvbmx5IGZpZWxkczogRm9ybWx5RmllbGRDb25maWdbXSA9IFtlbWFpbEZpZWxkKHsgcmVxdWlyZWQ6IHRydWUgfSldO1xuXG59XG4iXX0=
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Component } from "@angular/core";
|
|
2
|
+
import { AbstractConfiguredDbxFirebaseLoginButtonDirective, DEFAULT_CONFIGURED_DBX_FIREBASE_LOGIN_BUTTON_TEMPLATE } from "./login.button.component";
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "./login.button.component";
|
|
5
|
+
export class DbxFirebaseLoginFacebookComponent extends AbstractConfiguredDbxFirebaseLoginButtonDirective {
|
|
6
|
+
constructor() {
|
|
7
|
+
super(...arguments);
|
|
8
|
+
this.loginProvider = 'facebook';
|
|
9
|
+
}
|
|
10
|
+
handleLogin() {
|
|
11
|
+
return this.dbxFirebaseAuthService.logInWithFacebook();
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
DbxFirebaseLoginFacebookComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFirebaseLoginFacebookComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
15
|
+
DbxFirebaseLoginFacebookComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: DbxFirebaseLoginFacebookComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "\n <dbx-firebase-login-button-container>\n <dbx-firebase-login-button [config]=\"config\"></dbx-firebase-login-button>\n </dbx-firebase-login-button-container>\n", isInline: true, components: [{ type: i1.DbxFirebaseLoginButtonContainerComponent, selector: "dbx-firebase-login-button-container" }, { type: i1.DbxFirebaseLoginButtonComponent, selector: "dbx-firebase-login-button", inputs: ["config"] }] });
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFirebaseLoginFacebookComponent, decorators: [{
|
|
17
|
+
type: Component,
|
|
18
|
+
args: [{
|
|
19
|
+
template: DEFAULT_CONFIGURED_DBX_FIREBASE_LOGIN_BUTTON_TEMPLATE
|
|
20
|
+
}]
|
|
21
|
+
}] });
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4uZmFjZWJvb2suY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZpcmViYXNlL3NyYy9saWIvYXV0aC9sb2dpbi9sb2dpbi5mYWNlYm9vay5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsaURBQWlELEVBQUUscURBQXFELEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7O0FBS3BKLE1BQU0sT0FBTyxpQ0FBa0MsU0FBUSxpREFBaUQ7SUFIeEc7O1FBS1csa0JBQWEsR0FBRyxVQUFVLENBQUM7S0FNckM7SUFKQyxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUN6RCxDQUFDOzs4SEFOVSxpQ0FBaUM7a0hBQWpDLGlDQUFpQzsyRkFBakMsaUNBQWlDO2tCQUg3QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxxREFBcUQ7aUJBQ2hFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEFic3RyYWN0Q29uZmlndXJlZERieEZpcmViYXNlTG9naW5CdXR0b25EaXJlY3RpdmUsIERFRkFVTFRfQ09ORklHVVJFRF9EQlhfRklSRUJBU0VfTE9HSU5fQlVUVE9OX1RFTVBMQVRFIH0gZnJvbSBcIi4vbG9naW4uYnV0dG9uLmNvbXBvbmVudFwiO1xuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGU6IERFRkFVTFRfQ09ORklHVVJFRF9EQlhfRklSRUJBU0VfTE9HSU5fQlVUVE9OX1RFTVBMQVRFXG59KVxuZXhwb3J0IGNsYXNzIERieEZpcmViYXNlTG9naW5GYWNlYm9va0NvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0Q29uZmlndXJlZERieEZpcmViYXNlTG9naW5CdXR0b25EaXJlY3RpdmUge1xuXG4gIHJlYWRvbmx5IGxvZ2luUHJvdmlkZXIgPSAnZmFjZWJvb2snO1xuXG4gIGhhbmRsZUxvZ2luKCk6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuZGJ4RmlyZWJhc2VBdXRoU2VydmljZS5sb2dJbldpdGhGYWNlYm9vaygpO1xuICB9XG5cbn1cbiJdfQ==
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Component } from "@angular/core";
|
|
2
|
+
import { AbstractConfiguredDbxFirebaseLoginButtonDirective, DEFAULT_CONFIGURED_DBX_FIREBASE_LOGIN_BUTTON_TEMPLATE } from "./login.button.component";
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "./login.button.component";
|
|
5
|
+
export class DbxFirebaseLoginGitHubComponent extends AbstractConfiguredDbxFirebaseLoginButtonDirective {
|
|
6
|
+
constructor() {
|
|
7
|
+
super(...arguments);
|
|
8
|
+
this.loginProvider = 'github';
|
|
9
|
+
}
|
|
10
|
+
handleLogin() {
|
|
11
|
+
return this.dbxFirebaseAuthService.logInWithGithub();
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
DbxFirebaseLoginGitHubComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFirebaseLoginGitHubComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
15
|
+
DbxFirebaseLoginGitHubComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: DbxFirebaseLoginGitHubComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "\n <dbx-firebase-login-button-container>\n <dbx-firebase-login-button [config]=\"config\"></dbx-firebase-login-button>\n </dbx-firebase-login-button-container>\n", isInline: true, components: [{ type: i1.DbxFirebaseLoginButtonContainerComponent, selector: "dbx-firebase-login-button-container" }, { type: i1.DbxFirebaseLoginButtonComponent, selector: "dbx-firebase-login-button", inputs: ["config"] }] });
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFirebaseLoginGitHubComponent, decorators: [{
|
|
17
|
+
type: Component,
|
|
18
|
+
args: [{
|
|
19
|
+
template: DEFAULT_CONFIGURED_DBX_FIREBASE_LOGIN_BUTTON_TEMPLATE
|
|
20
|
+
}]
|
|
21
|
+
}] });
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4uZ2l0aHViLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1maXJlYmFzZS9zcmMvbGliL2F1dGgvbG9naW4vbG9naW4uZ2l0aHViLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxpREFBaUQsRUFBRSxxREFBcUQsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7QUFLcEosTUFBTSxPQUFPLCtCQUFnQyxTQUFRLGlEQUFpRDtJQUh0Rzs7UUFLVyxrQkFBYSxHQUFHLFFBQVEsQ0FBQztLQU1uQztJQUpDLFdBQVc7UUFDVCxPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN2RCxDQUFDOzs0SEFOVSwrQkFBK0I7Z0hBQS9CLCtCQUErQjsyRkFBL0IsK0JBQStCO2tCQUgzQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxxREFBcUQ7aUJBQ2hFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEFic3RyYWN0Q29uZmlndXJlZERieEZpcmViYXNlTG9naW5CdXR0b25EaXJlY3RpdmUsIERFRkFVTFRfQ09ORklHVVJFRF9EQlhfRklSRUJBU0VfTE9HSU5fQlVUVE9OX1RFTVBMQVRFIH0gZnJvbSBcIi4vbG9naW4uYnV0dG9uLmNvbXBvbmVudFwiO1xuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGU6IERFRkFVTFRfQ09ORklHVVJFRF9EQlhfRklSRUJBU0VfTE9HSU5fQlVUVE9OX1RFTVBMQVRFXG59KVxuZXhwb3J0IGNsYXNzIERieEZpcmViYXNlTG9naW5HaXRIdWJDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdENvbmZpZ3VyZWREYnhGaXJlYmFzZUxvZ2luQnV0dG9uRGlyZWN0aXZlIHtcblxuICByZWFkb25seSBsb2dpblByb3ZpZGVyID0gJ2dpdGh1Yic7XG5cbiAgaGFuZGxlTG9naW4oKTogUHJvbWlzZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5kYnhGaXJlYmFzZUF1dGhTZXJ2aWNlLmxvZ0luV2l0aEdpdGh1YigpO1xuICB9XG5cbn1cbiJdfQ==
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Component } from "@angular/core";
|
|
2
|
+
import { AbstractConfiguredDbxFirebaseLoginButtonDirective, DEFAULT_CONFIGURED_DBX_FIREBASE_LOGIN_BUTTON_TEMPLATE } from "./login.button.component";
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "./login.button.component";
|
|
5
|
+
export class DbxFirebaseLoginGoogleComponent extends AbstractConfiguredDbxFirebaseLoginButtonDirective {
|
|
6
|
+
constructor() {
|
|
7
|
+
super(...arguments);
|
|
8
|
+
this.loginProvider = 'google';
|
|
9
|
+
}
|
|
10
|
+
handleLogin() {
|
|
11
|
+
return this.dbxFirebaseAuthService.logInWithGoogle();
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
DbxFirebaseLoginGoogleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFirebaseLoginGoogleComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
15
|
+
DbxFirebaseLoginGoogleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: DbxFirebaseLoginGoogleComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "\n <dbx-firebase-login-button-container>\n <dbx-firebase-login-button [config]=\"config\"></dbx-firebase-login-button>\n </dbx-firebase-login-button-container>\n", isInline: true, components: [{ type: i1.DbxFirebaseLoginButtonContainerComponent, selector: "dbx-firebase-login-button-container" }, { type: i1.DbxFirebaseLoginButtonComponent, selector: "dbx-firebase-login-button", inputs: ["config"] }] });
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFirebaseLoginGoogleComponent, decorators: [{
|
|
17
|
+
type: Component,
|
|
18
|
+
args: [{
|
|
19
|
+
template: DEFAULT_CONFIGURED_DBX_FIREBASE_LOGIN_BUTTON_TEMPLATE
|
|
20
|
+
}]
|
|
21
|
+
}] });
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4uZ29vZ2xlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1maXJlYmFzZS9zcmMvbGliL2F1dGgvbG9naW4vbG9naW4uZ29vZ2xlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxpREFBaUQsRUFBRSxxREFBcUQsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7QUFLcEosTUFBTSxPQUFPLCtCQUFnQyxTQUFRLGlEQUFpRDtJQUh0Rzs7UUFLVyxrQkFBYSxHQUFHLFFBQVEsQ0FBQztLQU1uQztJQUpDLFdBQVc7UUFDVCxPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN2RCxDQUFDOzs0SEFOVSwrQkFBK0I7Z0hBQS9CLCtCQUErQjsyRkFBL0IsK0JBQStCO2tCQUgzQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxxREFBcUQ7aUJBQ2hFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEFic3RyYWN0Q29uZmlndXJlZERieEZpcmViYXNlTG9naW5CdXR0b25EaXJlY3RpdmUsIERFRkFVTFRfQ09ORklHVVJFRF9EQlhfRklSRUJBU0VfTE9HSU5fQlVUVE9OX1RFTVBMQVRFIH0gZnJvbSBcIi4vbG9naW4uYnV0dG9uLmNvbXBvbmVudFwiO1xuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGU6IERFRkFVTFRfQ09ORklHVVJFRF9EQlhfRklSRUJBU0VfTE9HSU5fQlVUVE9OX1RFTVBMQVRFXG59KVxuZXhwb3J0IGNsYXNzIERieEZpcmViYXNlTG9naW5Hb29nbGVDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdENvbmZpZ3VyZWREYnhGaXJlYmFzZUxvZ2luQnV0dG9uRGlyZWN0aXZlIHtcblxuICByZWFkb25seSBsb2dpblByb3ZpZGVyID0gJ2dvb2dsZSc7XG5cbiAgaGFuZGxlTG9naW4oKTogUHJvbWlzZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5kYnhGaXJlYmFzZUF1dGhTZXJ2aWNlLmxvZ0luV2l0aEdvb2dsZSgpO1xuICB9XG5cbn1cbiJdfQ==
|