@sneat/auth-ui 0.6.1 → 0.8.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/esm2022/lib/components/user-auth-providers/user-auth-accounts.component.js +5 -4
- package/esm2022/lib/components/user-auth-providers/user-auth-accounts.component.js.map +1 -1
- package/esm2022/lib/pages/login-page/email-login-form/email-login-form.component.js +39 -41
- package/esm2022/lib/pages/login-page/email-login-form/email-login-form.component.js.map +1 -1
- package/esm2022/lib/pages/sign-in-from-email-link/sign-in-from-email-link-page.component.js +15 -13
- package/esm2022/lib/pages/sign-in-from-email-link/sign-in-from-email-link-page.component.js.map +1 -1
- package/lib/components/user-auth-providers/user-auth-accounts.component.d.ts +1 -1
- package/lib/pages/login-page/email-login-form/email-login-form.component.d.ts +10 -10
- package/lib/pages/sign-in-from-email-link/sign-in-from-email-link-page.component.d.ts +3 -3
- package/package.json +1 -1
- package/tsconfig.lib.prod.tsbuildinfo +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component, inject } from '@angular/core';
|
|
1
|
+
import { ChangeDetectionStrategy, Component, inject, signal, } from '@angular/core';
|
|
2
2
|
import { IonButton, IonCard, IonContent, IonHeader, IonIcon, IonInput, IonItem, IonLabel, IonTitle, IonToolbar, NavController, } from '@ionic/angular/standalone';
|
|
3
3
|
import { SneatAuthStateService } from '@sneat/auth-core';
|
|
4
4
|
import { ErrorLogger } from '@sneat/core';
|
|
@@ -8,35 +8,37 @@ export class SignInFromEmailLinkPageComponent {
|
|
|
8
8
|
this.errorLogger = inject(ErrorLogger);
|
|
9
9
|
this.authStateService = inject(SneatAuthStateService);
|
|
10
10
|
this.navController = inject(NavController);
|
|
11
|
-
this.
|
|
12
|
-
this.
|
|
13
|
-
this.
|
|
14
|
-
|
|
15
|
-
|
|
11
|
+
this.email = signal('', ...(ngDevMode ? [{ debugName: "email" }] : []));
|
|
12
|
+
this.emailFromStorage = signal(false, ...(ngDevMode ? [{ debugName: "emailFromStorage" }] : []));
|
|
13
|
+
this.isSigning = signal(false, ...(ngDevMode ? [{ debugName: "isSigning" }] : []));
|
|
14
|
+
const email = localStorage.getItem('emailForSignIn') || '';
|
|
15
|
+
this.email.set(email);
|
|
16
|
+
this.emailFromStorage.set(!!email);
|
|
17
|
+
if (email) {
|
|
16
18
|
this.signIn();
|
|
17
19
|
}
|
|
18
20
|
}
|
|
19
21
|
signIn() {
|
|
20
|
-
this.isSigning
|
|
21
|
-
this.authStateService.signInWithEmailLink(this.email).subscribe({
|
|
22
|
+
this.isSigning.set(true);
|
|
23
|
+
this.authStateService.signInWithEmailLink(this.email()).subscribe({
|
|
22
24
|
next: () => {
|
|
23
25
|
this.navController
|
|
24
26
|
.navigateRoot('/')
|
|
25
27
|
.catch(this.errorLogger.logErrorHandler('Failed to navigate to root page after signing in with email link'));
|
|
26
28
|
},
|
|
27
29
|
error: (err) => {
|
|
28
|
-
this.isSigning
|
|
29
|
-
this.emailFromStorage
|
|
30
|
+
this.isSigning.set(false);
|
|
31
|
+
this.emailFromStorage.set(false);
|
|
30
32
|
this.errorLogger.logError(err, 'Failed to sign in with email link');
|
|
31
33
|
},
|
|
32
34
|
});
|
|
33
35
|
}
|
|
34
36
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SignInFromEmailLinkPageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
35
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: SignInFromEmailLinkPageComponent, isStandalone: true, selector: "sneat-sign-in-from-email-link-page", ngImport: i0, template: "<ion-header>\n <ion-toolbar color=\"light\">\n <ion-title>Signing in with email link</ion-title>\n </ion-toolbar>\n</ion-header>\n<ion-content>\n <ion-card>\n @if (!emailFromStorage) {\n <p>\n Welcome to our app! For your safety please re-type your email address to\n sign-in.\n </p>\n }\n <ion-item>\n <ion-icon name=\"mail-outline\" slot=\"start\" />\n <ion-input\n label=\"Email\"\n [required]=\"true\"\n [readonly]=\"isSigning\"\n [value]=\"email\"\n [disabled]=\"emailFromStorage || isSigning\"\n />\n </ion-item>\n\n <ion-button [disabled]=\"isSigning\" (click)=\"signIn()\">\n <ion-label>\n @if (isSigning) {\n Signing in...\n } @else {\n Sign in\n }\n </ion-label>\n </ion-button>\n </ion-card>\n</ion-content>\n", dependencies: [{ kind: "component", type: IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonInput, selector: "ion-input", inputs: ["accept", "autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearOnEdit", "color", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "shape", "size", "spellcheck", "step", "type", "value"] }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }] }); }
|
|
37
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: SignInFromEmailLinkPageComponent, isStandalone: true, selector: "sneat-sign-in-from-email-link-page", ngImport: i0, template: "<ion-header>\n <ion-toolbar color=\"light\">\n <ion-title>Signing in with email link</ion-title>\n </ion-toolbar>\n</ion-header>\n<ion-content>\n <ion-card>\n @if (!emailFromStorage()) {\n <p>\n Welcome to our app! For your safety please re-type your email address to\n sign-in.\n </p>\n }\n <ion-item>\n <ion-icon name=\"mail-outline\" slot=\"start\" />\n <ion-input\n label=\"Email\"\n [required]=\"true\"\n [readonly]=\"isSigning()\"\n [value]=\"email()\"\n [disabled]=\"emailFromStorage() || isSigning()\"\n />\n </ion-item>\n\n <ion-button [disabled]=\"isSigning()\" (click)=\"signIn()\">\n <ion-label>\n @if (isSigning()) {\n Signing in...\n } @else {\n Sign in\n }\n </ion-label>\n </ion-button>\n </ion-card>\n</ion-content>\n", dependencies: [{ kind: "component", type: IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonInput, selector: "ion-input", inputs: ["accept", "autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearOnEdit", "color", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "shape", "size", "spellcheck", "step", "type", "value"] }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
36
38
|
}
|
|
37
39
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SignInFromEmailLinkPageComponent, decorators: [{
|
|
38
40
|
type: Component,
|
|
39
|
-
args: [{ selector: 'sneat-sign-in-from-email-link-page', imports: [
|
|
41
|
+
args: [{ selector: 'sneat-sign-in-from-email-link-page', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
40
42
|
IonHeader,
|
|
41
43
|
IonToolbar,
|
|
42
44
|
IonTitle,
|
|
@@ -47,6 +49,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
47
49
|
IonInput,
|
|
48
50
|
IonButton,
|
|
49
51
|
IonLabel,
|
|
50
|
-
], template: "<ion-header>\n <ion-toolbar color=\"light\">\n <ion-title>Signing in with email link</ion-title>\n </ion-toolbar>\n</ion-header>\n<ion-content>\n <ion-card>\n @if (!emailFromStorage) {\n <p>\n Welcome to our app! For your safety please re-type your email address to\n sign-in.\n </p>\n }\n <ion-item>\n <ion-icon name=\"mail-outline\" slot=\"start\" />\n <ion-input\n label=\"Email\"\n [required]=\"true\"\n [readonly]=\"isSigning\"\n [value]=\"email\"\n [disabled]=\"emailFromStorage || isSigning\"\n />\n </ion-item>\n\n <ion-button [disabled]=\"isSigning\" (click)=\"signIn()\">\n <ion-label>\n @if (isSigning) {\n Signing in...\n } @else {\n Sign in\n }\n </ion-label>\n </ion-button>\n </ion-card>\n</ion-content>\n" }]
|
|
52
|
+
], template: "<ion-header>\n <ion-toolbar color=\"light\">\n <ion-title>Signing in with email link</ion-title>\n </ion-toolbar>\n</ion-header>\n<ion-content>\n <ion-card>\n @if (!emailFromStorage()) {\n <p>\n Welcome to our app! For your safety please re-type your email address to\n sign-in.\n </p>\n }\n <ion-item>\n <ion-icon name=\"mail-outline\" slot=\"start\" />\n <ion-input\n label=\"Email\"\n [required]=\"true\"\n [readonly]=\"isSigning()\"\n [value]=\"email()\"\n [disabled]=\"emailFromStorage() || isSigning()\"\n />\n </ion-item>\n\n <ion-button [disabled]=\"isSigning()\" (click)=\"signIn()\">\n <ion-label>\n @if (isSigning()) {\n Signing in...\n } @else {\n Sign in\n }\n </ion-label>\n </ion-button>\n </ion-card>\n</ion-content>\n" }]
|
|
51
53
|
}], ctorParameters: () => [] });
|
|
52
54
|
//# sourceMappingURL=sign-in-from-email-link-page.component.js.map
|
package/esm2022/lib/pages/sign-in-from-email-link/sign-in-from-email-link-page.component.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sign-in-from-email-link-page.component.js","sourceRoot":"","sources":["../../../../../../../../libs/auth/ui/src/lib/pages/sign-in-from-email-link/sign-in-from-email-link-page.component.ts","../../../../../../../../libs/auth/ui/src/lib/pages/sign-in-from-email-link/sign-in-from-email-link-page.component.html"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"sign-in-from-email-link-page.component.js","sourceRoot":"","sources":["../../../../../../../../libs/auth/ui/src/lib/pages/sign-in-from-email-link/sign-in-from-email-link-page.component.ts","../../../../../../../../libs/auth/ui/src/lib/pages/sign-in-from-email-link/sign-in-from-email-link-page.component.html"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,SAAS,EACT,MAAM,EACN,MAAM,GACP,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,SAAS,EACT,OAAO,EACP,UAAU,EACV,SAAS,EACT,OAAO,EACP,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,aAAa,GACd,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAgB,MAAM,aAAa,CAAC;;AAmBxD,MAAM,OAAO,gCAAgC;IAS3C;QARiB,gBAAW,GAAG,MAAM,CAAe,WAAW,CAAC,CAAC;QAChD,qBAAgB,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;QACjD,kBAAa,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;QAEpC,UAAK,GAAG,MAAM,CAAC,EAAE,iDAAC,CAAC;QACnB,qBAAgB,GAAG,MAAM,CAAC,KAAK,4DAAC,CAAC;QACjC,cAAS,GAAG,MAAM,CAAC,KAAK,qDAAC,CAAC;QAG3C,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;QAC3D,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACtB,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,CAAC;IACH,CAAC;IAEM,MAAM;QACX,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACzB,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,SAAS,CAAC;YAChE,IAAI,EAAE,GAAG,EAAE;gBACT,IAAI,CAAC,aAAa;qBACf,YAAY,CAAC,GAAG,CAAC;qBACjB,KAAK,CACJ,IAAI,CAAC,WAAW,CAAC,eAAe,CAC9B,kEAAkE,CACnE,CACF,CAAC;YACN,CAAC;YACD,KAAK,EAAE,CAAC,GAAG,EAAE,EAAE;gBACb,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBAC1B,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACjC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,EAAE,mCAAmC,CAAC,CAAC;YACtE,CAAC;SACF,CAAC,CAAC;IACL,CAAC;8GApCU,gCAAgC;kGAAhC,gCAAgC,8FCvC7C,o3BAmCA,4CDRI,SAAS,oGACT,UAAU,mFACV,QAAQ,iFACR,UAAU,wKACV,OAAO,yLACP,OAAO,0NACP,OAAO,2JACP,QAAQ,8eACR,SAAS,oPACT,QAAQ;;2FAGC,gCAAgC;kBAjB5C,SAAS;+BACE,oCAAoC,mBAE7B,uBAAuB,CAAC,MAAM,WACtC;wBACP,SAAS;wBACT,UAAU;wBACV,QAAQ;wBACR,UAAU;wBACV,OAAO;wBACP,OAAO;wBACP,OAAO;wBACP,QAAQ;wBACR,SAAS;wBACT,QAAQ;qBACT","sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n inject,\n signal,\n} from '@angular/core';\nimport {\n IonButton,\n IonCard,\n IonContent,\n IonHeader,\n IonIcon,\n IonInput,\n IonItem,\n IonLabel,\n IonTitle,\n IonToolbar,\n NavController,\n} from '@ionic/angular/standalone';\nimport { SneatAuthStateService } from '@sneat/auth-core';\nimport { ErrorLogger, IErrorLogger } from '@sneat/core';\n\n@Component({\n selector: 'sneat-sign-in-from-email-link-page',\n templateUrl: 'sign-in-from-email-link-page.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n IonHeader,\n IonToolbar,\n IonTitle,\n IonContent,\n IonCard,\n IonItem,\n IonIcon,\n IonInput,\n IonButton,\n IonLabel,\n ],\n})\nexport class SignInFromEmailLinkPageComponent {\n private readonly errorLogger = inject<IErrorLogger>(ErrorLogger);\n private readonly authStateService = inject(SneatAuthStateService);\n private readonly navController = inject(NavController);\n\n protected readonly email = signal('');\n protected readonly emailFromStorage = signal(false);\n protected readonly isSigning = signal(false);\n\n constructor() {\n const email = localStorage.getItem('emailForSignIn') || '';\n this.email.set(email);\n this.emailFromStorage.set(!!email);\n if (email) {\n this.signIn();\n }\n }\n\n public signIn(): void {\n this.isSigning.set(true);\n this.authStateService.signInWithEmailLink(this.email()).subscribe({\n next: () => {\n this.navController\n .navigateRoot('/')\n .catch(\n this.errorLogger.logErrorHandler(\n 'Failed to navigate to root page after signing in with email link',\n ),\n );\n },\n error: (err) => {\n this.isSigning.set(false);\n this.emailFromStorage.set(false);\n this.errorLogger.logError(err, 'Failed to sign in with email link');\n },\n });\n }\n}\n","<ion-header>\n <ion-toolbar color=\"light\">\n <ion-title>Signing in with email link</ion-title>\n </ion-toolbar>\n</ion-header>\n<ion-content>\n <ion-card>\n @if (!emailFromStorage()) {\n <p>\n Welcome to our app! For your safety please re-type your email address to\n sign-in.\n </p>\n }\n <ion-item>\n <ion-icon name=\"mail-outline\" slot=\"start\" />\n <ion-input\n label=\"Email\"\n [required]=\"true\"\n [readonly]=\"isSigning()\"\n [value]=\"email()\"\n [disabled]=\"emailFromStorage() || isSigning()\"\n />\n </ion-item>\n\n <ion-button [disabled]=\"isSigning()\" (click)=\"signIn()\">\n <ion-label>\n @if (isSigning()) {\n Signing in...\n } @else {\n Sign in\n }\n </ion-label>\n </ion-button>\n </ion-card>\n</ion-content>\n"]}
|
|
@@ -10,7 +10,7 @@ export declare class UserAuthAccountsComponent extends SneatBaseComponent {
|
|
|
10
10
|
constructor();
|
|
11
11
|
protected hasAccount(provider: 'telegram' | 'viber' | 'whatsapp'): boolean;
|
|
12
12
|
protected getAccountID(provider: 'telegram'): string;
|
|
13
|
-
protected disconnecting
|
|
13
|
+
protected readonly disconnecting: import("@angular/core").WritableSignal<"telegram" | "viber" | "whatsapp" | undefined>;
|
|
14
14
|
protected disconnect(provider: 'telegram'): void;
|
|
15
15
|
static ɵfac: i0.ɵɵFactoryDeclaration<UserAuthAccountsComponent, never>;
|
|
16
16
|
static ɵcmp: i0.ɵɵComponentDeclaration<UserAuthAccountsComponent, "sneat-user-auth-accounts", never, {}, {}, never, never, true, never>;
|
|
@@ -14,18 +14,18 @@ export declare class EmailLoginFormComponent {
|
|
|
14
14
|
private readonly randomIdService;
|
|
15
15
|
private readonly sneatApiService;
|
|
16
16
|
private readonly userRecordService;
|
|
17
|
-
protected sign:
|
|
18
|
-
protected email: string
|
|
19
|
-
protected password: string
|
|
20
|
-
protected firstName: string
|
|
21
|
-
protected lastName: string
|
|
22
|
-
protected spaceTitle: string
|
|
23
|
-
protected wrongPassword: boolean
|
|
24
|
-
protected signingWith
|
|
17
|
+
protected readonly sign: import("@angular/core").WritableSignal<"in" | "up">;
|
|
18
|
+
protected readonly email: import("@angular/core").WritableSignal<string>;
|
|
19
|
+
protected readonly password: import("@angular/core").WritableSignal<string>;
|
|
20
|
+
protected readonly firstName: import("@angular/core").WritableSignal<string>;
|
|
21
|
+
protected readonly lastName: import("@angular/core").WritableSignal<string>;
|
|
22
|
+
protected readonly spaceTitle: import("@angular/core").WritableSignal<string>;
|
|
23
|
+
protected readonly wrongPassword: import("@angular/core").WritableSignal<boolean>;
|
|
24
|
+
protected readonly signingWith: import("@angular/core").WritableSignal<EmailFormSigningWith | undefined>;
|
|
25
25
|
readonly signingWithChange: EventEmitter<EmailFormSigningWith | undefined>;
|
|
26
26
|
readonly loggedIn: EventEmitter<UserCredential>;
|
|
27
|
-
emailInput
|
|
28
|
-
spaceTitleInput
|
|
27
|
+
protected readonly emailInput: import("@angular/core").Signal<IonInput | undefined>;
|
|
28
|
+
protected readonly spaceTitleInput: import("@angular/core").Signal<IonInput | undefined>;
|
|
29
29
|
readonly setFocusToInput: (input?: IonInput | import("@ionic/angular/standalone").IonTextarea, delay?: number) => void;
|
|
30
30
|
constructor();
|
|
31
31
|
get validEmail(): boolean;
|
|
@@ -3,9 +3,9 @@ export declare class SignInFromEmailLinkPageComponent {
|
|
|
3
3
|
private readonly errorLogger;
|
|
4
4
|
private readonly authStateService;
|
|
5
5
|
private readonly navController;
|
|
6
|
-
email: string
|
|
7
|
-
emailFromStorage: boolean
|
|
8
|
-
isSigning: boolean
|
|
6
|
+
protected readonly email: import("@angular/core").WritableSignal<string>;
|
|
7
|
+
protected readonly emailFromStorage: import("@angular/core").WritableSignal<boolean>;
|
|
8
|
+
protected readonly isSigning: import("@angular/core").WritableSignal<boolean>;
|
|
9
9
|
constructor();
|
|
10
10
|
signIn(): void;
|
|
11
11
|
static ɵfac: i0.ɵɵFactoryDeclaration<SignInFromEmailLinkPageComponent, never>;
|