@bitblit/ngx-acute-warden 5.0.545-alpha → 5.0.546-alpha
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/lib/components/create-user/create-user.component.d.ts +0 -1
- package/lib/components/create-user/create-user.component.js +1 -4
- package/lib/components/create-user/create-user.component.js.map +1 -1
- package/lib/components/login/login.component.d.ts +4 -7
- package/lib/components/login/login.component.js +22 -37
- package/lib/components/login/login.component.js.map +1 -1
- package/lib/components/user-profile/user-profile.component.d.ts +17 -4
- package/lib/components/user-profile/user-profile.component.js +156 -42
- package/lib/components/user-profile/user-profile.component.js.map +1 -1
- package/lib/services/warden-adapter-service-config.d.ts +3 -0
- package/lib/services/warden-adapter-service-config.js +2 -0
- package/lib/services/warden-adapter-service-config.js.map +1 -0
- package/lib/services/warden-adapter.service.d.ts +5 -1
- package/lib/services/warden-adapter.service.js +25 -3
- package/lib/services/warden-adapter.service.js.map +1 -1
- package/package.json +8 -8
|
@@ -14,7 +14,6 @@ export declare class CreateUserComponent implements OnInit {
|
|
|
14
14
|
userContactTypes: string[];
|
|
15
15
|
constructor(route: ActivatedRoute, router: Router, wardenClient: WardenClient, fb: FormBuilder, dlgService: DialogService);
|
|
16
16
|
f(name: string): AbstractControl;
|
|
17
|
-
go(): void;
|
|
18
17
|
ngOnInit(): void;
|
|
19
18
|
createUser(): Promise<void>;
|
|
20
19
|
static ɵfac: i0.ɵɵFactoryDeclaration<CreateUserComponent, never>;
|
|
@@ -88,7 +88,7 @@ export class CreateUserComponent {
|
|
|
88
88
|
fb;
|
|
89
89
|
dlgService;
|
|
90
90
|
form;
|
|
91
|
-
userContactTypes =
|
|
91
|
+
userContactTypes = EnumRatchet.listEnumKeys(WardenContactType);
|
|
92
92
|
constructor(route, router, wardenClient, fb, dlgService) {
|
|
93
93
|
this.route = route;
|
|
94
94
|
this.router = router;
|
|
@@ -104,9 +104,6 @@ export class CreateUserComponent {
|
|
|
104
104
|
f(name) {
|
|
105
105
|
return this.form.controls[name];
|
|
106
106
|
}
|
|
107
|
-
go() {
|
|
108
|
-
Logger.info('Errors: %j : %j : %j', this.form.errors, this.f('userContactValue').errors, this.f('userContactValue').dirty);
|
|
109
|
-
}
|
|
110
107
|
ngOnInit() {
|
|
111
108
|
Logger.info('ngi: %j', this.route.queryParamMap);
|
|
112
109
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-user.component.js","sourceRoot":"","sources":["../../../src/components/create-user/create-user.component.ts","../../../src/components/create-user/create-user.component.html"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAS,MAAM,eAAe,CAAC;AAChD,OAAO,EAAC,cAAc,EAAE,MAAM,EAAE,YAAY,EAAC,MAAM,iBAAiB,CAAC;AAErE,OAAO,EAAC,MAAM,EAAC,MAAM,uCAAuC,CAAC;AAC7D,OAAO,EAAC,YAAY,EAAC,MAAM,qDAAqD,CAAC;AACjF,OAAO,EAAC,EAAE,EAAC,MAAM,iCAAiC,CAAC;AACnD,OAAO,EAAC,aAAa,EAAC,MAAM,6CAA6C,CAAC;AAC1E,OAAO,EAAkB,WAAW,EAAa,WAAW,EAAE,mBAAmB,EAAE,UAAU,EAAC,MAAM,gBAAgB,CAAC;AACrH,OAAO,EAAC,iBAAiB,EAAC,MAAM,iEAAiE,CAAC;AAClG,OAAO,EAAC,WAAW,EAAC,MAAM,2CAA2C,CAAC;AACtE,OAAO,EAAC,cAAc,EAAC,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAC,YAAY,EAAC,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAC;AACxC,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAC,cAAc,EAAC,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAC,cAAc,EAAC,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAC,aAAa,EAAC,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;;;;;;;;;;;;;ICHhC,gCAA2E;IAAA,mCAAmB;IAAA,iBAAO;;;IACrG,gCAAwE;IAAA,kDAAkC;IAAA,iBAAO;;;IAFrH,6BAAkD;IAE9C,AADA,uFAA2E,0EACH;;;;;;IAD/C,cAAgD;IAAhD,2GAAgD;IAChD,cAA6C;IAA7C,wGAA6C;;;IAOtE,gCAAuE;IAAA,qCAAqB;IAAA,iBAAO;;;IACnG,gCAAwE;IAAA,0CAA0B;IAAA,iBAAO;;;IACzG,gCAAwE;IAAA,2CAA2B;IAAA,iBAAO;;;IAH9G,6BAA8C;IAG1C,AADA,AADA,uFAAuE,0EACC,0EACA;;;;;;;IAF/C,cAA4C;IAA5C,uGAA4C;IAC5C,cAA6C;IAA7C,wGAA6C;IAC7C,cAA6C;IAA7C,wGAA6C;;ADC1F,MAAM,OAAO,mBAAmB;
|
|
1
|
+
{"version":3,"file":"create-user.component.js","sourceRoot":"","sources":["../../../src/components/create-user/create-user.component.ts","../../../src/components/create-user/create-user.component.html"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import { OnInit } from
|
|
1
|
+
import { OnInit } from "@angular/core";
|
|
2
2
|
import { ActivatedRoute, Router } from '@angular/router';
|
|
3
3
|
import { WardenClient } from "@bitblit/ratchet-warden-common/client/warden-client";
|
|
4
4
|
import { WardenUserService } from "@bitblit/ratchet-warden-common/client/warden-user-service";
|
|
5
5
|
import { WardenContact } from "@bitblit/ratchet-warden-common/common/model/warden-contact";
|
|
6
6
|
import { WardenRecentLoginDescriptor } from "@bitblit/ratchet-warden-common/client/provider/warden-recent-login-descriptor";
|
|
7
|
-
import { WindowRefService } from "@bitblit/ngx-acute-common";
|
|
8
7
|
import { DialogService } from "primeng/dynamicdialog";
|
|
9
8
|
import * as i0 from "@angular/core";
|
|
10
9
|
export declare class LoginComponent implements OnInit {
|
|
@@ -12,28 +11,26 @@ export declare class LoginComponent implements OnInit {
|
|
|
12
11
|
private router;
|
|
13
12
|
userService: WardenUserService<any>;
|
|
14
13
|
wardenClient: WardenClient;
|
|
15
|
-
private win;
|
|
16
14
|
private dlgService;
|
|
15
|
+
postLoginUrl: string;
|
|
17
16
|
showCodeCard: boolean;
|
|
18
17
|
verificationCode: string;
|
|
19
18
|
waitingContact: WardenContact;
|
|
20
19
|
newContactValue: string;
|
|
21
|
-
constructor(route: ActivatedRoute, router: Router, userService: WardenUserService<any>, wardenClient: WardenClient,
|
|
20
|
+
constructor(route: ActivatedRoute, router: Router, userService: WardenUserService<any>, wardenClient: WardenClient, dlgService: DialogService);
|
|
22
21
|
userById(index: number, ld: WardenRecentLoginDescriptor): string;
|
|
23
22
|
contactByName(index: number, contact: WardenContact): string;
|
|
24
23
|
get hasRecentLogins(): boolean;
|
|
25
24
|
get recentLogins(): WardenRecentLoginDescriptor[];
|
|
26
25
|
clearSavedLogins(): void;
|
|
27
26
|
ngOnInit(): void;
|
|
28
|
-
goToDashboard(): void;
|
|
29
27
|
sendCodeToNewContact(value: string): Promise<void>;
|
|
30
28
|
sendCodeToContact(contact: WardenContact): Promise<void>;
|
|
31
29
|
submitVerificationCode(input: string, verificationCode: string): Promise<void>;
|
|
32
30
|
processWebAuthnLogin(userId: string): Promise<void>;
|
|
33
|
-
sendMagicLink(contact: WardenContact): Promise<void>;
|
|
34
31
|
removeSingleLogin(userId: string): void;
|
|
35
32
|
toggleCard(clearCode: boolean): void;
|
|
36
33
|
contactValueInvalidAndDirty(): boolean;
|
|
37
34
|
static ɵfac: i0.ɵɵFactoryDeclaration<LoginComponent, never>;
|
|
38
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<LoginComponent, "ngx-acute-warden-login", never, {}, {}, never, never, true, never>;
|
|
35
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<LoginComponent, "ngx-acute-warden-login", never, { "postLoginUrl": { "alias": "postLoginUrl"; "required": false; }; }, {}, never, never, true, never>;
|
|
39
36
|
}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import { Component } from
|
|
1
|
+
import { Component, Input } from "@angular/core";
|
|
2
2
|
import { ActivatedRoute, Router, RouterModule } from '@angular/router';
|
|
3
3
|
import { Logger } from '@bitblit/ratchet-common/logger/logger';
|
|
4
4
|
import { WardenClient } from "@bitblit/ratchet-warden-common/client/warden-client";
|
|
5
5
|
import { WardenUserService } from "@bitblit/ratchet-warden-common/client/warden-user-service";
|
|
6
|
-
import { No } from "@bitblit/ratchet-common/lang/no";
|
|
7
6
|
import { StringRatchet } from "@bitblit/ratchet-common/lang/string-ratchet";
|
|
8
7
|
import { WardenUtils } from "@bitblit/ratchet-warden-common/common/util/warden-utils";
|
|
9
8
|
import { WardenContactType } from "@bitblit/ratchet-warden-common/common/model/warden-contact-type";
|
|
@@ -13,22 +12,22 @@ import { CommonModule } from "@angular/common";
|
|
|
13
12
|
import { CardModule } from "primeng/card";
|
|
14
13
|
import { TooltipModule } from "primeng/tooltip";
|
|
15
14
|
import { FieldsetModule } from "primeng/fieldset";
|
|
16
|
-
import { AlertComponent
|
|
15
|
+
import { AlertComponent } from "@bitblit/ngx-acute-common";
|
|
17
16
|
import { DialogService } from "primeng/dynamicdialog";
|
|
18
17
|
import { InputTextModule } from "primeng/inputtext";
|
|
18
|
+
import { RequireRatchet } from "@bitblit/ratchet-common/lang/require-ratchet";
|
|
19
19
|
import * as i0 from "@angular/core";
|
|
20
20
|
import * as i1 from "@angular/router";
|
|
21
21
|
import * as i2 from "@bitblit/ratchet-warden-common/client/warden-user-service";
|
|
22
22
|
import * as i3 from "@bitblit/ratchet-warden-common/client/warden-client";
|
|
23
|
-
import * as i4 from "
|
|
24
|
-
import * as i5 from "primeng/
|
|
25
|
-
import * as i6 from "
|
|
26
|
-
import * as i7 from "@angular/
|
|
27
|
-
import * as i8 from "
|
|
28
|
-
import * as i9 from "primeng/
|
|
29
|
-
import * as i10 from "primeng/
|
|
30
|
-
import * as i11 from "primeng/
|
|
31
|
-
import * as i12 from "primeng/inputtext";
|
|
23
|
+
import * as i4 from "primeng/dynamicdialog";
|
|
24
|
+
import * as i5 from "primeng/button";
|
|
25
|
+
import * as i6 from "@angular/forms";
|
|
26
|
+
import * as i7 from "@angular/common";
|
|
27
|
+
import * as i8 from "primeng/card";
|
|
28
|
+
import * as i9 from "primeng/tooltip";
|
|
29
|
+
import * as i10 from "primeng/fieldset";
|
|
30
|
+
import * as i11 from "primeng/inputtext";
|
|
32
31
|
function LoginComponent_p_card_2_span_6_Template(rf, ctx) { if (rf & 1) {
|
|
33
32
|
i0.ɵɵelementStart(0, "span", 12);
|
|
34
33
|
i0.ɵɵtext(1, "Valid email or phone number required");
|
|
@@ -160,18 +159,17 @@ export class LoginComponent {
|
|
|
160
159
|
router;
|
|
161
160
|
userService;
|
|
162
161
|
wardenClient;
|
|
163
|
-
win;
|
|
164
162
|
dlgService;
|
|
163
|
+
postLoginUrl;
|
|
165
164
|
showCodeCard = false;
|
|
166
165
|
verificationCode;
|
|
167
166
|
waitingContact;
|
|
168
167
|
newContactValue;
|
|
169
|
-
constructor(route, router, userService, wardenClient,
|
|
168
|
+
constructor(route, router, userService, wardenClient, dlgService) {
|
|
170
169
|
this.route = route;
|
|
171
170
|
this.router = router;
|
|
172
171
|
this.userService = userService;
|
|
173
172
|
this.wardenClient = wardenClient;
|
|
174
|
-
this.win = win;
|
|
175
173
|
this.dlgService = dlgService;
|
|
176
174
|
Logger.info('Found %s recent logins', this.recentLogins.length);
|
|
177
175
|
}
|
|
@@ -193,10 +191,7 @@ export class LoginComponent {
|
|
|
193
191
|
}
|
|
194
192
|
}
|
|
195
193
|
ngOnInit() {
|
|
196
|
-
|
|
197
|
-
}
|
|
198
|
-
goToDashboard() {
|
|
199
|
-
this.router.navigate(['/secure/dashboard']).then(No.op);
|
|
194
|
+
RequireRatchet.notNullUndefinedOrOnlyWhitespaceString(this.postLoginUrl, 'postLoginUrl may not be empty');
|
|
200
195
|
}
|
|
201
196
|
async sendCodeToNewContact(value) {
|
|
202
197
|
Logger.info('Trying to send code to %s %s %s', value, WardenUtils.stringIsEmailAddress(value), WardenUtils.stringIsPhoneNumber(value));
|
|
@@ -242,28 +237,16 @@ export class LoginComponent {
|
|
|
242
237
|
Logger.info('Submit: %s, %s', input, verificationCode);
|
|
243
238
|
const val = await this.userService.executeValidationTokenBasedLogin({ type: WardenUtils.stringToContactType(input), value: input }, verificationCode);
|
|
244
239
|
if (val) {
|
|
245
|
-
await this.router.navigate([
|
|
240
|
+
await this.router.navigate([this.postLoginUrl]);
|
|
246
241
|
}
|
|
247
242
|
}
|
|
248
243
|
async processWebAuthnLogin(userId) {
|
|
249
244
|
Logger.info('processWebAuthnLogin: %s', userId);
|
|
250
245
|
const val = await this.userService.executeWebAuthnBasedLogin(userId);
|
|
251
246
|
if (val) {
|
|
252
|
-
await this.router.navigate([
|
|
247
|
+
await this.router.navigate([this.postLoginUrl]);
|
|
253
248
|
}
|
|
254
249
|
}
|
|
255
|
-
async sendMagicLink(contact) {
|
|
256
|
-
const loc = this.win.nativeWindow().location;
|
|
257
|
-
let curUrl = loc.toString();
|
|
258
|
-
curUrl = curUrl.indexOf('?') > -1 ? curUrl.substring(0, curUrl.indexOf('?')) : curUrl;
|
|
259
|
-
let landingUrl = curUrl.split('public/login').join('public/magic-lander');
|
|
260
|
-
landingUrl += '?code={CODE}&meta={META}';
|
|
261
|
-
const meta = {
|
|
262
|
-
redirect: '/secure/dashboard',
|
|
263
|
-
};
|
|
264
|
-
const sent = await this.wardenClient.sendMagicLink(contact, landingUrl, meta);
|
|
265
|
-
Logger.info('Sent was %s : %s', sent, landingUrl);
|
|
266
|
-
}
|
|
267
250
|
removeSingleLogin(userId) {
|
|
268
251
|
this.userService.serviceOptions.recentLoginProvider.removeUser(userId);
|
|
269
252
|
}
|
|
@@ -276,8 +259,8 @@ export class LoginComponent {
|
|
|
276
259
|
contactValueInvalidAndDirty() {
|
|
277
260
|
return StringRatchet.trimToNull(this.newContactValue) && !WardenUtils.stringIsPhoneNumber(this.newContactValue);
|
|
278
261
|
}
|
|
279
|
-
static ɵfac = function LoginComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || LoginComponent)(i0.ɵɵdirectiveInject(i1.ActivatedRoute), i0.ɵɵdirectiveInject(i1.Router), i0.ɵɵdirectiveInject(i2.WardenUserService), i0.ɵɵdirectiveInject(i3.WardenClient), i0.ɵɵdirectiveInject(i4.
|
|
280
|
-
static ɵcmp = i0.ɵɵdefineComponent({ type: LoginComponent, selectors: [["ngx-acute-warden-login"]], standalone: true, features: [i0.ɵɵStandaloneFeature], decls: 4, vars: 2, consts: [[2, "display", "flex", "flex-direction", "column", "justify-content", "center"], [2, "display", "flex", "flex-direction", "row", "justify-content", "center"], ["header", "ParaTrade", 4, "ngIf"], ["header", "ParaTrade Authorization Code", 4, "ngIf"], ["header", "ParaTrade"], ["legend", "New Login"], [2, "display", "flex", "flex-direction", "row", "justify-content", "space-between", "gap", "5px"], ["id", "newContactValue", "pInputText", "", "placeholder", "Your Email or Phone", "type", "text", 1, "p-inputtext", "rounded-input", 2, "width", "100%", 3, "ngModelChange", "ngModel"], ["icon", "pi pi-envelope", "pTooltip", "Send code", 3, "click"], ["style", "color:red", 4, "ngIf"], [4, "ngIf"], ["legend", "Previous Logins", 4, "ngIf"], [2, "color", "red"], ["legend", "Previous Logins"], [4, "ngFor", "ngForOf", "ngForTrackBy"], ["pButton", "", "icon", "pi pi-ban", "label", "Clear Saved Logins", 2, "margin-top", "10px", 3, "click"], [3, "legend"], ["icon", "pi pi-lock-open", "pTooltip", "Send WebAuthn", "label", "Authenticate by device (WebAuthn)", 3, "click", 4, "ngIf"], ["style", "display: flex; flex-direction: row; gap: 5px", 4, "ngFor", "ngForOf", "ngForTrackBy"], ["icon", "pi pi-lock-open", "pTooltip", "Send WebAuthn", "label", "Authenticate by device (WebAuthn)", 3, "click"], [2, "display", "flex", "flex-direction", "row", "gap", "5px"], ["icon", "pi pi-sign-in", 3, "label", "click", 4, "ngIf"], ["icon", "pi pi-delete-left", 3, "click", "label"], ["icon", "pi pi-sign-in", 3, "click", "label"], ["header", "ParaTrade Authorization Code"], ["legend", "Email"], [2, "display", "flex", "flex-direction", "column", "min-width", "100%", "justify-content", "center", "align-items", "center", "gap", "10px"], [2, "font-weight", "bolder"], ["type", "hidden", "id", "waitingContactValue", "readonly", "true", 1, "p-inputtext", "rounded-input", 3, "ngModelChange", "ngModel"], ["type", "text", "id", "verificationCode", "placeholder", "Enter the code from your email", 1, "p-inputtext", "rounded-input", 2, "width", "100%", 3, "ngModelChange", "ngModel"], ["label", "Submit code", 3, "click"], ["label", "Cancel", 3, "click"]], template: function LoginComponent_Template(rf, ctx) { if (rf & 1) {
|
|
262
|
+
static ɵfac = function LoginComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || LoginComponent)(i0.ɵɵdirectiveInject(i1.ActivatedRoute), i0.ɵɵdirectiveInject(i1.Router), i0.ɵɵdirectiveInject(i2.WardenUserService), i0.ɵɵdirectiveInject(i3.WardenClient), i0.ɵɵdirectiveInject(i4.DialogService)); };
|
|
263
|
+
static ɵcmp = i0.ɵɵdefineComponent({ type: LoginComponent, selectors: [["ngx-acute-warden-login"]], inputs: { postLoginUrl: "postLoginUrl" }, standalone: true, features: [i0.ɵɵStandaloneFeature], decls: 4, vars: 2, consts: [[2, "display", "flex", "flex-direction", "column", "justify-content", "center"], [2, "display", "flex", "flex-direction", "row", "justify-content", "center"], ["header", "ParaTrade", 4, "ngIf"], ["header", "ParaTrade Authorization Code", 4, "ngIf"], ["header", "ParaTrade"], ["legend", "New Login"], [2, "display", "flex", "flex-direction", "row", "justify-content", "space-between", "gap", "5px"], ["id", "newContactValue", "pInputText", "", "placeholder", "Your Email or Phone", "type", "text", 1, "p-inputtext", "rounded-input", 2, "width", "100%", 3, "ngModelChange", "ngModel"], ["icon", "pi pi-envelope", "pTooltip", "Send code", 3, "click"], ["style", "color:red", 4, "ngIf"], [4, "ngIf"], ["legend", "Previous Logins", 4, "ngIf"], [2, "color", "red"], ["legend", "Previous Logins"], [4, "ngFor", "ngForOf", "ngForTrackBy"], ["pButton", "", "icon", "pi pi-ban", "label", "Clear Saved Logins", 2, "margin-top", "10px", 3, "click"], [3, "legend"], ["icon", "pi pi-lock-open", "pTooltip", "Send WebAuthn", "label", "Authenticate by device (WebAuthn)", 3, "click", 4, "ngIf"], ["style", "display: flex; flex-direction: row; gap: 5px", 4, "ngFor", "ngForOf", "ngForTrackBy"], ["icon", "pi pi-lock-open", "pTooltip", "Send WebAuthn", "label", "Authenticate by device (WebAuthn)", 3, "click"], [2, "display", "flex", "flex-direction", "row", "gap", "5px"], ["icon", "pi pi-sign-in", 3, "label", "click", 4, "ngIf"], ["icon", "pi pi-delete-left", 3, "click", "label"], ["icon", "pi pi-sign-in", 3, "click", "label"], ["header", "ParaTrade Authorization Code"], ["legend", "Email"], [2, "display", "flex", "flex-direction", "column", "min-width", "100%", "justify-content", "center", "align-items", "center", "gap", "10px"], [2, "font-weight", "bolder"], ["type", "hidden", "id", "waitingContactValue", "readonly", "true", 1, "p-inputtext", "rounded-input", 3, "ngModelChange", "ngModel"], ["type", "text", "id", "verificationCode", "placeholder", "Enter the code from your email", 1, "p-inputtext", "rounded-input", 2, "width", "100%", 3, "ngModelChange", "ngModel"], ["label", "Submit code", 3, "click"], ["label", "Cancel", 3, "click"]], template: function LoginComponent_Template(rf, ctx) { if (rf & 1) {
|
|
281
264
|
i0.ɵɵelementStart(0, "div", 0)(1, "div", 1);
|
|
282
265
|
i0.ɵɵtemplate(2, LoginComponent_p_card_2_Template, 9, 4, "p-card", 2)(3, LoginComponent_p_card_3_Template, 12, 3, "p-card", 3);
|
|
283
266
|
i0.ɵɵelementEnd()();
|
|
@@ -286,11 +269,13 @@ export class LoginComponent {
|
|
|
286
269
|
i0.ɵɵproperty("ngIf", !ctx.showCodeCard);
|
|
287
270
|
i0.ɵɵadvance();
|
|
288
271
|
i0.ɵɵproperty("ngIf", ctx.showCodeCard);
|
|
289
|
-
} }, dependencies: [ButtonModule,
|
|
272
|
+
} }, dependencies: [ButtonModule, i5.ButtonDirective, i5.Button, RouterModule, FormsModule, i6.DefaultValueAccessor, i6.NgControlStatus, i6.NgModel, CommonModule, i7.NgForOf, i7.NgIf, CardModule, i8.Card, TooltipModule, i9.Tooltip, FieldsetModule, i10.Fieldset, InputTextModule, i11.InputText], encapsulation: 2 });
|
|
290
273
|
}
|
|
291
274
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(LoginComponent, [{
|
|
292
275
|
type: Component,
|
|
293
276
|
args: [{ selector: 'ngx-acute-warden-login', standalone: true, imports: [ButtonModule, RouterModule, FormsModule, CommonModule, CardModule, TooltipModule, ButtonModule, FieldsetModule, InputTextModule], template: "<div style=\"display: flex; flex-direction: column; justify-content: center\">\n <div style=\"display: flex; flex-direction: row; justify-content: center\">\n\n <p-card *ngIf=\"!showCodeCard\" header=\"ParaTrade\">\n <div>\n <p-fieldset legend=\"New Login\">\n <div style=\"display: flex; flex-direction: row; justify-content: space-between; gap: 5px\">\n <input class=\"p-inputtext rounded-input\" [(ngModel)]=\"newContactValue\" id=\"newContactValue\"\n pInputText style=\"width: 100%\"\n placeholder=\"Your Email or Phone\" type=\"text\">\n <p-button icon=\"pi pi-envelope\" (click)=\"sendCodeToNewContact(newContactValue)\"\n pTooltip=\"Send code\">\n </p-button>\n </div>\n <span *ngIf=\"contactValueInvalidAndDirty()\" style=\"color:red\">Valid email or phone number required</span>\n </p-fieldset>\n\n <hr *ngIf=\"hasRecentLogins\" />\n\n <p-fieldset *ngIf=\"hasRecentLogins\" legend=\"Previous Logins\">\n <div *ngFor=\"let lg of recentLogins; trackBy:userById\">\n\n <p-fieldset [legend]=\"lg.user.userLabel\">\n\n\n <p-button *ngIf=\"lg?.user?.webAuthnAuthenticatorSummaries?.length\" icon=\"pi pi-lock-open\"\n (click)=\"processWebAuthnLogin(lg.user.userId)\" pTooltip=\"Send WebAuthn\" label=\"Authenticate by device (WebAuthn)\">\n </p-button>\n\n <div *ngFor=\"let e of lg.user.contactMethods; trackBy:contactByName\" style=\"display: flex; flex-direction: row; gap: 5px\">\n\n <p-button *ngIf=\"e.type==='EmailAddress'\" icon=\"pi pi-sign-in\"\n (click)=\"sendCodeToContact(e)\" label=\"Send magic link via email to {{e.value}}\"></p-button>\n <p-button *ngIf=\"e.type==='TextCapablePhoneNumber'\" icon=\"pi pi-sign-in\"\n (click)=\"sendCodeToContact(e)\" label=\"Send magic link via text message to {{e.value}}\"></p-button>\n <p-button icon=\"pi pi-delete-left\"\n (click)=\"removeSingleLogin(lg.user.userId)\" label=\"Forget {{e.value}}\"></p-button>\n </div>\n </p-fieldset>\n </div>\n\n <hr/>\n <button pButton icon=\"pi pi-ban\" label=\"Clear Saved Logins\" (click)=\"clearSavedLogins()\" style=\"margin-top: 10px\"></button>\n\n </p-fieldset>\n\n\n </div>\n </p-card>\n\n <p-card *ngIf=\"showCodeCard\" header=\"ParaTrade Authorization Code\">\n\n <p-fieldset legend=\"Email\">\n <div style=\"display: flex; flex-direction: column; min-width: 100%; justify-content: center; align-items: center; gap: 10px\">\n <div>Code sent to <span style=\"font-weight: bolder\">{{waitingContact.value}}</span></div>\n <input type=\"hidden\" class=\"p-inputtext rounded-input\" [(ngModel)]=\"waitingContact.value\" id=\"waitingContactValue\" readonly=\"true\">\n <input class=\"p-inputtext rounded-input\" [(ngModel)]=\"verificationCode\" type=\"text\" id=\"verificationCode\"\n placeholder=\"Enter the code from your email\" style=\"width: 100%\">\n\n <div style=\"display: flex; flex-direction: row; justify-content: space-between; gap: 5px\">\n <p-button (click)=\"submitVerificationCode(waitingContact.value, verificationCode)\"\n label=\"Submit code\">\n </p-button>\n\n <p-button (click)=\"toggleCard(true)\" label=\"Cancel\"></p-button>\n\n </div>\n </div>\n </p-fieldset>\n\n </p-card>\n\n\n </div>\n</div>\n\n" }]
|
|
294
|
-
}], () => [{ type: i1.ActivatedRoute }, { type: i1.Router }, { type: i2.WardenUserService }, { type: i3.WardenClient }, { type: i4.
|
|
277
|
+
}], () => [{ type: i1.ActivatedRoute }, { type: i1.Router }, { type: i2.WardenUserService }, { type: i3.WardenClient }, { type: i4.DialogService }], { postLoginUrl: [{
|
|
278
|
+
type: Input
|
|
279
|
+
}] }); })();
|
|
295
280
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(LoginComponent, { className: "LoginComponent", filePath: "components/login/login.component.ts", lineNumber: 33 }); })();
|
|
296
281
|
//# sourceMappingURL=login.component.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.component.js","sourceRoot":"","sources":["../../../src/components/login/login.component.ts","../../../src/components/login/login.component.html"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"login.component.js","sourceRoot":"","sources":["../../../src/components/login/login.component.ts","../../../src/components/login/login.component.html"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAU,MAAM,eAAe,CAAC;AACzD,OAAO,EAAC,cAAc,EAAE,MAAM,EAAE,YAAY,EAAC,MAAM,iBAAiB,CAAC;AAErE,OAAO,EAAC,MAAM,EAAC,MAAM,uCAAuC,CAAC;AAC7D,OAAO,EAAC,YAAY,EAAC,MAAM,qDAAqD,CAAC;AACjF,OAAO,EAAC,iBAAiB,EAAC,MAAM,2DAA2D,CAAC;AAC5F,OAAO,EAAC,aAAa,EAAC,MAAM,6CAA6C,CAAC;AAK1E,OAAO,EAAC,WAAW,EAAC,MAAM,yDAAyD,CAAC;AACpF,OAAO,EAAC,iBAAiB,EAAC,MAAM,iEAAiE,CAAC;AAElG,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAC,YAAY,EAAC,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAC;AACxC,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAC,cAAc,EAAC,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAoB,MAAM,2BAA2B,CAAC;AAC7E,OAAO,EAAC,aAAa,EAAC,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,8CAA8C,CAAC;;;;;;;;;;;;;;ICT1D,gCAA8D;IAAA,oDAAoC;IAAA,iBAAO;;;IAG7G,qBAA+B;;;;IAQnB,oCAC4H;IAAlH,0PAAS,8CAAoC,KAAC;IACxD,iBAAW;;;;IAIP,oCAC0F;IAAhF,+PAAS,8BAAoB,KAAC;IAAkD,iBAAW;;;IAA5D,mFAAgD;;;;IACzF,oCACiG;IAAvF,+PAAS,8BAAoB,KAAC;IAAyD,iBAAW;;;IAAnE,0FAAuD;;;;IALpG,+BAA0H;IAItH,AAFA,4GAC0F,+FAEO;IACjG,oCACiF;IAAvE,qPAAS,2CAAiC,KAAC;IACzD,AADqF,iBAAW,EAC1F;;;IANS,cAA6B;IAA7B,mDAA6B;IAE7B,cAAuC;IAAvC,6DAAuC;IAGI,cAA0B;IAA1B,6DAA0B;;;IAdxF,AAFJ,2BAAuD,qBAEV;IAOrC,AAJA,sGAC4H,+EAGF;IAUlI,AADI,iBAAa,EACX;;;;IAjBU,cAA4B;IAA5B,6CAA4B;IAGzB,cAAsD;IAAtD,qLAAsD;IAI9C,cAA2B;IAAA,AAA3B,mDAA2B,sCAAqB;;;;IAV/E,sCAA8D;IAC1D,sFAAuD;IAqBvD,qBAAK;IACL,kCAAkH;IAAtD,2LAAS,yBAAkB,KAAC;IAE5F,AAFsH,iBAAS,EAElH;;;IAxBW,cAAiB;IAAA,AAAjB,6CAAiB,iCAAgB;;;;IAbjD,AADJ,AADJ,AADJ,AADJ,iCAAiD,UACxC,oBAC8B,aAC+D,eAGjC;IAFZ,+SAA6B;IAAtE,iBAEqD;IACrD,mCAC+B;IADC,+KAAS,mDAAqC,KAAC;IAGnF,AADI,iBAAW,EACT;IACN,0EAA8D;IAClE,iBAAa;IAIb,AAFA,uEAA+B,0EAE+B;IA6BtE,AADI,iBAAM,EACD;;;IAzCgD,eAA6B;IAA7B,sDAA6B;IAOnE,eAAmC;IAAnC,2DAAmC;IAGxC,cAAqB;IAArB,6CAAqB;IAEb,cAAqB;IAArB,6CAAqB;;;;IAmC/B,AADJ,AADJ,AAFJ,kCAAmE,qBAEpC,cACsG,UACpH;IAAA,6BAAa;IAAA,gCAAkC;IAAA,YAAwB;IAAO,AAAP,iBAAO,EAAM;IACzF,iCAAmI;IAA5E,0TAAkC;IAAzF,iBAAmI;IACnI,iCACwE;IAD/B,kTAA8B;IAAvE,iBACwE;IAGpE,AADJ,8BAA0F,oBAExD;IADpB,iLAAS,mFAA8D,KAAC;IAElF,iBAAW;IAEX,qCAAoD;IAA1C,iLAAS,kBAAW,IAAI,CAAC,KAAC;IAMpD,AAFI,AADI,AADI,AAFwD,iBAAW,EAE7D,EACJ,EACG,EAER;;;IAhBuD,eAAwB;IAAxB,iDAAwB;IACrB,cAAkC;IAAlC,2DAAkC;IAChD,cAA8B;IAA9B,uDAA8B;;ADxB3F,MAAM,OAAO,cAAc;IAWf;IACA;IACD;IACA;IACC;IAdM,YAAY,CAAS;IAE9B,YAAY,GAAY,KAAK,CAAC;IAE9B,gBAAgB,CAAS;IACzB,cAAc,CAAgB;IAE9B,eAAe,CAAS;IAE/B,YACU,KAAqB,EACrB,MAAc,EACf,WAAmC,EACnC,YAA0B,EACzB,UAAyB;QAJzB,UAAK,GAAL,KAAK,CAAgB;QACrB,WAAM,GAAN,MAAM,CAAQ;QACf,gBAAW,GAAX,WAAW,CAAwB;QACnC,iBAAY,GAAZ,YAAY,CAAc;QACzB,eAAU,GAAV,UAAU,CAAe;QAGjC,MAAM,CAAC,IAAI,CAAC,wBAAwB,EAAE,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAClE,CAAC;IAEM,QAAQ,CAAC,KAAa,EAAE,EAA+B;QAC5D,OAAO,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC;IACxB,CAAC;IAEM,aAAa,CAAC,KAAa,EAAE,OAAsB;QACxD,OAAO,OAAO,CAAC,KAAK,CAAC;IACvB,CAAC;IAED,IAAW,eAAe;QACxB,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;IACtC,CAAC;IAED,IAAW,YAAY;QACrB,OAAO,IAAI,CAAC,WAAW,EAAE,cAAc,EAAE,mBAAmB,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;IACvF,CAAC;IAEM,gBAAgB;QACrB,IAAI,OAAO,CAAC,8CAA8C,CAAC,EAAE,CAAC;YAC5D,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,mBAAmB,CAAC,cAAc,EAAE,CAAC;QACvE,CAAC;IACH,CAAC;IACD,QAAQ;QAEN,cAAc,CAAC,sCAAsC,CAAC,IAAI,CAAC,YAAY,EAAE,+BAA+B,CAAC,CAAC;IAC5G,CAAC;IAEM,KAAK,CAAC,oBAAoB,CAAC,KAAa;QAC7C,MAAM,CAAC,IAAI,CAAC,iCAAiC,EAAE,KAAK,EAAE,WAAW,CAAC,oBAAoB,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;QACvI,IAAI,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YACpC,IAAI,EAAE,GAAsB,IAAI,CAAC;YACjC,IAAI,WAAW,CAAC,oBAAoB,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC5C,EAAE,GAAG,iBAAiB,CAAC,YAAY,CAAC;YACtC,CAAC;iBAAM,IAAI,WAAW,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC;gBAClD,EAAE,GAAG,iBAAiB,CAAC,sBAAsB,CAAC;YAChD,CAAC;YACD,IAAI,CAAC,EAAE,EAAE,CAAC;gBACR,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,4DAA4D,CAAC,CAAC;YAC1G,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,cAAc,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;gBACjD,MAAM,GAAG,GAAY,MAAM,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBAClF,IAAI,GAAG,EAAE,CAAC;oBACR,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;gBAC3B,CAAC;qBAAM,CAAC;oBACN,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,qBAAqB,CAAC,CAAC;gBACnE,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,iBAAiB,CAAC,OAAsB;QACnD,IAAI,OAAO,IAAI,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACvE,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;YAC9B,MAAM,GAAG,GAAY,MAAM,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;YACtE,IAAI,GAAG,EAAE,CAAC;gBACR,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YAC3B,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,qBAAqB,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,qCAAqC,EAAE,OAAO,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,sBAAsB,CAAC,KAAa,EAAE,gBAAwB;QACzE,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC;QACvD,MAAM,GAAG,GAAmC,MAAM,IAAI,CAAC,WAAW,CAAC,gCAAgC,CACjG,EAAE,IAAI,EAAE,WAAW,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAC9D,gBAAgB,CACjB,CAAC;QACF,IAAI,GAAG,EAAE,CAAC;YACR,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,oBAAoB,CAAC,MAAc;QAC9C,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE,MAAM,CAAC,CAAC;QAChD,MAAM,GAAG,GAAmC,MAAM,IAAI,CAAC,WAAW,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC;QAIrG,IAAI,GAAG,EAAE,CAAC;YACR,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAEM,iBAAiB,CAAC,MAAc;QACrC,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,mBAAmB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IACzE,CAAC;IAEM,UAAU,CAAC,SAAkB;QAClC,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC;QACvC,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC/B,CAAC;IACH,CAAC;IAEM,2BAA2B;QAChC,OAAO,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAClH,CAAC;wGAvHU,cAAc;+CAAd,cAAc;YC/BvB,AADJ,8BAA4E,aACC;YAiDrE,AA/CA,qEAAiD,yDA+CkB;YAwB3E,AADI,iBAAM,EACJ;;YAvEW,eAAmB;YAAnB,wCAAmB;YA+CnB,cAAkB;YAAlB,uCAAkB;4BDpBvB,YAAY,iCAAE,YAAY,EAAE,WAAW,2DAAE,YAAY,uBAAE,UAAU,WAAE,aAAa,cAAgB,cAAc,gBAAE,eAAe;;iFAE9H,cAAc;cAN1B,SAAS;2BACE,wBAAwB,cAEtB,IAAI,WACP,CAAC,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,eAAe,CAAC;2JAG1H,YAAY;kBAA3B,KAAK;;kFADK,cAAc"}
|
|
@@ -1,11 +1,24 @@
|
|
|
1
1
|
import { Router } from '@angular/router';
|
|
2
|
-
import {
|
|
2
|
+
import { WardenContact } from '@bitblit/ratchet-warden-common/common/model/warden-contact';
|
|
3
|
+
import { WardenDelegatingCurrentUserProvidingUserServiceEventProcessingProvider } from '@bitblit/ratchet-warden-common/client/warden-delegating-current-user-providing-user-service-event-processing-provider';
|
|
4
|
+
import { WardenUserService } from '@bitblit/ratchet-warden-common/client/warden-user-service';
|
|
5
|
+
import { WardenLoggedInUserWrapper } from "@bitblit/ratchet-warden-common/client/provider/warden-logged-in-user-wrapper";
|
|
6
|
+
import { WardenWebAuthnEntrySummary } from "@bitblit/ratchet-warden-common/common/model/warden-web-authn-entry-summary";
|
|
3
7
|
import * as i0 from "@angular/core";
|
|
4
8
|
export declare class UserProfileComponent {
|
|
5
9
|
private router;
|
|
6
|
-
userService
|
|
7
|
-
|
|
8
|
-
|
|
10
|
+
private userService;
|
|
11
|
+
private userProvider;
|
|
12
|
+
user: WardenLoggedInUserWrapper<any>;
|
|
13
|
+
timeLeftMS: string;
|
|
14
|
+
constructor(router: Router, userService: WardenUserService<any>, userProvider: WardenDelegatingCurrentUserProvidingUserServiceEventProcessingProvider<any>);
|
|
15
|
+
private updateData;
|
|
16
|
+
refreshToken(): Promise<void>;
|
|
17
|
+
addContact(): Promise<void>;
|
|
18
|
+
addWebAuthnDevice(): Promise<void>;
|
|
19
|
+
removeContact(ct: WardenContact): Promise<void>;
|
|
20
|
+
removeWebAuthn(webId: WardenWebAuthnEntrySummary): Promise<void>;
|
|
21
|
+
webAuthLabel(webId: WardenWebAuthnEntrySummary): string;
|
|
9
22
|
performLogout(): void;
|
|
10
23
|
static ɵfac: i0.ɵɵFactoryDeclaration<UserProfileComponent, never>;
|
|
11
24
|
static ɵcmp: i0.ɵɵComponentDeclaration<UserProfileComponent, "ngx-acute-warden-user-profile", never, {}, {}, never, never, true, never>;
|
|
@@ -1,70 +1,184 @@
|
|
|
1
1
|
import { Component } from '@angular/core';
|
|
2
2
|
import { Router } from '@angular/router';
|
|
3
|
+
import { StringRatchet } from '@bitblit/ratchet-common/lang/string-ratchet';
|
|
3
4
|
import { Logger } from '@bitblit/ratchet-common/logger/logger';
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
5
|
+
import { WardenUtils } from '@bitblit/ratchet-warden-common/common/util/warden-utils';
|
|
6
|
+
import { WardenDelegatingCurrentUserProvidingUserServiceEventProcessingProvider } from '@bitblit/ratchet-warden-common/client/warden-delegating-current-user-providing-user-service-event-processing-provider';
|
|
7
|
+
import { WardenUserService } from '@bitblit/ratchet-warden-common/client/warden-user-service';
|
|
8
|
+
import { No } from '@bitblit/ratchet-common/lang/no';
|
|
9
|
+
import { DurationRatchet } from '@bitblit/ratchet-common/lang/duration-ratchet';
|
|
10
|
+
import { ButtonModule } from "primeng/button";
|
|
6
11
|
import { CardModule } from "primeng/card";
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
12
|
+
import { CommonModule } from "@angular/common";
|
|
13
|
+
import { TooltipModule } from "primeng/tooltip";
|
|
9
14
|
import * as i0 from "@angular/core";
|
|
10
15
|
import * as i1 from "@angular/router";
|
|
11
16
|
import * as i2 from "@bitblit/ratchet-warden-common/client/warden-user-service";
|
|
12
|
-
import * as i3 from "
|
|
13
|
-
|
|
14
|
-
|
|
17
|
+
import * as i3 from "@bitblit/ratchet-warden-common/client/warden-delegating-current-user-providing-user-service-event-processing-provider";
|
|
18
|
+
import * as i4 from "primeng/button";
|
|
19
|
+
import * as i5 from "primeng/card";
|
|
20
|
+
import * as i6 from "@angular/common";
|
|
21
|
+
import * as i7 from "primeng/tooltip";
|
|
22
|
+
function UserProfileComponent_li_9_Template(rf, ctx) { if (rf & 1) {
|
|
23
|
+
const _r1 = i0.ɵɵgetCurrentView();
|
|
24
|
+
i0.ɵɵelementStart(0, "li")(1, "p-button", 7);
|
|
25
|
+
i0.ɵɵlistener("click", function UserProfileComponent_li_9_Template_p_button_click_1_listener() { const cm_r2 = i0.ɵɵrestoreView(_r1).$implicit; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.removeContact(cm_r2)); });
|
|
26
|
+
i0.ɵɵelementEnd();
|
|
27
|
+
i0.ɵɵtext(2);
|
|
28
|
+
i0.ɵɵelementEnd();
|
|
29
|
+
} if (rf & 2) {
|
|
30
|
+
const cm_r2 = ctx.$implicit;
|
|
31
|
+
i0.ɵɵadvance();
|
|
32
|
+
i0.ɵɵpropertyInterpolate1("pTooltip", "Remove contact method ", cm_r2.value, "");
|
|
33
|
+
i0.ɵɵadvance();
|
|
34
|
+
i0.ɵɵtextInterpolate2(" ", cm_r2.type, " : ", cm_r2.value, "");
|
|
35
|
+
} }
|
|
36
|
+
function UserProfileComponent_ng_container_10_li_4_Template(rf, ctx) { if (rf & 1) {
|
|
37
|
+
const _r4 = i0.ɵɵgetCurrentView();
|
|
38
|
+
i0.ɵɵelementStart(0, "li")(1, "p-button", 7);
|
|
39
|
+
i0.ɵɵlistener("click", function UserProfileComponent_ng_container_10_li_4_Template_p_button_click_1_listener() { const waa_r5 = i0.ɵɵrestoreView(_r4).$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.removeWebAuthn(waa_r5)); });
|
|
40
|
+
i0.ɵɵelementEnd();
|
|
15
41
|
i0.ɵɵtext(2);
|
|
16
42
|
i0.ɵɵelementEnd();
|
|
17
|
-
|
|
18
|
-
|
|
43
|
+
} if (rf & 2) {
|
|
44
|
+
const waa_r5 = ctx.$implicit;
|
|
45
|
+
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
46
|
+
i0.ɵɵadvance();
|
|
47
|
+
i0.ɵɵpropertyInterpolate1("pTooltip", "Remove web auth ", ctx_r2.webAuthLabel(waa_r5), "");
|
|
48
|
+
i0.ɵɵadvance();
|
|
49
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r2.webAuthLabel(waa_r5), " ");
|
|
50
|
+
} }
|
|
51
|
+
function UserProfileComponent_ng_container_10_Template(rf, ctx) { if (rf & 1) {
|
|
52
|
+
i0.ɵɵelementContainerStart(0);
|
|
53
|
+
i0.ɵɵelementStart(1, "h3");
|
|
54
|
+
i0.ɵɵtext(2, "Web Authenticators");
|
|
55
|
+
i0.ɵɵelementEnd();
|
|
56
|
+
i0.ɵɵelementStart(3, "ul");
|
|
57
|
+
i0.ɵɵtemplate(4, UserProfileComponent_ng_container_10_li_4_Template, 3, 3, "li", 1);
|
|
19
58
|
i0.ɵɵelementEnd();
|
|
20
|
-
i0.ɵɵ
|
|
21
|
-
i0.ɵɵtext(6);
|
|
22
|
-
i0.ɵɵpipe(7, "json");
|
|
23
|
-
i0.ɵɵelementEnd()();
|
|
59
|
+
i0.ɵɵelementContainerEnd();
|
|
24
60
|
} if (rf & 2) {
|
|
25
|
-
const
|
|
26
|
-
i0.ɵɵadvance(
|
|
27
|
-
i0.ɵɵ
|
|
28
|
-
i0.ɵɵadvance(2);
|
|
29
|
-
i0.ɵɵtextInterpolate(ctx_r0.userService.fetchLoggedInUserObject().email);
|
|
30
|
-
i0.ɵɵadvance(2);
|
|
31
|
-
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(7, 3, ctx_r0.userService.fetchLoggedInUserObject()));
|
|
61
|
+
const ctx_r2 = i0.ɵɵnextContext();
|
|
62
|
+
i0.ɵɵadvance(4);
|
|
63
|
+
i0.ɵɵproperty("ngForOf", ctx_r2.user.userObject.loginData.webAuthnAuthenticatorSummaries);
|
|
32
64
|
} }
|
|
33
65
|
export class UserProfileComponent {
|
|
34
66
|
router;
|
|
35
67
|
userService;
|
|
36
|
-
|
|
37
|
-
|
|
68
|
+
userProvider;
|
|
69
|
+
user;
|
|
70
|
+
timeLeftMS;
|
|
71
|
+
constructor(router, userService, userProvider) {
|
|
38
72
|
this.router = router;
|
|
39
73
|
this.userService = userService;
|
|
40
|
-
|
|
74
|
+
this.userProvider = userProvider;
|
|
75
|
+
Logger.info('Construct UserProfileComponent');
|
|
76
|
+
this.updateData();
|
|
77
|
+
this.userProvider.currentUserSubject.subscribe((_val) => {
|
|
78
|
+
this.updateData();
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
updateData() {
|
|
82
|
+
Logger.info('Called updateData');
|
|
83
|
+
const tok = this.userService.fetchLoggedInUserWrapper();
|
|
84
|
+
this.user = tok;
|
|
85
|
+
this.timeLeftMS = this?.user?.userObject?.exp ? DurationRatchet.formatMsDuration(this.user.userObject.exp * 1000 - Date.now()) : '0';
|
|
86
|
+
}
|
|
87
|
+
async refreshToken() {
|
|
88
|
+
await this.userService.refreshToken();
|
|
89
|
+
this.updateData();
|
|
90
|
+
}
|
|
91
|
+
async addContact() {
|
|
92
|
+
const value = prompt('Please enter a phone number or email address to add');
|
|
93
|
+
const newContact = WardenUtils.stringToWardenContact(value);
|
|
94
|
+
if (newContact) {
|
|
95
|
+
const rval = await this.userService.addContactToLoggedInUser(newContact);
|
|
96
|
+
if (rval) {
|
|
97
|
+
await this.userService.refreshToken();
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
Logger.info('Add contact failed : %s', value);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
Logger.info('No contact found for %s', value);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
async addWebAuthnDevice() {
|
|
108
|
+
await this.userService.saveCurrentDeviceAsWebAuthnForCurrentUser();
|
|
109
|
+
await this.userService.refreshToken();
|
|
110
|
+
}
|
|
111
|
+
async removeContact(ct) {
|
|
112
|
+
Logger.info('Remove %j', ct);
|
|
113
|
+
await this.userService.removeContactFromLoggedInUser(ct);
|
|
114
|
+
await this.userService.refreshToken();
|
|
115
|
+
}
|
|
116
|
+
async removeWebAuthn(webId) {
|
|
117
|
+
Logger.info('Remove webauthn: %s', webId);
|
|
118
|
+
await this.userService.removeWebAuthnRegistrationFromLoggedInUser(webId.credentialIdBase64);
|
|
119
|
+
await this.userService.refreshToken();
|
|
120
|
+
}
|
|
121
|
+
webAuthLabel(webId) {
|
|
122
|
+
let rval = 'Error - missing';
|
|
123
|
+
if (webId) {
|
|
124
|
+
rval = webId.credentialIdBase64.substring(0, 4).toUpperCase() + ' : ';
|
|
125
|
+
rval += StringRatchet.trimToNull(webId.applicationName) ? webId.applicationName + ' ' : '';
|
|
126
|
+
rval += StringRatchet.trimToNull(webId.deviceLabel) ? webId.deviceLabel + ' ' : '';
|
|
127
|
+
rval += StringRatchet.trimToNull(webId.origin) ? webId.origin + ' ' : '';
|
|
128
|
+
}
|
|
129
|
+
return rval;
|
|
41
130
|
}
|
|
42
131
|
performLogout() {
|
|
43
132
|
this.userService.logout();
|
|
44
133
|
this.router.navigate(['/public/login']).then(No.op);
|
|
45
134
|
}
|
|
46
|
-
static ɵfac = function UserProfileComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || UserProfileComponent)(i0.ɵɵdirectiveInject(i1.Router), i0.ɵɵdirectiveInject(i2.WardenUserService)); };
|
|
47
|
-
static ɵcmp = i0.ɵɵdefineComponent({ type: UserProfileComponent, selectors: [["ngx-acute-warden-user-profile"]], standalone: true, features: [i0.ɵɵStandaloneFeature], decls:
|
|
48
|
-
i0.ɵɵelementStart(0, "
|
|
49
|
-
i0.ɵɵ
|
|
50
|
-
i0.ɵɵ
|
|
51
|
-
i0.ɵɵ
|
|
52
|
-
i0.ɵɵ
|
|
135
|
+
static ɵfac = function UserProfileComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || UserProfileComponent)(i0.ɵɵdirectiveInject(i1.Router), i0.ɵɵdirectiveInject(i2.WardenUserService), i0.ɵɵdirectiveInject(i3.WardenDelegatingCurrentUserProvidingUserServiceEventProcessingProvider)); };
|
|
136
|
+
static ɵcmp = i0.ɵɵdefineComponent({ type: UserProfileComponent, selectors: [["ngx-acute-warden-user-profile"]], standalone: true, features: [i0.ɵɵStandaloneFeature], decls: 21, vars: 8, consts: [[3, "header"], [4, "ngFor", "ngForOf"], [4, "ngIf"], [2, "display", "flex", "flex-direction", "row"], ["icon", "pi pi-user", "pTooltip", "Add a new contact method", "icon", "pi pi-user-plus", 3, "click"], ["icon", "pi pi-lock", "pTooltip", "Add this device as an authenticator", 3, "click"], [3, "click"], ["icon", "pi pi-trash", 3, "click", "pTooltip"]], template: function UserProfileComponent_Template(rf, ctx) { if (rf & 1) {
|
|
137
|
+
i0.ɵɵelementStart(0, "p-card", 0)(1, "div");
|
|
138
|
+
i0.ɵɵtext(2);
|
|
139
|
+
i0.ɵɵelement(3, "br");
|
|
140
|
+
i0.ɵɵtext(4);
|
|
141
|
+
i0.ɵɵelement(5, "br");
|
|
142
|
+
i0.ɵɵelementStart(6, "h3");
|
|
143
|
+
i0.ɵɵtext(7, "Contacts");
|
|
144
|
+
i0.ɵɵelementEnd();
|
|
145
|
+
i0.ɵɵelementStart(8, "ul");
|
|
146
|
+
i0.ɵɵtemplate(9, UserProfileComponent_li_9_Template, 3, 4, "li", 1);
|
|
147
|
+
i0.ɵɵelementEnd();
|
|
148
|
+
i0.ɵɵtemplate(10, UserProfileComponent_ng_container_10_Template, 5, 1, "ng-container", 2);
|
|
149
|
+
i0.ɵɵelementStart(11, "div", 3)(12, "p-button", 4);
|
|
150
|
+
i0.ɵɵlistener("click", function UserProfileComponent_Template_p_button_click_12_listener() { return ctx.addContact(); });
|
|
151
|
+
i0.ɵɵelementEnd();
|
|
152
|
+
i0.ɵɵelementStart(13, "p-button", 5);
|
|
153
|
+
i0.ɵɵlistener("click", function UserProfileComponent_Template_p_button_click_13_listener() { return ctx.addWebAuthnDevice(); });
|
|
154
|
+
i0.ɵɵelementEnd()();
|
|
155
|
+
i0.ɵɵelement(14, "br");
|
|
156
|
+
i0.ɵɵtext(15);
|
|
157
|
+
i0.ɵɵelement(16, "br")(17, "hr");
|
|
158
|
+
i0.ɵɵtext(18);
|
|
159
|
+
i0.ɵɵelementStart(19, "button", 6);
|
|
160
|
+
i0.ɵɵlistener("click", function UserProfileComponent_Template_button_click_19_listener() { return ctx.refreshToken(); });
|
|
161
|
+
i0.ɵɵtext(20, "Refresh");
|
|
162
|
+
i0.ɵɵelementEnd()()();
|
|
53
163
|
} if (rf & 2) {
|
|
164
|
+
i0.ɵɵpropertyInterpolate1("header", "User profile : ", ctx.user.userObject.loginData.userLabel, "");
|
|
165
|
+
i0.ɵɵadvance(2);
|
|
166
|
+
i0.ɵɵtextInterpolate1(" ID: ", ctx.user.userObject.loginData.userId, " ");
|
|
167
|
+
i0.ɵɵadvance(2);
|
|
168
|
+
i0.ɵɵtextInterpolate1(" Full Name: ", ctx.user.userObject.loginData.userLabel, " ");
|
|
169
|
+
i0.ɵɵadvance(5);
|
|
170
|
+
i0.ɵɵproperty("ngForOf", ctx.user.userObject.loginData.contactMethods);
|
|
171
|
+
i0.ɵɵadvance();
|
|
172
|
+
i0.ɵɵproperty("ngIf", ctx.user == null ? null : ctx.user.userObject == null ? null : ctx.user.userObject.loginData == null ? null : ctx.user.userObject.loginData.webAuthnAuthenticatorSummaries == null ? null : ctx.user.userObject.loginData.webAuthnAuthenticatorSummaries.length);
|
|
173
|
+
i0.ɵɵadvance(5);
|
|
174
|
+
i0.ɵɵtextInterpolate1(" Roles: ", ctx.user.userObject.roles, " ");
|
|
54
175
|
i0.ɵɵadvance(3);
|
|
55
|
-
i0.ɵɵ
|
|
56
|
-
} }, dependencies: [CardModule,
|
|
57
|
-
JsonPipe,
|
|
58
|
-
NgIf], encapsulation: 2 });
|
|
176
|
+
i0.ɵɵtextInterpolate1(" Time (MS) left in token : ", ctx.timeLeftMS, " ");
|
|
177
|
+
} }, dependencies: [ButtonModule, i4.Button, CardModule, i5.Card, CommonModule, i6.NgForOf, i6.NgIf, TooltipModule, i7.Tooltip], encapsulation: 2 });
|
|
59
178
|
}
|
|
60
179
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(UserProfileComponent, [{
|
|
61
180
|
type: Component,
|
|
62
|
-
args: [{ selector:
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
JsonPipe,
|
|
66
|
-
NgIf
|
|
67
|
-
], standalone: true, template: "<div class=\"simpleEvenlySpacedRow\">\n <p-card header=\"User Profile\">\n <div>\n <ul *ngIf=\"userService.isLoggedIn()\">\n <li>{{ userService.fetchLoggedInUserObject().name }}</li>\n <li>{{ userService.fetchLoggedInUserObject().email }}</li>\n <li>{{userService.fetchLoggedInUserObject() | json}}</li>\n </ul>\n <p-button (click)=\"performLogout()\" label=\"Logout\"></p-button>\n </div>\n </p-card>\n</div>\n" }]
|
|
68
|
-
}], () => [{ type: i1.Router }, { type: i2.WardenUserService }], null); })();
|
|
69
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(UserProfileComponent, { className: "UserProfileComponent", filePath: "components/user-profile/user-profile.component.ts", lineNumber: 22 }); })();
|
|
181
|
+
args: [{ selector: 'ngx-acute-warden-user-profile', standalone: true, imports: [ButtonModule, CardModule, CommonModule, TooltipModule], template: "\n<p-card header=\"User profile : {{user.userObject.loginData.userLabel}}\">\n <div>\n ID: {{user.userObject.loginData.userId}} <br />\n Full Name: {{user.userObject.loginData.userLabel}} <br />\n <h3>Contacts</h3>\n <ul>\n <li *ngFor=\"let cm of user.userObject.loginData.contactMethods\">\n <p-button icon=\"pi pi-trash\" pTooltip=\"Remove contact method {{cm.value}}\" (click)=\"removeContact(cm)\"></p-button>\n {{cm.type}} : {{cm.value}}</li>\n </ul>\n <ng-container *ngIf=\"user?.userObject?.loginData?.webAuthnAuthenticatorSummaries?.length\">\n <h3>Web Authenticators</h3>\n <ul>\n <li *ngFor=\"let waa of user.userObject.loginData.webAuthnAuthenticatorSummaries\">\n <p-button icon=\"pi pi-trash\" pTooltip=\"Remove web auth {{webAuthLabel(waa)}}\" (click)=\"removeWebAuthn(waa)\"></p-button>\n {{webAuthLabel(waa)}}\n </li>\n </ul>\n </ng-container>\n\n <div style=\"display:flex; flex-direction: row\">\n <p-button icon=\"pi pi-user\" pTooltip=\"Add a new contact method\" (click)=\"addContact()\" icon=\"pi pi-user-plus\"></p-button>\n <p-button icon=\"pi pi-lock\" pTooltip=\"Add this device as an authenticator\" (click)=\"addWebAuthnDevice()\"></p-button>\n </div>\n\n <br />\n Roles: {{user.userObject.roles}} <br />\n <hr />\n\n Time (MS) left in token : {{timeLeftMS}} <button (click)=\"refreshToken()\">Refresh</button>\n </div>\n</p-card>\n" }]
|
|
182
|
+
}], () => [{ type: i1.Router }, { type: i2.WardenUserService }, { type: i3.WardenDelegatingCurrentUserProvidingUserServiceEventProcessingProvider }], null); })();
|
|
183
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(UserProfileComponent, { className: "UserProfileComponent", filePath: "components/user-profile/user-profile.component.ts", lineNumber: 25 }); })();
|
|
70
184
|
//# sourceMappingURL=user-profile.component.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user-profile.component.js","sourceRoot":"","sources":["../../../src/components/user-profile/user-profile.component.ts","../../../src/components/user-profile/user-profile.component.html"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"user-profile.component.js","sourceRoot":"","sources":["../../../src/components/user-profile/user-profile.component.ts","../../../src/components/user-profile/user-profile.component.html"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"warden-adapter-service-config.js","sourceRoot":"","sources":["../../src/services/warden-adapter-service-config.ts"],"names":[],"mappings":""}
|
|
@@ -1,15 +1,19 @@
|
|
|
1
1
|
import { Router } from '@angular/router';
|
|
2
2
|
import { WardenUserServiceEventProcessingProvider } from '@bitblit/ratchet-warden-common/client/provider/warden-user-service-event-processing-provider';
|
|
3
3
|
import { WardenLoggedInUserWrapper } from '@bitblit/ratchet-warden-common/client/provider/warden-logged-in-user-wrapper';
|
|
4
|
+
import { WardenContact } from "@bitblit/ratchet-warden-common/common/model/warden-contact";
|
|
5
|
+
import { WardenClient } from "@bitblit/ratchet-warden-common/client/warden-client";
|
|
4
6
|
import * as i0 from "@angular/core";
|
|
5
7
|
export declare class WardenAdapterService implements WardenUserServiceEventProcessingProvider<any> {
|
|
6
8
|
router: Router;
|
|
7
|
-
|
|
9
|
+
wardenClient: WardenClient;
|
|
10
|
+
constructor(router: Router, wardenClient: WardenClient);
|
|
8
11
|
onAutomaticLogout(): void;
|
|
9
12
|
onAutomaticTokenRefresh(_refreshUser: WardenLoggedInUserWrapper<any>): void;
|
|
10
13
|
onLoginFailure(reason: string): void;
|
|
11
14
|
onLogout(): void;
|
|
12
15
|
onSuccessfulLogin(newUser: WardenLoggedInUserWrapper<any>): void;
|
|
16
|
+
sendMagicLink(contact: WardenContact, magicLanderUrl: string, postLoginUrl?: string): Promise<void>;
|
|
13
17
|
static ɵfac: i0.ɵɵFactoryDeclaration<WardenAdapterService, never>;
|
|
14
18
|
static ɵprov: i0.ɵɵInjectableDeclaration<WardenAdapterService>;
|
|
15
19
|
}
|
|
@@ -2,12 +2,17 @@ import { Injectable } from '@angular/core';
|
|
|
2
2
|
import { Logger } from '@bitblit/ratchet-common/logger/logger';
|
|
3
3
|
import { No } from "@bitblit/ratchet-common/lang/no";
|
|
4
4
|
import { Router } from '@angular/router';
|
|
5
|
+
import { RequireRatchet } from "@bitblit/ratchet-common/lang/require-ratchet";
|
|
6
|
+
import { WardenClient } from "@bitblit/ratchet-warden-common/client/warden-client";
|
|
5
7
|
import * as i0 from "@angular/core";
|
|
6
8
|
import * as i1 from "@angular/router";
|
|
9
|
+
import * as i2 from "@bitblit/ratchet-warden-common/client/warden-client";
|
|
7
10
|
export class WardenAdapterService {
|
|
8
11
|
router;
|
|
9
|
-
|
|
12
|
+
wardenClient;
|
|
13
|
+
constructor(router, wardenClient) {
|
|
10
14
|
this.router = router;
|
|
15
|
+
this.wardenClient = wardenClient;
|
|
11
16
|
}
|
|
12
17
|
onAutomaticLogout() {
|
|
13
18
|
this.router.navigate(['/public/login']).then(No.op);
|
|
@@ -24,11 +29,28 @@ export class WardenAdapterService {
|
|
|
24
29
|
onSuccessfulLogin(newUser) {
|
|
25
30
|
Logger.info('Logged in as %s', newUser?.userObject?.loginData?.userLabel);
|
|
26
31
|
}
|
|
27
|
-
|
|
32
|
+
async sendMagicLink(contact, magicLanderUrl, postLoginUrl) {
|
|
33
|
+
RequireRatchet.notNullUndefinedOrOnlyWhitespaceString(magicLanderUrl, 'magicLanderUrl may not be empty');
|
|
34
|
+
const mUrl = new URL(magicLanderUrl);
|
|
35
|
+
const param = new URLSearchParams(mUrl.search);
|
|
36
|
+
if (!param.has('code')) {
|
|
37
|
+
param.set('code', '{CODE}');
|
|
38
|
+
}
|
|
39
|
+
if (!param.has('meta')) {
|
|
40
|
+
param.set('meta', '{META}');
|
|
41
|
+
}
|
|
42
|
+
mUrl.search = param.toString();
|
|
43
|
+
const meta = {
|
|
44
|
+
redirect: postLoginUrl,
|
|
45
|
+
};
|
|
46
|
+
const sent = await this.wardenClient.sendMagicLink(contact, mUrl.toString(), meta);
|
|
47
|
+
Logger.info('Sent was %s : %s', sent, mUrl.toString());
|
|
48
|
+
}
|
|
49
|
+
static ɵfac = function WardenAdapterService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || WardenAdapterService)(i0.ɵɵinject(i1.Router), i0.ɵɵinject(i2.WardenClient)); };
|
|
28
50
|
static ɵprov = i0.ɵɵdefineInjectable({ token: WardenAdapterService, factory: WardenAdapterService.ɵfac, providedIn: 'root' });
|
|
29
51
|
}
|
|
30
52
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(WardenAdapterService, [{
|
|
31
53
|
type: Injectable,
|
|
32
54
|
args: [{ providedIn: 'root' }]
|
|
33
|
-
}], () => [{ type: i1.Router }], null); })();
|
|
55
|
+
}], () => [{ type: i1.Router }, { type: i2.WardenClient }], null); })();
|
|
34
56
|
//# sourceMappingURL=warden-adapter.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"warden-adapter.service.js","sourceRoot":"","sources":["../../src/services/warden-adapter.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AACzC,OAAO,EAAC,MAAM,EAAC,MAAM,uCAAuC,CAAC;AAC7D,OAAO,EAAC,EAAE,EAAC,MAAM,iCAAiC,CAAC;AACnD,OAAO,EAAC,MAAM,EAAC,MAAM,iBAAiB,CAAC
|
|
1
|
+
{"version":3,"file":"warden-adapter.service.js","sourceRoot":"","sources":["../../src/services/warden-adapter.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AACzC,OAAO,EAAC,MAAM,EAAC,MAAM,uCAAuC,CAAC;AAC7D,OAAO,EAAC,EAAE,EAAC,MAAM,iCAAiC,CAAC;AACnD,OAAO,EAAC,MAAM,EAAC,MAAM,iBAAiB,CAAC;AAIvC,OAAO,EAAE,cAAc,EAAE,MAAM,8CAA8C,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,MAAM,qDAAqD,CAAC;;;;AAGnF,MAAM,OAAO,oBAAoB;IACZ;IAAuB;IAA1C,YAAmB,MAAc,EAAS,YAA0B;QAAjD,WAAM,GAAN,MAAM,CAAQ;QAAS,iBAAY,GAAZ,YAAY,CAAc;IAAG,CAAC;IAEjE,iBAAiB;QAEtB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACtD,CAAC;IAEM,uBAAuB,CAAC,YAA4C;QACzE,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IACtC,CAAC;IAEM,cAAc,CAAC,MAAc;QAClC,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;IAC7C,CAAC;IAEM,QAAQ;QAEb,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACtD,CAAC;IAEM,iBAAiB,CAAC,OAAuC;QAC9D,MAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IAC5E,CAAC;IAEM,KAAK,CAAC,aAAa,CAAC,OAAsB,EAAE,cAAsB,EAAE,YAAqB;QAC9F,cAAc,CAAC,sCAAsC,CAAC,cAAc,EAAE,iCAAiC,CAAC,CAAC;QAEzG,MAAM,IAAI,GAAQ,IAAI,GAAG,CAAC,cAAc,CAAC,CAAC;QAC1C,MAAM,KAAK,GAAoB,IAAI,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACvB,KAAK,CAAC,GAAG,CAAC,MAAM,EAAC,QAAQ,CAAC,CAAC;QAC7B,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACvB,KAAK,CAAC,GAAG,CAAC,MAAM,EAAC,QAAQ,CAAC,CAAC;QAC7B,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;QAQ/B,MAAM,IAAI,GAA2B;YACnC,QAAQ,EAAE,YAAY;SACvB,CAAC;QACF,MAAM,IAAI,GAAY,MAAM,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,CAAC;QAE5F,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IACzD,CAAC;8GAnDU,oBAAoB;kDAApB,oBAAoB,WAApB,oBAAoB,mBADR,MAAM;;iFAClB,oBAAoB;cADhC,UAAU;eAAC,EAAC,UAAU,EAAE,MAAM,EAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bitblit/ngx-acute-warden",
|
|
3
|
-
"version": "5.0.
|
|
3
|
+
"version": "5.0.546-alpha",
|
|
4
4
|
"description": "Library for using angular with ratchet-warden",
|
|
5
5
|
"module": "lib/index.js",
|
|
6
6
|
"types": "lib/index.d.ts",
|
|
@@ -43,9 +43,9 @@
|
|
|
43
43
|
"@angular/platform-browser": "18.2.9",
|
|
44
44
|
"@angular/platform-browser-dynamic": "18.2.9",
|
|
45
45
|
"@angular/router": "18.2.9",
|
|
46
|
-
"@bitblit/ngx-acute-common": "5.0.
|
|
47
|
-
"@bitblit/ratchet-common": "5.0.
|
|
48
|
-
"@bitblit/ratchet-warden-common": "5.0.
|
|
46
|
+
"@bitblit/ngx-acute-common": "5.0.546-alpha",
|
|
47
|
+
"@bitblit/ratchet-common": "5.0.546-alpha",
|
|
48
|
+
"@bitblit/ratchet-warden-common": "5.0.546-alpha",
|
|
49
49
|
"primeflex": "3.3.1",
|
|
50
50
|
"primeicons": "7.0.0",
|
|
51
51
|
"primeng": "17.18.11",
|
|
@@ -61,9 +61,9 @@
|
|
|
61
61
|
"@angular/platform-browser": "^18.2.9",
|
|
62
62
|
"@angular/platform-browser-dynamic": "^18.2.9",
|
|
63
63
|
"@angular/router": "^18.2.9",
|
|
64
|
-
"@bitblit/ngx-acute-common": "5.0.
|
|
65
|
-
"@bitblit/ratchet-common": "5.0.
|
|
66
|
-
"@bitblit/ratchet-warden-common": "5.0.
|
|
64
|
+
"@bitblit/ngx-acute-common": "5.0.546-alpha",
|
|
65
|
+
"@bitblit/ratchet-common": "5.0.546-alpha",
|
|
66
|
+
"@bitblit/ratchet-warden-common": "5.0.546-alpha",
|
|
67
67
|
"primeflex": "3.3.1",
|
|
68
68
|
"primeicons": "7.0.0",
|
|
69
69
|
"primeng": "17.18.11",
|
|
@@ -72,6 +72,6 @@
|
|
|
72
72
|
},
|
|
73
73
|
"devDependencies": {
|
|
74
74
|
"@angular/compiler-cli": "18.2.9",
|
|
75
|
-
"@bitblit/ratchet-node-only": "5.0.
|
|
75
|
+
"@bitblit/ratchet-node-only": "5.0.546-alpha"
|
|
76
76
|
}
|
|
77
77
|
}
|