adb-shared 6.0.55 → 6.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/adb-shared.mjs +204 -187
- package/fesm2022/adb-shared.mjs.map +1 -1
- package/lib/components/pagers/pager-base.directive.d.ts +1 -1
- package/package.json +7 -9
- package/esm2022/adb-shared.mjs +0 -5
- package/esm2022/lib/components/adb-artportalen-nav/adb-artportalen-footer.component.mjs +0 -48
- package/esm2022/lib/components/adb-artportalen-nav/adb-artportalen-nav.component.mjs +0 -112
- package/esm2022/lib/components/adb-artportalen-nav/adb-artportalen-nav.module.mjs +0 -59
- package/esm2022/lib/components/adb-artportalen-nav/environment.service.mjs +0 -16
- package/esm2022/lib/components/adb-artportalen-nav/navigation.model.mjs +0 -2
- package/esm2022/lib/components/adb-buttons/adb-buttons.module.mjs +0 -19
- package/esm2022/lib/components/adb-buttons/help-button.component.mjs +0 -48
- package/esm2022/lib/components/adb-confirm-modal/adb-confirm-modal.mjs +0 -29
- package/esm2022/lib/components/adb-confirm-modal/adb-modal.module.mjs +0 -23
- package/esm2022/lib/components/adb-confirm-modal/adb-modal.service.mjs +0 -47
- package/esm2022/lib/components/adb-dropdown/adb-dropdown.directive.mjs +0 -100
- package/esm2022/lib/components/adb-dropdown/adb-dropdown.module.mjs +0 -24
- package/esm2022/lib/components/adb-dropdown/adb-dropdown.service.mjs +0 -10
- package/esm2022/lib/components/adb-dropdown/adb-dropdown2.directive.mjs +0 -119
- package/esm2022/lib/components/adb-filter-section/adb-filter-section.module.mjs +0 -21
- package/esm2022/lib/components/adb-filter-section/filter-section.component.mjs +0 -31
- package/esm2022/lib/components/adb-header/adb-header.module.mjs +0 -49
- package/esm2022/lib/components/adb-header/adb-nav.component.mjs +0 -115
- package/esm2022/lib/components/adb-header/environment.service.mjs +0 -16
- package/esm2022/lib/components/adb-header/navigation.model.mjs +0 -2
- package/esm2022/lib/components/adb-rich-editor/adb-rich-editor.component.mjs +0 -112
- package/esm2022/lib/components/adb-rich-editor/adb-rich-editor.module.mjs +0 -29
- package/esm2022/lib/components/adb-rich-editor/adb-rich-text.mjs +0 -65
- package/esm2022/lib/components/adb-rich-editor/rich-module-config.mjs +0 -3
- package/esm2022/lib/components/adb-toast/adb-toast.mjs +0 -25
- package/esm2022/lib/components/adb-toast/adb-toast.module.mjs +0 -23
- package/esm2022/lib/components/adb-toast/adb-toast.service.mjs +0 -55
- package/esm2022/lib/components/adb-user/adb-user-service-config.mjs +0 -11
- package/esm2022/lib/components/adb-user/adb-user.interceptor.mjs +0 -46
- package/esm2022/lib/components/adb-user/adb-user.module.mjs +0 -59
- package/esm2022/lib/components/adb-user/adb-user.service.mjs +0 -214
- package/esm2022/lib/components/adb-user/auth-callback.component.mjs +0 -57
- package/esm2022/lib/components/adb-user/user-constants.mjs +0 -10
- package/esm2022/lib/components/date-picker/adb-date-picker.component.mjs +0 -177
- package/esm2022/lib/components/date-picker/adb-date-picker.directive.mjs +0 -220
- package/esm2022/lib/components/date-picker/adb-date-picker.module.mjs +0 -25
- package/esm2022/lib/components/date-picker/adb-date-picker.service.mjs +0 -10
- package/esm2022/lib/components/pagers/infinite-scroll.component.mjs +0 -47
- package/esm2022/lib/components/pagers/pager-base.directive.mjs +0 -57
- package/esm2022/lib/components/pagers/pager-inline.mjs +0 -49
- package/esm2022/lib/components/pagers/pager.mjs +0 -53
- package/esm2022/lib/components/pagers/pagers.module.mjs +0 -26
- package/esm2022/lib/directives/click-outside.directive.mjs +0 -28
- package/esm2022/lib/directives/directives.module.mjs +0 -21
- package/esm2022/lib/directives/file-upload.directive.mjs +0 -36
- package/esm2022/lib/directives/focus.directive.mjs +0 -34
- package/esm2022/lib/directives/redlist-badge-class.directive.mjs +0 -44
- package/esm2022/lib/directives/risk-class.directive.mjs +0 -37
- package/esm2022/lib/pipes/date.pipe.mjs +0 -22
- package/esm2022/lib/pipes/emptyValue.pipe.mjs +0 -22
- package/esm2022/lib/pipes/highlight-html.pipe.mjs +0 -46
- package/esm2022/lib/pipes/highlight.pipe.mjs +0 -46
- package/esm2022/lib/pipes/number-spacing.pipe.mjs +0 -21
- package/esm2022/lib/pipes/pipes.module.mjs +0 -21
- package/esm2022/public-api.mjs +0 -50
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import { Injectable } from "@angular/core";
|
|
2
|
-
import { of, Subject } from "rxjs";
|
|
3
|
-
import { delay } from "rxjs/operators";
|
|
4
|
-
import { AdbToast } from "./adb-toast";
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
export class AdbToastService {
|
|
7
|
-
constructor(componentFactoryResolver, rendererFactory, appRef, injector) {
|
|
8
|
-
this.componentFactoryResolver = componentFactoryResolver;
|
|
9
|
-
this.rendererFactory = rendererFactory;
|
|
10
|
-
this.appRef = appRef;
|
|
11
|
-
this.injector = injector;
|
|
12
|
-
this.toasts = new Array();
|
|
13
|
-
this.toastsSubject = new Subject();
|
|
14
|
-
this.$toasts = this.toastsSubject.asObservable();
|
|
15
|
-
}
|
|
16
|
-
add(toastMessage, time = 4000) {
|
|
17
|
-
this.addContainer();
|
|
18
|
-
toastMessage.type = toastMessage.type ? toastMessage.type : ToastType.Primary;
|
|
19
|
-
toastMessage.index = this.toasts.length;
|
|
20
|
-
toastMessage.delay = of(toastMessage).pipe(delay(time)).subscribe(toast => {
|
|
21
|
-
this.remove(toast);
|
|
22
|
-
});
|
|
23
|
-
this.toasts.push(toastMessage);
|
|
24
|
-
this.toastsSubject.next(this.toasts);
|
|
25
|
-
}
|
|
26
|
-
remove(toast) {
|
|
27
|
-
this.toasts = this.toasts?.filter(x => x.index !== toast.index);
|
|
28
|
-
this.toastsSubject.next(this.toasts);
|
|
29
|
-
}
|
|
30
|
-
addContainer() {
|
|
31
|
-
if (!this.container) {
|
|
32
|
-
this.renderer = this.rendererFactory.createRenderer(null, null);
|
|
33
|
-
//create container i top
|
|
34
|
-
this.container = this.renderer.createElement('div');
|
|
35
|
-
this.renderer.appendChild(document.body, this.container);
|
|
36
|
-
let componentRef = this.componentFactoryResolver.resolveComponentFactory(AdbToast).create(this.injector);
|
|
37
|
-
this.appRef.attachView(componentRef.hostView);
|
|
38
|
-
const element = componentRef.hostView.rootNodes[0];
|
|
39
|
-
this.container.prepend(element);
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: AdbToastService, deps: [{ token: i0.ComponentFactoryResolver }, { token: i0.RendererFactory2 }, { token: i0.ApplicationRef }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
43
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: AdbToastService }); }
|
|
44
|
-
}
|
|
45
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: AdbToastService, decorators: [{
|
|
46
|
-
type: Injectable
|
|
47
|
-
}], ctorParameters: () => [{ type: i0.ComponentFactoryResolver }, { type: i0.RendererFactory2 }, { type: i0.ApplicationRef }, { type: i0.Injector }] });
|
|
48
|
-
export var ToastType;
|
|
49
|
-
(function (ToastType) {
|
|
50
|
-
ToastType[ToastType["Primary"] = 1] = "Primary";
|
|
51
|
-
ToastType[ToastType["Success"] = 2] = "Success";
|
|
52
|
-
ToastType[ToastType["Warn"] = 3] = "Warn";
|
|
53
|
-
ToastType[ToastType["Danger"] = 4] = "Danger";
|
|
54
|
-
})(ToastType || (ToastType = {}));
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRiLXRvYXN0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcnRkYXRhLXNoYXJlZC9zcmMvbGliL2NvbXBvbmVudHMvYWRiLXRvYXN0L2FkYi10b2FzdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBNkQsVUFBVSxFQUF5QyxNQUFNLGVBQWUsQ0FBQztBQUM3SSxPQUFPLEVBQWMsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7QUFFdkMsTUFBTSxPQUFPLGVBQWU7SUFReEIsWUFDWSx3QkFBa0QsRUFDbEQsZUFBaUMsRUFDakMsTUFBc0IsRUFDdEIsUUFBa0I7UUFIbEIsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQUNsRCxvQkFBZSxHQUFmLGVBQWUsQ0FBa0I7UUFDakMsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFDdEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQVh0QixXQUFNLEdBQUcsSUFBSSxLQUFLLEVBQWdCLENBQUM7UUFDbkMsa0JBQWEsR0FBRyxJQUFJLE9BQU8sRUFBa0IsQ0FBQztRQUN0RCxZQUFPLEdBQStCLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFLENBQUM7SUFVeEUsQ0FBQztJQUVELEdBQUcsQ0FBQyxZQUEwQixFQUFFLElBQUksR0FBRyxJQUFJO1FBQ3ZDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNwQixZQUFZLENBQUMsSUFBSSxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUM7UUFDOUUsWUFBWSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztRQUN4QyxZQUFZLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3RFLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkIsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFtQjtRQUN0QixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFTyxZQUFZO1FBQ2hCLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDaEUsd0JBQXdCO1lBQ3hCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDcEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDekQsSUFBSSxZQUFZLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUFDLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDekcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzlDLE1BQU0sT0FBTyxHQUFJLFlBQVksQ0FBQyxRQUFpQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQWdCLENBQUM7WUFDNUYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDcEMsQ0FBQztJQUNMLENBQUM7aUlBMUNRLGVBQWU7cUlBQWYsZUFBZTs7MkZBQWYsZUFBZTtrQkFEM0IsVUFBVTs7QUFzRFgsTUFBTSxDQUFOLElBQVksU0FLWDtBQUxELFdBQVksU0FBUztJQUNqQiwrQ0FBVyxDQUFBO0lBQ1gsK0NBQVcsQ0FBQTtJQUNYLHlDQUFRLENBQUE7SUFDUiw2Q0FBVSxDQUFBO0FBQ2QsQ0FBQyxFQUxXLFNBQVMsS0FBVCxTQUFTLFFBS3BCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXBwbGljYXRpb25SZWYsIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwgRW1iZWRkZWRWaWV3UmVmLCBJbmplY3RhYmxlLCBJbmplY3RvciwgUmVuZGVyZXIyLCBSZW5kZXJlckZhY3RvcnkyIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBkZWxheSB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5pbXBvcnQgeyBBZGJUb2FzdCB9IGZyb20gXCIuL2FkYi10b2FzdFwiO1xyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBBZGJUb2FzdFNlcnZpY2Uge1xyXG4gICAgcHJpdmF0ZSB0b2FzdHMgPSBuZXcgQXJyYXk8VG9hc3RNZXNzYWdlPigpO1xyXG4gICAgcHJpdmF0ZSB0b2FzdHNTdWJqZWN0ID0gbmV3IFN1YmplY3Q8VG9hc3RNZXNzYWdlW10+KCk7XHJcbiAgICAkdG9hc3RzOiBPYnNlcnZhYmxlPFRvYXN0TWVzc2FnZVtdPiA9IHRoaXMudG9hc3RzU3ViamVjdC5hc09ic2VydmFibGUoKTtcclxuICAgIHJlbmRlcmVyOiBSZW5kZXJlcjI7XHJcbiAgICBkb21FbGVtZW50OiBIVE1MRWxlbWVudDtcclxuICAgIGNvbnRhaW5lcjogYW55O1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXHJcbiAgICAgICAgcHJpdmF0ZSByZW5kZXJlckZhY3Rvcnk6IFJlbmRlcmVyRmFjdG9yeTIsXHJcbiAgICAgICAgcHJpdmF0ZSBhcHBSZWY6IEFwcGxpY2F0aW9uUmVmLFxyXG4gICAgICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yKSB7XHJcbiAgICB9XHJcblxyXG4gICAgYWRkKHRvYXN0TWVzc2FnZTogVG9hc3RNZXNzYWdlLCB0aW1lID0gNDAwMCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuYWRkQ29udGFpbmVyKCk7XHJcbiAgICAgICAgdG9hc3RNZXNzYWdlLnR5cGUgPSB0b2FzdE1lc3NhZ2UudHlwZSA/IHRvYXN0TWVzc2FnZS50eXBlIDogVG9hc3RUeXBlLlByaW1hcnk7XHJcbiAgICAgICAgdG9hc3RNZXNzYWdlLmluZGV4ID0gdGhpcy50b2FzdHMubGVuZ3RoO1xyXG4gICAgICAgIHRvYXN0TWVzc2FnZS5kZWxheSA9IG9mKHRvYXN0TWVzc2FnZSkucGlwZShkZWxheSh0aW1lKSkuc3Vic2NyaWJlKHRvYXN0ID0+IHtcclxuICAgICAgICAgICAgdGhpcy5yZW1vdmUodG9hc3QpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMudG9hc3RzLnB1c2godG9hc3RNZXNzYWdlKTtcclxuICAgICAgICB0aGlzLnRvYXN0c1N1YmplY3QubmV4dCh0aGlzLnRvYXN0cyk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVtb3ZlKHRvYXN0OiBUb2FzdE1lc3NhZ2UpIHtcclxuICAgICAgICB0aGlzLnRvYXN0cyA9IHRoaXMudG9hc3RzPy5maWx0ZXIoeCA9PiB4LmluZGV4ICE9PSB0b2FzdC5pbmRleCk7XHJcbiAgICAgICAgdGhpcy50b2FzdHNTdWJqZWN0Lm5leHQodGhpcy50b2FzdHMpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgYWRkQ29udGFpbmVyKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICghdGhpcy5jb250YWluZXIpIHtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJlciA9IHRoaXMucmVuZGVyZXJGYWN0b3J5LmNyZWF0ZVJlbmRlcmVyKG51bGwsIG51bGwpO1xyXG4gICAgICAgICAgICAvL2NyZWF0ZSBjb250YWluZXIgaSB0b3BcclxuICAgICAgICAgICAgdGhpcy5jb250YWluZXIgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKGRvY3VtZW50LmJvZHksIHRoaXMuY29udGFpbmVyKTtcclxuICAgICAgICAgICAgbGV0IGNvbXBvbmVudFJlZiA9IHRoaXMuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KEFkYlRvYXN0KS5jcmVhdGUodGhpcy5pbmplY3Rvcik7XHJcbiAgICAgICAgICAgIHRoaXMuYXBwUmVmLmF0dGFjaFZpZXcoY29tcG9uZW50UmVmLmhvc3RWaWV3KTtcclxuICAgICAgICAgICAgY29uc3QgZWxlbWVudCA9IChjb21wb25lbnRSZWYuaG9zdFZpZXcgYXMgRW1iZWRkZWRWaWV3UmVmPGFueT4pLnJvb3ROb2Rlc1swXSBhcyBIVE1MRWxlbWVudDtcclxuICAgICAgICAgICAgdGhpcy5jb250YWluZXIucHJlcGVuZChlbGVtZW50KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBUb2FzdE1lc3NhZ2Uge1xyXG4gICAgaGVhZGVyPzogc3RyaW5nLFxyXG4gICAgaGVhZGVyVmFsdWU/OiBhbnk7XHJcbiAgICBtZXNzYWdlOiBzdHJpbmcsXHJcbiAgICBtZXNzYWdlVmFsdWU/OiBhbnk7XHJcbiAgICB0eXBlPzogVG9hc3RUeXBlLFxyXG4gICAgaW5kZXg/OiBudW1iZXI7XHJcbiAgICBkZWxheT86IGFueTtcclxufVxyXG5leHBvcnQgZW51bSBUb2FzdFR5cGUge1xyXG4gICAgUHJpbWFyeSA9IDEsXHJcbiAgICBTdWNjZXNzID0gMixcclxuICAgIFdhcm4gPSAzLFxyXG4gICAgRGFuZ2VyID0gNFxyXG59Il19
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { InjectionToken } from "@angular/core";
|
|
2
|
-
export const ADB_USER_SERVICE_CONFIG = new InjectionToken('ADB_DATA_SERVICE_CONFIG');
|
|
3
|
-
export const DEFAULT_ADB_USER_SERVICE_CONFIG = {
|
|
4
|
-
scope: 'roles profile email',
|
|
5
|
-
idleTime: 25,
|
|
6
|
-
autoLogin: false,
|
|
7
|
-
response_type: 'code',
|
|
8
|
-
overrideIssuer: false,
|
|
9
|
-
log: false
|
|
10
|
-
};
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRiLXVzZXItc2VydmljZS1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcnRkYXRhLXNoYXJlZC9zcmMvbGliL2NvbXBvbmVudHMvYWRiLXVzZXIvYWRiLXVzZXItc2VydmljZS1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQWUvQyxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxJQUFJLGNBQWMsQ0FBdUIseUJBQXlCLENBQUMsQ0FBQztBQUMzRyxNQUFNLENBQUMsTUFBTSwrQkFBK0IsR0FBRztJQUMzQyxLQUFLLEVBQUUscUJBQXFCO0lBQzVCLFFBQVEsRUFBRSxFQUFFO0lBQ1osU0FBUyxFQUFFLEtBQUs7SUFDaEIsYUFBYSxFQUFFLE1BQU07SUFDckIsY0FBYyxFQUFFLEtBQUs7SUFDckIsR0FBRyxFQUFFLEtBQUs7Q0FDYixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuLy8gYWRiLXNlcnZpY2VzL2FkYi1kYXRhLXNlcnZpY2UtY29uZmlnLnRzXHJcbmV4cG9ydCBpbnRlcmZhY2UgQWRiVXNlclNlcnZpY2VDb25maWcge1xyXG4gICAgcmVkaXJlY3RVcmw6IHN0cmluZztcclxuICAgIGNsaWVudElkOiBzdHJpbmc7XHJcbiAgICBpc3N1ZXI6IHN0cmluZztcclxuICAgIHNjb3BlPzogc3RyaW5nO1xyXG4gICAgcmVzcG9uc2VUeXBlPzogc3RyaW5nO1xyXG4gICAgaWRsZVRpbWU/OiBudW1iZXI7XHJcbiAgICBhdXRvTG9naW4/OiBib29sZWFuO1xyXG4gICAgcG9zdExvZ291dFVybD86IHN0cmluZztcclxuICAgIG92ZXJyaWRlSXNzdWVyPzogYm9vbGVhbixcclxuICAgIGxvZz86IGJvb2xlYW5cclxufVxyXG5leHBvcnQgY29uc3QgQURCX1VTRVJfU0VSVklDRV9DT05GSUcgPSBuZXcgSW5qZWN0aW9uVG9rZW48QWRiVXNlclNlcnZpY2VDb25maWc+KCdBREJfREFUQV9TRVJWSUNFX0NPTkZJRycpO1xyXG5leHBvcnQgY29uc3QgREVGQVVMVF9BREJfVVNFUl9TRVJWSUNFX0NPTkZJRyA9IHtcclxuICAgIHNjb3BlOiAncm9sZXMgcHJvZmlsZSBlbWFpbCcsXHJcbiAgICBpZGxlVGltZTogMjUsXHJcbiAgICBhdXRvTG9naW46IGZhbHNlLFxyXG4gICAgcmVzcG9uc2VfdHlwZTogJ2NvZGUnLFxyXG4gICAgb3ZlcnJpZGVJc3N1ZXI6IGZhbHNlLFxyXG4gICAgbG9nOiBmYWxzZVxyXG59O1xyXG4iXX0=
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { catchError, throwError } from 'rxjs';
|
|
3
|
-
import { UserModuleConstants } from './user-constants';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "./adb-user.service";
|
|
6
|
-
export class AdbUserInterceptor {
|
|
7
|
-
static { this.UNAUTHENTICATED = 401; }
|
|
8
|
-
constructor(adbUserService) {
|
|
9
|
-
this.adbUserService = adbUserService;
|
|
10
|
-
}
|
|
11
|
-
intercept(req, next) {
|
|
12
|
-
if (req.headers.get('X-System-Request') !== 'true') {
|
|
13
|
-
sessionStorage.setItem(UserModuleConstants.USER_LAST_ACTIVE, Date.now().toString());
|
|
14
|
-
}
|
|
15
|
-
const accessToken = sessionStorage.getItem(UserModuleConstants.ACCESS_TOKEN);
|
|
16
|
-
if (accessToken) {
|
|
17
|
-
const clonedRequest = req.clone({
|
|
18
|
-
setHeaders: {
|
|
19
|
-
Authorization: `Bearer ${accessToken}`
|
|
20
|
-
}
|
|
21
|
-
});
|
|
22
|
-
return next.handle(clonedRequest).pipe(catchError((err) => this.handleErrors(err)));
|
|
23
|
-
}
|
|
24
|
-
else {
|
|
25
|
-
return next.handle(req).pipe(catchError((err) => this.handleErrors(err)));
|
|
26
|
-
;
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
handleErrors(error) {
|
|
30
|
-
if (error.error instanceof ErrorEvent) {
|
|
31
|
-
// Client-side error
|
|
32
|
-
}
|
|
33
|
-
else {
|
|
34
|
-
if (error.status === AdbUserInterceptor.UNAUTHENTICATED) {
|
|
35
|
-
// this.adbUserService.authorize();
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
return throwError(() => error);
|
|
39
|
-
}
|
|
40
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: AdbUserInterceptor, deps: [{ token: i1.AdbUserService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
41
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: AdbUserInterceptor }); }
|
|
42
|
-
}
|
|
43
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: AdbUserInterceptor, decorators: [{
|
|
44
|
-
type: Injectable
|
|
45
|
-
}], ctorParameters: () => [{ type: i1.AdbUserService }] });
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRiLXVzZXIuaW50ZXJjZXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcnRkYXRhLXNoYXJlZC9zcmMvbGliL2NvbXBvbmVudHMvYWRiLXVzZXIvYWRiLXVzZXIuaW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsVUFBVSxFQUFjLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7O0FBSXZELE1BQU0sT0FBTyxrQkFBa0I7YUFDWixvQkFBZSxHQUFHLEdBQUcsQUFBTixDQUFPO0lBQ3JDLFlBQW9CLGNBQThCO1FBQTlCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtJQUFJLENBQUM7SUFFdkQsU0FBUyxDQUFDLEdBQXFCLEVBQUUsSUFBaUI7UUFDOUMsSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLE1BQU0sRUFBRSxDQUFDO1lBQ2pELGNBQWMsQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDeEYsQ0FBQztRQUNELE1BQU0sV0FBVyxHQUFHLGNBQWMsQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDN0UsSUFBSSxXQUFXLEVBQUUsQ0FBQztZQUNkLE1BQU0sYUFBYSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUM7Z0JBQzVCLFVBQVUsRUFBRTtvQkFDUixhQUFhLEVBQUUsVUFBVSxXQUFXLEVBQUU7aUJBQ3pDO2FBQ0osQ0FBQyxDQUFDO1lBQ0gsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFzQixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzRyxDQUFDO2FBQU0sQ0FBQztZQUNKLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsR0FBc0IsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFBQSxDQUFDO1FBQ2xHLENBQUM7SUFDTCxDQUFDO0lBR08sWUFBWSxDQUFDLEtBQXdCO1FBQ3pDLElBQUksS0FBSyxDQUFDLEtBQUssWUFBWSxVQUFVLEVBQUUsQ0FBQztZQUNwQyxvQkFBb0I7UUFDeEIsQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssa0JBQWtCLENBQUMsZUFBZSxFQUFFLENBQUM7Z0JBQ3RELG1DQUFtQztZQUN2QyxDQUFDO1FBQ0wsQ0FBQztRQUNELE9BQU8sVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ25DLENBQUM7aUlBL0JRLGtCQUFrQjtxSUFBbEIsa0JBQWtCOzsyRkFBbEIsa0JBQWtCO2tCQUQ5QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwSW50ZXJjZXB0b3IsIEh0dHBSZXF1ZXN0LCBIdHRwSGFuZGxlciwgSHR0cEV2ZW50LCBIdHRwRXJyb3JSZXNwb25zZSwgSHR0cFJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBjYXRjaEVycm9yLCBPYnNlcnZhYmxlLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFVzZXJNb2R1bGVDb25zdGFudHMgfSBmcm9tICcuL3VzZXItY29uc3RhbnRzJztcclxuaW1wb3J0IHsgQWRiVXNlclNlcnZpY2UgfSBmcm9tICcuL2FkYi11c2VyLnNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgQWRiVXNlckludGVyY2VwdG9yIGltcGxlbWVudHMgSHR0cEludGVyY2VwdG9yIHtcclxuICAgIHByaXZhdGUgc3RhdGljIFVOQVVUSEVOVElDQVRFRCA9IDQwMTtcclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgYWRiVXNlclNlcnZpY2U6IEFkYlVzZXJTZXJ2aWNlKSB7IH1cclxuXHJcbiAgICBpbnRlcmNlcHQocmVxOiBIdHRwUmVxdWVzdDxhbnk+LCBuZXh0OiBIdHRwSGFuZGxlcik6IE9ic2VydmFibGU8SHR0cEV2ZW50PGFueT4+IHtcclxuICAgICAgICBpZiAocmVxLmhlYWRlcnMuZ2V0KCdYLVN5c3RlbS1SZXF1ZXN0JykgIT09ICd0cnVlJykge1xyXG4gICAgICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKFVzZXJNb2R1bGVDb25zdGFudHMuVVNFUl9MQVNUX0FDVElWRSwgRGF0ZS5ub3coKS50b1N0cmluZygpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgYWNjZXNzVG9rZW4gPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFVzZXJNb2R1bGVDb25zdGFudHMuQUNDRVNTX1RPS0VOKTtcclxuICAgICAgICBpZiAoYWNjZXNzVG9rZW4pIHtcclxuICAgICAgICAgICAgY29uc3QgY2xvbmVkUmVxdWVzdCA9IHJlcS5jbG9uZSh7XHJcbiAgICAgICAgICAgICAgICBzZXRIZWFkZXJzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke2FjY2Vzc1Rva2VufWBcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHJldHVybiBuZXh0LmhhbmRsZShjbG9uZWRSZXF1ZXN0KS5waXBlKGNhdGNoRXJyb3IoKGVycjogSHR0cEVycm9yUmVzcG9uc2UpID0+IHRoaXMuaGFuZGxlRXJyb3JzKGVycikpKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gbmV4dC5oYW5kbGUocmVxKS5waXBlKGNhdGNoRXJyb3IoKGVycjogSHR0cEVycm9yUmVzcG9uc2UpID0+IHRoaXMuaGFuZGxlRXJyb3JzKGVycikpKTs7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICBwcml2YXRlIGhhbmRsZUVycm9ycyhlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpIHtcclxuICAgICAgICBpZiAoZXJyb3IuZXJyb3IgaW5zdGFuY2VvZiBFcnJvckV2ZW50KSB7XHJcbiAgICAgICAgICAgIC8vIENsaWVudC1zaWRlIGVycm9yXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PT0gQWRiVXNlckludGVyY2VwdG9yLlVOQVVUSEVOVElDQVRFRCkge1xyXG4gICAgICAgICAgICAgICAgLy8gdGhpcy5hZGJVc2VyU2VydmljZS5hdXRob3JpemUoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBlcnJvcik7XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import { CommonModule } from "@angular/common";
|
|
2
|
-
import { HTTP_INTERCEPTORS } from "@angular/common/http";
|
|
3
|
-
import { NgModule } from "@angular/core";
|
|
4
|
-
import { TranslateModule } from "@ngx-translate/core";
|
|
5
|
-
import { ADB_USER_SERVICE_CONFIG, DEFAULT_ADB_USER_SERVICE_CONFIG } from "./adb-user-service-config";
|
|
6
|
-
import { RouterModule } from "@angular/router";
|
|
7
|
-
import { AuthCallbackComponent } from "./auth-callback.component";
|
|
8
|
-
import { AdbUserService } from "./adb-user.service";
|
|
9
|
-
import { AdbUserInterceptor } from "./adb-user.interceptor";
|
|
10
|
-
import * as i0 from "@angular/core";
|
|
11
|
-
import * as i1 from "@angular/router";
|
|
12
|
-
import * as i2 from "@ngx-translate/core";
|
|
13
|
-
const routes = [
|
|
14
|
-
{ path: 'auth-callback', component: AuthCallbackComponent }
|
|
15
|
-
];
|
|
16
|
-
export class AdbUserModule {
|
|
17
|
-
static forRoot(config) {
|
|
18
|
-
return {
|
|
19
|
-
ngModule: AdbUserModule,
|
|
20
|
-
providers: [
|
|
21
|
-
{
|
|
22
|
-
provide: ADB_USER_SERVICE_CONFIG,
|
|
23
|
-
useValue: {
|
|
24
|
-
...DEFAULT_ADB_USER_SERVICE_CONFIG,
|
|
25
|
-
...config,
|
|
26
|
-
scope: `${config.scope || ''} offline_access`.trim()
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
],
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: AdbUserModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
33
|
-
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.8", ngImport: i0, type: AdbUserModule, declarations: [AuthCallbackComponent], imports: [CommonModule, i1.RouterModule, i2.TranslateModule], exports: [AuthCallbackComponent] }); }
|
|
34
|
-
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: AdbUserModule, providers: [
|
|
35
|
-
AdbUserService,
|
|
36
|
-
{
|
|
37
|
-
provide: HTTP_INTERCEPTORS,
|
|
38
|
-
useClass: AdbUserInterceptor,
|
|
39
|
-
multi: true
|
|
40
|
-
}
|
|
41
|
-
], imports: [CommonModule, RouterModule.forChild(routes), TranslateModule.forChild()] }); }
|
|
42
|
-
}
|
|
43
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: AdbUserModule, decorators: [{
|
|
44
|
-
type: NgModule,
|
|
45
|
-
args: [{
|
|
46
|
-
imports: [CommonModule, RouterModule.forChild(routes), TranslateModule.forChild()],
|
|
47
|
-
declarations: [AuthCallbackComponent],
|
|
48
|
-
exports: [AuthCallbackComponent],
|
|
49
|
-
providers: [
|
|
50
|
-
AdbUserService,
|
|
51
|
-
{
|
|
52
|
-
provide: HTTP_INTERCEPTORS,
|
|
53
|
-
useClass: AdbUserInterceptor,
|
|
54
|
-
multi: true
|
|
55
|
-
}
|
|
56
|
-
]
|
|
57
|
-
}]
|
|
58
|
-
}] });
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRiLXVzZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJ0ZGF0YS1zaGFyZWQvc3JjL2xpYi9jb21wb25lbnRzL2FkYi11c2VyL2FkYi11c2VyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUF1QixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSx1QkFBdUIsRUFBd0IsK0JBQStCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUUzSCxPQUFPLEVBQUUsWUFBWSxFQUFVLE1BQU0saUJBQWlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7O0FBQzVELE1BQU0sTUFBTSxHQUFXO0lBQ3JCLEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUscUJBQXFCLEVBQUU7Q0FDNUQsQ0FBQztBQWNGLE1BQU0sT0FBTyxhQUFhO0lBQ3hCLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBNkI7UUFDMUMsT0FBTztZQUNMLFFBQVEsRUFBRSxhQUFhO1lBQ3ZCLFNBQVMsRUFBRTtnQkFDVDtvQkFDRSxPQUFPLEVBQUUsdUJBQXVCO29CQUNoQyxRQUFRLEVBQUU7d0JBQ1IsR0FBRywrQkFBK0I7d0JBQ2xDLEdBQUcsTUFBTTt3QkFDVCxLQUFLLEVBQUUsR0FBRyxNQUFNLENBQUMsS0FBSyxJQUFJLEVBQUUsaUJBQWlCLENBQUMsSUFBSSxFQUFFO3FCQUFHO2lCQUMxRDthQUNGO1NBQ0YsQ0FBQztJQUNKLENBQUM7aUlBZFUsYUFBYTtrSUFBYixhQUFhLGlCQVhULHFCQUFxQixhQUQxQixZQUFZLGtEQUVaLHFCQUFxQjtrSUFVcEIsYUFBYSxhQVRiO1lBQ1QsY0FBYztZQUNkO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFFBQVEsRUFBRSxrQkFBa0I7Z0JBQzVCLEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRixZQVZTLFlBQVksRUFBRSxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLGVBQWUsQ0FBQyxRQUFRLEVBQUU7OzJGQVl0RSxhQUFhO2tCQWJ6QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLGVBQWUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFDbEYsWUFBWSxFQUFFLENBQUMscUJBQXFCLENBQUM7b0JBQ3JDLE9BQU8sRUFBRSxDQUFDLHFCQUFxQixDQUFDO29CQUNoQyxTQUFTLEVBQUU7d0JBQ1QsY0FBYzt3QkFDZDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixRQUFRLEVBQUUsa0JBQWtCOzRCQUM1QixLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHsgSFRUUF9JTlRFUkNFUFRPUlMgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcclxuaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xyXG5pbXBvcnQgeyBBREJfVVNFUl9TRVJWSUNFX0NPTkZJRywgQWRiVXNlclNlcnZpY2VDb25maWcsIERFRkFVTFRfQURCX1VTRVJfU0VSVklDRV9DT05GSUcgfSBmcm9tIFwiLi9hZGItdXNlci1zZXJ2aWNlLWNvbmZpZ1wiO1xyXG5cclxuaW1wb3J0IHsgUm91dGVyTW9kdWxlLCBSb3V0ZXMgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcbmltcG9ydCB7IEF1dGhDYWxsYmFja0NvbXBvbmVudCB9IGZyb20gXCIuL2F1dGgtY2FsbGJhY2suY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IEFkYlVzZXJTZXJ2aWNlIH0gZnJvbSBcIi4vYWRiLXVzZXIuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBBZGJVc2VySW50ZXJjZXB0b3IgfSBmcm9tIFwiLi9hZGItdXNlci5pbnRlcmNlcHRvclwiO1xyXG5jb25zdCByb3V0ZXM6IFJvdXRlcyA9IFtcclxuICB7IHBhdGg6ICdhdXRoLWNhbGxiYWNrJywgY29tcG9uZW50OiBBdXRoQ2FsbGJhY2tDb21wb25lbnQgfVxyXG5dO1xyXG5ATmdNb2R1bGUoe1xyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFJvdXRlck1vZHVsZS5mb3JDaGlsZChyb3V0ZXMpLCBUcmFuc2xhdGVNb2R1bGUuZm9yQ2hpbGQoKV0sXHJcbiAgZGVjbGFyYXRpb25zOiBbQXV0aENhbGxiYWNrQ29tcG9uZW50XSxcclxuICBleHBvcnRzOiBbQXV0aENhbGxiYWNrQ29tcG9uZW50XSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIEFkYlVzZXJTZXJ2aWNlLFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBIVFRQX0lOVEVSQ0VQVE9SUyxcclxuICAgICAgdXNlQ2xhc3M6IEFkYlVzZXJJbnRlcmNlcHRvcixcclxuICAgICAgbXVsdGk6IHRydWVcclxuICAgIH1cclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBZGJVc2VyTW9kdWxlIHtcclxuICBzdGF0aWMgZm9yUm9vdChjb25maWc/OiBBZGJVc2VyU2VydmljZUNvbmZpZyk6IE1vZHVsZVdpdGhQcm92aWRlcnM8QWRiVXNlck1vZHVsZT4ge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgbmdNb2R1bGU6IEFkYlVzZXJNb2R1bGUsXHJcbiAgICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIHByb3ZpZGU6IEFEQl9VU0VSX1NFUlZJQ0VfQ09ORklHLFxyXG4gICAgICAgICAgdXNlVmFsdWU6IHtcclxuICAgICAgICAgICAgLi4uREVGQVVMVF9BREJfVVNFUl9TRVJWSUNFX0NPTkZJRyxcclxuICAgICAgICAgICAgLi4uY29uZmlnLFxyXG4gICAgICAgICAgICBzY29wZTogYCR7Y29uZmlnLnNjb3BlIHx8ICcnfSBvZmZsaW5lX2FjY2Vzc2AudHJpbSgpICB9XHJcbiAgICAgICAgfVxyXG4gICAgICBdLFxyXG4gICAgfTtcclxuICB9XHJcbn0iXX0=
|
|
@@ -1,214 +0,0 @@
|
|
|
1
|
-
import { Inject, Injectable } from '@angular/core';
|
|
2
|
-
import { ADB_USER_SERVICE_CONFIG } from './adb-user-service-config';
|
|
3
|
-
import { BehaviorSubject, Subscription } from 'rxjs';
|
|
4
|
-
import { HttpHeaders } from '@angular/common/http';
|
|
5
|
-
import { addSeconds, format } from 'date-fns';
|
|
6
|
-
import { UserModuleConstants } from './user-constants';
|
|
7
|
-
import { NavigationStart } from '@angular/router';
|
|
8
|
-
import * as i0 from "@angular/core";
|
|
9
|
-
import * as i1 from "@angular/common/http";
|
|
10
|
-
import * as i2 from "@angular/router";
|
|
11
|
-
export class AdbUserService {
|
|
12
|
-
// hasEmitted = false;
|
|
13
|
-
constructor(config, http, router) {
|
|
14
|
-
this.config = config;
|
|
15
|
-
this.http = http;
|
|
16
|
-
this.router = router;
|
|
17
|
-
this.subscriptions = new Subscription();
|
|
18
|
-
this.userSubject = new BehaviorSubject(null);
|
|
19
|
-
this.user$ = this.userSubject.asObservable();
|
|
20
|
-
this.lastRefreshTime = 0;
|
|
21
|
-
this.config = { ...{ scope: 'roles', idleTime: 30, response_type: 'code' }, ...config };
|
|
22
|
-
}
|
|
23
|
-
init() {
|
|
24
|
-
const accessToken = sessionStorage.getItem(UserModuleConstants.ACCESS_TOKEN);
|
|
25
|
-
if (accessToken) {
|
|
26
|
-
const user = this.getUser(accessToken);
|
|
27
|
-
this.userSubject.next(user);
|
|
28
|
-
this.startMainLoop();
|
|
29
|
-
}
|
|
30
|
-
else if (this.config.autoLogin) {
|
|
31
|
-
//NOTE: Avoid re-triggering login if we're in the middle of the auth-callback handling
|
|
32
|
-
const urlParams = new URLSearchParams(window.location.search);
|
|
33
|
-
if (urlParams.has('code')) {
|
|
34
|
-
this.log('Detected auth callback, skipping init login.');
|
|
35
|
-
return;
|
|
36
|
-
}
|
|
37
|
-
this.router.events.subscribe(event => {
|
|
38
|
-
if (event instanceof NavigationStart) {
|
|
39
|
-
this.login(event.url);
|
|
40
|
-
}
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
startMainLoop() {
|
|
45
|
-
this.checkStatus();
|
|
46
|
-
this.intervalId = setInterval(() => this.checkStatus(), 60 * 1000); // 60 seconds * 1000 milliseconds
|
|
47
|
-
}
|
|
48
|
-
login(url = null) {
|
|
49
|
-
this.log('url when login', url);
|
|
50
|
-
if (url) {
|
|
51
|
-
sessionStorage.setItem(UserModuleConstants.CURRENT_URL, url);
|
|
52
|
-
}
|
|
53
|
-
else {
|
|
54
|
-
sessionStorage.setItem(UserModuleConstants.CURRENT_URL, this.router.url);
|
|
55
|
-
}
|
|
56
|
-
this.authorize();
|
|
57
|
-
}
|
|
58
|
-
logout() {
|
|
59
|
-
clearInterval(this.intervalId);
|
|
60
|
-
// this.hasEmitted = false;
|
|
61
|
-
sessionStorage.clear();
|
|
62
|
-
window.location.href = `${this.config.issuer}/connect/endsession?post_logout_redirect_uri=${this.config.postLogoutUrl}`;
|
|
63
|
-
}
|
|
64
|
-
checkStatus() {
|
|
65
|
-
this.log('checkStatus runs');
|
|
66
|
-
const accessToken = sessionStorage.getItem(UserModuleConstants.ACCESS_TOKEN);
|
|
67
|
-
if (accessToken) {
|
|
68
|
-
this.log('has accesstoken');
|
|
69
|
-
const timeToLive = this.getTokenTimeToLive();
|
|
70
|
-
this.log('timeToLive', timeToLive);
|
|
71
|
-
if (timeToLive === 0) {
|
|
72
|
-
sessionStorage.removeItem(UserModuleConstants.ACCESS_TOKEN);
|
|
73
|
-
this.authorize();
|
|
74
|
-
}
|
|
75
|
-
else {
|
|
76
|
-
if (this.getTokenTimeToLive() <= 60 && this.hasUserBeenActive() && this.canRefreshToken()) {
|
|
77
|
-
console.log('token is about to timeout but we will refresh it because user has been active the last 5minutes');
|
|
78
|
-
this.refreshToken();
|
|
79
|
-
}
|
|
80
|
-
//NOTE: Might not be needed in this variant
|
|
81
|
-
// if (!this.hasEmitted) {
|
|
82
|
-
// const user = this.getUser(accessToken);
|
|
83
|
-
// this.userSubject.next(user);
|
|
84
|
-
// this.hasEmitted = true;
|
|
85
|
-
// }
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
//TODO: make it not exported by the module
|
|
90
|
-
_internalTriggerUserEvent(token) {
|
|
91
|
-
const user = this.getUser(token);
|
|
92
|
-
this.userSubject.next(user);
|
|
93
|
-
}
|
|
94
|
-
refreshToken() {
|
|
95
|
-
const body = `client_id=${encodeURIComponent(this.config.clientId)}&` +
|
|
96
|
-
`grant_type=${encodeURIComponent("refresh_token")}&` +
|
|
97
|
-
`refresh_token=${encodeURIComponent(sessionStorage.getItem(UserModuleConstants.REFRESH_TOKEN))}`;
|
|
98
|
-
this.http.post(`${this.config.issuer}/connect/token`, body, { headers: new HttpHeaders({ 'Content-Type': 'application/x-www-form-urlencoded' }) }).subscribe({
|
|
99
|
-
next: response => {
|
|
100
|
-
this.setTokensInSession(response);
|
|
101
|
-
}
|
|
102
|
-
});
|
|
103
|
-
this.lastRefreshTime = Date.now();
|
|
104
|
-
}
|
|
105
|
-
setTokensInSession(params) {
|
|
106
|
-
if (params.refresh_token) {
|
|
107
|
-
sessionStorage.setItem(UserModuleConstants.REFRESH_TOKEN, params.refresh_token);
|
|
108
|
-
}
|
|
109
|
-
if (params.access_token) {
|
|
110
|
-
sessionStorage.setItem(UserModuleConstants.ACCESS_TOKEN, params.access_token);
|
|
111
|
-
}
|
|
112
|
-
if (params.expires_in) {
|
|
113
|
-
const expireTime = addSeconds(new Date(), params.expires_in);
|
|
114
|
-
sessionStorage.setItem(UserModuleConstants.TOKEN_EXPIRES, format(expireTime, 'yyyy-MM-dd HH:mm:ss'));
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
async authorize() {
|
|
118
|
-
const codeVerifier = Array.from(crypto.getRandomValues(new Uint8Array(64)), byte => 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'[byte % 62]).join('');
|
|
119
|
-
sessionStorage.setItem(UserModuleConstants.CODE_VERIFIER, codeVerifier);
|
|
120
|
-
const encoder = new TextEncoder();
|
|
121
|
-
const data = encoder.encode(codeVerifier);
|
|
122
|
-
const hashBuffer = await crypto.subtle.digest('SHA-256', data);
|
|
123
|
-
const hashArray = new Uint8Array(hashBuffer);
|
|
124
|
-
let codeChallenge = btoa(String.fromCharCode(...hashArray));
|
|
125
|
-
codeChallenge = codeChallenge.replace(/=/g, '')
|
|
126
|
-
.replace(/\+/g, '-')
|
|
127
|
-
.replace(/\//g, '_');
|
|
128
|
-
const params = {
|
|
129
|
-
response_type: this.config.responseType,
|
|
130
|
-
client_id: this.config.clientId,
|
|
131
|
-
redirect_uri: this.config.redirectUrl,
|
|
132
|
-
scope: this.config.scope,
|
|
133
|
-
code_challenge: codeChallenge,
|
|
134
|
-
code_challenge_method: 'S256'
|
|
135
|
-
};
|
|
136
|
-
const url = new URL(this.config.issuer + '/connect/authorize');
|
|
137
|
-
url.search = this.addQueryParams(params).toString();
|
|
138
|
-
window.location.href = url.toString();
|
|
139
|
-
}
|
|
140
|
-
addQueryParams(object) {
|
|
141
|
-
if (!object) {
|
|
142
|
-
return null;
|
|
143
|
-
}
|
|
144
|
-
const urlParams = new URLSearchParams();
|
|
145
|
-
for (const prop in object) {
|
|
146
|
-
urlParams.append(prop, object[prop]);
|
|
147
|
-
}
|
|
148
|
-
return urlParams;
|
|
149
|
-
}
|
|
150
|
-
getTokenTimeToLive() {
|
|
151
|
-
const expires = sessionStorage.getItem(UserModuleConstants.TOKEN_EXPIRES);
|
|
152
|
-
if (expires) {
|
|
153
|
-
const expireDate = new Date(expires);
|
|
154
|
-
const now = new Date();
|
|
155
|
-
const timeToLive = Math.floor((expireDate.getTime() - now.getTime()) / 1000);
|
|
156
|
-
return timeToLive < 0 ? 0 : timeToLive;
|
|
157
|
-
}
|
|
158
|
-
return 0;
|
|
159
|
-
}
|
|
160
|
-
//Cooldown for avoiding infinite refresh
|
|
161
|
-
canRefreshToken() {
|
|
162
|
-
const now = Date.now();
|
|
163
|
-
if (now - this.lastRefreshTime > (2 * 60 * 1000)) {
|
|
164
|
-
return true;
|
|
165
|
-
}
|
|
166
|
-
return false;
|
|
167
|
-
}
|
|
168
|
-
hasUserBeenActive() {
|
|
169
|
-
const lastActive = sessionStorage.getItem(UserModuleConstants.USER_LAST_ACTIVE);
|
|
170
|
-
if (!lastActive) {
|
|
171
|
-
return false;
|
|
172
|
-
}
|
|
173
|
-
const timeSinceLastActive = Date.now() - parseInt(lastActive, 10);
|
|
174
|
-
const idleTimeMs = this.config.idleTime * 60 * 1000;
|
|
175
|
-
return timeSinceLastActive <= idleTimeMs;
|
|
176
|
-
}
|
|
177
|
-
log(message, ...optionalParams) {
|
|
178
|
-
if (this.config?.log) {
|
|
179
|
-
if (optionalParams?.length > 0) {
|
|
180
|
-
console.log(message, optionalParams);
|
|
181
|
-
}
|
|
182
|
-
else {
|
|
183
|
-
console.log(message);
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
getUser(token) {
|
|
188
|
-
try {
|
|
189
|
-
const [header, payload, signature] = token.split('.');
|
|
190
|
-
const base64Url = payload.replace(/-/g, '+').replace(/_/g, '/');
|
|
191
|
-
const decodedPayload = atob(base64Url);
|
|
192
|
-
const utf8Decoder = new TextDecoder('utf-8');
|
|
193
|
-
const utf8DecodedPayload = utf8Decoder.decode(new Uint8Array(decodedPayload.split('').map(char => char.charCodeAt(0))));
|
|
194
|
-
const parsedPayload = JSON.parse(utf8DecodedPayload);
|
|
195
|
-
return parsedPayload;
|
|
196
|
-
}
|
|
197
|
-
catch (error) {
|
|
198
|
-
console.error('Error decoding JWT', error);
|
|
199
|
-
return null;
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
ngOnDestroy() {
|
|
203
|
-
this.subscriptions.unsubscribe();
|
|
204
|
-
}
|
|
205
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: AdbUserService, deps: [{ token: ADB_USER_SERVICE_CONFIG }, { token: i1.HttpClient }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
206
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: AdbUserService }); }
|
|
207
|
-
}
|
|
208
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: AdbUserService, decorators: [{
|
|
209
|
-
type: Injectable
|
|
210
|
-
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
211
|
-
type: Inject,
|
|
212
|
-
args: [ADB_USER_SERVICE_CONFIG]
|
|
213
|
-
}] }, { type: i1.HttpClient }, { type: i2.Router }] });
|
|
214
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRiLXVzZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FydGRhdGEtc2hhcmVkL3NyYy9saWIvY29tcG9uZW50cy9hZGItdXNlci9hZGItdXNlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSx1QkFBdUIsRUFBd0IsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRixPQUFPLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyRCxPQUFPLEVBQWMsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDOUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBVSxNQUFNLGlCQUFpQixDQUFDOzs7O0FBSTFELE1BQU0sT0FBTyxjQUFjO0lBUXpCLHNCQUFzQjtJQUV0QixZQUMwQyxNQUE0QixFQUM1RCxJQUFnQixFQUNoQixNQUFjO1FBRmtCLFdBQU0sR0FBTixNQUFNLENBQXNCO1FBQzVELFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQVhoQixrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDbkMsZ0JBQVcsR0FBeUIsSUFBSSxlQUFlLENBQU0sSUFBSSxDQUFDLENBQUM7UUFDM0UsVUFBSyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFeEMsb0JBQWUsR0FBRyxDQUFDLENBQUM7UUFRbEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLFFBQVEs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O1lBQ2hFLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUN2QyxNQUFNLFdBQVcsR0FBRyxJQUFJLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM3QyxNQUFNLGtCQUFrQixHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxVQUFVLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3hILE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsQ0FBQztZQUNyRCxPQUFPLGFBQWEsQ0FBQztRQUN2QixDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLE9BQU8sQ0FBQyxLQUFLLENBQUMsb0JBQW9CLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDM0MsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ25DLENBQUM7aUlBdE5VLGNBQWMsa0JBV2YsdUJBQXVCO3FJQVh0QixjQUFjOzsyRkFBZCxjQUFjO2tCQUQxQixVQUFVOzswQkFZTixNQUFNOzJCQUFDLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFEQl9VU0VSX1NFUlZJQ0VfQ09ORklHLCBBZGJVc2VyU2VydmljZUNvbmZpZyB9IGZyb20gJy4vYWRiLXVzZXItc2VydmljZS1jb25maWcnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgYWRkU2Vjb25kcywgZm9ybWF0IH0gZnJvbSAnZGF0ZS1mbnMnO1xyXG5pbXBvcnQgeyBVc2VyTW9kdWxlQ29uc3RhbnRzIH0gZnJvbSAnLi91c2VyLWNvbnN0YW50cyc7XHJcbmltcG9ydCB7IE5hdmlnYXRpb25TdGFydCwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuXHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBBZGJVc2VyU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcblxyXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcclxuICBwcml2YXRlIHVzZXJTdWJqZWN0OiBCZWhhdmlvclN1YmplY3Q8YW55PiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55PihudWxsKTtcclxuICB1c2VyJCA9IHRoaXMudXNlclN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gIGxhc3RSZWZyZXNoVGltZSA9IDA7XHJcbiAgaW50ZXJ2YWxJZDogYW55O1xyXG4gIC8vIGhhc0VtaXR0ZWQgPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBASW5qZWN0KEFEQl9VU0VSX1NFUlZJQ0VfQ09ORklHKSBwdWJsaWMgY29uZmlnOiBBZGJVc2VyU2VydmljZUNvbmZpZyxcclxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIpIHtcclxuICAgIHRoaXMuY29uZmlnID0geyAuLi57IHNjb3BlOiAncm9sZXMnLCBpZGxlVGltZTogMzAsIHJlc3BvbnNlX3R5cGU6ICdjb2RlJyB9LCAuLi5jb25maWcgfTtcclxuICB9XHJcblxyXG4gIGluaXQoKTogdm9pZCB7XHJcbiAgICBjb25zdCBhY2Nlc3NUb2tlbiA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oVXNlck1vZHVsZUNvbnN0YW50cy5BQ0NFU1NfVE9LRU4pO1xyXG4gICAgaWYgKGFjY2Vzc1Rva2VuKSB7XHJcbiAgICAgIGNvbnN0IHVzZXIgPSB0aGlzLmdldFVzZXIoYWNjZXNzVG9rZW4pO1xyXG4gICAgICB0aGlzLnVzZXJTdWJqZWN0Lm5leHQodXNlcik7XHJcbiAgICAgIHRoaXMuc3RhcnRNYWluTG9vcCgpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmNvbmZpZy5hdXRvTG9naW4pIHtcclxuICAgICAgLy9OT1RFOiBBdm9pZCByZS10cmlnZ2VyaW5nIGxvZ2luIGlmIHdlJ3JlIGluIHRoZSBtaWRkbGUgb2YgdGhlIGF1dGgtY2FsbGJhY2sgaGFuZGxpbmdcclxuICAgICAgY29uc3QgdXJsUGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKTtcclxuICAgICAgaWYgKHVybFBhcmFtcy5oYXMoJ2NvZGUnKSkge1xyXG4gICAgICAgIHRoaXMubG9nKCdEZXRlY3RlZCBhdXRoIGNhbGxiYWNrLCBza2lwcGluZyBpbml0IGxvZ2luLicpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnJvdXRlci5ldmVudHMuc3Vic2NyaWJlKGV2ZW50ID0+IHtcclxuICAgICAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uU3RhcnQpIHtcclxuICAgICAgICAgIHRoaXMubG9naW4oZXZlbnQudXJsKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc3RhcnRNYWluTG9vcCgpIHtcclxuICAgIHRoaXMuY2hlY2tTdGF0dXMoKTtcclxuICAgIHRoaXMuaW50ZXJ2YWxJZCA9IHNldEludGVydmFsKCgpID0+IHRoaXMuY2hlY2tTdGF0dXMoKSwgNjAgKiAxMDAwKTsgLy8gNjAgc2Vjb25kcyAqIDEwMDAgbWlsbGlzZWNvbmRzXHJcbiAgfVxyXG5cclxuICBsb2dpbih1cmw6IHN0cmluZyA9IG51bGwpOiB2b2lkIHtcclxuICAgIHRoaXMubG9nKCd1cmwgd2hlbiBsb2dpbicsIHVybCk7XHJcbiAgICBpZiAodXJsKSB7XHJcbiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oVXNlck1vZHVsZUNvbnN0YW50cy5DVVJSRU5UX1VSTCwgdXJsKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oVXNlck1vZHVsZUNvbnN0YW50cy5DVVJSRU5UX1VSTCwgdGhpcy5yb3V0ZXIudXJsKTtcclxuICAgIH1cclxuICAgIHRoaXMuYXV0aG9yaXplKCk7XHJcbiAgfVxyXG5cclxuICBsb2dvdXQoKTogdm9pZCB7XHJcbiAgICBjbGVhckludGVydmFsKHRoaXMuaW50ZXJ2YWxJZCk7XHJcbiAgICAvLyB0aGlzLmhhc0VtaXR0ZWQgPSBmYWxzZTtcclxuICAgIHNlc3Npb25TdG9yYWdlLmNsZWFyKCk7XHJcbiAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGAke3RoaXMuY29uZmlnLmlzc3Vlcn0vY29ubmVjdC9lbmRzZXNzaW9uP3Bvc3RfbG9nb3V0X3JlZGlyZWN0X3VyaT0ke3RoaXMuY29uZmlnLnBvc3RMb2dvdXRVcmx9YDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2hlY2tTdGF0dXMoKTogdm9pZCB7XHJcbiAgICB0aGlzLmxvZygnY2hlY2tTdGF0dXMgcnVucycpXHJcbiAgICBjb25zdCBhY2Nlc3NUb2tlbiA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oVXNlck1vZHVsZUNvbnN0YW50cy5BQ0NFU1NfVE9LRU4pO1xyXG4gICAgaWYgKGFjY2Vzc1Rva2VuKSB7XHJcbiAgICAgIHRoaXMubG9nKCdoYXMgYWNjZXNzdG9rZW4nKVxyXG4gICAgICBjb25zdCB0aW1lVG9MaXZlID0gdGhpcy5nZXRUb2tlblRpbWVUb0xpdmUoKTtcclxuICAgICAgdGhpcy5sb2coJ3RpbWVUb0xpdmUnLCB0aW1lVG9MaXZlKVxyXG4gICAgICBpZiAodGltZVRvTGl2ZSA9PT0gMCkge1xyXG4gICAgICAgIHNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oVXNlck1vZHVsZUNvbnN0YW50cy5BQ0NFU1NfVE9LRU4pO1xyXG4gICAgICAgIHRoaXMuYXV0aG9yaXplKCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKHRoaXMuZ2V0VG9rZW5UaW1lVG9MaXZlKCkgPD0gNjAgJiYgdGhpcy5oYXNVc2VyQmVlbkFjdGl2ZSgpICYmIHRoaXMuY2FuUmVmcmVzaFRva2VuKCkpIHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKCd0b2tlbiBpcyBhYm91dCB0byB0aW1lb3V0IGJ1dCB3ZSB3aWxsIHJlZnJlc2ggaXQgYmVjYXVzZSB1c2VyIGhhcyBiZWVuIGFjdGl2ZSB0aGUgbGFzdCA1bWludXRlcycpO1xyXG4gICAgICAgICAgdGhpcy5yZWZyZXNoVG9rZW4oKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy9OT1RFOiBNaWdodCBub3QgYmUgbmVlZGVkIGluIHRoaXMgdmFyaWFudFxyXG4gICAgICAgIC8vIGlmICghdGhpcy5oYXNFbWl0dGVkKSB7XHJcbiAgICAgICAgLy8gICBjb25zdCB1c2VyID0gdGhpcy5nZXRVc2VyKGFjY2Vzc1Rva2VuKTtcclxuICAgICAgICAvLyAgIHRoaXMudXNlclN1YmplY3QubmV4dCh1c2VyKTtcclxuICAgICAgICAvLyAgIHRoaXMuaGFzRW1pdHRlZCA9IHRydWU7XHJcbiAgICAgICAgLy8gfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvL1RPRE86IG1ha2UgaXQgbm90IGV4cG9ydGVkIGJ5IHRoZSBtb2R1bGVcclxuICBfaW50ZXJuYWxUcmlnZ2VyVXNlckV2ZW50KHRva2VuOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGNvbnN0IHVzZXIgPSB0aGlzLmdldFVzZXIodG9rZW4pO1xyXG4gICAgdGhpcy51c2VyU3ViamVjdC5uZXh0KHVzZXIpO1xyXG5cclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVmcmVzaFRva2VuKCkge1xyXG4gICAgY29uc3QgYm9keSA9IGBjbGllbnRfaWQ9JHtlbmNvZGVVUklDb21wb25lbnQodGhpcy5jb25maWcuY2xpZW50SWQpfSZgICtcclxuICAgICAgYGdyYW50X3R5cGU9JHtlbmNvZGVVUklDb21wb25lbnQoXCJyZWZyZXNoX3Rva2VuXCIpfSZgICtcclxuICAgICAgYHJlZnJlc2hfdG9rZW49JHtlbmNvZGVVUklDb21wb25lbnQoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShVc2VyTW9kdWxlQ29uc3RhbnRzLlJFRlJFU0hfVE9LRU4pKX1gO1xyXG4gICAgdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLmNvbmZpZy5pc3N1ZXJ9L2Nvbm5lY3QvdG9rZW5gLCBib2R5LCB7IGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJyB9KSB9KS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiByZXNwb25zZSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXRUb2tlbnNJblNlc3Npb24ocmVzcG9uc2UpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMubGFzdFJlZnJlc2hUaW1lID0gRGF0ZS5ub3coKTtcclxuICB9XHJcblxyXG4gIHNldFRva2Vuc0luU2Vzc2lvbihwYXJhbXM6IGFueSk6IHZvaWQge1xyXG4gICAgaWYgKHBhcmFtcy5yZWZyZXNoX3Rva2VuKSB7XHJcbiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oVXNlck1vZHVsZUNvbnN0YW50cy5SRUZSRVNIX1RPS0VOLCBwYXJhbXMucmVmcmVzaF90b2tlbik7XHJcbiAgICB9XHJcbiAgICBpZiAocGFyYW1zLmFjY2Vzc190b2tlbikge1xyXG4gICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKFVzZXJNb2R1bGVDb25zdGFudHMuQUNDRVNTX1RPS0VOLCBwYXJhbXMuYWNjZXNzX3Rva2VuKTtcclxuICAgIH1cclxuICAgIGlmIChwYXJhbXMuZXhwaXJlc19pbikge1xyXG4gICAgICBjb25zdCBleHBpcmVUaW1lID0gYWRkU2Vjb25kcyhuZXcgRGF0ZSgpLCBwYXJhbXMuZXhwaXJlc19pbik7XHJcbiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oVXNlck1vZHVsZUNvbnN0YW50cy5UT0tFTl9FWFBJUkVTLCBmb3JtYXQoZXhwaXJlVGltZSwgJ3l5eXktTU0tZGQgSEg6bW06c3MnKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhc3luYyBhdXRob3JpemUoKSB7XHJcbiAgICBjb25zdCBjb2RlVmVyaWZpZXIgPSBBcnJheS5mcm9tKGNyeXB0by5nZXRSYW5kb21WYWx1ZXMobmV3IFVpbnQ4QXJyYXkoNjQpKSwgYnl0ZSA9PlxyXG4gICAgICAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODknWyhieXRlIGFzIG51bWJlcikgJSA2Ml1cclxuICAgICkuam9pbignJyk7XHJcbiAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKFVzZXJNb2R1bGVDb25zdGFudHMuQ09ERV9WRVJJRklFUiwgY29kZVZlcmlmaWVyKTtcclxuXHJcbiAgICBjb25zdCBlbmNvZGVyID0gbmV3IFRleHRFbmNvZGVyKCk7XHJcbiAgICBjb25zdCBkYXRhID0gZW5jb2Rlci5lbmNvZGUoY29kZVZlcmlmaWVyKTtcclxuICAgIGNvbnN0IGhhc2hCdWZmZXIgPSBhd2FpdCBjcnlwdG8uc3VidGxlLmRpZ2VzdCgnU0hBLTI1NicsIGRhdGEpO1xyXG4gICAgY29uc3QgaGFzaEFycmF5ID0gbmV3IFVpbnQ4QXJyYXkoaGFzaEJ1ZmZlcik7XHJcbiAgICBsZXQgY29kZUNoYWxsZW5nZSA9IGJ0b2EoU3RyaW5nLmZyb21DaGFyQ29kZSguLi5oYXNoQXJyYXkpKTtcclxuICAgIGNvZGVDaGFsbGVuZ2UgPSBjb2RlQ2hhbGxlbmdlLnJlcGxhY2UoLz0vZywgJycpXHJcbiAgICAgIC5yZXBsYWNlKC9cXCsvZywgJy0nKVxyXG4gICAgICAucmVwbGFjZSgvXFwvL2csICdfJyk7XHJcblxyXG4gICAgY29uc3QgcGFyYW1zID0ge1xyXG4gICAgICByZXNwb25zZV90eXBlOiB0aGlzLmNvbmZpZy5yZXNwb25zZVR5cGUsXHJcbiAgICAgIGNsaWVudF9pZDogdGhpcy5jb25maWcuY2xpZW50SWQsXHJcbiAgICAgIHJlZGlyZWN0X3VyaTogdGhpcy5jb25maWcucmVkaXJlY3RVcmwsXHJcbiAgICAgIHNjb3BlOiB0aGlzLmNvbmZpZy5zY29wZSxcclxuICAgICAgY29kZV9jaGFsbGVuZ2U6IGNvZGVDaGFsbGVuZ2UsXHJcbiAgICAgIGNvZGVfY2hhbGxlbmdlX21ldGhvZDogJ1MyNTYnXHJcbiAgICB9O1xyXG4gICAgY29uc3QgdXJsID0gbmV3IFVSTCh0aGlzLmNvbmZpZy5pc3N1ZXIgKyAnL2Nvbm5lY3QvYXV0aG9yaXplJyk7XHJcbiAgICB1cmwuc2VhcmNoID0gdGhpcy5hZGRRdWVyeVBhcmFtcyhwYXJhbXMpLnRvU3RyaW5nKCk7XHJcbiAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IHVybC50b1N0cmluZygpO1xyXG4gIH1cclxuXHJcblxyXG4gIHByaXZhdGUgYWRkUXVlcnlQYXJhbXMob2JqZWN0OiBhbnkpOiBVUkxTZWFyY2hQYXJhbXMge1xyXG4gICAgaWYgKCFvYmplY3QpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICBjb25zdCB1cmxQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKCk7XHJcbiAgICBmb3IgKGNvbnN0IHByb3AgaW4gb2JqZWN0KSB7XHJcbiAgICAgIHVybFBhcmFtcy5hcHBlbmQocHJvcCwgb2JqZWN0W3Byb3BdKTtcclxuICAgIH1cclxuICAgIHJldHVybiB1cmxQYXJhbXM7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFRva2VuVGltZVRvTGl2ZSgpOiBudW1iZXIge1xyXG4gICAgY29uc3QgZXhwaXJlcyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oVXNlck1vZHVsZUNvbnN0YW50cy5UT0tFTl9FWFBJUkVTKTtcclxuICAgIGlmIChleHBpcmVzKSB7XHJcbiAgICAgIGNvbnN0IGV4cGlyZURhdGUgPSBuZXcgRGF0ZShleHBpcmVzKTtcclxuICAgICAgY29uc3Qgbm93ID0gbmV3IERhdGUoKTtcclxuICAgICAgY29uc3QgdGltZVRvTGl2ZSA9IE1hdGguZmxvb3IoKGV4cGlyZURhdGUuZ2V0VGltZSgpIC0gbm93LmdldFRpbWUoKSkgLyAxMDAwKTtcclxuICAgICAgcmV0dXJuIHRpbWVUb0xpdmUgPCAwID8gMCA6IHRpbWVUb0xpdmU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gMDtcclxuICB9XHJcblxyXG4gIC8vQ29vbGRvd24gZm9yIGF2b2lkaW5nIGluZmluaXRlIHJlZnJlc2hcclxuICBwcml2YXRlIGNhblJlZnJlc2hUb2tlbigpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IG5vdyA9IERhdGUubm93KCk7XHJcbiAgICBpZiAobm93IC0gdGhpcy5sYXN0UmVmcmVzaFRpbWUgPiAoMiAqIDYwICogMTAwMCkpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhc1VzZXJCZWVuQWN0aXZlKCk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgbGFzdEFjdGl2ZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oVXNlck1vZHVsZUNvbnN0YW50cy5VU0VSX0xBU1RfQUNUSVZFKTtcclxuICAgIGlmICghbGFzdEFjdGl2ZSkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBjb25zdCB0aW1lU2luY2VMYXN0QWN0aXZlID0gRGF0ZS5ub3coKSAtIHBhcnNlSW50KGxhc3RBY3RpdmUsIDEwKTtcclxuICAgIGNvbnN0IGlkbGVUaW1lTXMgPSB0aGlzLmNvbmZpZy5pZGxlVGltZSAqIDYwICogMTAwMDtcclxuICAgIHJldHVybiB0aW1lU2luY2VMYXN0QWN0aXZlIDw9IGlkbGVUaW1lTXM7XHJcbiAgfVxyXG5cclxuICBsb2cobWVzc2FnZTogc3RyaW5nLCAuLi5vcHRpb25hbFBhcmFtczogYW55W10pOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmNvbmZpZz8ubG9nKSB7XHJcbiAgICAgIGlmIChvcHRpb25hbFBhcmFtcz8ubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKG1lc3NhZ2UsIG9wdGlvbmFsUGFyYW1zKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zb2xlLmxvZyhtZXNzYWdlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0VXNlcih0b2tlbjogc3RyaW5nKTogYW55IHtcclxuICAgIHRyeSB7XHJcbiAgICAgIGNvbnN0IFtoZWFkZXIsIHBheWxvYWQsIHNpZ25hdHVyZV0gPSB0b2tlbi5zcGxpdCgnLicpO1xyXG4gICAgICBjb25zdCBiYXNlNjRVcmwgPSBwYXlsb2FkLnJlcGxhY2UoLy0vZywgJysnKS5yZXBsYWNlKC9fL2csICcvJyk7XHJcbiAgICAgIGNvbnN0IGRlY29kZWRQYXlsb2FkID0gYXRvYihiYXNlNjRVcmwpO1xyXG4gICAgICBjb25zdCB1dGY4RGVjb2RlciA9IG5ldyBUZXh0RGVjb2RlcigndXRmLTgnKTtcclxuICAgICAgY29uc3QgdXRmOERlY29kZWRQYXlsb2FkID0gdXRmOERlY29kZXIuZGVjb2RlKG5ldyBVaW50OEFycmF5KGRlY29kZWRQYXlsb2FkLnNwbGl0KCcnKS5tYXAoY2hhciA9PiBjaGFyLmNoYXJDb2RlQXQoMCkpKSk7XHJcbiAgICAgIGNvbnN0IHBhcnNlZFBheWxvYWQgPSBKU09OLnBhcnNlKHV0ZjhEZWNvZGVkUGF5bG9hZCk7XHJcbiAgICAgIHJldHVybiBwYXJzZWRQYXlsb2FkO1xyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZGVjb2RpbmcgSldUJywgZXJyb3IpO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxufSJdfQ==
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import { Component } from "@angular/core";
|
|
2
|
-
import { Subscription } from "rxjs";
|
|
3
|
-
import { HttpHeaders } from "@angular/common/http";
|
|
4
|
-
import { UserModuleConstants } from "./user-constants";
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "@angular/router";
|
|
7
|
-
import * as i2 from "@angular/common/http";
|
|
8
|
-
import * as i3 from "./adb-user.service";
|
|
9
|
-
export class AuthCallbackComponent {
|
|
10
|
-
constructor(activatedRoute, router, http, adbUserService) {
|
|
11
|
-
this.activatedRoute = activatedRoute;
|
|
12
|
-
this.router = router;
|
|
13
|
-
this.http = http;
|
|
14
|
-
this.adbUserService = adbUserService;
|
|
15
|
-
this.subscriptions = new Subscription();
|
|
16
|
-
}
|
|
17
|
-
ngOnInit() {
|
|
18
|
-
this.subscriptions.add(this.activatedRoute.queryParamMap.subscribe(qParmas => {
|
|
19
|
-
if (qParmas.has('code')) {
|
|
20
|
-
const body = `grant_type=authorization_code` +
|
|
21
|
-
`&code=${encodeURIComponent(qParmas.get('code'))}` +
|
|
22
|
-
`&code_verifier=${encodeURIComponent(sessionStorage.getItem(UserModuleConstants.CODE_VERIFIER))}` +
|
|
23
|
-
`&redirect_uri=${encodeURIComponent(this.adbUserService.config.redirectUrl)}` +
|
|
24
|
-
`&client_id=${encodeURIComponent(this.adbUserService.config.clientId)}`;
|
|
25
|
-
this.http.post(`${this.adbUserService.config.issuer}/connect/token`, body, { headers: new HttpHeaders({ 'Content-Type': 'application/x-www-form-urlencoded', 'Accept': 'application/json; charset=utf-8' }) }).subscribe({
|
|
26
|
-
next: response => {
|
|
27
|
-
this.adbUserService.setTokensInSession(response);
|
|
28
|
-
let requestedUrl = sessionStorage.getItem(UserModuleConstants.CURRENT_URL) ?? null;
|
|
29
|
-
sessionStorage.removeItem(UserModuleConstants.CURRENT_URL);
|
|
30
|
-
this.adbUserService._internalTriggerUserEvent(response.access_token);
|
|
31
|
-
this.adbUserService.log('redirect url in auth-callback', requestedUrl);
|
|
32
|
-
if (requestedUrl) {
|
|
33
|
-
this.router.navigateByUrl(decodeURIComponent(requestedUrl), { replaceUrl: true }).then(() => {
|
|
34
|
-
this.adbUserService.startMainLoop();
|
|
35
|
-
});
|
|
36
|
-
}
|
|
37
|
-
else {
|
|
38
|
-
this.router.navigate(['/'], { replaceUrl: true }).then(() => {
|
|
39
|
-
this.adbUserService.startMainLoop();
|
|
40
|
-
});
|
|
41
|
-
;
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
}));
|
|
47
|
-
}
|
|
48
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: AuthCallbackComponent, deps: [{ token: i1.ActivatedRoute }, { token: i1.Router }, { token: i2.HttpClient }, { token: i3.AdbUserService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
49
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: AuthCallbackComponent, selector: "ng-component", ngImport: i0, template: '<div class="loading-dead-spinner"></div>', isInline: true }); }
|
|
50
|
-
}
|
|
51
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: AuthCallbackComponent, decorators: [{
|
|
52
|
-
type: Component,
|
|
53
|
-
args: [{
|
|
54
|
-
template: '<div class="loading-dead-spinner"></div>'
|
|
55
|
-
}]
|
|
56
|
-
}], ctorParameters: () => [{ type: i1.ActivatedRoute }, { type: i1.Router }, { type: i2.HttpClient }, { type: i3.AdbUserService }] });
|
|
57
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1jYWxsYmFjay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcnRkYXRhLXNoYXJlZC9zcmMvbGliL2NvbXBvbmVudHMvYWRiLXVzZXIvYXV0aC1jYWxsYmFjay5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXBDLE9BQU8sRUFBYyxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7Ozs7QUFNdkQsTUFBTSxPQUFPLHFCQUFxQjtJQUU5QixZQUNZLGNBQThCLEVBQzlCLE1BQWMsRUFDZCxJQUFnQixFQUNoQixjQUE4QjtRQUg5QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBTGxDLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUtHLENBQUM7SUFFL0MsUUFBUTtRQUNKLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUN6RSxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztnQkFDdEIsTUFBTSxJQUFJLEdBQUcsK0JBQStCO29CQUN4QyxTQUFTLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRTtvQkFDbEQsa0JBQWtCLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsYUFBYSxDQUFDLENBQUMsRUFBRTtvQkFDakcsaUJBQWlCLGtCQUFrQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxFQUFFO29CQUM3RSxjQUFjLGtCQUFrQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7Z0JBRTVFLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFNLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsRUFBRSxJQUFJLEVBQzFFLEVBQUUsT0FBTyxFQUFFLElBQUksV0FBVyxDQUFDLEVBQUUsY0FBYyxFQUFFLG1DQUFtQyxFQUFDLFFBQVEsRUFBRSxpQ0FBaUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQztvQkFDekksSUFBSSxFQUFFLFFBQVEsQ0FBQyxFQUFFO3dCQUNiLElBQUksQ0FBQyxjQUFjLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLENBQUM7d0JBQ2pELElBQUksWUFBWSxHQUFHLGNBQWMsQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsV0FBVyxDQUFDLElBQUksSUFBSSxDQUFDO3dCQUNuRixjQUFjLENBQUMsVUFBVSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsQ0FBQyxDQUFDO3dCQUMzRCxJQUFJLENBQUMsY0FBYyxDQUFDLHlCQUF5QixDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQzt3QkFDckUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsK0JBQStCLEVBQUMsWUFBWSxDQUFDLENBQUM7d0JBQ3RFLElBQUksWUFBWSxFQUFFLENBQUM7NEJBQ2YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQUMsWUFBWSxDQUFDLEVBQUUsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO2dDQUN4RixJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxDQUFDOzRCQUN4QyxDQUFDLENBQUMsQ0FBQzt3QkFDUCxDQUFDOzZCQUFJLENBQUM7NEJBQ0YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7Z0NBQ3hELElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLENBQUM7NEJBQ3hDLENBQUMsQ0FBQyxDQUFDOzRCQUFBLENBQUM7d0JBQ1IsQ0FBQztvQkFDTCxDQUFDO2lCQUNKLENBQUMsQ0FBQztZQUNYLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ1IsQ0FBQztpSUF0Q1EscUJBQXFCO3FIQUFyQixxQkFBcUIsb0RBRnBCLDBDQUEwQzs7MkZBRTNDLHFCQUFxQjtrQkFIakMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsMENBQTBDO2lCQUN2RCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcclxuaW1wb3J0IHsgVXNlck1vZHVsZUNvbnN0YW50cyB9IGZyb20gXCIuL3VzZXItY29uc3RhbnRzXCI7XHJcbmltcG9ydCB7IEFkYlVzZXJTZXJ2aWNlIH0gZnJvbSBcIi4vYWRiLXVzZXIuc2VydmljZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICB0ZW1wbGF0ZTogJzxkaXYgY2xhc3M9XCJsb2FkaW5nLWRlYWQtc3Bpbm5lclwiPjwvZGl2PidcclxufSlcclxuZXhwb3J0IGNsYXNzIEF1dGhDYWxsYmFja0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgICBwcml2YXRlIHN1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgICAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuICAgICAgICBwcml2YXRlIGFkYlVzZXJTZXJ2aWNlOiBBZGJVc2VyU2VydmljZSkgeyB9XHJcblxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZCh0aGlzLmFjdGl2YXRlZFJvdXRlLnF1ZXJ5UGFyYW1NYXAuc3Vic2NyaWJlKHFQYXJtYXMgPT4ge1xyXG4gICAgICAgICAgICBpZiAocVBhcm1hcy5oYXMoJ2NvZGUnKSkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgYm9keSA9IGBncmFudF90eXBlPWF1dGhvcml6YXRpb25fY29kZWAgK1xyXG4gICAgICAgICAgICAgICAgICAgIGAmY29kZT0ke2VuY29kZVVSSUNvbXBvbmVudChxUGFybWFzLmdldCgnY29kZScpKX1gICtcclxuICAgICAgICAgICAgICAgICAgICBgJmNvZGVfdmVyaWZpZXI9JHtlbmNvZGVVUklDb21wb25lbnQoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShVc2VyTW9kdWxlQ29uc3RhbnRzLkNPREVfVkVSSUZJRVIpKX1gICtcclxuICAgICAgICAgICAgICAgICAgICBgJnJlZGlyZWN0X3VyaT0ke2VuY29kZVVSSUNvbXBvbmVudCh0aGlzLmFkYlVzZXJTZXJ2aWNlLmNvbmZpZy5yZWRpcmVjdFVybCl9YCArXHJcbiAgICAgICAgICAgICAgICAgICAgYCZjbGllbnRfaWQ9JHtlbmNvZGVVUklDb21wb25lbnQodGhpcy5hZGJVc2VyU2VydmljZS5jb25maWcuY2xpZW50SWQpfWA7XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLmFkYlVzZXJTZXJ2aWNlLmNvbmZpZy5pc3N1ZXJ9L2Nvbm5lY3QvdG9rZW5gLCBib2R5LFxyXG4gICAgICAgICAgICAgICAgICAgIHsgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnLCdBY2NlcHQnOiAnYXBwbGljYXRpb24vanNvbjsgY2hhcnNldD11dGYtOCcgfSkgfSkuc3Vic2NyaWJlKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmV4dDogcmVzcG9uc2UgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hZGJVc2VyU2VydmljZS5zZXRUb2tlbnNJblNlc3Npb24ocmVzcG9uc2UpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHJlcXVlc3RlZFVybCA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oVXNlck1vZHVsZUNvbnN0YW50cy5DVVJSRU5UX1VSTCkgPz8gbnVsbDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oVXNlck1vZHVsZUNvbnN0YW50cy5DVVJSRU5UX1VSTCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFkYlVzZXJTZXJ2aWNlLl9pbnRlcm5hbFRyaWdnZXJVc2VyRXZlbnQocmVzcG9uc2UuYWNjZXNzX3Rva2VuKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWRiVXNlclNlcnZpY2UubG9nKCdyZWRpcmVjdCB1cmwgaW4gYXV0aC1jYWxsYmFjaycscmVxdWVzdGVkVXJsKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXF1ZXN0ZWRVcmwpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKGRlY29kZVVSSUNvbXBvbmVudChyZXF1ZXN0ZWRVcmwpLCB7IHJlcGxhY2VVcmw6IHRydWUgfSkudGhlbigoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWRiVXNlclNlcnZpY2Uuc3RhcnRNYWluTG9vcCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvJ10sIHsgcmVwbGFjZVVybDogdHJ1ZSB9KS50aGVuKCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hZGJVc2VyU2VydmljZS5zdGFydE1haW5Mb29wKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KSk7XHJcbiAgICB9XHJcbn0iXX0=
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export class UserModuleConstants {
|
|
2
|
-
static { this.CURRENT_URL = "current_url"; }
|
|
3
|
-
static { this.CODE_VERIFIER = 'nonce'; }
|
|
4
|
-
static { this.REFRESH_TOKEN = 'refresh-token'; }
|
|
5
|
-
static { this.TOKEN_EXPIRES = 'token_expires'; }
|
|
6
|
-
static { this.ACCESS_TOKEN = 'access-token'; }
|
|
7
|
-
static { this.USER_LAST_ACTIVE = 'lastActive'; }
|
|
8
|
-
static { this.ONGOING_CODEFLOW = 'ongoing-codeflow'; }
|
|
9
|
-
}
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1jb25zdGFudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcnRkYXRhLXNoYXJlZC9zcmMvbGliL2NvbXBvbmVudHMvYWRiLXVzZXIvdXNlci1jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLG1CQUFtQjthQUNyQixnQkFBVyxHQUFHLGFBQWEsQ0FBQzthQUM1QixrQkFBYSxHQUFHLE9BQU8sQ0FBQzthQUN4QixrQkFBYSxHQUFHLGVBQWUsQ0FBQzthQUNoQyxrQkFBYSxHQUFHLGVBQWUsQ0FBQzthQUNoQyxpQkFBWSxHQUFHLGNBQWMsQ0FBQzthQUM5QixxQkFBZ0IsR0FBRyxZQUFZLENBQUE7YUFDL0IscUJBQWdCLEdBQUcsa0JBQWtCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgVXNlck1vZHVsZUNvbnN0YW50cyB7XHJcbiAgICBzdGF0aWMgQ1VSUkVOVF9VUkwgPSBcImN1cnJlbnRfdXJsXCI7XHJcbiAgICBzdGF0aWMgQ09ERV9WRVJJRklFUiA9ICdub25jZSc7XHJcbiAgICBzdGF0aWMgUkVGUkVTSF9UT0tFTiA9ICdyZWZyZXNoLXRva2VuJztcclxuICAgIHN0YXRpYyBUT0tFTl9FWFBJUkVTID0gJ3Rva2VuX2V4cGlyZXMnO1xyXG4gICAgc3RhdGljIEFDQ0VTU19UT0tFTiA9ICdhY2Nlc3MtdG9rZW4nO1xyXG4gICAgc3RhdGljIFVTRVJfTEFTVF9BQ1RJVkUgPSAnbGFzdEFjdGl2ZSdcclxuICAgIHN0YXRpYyBPTkdPSU5HX0NPREVGTE9XID0gJ29uZ29pbmctY29kZWZsb3cnO1xyXG59XHJcbiJdfQ==
|