@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.
Files changed (58) hide show
  1. package/bundles/bizdoc-core.umd.js +453 -1311
  2. package/bundles/bizdoc-core.umd.js.map +1 -1
  3. package/esm2015/lib/app.component.js +7 -13
  4. package/esm2015/lib/bizdoc.module.js +2 -37
  5. package/esm2015/lib/core/configuration.js +1 -1
  6. package/esm2015/lib/core/session.service.js +1 -9
  7. package/esm2015/lib/cube/accum/accum.component.js +2 -4
  8. package/esm2015/lib/cube/chart/chart.component.js +1 -1
  9. package/esm2015/lib/cube/filter/filter-tags.component.exp.js +8 -8
  10. package/esm2015/lib/cube/filter/filter.component.js +2 -2
  11. package/esm2015/lib/home/sign/sign.component.js +2 -2
  12. package/esm2015/lib/impersonate/impersonate.component.js +69 -0
  13. package/esm2015/lib/shared.module.js +8 -13
  14. package/esm2015/lib/system.module.js +8 -10
  15. package/esm2015/lib/views/cube/cube-base.js +4 -6
  16. package/esm2015/lib/views/cube/matrix.component.js +13 -31
  17. package/esm2015/lib/views/cube/view.component.js +13 -12
  18. package/esm2015/lib/views/views.component.js +10 -11
  19. package/esm2015/public-api.js +2 -6
  20. package/fesm2015/bizdoc-core.js +239 -1038
  21. package/fesm2015/bizdoc-core.js.map +1 -1
  22. package/lib/app.component.d.ts +1 -4
  23. package/lib/core/configuration.d.ts +1 -17
  24. package/lib/core/session.service.d.ts +0 -5
  25. package/lib/cube/accum/accum.component.d.ts +1 -2
  26. package/lib/cube/filter/filter-tags.component.exp.d.ts +2 -2
  27. package/lib/{login/impersonate → impersonate}/impersonate.component.d.ts +3 -3
  28. package/lib/shared.module.d.ts +158 -162
  29. package/lib/system.module.d.ts +25 -26
  30. package/lib/views/cube/cube-base.d.ts +12 -9
  31. package/lib/views/cube/matrix.component.d.ts +0 -13
  32. package/lib/views/cube/view.component.d.ts +2 -7
  33. package/lib/views/views.component.d.ts +3 -5
  34. package/package.json +1 -4
  35. package/public-api.d.ts +2 -6
  36. package/esm2015/lib/admin/users/users.component.js +0 -155
  37. package/esm2015/lib/admin/users/users.service.js +0 -29
  38. package/esm2015/lib/login/forgot/forgot.component.js +0 -50
  39. package/esm2015/lib/login/form.authentication.js +0 -71
  40. package/esm2015/lib/login/form.interceptor.js +0 -26
  41. package/esm2015/lib/login/impersonate/impersonate.component.js +0 -69
  42. package/esm2015/lib/login/login.component.js +0 -130
  43. package/esm2015/lib/login/okta.authentication.js +0 -41
  44. package/esm2015/lib/login/okta.component.js +0 -84
  45. package/esm2015/lib/login/okta.interceptor.js +0 -30
  46. package/esm2015/lib/login/prompt/prompt.component.js +0 -194
  47. package/esm2015/lib/login/signin-info.service.js +0 -49
  48. package/lib/admin/users/users.component.d.ts +0 -41
  49. package/lib/admin/users/users.service.d.ts +0 -30
  50. package/lib/login/forgot/forgot.component.d.ts +0 -20
  51. package/lib/login/form.authentication.d.ts +0 -29
  52. package/lib/login/form.interceptor.d.ts +0 -11
  53. package/lib/login/login.component.d.ts +0 -18
  54. package/lib/login/okta.authentication.d.ts +0 -13
  55. package/lib/login/okta.component.d.ts +0 -18
  56. package/lib/login/okta.interceptor.d.ts +0 -11
  57. package/lib/login/prompt/prompt.component.d.ts +0 -45
  58. 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
- }