@myrmidon/auth-jwt-admin 0.0.2 → 0.0.3
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/{esm2015/lib/auth-jwt-admin.module.js → esm2020/lib/auth-jwt-admin.module.mjs} +4 -4
- package/esm2020/lib/components/auth-jwt-registration/auth-jwt-registration.component.mjs +203 -0
- package/{esm2015/lib/components/confirm-dialog/confirm-dialog.component.js → esm2020/lib/components/confirm-dialog/confirm-dialog.component.mjs} +5 -10
- package/{esm2015/lib/components/password-strength-bar/password-strength-bar.component.js → esm2020/lib/components/password-strength-bar/password-strength-bar.component.mjs} +5 -9
- package/{esm2015/lib/components/state/users.paginator.js → esm2020/lib/components/state/users.paginator.mjs} +0 -0
- package/{esm2015/lib/components/state/users.query.js → esm2020/lib/components/state/users.query.mjs} +3 -3
- package/esm2020/lib/components/state/users.service.mjs +65 -0
- package/{esm2015/lib/components/state/users.store.js → esm2020/lib/components/state/users.store.mjs} +3 -3
- package/esm2020/lib/components/user-editor/user-editor.component.mjs +112 -0
- package/esm2020/lib/components/user-filter/user-filter.component.mjs +58 -0
- package/esm2020/lib/components/user-list/user-list.component.mjs +134 -0
- package/{esm2015/lib/services/auth-jwt-account.service.js → esm2020/lib/services/auth-jwt-account.service.mjs} +3 -3
- package/{esm2015/lib/services/dialog.service.js → esm2020/lib/services/dialog.service.mjs} +3 -3
- package/{esm2015/lib/validators/password.validators.js → esm2020/lib/validators/password.validators.mjs} +0 -0
- package/{esm2015/myrmidon-auth-jwt-admin.js → esm2020/myrmidon-auth-jwt-admin.mjs} +0 -0
- package/{esm2015/public-api.js → esm2020/public-api.mjs} +0 -0
- package/fesm2015/myrmidon-auth-jwt-admin.mjs +1061 -0
- package/fesm2015/myrmidon-auth-jwt-admin.mjs.map +1 -0
- package/{fesm2015/myrmidon-auth-jwt-admin.js → fesm2020/myrmidon-auth-jwt-admin.mjs} +50 -78
- package/fesm2020/myrmidon-auth-jwt-admin.mjs.map +1 -0
- package/package.json +22 -9
- package/bundles/myrmidon-auth-jwt-admin.umd.js +0 -1466
- package/bundles/myrmidon-auth-jwt-admin.umd.js.map +0 -1
- package/esm2015/lib/components/auth-jwt-registration/auth-jwt-registration.component.js +0 -207
- package/esm2015/lib/components/state/users.service.js +0 -65
- package/esm2015/lib/components/user-editor/user-editor.component.js +0 -118
- package/esm2015/lib/components/user-filter/user-filter.component.js +0 -63
- package/esm2015/lib/components/user-list/user-list.component.js +0 -138
- package/fesm2015/myrmidon-auth-jwt-admin.js.map +0 -1
|
@@ -25,8 +25,8 @@ import { MatPaginatorModule } from '@angular/material/paginator';
|
|
|
25
25
|
import * as i0 from "@angular/core";
|
|
26
26
|
export class AuthJwtAdminModule {
|
|
27
27
|
}
|
|
28
|
-
AuthJwtAdminModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
29
|
-
AuthJwtAdminModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "
|
|
28
|
+
AuthJwtAdminModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: AuthJwtAdminModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
29
|
+
AuthJwtAdminModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: AuthJwtAdminModule, declarations: [AuthJwtRegistrationComponent,
|
|
30
30
|
PasswordStrengthBarComponent,
|
|
31
31
|
UserFilterComponent,
|
|
32
32
|
UserListComponent,
|
|
@@ -53,7 +53,7 @@ AuthJwtAdminModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", vers
|
|
|
53
53
|
PasswordStrengthBarComponent,
|
|
54
54
|
UserFilterComponent,
|
|
55
55
|
UserListComponent] });
|
|
56
|
-
AuthJwtAdminModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
56
|
+
AuthJwtAdminModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: AuthJwtAdminModule, imports: [[
|
|
57
57
|
CommonModule,
|
|
58
58
|
HttpClientModule,
|
|
59
59
|
FormsModule,
|
|
@@ -74,7 +74,7 @@ AuthJwtAdminModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", vers
|
|
|
74
74
|
AuthJwtLoginModule,
|
|
75
75
|
NgToolsModule
|
|
76
76
|
]] });
|
|
77
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
77
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: AuthJwtAdminModule, decorators: [{
|
|
78
78
|
type: NgModule,
|
|
79
79
|
args: [{
|
|
80
80
|
declarations: [
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
import { Component, EventEmitter, Output } from '@angular/core';
|
|
2
|
+
import { Validators, } from '@angular/forms';
|
|
3
|
+
import { take } from 'rxjs/operators';
|
|
4
|
+
import { PasswordValidators } from '../../validators/password.validators';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/forms";
|
|
7
|
+
import * as i2 from "@angular/material/snack-bar";
|
|
8
|
+
import * as i3 from "../../services/auth-jwt-account.service";
|
|
9
|
+
import * as i4 from "@angular/material/form-field";
|
|
10
|
+
import * as i5 from "@angular/material/icon";
|
|
11
|
+
import * as i6 from "../password-strength-bar/password-strength-bar.component";
|
|
12
|
+
import * as i7 from "@angular/material/button";
|
|
13
|
+
import * as i8 from "@angular/material/progress-spinner";
|
|
14
|
+
import * as i9 from "@angular/material/input";
|
|
15
|
+
import * as i10 from "@angular/common";
|
|
16
|
+
export class AuthJwtRegistrationComponent {
|
|
17
|
+
constructor(formBuilder, _snackbar, _accountService) {
|
|
18
|
+
this._snackbar = _snackbar;
|
|
19
|
+
this._accountService = _accountService;
|
|
20
|
+
this.registered = new EventEmitter();
|
|
21
|
+
// form
|
|
22
|
+
this.email = formBuilder.control('', [Validators.required, Validators.email], this.getUniqueEmailValidator(this._accountService).bind(this));
|
|
23
|
+
this.name = formBuilder.control('', Validators.required, this.getUniqueNameValidator(this._accountService).bind(this));
|
|
24
|
+
this.firstName = formBuilder.control('', [
|
|
25
|
+
Validators.required,
|
|
26
|
+
Validators.maxLength(50),
|
|
27
|
+
]);
|
|
28
|
+
this.lastName = formBuilder.control('', [
|
|
29
|
+
Validators.required,
|
|
30
|
+
Validators.maxLength(50),
|
|
31
|
+
]);
|
|
32
|
+
// http://stackoverflow.com/questions/35474991/angular-2-form-validating-for-repeat-password
|
|
33
|
+
this.password = formBuilder.control('', Validators.compose([Validators.required, PasswordValidators.standard]));
|
|
34
|
+
this.confirmPassword = formBuilder.control('', Validators.required);
|
|
35
|
+
this.passwords = formBuilder.group({
|
|
36
|
+
password: this.password,
|
|
37
|
+
confirmPassword: this.confirmPassword,
|
|
38
|
+
}, { validator: this.areEqual.bind(this) });
|
|
39
|
+
this.registration = formBuilder.group({
|
|
40
|
+
email: this.email,
|
|
41
|
+
name: this.name,
|
|
42
|
+
firstName: this.firstName,
|
|
43
|
+
lastName: this.lastName,
|
|
44
|
+
passwords: this.passwords,
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
areEqual(group) {
|
|
48
|
+
if (this.password.value === this.confirmPassword.value) {
|
|
49
|
+
return null;
|
|
50
|
+
}
|
|
51
|
+
return {
|
|
52
|
+
areEqual: true,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Creates a unique name validator. There is no dependency injection at this level,
|
|
57
|
+
* but we can use closures. As a matter of fact, we have access to the service instance
|
|
58
|
+
* from the component where we register validators. So we will implement a function
|
|
59
|
+
* that will accept the service as parameter, and create the actual validation function.
|
|
60
|
+
* This function will have access to the service when called during the validation process.
|
|
61
|
+
* See http://restlet.com/blog/2016/02/17/implementing-angular2-forms-beyond-basics-part-2/.
|
|
62
|
+
*/
|
|
63
|
+
getUniqueNameValidator(service) {
|
|
64
|
+
return (control) => {
|
|
65
|
+
return new Promise((resolve, reject) => {
|
|
66
|
+
// avoid checking if empty
|
|
67
|
+
if (!control.value) {
|
|
68
|
+
resolve(null);
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
service.isNameRegistered(control.value).subscribe((data) => {
|
|
72
|
+
if (!data.isExisting) {
|
|
73
|
+
resolve(null);
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
resolve({ uniqueName: true });
|
|
77
|
+
}
|
|
78
|
+
}, (err) => {
|
|
79
|
+
resolve({ uniqueName: true });
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
getUniqueEmailValidator(service) {
|
|
86
|
+
return (control) => {
|
|
87
|
+
return new Promise((resolve, reject) => {
|
|
88
|
+
// avoid checking if empty
|
|
89
|
+
if (!control.value) {
|
|
90
|
+
resolve(null);
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
service.isEmailRegistered(control.value).subscribe((data) => {
|
|
94
|
+
if (!data.isExisting) {
|
|
95
|
+
resolve(null);
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
resolve({ uniqueEmail: true });
|
|
99
|
+
}
|
|
100
|
+
}, (err) => {
|
|
101
|
+
resolve({ uniqueEmail: true });
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
ngOnInit() { }
|
|
108
|
+
getEmailErrorLabel() {
|
|
109
|
+
if (!this.email.dirty) {
|
|
110
|
+
return null;
|
|
111
|
+
}
|
|
112
|
+
if (this.email.hasError('required')) {
|
|
113
|
+
return 'email address required';
|
|
114
|
+
}
|
|
115
|
+
if (this.email.hasError('email')) {
|
|
116
|
+
return 'invalid email address';
|
|
117
|
+
}
|
|
118
|
+
if (this.email.hasError('uniqueEmail') && !this.email.pending) {
|
|
119
|
+
return 'email address already registered';
|
|
120
|
+
}
|
|
121
|
+
return null;
|
|
122
|
+
}
|
|
123
|
+
getNameErrorLabel() {
|
|
124
|
+
if (!this.name.dirty) {
|
|
125
|
+
return null;
|
|
126
|
+
}
|
|
127
|
+
if (this.name.hasError('required')) {
|
|
128
|
+
return 'username required';
|
|
129
|
+
}
|
|
130
|
+
if (this.name.hasError('pattern')) {
|
|
131
|
+
return 'invalid username';
|
|
132
|
+
}
|
|
133
|
+
if (this.name.hasError('uniqueName') && !this.name.pending) {
|
|
134
|
+
return 'username already taken';
|
|
135
|
+
}
|
|
136
|
+
return null;
|
|
137
|
+
}
|
|
138
|
+
getPasswordErrorLabel() {
|
|
139
|
+
if (!this.password.dirty) {
|
|
140
|
+
return null;
|
|
141
|
+
}
|
|
142
|
+
if (this.password.hasError('required')) {
|
|
143
|
+
return 'password required';
|
|
144
|
+
}
|
|
145
|
+
if (this.password.hasError('passwordTooShort')) {
|
|
146
|
+
let s = 'at least 8 characters';
|
|
147
|
+
if (this.password.value) {
|
|
148
|
+
s += ` (now ${this.password.value.length})`;
|
|
149
|
+
}
|
|
150
|
+
return s;
|
|
151
|
+
}
|
|
152
|
+
if (this.password.hasError('noUpperInPassword')) {
|
|
153
|
+
return 'at least 1 uppercase letter';
|
|
154
|
+
}
|
|
155
|
+
if (this.password.hasError('noLowerInPassword')) {
|
|
156
|
+
return 'at least 1 lowercase letter';
|
|
157
|
+
}
|
|
158
|
+
if (this.password.hasError('noSymbolInPassword')) {
|
|
159
|
+
return 'at least 1 punctuation or symbol';
|
|
160
|
+
}
|
|
161
|
+
return null;
|
|
162
|
+
}
|
|
163
|
+
onSubmit() {
|
|
164
|
+
if (!this.registration.valid ||
|
|
165
|
+
this.busy ||
|
|
166
|
+
this.name.pending ||
|
|
167
|
+
this.email.pending) {
|
|
168
|
+
return;
|
|
169
|
+
}
|
|
170
|
+
const model = {
|
|
171
|
+
email: this.email.value,
|
|
172
|
+
name: this.name.value,
|
|
173
|
+
firstName: this.firstName.value,
|
|
174
|
+
lastName: this.lastName.value,
|
|
175
|
+
password: this.password.value,
|
|
176
|
+
};
|
|
177
|
+
this.busy = true;
|
|
178
|
+
this._accountService
|
|
179
|
+
.register(model)
|
|
180
|
+
.pipe(take(1))
|
|
181
|
+
.subscribe(() => {
|
|
182
|
+
this.busy = false;
|
|
183
|
+
this._snackbar.open('Registration succeeded', 'OK');
|
|
184
|
+
// this.registration.reset();
|
|
185
|
+
// this.registration.clearValidators();
|
|
186
|
+
// this.registration.markAsPristine();
|
|
187
|
+
this.registered.emit();
|
|
188
|
+
}, (error) => {
|
|
189
|
+
this.busy = false;
|
|
190
|
+
console.error(error);
|
|
191
|
+
this._snackbar.open('Registration error', 'OK');
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
AuthJwtRegistrationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: AuthJwtRegistrationComponent, deps: [{ token: i1.FormBuilder }, { token: i2.MatSnackBar }, { token: i3.AuthJwtAccountService }], target: i0.ɵɵFactoryTarget.Component });
|
|
196
|
+
AuthJwtRegistrationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.5", type: AuthJwtRegistrationComponent, selector: "auth-jwt-registration", outputs: { registered: "registered" }, ngImport: i0, template: "<div>\n <div>\n <p>\n To register a new user, you must provide his email address, choose a\n password, and choose a username, which must be unique (you will be\n notified if another user has already taken that name). The username must\n include only letters/digits, start with a letter, and be no shorter than 3\n characters, nor longer than 50.\n </p>\n <p>\n To promote a decent security level, the password must include at least 8\n characters, uppercase and lowercase letters, digits, and punctuation (like\n dashes, stops, parentheses, etc.).\n </p>\n <p>\n Once registered, the user will receive an email message to the email\n address you specified; he will have to click on the provided link to\n complete the registration process.\n </p>\n </div>\n\n <form role=\"form\" [formGroup]=\"registration\" (submit)=\"onSubmit()\">\n <fieldset>\n <label>register user</label>\n <!-- email -->\n <div>\n <mat-form-field>\n <input\n matInput\n type=\"email\"\n id=\"email\"\n maxlength=\"256\"\n required\n autofocus\n spellcheck=\"false\"\n placeholder=\"email\"\n formControlName=\"email\"\n />\n <mat-error>{{ getEmailErrorLabel() }}</mat-error>\n <mat-icon *ngIf=\"email.pending\">hourglass</mat-icon>\n </mat-form-field>\n </div>\n\n <!-- name -->\n <div>\n <mat-form-field>\n <input\n matInput\n type=\"text\"\n id=\"name\"\n maxlength=\"50\"\n required\n pattern=\"^[a-zA-Z][a-zA-Z0-9]{2,49}$\"\n spellcheck=\"false\"\n placeholder=\"username\"\n formControlName=\"name\"\n />\n <mat-error>{{ getNameErrorLabel() }}</mat-error>\n <mat-icon *ngIf=\"name.pending\">hourglass</mat-icon>\n </mat-form-field>\n </div>\n\n <!-- first name -->\n <div>\n <mat-form-field>\n <input\n matInput\n type=\"text\"\n id=\"firstName\"\n maxlength=\"50\"\n required\n spellcheck=\"false\"\n placeholder=\"first name\"\n formControlName=\"firstName\"\n />\n <mat-error\n *ngIf=\"\n firstName.hasError('required') &&\n (firstName.dirty || firstName.touched)\n \"\n class=\"text-danger small\"\n >\n first name required\n </mat-error>\n </mat-form-field>\n </div>\n\n <!-- last name -->\n <div>\n <mat-form-field>\n <input\n matInput\n type=\"text\"\n id=\"lastName\"\n maxlength=\"50\"\n required\n spellcheck=\"false\"\n placeholder=\"last name\"\n formControlName=\"lastName\"\n />\n <mat-error\n *ngIf=\"\n lastName.hasError('required') &&\n (lastName.dirty || lastName.touched)\n \"\n class=\"text-danger small\"\n >\n last name required\n </mat-error>\n </mat-form-field>\n </div>\n\n <div [formGroup]=\"passwords\">\n <!-- password -->\n <div>\n <mat-form-field>\n <input\n matInput\n type=\"password\"\n name=\"password\"\n autocomplete=\"new-password\"\n maxlength=\"50\"\n required\n spellcheck=\"false\"\n placeholder=\"password\"\n formControlName=\"password\"\n />\n <auth-jwt-password-strength-bar [passwordToCheck]=\"password.value\">\n </auth-jwt-password-strength-bar>\n <mat-error>{{ getPasswordErrorLabel() }}</mat-error>\n </mat-form-field>\n </div>\n\n <!-- confirm password -->\n <div>\n <mat-form-field>\n <input\n matInput\n type=\"password\"\n name=\"confirmPassword\"\n maxlength=\"50\"\n required\n spellcheck=\"false\"\n placeholder=\"confirm password\"\n formControlName=\"confirmPassword\"\n />\n <mat-error\n *ngIf=\"\n passwords.hasError('areEqual') &&\n (confirmPassword.dirty || confirmPassword.touched)\n \"\n >\n password differs from confirmation password\n </mat-error>\n </mat-form-field>\n </div>\n </div>\n\n <button\n mat-raised-button\n type=\"submit\"\n color=\"primary\"\n [disabled]=\"\n !registration.valid || busy || name.pending || email.pending\n \"\n >\n register\n </button>\n <mat-progress-spinner\n diameter=\"20\"\n *ngIf=\"busy\"\n aria-label=\"Busy\"\n ></mat-progress-spinner>\n </fieldset>\n </form>\n</div>\n", styles: ["mat-form-field{width:400px}fieldset{border:1px solid silver;border-radius:8px;padding:16px}\n"], components: [{ type: i4.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i6.PasswordStrengthBarComponent, selector: "auth-jwt-password-strength-bar", inputs: ["passwordToCheck"], outputs: ["strengthChange"] }, { type: i7.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: i8.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }], directives: [{ type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i9.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i4.MatError, selector: "mat-error", inputs: ["id"] }, { type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }] });
|
|
197
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: AuthJwtRegistrationComponent, decorators: [{
|
|
198
|
+
type: Component,
|
|
199
|
+
args: [{ selector: 'auth-jwt-registration', template: "<div>\n <div>\n <p>\n To register a new user, you must provide his email address, choose a\n password, and choose a username, which must be unique (you will be\n notified if another user has already taken that name). The username must\n include only letters/digits, start with a letter, and be no shorter than 3\n characters, nor longer than 50.\n </p>\n <p>\n To promote a decent security level, the password must include at least 8\n characters, uppercase and lowercase letters, digits, and punctuation (like\n dashes, stops, parentheses, etc.).\n </p>\n <p>\n Once registered, the user will receive an email message to the email\n address you specified; he will have to click on the provided link to\n complete the registration process.\n </p>\n </div>\n\n <form role=\"form\" [formGroup]=\"registration\" (submit)=\"onSubmit()\">\n <fieldset>\n <label>register user</label>\n <!-- email -->\n <div>\n <mat-form-field>\n <input\n matInput\n type=\"email\"\n id=\"email\"\n maxlength=\"256\"\n required\n autofocus\n spellcheck=\"false\"\n placeholder=\"email\"\n formControlName=\"email\"\n />\n <mat-error>{{ getEmailErrorLabel() }}</mat-error>\n <mat-icon *ngIf=\"email.pending\">hourglass</mat-icon>\n </mat-form-field>\n </div>\n\n <!-- name -->\n <div>\n <mat-form-field>\n <input\n matInput\n type=\"text\"\n id=\"name\"\n maxlength=\"50\"\n required\n pattern=\"^[a-zA-Z][a-zA-Z0-9]{2,49}$\"\n spellcheck=\"false\"\n placeholder=\"username\"\n formControlName=\"name\"\n />\n <mat-error>{{ getNameErrorLabel() }}</mat-error>\n <mat-icon *ngIf=\"name.pending\">hourglass</mat-icon>\n </mat-form-field>\n </div>\n\n <!-- first name -->\n <div>\n <mat-form-field>\n <input\n matInput\n type=\"text\"\n id=\"firstName\"\n maxlength=\"50\"\n required\n spellcheck=\"false\"\n placeholder=\"first name\"\n formControlName=\"firstName\"\n />\n <mat-error\n *ngIf=\"\n firstName.hasError('required') &&\n (firstName.dirty || firstName.touched)\n \"\n class=\"text-danger small\"\n >\n first name required\n </mat-error>\n </mat-form-field>\n </div>\n\n <!-- last name -->\n <div>\n <mat-form-field>\n <input\n matInput\n type=\"text\"\n id=\"lastName\"\n maxlength=\"50\"\n required\n spellcheck=\"false\"\n placeholder=\"last name\"\n formControlName=\"lastName\"\n />\n <mat-error\n *ngIf=\"\n lastName.hasError('required') &&\n (lastName.dirty || lastName.touched)\n \"\n class=\"text-danger small\"\n >\n last name required\n </mat-error>\n </mat-form-field>\n </div>\n\n <div [formGroup]=\"passwords\">\n <!-- password -->\n <div>\n <mat-form-field>\n <input\n matInput\n type=\"password\"\n name=\"password\"\n autocomplete=\"new-password\"\n maxlength=\"50\"\n required\n spellcheck=\"false\"\n placeholder=\"password\"\n formControlName=\"password\"\n />\n <auth-jwt-password-strength-bar [passwordToCheck]=\"password.value\">\n </auth-jwt-password-strength-bar>\n <mat-error>{{ getPasswordErrorLabel() }}</mat-error>\n </mat-form-field>\n </div>\n\n <!-- confirm password -->\n <div>\n <mat-form-field>\n <input\n matInput\n type=\"password\"\n name=\"confirmPassword\"\n maxlength=\"50\"\n required\n spellcheck=\"false\"\n placeholder=\"confirm password\"\n formControlName=\"confirmPassword\"\n />\n <mat-error\n *ngIf=\"\n passwords.hasError('areEqual') &&\n (confirmPassword.dirty || confirmPassword.touched)\n \"\n >\n password differs from confirmation password\n </mat-error>\n </mat-form-field>\n </div>\n </div>\n\n <button\n mat-raised-button\n type=\"submit\"\n color=\"primary\"\n [disabled]=\"\n !registration.valid || busy || name.pending || email.pending\n \"\n >\n register\n </button>\n <mat-progress-spinner\n diameter=\"20\"\n *ngIf=\"busy\"\n aria-label=\"Busy\"\n ></mat-progress-spinner>\n </fieldset>\n </form>\n</div>\n", styles: ["mat-form-field{width:400px}fieldset{border:1px solid silver;border-radius:8px;padding:16px}\n"] }]
|
|
200
|
+
}], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.MatSnackBar }, { type: i3.AuthJwtAccountService }]; }, propDecorators: { registered: [{
|
|
201
|
+
type: Output
|
|
202
|
+
}] } });
|
|
203
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1qd3QtcmVnaXN0cmF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cm1pZG9uL2F1dGgtand0LWFkbWluL3NyYy9saWIvY29tcG9uZW50cy9hdXRoLWp3dC1yZWdpc3RyYXRpb24vYXV0aC1qd3QtcmVnaXN0cmF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cm1pZG9uL2F1dGgtand0LWFkbWluL3NyYy9saWIvY29tcG9uZW50cy9hdXRoLWp3dC1yZWdpc3RyYXRpb24vYXV0aC1qd3QtcmVnaXN0cmF0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RSxPQUFPLEVBSUwsVUFBVSxHQUdYLE1BQU0sZ0JBQWdCLENBQUM7QUFHeEIsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBT3RDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDOzs7Ozs7Ozs7Ozs7QUFPMUUsTUFBTSxPQUFPLDRCQUE0QjtJQW9CdkMsWUFDRSxXQUF3QixFQUNoQixTQUFzQixFQUN0QixlQUFzQztRQUR0QyxjQUFTLEdBQVQsU0FBUyxDQUFhO1FBQ3RCLG9CQUFlLEdBQWYsZUFBZSxDQUF1QjtRQUU5QyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDMUMsT0FBTztRQUNQLElBQUksQ0FBQyxLQUFLLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FDOUIsRUFBRSxFQUNGLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsS0FBSyxDQUFDLEVBQ3ZDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFD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QUU7WUFDSCxJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztZQUNsQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNwRCw2QkFBNkI7WUFDN0IsdUNBQXVDO1lBQ3ZDLHNDQUFzQztZQUN0QyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3pCLENBQUMsRUFDRCxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ1IsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7WUFDbEIsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNyQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNsRCxDQUFDLENBQ0YsQ0FBQztJQUNOLENBQUM7O3lIQXhQVSw0QkFBNEI7NkdBQTVCLDRCQUE0QixvR0N6QnpDLHNtS0FnTEE7MkZEdkphLDRCQUE0QjtrQkFMeEMsU0FBUzsrQkFDRSx1QkFBdUI7Z0tBc0IxQixVQUFVO3NCQURoQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBGb3JtR3JvdXAsXG4gIEZvcm1Db250cm9sLFxuICBGb3JtQnVpbGRlcixcbiAgVmFsaWRhdG9ycyxcbiAgQWJzdHJhY3RDb250cm9sLFxuICBWYWxpZGF0aW9uRXJyb3JzLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRTbmFja0JhciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NuYWNrLWJhcic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtcbiAgQXV0aEp3dEFjY291bnRTZXJ2aWNlLFxuICBFeGlzdFJlc3VsdCxcbiAgUmVnaXN0cmF0aW9uTW9kZWwsXG59IGZyb20gJy4uLy4uL3NlcnZpY2VzL2F1dGgtand0LWFjY291bnQuc2VydmljZSc7XG5cbmltcG9ydCB7IFBhc3N3b3JkVmFsaWRhdG9ycyB9IGZyb20gJy4uLy4uL3ZhbGlkYXRvcnMvcGFzc3dvcmQudmFsaWRhdG9ycyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F1dGgtand0LXJlZ2lzdHJhdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9hdXRoLWp3dC1yZWdpc3RyYXRpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hdXRoLWp3dC1yZWdpc3RyYXRpb24uY29tcG9uZW50LmNzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBBdXRoSnd0UmVnaXN0cmF0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHVibGljIGJ1c3k6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gIC8vIGZvcm1cbiAgcHVibGljIHJlZ2lzdHJhdGlvbjogRm9ybUdyb3VwO1xuICBwdWJsaWMgZW1haWw6IEZvcm1Db250cm9sO1xuICBwdWJsaWMgbmFtZTogRm9ybUNvbnRyb2w7XG4gIHB1YmxpYyBmaXJzdE5hbWU6IEZvcm1Db250cm9sO1xuICBwdWJsaWMgbGFzdE5hbWU6IEZvcm1Db250cm9sO1xuICBwdWJsaWMgcGFzc3dvcmRzOiBGb3JtR3JvdXA7XG4gIHB1YmxpYyBwYXNzd29yZDogRm9ybUNvbnRyb2w7XG4gIHB1YmxpYyBjb25maXJtUGFzc3dvcmQ6IEZvcm1Db250cm9sO1xuXG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gYSB1c2VyIHdhcyBzdWNjZXNzZnVsbHkgcmVnaXN0ZXJlZC4gVXN1YWxseVxuICAgKiB5b3Ugc2hvdWxkIGhhbmRsZSB0aGlzIHRvIG1vdmUgYXdheSBmcm9tIHRoZSByZWdpc3RyYXRpb25cbiAgICogcGFnZS5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgcmVnaXN0ZXJlZDogRXZlbnRFbWl0dGVyPGFueT47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgX3NuYWNrYmFyOiBNYXRTbmFja0JhcixcbiAgICBwcml2YXRlIF9hY2NvdW50U2VydmljZTogQXV0aEp3dEFjY291bnRTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMucmVnaXN0ZXJlZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIC8vIGZvcm1cbiAgICB0aGlzLmVtYWlsID0gZm9ybUJ1aWxkZXIuY29udHJvbChcbiAgICAgICcnLFxuICAgICAgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMuZW1haWxdLFxuICAgICAgdGhpcy5nZXRVbmlxdWVFbWFpbFZhbGlkYXRvcih0aGlzLl9hY2NvdW50U2VydmljZSkuYmluZCh0aGlzKVxuICAgICk7XG5cbiAgICB0aGlzLm5hbWUgPSBmb3JtQnVpbGRlci5jb250cm9sKFxuICAgICAgJycsXG4gICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkLFxuICAgICAgdGhpcy5nZXRVbmlxdWVOYW1lVmFsaWRhdG9yKHRoaXMuX2FjY291bnRTZXJ2aWNlKS5iaW5kKHRoaXMpXG4gICAgKTtcblxuICAgIHRoaXMuZmlyc3ROYW1lID0gZm9ybUJ1aWxkZXIuY29udHJvbCgnJywgW1xuICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZCxcbiAgICAgIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDUwKSxcbiAgICBdKTtcbiAgICB0aGlzLmxhc3ROYW1lID0gZm9ybUJ1aWxkZXIuY29udHJvbCgnJywgW1xuICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZCxcbiAgICAgIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDUwKSxcbiAgICBdKTtcblxuICAgIC8vIGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMzU0NzQ5OTEvYW5ndWxhci0yLWZvcm0tdmFsaWRhdGluZy1mb3ItcmVwZWF0LXBhc3N3b3JkXG4gICAgdGhpcy5wYXNzd29yZCA9IGZvcm1CdWlsZGVyLmNvbnRyb2woXG4gICAgICAnJyxcbiAgICAgIFZhbGlkYXRvcnMuY29tcG9zZShbVmFsaWRhdG9ycy5yZXF1aXJlZCwgUGFzc3dvcmRWYWxpZGF0b3JzLnN0YW5kYXJkXSlcbiAgICApO1xuICAgIHRoaXMuY29uZmlybVBhc3N3b3JkID0gZm9ybUJ1aWxkZXIuY29udHJvbCgnJywgVmFsaWRhdG9ycy5yZXF1aXJlZCk7XG4gICAgdGhpcy5wYXNzd29yZHMgPSBmb3JtQnVpbGRlci5ncm91cChcbiAgICAgIHtcbiAgICAgICAgcGFzc3dvcmQ6IHRoaXMucGFzc3dvcmQsXG4gICAgICAgIGNvbmZpcm1QYXNzd29yZDogdGhpcy5jb25maXJtUGFzc3dvcmQsXG4gICAgICB9LFxuICAgICAgeyB2YWxpZGF0b3I6IHRoaXMuYXJlRXF1YWwuYmluZCh0aGlzKSB9XG4gICAgKTtcblxuICAgIHRoaXMucmVnaXN0cmF0aW9uID0gZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgZW1haWw6IHRoaXMuZW1haWwsXG4gICAgICBuYW1lOiB0aGlzLm5hbWUsXG4gICAgICBmaXJzdE5hbWU6IHRoaXMuZmlyc3ROYW1lLFxuICAgICAgbGFzdE5hbWU6IHRoaXMubGFzdE5hbWUsXG4gICAgICBwYXNzd29yZHM6IHRoaXMucGFzc3dvcmRzLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhcmVFcXVhbChncm91cDogRm9ybUdyb3VwKTogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0gfCBudWxsIHtcbiAgICBpZiAodGhpcy5wYXNzd29yZC52YWx1ZSA9PT0gdGhpcy5jb25maXJtUGFzc3dvcmQudmFsdWUpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgYXJlRXF1YWw6IHRydWUsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgdW5pcXVlIG5hbWUgdmFsaWRhdG9yLiBUaGVyZSBpcyBubyBkZXBlbmRlbmN5IGluamVjdGlvbiBhdCB0aGlzIGxldmVsLFxuICAgKiBidXQgd2UgY2FuIHVzZSBjbG9zdXJlcy4gQXMgYSBtYXR0ZXIgb2YgZmFjdCwgd2UgaGF2ZSBhY2Nlc3MgdG8gdGhlIHNlcnZpY2UgaW5zdGFuY2VcbiAgICogZnJvbSB0aGUgY29tcG9uZW50IHdoZXJlIHdlIHJlZ2lzdGVyIHZhbGlkYXRvcnMuIFNvIHdlIHdpbGwgaW1wbGVtZW50IGEgZnVuY3Rpb25cbiAgICogdGhhdCB3aWxsIGFjY2VwdCB0aGUgc2VydmljZSBhcyBwYXJhbWV0ZXIsIGFuZCBjcmVhdGUgdGhlIGFjdHVhbCB2YWxpZGF0aW9uIGZ1bmN0aW9uLlxuICAgKiBUaGlzIGZ1bmN0aW9uIHdpbGwgaGF2ZSBhY2Nlc3MgdG8gdGhlIHNlcnZpY2Ugd2hlbiBjYWxsZWQgZHVyaW5nIHRoZSB2YWxpZGF0aW9uIHByb2Nlc3MuXG4gICAqIFNlZSBodHRwOi8vcmVzdGxldC5jb20vYmxvZy8yMDE2LzAyLzE3L2ltcGxlbWVudGluZy1hbmd1bGFyMi1mb3Jtcy1iZXlvbmQtYmFzaWNzLXBhcnQtMi8uXG4gICAqL1xuICBwcml2YXRlIGdldFVuaXF1ZU5hbWVWYWxpZGF0b3Ioc2VydmljZTogQXV0aEp3dEFjY291bnRTZXJ2aWNlKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbFxuICAgICk6XG4gICAgICB8IFByb21pc2U8VmFsaWRhdGlvbkVycm9ycyB8IG51bGw+XG4gICAgICB8IE9ic2VydmFibGU8VmFsaWRhdGlvbkVycm9ycyB8IG51bGw+ID0+IHtcbiAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIC8vIGF2b2lkIGNoZWNraW5nIGlmIGVtcHR5XG4gICAgICAgIGlmICghY29udHJvbC52YWx1ZSkge1xuICAgICAgICAgIHJlc29sdmUobnVsbCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc2VydmljZS5pc05hbWVSZWdpc3RlcmVkKGNvbnRyb2wudmFsdWUpLnN1YnNjcmliZShcbiAgICAgICAgICAgIChkYXRhOiBFeGlzdFJlc3VsdCkgPT4ge1xuICAgICAgICAgICAgICBpZiAoIWRhdGEuaXNFeGlzdGluZykge1xuICAgICAgICAgICAgICAgIHJlc29sdmUobnVsbCk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZSh7IHVuaXF1ZU5hbWU6IHRydWUgfSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAoZXJyKSA9PiB7XG4gICAgICAgICAgICAgIHJlc29sdmUoeyB1bmlxdWVOYW1lOiB0cnVlIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGdldFVuaXF1ZUVtYWlsVmFsaWRhdG9yKHNlcnZpY2U6IEF1dGhKd3RBY2NvdW50U2VydmljZSkge1xuICAgIHJldHVybiAoXG4gICAgICBjb250cm9sOiBBYnN0cmFjdENvbnRyb2xcbiAgICApOlxuICAgICAgfCBQcm9taXNlPFZhbGlkYXRpb25FcnJvcnMgfCBudWxsPlxuICAgICAgfCBPYnNlcnZhYmxlPFZhbGlkYXRpb25FcnJvcnMgfCBudWxsPiA9PiB7XG4gICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAvLyBhdm9pZCBjaGVja2luZyBpZiBlbXB0eVxuICAgICAgICBpZiAoIWNvbnRyb2wudmFsdWUpIHtcbiAgICAgICAgICByZXNvbHZlKG51bGwpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHNlcnZpY2UuaXNFbWFpbFJlZ2lzdGVyZWQoY29udHJvbC52YWx1ZSkuc3Vic2NyaWJlKFxuICAgICAgICAgICAgKGRhdGE6IEV4aXN0UmVzdWx0KSA9PiB7XG4gICAgICAgICAgICAgIGlmICghZGF0YS5pc0V4aXN0aW5nKSB7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZShudWxsKTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXNvbHZlKHsgdW5pcXVlRW1haWw6IHRydWUgfSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAoZXJyKSA9PiB7XG4gICAgICAgICAgICAgIHJlc29sdmUoeyB1bmlxdWVFbWFpbDogdHJ1ZSB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9O1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7fVxuXG4gIHB1YmxpYyBnZXRFbWFpbEVycm9yTGFiZWwoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgaWYgKCF0aGlzLmVtYWlsLmRpcnR5KSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5lbWFpbC5oYXNFcnJvcigncmVxdWlyZWQnKSkge1xuICAgICAgcmV0dXJuICdlbWFpbCBhZGRyZXNzIHJlcXVpcmVkJztcbiAgICB9XG4gICAgaWYgKHRoaXMuZW1haWwuaGFzRXJyb3IoJ2VtYWlsJykpIHtcbiAgICAgIHJldHVybiAnaW52YWxpZCBlbWFpbCBhZGRyZXNzJztcbiAgICB9XG4gICAgaWYgKHRoaXMuZW1haWwuaGFzRXJyb3IoJ3VuaXF1ZUVtYWlsJykgJiYgIXRoaXMuZW1haWwucGVuZGluZykge1xuICAgICAgcmV0dXJuICdlbWFpbCBhZGRyZXNzIGFscmVhZHkgcmVnaXN0ZXJlZCc7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcHVibGljIGdldE5hbWVFcnJvckxhYmVsKCk6IHN0cmluZyB8IG51bGwge1xuICAgIGlmICghdGhpcy5uYW1lLmRpcnR5KSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5uYW1lLmhhc0Vycm9yKCdyZXF1aXJlZCcpKSB7XG4gICAgICByZXR1cm4gJ3VzZXJuYW1lIHJlcXVpcmVkJztcbiAgICB9XG5cbiAgICBpZiAodGhpcy5uYW1lLmhhc0Vycm9yKCdwYXR0ZXJuJykpIHtcbiAgICAgIHJldHVybiAnaW52YWxpZCB1c2VybmFtZSc7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMubmFtZS5oYXNFcnJvcigndW5pcXVlTmFtZScpICYmICF0aGlzLm5hbWUucGVuZGluZykge1xuICAgICAgcmV0dXJuICd1c2VybmFtZSBhbHJlYWR5IHRha2VuJztcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHB1YmxpYyBnZXRQYXNzd29yZEVycm9yTGFiZWwoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgaWYgKCF0aGlzLnBhc3N3b3JkLmRpcnR5KSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5wYXNzd29yZC5oYXNFcnJvcigncmVxdWlyZWQnKSkge1xuICAgICAgcmV0dXJuICdwYXNzd29yZCByZXF1aXJlZCc7XG4gICAgfVxuICAgIGlmICh0aGlzLnBhc3N3b3JkLmhhc0Vycm9yKCdwYXNzd29yZFRvb1Nob3J0JykpIHtcbiAgICAgIGxldCBzID0gJ2F0IGxlYXN0IDggY2hhcmFjdGVycyc7XG4gICAgICBpZiAodGhpcy5wYXNzd29yZC52YWx1ZSkge1xuICAgICAgICBzICs9IGAgKG5vdyAke3RoaXMucGFzc3dvcmQudmFsdWUubGVuZ3RofSlgO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHM7XG4gICAgfVxuICAgIGlmICh0aGlzLnBhc3N3b3JkLmhhc0Vycm9yKCdub1VwcGVySW5QYXNzd29yZCcpKSB7XG4gICAgICByZXR1cm4gJ2F0IGxlYXN0IDEgdXBwZXJjYXNlIGxldHRlcic7XG4gICAgfVxuICAgIGlmICh0aGlzLnBhc3N3b3JkLmhhc0Vycm9yKCdub0xvd2VySW5QYXNzd29yZCcpKSB7XG4gICAgICByZXR1cm4gJ2F0IGxlYXN0IDEgbG93ZXJjYXNlIGxldHRlcic7XG4gICAgfVxuICAgIGlmICh0aGlzLnBhc3N3b3JkLmhhc0Vycm9yKCdub1N5bWJvbEluUGFzc3dvcmQnKSkge1xuICAgICAgcmV0dXJuICdhdCBsZWFzdCAxIHB1bmN0dWF0aW9uIG9yIHN5bWJvbCc7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBwdWJsaWMgb25TdWJtaXQoKTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgIXRoaXMucmVnaXN0cmF0aW9uLnZhbGlkIHx8XG4gICAgICB0aGlzLmJ1c3kgfHxcbiAgICAgIHRoaXMubmFtZS5wZW5kaW5nIHx8XG4gICAgICB0aGlzLmVtYWlsLnBlbmRpbmdcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBtb2RlbDogUmVnaXN0cmF0aW9uTW9kZWwgPSB7XG4gICAgICBlbWFpbDogdGhpcy5lbWFpbC52YWx1ZSxcbiAgICAgIG5hbWU6IHRoaXMubmFtZS52YWx1ZSxcbiAgICAgIGZpcnN0TmFtZTogdGhpcy5maXJzdE5hbWUudmFsdWUsXG4gICAgICBsYXN0TmFtZTogdGhpcy5sYXN0TmFtZS52YWx1ZSxcbiAgICAgIHBhc3N3b3JkOiB0aGlzLnBhc3N3b3JkLnZhbHVlLFxuICAgIH07XG5cbiAgICB0aGlzLmJ1c3kgPSB0cnVlO1xuICAgIHRoaXMuX2FjY291bnRTZXJ2aWNlXG4gICAgICAucmVnaXN0ZXIobW9kZWwpXG4gICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIHRoaXMuYnVzeSA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuX3NuYWNrYmFyLm9wZW4oJ1JlZ2lzdHJhdGlvbiBzdWNjZWVkZWQnLCAnT0snKTtcbiAgICAgICAgICAvLyB0aGlzLnJlZ2lzdHJhdGlvbi5yZXNldCgpO1xuICAgICAgICAgIC8vIHRoaXMucmVnaXN0cmF0aW9uLmNsZWFyVmFsaWRhdG9ycygpO1xuICAgICAgICAgIC8vIHRoaXMucmVnaXN0cmF0aW9uLm1hcmtBc1ByaXN0aW5lKCk7XG4gICAgICAgICAgdGhpcy5yZWdpc3RlcmVkLmVtaXQoKTtcbiAgICAgICAgfSxcbiAgICAgICAgKGVycm9yKSA9PiB7XG4gICAgICAgICAgdGhpcy5idXN5ID0gZmFsc2U7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgICAgICAgdGhpcy5fc25hY2tiYXIub3BlbignUmVnaXN0cmF0aW9uIGVycm9yJywgJ09LJyk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gIH1cbn1cbiIsIjxkaXY+XG4gIDxkaXY+XG4gICAgPHA+XG4gICAgICBUbyByZWdpc3RlciBhIG5ldyB1c2VyLCB5b3UgbXVzdCBwcm92aWRlIGhpcyBlbWFpbCBhZGRyZXNzLCBjaG9vc2UgYVxuICAgICAgcGFzc3dvcmQsIGFuZCBjaG9vc2UgYSB1c2VybmFtZSwgd2hpY2ggbXVzdCBiZSB1bmlxdWUgKHlvdSB3aWxsIGJlXG4gICAgICBub3RpZmllZCBpZiBhbm90aGVyIHVzZXIgaGFzIGFscmVhZHkgdGFrZW4gdGhhdCBuYW1lKS4gVGhlIHVzZXJuYW1lIG11c3RcbiAgICAgIGluY2x1ZGUgb25seSBsZXR0ZXJzL2RpZ2l0cywgc3RhcnQgd2l0aCBhIGxldHRlciwgYW5kIGJlIG5vIHNob3J0ZXIgdGhhbiAzXG4gICAgICBjaGFyYWN0ZXJzLCBub3IgbG9uZ2VyIHRoYW4gNTAuXG4gICAgPC9wPlxuICAgIDxwPlxuICAgICAgVG8gcHJvbW90ZSBhIGRlY2VudCBzZWN1cml0eSBsZXZlbCwgdGhlIHBhc3N3b3JkIG11c3QgaW5jbHVkZSBhdCBsZWFzdCA4XG4gICAgICBjaGFyYWN0ZXJzLCB1cHBlcmNhc2UgYW5kIGxvd2VyY2FzZSBsZXR0ZXJzLCBkaWdpdHMsIGFuZCBwdW5jdHVhdGlvbiAobGlrZVxuICAgICAgZGFzaGVzLCBzdG9wcywgcGFyZW50aGVzZXMsIGV0Yy4pLlxuICAgIDwvcD5cbiAgICA8cD5cbiAgICAgIE9uY2UgcmVnaXN0ZXJlZCwgdGhlIHVzZXIgd2lsbCByZWNlaXZlIGFuIGVtYWlsIG1lc3NhZ2UgdG8gdGhlIGVtYWlsXG4gICAgICBhZGRyZXNzIHlvdSBzcGVjaWZpZWQ7IGhlIHdpbGwgaGF2ZSB0byBjbGljayBvbiB0aGUgcHJvdmlkZWQgbGluayB0b1xuICAgICAgY29tcGxldGUgdGhlIHJlZ2lzdHJhdGlvbiBwcm9jZXNzLlxuICAgIDwvcD5cbiAgPC9kaXY+XG5cbiAgPGZvcm0gcm9sZT1cImZvcm1cIiBbZm9ybUdyb3VwXT1cInJlZ2lzdHJhdGlvblwiIChzdWJtaXQpPVwib25TdWJtaXQoKVwiPlxuICAgIDxmaWVsZHNldD5cbiAgICAgIDxsYWJlbD5yZWdpc3RlciB1c2VyPC9sYWJlbD5cbiAgICAgIDwhLS0gZW1haWwgLS0+XG4gICAgICA8ZGl2PlxuICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgICAgdHlwZT1cImVtYWlsXCJcbiAgICAgICAgICAgIGlkPVwiZW1haWxcIlxuICAgICAgICAgICAgbWF4bGVuZ3RoPVwiMjU2XCJcbiAgICAgICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgICBhdXRvZm9jdXNcbiAgICAgICAgICAgIHNwZWxsY2hlY2s9XCJmYWxzZVwiXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cImVtYWlsXCJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImVtYWlsXCJcbiAgICAgICAgICAvPlxuICAgICAgICAgIDxtYXQtZXJyb3I+e3sgZ2V0RW1haWxFcnJvckxhYmVsKCkgfX08L21hdC1lcnJvcj5cbiAgICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJlbWFpbC5wZW5kaW5nXCI+aG91cmdsYXNzPC9tYXQtaWNvbj5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8IS0tIG5hbWUgLS0+XG4gICAgICA8ZGl2PlxuICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgaWQ9XCJuYW1lXCJcbiAgICAgICAgICAgIG1heGxlbmd0aD1cIjUwXCJcbiAgICAgICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgICBwYXR0ZXJuPVwiXlthLXpBLVpdW2EtekEtWjAtOV17Miw0OX0kXCJcbiAgICAgICAgICAgIHNwZWxsY2hlY2s9XCJmYWxzZVwiXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cInVzZXJuYW1lXCJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cIm5hbWVcIlxuICAgICAgICAgIC8+XG4gICAgICAgICAgPG1hdC1lcnJvcj57eyBnZXROYW1lRXJyb3JMYWJlbCgpIH19PC9tYXQtZXJyb3I+XG4gICAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwibmFtZS5wZW5kaW5nXCI+aG91cmdsYXNzPC9tYXQtaWNvbj5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8IS0tIGZpcnN0IG5hbWUgLS0+XG4gICAgICA8ZGl2PlxuICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgaWQ9XCJmaXJzdE5hbWVcIlxuICAgICAgICAgICAgbWF4bGVuZ3RoPVwiNTBcIlxuICAgICAgICAgICAgcmVxdWlyZWRcbiAgICAgICAgICAgIHNwZWxsY2hlY2s9XCJmYWxzZVwiXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cImZpcnN0IG5hbWVcIlxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZmlyc3ROYW1lXCJcbiAgICAgICAgICAvPlxuICAgICAgICAgIDxtYXQtZXJyb3JcbiAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgIGZpcnN0TmFtZS5oYXNFcnJvcigncmVxdWlyZWQnKSAmJlxuICAgICAgICAgICAgICAoZmlyc3ROYW1lLmRpcnR5IHx8IGZpcnN0TmFtZS50b3VjaGVkKVxuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIGNsYXNzPVwidGV4dC1kYW5nZXIgc21hbGxcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIGZpcnN0IG5hbWUgcmVxdWlyZWRcbiAgICAgICAgICA8L21hdC1lcnJvcj5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8IS0tIGxhc3QgbmFtZSAtLT5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICBpZD1cImxhc3ROYW1lXCJcbiAgICAgICAgICAgIG1heGxlbmd0aD1cIjUwXCJcbiAgICAgICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgICBzcGVsbGNoZWNrPVwiZmFsc2VcIlxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJsYXN0IG5hbWVcIlxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibGFzdE5hbWVcIlxuICAgICAgICAgIC8+XG4gICAgICAgICAgPG1hdC1lcnJvclxuICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgbGFzdE5hbWUuaGFzRXJyb3IoJ3JlcXVpcmVkJykgJiZcbiAgICAgICAgICAgICAgKGxhc3ROYW1lLmRpcnR5IHx8IGxhc3ROYW1lLnRvdWNoZWQpXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LWRhbmdlciBzbWFsbFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgbGFzdCBuYW1lIHJlcXVpcmVkXG4gICAgICAgICAgPC9tYXQtZXJyb3I+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBbZm9ybUdyb3VwXT1cInBhc3N3b3Jkc1wiPlxuICAgICAgICA8IS0tIHBhc3N3b3JkIC0tPlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgICAgICB0eXBlPVwicGFzc3dvcmRcIlxuICAgICAgICAgICAgICBuYW1lPVwicGFzc3dvcmRcIlxuICAgICAgICAgICAgICBhdXRvY29tcGxldGU9XCJuZXctcGFzc3dvcmRcIlxuICAgICAgICAgICAgICBtYXhsZW5ndGg9XCI1MFwiXG4gICAgICAgICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgICAgIHNwZWxsY2hlY2s9XCJmYWxzZVwiXG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwicGFzc3dvcmRcIlxuICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJwYXNzd29yZFwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPGF1dGgtand0LXBhc3N3b3JkLXN0cmVuZ3RoLWJhciBbcGFzc3dvcmRUb0NoZWNrXT1cInBhc3N3b3JkLnZhbHVlXCI+XG4gICAgICAgICAgICA8L2F1dGgtand0LXBhc3N3b3JkLXN0cmVuZ3RoLWJhcj5cbiAgICAgICAgICAgIDxtYXQtZXJyb3I+e3sgZ2V0UGFzc3dvcmRFcnJvckxhYmVsKCkgfX08L21hdC1lcnJvcj5cbiAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8IS0tIGNvbmZpcm0gcGFzc3dvcmQgLS0+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgICAgIHR5cGU9XCJwYXNzd29yZFwiXG4gICAgICAgICAgICAgIG5hbWU9XCJjb25maXJtUGFzc3dvcmRcIlxuICAgICAgICAgICAgICBtYXhsZW5ndGg9XCI1MFwiXG4gICAgICAgICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgICAgIHNwZWxsY2hlY2s9XCJmYWxzZVwiXG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiY29uZmlybSBwYXNzd29yZFwiXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImNvbmZpcm1QYXNzd29yZFwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPG1hdC1lcnJvclxuICAgICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgIHBhc3N3b3Jkcy5oYXNFcnJvcignYXJlRXF1YWwnKSAmJlxuICAgICAgICAgICAgICAgIChjb25maXJtUGFzc3dvcmQuZGlydHkgfHwgY29uZmlybVBhc3N3b3JkLnRvdWNoZWQpXG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHBhc3N3b3JkIGRpZmZlcnMgZnJvbSBjb25maXJtYXRpb24gcGFzc3dvcmRcbiAgICAgICAgICAgIDwvbWF0LWVycm9yPlxuICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxidXR0b25cbiAgICAgICAgbWF0LXJhaXNlZC1idXR0b25cbiAgICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJcbiAgICAgICAgICAhcmVnaXN0cmF0aW9uLnZhbGlkIHx8IGJ1c3kgfHwgbmFtZS5wZW5kaW5nIHx8IGVtYWlsLnBlbmRpbmdcbiAgICAgICAgXCJcbiAgICAgID5cbiAgICAgICAgcmVnaXN0ZXJcbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPG1hdC1wcm9ncmVzcy1zcGlubmVyXG4gICAgICAgIGRpYW1ldGVyPVwiMjBcIlxuICAgICAgICAqbmdJZj1cImJ1c3lcIlxuICAgICAgICBhcmlhLWxhYmVsPVwiQnVzeVwiXG4gICAgICA+PC9tYXQtcHJvZ3Jlc3Mtc3Bpbm5lcj5cbiAgICA8L2ZpZWxkc2V0PlxuICA8L2Zvcm0+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -15,20 +15,15 @@ export class ConfirmDialogComponent {
|
|
|
15
15
|
}
|
|
16
16
|
ngOnInit() { }
|
|
17
17
|
}
|
|
18
|
-
ConfirmDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
19
|
-
ConfirmDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "
|
|
20
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
18
|
+
ConfirmDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: ConfirmDialogComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
19
|
+
ConfirmDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.5", type: ConfirmDialogComponent, selector: "ng-component", ngImport: i0, template: "<h1 mat-dialog-title>{{ title }}</h1>\r\n<mat-dialog-content>\r\n {{ prompt }}\r\n</mat-dialog-content>\r\n<mat-dialog-actions>\r\n <button\r\n type=\"button\"\r\n mat-raised-button\r\n color=\"warn\"\r\n (click)=\"dialogRef.close(true)\"\r\n >\r\n {{ ok }}\r\n </button>\r\n <button type=\"button\" mat-button (click)=\"dialogRef.close()\">\r\n {{ cancel }}\r\n </button>\r\n</mat-dialog-actions>\r\n", styles: [""], components: [{ type: i2.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"] }], directives: [{ type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }] });
|
|
20
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: ConfirmDialogComponent, decorators: [{
|
|
21
21
|
type: Component,
|
|
22
|
-
args: [{
|
|
23
|
-
// https://github.com/angular/components/issues/7718
|
|
24
|
-
// selector: 'cadmus-confirm-dialog',
|
|
25
|
-
templateUrl: './confirm-dialog.component.html',
|
|
26
|
-
styleUrls: ['./confirm-dialog.component.css'],
|
|
27
|
-
}]
|
|
22
|
+
args: [{ template: "<h1 mat-dialog-title>{{ title }}</h1>\r\n<mat-dialog-content>\r\n {{ prompt }}\r\n</mat-dialog-content>\r\n<mat-dialog-actions>\r\n <button\r\n type=\"button\"\r\n mat-raised-button\r\n color=\"warn\"\r\n (click)=\"dialogRef.close(true)\"\r\n >\r\n {{ ok }}\r\n </button>\r\n <button type=\"button\" mat-button (click)=\"dialogRef.close()\">\r\n {{ cancel }}\r\n </button>\r\n</mat-dialog-actions>\r\n", styles: [""] }]
|
|
28
23
|
}], ctorParameters: function () { return [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
|
|
29
24
|
type: Optional
|
|
30
25
|
}, {
|
|
31
26
|
type: Inject,
|
|
32
27
|
args: [MAT_DIALOG_DATA]
|
|
33
28
|
}] }]; } });
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybS1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlybWlkb24vYXV0aC1qd3QtYWRtaW4vc3JjL2xpYi9jb21wb25lbnRzL2NvbmZpcm0tZGlhbG9nL2NvbmZpcm0tZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cm1pZG9uL2F1dGgtand0LWFkbWluL3NyYy9saWIvY29tcG9uZW50cy9jb25maXJtLWRpYWxvZy9jb25maXJtLWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEUsT0FBTyxFQUFnQixlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7OztBQUV6RSx5RkFBeUY7QUFRekYsTUFBTSxPQUFPLHNCQUFzQjtJQU1qQyxZQUNTLFNBQStDLEVBQ1YsSUFBUztRQUQ5QyxjQUFTLEdBQVQsU0FBUyxDQUFzQztRQUNWLFNBQUksR0FBSixJQUFJLENBQUs7UUFFckQsSUFBSSxDQUFDLEtBQUssR0FBRyxTQUFTLENBQUM7UUFDdkIsSUFBSSxDQUFDLE1BQU0sR0FBRyxvQkFBb0IsQ0FBQztRQUNuQyxJQUFJLENBQUMsRUFBRSxHQUFHLEtBQUssQ0FBQztRQUNoQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztJQUNyQixDQUFDO0lBRUQsUUFBUSxLQUFJLENBQUM7O21IQWhCRixzQkFBc0IsOENBUVgsZUFBZTt1R0FSMUIsc0JBQXNCLG9EQ1huQywyYUFpQkE7MkZETmEsc0JBQXNCO2tCQU5sQyxTQUFTOzs7MEJBY0wsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIEluamVjdCwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nUmVmLCBNQVRfRElBTE9HX0RBVEEgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5cclxuLy8gaHR0cHM6Ly9tZWRpdW0uY29tL0B0YXJpay5uemwvbWFraW5nLXVzZS1vZi1kaWFsb2dzLWluLW1hdGVyaWFsLTItbWRkaWFsb2ctNzUzM2QyN2RmNDFcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2NvbXBvbmVudHMvaXNzdWVzLzc3MThcclxuICAvLyBzZWxlY3RvcjogJ2NhZG11cy1jb25maXJtLWRpYWxvZycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbmZpcm0tZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jb25maXJtLWRpYWxvZy5jb21wb25lbnQuY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb25maXJtRGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBwdWJsaWMgdGl0bGU6IHN0cmluZztcclxuICBwdWJsaWMgcHJvbXB0OiBzdHJpbmc7XHJcbiAgcHVibGljIG9rOiBzdHJpbmc7XHJcbiAgcHVibGljIGNhbmNlbDogc3RyaW5nO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxDb25maXJtRGlhbG9nQ29tcG9uZW50PixcclxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogYW55XHJcbiAgKSB7XHJcbiAgICB0aGlzLnRpdGxlID0gJ0NvbmZpcm0nO1xyXG4gICAgdGhpcy5wcm9tcHQgPSAnQ29uZmlybSBvcGVyYXRpb24/JztcclxuICAgIHRoaXMub2sgPSAneWVzJztcclxuICAgIHRoaXMuY2FuY2VsID0gJ25vJztcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge31cclxufVxyXG4iLCI8aDEgbWF0LWRpYWxvZy10aXRsZT57eyB0aXRsZSB9fTwvaDE+XHJcbjxtYXQtZGlhbG9nLWNvbnRlbnQ+XHJcbiAge3sgcHJvbXB0IH19XHJcbjwvbWF0LWRpYWxvZy1jb250ZW50PlxyXG48bWF0LWRpYWxvZy1hY3Rpb25zPlxyXG4gIDxidXR0b25cclxuICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgbWF0LXJhaXNlZC1idXR0b25cclxuICAgIGNvbG9yPVwid2FyblwiXHJcbiAgICAoY2xpY2spPVwiZGlhbG9nUmVmLmNsb3NlKHRydWUpXCJcclxuICA+XHJcbiAgICB7eyBvayB9fVxyXG4gIDwvYnV0dG9uPlxyXG4gIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIG1hdC1idXR0b24gKGNsaWNrKT1cImRpYWxvZ1JlZi5jbG9zZSgpXCI+XHJcbiAgICB7eyBjYW5jZWwgfX1cclxuICA8L2J1dHRvbj5cclxuPC9tYXQtZGlhbG9nLWFjdGlvbnM+XHJcbiJdfQ==
|
|
@@ -67,18 +67,14 @@ export class PasswordStrengthBarComponent {
|
|
|
67
67
|
}
|
|
68
68
|
}
|
|
69
69
|
}
|
|
70
|
-
PasswordStrengthBarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
71
|
-
PasswordStrengthBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "
|
|
72
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
70
|
+
PasswordStrengthBarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: PasswordStrengthBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
71
|
+
PasswordStrengthBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.5", type: PasswordStrengthBarComponent, selector: "auth-jwt-password-strength-bar", inputs: { passwordToCheck: "passwordToCheck" }, outputs: { strengthChange: "strengthChange" }, usesOnChanges: true, ngImport: i0, template: "<div id=\"strength\">\n <small>strength:</small>\n <ul id=\"strengthBar\">\n <li class=\"point\" [style.background-color]=\"bars[0]\"></li>\n <li class=\"point\" [style.background-color]=\"bars[1]\"></li>\n <li class=\"point\" [style.background-color]=\"bars[2]\"></li>\n <li class=\"point\" [style.background-color]=\"bars[3]\"></li>\n <li class=\"point\" [style.background-color]=\"bars[4]\"></li>\n </ul>\n</div>\n", styles: ["ul#strengthBar{display:inline;list-style:none;margin:0 0 0 15px;padding:0;vertical-align:2px}li.point:last{margin:0!important}li.point{background:#ddd;border-radius:2px;display:inline-block;height:5px;margin-right:1px;width:20px}\n"] });
|
|
72
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: PasswordStrengthBarComponent, decorators: [{
|
|
73
73
|
type: Component,
|
|
74
|
-
args: [{
|
|
75
|
-
selector: 'auth-jwt-password-strength-bar',
|
|
76
|
-
templateUrl: './password-strength-bar.component.html',
|
|
77
|
-
styleUrls: ['./password-strength-bar.component.css'],
|
|
78
|
-
}]
|
|
74
|
+
args: [{ selector: 'auth-jwt-password-strength-bar', template: "<div id=\"strength\">\n <small>strength:</small>\n <ul id=\"strengthBar\">\n <li class=\"point\" [style.background-color]=\"bars[0]\"></li>\n <li class=\"point\" [style.background-color]=\"bars[1]\"></li>\n <li class=\"point\" [style.background-color]=\"bars[2]\"></li>\n <li class=\"point\" [style.background-color]=\"bars[3]\"></li>\n <li class=\"point\" [style.background-color]=\"bars[4]\"></li>\n </ul>\n</div>\n", styles: ["ul#strengthBar{display:inline;list-style:none;margin:0 0 0 15px;padding:0;vertical-align:2px}li.point:last{margin:0!important}li.point{background:#ddd;border-radius:2px;display:inline-block;height:5px;margin-right:1px;width:20px}\n"] }]
|
|
79
75
|
}], ctorParameters: function () { return []; }, propDecorators: { passwordToCheck: [{
|
|
80
76
|
type: Input
|
|
81
77
|
}], strengthChange: [{
|
|
82
78
|
type: Output
|
|
83
79
|
}] } });
|
|
84
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFzc3dvcmQtc3RyZW5ndGgtYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cm1pZG9uL2F1dGgtand0LWFkbWluL3NyYy9saWIvY29tcG9uZW50cy9wYXNzd29yZC1zdHJlbmd0aC1iYXIvcGFzc3dvcmQtc3RyZW5ndGgtYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cm1pZG9uL2F1dGgtand0LWFkbWluL3NyYy9saWIvY29tcG9uZW50cy9wYXNzd29yZC1zdHJlbmd0aC1iYXIvcGFzc3dvcmQtc3RyZW5ndGgtYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEdBRVAsTUFBTSxlQUFlLENBQUM7O0FBT3ZCLE1BQU0sT0FBTyw0QkFBNEI7SUFTdkM7UUFSUSxZQUFPLEdBQUcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFJakQsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBS3BELElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUNqRCxJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRU8sZUFBZSxDQUFDLENBQVM7UUFDL0IsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsTUFBTSxLQUFLLEdBQUcsdUJBQXVCLENBQUMsQ0FBQyxJQUFJO1FBRTNDLE1BQU0sWUFBWSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEMsTUFBTSxZQUFZLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0QyxNQUFNLE9BQU8s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QyxDQUFDO1NBQ3BDO0lBQ0gsQ0FBQztJQUVPLFlBQVksQ0FBQyxLQUFhLEVBQUUsR0FBVztRQUM3QyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQzlCLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO1NBQ3BCO0lBQ0gsQ0FBQzs7eUhBOUVVLDRCQUE0Qjs2R0FBNUIsNEJBQTRCLDBMQ2R6QyxxYkFVQTsyRkRJYSw0QkFBNEI7a0JBTHhDLFNBQVM7K0JBQ0UsZ0NBQWdDOzBFQU9qQyxlQUFlO3NCQUF2QixLQUFLO2dCQUVJLGNBQWM7c0JBQXZCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIE9uQ2hhbmdlcyxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2UsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhdXRoLWp3dC1wYXNzd29yZC1zdHJlbmd0aC1iYXInLFxuICB0ZW1wbGF0ZVVybDogJy4vcGFzc3dvcmQtc3RyZW5ndGgtYmFyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcGFzc3dvcmQtc3RyZW5ndGgtYmFyLmNvbXBvbmVudC5jc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgUGFzc3dvcmRTdHJlbmd0aEJhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIHByaXZhdGUgX2NvbG9ycyA9IFsnI0YwMCcsICcjRjkwJywgJyNGRjAnLCAnIzlGMCcsICcjMEYwJ107XG5cbiAgQElucHV0KCkgcGFzc3dvcmRUb0NoZWNrOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgQE91dHB1dCgpIHN0cmVuZ3RoQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgcHVibGljIGJhcnM6IHN0cmluZ1tdO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuc3RyZW5ndGhDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcbiAgICB0aGlzLmJhcnMgPSBbXTtcbiAgfVxuXG4gIHByaXZhdGUgbWVhc3VyZVN0cmVuZ3RoKHA6IHN0cmluZyk6IG51bWJlciB7XG4gICAgbGV0IGZvcmNlID0gMDtcbiAgICBjb25zdCByZWdleCA9IC9bJC0vOi0/ey1+IVwiXl9gXFxbXFxdXS9nOyAvLyBcIlxuXG4gICAgY29uc3QgbG93ZXJMZXR0ZXJzID0gL1thLXpdKy8udGVzdChwKTtcbiAgICBjb25zdCB1cHBlckxldHRlcnMgPSAvW0EtWl0rLy50ZXN0KHApO1xuICAgIGNvbnN0IG51bWJlcnMgPSAvWzAtOV0rLy50ZXN0KHApO1xuICAgIGNvbnN0IHN5bWJvbHMgPSByZWdleC50ZXN0KHApO1xuXG4gICAgY29uc3QgZmxhZ3MgPSBbbG93ZXJMZXR0ZXJzLCB1cHBlckxldHRlcnMsIG51bWJlcnMsIHN5bWJvbHNdO1xuXG4gICAgbGV0IHBhc3NlZE1hdGNoZXMgPSAwO1xuICAgIGZvciAoY29uc3QgZmxhZyBvZiBmbGFncykge1xuICAgICAgcGFzc2VkTWF0Y2hlcyArPSBmbGFnID09PSB0cnVlID8gMSA6IDA7XG4gICAgfVxuXG4gICAgZm9yY2UgKz0gMiAqIHAubGVuZ3RoICsgKHAubGVuZ3RoID49IDEwID8gMSA6IDApO1xuICAgIGZvcmNlICs9IHBhc3NlZE1hdGNoZXMgKiAxMDtcblxuICAgIC8vIHBlbmFsdHkgKHNob3J0IHBhc3N3b3JkKVxuICAgIGZvcmNlID0gcC5sZW5ndGggPD0gNiA/IE1hdGgubWluKGZvcmNlLCAxMCkgOiBmb3JjZTtcblxuICAgIC8vIHBlbmFsdHkgKHBvb3IgbGV0aWV0eSBvZiBjaGFyYWN0ZXJzKVxuICAgIGZvcmNlID0gcGFzc2VkTWF0Y2hlcyA9PT0gMSA/IE1hdGgubWluKGZvcmNlLCAxMCkgOiBmb3JjZTtcbiAgICBmb3JjZSA9IHBhc3NlZE1hdGNoZXMgPT09IDIgPyBNYXRoLm1pbihmb3JjZSwgMjApIDogZm9yY2U7XG4gICAgZm9yY2UgPSBwYXNzZWRNYXRjaGVzID09PSAzID8gTWF0aC5taW4oZm9yY2UsIDQwKSA6IGZvcmNlO1xuXG4gICAgcmV0dXJuIGZvcmNlO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb2xvcihzOiBudW1iZXIpIHtcbiAgICBsZXQgaWR4ID0gMDtcbiAgICBpZiAocyA8PSAxMCkge1xuICAgICAgaWR4ID0gMDtcbiAgICB9IGVsc2UgaWYgKHMgPD0gMjApIHtcbiAgICAgIGlkeCA9IDE7XG4gICAgfSBlbHNlIGlmIChzIDw9IDMwKSB7XG4gICAgICBpZHggPSAyO1xuICAgIH0gZWxzZSBpZiAocyA8PSA0MCkge1xuICAgICAgaWR4ID0gMztcbiAgICB9IGVsc2Uge1xuICAgICAgaWR4ID0gNDtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIGlkeDogaWR4ICsgMSxcbiAgICAgIGNvbDogdGhpcy5fY29sb3JzW2lkeF0sXG4gICAgfTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IHsgW3Byb3BOYW1lOiBzdHJpbmddOiBTaW1wbGVDaGFuZ2UgfSk6IHZvaWQge1xuICAgIGNvbnN0IHBhc3N3b3JkID0gY2hhbmdlc1sncGFzc3dvcmRUb0NoZWNrJ10uY3VycmVudFZhbHVlO1xuICAgIHRoaXMuc2V0QmFyQ29sb3JzKDUsICcjREREJyk7XG4gICAgaWYgKHBhc3N3b3JkKSB7XG4gICAgICBjb25zdCBzdHJlbmd0aCA9IHRoaXMubWVhc3VyZVN0cmVuZ3RoKHBhc3N3b3JkKTtcbiAgICAgIGNvbnN0IGMgPSB0aGlzLmdldENvbG9yKHN0cmVuZ3RoKTtcbiAgICAgIHRoaXMuc2V0QmFyQ29sb3JzKGMuaWR4LCBjLmNvbCk7XG4gICAgICB0aGlzLnN0cmVuZ3RoQ2hhbmdlLmVtaXQoc3RyZW5ndGgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0QmFyQ29sb3JzKGNvdW50OiBudW1iZXIsIGNvbDogc3RyaW5nKSB7XG4gICAgZm9yIChsZXQgbiA9IDA7IG4gPCBjb3VudDsgbisrKSB7XG4gICAgICB0aGlzLmJhcnNbbl0gPSBjb2w7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGlkPVwic3RyZW5ndGhcIj5cbiAgPHNtYWxsPnN0cmVuZ3RoOjwvc21hbGw+XG4gIDx1bCBpZD1cInN0cmVuZ3RoQmFyXCI+XG4gICAgPGxpIGNsYXNzPVwicG9pbnRcIiBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09XCJiYXJzWzBdXCI+PC9saT5cbiAgICA8bGkgY2xhc3M9XCJwb2ludFwiIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cImJhcnNbMV1cIj48L2xpPlxuICAgIDxsaSBjbGFzcz1cInBvaW50XCIgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwiYmFyc1syXVwiPjwvbGk+XG4gICAgPGxpIGNsYXNzPVwicG9pbnRcIiBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09XCJiYXJzWzNdXCI+PC9saT5cbiAgICA8bGkgY2xhc3M9XCJwb2ludFwiIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cImJhcnNbNF1cIj48L2xpPlxuICA8L3VsPlxuPC9kaXY+XG4iXX0=
|
|
File without changes
|
package/{esm2015/lib/components/state/users.query.js → esm2020/lib/components/state/users.query.mjs}
RENAMED
|
@@ -11,9 +11,9 @@ export class UsersQuery extends QueryEntity {
|
|
|
11
11
|
return this.select((state) => state.filter);
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
|
-
UsersQuery.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
15
|
-
UsersQuery.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
16
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
14
|
+
UsersQuery.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: UsersQuery, deps: [{ token: i1.UsersStore }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
15
|
+
UsersQuery.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: UsersQuery, providedIn: 'root' });
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: UsersQuery, decorators: [{
|
|
17
17
|
type: Injectable,
|
|
18
18
|
args: [{ providedIn: 'root' }]
|
|
19
19
|
}], ctorParameters: function () { return [{ type: i1.UsersStore }]; } });
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "./users.store";
|
|
4
|
+
import * as i2 from "../../services/auth-jwt-account.service";
|
|
5
|
+
export class UsersService {
|
|
6
|
+
constructor(_store, _accountService) {
|
|
7
|
+
this._store = _store;
|
|
8
|
+
this._accountService = _accountService;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Update the filter in the store.
|
|
12
|
+
* @param filter The filter.
|
|
13
|
+
*/
|
|
14
|
+
updateFilter(filter) {
|
|
15
|
+
this._store.update({
|
|
16
|
+
filter: filter,
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
setActive(name) {
|
|
20
|
+
this._store.setActive(name);
|
|
21
|
+
}
|
|
22
|
+
updateActive(user) {
|
|
23
|
+
const promise = new Promise((resolve, reject) => {
|
|
24
|
+
this._store.setLoading(true);
|
|
25
|
+
this._accountService.updateUser(user).subscribe((_) => {
|
|
26
|
+
this._store.setLoading(false);
|
|
27
|
+
this._store.setError(null);
|
|
28
|
+
this._store.updateActive((u) => {
|
|
29
|
+
return { ...user };
|
|
30
|
+
});
|
|
31
|
+
resolve(true);
|
|
32
|
+
}, (error) => {
|
|
33
|
+
console.error(error);
|
|
34
|
+
this._store.setLoading(false);
|
|
35
|
+
this._store.setError('Error updating user');
|
|
36
|
+
resolve(false);
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
return promise;
|
|
40
|
+
}
|
|
41
|
+
deleteUser(name) {
|
|
42
|
+
const promise = new Promise((resolve, reject) => {
|
|
43
|
+
this._store.setLoading(true);
|
|
44
|
+
this._accountService.deleteUser(name).subscribe((_) => {
|
|
45
|
+
this._store.setLoading(false);
|
|
46
|
+
this._store.setError(null);
|
|
47
|
+
this._store.remove(name);
|
|
48
|
+
resolve(true);
|
|
49
|
+
}, (error) => {
|
|
50
|
+
console.error(error);
|
|
51
|
+
this._store.setLoading(false);
|
|
52
|
+
this._store.setError('Error deleting user');
|
|
53
|
+
reject(error);
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
return promise;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
UsersService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: UsersService, deps: [{ token: i1.UsersStore }, { token: i2.AuthJwtAccountService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
60
|
+
UsersService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: UsersService, providedIn: 'root' });
|
|
61
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: UsersService, decorators: [{
|
|
62
|
+
type: Injectable,
|
|
63
|
+
args: [{ providedIn: 'root' }]
|
|
64
|
+
}], ctorParameters: function () { return [{ type: i1.UsersStore }, { type: i2.AuthJwtAccountService }]; } });
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlcnMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cm1pZG9uL2F1dGgtand0LWFkbWluL3NyYy9saWIvY29tcG9uZW50cy9zdGF0ZS91c2Vycy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFTM0MsTUFBTSxPQUFPLFlBQVk7SUFDdkIsWUFDVSxNQUFrQixFQUNsQixlQUFzQztRQUR0QyxXQUFNLEdBQU4sTUFBTSxDQUFZO1FBQ2xCLG9CQUFlLEdBQWYsZUFBZSxDQUF1QjtJQUM3QyxDQUFDO0lBRUo7OztPQUdHO0lBQ0ksWUFBWSxDQUFDLE1BQWtCO1FBQ3BDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO1lBQ2pCLE1BQU0sRUFBRSxNQUFNO1NBQ2YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLFNBQVMsQ0FBQyxJQUFtQjtRQUNsQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRU0sWUFBWSxDQUFDLElBQVU7UUFDNUIsTUFBTSxPQUFPLEdBQXFCLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ2hFLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBRTdCLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FDN0MsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDSixJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDOUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzNCLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7b0JBQzdCLE9BQU8sRUFBRSxHQUFHLElBQUksRUFBRSxDQUFDO2dCQUNyQixDQUFDLENBQUMsQ0FBQztnQkFDSCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDaEIsQ0FBQyxFQUNELENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ1IsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDckIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzlCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLHFCQUFxQixDQUFDLENBQUM7Z0JBQzVDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNqQixDQUFDLENBQ0YsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVNLFVBQVUsQ0FBQyxJQUFZO1FBQzVCLE1BQU0sT0FBTyxHQUFxQixJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNoRSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUU3QixJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQzdDLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQ0osSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzlCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUMzQixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDekIsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2hCLENBQUMsRUFDRCxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUNSLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUM5QixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO2dCQUM1QyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDaEIsQ0FBQyxDQUNGLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7O3lHQWhFVSxZQUFZOzZHQUFaLFlBQVksY0FEQyxNQUFNOzJGQUNuQixZQUFZO2tCQUR4QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVXNlciB9IGZyb20gJ0BteXJtaWRvbi9hdXRoLWp3dC1sb2dpbic7XHJcbmltcG9ydCB7XHJcbiAgQXV0aEp3dEFjY291bnRTZXJ2aWNlLFxyXG4gIFVzZXJGaWx0ZXIsXHJcbn0gZnJvbSAnLi4vLi4vc2VydmljZXMvYXV0aC1qd3QtYWNjb3VudC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVXNlcnNTdG9yZSB9IGZyb20gJy4vdXNlcnMuc3RvcmUnO1xyXG5cclxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcclxuZXhwb3J0IGNsYXNzIFVzZXJzU2VydmljZSB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9zdG9yZTogVXNlcnNTdG9yZSxcclxuICAgIHByaXZhdGUgX2FjY291bnRTZXJ2aWNlOiBBdXRoSnd0QWNjb3VudFNlcnZpY2VcclxuICApIHt9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZSB0aGUgZmlsdGVyIGluIHRoZSBzdG9yZS5cclxuICAgKiBAcGFyYW0gZmlsdGVyIFRoZSBmaWx0ZXIuXHJcbiAgICovXHJcbiAgcHVibGljIHVwZGF0ZUZpbHRlcihmaWx0ZXI6IFVzZXJGaWx0ZXIpOiB2b2lkIHtcclxuICAgIHRoaXMuX3N0b3JlLnVwZGF0ZSh7XHJcbiAgICAgIGZpbHRlcjogZmlsdGVyLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0QWN0aXZlKG5hbWU6IHN0cmluZyB8IG51bGwpOiB2b2lkIHtcclxuICAgIHRoaXMuX3N0b3JlLnNldEFjdGl2ZShuYW1lKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB1cGRhdGVBY3RpdmUodXNlcjogVXNlcik6IFByb21pc2U8Ym9vbGVhbj4ge1xyXG4gICAgY29uc3QgcHJvbWlzZTogUHJvbWlzZTxib29sZWFuPiA9IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgdGhpcy5fc3RvcmUuc2V0TG9hZGluZyh0cnVlKTtcclxuXHJcbiAgICAgIHRoaXMuX2FjY291bnRTZXJ2aWNlLnVwZGF0ZVVzZXIodXNlcikuc3Vic2NyaWJlKFxyXG4gICAgICAgIChfKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLl9zdG9yZS5zZXRMb2FkaW5nKGZhbHNlKTtcclxuICAgICAgICAgIHRoaXMuX3N0b3JlLnNldEVycm9yKG51bGwpO1xyXG4gICAgICAgICAgdGhpcy5fc3RvcmUudXBkYXRlQWN0aXZlKCh1KSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiB7IC4uLnVzZXIgfTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgcmVzb2x2ZSh0cnVlKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XHJcbiAgICAgICAgICB0aGlzLl9zdG9yZS5zZXRMb2FkaW5nKGZhbHNlKTtcclxuICAgICAgICAgIHRoaXMuX3N0b3JlLnNldEVycm9yKCdFcnJvciB1cGRhdGluZyB1c2VyJyk7XHJcbiAgICAgICAgICByZXNvbHZlKGZhbHNlKTtcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBwcm9taXNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGRlbGV0ZVVzZXIobmFtZTogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICBjb25zdCBwcm9taXNlOiBQcm9taXNlPGJvb2xlYW4+ID0gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICB0aGlzLl9zdG9yZS5zZXRMb2FkaW5nKHRydWUpO1xyXG5cclxuICAgICAgdGhpcy5fYWNjb3VudFNlcnZpY2UuZGVsZXRlVXNlcihuYW1lKS5zdWJzY3JpYmUoXHJcbiAgICAgICAgKF8pID0+IHtcclxuICAgICAgICAgIHRoaXMuX3N0b3JlLnNldExvYWRpbmcoZmFsc2UpO1xyXG4gICAgICAgICAgdGhpcy5fc3RvcmUuc2V0RXJyb3IobnVsbCk7XHJcbiAgICAgICAgICB0aGlzLl9zdG9yZS5yZW1vdmUobmFtZSk7XHJcbiAgICAgICAgICByZXNvbHZlKHRydWUpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcclxuICAgICAgICAgIHRoaXMuX3N0b3JlLnNldExvYWRpbmcoZmFsc2UpO1xyXG4gICAgICAgICAgdGhpcy5fc3RvcmUuc2V0RXJyb3IoJ0Vycm9yIGRlbGV0aW5nIHVzZXInKTtcclxuICAgICAgICAgIHJlamVjdChlcnJvcik7XHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gcHJvbWlzZTtcclxuICB9XHJcbn1cclxuIl19
|
package/{esm2015/lib/components/state/users.store.js → esm2020/lib/components/state/users.store.mjs}
RENAMED
|
@@ -14,13 +14,13 @@ let UsersStore = class UsersStore extends EntityStore {
|
|
|
14
14
|
super(initialState);
|
|
15
15
|
}
|
|
16
16
|
};
|
|
17
|
-
UsersStore.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
18
|
-
UsersStore.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
17
|
+
UsersStore.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: UsersStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
18
|
+
UsersStore.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: UsersStore, providedIn: 'root' });
|
|
19
19
|
UsersStore = __decorate([
|
|
20
20
|
StoreConfig({ name: 'Users', idKey: 'userName', resettable: true })
|
|
21
21
|
], UsersStore);
|
|
22
22
|
export { UsersStore };
|
|
23
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
23
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: UsersStore, decorators: [{
|
|
24
24
|
type: Injectable,
|
|
25
25
|
args: [{ providedIn: 'root' }]
|
|
26
26
|
}], ctorParameters: function () { return []; } });
|