@bizdoc/core 1.7.0-next.6 → 1.7.0-next.7
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/bundles/bizdoc-core.umd.js +453 -1311
- package/bundles/bizdoc-core.umd.js.map +1 -1
- package/esm2015/lib/app.component.js +7 -13
- package/esm2015/lib/bizdoc.module.js +2 -37
- package/esm2015/lib/core/configuration.js +1 -1
- package/esm2015/lib/core/session.service.js +1 -9
- package/esm2015/lib/cube/accum/accum.component.js +2 -4
- package/esm2015/lib/cube/chart/chart.component.js +1 -1
- package/esm2015/lib/cube/filter/filter-tags.component.exp.js +8 -8
- package/esm2015/lib/cube/filter/filter.component.js +2 -2
- package/esm2015/lib/home/sign/sign.component.js +2 -2
- package/esm2015/lib/impersonate/impersonate.component.js +69 -0
- package/esm2015/lib/shared.module.js +8 -13
- package/esm2015/lib/system.module.js +8 -10
- package/esm2015/lib/views/cube/cube-base.js +4 -6
- package/esm2015/lib/views/cube/matrix.component.js +13 -31
- package/esm2015/lib/views/cube/view.component.js +13 -12
- package/esm2015/lib/views/views.component.js +10 -11
- package/esm2015/public-api.js +2 -6
- package/fesm2015/bizdoc-core.js +239 -1038
- package/fesm2015/bizdoc-core.js.map +1 -1
- package/lib/app.component.d.ts +1 -4
- package/lib/core/configuration.d.ts +1 -17
- package/lib/core/session.service.d.ts +0 -5
- package/lib/cube/accum/accum.component.d.ts +1 -2
- package/lib/cube/filter/filter-tags.component.exp.d.ts +2 -2
- package/lib/{login/impersonate → impersonate}/impersonate.component.d.ts +3 -3
- package/lib/shared.module.d.ts +158 -162
- package/lib/system.module.d.ts +25 -26
- package/lib/views/cube/cube-base.d.ts +12 -9
- package/lib/views/cube/matrix.component.d.ts +0 -13
- package/lib/views/cube/view.component.d.ts +2 -7
- package/lib/views/views.component.d.ts +3 -5
- package/package.json +1 -4
- package/public-api.d.ts +2 -6
- package/esm2015/lib/admin/users/users.component.js +0 -155
- package/esm2015/lib/admin/users/users.service.js +0 -29
- package/esm2015/lib/login/forgot/forgot.component.js +0 -50
- package/esm2015/lib/login/form.authentication.js +0 -71
- package/esm2015/lib/login/form.interceptor.js +0 -26
- package/esm2015/lib/login/impersonate/impersonate.component.js +0 -69
- package/esm2015/lib/login/login.component.js +0 -130
- package/esm2015/lib/login/okta.authentication.js +0 -41
- package/esm2015/lib/login/okta.component.js +0 -84
- package/esm2015/lib/login/okta.interceptor.js +0 -30
- package/esm2015/lib/login/prompt/prompt.component.js +0 -194
- package/esm2015/lib/login/signin-info.service.js +0 -49
- package/lib/admin/users/users.component.d.ts +0 -41
- package/lib/admin/users/users.service.d.ts +0 -30
- package/lib/login/forgot/forgot.component.d.ts +0 -20
- package/lib/login/form.authentication.d.ts +0 -29
- package/lib/login/form.interceptor.d.ts +0 -11
- package/lib/login/login.component.d.ts +0 -18
- package/lib/login/okta.authentication.d.ts +0 -13
- package/lib/login/okta.component.d.ts +0 -18
- package/lib/login/okta.interceptor.d.ts +0 -11
- package/lib/login/prompt/prompt.component.d.ts +0 -45
- package/lib/login/signin-info.service.d.ts +0 -18
@@ -1,194 +0,0 @@
|
|
1
|
-
import { Component, Output, EventEmitter, Input, Inject, ViewChild, ElementRef } from '@angular/core';
|
2
|
-
import { BIZDOC_CONFIG } from '../../core/configuration';
|
3
|
-
import { FormGroup, FormControl, Validators } from '@angular/forms';
|
4
|
-
import { trigger, state, style, transition, animate } from '@angular/animations';
|
5
|
-
import { Subject } from 'rxjs';
|
6
|
-
import { debounceTime, takeUntil, switchMap } from 'rxjs/operators';
|
7
|
-
import { isMobile } from '../../core/functions';
|
8
|
-
import { AuthenticationImpl } from '../../core/authentication';
|
9
|
-
import * as i0 from "@angular/core";
|
10
|
-
import * as i1 from "../../core/session.service";
|
11
|
-
import * as i2 from "../../core/prompt.service";
|
12
|
-
import * as i3 from "@angular/cdk/text-field";
|
13
|
-
import * as i4 from "@angular/material/button";
|
14
|
-
import * as i5 from "@angular/material/icon";
|
15
|
-
import * as i6 from "@angular/material/form-field";
|
16
|
-
import * as i7 from "@angular/material/autocomplete";
|
17
|
-
import * as i8 from "@angular/material/core";
|
18
|
-
import * as i9 from "@angular/material/checkbox";
|
19
|
-
import * as i10 from "@angular/forms";
|
20
|
-
import * as i11 from "@angular/flex-layout/flex";
|
21
|
-
import * as i12 from "@angular/common";
|
22
|
-
import * as i13 from "@angular/material/input";
|
23
|
-
import * as i14 from "../../core/pipes/translate.pipe";
|
24
|
-
import * as i15 from "../form.authentication";
|
25
|
-
/** prompt component*/
|
26
|
-
export class CredetialsComponent {
|
27
|
-
/** prompt ctor */
|
28
|
-
constructor(config, _session, _auth, _sb, _autofill) {
|
29
|
-
this._session = _session;
|
30
|
-
this._auth = _auth;
|
31
|
-
this._sb = _sb;
|
32
|
-
this._autofill = _autofill;
|
33
|
-
this.success = new EventEmitter();
|
34
|
-
this.logging = false;
|
35
|
-
this.loggingChange = new EventEmitter();
|
36
|
-
this.mode = 'prompt';
|
37
|
-
this.more = false;
|
38
|
-
this.hide = true;
|
39
|
-
this.username = new FormControl(null, Validators.required);
|
40
|
-
this.password = new FormControl(null, Validators.required);
|
41
|
-
this.impersonate = new FormControl(null);
|
42
|
-
this.rememberMe = new FormControl(null);
|
43
|
-
this.form = new FormGroup({
|
44
|
-
username: this.username,
|
45
|
-
password: this.password,
|
46
|
-
impersonate: this.impersonate,
|
47
|
-
rememberMe: this.rememberMe
|
48
|
-
});
|
49
|
-
this.isMobile = isMobile();
|
50
|
-
this._destroy = new Subject();
|
51
|
-
if (config.credentials) {
|
52
|
-
const { password, username } = config.credentials;
|
53
|
-
if (password) {
|
54
|
-
const validators = [Validators.required];
|
55
|
-
//if (config.password.min) validators.push(Validators.minLength(config.password.min));
|
56
|
-
if (password.pattern)
|
57
|
-
validators.push(Validators.pattern(password.pattern));
|
58
|
-
this.password.setValidators(validators);
|
59
|
-
}
|
60
|
-
if (username) {
|
61
|
-
const validators = [Validators.required];
|
62
|
-
if (username.pattern)
|
63
|
-
validators.push(Validators.pattern(password.pattern));
|
64
|
-
this.username.setValidators(validators);
|
65
|
-
}
|
66
|
-
}
|
67
|
-
//if (session.displayName != null) {
|
68
|
-
// this.photo = session.tumbnailPhoto;
|
69
|
-
// this.displayName = session.displayName;
|
70
|
-
// this.mode = 'returning';
|
71
|
-
//}
|
72
|
-
this.form.patchValue({
|
73
|
-
username: _auth.username,
|
74
|
-
rememberMe: _auth.username !== null
|
75
|
-
});
|
76
|
-
}
|
77
|
-
ngOnInit() {
|
78
|
-
this.users$ = this.impersonate.valueChanges.pipe(debounceTime(250), takeUntil(this._destroy), switchMap(() => this._auth.authenticate(this.username.value, this.password.value)), switchMap(() => this._session.mayImpersonate('')));
|
79
|
-
}
|
80
|
-
toggleHide(evt) {
|
81
|
-
this.hide = !this.hide;
|
82
|
-
evt.stopPropagation();
|
83
|
-
}
|
84
|
-
ngAfterViewInit() {
|
85
|
-
this._autofill.monitor(this.usernameElement).pipe(takeUntil(this._destroy)).subscribe(v => {
|
86
|
-
//if (v.isAutofilled)
|
87
|
-
//this.form.markAllAsTouched();
|
88
|
-
////this.form.markAsDirty();
|
89
|
-
//this.form.updateValueAndValidity();
|
90
|
-
//this.formElement.nativeElement.checkValidity();
|
91
|
-
});
|
92
|
-
//const fm = new FocusKeyManager<HTMLElement>().withWrap();
|
93
|
-
//fm.setActiveItem(0);
|
94
|
-
this.usernameElement.nativeElement.focus();
|
95
|
-
//setTimeout(() => {
|
96
|
-
// //alert(this.password.value);
|
97
|
-
// this._zone.runOutsideAngular(() => {
|
98
|
-
// this.formElement.nativeElement.click();
|
99
|
-
// });
|
100
|
-
//}, 3000);
|
101
|
-
}
|
102
|
-
ok() {
|
103
|
-
this.logging = true;
|
104
|
-
this.form.disable({ emitEvent: false });
|
105
|
-
this.loggingChange.emit(true);
|
106
|
-
const { value: { username, password, rememberMe, impersonate } } = this.form;
|
107
|
-
this._auth.authenticate(username, password, { rememberMe }).
|
108
|
-
subscribe(() => {
|
109
|
-
if (impersonate)
|
110
|
-
this._session.impersonate(impersonate).subscribe(() => this.success.emit());
|
111
|
-
else
|
112
|
-
this.success.emit();
|
113
|
-
}, e => {
|
114
|
-
let message;
|
115
|
-
switch (e) {
|
116
|
-
default:
|
117
|
-
message = 'LoginErr';
|
118
|
-
}
|
119
|
-
this._sb.toast(message);
|
120
|
-
this.logging = false;
|
121
|
-
this.form.enable({ emitEvent: false });
|
122
|
-
this.loggingChange.emit(false);
|
123
|
-
});
|
124
|
-
}
|
125
|
-
ngOnDestroy() {
|
126
|
-
this._autofill.stopMonitoring(this.usernameElement);
|
127
|
-
this._destroy.next();
|
128
|
-
this._destroy.complete();
|
129
|
-
}
|
130
|
-
}
|
131
|
-
CredetialsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: CredetialsComponent, deps: [{ token: BIZDOC_CONFIG }, { token: i1.SessionService }, { token: AuthenticationImpl }, { token: i2.PromptService }, { token: i3.AutofillMonitor }], target: i0.ɵɵFactoryTarget.Component });
|
132
|
-
CredetialsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.7", type: CredetialsComponent, selector: "bizdoc-prompt", inputs: { logging: "logging" }, outputs: { success: "success", loggingChange: "loggingChange" }, viewQueries: [{ propertyName: "usernameElement", first: true, predicate: ["uname"], descendants: true, read: ElementRef }, { propertyName: "formElement", first: true, predicate: ["forme"], descendants: true, read: ElementRef }], ngImport: i0, template: "<form [ngSwitch]=\"mode\" fxLayout=\"column\" [formGroup]=\"form\" (ngSubmit)=\"ok()\" #forme>\r\n <div *ngSwitchCase=\"'returning'\" fxLayout=\"column\">\r\n <a mat-icon-button (click)=\"mode='prompt'\"><mat-icon>keyboard_backspace</mat-icon></a>\r\n <img src=\"{{photo}}\" alt=\"\" />\r\n <span>{{displayName}}</span>\r\n </div>\r\n <div *ngSwitchDefault fxLayout=\"column\">\r\n <mat-form-field>\r\n <input matInput formControlName=\"username\" required [placeholder]=\"'Username' | translate\" #uname/>\r\n <mat-error *ngIf=\"username.hasError('required')\">{{'UsernameRequired' | translate}}</mat-error>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <input [type]=\"hide ? 'password' : 'text'\" name=\"current-password\" matInput formControlName=\"password\" required [placeholder]=\"'Password' | translate\" #pwd/>\r\n <button mat-icon-button (click)=\"toggleHide($event)\" matSuffix><mat-icon>{{hide ? 'visibility' : 'visibility_off'}}</mat-icon></button>\r\n <mat-error *ngIf=\"password.hasError('required')\">{{'PasswordRequired' | translate}}</mat-error>\r\n </mat-form-field>\r\n <ng-container *ngIf=\"more\" [@more]=\"more ? 'expend' : 'collapse'\">\r\n <mat-form-field>\r\n <input formControlName=\"impersonate\" matInput [placeholder]=\"'ImpersonateAs' | translate\" [matAutocomplete]=\"auto\" />\r\n <mat-autocomplete #auto>\r\n <mat-option *ngFor=\"let u of users$ | async\" [value]=\"u.id\">{{u.name}}</mat-option>\r\n </mat-autocomplete>\r\n <mat-error *ngIf=\"impersonate.value && (!username.value || !password.value)\">{{'ImpersonateRequireCredentials' | translate}}</mat-error>\r\n </mat-form-field>\r\n </ng-container>\r\n <div fxLayout=\"row\" fxLayoutAlign=\"end\">\r\n <button (click)=\"more = !more\" type=\"button\" mat-button>\r\n <span>{{(more ? 'LoginLess' : 'LoginMore') | translate}}</span>\r\n <mat-icon>{{more ? 'keyboard_arrow_up': 'keyboard_arrow_down' }}</mat-icon>\r\n </button>\r\n </div>\r\n <mat-checkbox formControlName=\"rememberMe\">{{(isMobile ? 'RememberMeMobile' : 'RememberMe') | translate}}</mat-checkbox>\r\n </div>\r\n <div fxLayoutAlign=\"end\">\r\n <button mat-raised-button type=\"submit\" color=\"primary\" [disabled]=\"!form.valid || logging\">{{'Login' | translate}}</button>\r\n </div>\r\n</form>\r\n", styles: ["#prompt-form{display:flex;flex-direction:column}#prompt-form *{width:100%}fieldset{border:none;padding:0}\n"], components: [{ type: i4.MatAnchor, selector: "a[mat-button], a[mat-raised-button], a[mat-icon-button], a[mat-fab], a[mat-mini-fab], a[mat-stroked-button], a[mat-flat-button]", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matButton", "matAnchor"] }, { type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i6.MatFormField, selector: "mat-form-field", inputs: ["color", "floatLabel", "appearance", "hideRequiredMarker", "hintLabel"], exportAs: ["matFormField"] }, { type: i4.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i7.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { type: i8.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { type: i9.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "id", "labelPosition", "name", "required", "checked", "disabled", "indeterminate", "aria-describedby", "value"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }], directives: [{ type: i10.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i10.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i11.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i12.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i10.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i12.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i12.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { type: i13.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["id", "disabled", "required", "type", "value", "readonly", "placeholder", "errorStateMatcher", "aria-describedby"], exportAs: ["matInput"] }, { type: i10.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: i10.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i10.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i10.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i12.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.MatError, selector: "mat-error", inputs: ["id"] }, { type: i6.MatSuffix, selector: "[matSuffix]" }, { type: i7.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { type: i12.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i11.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }], pipes: { "translate": i14.TranslatePipe, "async": i12.AsyncPipe }, animations: [
|
133
|
-
trigger('mode', [
|
134
|
-
state('returning', style({})),
|
135
|
-
state('prompt', style({})),
|
136
|
-
transition('returning <=> prompt', [])
|
137
|
-
]),
|
138
|
-
trigger('more', [
|
139
|
-
state('expend', style({
|
140
|
-
opacity: '1',
|
141
|
-
transform: 'translateY(50%)'
|
142
|
-
})),
|
143
|
-
state('collapse', style({
|
144
|
-
opacity: '1',
|
145
|
-
transform: 'translateY(50%)'
|
146
|
-
})),
|
147
|
-
transition('void => *', [style({ opacity: '0' }), animate('500ms')])
|
148
|
-
])
|
149
|
-
] });
|
150
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: CredetialsComponent, decorators: [{
|
151
|
-
type: Component,
|
152
|
-
args: [{
|
153
|
-
selector: 'bizdoc-prompt',
|
154
|
-
templateUrl: './prompt.component.html',
|
155
|
-
styleUrls: ['./prompt.component.scss'],
|
156
|
-
animations: [
|
157
|
-
trigger('mode', [
|
158
|
-
state('returning', style({})),
|
159
|
-
state('prompt', style({})),
|
160
|
-
transition('returning <=> prompt', [])
|
161
|
-
]),
|
162
|
-
trigger('more', [
|
163
|
-
state('expend', style({
|
164
|
-
opacity: '1',
|
165
|
-
transform: 'translateY(50%)'
|
166
|
-
})),
|
167
|
-
state('collapse', style({
|
168
|
-
opacity: '1',
|
169
|
-
transform: 'translateY(50%)'
|
170
|
-
})),
|
171
|
-
transition('void => *', [style({ opacity: '0' }), animate('500ms')])
|
172
|
-
])
|
173
|
-
]
|
174
|
-
}]
|
175
|
-
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
176
|
-
type: Inject,
|
177
|
-
args: [BIZDOC_CONFIG]
|
178
|
-
}] }, { type: i1.SessionService }, { type: i15.FormAuthentication, decorators: [{
|
179
|
-
type: Inject,
|
180
|
-
args: [AuthenticationImpl]
|
181
|
-
}] }, { type: i2.PromptService }, { type: i3.AutofillMonitor }]; }, propDecorators: { success: [{
|
182
|
-
type: Output
|
183
|
-
}], logging: [{
|
184
|
-
type: Input
|
185
|
-
}], loggingChange: [{
|
186
|
-
type: Output
|
187
|
-
}], usernameElement: [{
|
188
|
-
type: ViewChild,
|
189
|
-
args: ['uname', { read: ElementRef }]
|
190
|
-
}], formElement: [{
|
191
|
-
type: ViewChild,
|
192
|
-
args: ['forme', { read: ElementRef }]
|
193
|
-
}] } });
|
194
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvbXB0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvbG9naW4vcHJvbXB0L3Byb21wdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2xvZ2luL3Byb21wdC9wcm9tcHQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFVLEtBQUssRUFBYSxNQUFNLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFFeEksT0FBTyxFQUFFLGFBQWEsRUFBd0MsTUFBTSwwQkFBMEIsQ0FBQztBQUUvRixPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQWUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRixPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pGLE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHcEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7OztBQXdCL0Qsc0JBQXNCO0FBQ3RCLE1BQU0sT0FBTyxtQkFBbUI7SUF3QjlCLGtCQUFrQjtJQUNsQixZQUN5QixNQUFvQixFQUNuQyxRQUF3QixFQUNJLEtBQXlCLEVBQ3JELEdBQWtCLEVBQ2xCLFNBQTBCO1FBSDFCLGFBQVEsR0FBUixRQUFRLENBQWdCO1FBQ0ksVUFBSyxH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Q0FDWixTQUFTLEVBQUUsaUJBQWlCOzZCQUM3QixDQUFDLENBQUM7NEJBQ0gsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO3lCQUNyRSxDQUFDO3FCQUFDO2lCQUNOOzswQkE0QkksTUFBTTsyQkFBQyxhQUFhOzswQkFFcEIsTUFBTTsyQkFBQyxrQkFBa0I7c0dBM0JULE9BQU87c0JBQXpCLE1BQU07Z0JBQ0UsT0FBTztzQkFBZixLQUFLO2dCQUNhLGFBQWE7c0JBQS9CLE1BQU07Z0JBa0JtQyxlQUFlO3NCQUF4RCxTQUFTO3VCQUFDLE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBQ0UsV0FBVztzQkFBcEQsU0FBUzt1QkFBQyxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgT25Jbml0LCBJbnB1dCwgT25EZXN0cm95LCBJbmplY3QsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgQWZ0ZXJWaWV3SW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTZXNzaW9uU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvc2Vzc2lvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQklaRE9DX0NPTkZJRywgQml6RG9jQ29uZmlnLCBBdXRoZW50aWNhdGlvblNldHRpbmdzIH0gZnJvbSAnLi4vLi4vY29yZS9jb25maWd1cmF0aW9uJztcclxuaW1wb3J0IHsgVXNlckluZm8gfSBmcm9tICcuLi8uLi9jb3JlL21vZGVscyc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCwgRm9ybUNvbnRyb2wsIFZhbGlkYXRvcnMsIFZhbGlkYXRvckZuIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyB0cmlnZ2VyLCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIGFuaW1hdGUgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIHRha2VVbnRpbCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBQcm9tcHRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9wcm9tcHQuc2VydmljZSc7XHJcbmltcG9ydCB7IEF1dG9maWxsTW9uaXRvciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90ZXh0LWZpZWxkJztcclxuaW1wb3J0IHsgaXNNb2JpbGUgfSBmcm9tICcuLi8uLi9jb3JlL2Z1bmN0aW9ucyc7XHJcbmltcG9ydCB7IEF1dGhlbnRpY2F0aW9uSW1wbCB9IGZyb20gJy4uLy4uL2NvcmUvYXV0aGVudGljYXRpb24nO1xyXG5pbXBvcnQgeyBGb3JtQXV0aGVudGljYXRpb24sIExvZ2luUmVzdWx0IH0gZnJvbSBcIi4uL2Zvcm0uYXV0aGVudGljYXRpb25cIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYml6ZG9jLXByb21wdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb21wdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vcHJvbXB0LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgYW5pbWF0aW9uczogW1xyXG4gICAgdHJpZ2dlcignbW9kZScsIFtcclxuICAgICAgc3RhdGUoJ3JldHVybmluZycsIHN0eWxlKHt9KSksXHJcbiAgICAgIHN0YXRlKCdwcm9tcHQnLCBzdHlsZSh7fSkpLFxyXG4gICAgICB0cmFuc2l0aW9uKCdyZXR1cm5pbmcgPD0+IHByb21wdCcsIFtdKV0pLFxyXG4gICAgdHJpZ2dlcignbW9yZScsIFtcclxuICAgICAgc3RhdGUoJ2V4cGVuZCcsIHN0eWxlKHtcclxuICAgICAgICBvcGFjaXR5OiAnMScsXHJcbiAgICAgICAgdHJhbnNmb3JtOiAndHJhbnNsYXRlWSg1MCUpJ1xyXG4gICAgICB9KSksXHJcbiAgICAgIHN0YXRlKCdjb2xsYXBzZScsIHN0eWxlKHtcclxuICAgICAgICBvcGFjaXR5OiAnMScsXHJcbiAgICAgICAgdHJhbnNmb3JtOiAndHJhbnNsYXRlWSg1MCUpJ1xyXG4gICAgICB9KSksXHJcbiAgICAgIHRyYW5zaXRpb24oJ3ZvaWQgPT4gKicsIFtzdHlsZSh7IG9wYWNpdHk6ICcwJyB9KSwgYW5pbWF0ZSgnNTAwbXMnKV0pXHJcbiAgICBdKV1cclxufSlcclxuLyoqIHByb21wdCBjb21wb25lbnQqL1xyXG5leHBvcnQgY2xhc3MgQ3JlZGV0aWFsc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcclxuICBAT3V0cHV0KCkgcmVhZG9ubHkgc3VjY2VzcyA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIEBJbnB1dCgpIGxvZ2dpbmcgPSBmYWxzZTtcclxuICBAT3V0cHV0KCkgcmVhZG9ubHkgbG9nZ2luZ0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuICBtb2RlOiBMb2dpbk1vZGUgPSAncHJvbXB0JztcclxuICBtb3JlID0gZmFsc2U7XHJcbiAgaGlkZSA9IHRydWU7XHJcbiAgcGhvdG86IHN0cmluZztcclxuICBkaXNwbGF5TmFtZTogc3RyaW5nO1xyXG4gIHVzZXJzJDogT2JzZXJ2YWJsZTxVc2VySW5mb1tdPjtcclxuICByZWFkb25seSB1c2VybmFtZSA9IG5ldyBGb3JtQ29udHJvbChudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuICByZWFkb25seSBwYXNzd29yZCA9IG5ldyBGb3JtQ29udHJvbChudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuICByZWFkb25seSBpbXBlcnNvbmF0ZSA9IG5ldyBGb3JtQ29udHJvbChudWxsKTtcclxuICByZWFkb25seSByZW1lbWJlck1lID0gbmV3IEZvcm1Db250cm9sKG51bGwpO1xyXG4gIHJlYWRvbmx5IGZvcm0gPSBuZXcgRm9ybUdyb3VwKHtcclxuICAgIHVzZXJuYW1lOiB0aGlzLnVzZXJuYW1lLFxyXG4gICAgcGFzc3dvcmQ6IHRoaXMucGFzc3dvcmQsXHJcbiAgICBpbXBlcnNvbmF0ZTogdGhpcy5pbXBlcnNvbmF0ZSxcclxuICAgIHJlbWVtYmVyTWU6IHRoaXMucmVtZW1iZXJNZVxyXG4gIH0pO1xyXG4gIHJlYWRvbmx5IGlzTW9iaWxlID0gaXNNb2JpbGUoKTtcclxuICBAVmlld0NoaWxkKCd1bmFtZScsIHsgcmVhZDogRWxlbWVudFJlZiB9KSB1c2VybmFtZUVsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XHJcbiAgQFZpZXdDaGlsZCgnZm9ybWUnLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSkgZm9ybUVsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTEZvcm1FbGVtZW50PjtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICAvKiogcHJvbXB0IGN0b3IgKi9cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBJbmplY3QoQklaRE9DX0NPTkZJRykgY29uZmlnOiBCaXpEb2NDb25maWcsXHJcbiAgICBwcml2YXRlIF9zZXNzaW9uOiBTZXNzaW9uU2VydmljZSxcclxuICAgIEBJbmplY3QoQXV0aGVudGljYXRpb25JbXBsKSBwcml2YXRlIF9hdXRoOiBGb3JtQXV0aGVudGljYXRpb24sXHJcbiAgICBwcml2YXRlIF9zYjogUHJvbXB0U2VydmljZSxcclxuICAgIHByaXZhdGUgX2F1dG9maWxsOiBBdXRvZmlsbE1vbml0b3IpIHtcclxuICAgIGlmIChjb25maWcuY3JlZGVudGlhbHMpIHtcclxuICAgICAgY29uc3QgeyBwYXNzd29yZCwgdXNlcm5hbWUgfSA9IGNvbmZpZy5jcmVkZW50aWFscyBhcyBBdXRoZW50aWNhdGlvblNldHRpbmdzO1xyXG4gICAgICBpZiAocGFzc3dvcmQpIHtcclxuICAgICAgICBjb25zdCB2YWxpZGF0b3JzOiBWYWxpZGF0b3JGbltdID0gW1ZhbGlkYXRvcnMucmVxdWlyZWRdO1xyXG4gICAgICAgIC8vaWYgKGNvbmZpZy5wYXNzd29yZC5taW4pIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLm1pbkxlbmd0aChjb25maWcucGFzc3dvcmQubWluKSk7XHJcbiAgICAgICAgaWYgKHBhc3N3b3JkLnBhdHRlcm4pIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLnBhdHRlcm4ocGFzc3dvcmQucGF0dGVybikpO1xyXG4gICAgICAgIHRoaXMucGFzc3dvcmQuc2V0VmFsaWRhdG9ycyh2YWxpZGF0b3JzKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodXNlcm5hbWUpIHtcclxuICAgICAgICBjb25zdCB2YWxpZGF0b3JzOiBWYWxpZGF0b3JGbltdID0gW1ZhbGlkYXRvcnMucmVxdWlyZWRdO1xyXG4gICAgICAgIGlmICh1c2VybmFtZS5wYXR0ZXJuKSB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5wYXR0ZXJuKHBhc3N3b3JkLnBhdHRlcm4pKTtcclxuICAgICAgICB0aGlzLnVzZXJuYW1lLnNldFZhbGlkYXRvcnModmFsaWRhdG9ycyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIC8vaWYgKHNlc3Npb24uZGlzcGxheU5hbWUgIT0gbnVsbCkge1xyXG4gICAgLy8gIHRoaXMucGhvdG8gPSBzZXNzaW9uLnR1bWJuYWlsUGhvdG87XHJcbiAgICAvLyAgdGhpcy5kaXNwbGF5TmFtZSA9IHNlc3Npb24uZGlzcGxheU5hbWU7XHJcbiAgICAvLyAgdGhpcy5tb2RlID0gJ3JldHVybmluZyc7XHJcbiAgICAvL31cclxuICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHtcclxuICAgICAgdXNlcm5hbWU6IF9hdXRoLnVzZXJuYW1lLFxyXG4gICAgICByZW1lbWJlck1lOiBfYXV0aC51c2VybmFtZSAhPT0gbnVsbFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy51c2VycyQgPSB0aGlzLmltcGVyc29uYXRlLnZhbHVlQ2hhbmdlcy5waXBlKGRlYm91bmNlVGltZSgyNTApLCB0YWtlVW50aWwodGhpcy5fZGVzdHJveSksXHJcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLl9hdXRoLmF1dGhlbnRpY2F0ZSh0aGlzLnVzZXJuYW1lLnZhbHVlLCB0aGlzLnBhc3N3b3JkLnZhbHVlKSksXHJcbiAgICAgIHN3aXRjaE1hcCgoKSA9PlxyXG4gICAgICB0aGlzLl9zZXNzaW9uLm1heUltcGVyc29uYXRlKCcnKSkpO1xyXG4gIH1cclxuICB0b2dnbGVIaWRlKGV2dDogTW91c2VFdmVudCkge1xyXG4gICAgdGhpcy5oaWRlID0gIXRoaXMuaGlkZTtcclxuICAgIGV2dC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICB9XHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fYXV0b2ZpbGwubW9uaXRvcih0aGlzLnVzZXJuYW1lRWxlbWVudCkucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSkpLnN1YnNjcmliZSh2ID0+IHtcclxuICAgICAgLy9pZiAodi5pc0F1dG9maWxsZWQpXHJcbiAgICAgIC8vdGhpcy5mb3JtLm1hcmtBbGxBc1RvdWNoZWQoKTtcclxuICAgICAgLy8vL3RoaXMuZm9ybS5tYXJrQXNEaXJ0eSgpO1xyXG4gICAgICAvL3RoaXMuZm9ybS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICAgIC8vdGhpcy5mb3JtRWxlbWVudC5uYXRpdmVFbGVtZW50LmNoZWNrVmFsaWRpdHkoKTtcclxuICAgIH0pO1xyXG4gICAgLy9jb25zdCBmbSA9IG5ldyBGb2N1c0tleU1hbmFnZXI8SFRNTEVsZW1lbnQ+KCkud2l0aFdyYXAoKTtcclxuICAgIC8vZm0uc2V0QWN0aXZlSXRlbSgwKTtcclxuICAgIHRoaXMudXNlcm5hbWVFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcclxuICAgIC8vc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAvLyAgLy9hbGVydCh0aGlzLnBhc3N3b3JkLnZhbHVlKTtcclxuICAgIC8vICB0aGlzLl96b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcclxuICAgIC8vICAgIHRoaXMuZm9ybUVsZW1lbnQubmF0aXZlRWxlbWVudC5jbGljaygpO1xyXG4gICAgLy8gIH0pO1xyXG4gICAgLy99LCAzMDAwKTtcclxuICB9XHJcbiAgb2soKSB7XHJcbiAgICB0aGlzLmxvZ2dpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5mb3JtLmRpc2FibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgdGhpcy5sb2dnaW5nQ2hhbmdlLmVtaXQodHJ1ZSk7XHJcbiAgICBjb25zdCB7IHZhbHVlOiB7IHVzZXJuYW1lLCBwYXNzd29yZCwgcmVtZW1iZXJNZSwgaW1wZXJzb25hdGUgfSB9ID0gdGhpcy5mb3JtO1xyXG4gICAgdGhpcy5fYXV0aC5hdXRoZW50aWNhdGUodXNlcm5hbWUsIHBhc3N3b3JkLFxyXG4gICAgICB7IHJlbWVtYmVyTWUgfSkuXHJcbiAgICAgIHN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgaWYgKGltcGVyc29uYXRlKVxyXG4gICAgICAgICAgdGhpcy5fc2Vzc2lvbi5pbXBlcnNvbmF0ZShpbXBlcnNvbmF0ZSkuc3Vic2NyaWJlKCgpID0+IFxyXG4gICAgICAgICAgICB0aGlzLnN1Y2Nlc3MuZW1pdCgpKVxyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgIHRoaXMuc3VjY2Vzcy5lbWl0KCk7XHJcbiAgICAgIH0sXHJcbiAgICAgICAgZSA9PiB7XHJcbiAgICAgICAgICBsZXQgbWVzc2FnZTogc3RyaW5nO1xyXG4gICAgICAgICAgc3dpdGNoIChlIGFzIExvZ2luUmVzdWx0KSB7XHJcbiAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgbWVzc2FnZSA9ICdMb2dpbkVycic7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLl9zYi50b2FzdChtZXNzYWdlKTtcclxuICAgICAgICAgIHRoaXMubG9nZ2luZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5mb3JtLmVuYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcbiAgICAgICAgICB0aGlzLmxvZ2dpbmdDaGFuZ2UuZW1pdChmYWxzZSk7XHJcbiAgICAgICAgfSlcclxuICB9XHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9hdXRvZmlsbC5zdG9wTW9uaXRvcmluZyh0aGlzLnVzZXJuYW1lRWxlbWVudCk7XHJcbiAgICB0aGlzLl9kZXN0cm95Lm5leHQoKTtcclxuICAgIHRoaXMuX2Rlc3Ryb3kuY29tcGxldGUoKTtcclxuICB9XHJcbn1cclxuZGVjbGFyZSB0eXBlIExvZ2luTW9kZSA9ICdyZXR1cm5pbmcnIHwgJ3Byb21wdCc7XHJcbiIsIjxmb3JtIFtuZ1N3aXRjaF09XCJtb2RlXCIgZnhMYXlvdXQ9XCJjb2x1bW5cIiBbZm9ybUdyb3VwXT1cImZvcm1cIiAobmdTdWJtaXQpPVwib2soKVwiICNmb3JtZT5cclxuICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCIncmV0dXJuaW5nJ1wiIGZ4TGF5b3V0PVwiY29sdW1uXCI+XHJcbiAgICA8YSBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cIm1vZGU9J3Byb21wdCdcIj48bWF0LWljb24+a2V5Ym9hcmRfYmFja3NwYWNlPC9tYXQtaWNvbj48L2E+XHJcbiAgICA8aW1nIHNyYz1cInt7cGhvdG99fVwiIGFsdD1cIlwiIC8+XHJcbiAgICA8c3Bhbj57e2Rpc3BsYXlOYW1lfX08L3NwYW4+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiAqbmdTd2l0Y2hEZWZhdWx0IGZ4TGF5b3V0PVwiY29sdW1uXCI+XHJcbiAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgIDxpbnB1dCBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJ1c2VybmFtZVwiIHJlcXVpcmVkIFtwbGFjZWhvbGRlcl09XCInVXNlcm5hbWUnIHwgdHJhbnNsYXRlXCIgI3VuYW1lLz5cclxuICAgICAgPG1hdC1lcnJvciAqbmdJZj1cInVzZXJuYW1lLmhhc0Vycm9yKCdyZXF1aXJlZCcpXCI+e3snVXNlcm5hbWVSZXF1aXJlZCcgfCB0cmFuc2xhdGV9fTwvbWF0LWVycm9yPlxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgPGlucHV0IFt0eXBlXT1cImhpZGUgPyAncGFzc3dvcmQnIDogJ3RleHQnXCIgbmFtZT1cImN1cnJlbnQtcGFzc3dvcmRcIiBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJwYXNzd29yZFwiIHJlcXVpcmVkIFtwbGFjZWhvbGRlcl09XCInUGFzc3dvcmQnIHwgdHJhbnNsYXRlXCIgI3B3ZC8+XHJcbiAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJ0b2dnbGVIaWRlKCRldmVudClcIiBtYXRTdWZmaXg+PG1hdC1pY29uPnt7aGlkZSA/ICd2aXNpYmlsaXR5JyA6ICd2aXNpYmlsaXR5X29mZid9fTwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJwYXNzd29yZC5oYXNFcnJvcigncmVxdWlyZWQnKVwiPnt7J1Bhc3N3b3JkUmVxdWlyZWQnIHwgdHJhbnNsYXRlfX08L21hdC1lcnJvcj5cclxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibW9yZVwiIFtAbW9yZV09XCJtb3JlID8gJ2V4cGVuZCcgOiAnY29sbGFwc2UnXCI+XHJcbiAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICA8aW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiaW1wZXJzb25hdGVcIiBtYXRJbnB1dCBbcGxhY2Vob2xkZXJdPVwiJ0ltcGVyc29uYXRlQXMnIHwgdHJhbnNsYXRlXCIgW21hdEF1dG9jb21wbGV0ZV09XCJhdXRvXCIgLz5cclxuICAgICAgICA8bWF0LWF1dG9jb21wbGV0ZSAjYXV0bz5cclxuICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCB1IG9mIHVzZXJzJCB8IGFzeW5jXCIgW3ZhbHVlXT1cInUuaWRcIj57e3UubmFtZX19PC9tYXQtb3B0aW9uPlxyXG4gICAgICAgIDwvbWF0LWF1dG9jb21wbGV0ZT5cclxuICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiaW1wZXJzb25hdGUudmFsdWUgJiYgKCF1c2VybmFtZS52YWx1ZSB8fCAhcGFzc3dvcmQudmFsdWUpXCI+e3snSW1wZXJzb25hdGVSZXF1aXJlQ3JlZGVudGlhbHMnIHwgdHJhbnNsYXRlfX08L21hdC1lcnJvcj5cclxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPGRpdiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0QWxpZ249XCJlbmRcIj5cclxuICAgICAgPGJ1dHRvbiAoY2xpY2spPVwibW9yZSA9ICFtb3JlXCIgdHlwZT1cImJ1dHRvblwiIG1hdC1idXR0b24+XHJcbiAgICAgICAgPHNwYW4+e3sobW9yZSA/ICdMb2dpbkxlc3MnIDogJ0xvZ2luTW9yZScpIHwgdHJhbnNsYXRlfX08L3NwYW4+XHJcbiAgICAgICAgPG1hdC1pY29uPnt7bW9yZSA/ICdrZXlib2FyZF9hcnJvd191cCc6ICdrZXlib2FyZF9hcnJvd19kb3duJyB9fTwvbWF0LWljb24+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8bWF0LWNoZWNrYm94IGZvcm1Db250cm9sTmFtZT1cInJlbWVtYmVyTWVcIj57eyhpc01vYmlsZSA/ICdSZW1lbWJlck1lTW9iaWxlJyA6ICdSZW1lbWJlck1lJykgfCB0cmFuc2xhdGV9fTwvbWF0LWNoZWNrYm94PlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgZnhMYXlvdXRBbGlnbj1cImVuZFwiPlxyXG4gICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiB0eXBlPVwic3VibWl0XCIgY29sb3I9XCJwcmltYXJ5XCIgW2Rpc2FibGVkXT1cIiFmb3JtLnZhbGlkIHx8IGxvZ2dpbmdcIj57eydMb2dpbicgfCB0cmFuc2xhdGV9fTwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG48L2Zvcm0+XHJcbiJdfQ==
|
@@ -1,49 +0,0 @@
|
|
1
|
-
import { Injectable, Injector } from '@angular/core';
|
2
|
-
import { OverlayRef, OverlayConfig } from '@angular/cdk/overlay';
|
3
|
-
import { ComponentPortal } from '@angular/cdk/portal';
|
4
|
-
import { LoginComponent } from './login.component';
|
5
|
-
import { SessionMode } from '../core/session.service';
|
6
|
-
import { OktaComponent } from './okta.component';
|
7
|
-
import * as i0 from "@angular/core";
|
8
|
-
import * as i1 from "../core/session.service";
|
9
|
-
import * as i2 from "@angular/cdk/overlay";
|
10
|
-
import * as i3 from "@angular/cdk/bidi";
|
11
|
-
/** prompts login comp */
|
12
|
-
export class SignInInfo {
|
13
|
-
constructor(_session, _overlay, _injector, _dir) {
|
14
|
-
this._session = _session;
|
15
|
-
this._overlay = _overlay;
|
16
|
-
this._injector = _injector;
|
17
|
-
this._dir = _dir;
|
18
|
-
}
|
19
|
-
pop() {
|
20
|
-
switch (this._session.mode) {
|
21
|
-
case SessionMode.Okta:
|
22
|
-
return this._pop(OktaComponent);
|
23
|
-
default:
|
24
|
-
return this._pop(LoginComponent);
|
25
|
-
}
|
26
|
-
}
|
27
|
-
_pop(component) {
|
28
|
-
const position = this._overlay.position().global()
|
29
|
-
.centerHorizontally()
|
30
|
-
.centerVertically();
|
31
|
-
const config = new OverlayConfig({
|
32
|
-
positionStrategy: position,
|
33
|
-
//hasBackdrop: backdrop,
|
34
|
-
scrollStrategy: this._overlay.scrollStrategies.block(),
|
35
|
-
direction: this._dir.value,
|
36
|
-
});
|
37
|
-
const oRef = this._overlay.create(config);
|
38
|
-
const injector = Injector.create([{ provide: OverlayRef, useValue: oRef }], this._injector);
|
39
|
-
const portal = new ComponentPortal(component, null, injector);
|
40
|
-
oRef.attach(portal);
|
41
|
-
return oRef.detachments();
|
42
|
-
}
|
43
|
-
}
|
44
|
-
SignInInfo.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: SignInInfo, deps: [{ token: i1.SessionService }, { token: i2.Overlay }, { token: i0.Injector }, { token: i3.Directionality }], target: i0.ɵɵFactoryTarget.Injectable });
|
45
|
-
SignInInfo.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: SignInInfo });
|
46
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.7", ngImport: i0, type: SignInInfo, decorators: [{
|
47
|
-
type: Injectable
|
48
|
-
}], ctorParameters: function () { return [{ type: i1.SessionService }, { type: i2.Overlay }, { type: i0.Injector }, { type: i3.Directionality }]; } });
|
49
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmluLWluZm8uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvbG9naW4vc2lnbmluLWluZm8uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVyRCxPQUFPLEVBQVcsVUFBVSxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRTFFLE9BQU8sRUFBRSxlQUFlLEVBQWlCLE1BQU0scUJBQXFCLENBQUM7QUFDckUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxXQUFXLEVBQWtCLE1BQU0seUJBQXlCLENBQUM7QUFDdEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7OztBQUNqRCx5QkFBeUI7QUFFekIsTUFBTSxPQUFPLFVBQVU7SUFVckIsWUFDVSxRQUF3QixFQUN4QixRQUFpQixFQUNqQixTQUFtQixFQUNuQixJQUFvQjtRQUhwQixhQUFRLEdBQVIsUUFBUSxDQUFnQjtRQUN4QixhQUFRLEdBQVIsUUFBUSxDQUFTO1FBQ2pCLGNBQVMsR0FBVCxTQUFTLENBQVU7UUFDbkIsU0FBSSxHQUFKLElBQUksQ0FBZ0I7SUFDOUIsQ0FBQztJQWRNLEdBQUc7UUFFUixRQUFRLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFO1lBQzFCLEtBQUssV0FBVyxDQUFDLElBQUk7Z0JBQ25CLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUNsQztnQkFDRSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7U0FDcEM7SUFDSCxDQUFDO0lBT08sSUFBSSxDQUFJLFNBQTJCO1FBQ3pDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUMsTUFBTSxFQUFFO2FBQy9DLGtCQUFrQixFQUFFO2FBQ3BCLGdCQUFnQixFQUFFLENBQUM7UUFDdEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxhQUFhLENBQUM7WUFDL0IsZ0JBQWdCLEVBQUUsUUFBUTtZQUMxQix3QkFBd0I7WUFDeEIsY0FBYyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFO1lBQ3RELFNBQVMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUs7U0FDM0IsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDMUMsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDNUYsTUFBTSxNQUFNLEdBQUcsSUFBSSxlQUFlLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztRQUM5RCxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRXBCLE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzVCLENBQUM7O3VHQWhDVSxVQUFVOzJHQUFWLFVBQVU7MkZBQVYsVUFBVTtrQkFEdEIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgT3ZlcmxheSwgT3ZlcmxheVJlZiwgT3ZlcmxheUNvbmZpZyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcclxuaW1wb3J0IHsgRGlyZWN0aW9uYWxpdHkgfSBmcm9tICdAYW5ndWxhci9jZGsvYmlkaSc7XHJcbmltcG9ydCB7IENvbXBvbmVudFBvcnRhbCwgQ29tcG9uZW50VHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xyXG5pbXBvcnQgeyBMb2dpbkNvbXBvbmVudCB9IGZyb20gJy4vbG9naW4uY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2Vzc2lvbk1vZGUsIFNlc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS9zZXNzaW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBPa3RhQ29tcG9uZW50IH0gZnJvbSAnLi9va3RhLmNvbXBvbmVudCc7XHJcbi8qKiBwcm9tcHRzIGxvZ2luIGNvbXAgKi9cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgU2lnbkluSW5mbyB7XHJcbiAgcHVibGljIHBvcCgpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG5cclxuICAgIHN3aXRjaCAodGhpcy5fc2Vzc2lvbi5tb2RlKSB7XHJcbiAgICAgIGNhc2UgU2Vzc2lvbk1vZGUuT2t0YTpcclxuICAgICAgICByZXR1cm4gdGhpcy5fcG9wKE9rdGFDb21wb25lbnQpO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiB0aGlzLl9wb3AoTG9naW5Db21wb25lbnQpO1xyXG4gICAgfVxyXG4gIH1cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX3Nlc3Npb246IFNlc3Npb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfb3ZlcmxheTogT3ZlcmxheSxcclxuICAgIHByaXZhdGUgX2luamVjdG9yOiBJbmplY3RvcixcclxuICAgIHByaXZhdGUgX2RpcjogRGlyZWN0aW9uYWxpdHkpIHtcclxuICB9XHJcbiAgcHJpdmF0ZSBfcG9wPEM+KGNvbXBvbmVudDogQ29tcG9uZW50VHlwZTxDPikge1xyXG4gICAgY29uc3QgcG9zaXRpb24gPSB0aGlzLl9vdmVybGF5LnBvc2l0aW9uKCkuZ2xvYmFsKClcclxuICAgICAgLmNlbnRlckhvcml6b250YWxseSgpXHJcbiAgICAgIC5jZW50ZXJWZXJ0aWNhbGx5KCk7XHJcbiAgICBjb25zdCBjb25maWcgPSBuZXcgT3ZlcmxheUNvbmZpZyh7XHJcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IHBvc2l0aW9uLFxyXG4gICAgICAvL2hhc0JhY2tkcm9wOiBiYWNrZHJvcCxcclxuICAgICAgc2Nyb2xsU3RyYXRlZ3k6IHRoaXMuX292ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5ibG9jaygpLFxyXG4gICAgICBkaXJlY3Rpb246IHRoaXMuX2Rpci52YWx1ZSxcclxuICAgIH0pO1xyXG4gICAgY29uc3Qgb1JlZiA9IHRoaXMuX292ZXJsYXkuY3JlYXRlKGNvbmZpZyk7XHJcbiAgICBjb25zdCBpbmplY3RvciA9IEluamVjdG9yLmNyZWF0ZShbeyBwcm92aWRlOiBPdmVybGF5UmVmLCB1c2VWYWx1ZTogb1JlZiB9XSwgdGhpcy5faW5qZWN0b3IpO1xyXG4gICAgY29uc3QgcG9ydGFsID0gbmV3IENvbXBvbmVudFBvcnRhbChjb21wb25lbnQsIG51bGwsIGluamVjdG9yKTtcclxuICAgIG9SZWYuYXR0YWNoKHBvcnRhbCk7XHJcblxyXG4gICAgcmV0dXJuIG9SZWYuZGV0YWNobWVudHMoKTtcclxuICB9XHJcbn1cclxuIl19
|
@@ -1,41 +0,0 @@
|
|
1
|
-
import { OnInit, TemplateRef } from '@angular/core';
|
2
|
-
import { FormBuilder } from '@angular/forms';
|
3
|
-
import { Observable } from 'rxjs';
|
4
|
-
import { UsersService, IdentityUser, IdentityRole } from './users.service';
|
5
|
-
import { SelectionModel } from '@angular/cdk/collections';
|
6
|
-
import { TranslateService } from '../../core/translate.service';
|
7
|
-
import { BizDocConfig } from '../../core/configuration';
|
8
|
-
import { Directionality } from '@angular/cdk/bidi';
|
9
|
-
import { MatTableDataSource } from '@angular/material/table';
|
10
|
-
import { MatSort } from '@angular/material/sort';
|
11
|
-
import { MatSnackBar } from '@angular/material/snack-bar';
|
12
|
-
import { MatDialog } from '@angular/material/dialog';
|
13
|
-
import * as i0 from "@angular/core";
|
14
|
-
export declare class UsersComponent implements OnInit {
|
15
|
-
private _fb;
|
16
|
-
private _service;
|
17
|
-
private _sb;
|
18
|
-
private _dir;
|
19
|
-
private _dialog;
|
20
|
-
private _translate;
|
21
|
-
private _bizdoc;
|
22
|
-
readonly form: import("@angular/forms").FormGroup;
|
23
|
-
dataSource: MatTableDataSource<IdentityUser>;
|
24
|
-
roles: Observable<IdentityRole[]>;
|
25
|
-
readonly displayColumns: string[];
|
26
|
-
readonly selection: SelectionModel<IdentityUser>;
|
27
|
-
sort: MatSort;
|
28
|
-
newTemplate: TemplateRef<any>;
|
29
|
-
editTemplate: TemplateRef<any>;
|
30
|
-
/** users ctor */
|
31
|
-
constructor(_fb: FormBuilder, _service: UsersService, _sb: MatSnackBar, _dir: Directionality, _dialog: MatDialog, _translate: TranslateService, _bizdoc: BizDocConfig);
|
32
|
-
ngOnInit(): void;
|
33
|
-
search(value: string): void;
|
34
|
-
add(): void;
|
35
|
-
edit(user: IdentityUser): void;
|
36
|
-
private _error;
|
37
|
-
private _ok;
|
38
|
-
private _clear;
|
39
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<UsersComponent, never>;
|
40
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<UsersComponent, "ng-component", never, {}, {}, never, never>;
|
41
|
-
}
|
@@ -1,30 +0,0 @@
|
|
1
|
-
import { HttpClient } from '@angular/common/http';
|
2
|
-
import { Gender } from '../../core/models';
|
3
|
-
import { Observable } from 'rxjs';
|
4
|
-
import * as i0 from "@angular/core";
|
5
|
-
export declare class UsersService {
|
6
|
-
private http;
|
7
|
-
constructor(http: HttpClient);
|
8
|
-
add(user: IdentityUser): Observable<any>;
|
9
|
-
all(): Observable<IdentityUser[]>;
|
10
|
-
roles(): Observable<IdentityRole[]>;
|
11
|
-
get(id: string): Observable<IdentityUser>;
|
12
|
-
update(id: string, user: IdentityUser): Observable<IdentityUser>;
|
13
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<UsersService, never>;
|
14
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<UsersService>;
|
15
|
-
}
|
16
|
-
export interface IdentityUser {
|
17
|
-
id: string;
|
18
|
-
nikeName?: string;
|
19
|
-
userName: string;
|
20
|
-
gender?: Gender;
|
21
|
-
sirname: string;
|
22
|
-
firstName?: string;
|
23
|
-
roles: string[];
|
24
|
-
email: string;
|
25
|
-
phoneNumber: string;
|
26
|
-
}
|
27
|
-
export interface IdentityRole {
|
28
|
-
id: string;
|
29
|
-
name: string;
|
30
|
-
}
|
@@ -1,20 +0,0 @@
|
|
1
|
-
import { EventEmitter } from '@angular/core';
|
2
|
-
import { MatSnackBar } from '@angular/material/snack-bar';
|
3
|
-
import { TranslateService } from '../../core/translate.service';
|
4
|
-
import { FormControl } from '@angular/forms';
|
5
|
-
import { FormAuthentication } from "../form.authentication";
|
6
|
-
import * as i0 from "@angular/core";
|
7
|
-
export declare class ForgotComponent {
|
8
|
-
private translate;
|
9
|
-
private session;
|
10
|
-
private sb;
|
11
|
-
email: FormControl;
|
12
|
-
mode: 'ask' | 'done';
|
13
|
-
serving: boolean;
|
14
|
-
readonly processingChange: EventEmitter<boolean>;
|
15
|
-
/** forgot ctor */
|
16
|
-
constructor(translate: TranslateService, session: FormAuthentication, sb: MatSnackBar);
|
17
|
-
ok(): void;
|
18
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<ForgotComponent, never>;
|
19
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ForgotComponent, "bizdoc-forgot", never, { "serving": "serving"; }, { "processingChange": "processingChange"; }, never, never>;
|
20
|
-
}
|
@@ -1,29 +0,0 @@
|
|
1
|
-
import { Injector } from '@angular/core';
|
2
|
-
import { Observable } from 'rxjs';
|
3
|
-
import { AuthenticationImpl } from '../core/authentication';
|
4
|
-
import * as i0 from "@angular/core";
|
5
|
-
export declare class FormAuthentication extends AuthenticationImpl {
|
6
|
-
getAccessToken(): string;
|
7
|
-
authenticate(username: string, password: string, options?: {
|
8
|
-
rememberMe?: boolean;
|
9
|
-
}): Observable<string>;
|
10
|
-
private _http;
|
11
|
-
constructor(injector: Injector);
|
12
|
-
signOut(): Promise<Object>;
|
13
|
-
forgot(email: string): Observable<any>;
|
14
|
-
get photo(): string;
|
15
|
-
get displayName(): string;
|
16
|
-
get username(): string;
|
17
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<FormAuthentication, never>;
|
18
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<FormAuthentication>;
|
19
|
-
}
|
20
|
-
export declare enum LoginResult {
|
21
|
-
OK = 0,
|
22
|
-
Failed = 1
|
23
|
-
}
|
24
|
-
export interface LoginResultModel {
|
25
|
-
gender?: string;
|
26
|
-
photo?: string;
|
27
|
-
name: string;
|
28
|
-
tokenId: string;
|
29
|
-
}
|
@@ -1,11 +0,0 @@
|
|
1
|
-
import { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent } from '@angular/common/http';
|
2
|
-
import { Observable } from 'rxjs';
|
3
|
-
import { FormAuthentication } from './form.authentication';
|
4
|
-
import * as i0 from "@angular/core";
|
5
|
-
export declare class FormHttpInterceptor implements HttpInterceptor {
|
6
|
-
private _service;
|
7
|
-
constructor(_service: FormAuthentication);
|
8
|
-
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>>;
|
9
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<FormHttpInterceptor, never>;
|
10
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<FormHttpInterceptor>;
|
11
|
-
}
|
@@ -1,18 +0,0 @@
|
|
1
|
-
import { SessionService } from '../core/session.service';
|
2
|
-
import { OverlayRef } from '@angular/cdk/overlay';
|
3
|
-
import * as i0 from "@angular/core";
|
4
|
-
export declare class LoginComponent {
|
5
|
-
private _overlayRef;
|
6
|
-
private _session;
|
7
|
-
working: boolean;
|
8
|
-
languages: string[];
|
9
|
-
currentLanguage: string;
|
10
|
-
mode: 'prompt' | 'forgot';
|
11
|
-
/** login ctor */
|
12
|
-
constructor(_overlayRef: OverlayRef, _session: SessionService);
|
13
|
-
changeLanguage(code: string): void;
|
14
|
-
forgot(ev: MouseEvent): void;
|
15
|
-
close(): void;
|
16
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<LoginComponent, never>;
|
17
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<LoginComponent, "bizdoc-login", never, {}, {}, never, never>;
|
18
|
-
}
|
@@ -1,13 +0,0 @@
|
|
1
|
-
import { OktaConfig } from '@okta/okta-angular';
|
2
|
-
import { AuthenticationImpl } from '../core/authentication';
|
3
|
-
import * as i0 from "@angular/core";
|
4
|
-
export declare const DEFAULT_SCOPES: string[];
|
5
|
-
export declare class OktaAuthentication extends AuthenticationImpl {
|
6
|
-
private _okta;
|
7
|
-
getAccessToken(): Promise<string>;
|
8
|
-
isAuthenticated(): Promise<boolean>;
|
9
|
-
signOut(): Promise<void>;
|
10
|
-
constructor(_okta: OktaConfig);
|
11
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<OktaAuthentication, never>;
|
12
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<OktaAuthentication>;
|
13
|
-
}
|
@@ -1,18 +0,0 @@
|
|
1
|
-
import { OverlayRef } from '@angular/cdk/overlay';
|
2
|
-
import { OnInit } from '@angular/core';
|
3
|
-
import { BizDocConfig } from '../core/configuration';
|
4
|
-
import { TranslateService } from '../core/translate.service';
|
5
|
-
import { OktaConfig } from '@okta/okta-angular';
|
6
|
-
import * as i0 from "@angular/core";
|
7
|
-
/** */
|
8
|
-
export declare class OktaComponent implements OnInit {
|
9
|
-
private _translate;
|
10
|
-
private _overlayRef;
|
11
|
-
private _config;
|
12
|
-
private _okta;
|
13
|
-
constructor(_translate: TranslateService, _overlayRef: OverlayRef, _config: BizDocConfig, _okta: OktaConfig);
|
14
|
-
ngOnInit(): void;
|
15
|
-
ngAfterViewInit(): void;
|
16
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<OktaComponent, never>;
|
17
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<OktaComponent, "ng-component", never, {}, {}, never, never>;
|
18
|
-
}
|
@@ -1,11 +0,0 @@
|
|
1
|
-
import { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent } from '@angular/common/http';
|
2
|
-
import { Observable } from 'rxjs';
|
3
|
-
import { OktaAuthentication } from './okta.authentication';
|
4
|
-
import * as i0 from "@angular/core";
|
5
|
-
export declare class OktaHttpInterceptor implements HttpInterceptor {
|
6
|
-
private _service;
|
7
|
-
constructor(_service: OktaAuthentication);
|
8
|
-
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>>;
|
9
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<OktaHttpInterceptor, never>;
|
10
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<OktaHttpInterceptor>;
|
11
|
-
}
|
@@ -1,45 +0,0 @@
|
|
1
|
-
import { EventEmitter, OnInit, OnDestroy, ElementRef, AfterViewInit } from '@angular/core';
|
2
|
-
import { SessionService } from '../../core/session.service';
|
3
|
-
import { BizDocConfig } from '../../core/configuration';
|
4
|
-
import { UserInfo } from '../../core/models';
|
5
|
-
import { FormGroup, FormControl } from '@angular/forms';
|
6
|
-
import { Observable } from 'rxjs';
|
7
|
-
import { PromptService } from '../../core/prompt.service';
|
8
|
-
import { AutofillMonitor } from '@angular/cdk/text-field';
|
9
|
-
import { FormAuthentication } from "../form.authentication";
|
10
|
-
import * as i0 from "@angular/core";
|
11
|
-
export declare class CredetialsComponent implements OnInit, AfterViewInit, OnDestroy {
|
12
|
-
private _session;
|
13
|
-
private _auth;
|
14
|
-
private _sb;
|
15
|
-
private _autofill;
|
16
|
-
readonly success: EventEmitter<string>;
|
17
|
-
logging: boolean;
|
18
|
-
readonly loggingChange: EventEmitter<boolean>;
|
19
|
-
mode: LoginMode;
|
20
|
-
more: boolean;
|
21
|
-
hide: boolean;
|
22
|
-
photo: string;
|
23
|
-
displayName: string;
|
24
|
-
users$: Observable<UserInfo[]>;
|
25
|
-
readonly username: FormControl;
|
26
|
-
readonly password: FormControl;
|
27
|
-
readonly impersonate: FormControl;
|
28
|
-
readonly rememberMe: FormControl;
|
29
|
-
readonly form: FormGroup;
|
30
|
-
readonly isMobile: boolean;
|
31
|
-
usernameElement: ElementRef<HTMLInputElement>;
|
32
|
-
formElement: ElementRef<HTMLFormElement>;
|
33
|
-
private readonly _destroy;
|
34
|
-
/** prompt ctor */
|
35
|
-
constructor(config: BizDocConfig, _session: SessionService, _auth: FormAuthentication, _sb: PromptService, _autofill: AutofillMonitor);
|
36
|
-
ngOnInit(): void;
|
37
|
-
toggleHide(evt: MouseEvent): void;
|
38
|
-
ngAfterViewInit(): void;
|
39
|
-
ok(): void;
|
40
|
-
ngOnDestroy(): void;
|
41
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<CredetialsComponent, never>;
|
42
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<CredetialsComponent, "bizdoc-prompt", never, { "logging": "logging"; }, { "success": "success"; "loggingChange": "loggingChange"; }, never, never>;
|
43
|
-
}
|
44
|
-
declare type LoginMode = 'returning' | 'prompt';
|
45
|
-
export {};
|
@@ -1,18 +0,0 @@
|
|
1
|
-
import { Injector } from '@angular/core';
|
2
|
-
import { Observable } from 'rxjs';
|
3
|
-
import { Overlay } from '@angular/cdk/overlay';
|
4
|
-
import { Directionality } from '@angular/cdk/bidi';
|
5
|
-
import { SessionService } from '../core/session.service';
|
6
|
-
import * as i0 from "@angular/core";
|
7
|
-
/** prompts login comp */
|
8
|
-
export declare class SignInInfo {
|
9
|
-
private _session;
|
10
|
-
private _overlay;
|
11
|
-
private _injector;
|
12
|
-
private _dir;
|
13
|
-
pop(): Observable<any>;
|
14
|
-
constructor(_session: SessionService, _overlay: Overlay, _injector: Injector, _dir: Directionality);
|
15
|
-
private _pop;
|
16
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<SignInInfo, never>;
|
17
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<SignInInfo>;
|
18
|
-
}
|