zek 17.3.39 → 17.3.42
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/esm2022/lib/modules/numeric/numeric.directive.mjs +5 -5
- package/esm2022/lib/services/auth-guard.service.mjs +5 -35
- package/esm2022/lib/services/auth.service.mjs +4 -13
- package/esm2022/lib/services/crud.service.mjs +4 -2
- package/fesm2022/zek.mjs +13 -48
- package/fesm2022/zek.mjs.map +1 -1
- package/lib/modules/numeric/numeric.directive.d.ts +3 -3
- package/lib/services/auth-guard.service.d.ts +1 -12
- package/lib/services/auth.service.d.ts +1 -1
- package/lib/services/crud.service.d.ts +2 -2
- package/package.json +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Directive, HostListener, Input } from "@angular/core";
|
|
2
2
|
import { Convert, MathHelper } from "../../utils";
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
|
-
export class
|
|
4
|
+
export class ZekNumericDirective {
|
|
5
5
|
get digits() {
|
|
6
6
|
return this._digits;
|
|
7
7
|
}
|
|
@@ -69,10 +69,10 @@ export class NumericDirective {
|
|
|
69
69
|
onPaste(event) {
|
|
70
70
|
this.run(this.el.nativeElement.value);
|
|
71
71
|
}
|
|
72
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type:
|
|
73
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.4", type:
|
|
72
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ZekNumericDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
73
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.4", type: ZekNumericDirective, isStandalone: true, selector: "[numeric]", inputs: { digits: "digits", negative: "negative" }, host: { listeners: { "keydown": "onKeyDown($event)", "paste": "onPaste($event)" } }, ngImport: i0 }); }
|
|
74
74
|
}
|
|
75
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type:
|
|
75
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ZekNumericDirective, decorators: [{
|
|
76
76
|
type: Directive,
|
|
77
77
|
args: [{
|
|
78
78
|
standalone: true,
|
|
@@ -89,4 +89,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
|
|
|
89
89
|
type: HostListener,
|
|
90
90
|
args: ["paste", ["$event"]]
|
|
91
91
|
}] } });
|
|
92
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtZXJpYy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy96ZWsvc3JjL2xpYi9tb2R1bGVzL251bWVyaWMvbnVtZXJpYy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNFLE9BQU8sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDOztBQU1sRCxNQUFNLE9BQU8sbUJBQW1CO0lBRTVCLElBQUksTUFBTTtRQUNOLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDO0lBQ0QsSUFDSSxNQUFNLENBQUMsQ0FBYztRQUNyQixNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM5RCxJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztJQUN2QixDQUFDO0lBR0QsSUFBSSxRQUFRO1FBQ1IsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQzFCLENBQUM7SUFDRCxJQUFhLFFBQVEsQ0FBQyxDQUFlO1FBQ2pDLElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFTyxrQkFBa0IsQ0FBQyxLQUFhO1FBQ3BDLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNwQixPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUN0RCxDQUFDO2FBQU0sQ0FBQztZQUNKLE1BQU0sWUFBWSxHQUNkLHlCQUF5QjtnQkFDekIsSUFBSSxDQUFDLE9BQU87Z0JBQ1osdUJBQXVCO2dCQUN2QixJQUFJLENBQUMsT0FBTztnQkFDWixZQUFZLENBQUM7WUFDakIsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7UUFDekQsQ0FBQztJQUNMLENBQUM7SUFFTyxLQUFLLENBQUMsS0FBYTtRQUN2QixJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDcEIsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDcEQsQ0FBQzthQUFNLENBQUM7WUFDSixNQUFNLFlBQVksR0FDZCx1QkFBdUI7Z0JBQ3ZCLElBQUksQ0FBQyxPQUFPO2dCQUNaLHVCQUF1QjtnQkFDdkIsSUFBSSxDQUFDLE9BQU87Z0JBQ1osWUFBWSxDQUFDO1lBQ2pCLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO1FBQ3pELENBQUM7SUFDTCxDQUFDO0lBRU8sR0FBRyxDQUFDLFFBQWE7UUFDckIsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNaLE1BQU0sWUFBWSxHQUFXLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQztZQUN6RCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1lBRXJDLElBQUksYUFBYSxFQUFFLENBQUM7Z0JBQ2hCLElBQ0ksQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDO29CQUNqQyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsRUFDeEMsQ0FBQztvQkFDQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDO2dCQUMzQyxDQUFDO1lBQ0wsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLElBQUksWUFBWSxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztvQkFDbkQsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQztnQkFDM0MsQ0FBQztZQUNMLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFHRCxZQUFvQixFQUFjO1FBQWQsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQW5FMUIsWUFBTyxHQUFHLENBQUMsQ0FBQztRQVVaLGNBQVMsR0FBRyxLQUFLLENBQUM7SUF5RFksQ0FBQztJQUd2QyxTQUFTLENBQUMsS0FBb0I7UUFDMUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBR0QsT0FBTyxDQUFDLEtBQXFCO1FBQ3pCLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUMsQ0FBQzs4R0E5RVEsbUJBQW1CO2tHQUFuQixtQkFBbUI7OzJGQUFuQixtQkFBbUI7a0JBSi9CLFNBQVM7bUJBQUM7b0JBQ1AsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxXQUFXO2lCQUN4QjsrRUFPTyxNQUFNO3NCQURULEtBQUs7Z0JBVU8sUUFBUTtzQkFBcEIsS0FBSztnQkF3RE4sU0FBUztzQkFEUixZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFNbkMsT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbnB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCwgTnVtYmVySW5wdXQgfSBmcm9tIFwiLi4vLi4vY29tcG9uZW50c1wiO1xyXG5pbXBvcnQgeyBDb252ZXJ0LCBNYXRoSGVscGVyIH0gZnJvbSBcIi4uLy4uL3V0aWxzXCI7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgICBzZWxlY3RvcjogXCJbbnVtZXJpY11cIixcclxufSlcclxuZXhwb3J0IGNsYXNzIFpla051bWVyaWNEaXJlY3RpdmUge1xyXG4gICAgcHJpdmF0ZSBfZGlnaXRzID0gMDtcclxuICAgIGdldCBkaWdpdHMoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RpZ2l0cztcclxuICAgIH1cclxuICAgIEBJbnB1dCgpXHJcbiAgICBzZXQgZGlnaXRzKHY6IE51bWJlcklucHV0KSB7XHJcbiAgICAgICAgY29uc3QgdG1wID0gTWF0aEhlbHBlci5jbGFtcChDb252ZXJ0LnRvTnVtYmVyKHYpIHx8IDAsIDAsIDI5KTtcclxuICAgICAgICB0aGlzLl9kaWdpdHMgPSB0bXA7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfbmVnYXRpdmUgPSBmYWxzZTtcclxuICAgIGdldCBuZWdhdGl2ZSgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fbmVnYXRpdmU7XHJcbiAgICB9XHJcbiAgICBASW5wdXQoKSBzZXQgbmVnYXRpdmUodjogQm9vbGVhbklucHV0KSB7XHJcbiAgICAgICAgdGhpcy5fbmVnYXRpdmUgPSBDb252ZXJ0LnRvQm9vbGVhblByb3BlcnR5KHYpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgY2hlY2tBbGxvd05lZ2F0aXZlKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgICAgICBpZiAodGhpcy5fZGlnaXRzIDw9IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuIFN0cmluZyh2YWx1ZSkubWF0Y2gobmV3IFJlZ0V4cCgvXi0/XFxkKyQvKSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY29uc3QgcmVnRXhwU3RyaW5nID1cclxuICAgICAgICAgICAgICAgIFwiXi0/XFxcXHMqKChcXFxcZCsoXFxcXC5cXFxcZHswLFwiICtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2RpZ2l0cyArXHJcbiAgICAgICAgICAgICAgICBcIn0pPyl8KChcXFxcZCooXFxcXC5cXFxcZHsxLFwiICtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2RpZ2l0cyArXHJcbiAgICAgICAgICAgICAgICBcIn0pKSkpXFxcXHMqJFwiO1xyXG4gICAgICAgICAgICByZXR1cm4gU3RyaW5nKHZhbHVlKS5tYXRjaChuZXcgUmVnRXhwKHJlZ0V4cFN0cmluZykpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGNoZWNrKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgICAgICBpZiAodGhpcy5fZGlnaXRzIDw9IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuIFN0cmluZyh2YWx1ZSkubWF0Y2gobmV3IFJlZ0V4cCgvXlxcZCskLykpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHJlZ0V4cFN0cmluZyA9XHJcbiAgICAgICAgICAgICAgICBcIl5cXFxccyooKFxcXFxkKyhcXFxcLlxcXFxkezAsXCIgK1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fZGlnaXRzICtcclxuICAgICAgICAgICAgICAgIFwifSk/KXwoKFxcXFxkKihcXFxcLlxcXFxkezEsXCIgK1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fZGlnaXRzICtcclxuICAgICAgICAgICAgICAgIFwifSkpKSlcXFxccyokXCI7XHJcbiAgICAgICAgICAgIHJldHVybiBTdHJpbmcodmFsdWUpLm1hdGNoKG5ldyBSZWdFeHAocmVnRXhwU3RyaW5nKSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgcnVuKG9sZFZhbHVlOiBhbnkpIHtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgY3VycmVudFZhbHVlOiBzdHJpbmcgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQudmFsdWU7XHJcbiAgICAgICAgICAgIGNvbnN0IGFsbG93TmVnYXRpdmUgPSB0aGlzLl9uZWdhdGl2ZTtcclxuXHJcbiAgICAgICAgICAgIGlmIChhbGxvd05lZ2F0aXZlKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICAgICAgIVtcIlwiLCBcIi1cIl0uaW5jbHVkZXMoY3VycmVudFZhbHVlKSAmJlxyXG4gICAgICAgICAgICAgICAgICAgICF0aGlzLmNoZWNrQWxsb3dOZWdhdGl2ZShjdXJyZW50VmFsdWUpXHJcbiAgICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSBvbGRWYWx1ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGlmIChjdXJyZW50VmFsdWUgIT09ICcnICYmICF0aGlzLmNoZWNrKGN1cnJlbnRWYWx1ZSkpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSBvbGRWYWx1ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsOiBFbGVtZW50UmVmKSB7IH1cclxuXHJcbiAgICBASG9zdExpc3RlbmVyKFwia2V5ZG93blwiLCBbXCIkZXZlbnRcIl0pXHJcbiAgICBvbktleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcclxuICAgICAgICB0aGlzLnJ1bih0aGlzLmVsLm5hdGl2ZUVsZW1lbnQudmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIEBIb3N0TGlzdGVuZXIoXCJwYXN0ZVwiLCBbXCIkZXZlbnRcIl0pXHJcbiAgICBvblBhc3RlKGV2ZW50OiBDbGlwYm9hcmRFdmVudCkge1xyXG4gICAgICAgIHRoaXMucnVuKHRoaXMuZWwubmF0aXZlRWxlbWVudC52YWx1ZSk7XHJcbiAgICB9XHJcbn0iXX0=
|
|
@@ -1,43 +1,13 @@
|
|
|
1
|
-
import { inject
|
|
1
|
+
import { inject } from '@angular/core';
|
|
2
2
|
import { Router } from '@angular/router';
|
|
3
3
|
import { AuthService } from './auth.service';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "./auth.service";
|
|
6
|
-
import * as i2 from "@angular/router";
|
|
7
4
|
export const zekAuthGuard = (route, state) => {
|
|
8
|
-
const
|
|
5
|
+
const auth = inject(AuthService);
|
|
9
6
|
const router = inject(Router);
|
|
10
|
-
if (!
|
|
7
|
+
if (!auth.isAuthenticated()) {
|
|
11
8
|
router.navigate(['/login'], { queryParams: { returnUrl: state.url } });
|
|
12
9
|
return false;
|
|
13
10
|
}
|
|
14
|
-
return
|
|
11
|
+
return auth.hasDataPermission(route.data);
|
|
15
12
|
};
|
|
16
|
-
|
|
17
|
-
* @deprecated Please use canActivate
|
|
18
|
-
* @see {@link canActivate}
|
|
19
|
-
*/
|
|
20
|
-
export class AuthGuardService {
|
|
21
|
-
constructor(authService, router) {
|
|
22
|
-
this.authService = authService;
|
|
23
|
-
this.router = router;
|
|
24
|
-
}
|
|
25
|
-
canActivate(route, state) {
|
|
26
|
-
if (!this.authService.isAuthenticated()) {
|
|
27
|
-
this.router.navigate(['/login'], { queryParams: { returnUrl: state.url } });
|
|
28
|
-
return false;
|
|
29
|
-
}
|
|
30
|
-
return this.authService.hasDataPermission(route.data);
|
|
31
|
-
// const allowedRoles = route.data.roles;
|
|
32
|
-
// let isInRole = this.authService.isInRole(allowedRoles);
|
|
33
|
-
// const permission = route.data.permission;
|
|
34
|
-
// let hasPermission = this.authService.hasPermission(permission);
|
|
35
|
-
// return isInRole && hasPermission;
|
|
36
|
-
}
|
|
37
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: AuthGuardService, deps: [{ token: i1.AuthService }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
38
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: AuthGuardService }); }
|
|
39
|
-
}
|
|
40
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: AuthGuardService, decorators: [{
|
|
41
|
-
type: Injectable
|
|
42
|
-
}], ctorParameters: () => [{ type: i1.AuthService }, { type: i2.Router }] });
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1ndWFyZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvemVrL3NyYy9saWIvc2VydmljZXMvYXV0aC1ndWFyZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBNEQsTUFBTSxFQUFpQixNQUFNLGlCQUFpQixDQUFDO0FBR2xILE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQUc3QyxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQWtCLENBQUMsS0FBNkIsRUFBRSxLQUEwQixFQUFFLEVBQUU7SUFDckcsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3hDLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUU5QixJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUM7UUFDakMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsV0FBVyxFQUFFLEVBQUUsU0FBUyxFQUFFLEtBQUssQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDdkUsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUVELE9BQU8sV0FBVyxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNyRCxDQUFDLENBQUE7QUFJRDs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sZ0JBQWdCO0lBQ3pCLFlBQStCLFdBQXdCLEVBQXFCLE1BQWM7UUFBM0QsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFBcUIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtJQUFJLENBQUM7SUFFL0YsV0FBVyxDQUFDLEtBQTZCLEVBQUUsS0FBMEI7UUFDakUsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxFQUFFLEVBQUUsQ0FBQztZQUN0QyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsV0FBVyxFQUFFLEVBQUUsU0FBUyxFQUFFLEtBQUssQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDNUUsT0FBTyxLQUFLLENBQUM7UUFDakIsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFdEQseUNBQXlDO1FBQ3pDLDBEQUEwRDtRQUUxRCw0Q0FBNEM7UUFDNUMsa0VBQWtFO1FBRWxFLG9DQUFvQztJQUN4QyxDQUFDOzhHQWxCUSxnQkFBZ0I7a0hBQWhCLGdCQUFnQjs7MkZBQWhCLGdCQUFnQjtrQkFMNUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDYW5BY3RpdmF0ZSwgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgUm91dGVyU3RhdGVTbmFwc2hvdCwgUm91dGVyLCBDYW5BY3RpdmF0ZUZuIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuL2F1dGguc2VydmljZSc7XHJcblxyXG5cclxuZXhwb3J0IGNvbnN0IHpla0F1dGhHdWFyZDogQ2FuQWN0aXZhdGVGbiA9IChyb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgc3RhdGU6IFJvdXRlclN0YXRlU25hcHNob3QpID0+IHtcclxuICAgIGNvbnN0IGF1dGhTZXJ2aWNlID0gaW5qZWN0KEF1dGhTZXJ2aWNlKTtcclxuICAgIGNvbnN0IHJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xyXG5cclxuICAgIGlmICghYXV0aFNlcnZpY2UuaXNBdXRoZW50aWNhdGVkKCkpIHtcclxuICAgICAgICByb3V0ZXIubmF2aWdhdGUoWycvbG9naW4nXSwgeyBxdWVyeVBhcmFtczogeyByZXR1cm5Vcmw6IHN0YXRlLnVybCB9IH0pO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gYXV0aFNlcnZpY2UuaGFzRGF0YVBlcm1pc3Npb24ocm91dGUuZGF0YSk7XHJcbn1cclxuXHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbi8qKlxyXG4gKiBAZGVwcmVjYXRlZCBQbGVhc2UgdXNlIGNhbkFjdGl2YXRlXHJcbiAqIEBzZWUge0BsaW5rIGNhbkFjdGl2YXRlfVxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIEF1dGhHdWFyZFNlcnZpY2UgaW1wbGVtZW50cyBDYW5BY3RpdmF0ZSB7XHJcbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgcmVhZG9ubHkgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLCBwcm90ZWN0ZWQgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIpIHsgfVxyXG5cclxuICAgIGNhbkFjdGl2YXRlKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCk6IGJvb2xlYW4gfCBPYnNlcnZhYmxlPGJvb2xlYW4+IHwgUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmF1dGhTZXJ2aWNlLmlzQXV0aGVudGljYXRlZCgpKSB7XHJcbiAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL2xvZ2luJ10sIHsgcXVlcnlQYXJhbXM6IHsgcmV0dXJuVXJsOiBzdGF0ZS51cmwgfSB9KTtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYXV0aFNlcnZpY2UuaGFzRGF0YVBlcm1pc3Npb24ocm91dGUuZGF0YSk7XHJcblxyXG4gICAgICAgIC8vIGNvbnN0IGFsbG93ZWRSb2xlcyA9IHJvdXRlLmRhdGEucm9sZXM7XHJcbiAgICAgICAgLy8gbGV0IGlzSW5Sb2xlID0gdGhpcy5hdXRoU2VydmljZS5pc0luUm9sZShhbGxvd2VkUm9sZXMpO1xyXG5cclxuICAgICAgICAvLyBjb25zdCBwZXJtaXNzaW9uID0gcm91dGUuZGF0YS5wZXJtaXNzaW9uO1xyXG4gICAgICAgIC8vIGxldCBoYXNQZXJtaXNzaW9uID0gdGhpcy5hdXRoU2VydmljZS5oYXNQZXJtaXNzaW9uKHBlcm1pc3Npb24pO1xyXG5cclxuICAgICAgICAvLyByZXR1cm4gaXNJblJvbGUgJiYgaGFzUGVybWlzc2lvbjtcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1ndWFyZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvemVrL3NyYy9saWIvc2VydmljZXMvYXV0aC1ndWFyZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUErQyxNQUFNLEVBQWlCLE1BQU0saUJBQWlCLENBQUM7QUFFckcsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzdDLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBa0IsQ0FBQyxLQUE2QixFQUFFLEtBQTBCLEVBQUUsRUFBRTtJQUNyRyxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDakMsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRTlCLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLEVBQUUsQ0FBQztRQUMxQixNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxXQUFXLEVBQUUsRUFBRSxTQUFTLEVBQUUsS0FBSyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN2RSxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBRUQsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzlDLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBSb3V0ZXJTdGF0ZVNuYXBzaG90LCBSb3V0ZXIsIENhbkFjdGl2YXRlRm4gfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5cclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuL2F1dGguc2VydmljZSc7XHJcblxyXG5cclxuZXhwb3J0IGNvbnN0IHpla0F1dGhHdWFyZDogQ2FuQWN0aXZhdGVGbiA9IChyb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgc3RhdGU6IFJvdXRlclN0YXRlU25hcHNob3QpID0+IHtcclxuICAgIGNvbnN0IGF1dGggPSBpbmplY3QoQXV0aFNlcnZpY2UpO1xyXG4gICAgY29uc3Qgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XHJcblxyXG4gICAgaWYgKCFhdXRoLmlzQXV0aGVudGljYXRlZCgpKSB7XHJcbiAgICAgICAgcm91dGVyLm5hdmlnYXRlKFsnL2xvZ2luJ10sIHsgcXVlcnlQYXJhbXM6IHsgcmV0dXJuVXJsOiBzdGF0ZS51cmwgfSB9KTtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGF1dGguaGFzRGF0YVBlcm1pc3Npb24ocm91dGUuZGF0YSk7XHJcbn0iXX0=
|
|
@@ -32,14 +32,14 @@ export class AuthService {
|
|
|
32
32
|
if (user && user.refreshTokenTime) {
|
|
33
33
|
let timeout = user.refreshTokenTime.getTime() - Date.now(); // - (60 * 1000);
|
|
34
34
|
if (timeout < 0) {
|
|
35
|
-
this.
|
|
35
|
+
this.emitRefreshToken();
|
|
36
36
|
}
|
|
37
37
|
const minRefreshTime = 60000; //1 min;
|
|
38
38
|
if (timeout < minRefreshTime) {
|
|
39
39
|
timeout = minRefreshTime;
|
|
40
40
|
}
|
|
41
41
|
this._timerId = setInterval(() => {
|
|
42
|
-
this.
|
|
42
|
+
this.emitRefreshToken();
|
|
43
43
|
}, timeout);
|
|
44
44
|
}
|
|
45
45
|
}
|
|
@@ -48,7 +48,7 @@ export class AuthService {
|
|
|
48
48
|
clearInterval(this._timerId);
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
|
-
|
|
51
|
+
emitRefreshToken() {
|
|
52
52
|
if (this._onRefreshTokenSubject) {
|
|
53
53
|
this._onRefreshTokenSubject.next();
|
|
54
54
|
}
|
|
@@ -94,15 +94,6 @@ export class AuthService {
|
|
|
94
94
|
return this._onRefreshTokenObservable;
|
|
95
95
|
}
|
|
96
96
|
login(user) {
|
|
97
|
-
// if (user) {
|
|
98
|
-
// // I think we don't need this
|
|
99
|
-
// user.id = ObjectHelper.isDefined(user.id) ? Convert.parseNumber(user.id) : user.id;
|
|
100
|
-
// user.expired = ObjectHelper.isDefined(user.expired) ? DateHelper.parseDate(user.expired) : user.expired;
|
|
101
|
-
// user.refreshTokenTime = ObjectHelper.isDefined(user.refreshTokenTime) ? DateHelper.parseDate(user.refreshTokenTime) : user.refreshTokenTime;
|
|
102
|
-
// if (Array.isArray(user.roles)) {
|
|
103
|
-
// user.roles = user.roles.map(function (e) { return e.toUpperCase(); });
|
|
104
|
-
// }
|
|
105
|
-
// }
|
|
106
97
|
StorageHelper.set('login', user);
|
|
107
98
|
this._user = null;
|
|
108
99
|
this._isInitialized = false; //user get method will init user
|
|
@@ -200,4 +191,4 @@ export class AuthService {
|
|
|
200
191
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: AuthService, decorators: [{
|
|
201
192
|
type: Injectable
|
|
202
193
|
}] });
|
|
203
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvemVrL3NyYy9saWIvc2VydmljZXMvYXV0aC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEdBQUcsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUFFLGVBQWUsRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFNUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUM1RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7O0FBR3hELE1BQU0sT0FBTyxXQUFXO0lBRHhCO1FBRVksbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFDdkIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixVQUFLLEdBQXFCLElBQUksQ0FBQztLQStPMUM7SUE3T0csSUFBSSxJQUFJO1FBQ0osSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN2QixNQUFNLElBQUksR0FBRyxhQUFhLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3hDLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ1AsSUFBSSxDQUFDLEVBQUUsR0FBRyxZQUFZLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ25GLElBQUksQ0FBQyxPQUFPLEdBQUcsWUFBWSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FB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QUUsS0FBSyxDQUFDLENBQUM7b0JBQzFELElBQUksYUFBYTt3QkFDYixPQUFPLElBQUksQ0FBQztnQkFDcEIsQ0FBQztZQUNMLENBQUM7UUFDTCxDQUFDO2FBQU0sQ0FBQztZQUNKLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7Z0JBQzFDLE1BQU0sQ0FBQyxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDekIsTUFBTSxLQUFLLEdBQUcsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNqQyxJQUFJLEtBQUs7b0JBQ0wsT0FBTyxJQUFJLENBQUM7WUFDcEIsQ0FBQztRQUNMLENBQUM7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBR0QsaUJBQWlCLENBQUMsSUFBUztRQUN2Qix1REFBdUQ7UUFDdkQsbUNBQW1DO1FBQ25DLDhDQUE4QztRQUU5QyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBRW5DLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFckQsb0NBQW9DO1FBQ3BDLE9BQU8sYUFBYSxDQUFDO0lBQ3pCLENBQUM7OEdBalBRLFdBQVc7a0hBQVgsV0FBVzs7MkZBQVgsV0FBVztrQkFEdkIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBLZXlQYWlyLCBMb2dpblRva2VuLCBMb2dpblVzZXIgfSBmcm9tICcuLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBDb252ZXJ0LCBEYXRlSGVscGVyLCBPYmplY3RIZWxwZXIsIFN0b3JhZ2VIZWxwZXIgfSBmcm9tICcuLi91dGlscyc7XHJcbmltcG9ydCB7IEJpdHdpc2VIZWxwZXIgfSBmcm9tICcuLi91dGlscy9iaXR3aXNlLWhlbHBlcic7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBBdXRoU2VydmljZSB7XHJcbiAgICBwcml2YXRlIF9pc0luaXRpYWxpemVkID0gZmFsc2U7XHJcbiAgICBwcml2YXRlIF9vbGRWYWx1ZSA9IGZhbHNlO1xyXG4gICAgcHJpdmF0ZSBfdXNlcjogTG9naW5Vc2VyIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gICAgZ2V0IHVzZXIoKTogTG9naW5Vc2VyIHwgbnVsbCB7XHJcbiAgICAgICAgaWYgKCF0aGlzLl9pc0luaXRpYWxpemVkKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHVzZXIgPSBTdG9yYWdlSGVscGVyLmdldCgnbG9naW4nKTtcclxuICAgICAgICAgICAgaWYgKHVzZXIpIHtcclxuICAgICAgICAgICAgICAgIHVzZXIuaWQgPSBPYmplY3RIZWxwZXIuaXNEZWZpbmVkKHVzZXIuaWQpID8gQ29udmVydC5wYXJzZU51bWJlcih1c2VyLmlkKSA6IHVzZXIuaWQ7XHJcbiAgICAgICAgICAgICAgICB1c2VyLmV4cGlyZWQgPSBPYmplY3RIZWxwZXIuaXNEZWZpbmVkKHVzZXIuZXhwaXJlZCkgPyBEYXRlSGVscGVyLnBhcnNlRGF0ZSh1c2VyLmV4cGlyZWQpIDogdXNlci5leHBpcmVkO1xyXG4gICAgICAgICAgICAgICAgdXNlci5yZWZyZXNoVG9rZW5UaW1lID0gT2JqZWN0SGVscGVyLmlzRGVmaW5lZCh1c2VyLnJlZnJlc2hUb2tlblRpbWUpID8gRGF0ZUhlbHBlci5wYXJzZURhdGUodXNlci5yZWZyZXNoVG9rZW5UaW1lKSA6IHVzZXIucmVmcmVzaFRva2VuVGltZTtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh1c2VyLnJvbGVzKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHVzZXIucm9sZXMgPSB1c2VyLnJvbGVzLm1hcChmdW5jdGlvbiAoZTogYW55KSB7IHJldHVybiBlID8gZS50b1VwcGVyQ2FzZSgpIDogZTsgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5fdXNlciA9IHVzZXI7XHJcbiAgICAgICAgICAgIHRoaXMuX2lzSW5pdGlhbGl6ZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLl9zdGFyUmVmcmVzaFRva2VuVGltZXIoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3VzZXI7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHByaXZhdGUgX3RpbWVySWQ6IGFueTtcclxuICAgIHByaXZhdGUgX3N0YXJSZWZyZXNoVG9rZW5UaW1lcigpIHtcclxuICAgICAgICB0aGlzLl9zdG9wUmVmcmVzaFRva2VuVGltZXIoKTtcclxuXHJcbiAgICAgICAgY29uc3QgdXNlciA9IHRoaXMuX3VzZXI7XHJcbiAgICAgICAgaWYgKHVzZXIgJiYgdXNlci5yZWZyZXNoVG9rZW5UaW1lKSB7XHJcbiAgICAgICAgICAgIGxldCB0aW1lb3V0ID0gdXNlci5yZWZyZXNoVG9rZW5UaW1lLmdldFRpbWUoKSAtIERhdGUubm93KCk7Ly8gLSAoNjAgKiAxMDAwKTtcclxuXHJcbiAgICAgICAgICAgIGlmICh0aW1lb3V0IDwgMCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdFJlZnJlc2hUb2tlbigpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBjb25zdCBtaW5SZWZyZXNoVGltZSA9IDYwXzAwMC8vMSBtaW47XHJcbiAgICAgICAgICAgIGlmICh0aW1lb3V0IDwgbWluUmVmcmVzaFRpbWUpIHtcclxuICAgICAgICAgICAgICAgIHRpbWVvdXQgPSBtaW5SZWZyZXNoVGltZTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy5fdGltZXJJZCA9IHNldEludGVydmFsKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRSZWZyZXNoVG9rZW4oKTtcclxuICAgICAgICAgICAgfSwgdGltZW91dCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcHJpdmF0ZSBfc3RvcFJlZnJlc2hUb2tlblRpbWVyKCkge1xyXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5fdGltZXJJZCA9PT0gJ251bWJlcicpIHtcclxuICAgICAgICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLl90aW1lcklkKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBwcml2YXRlIF9lbWl0UmVmcmVzaFRva2VuKCkge1xyXG4gICAgICAgIGlmICh0aGlzLl9vblJlZnJlc2hUb2tlblN1YmplY3QpIHtcclxuICAgICAgICAgICAgdGhpcy5fb25SZWZyZXNoVG9rZW5TdWJqZWN0Lm5leHQoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIGlzQXV0aGVudGljYXRlZCgpOiBib29sZWFuIHtcclxuICAgICAgICBjb25zdCBleHBpcmVkID0gdGhpcy5nZXRFeHBpcmVkKCkgfHwgbmV3IERhdGUoMCk7Ly8gaWYgZ2V0RXhwaXJlZCBpcyBudWxsIHJldHVybiBtaW4gSlMgZGF0ZVxyXG5cclxuICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IG5ldyBEYXRlKCkgPCBleHBpcmVkO1xyXG4gICAgICAgIGlmICh0aGlzLl9vbGRWYWx1ZSAhPT0gbmV3VmFsdWUpIHtcclxuICAgICAgICAgICAgdGhpcy5fb2xkVmFsdWUgPSBuZXdWYWx1ZTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuZW1pdE9uU2lnbmVkSW4oKTtcclxuICAgICAgICAgICAgLy8gaWYgKHRoaXMuX29uU2lnbmVkSW5TdWJqZWN0KSB7XHJcbiAgICAgICAgICAgIC8vICAgICB0aGlzLl9vblNpZ25lZEluU3ViamVjdC5uZXh0KG5ld1ZhbHVlKTtcclxuICAgICAgICAgICAgLy8gfVxyXG5cclxuICAgICAgICAgICAgLy9pZiB1c2VyIGlzIHNpZ25lZCBpbiBhbmQgZXhwaXJlZCB3ZSBuZWVkIHRvIGxvZ291dCAocmVtb3ZlIGZyb20gbG9jYWxTdG9yYWdlKVxyXG4gICAgICAgICAgICBpZiAoIW5ld1ZhbHVlKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxvZ291dCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBuZXdWYWx1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG5ld1ZhbHVlO1xyXG4gICAgfVxyXG4gICAgZW1pdE9uU2lnbmVkSW4oKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuX29uU2lnbmVkSW5TdWJqZWN0KSB7XHJcbiAgICAgICAgICAgIHRoaXMuX29uU2lnbmVkSW5TdWJqZWN0Lm5leHQodGhpcy5fb2xkVmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9vblNpZ25lZEluU3ViamVjdD86IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPjsvL0JlaGF2aW9yU3ViamVjdCBpcyBmb3IgaW5pdGlhbCBmaXJ0IHZhbHVlID0gZmFsc2VcclxuICAgIHByaXZhdGUgX29uU2lnbmVkSW5PYnNlcnZhYmxlPzogT2JzZXJ2YWJsZTxib29sZWFuPjtcclxuICAgIGdldCBvblNpZ25lZEluKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gICAgICAgIGlmICghdGhpcy5fb25TaWduZWRJblN1YmplY3QpIHtcclxuICAgICAgICAgICAgdGhpcy5fb25TaWduZWRJblN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcclxuICAgICAgICAgICAgdGhpcy5fb25TaWduZWRJbk9ic2VydmFibGUgPSB0aGlzLl9vblNpZ25lZEluU3ViamVjdC5hc09ic2VydmFibGUoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5fb25TaWduZWRJbk9ic2VydmFibGUpXHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIl9vbkV4ZWN1dGVPYnNlcnZhYmxlIGlzIHVuZGVmaW5lZFwiKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX29uU2lnbmVkSW5PYnNlcnZhYmxlO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBwcml2YXRlIF9vblJlZnJlc2hUb2tlblN1YmplY3Q/OiBTdWJqZWN0PHZvaWQ+O1xyXG4gICAgcHJpdmF0ZSBfb25SZWZyZXNoVG9rZW5PYnNlcnZhYmxlPzogT2JzZXJ2YWJsZTx2b2lkPjtcclxuICAgIGdldCBvblJlZnJlc2hUb2tlbigpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcclxuICAgICAgICBpZiAoIXRoaXMuX29uUmVmcmVzaFRva2VuU3ViamVjdCkge1xyXG4gICAgICAgICAgICB0aGlzLl9vblJlZnJlc2hUb2tlblN1YmplY3QgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gICAgICAgICAgICB0aGlzLl9vblJlZnJlc2hUb2tlbk9ic2VydmFibGUgPSB0aGlzLl9vblJlZnJlc2hUb2tlblN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoIXRoaXMuX29uUmVmcmVzaFRva2VuT2JzZXJ2YWJsZSlcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwib25SZWZyZXNoVG9rZW5PYnNlcnZhYmxlIGlzIHVuZGVmaW5lZFwiKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX29uUmVmcmVzaFRva2VuT2JzZXJ2YWJsZTtcclxuICAgIH1cclxuXHJcblxyXG5cclxuICAgIGxvZ2luKHVzZXI6IExvZ2luVG9rZW4gfCBMb2dpblVzZXIgfCBudWxsKSB7XHJcbiAgICAgICAgLy8gaWYgKHVzZXIpIHtcclxuICAgICAgICAvLyAgICAgLy8gSSB0aGluayB3ZSBkb24ndCBuZWVkIHRoaXNcclxuICAgICAgICAvLyAgICAgdXNlci5pZCA9IE9iamVjdEhlbHBlci5pc0RlZmluZWQodXNlci5pZCkgPyBDb252ZXJ0LnBhcnNlTnVtYmVyKHVzZXIuaWQpIDogdXNlci5pZDtcclxuICAgICAgICAvLyAgICAgdXNlci5leHBpcmVkID0gT2JqZWN0SGVscGVyLmlzRGVmaW5lZCh1c2VyLmV4cGlyZWQpID8gIERhdGVIZWxwZXIucGFyc2VEYXRlKHVzZXIuZXhwaXJlZCkgOiB1c2VyLmV4cGlyZWQ7XHJcbiAgICAgICAgLy8gICAgIHVzZXIucmVmcmVzaFRva2VuVGltZSA9IE9iamVjdEhlbHBlci5pc0RlZmluZWQodXNlci5yZWZyZXNoVG9rZW5UaW1lKSA/ICBEYXRlSGVscGVyLnBhcnNlRGF0ZSh1c2VyLnJlZnJlc2hUb2tlblRpbWUpIDogdXNlci5yZWZyZXNoVG9rZW5UaW1lO1xyXG4gICAgICAgIC8vICAgICBpZiAoQXJyYXkuaXNBcnJheSh1c2VyLnJvbGVzKSkge1xyXG4gICAgICAgIC8vICAgICAgICAgdXNlci5yb2xlcyA9IHVzZXIucm9sZXMubWFwKGZ1bmN0aW9uIChlKSB7IHJldHVybiBlLnRvVXBwZXJDYXNlKCk7IH0pO1xyXG4gICAgICAgIC8vICAgICB9XHJcbiAgICAgICAgLy8gfVxyXG5cclxuICAgICAgICBTdG9yYWdlSGVscGVyLnNldCgnbG9naW4nLCB1c2VyKTtcclxuICAgICAgICB0aGlzLl91c2VyID0gbnVsbDtcclxuICAgICAgICB0aGlzLl9pc0luaXRpYWxpemVkID0gZmFsc2U7Ly91c2VyIGdldCBtZXRob2Qgd2lsbCBpbml0IHVzZXJcclxuICAgICAgICB0aGlzLmlzQXV0aGVudGljYXRlZCgpOy8vdGhpcyBtZXRob2QgbmVlZCB0byBleGVjdXRlIHN1YmplY3QubmV4dCgpOyAgICAgICAgXHJcbiAgICB9XHJcbiAgICBsb2dvdXQoKSB7XHJcbiAgICAgICAgdGhpcy5sb2dpbihudWxsKTtcclxuICAgIH1cclxuXHJcblxyXG5cclxuICAgIHByb3RlY3RlZCBnZXRFeHBpcmVkKCk6IERhdGUgfCBudWxsIHwgdW5kZWZpbmVkIHtcclxuICAgICAgICBjb25zdCB1c2VyID0gdGhpcy51c2VyO1xyXG4gICAgICAgIGlmICh1c2VyKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB1c2VyLmV4cGlyZWQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgZ2V0UmVmcmVzaFRva2VuRXhwaXJlZCgpOiBEYXRlIHwgbnVsbCB8IHVuZGVmaW5lZCB7XHJcbiAgICAgICAgY29uc3QgdXNlciA9IHRoaXMudXNlcjtcclxuICAgICAgICBpZiAodXNlcikge1xyXG4gICAgICAgICAgICByZXR1cm4gdXNlci5yZWZyZXNoVG9rZW5UaW1lO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8vIGlzSW5Sb2xlKGFsbG93ZWRSb2xlczogc3RyaW5nW10pOiBib29sZWFuIHtcclxuICAgIC8vICAgICBpZiAoIWFsbG93ZWRSb2xlcyB8fCBhbGxvd2VkUm9sZXMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAvLyAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgLy8gICAgIH1cclxuXHJcbiAgICAvLyAgICAgY29uc3QgdG1wID0gdGhpcy5nZXRVc2VyKCk7XHJcbiAgICAvLyAgICAgY29uc3Qgcm9sZXMgPSB0bXAgPyB0bXAucm9sZXMgOiBudWxsO1xyXG4gICAgLy8gICAgIGlmICghcm9sZXMgfHwgcm9sZXMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAvLyAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIC8vICAgICB9XHJcblxyXG4gICAgLy8gICAgIGxldCBpc0luUm9sZSA9IGFsbG93ZWRSb2xlcy5zb21lKHJvbGUgPT4gcm9sZXMuaW5kZXhPZihyb2xlKSAhPT0gLTEpO1xyXG4gICAgLy8gICAgIHJldHVybiBpc0luUm9sZTtcclxuICAgIC8vIH1cclxuXHJcblxyXG4gICAgaGFzUGVybWlzc2lvbihwZXJtaXNzaW9uPzogS2V5UGFpcjxudW1iZXIsIG51bWJlcj4gfCBudW1iZXIgfCBudWxsKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKCFwZXJtaXNzaW9uKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IGtleSA9IDA7XHJcbiAgICAgICAgbGV0IHZhbHVlOiBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkO1xyXG4gICAgICAgIGlmICh0eXBlb2YgcGVybWlzc2lvbiA9PT0gJ251bWJlcicgfHwgdHlwZW9mIHBlcm1pc3Npb24gPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgICAgIGtleSA9ICtwZXJtaXNzaW9uO1xyXG4gICAgICAgIH0vLyBlbHNlIGlmIChBcnJheS5pc0FycmF5KHBlcm1pc3Npb24pKSB7XHJcbiAgICAgICAgLy8gfVxyXG4gICAgICAgIGVsc2UgaWYgKHR5cGVvZiBwZXJtaXNzaW9uID09PSAnb2JqZWN0Jykge1xyXG4gICAgICAgICAgICBpZiAoIXBlcm1pc3Npb24ua2V5KVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcblxyXG4gICAgICAgICAgICBrZXkgPSBwZXJtaXNzaW9uLmtleTtcclxuICAgICAgICAgICAgdmFsdWUgPSBwZXJtaXNzaW9uLnZhbHVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaGFzUGVybWlzc2lvbnMoW2tleV0sIHZhbHVlKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgaGFzUGVybWlzc2lvbnMocGVybWlzc2lvbnM/OiBBcnJheTxudW1iZXI+LCB2YWx1ZT86IG51bWJlciB8IG51bGwpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAoIXBlcm1pc3Npb25zIHx8IHBlcm1pc3Npb25zLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IHVzZXIgPSB0aGlzLnVzZXI7XHJcbiAgICAgICAgY29uc3QgdXNlclBlcm1pc3Npb25zID0gdXNlciA/IHVzZXIucGVybWlzc2lvbnMgOiBudWxsO1xyXG4gICAgICAgIGlmICghdXNlclBlcm1pc3Npb25zKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBlcm1pc3Npb25zLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBwID0gcGVybWlzc2lvbnNbaV07XHJcbiAgICAgICAgICAgICAgICBjb25zdCBmb3VuZCA9IHVzZXJQZXJtaXNzaW9uc1twXTtcclxuICAgICAgICAgICAgICAgIGlmIChmb3VuZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGhhc1Blcm1pc3Npb24gPSBCaXR3aXNlSGVscGVyLmhhc0ZsYWcoZm91bmQsIHZhbHVlKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoaGFzUGVybWlzc2lvbilcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBlcm1pc3Npb25zLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBwID0gcGVybWlzc2lvbnNbaV07XHJcbiAgICAgICAgICAgICAgICBjb25zdCBmb3VuZCA9IHVzZXJQZXJtaXNzaW9uc1twXTtcclxuICAgICAgICAgICAgICAgIGlmIChmb3VuZClcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBoYXNEYXRhUGVybWlzc2lvbihkYXRhOiBhbnkpIHtcclxuICAgICAgICAvL2lmIChkYXRhID09PSB1bmRlZmluZWQgfHwgZGF0YSA9PT0gbnVsbCkgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgLy8gY29uc3QgYWxsb3dlZFJvbGVzID0gZGF0YS5yb2xlcztcclxuICAgICAgICAvLyBsZXQgaXNJblJvbGUgPSB0aGlzLmlzSW5Sb2xlKGFsbG93ZWRSb2xlcyk7XHJcblxyXG4gICAgICAgIGNvbnN0IHBlcm1pc3Npb24gPSBkYXRhLnBlcm1pc3Npb247XHJcblxyXG4gICAgICAgIGNvbnN0IGhhc1Blcm1pc3Npb24gPSB0aGlzLmhhc1Blcm1pc3Npb24ocGVybWlzc2lvbik7XHJcblxyXG4gICAgICAgIC8vIHJldHVybiBpc0luUm9sZSAmJiBoYXNQZXJtaXNzaW9uO1xyXG4gICAgICAgIHJldHVybiBoYXNQZXJtaXNzaW9uO1xyXG4gICAgfVxyXG59Il19
|
|
194
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvemVrL3NyYy9saWIvc2VydmljZXMvYXV0aC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEdBQUcsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUFFLGVBQWUsRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFNUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUM1RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7O0FBR3hELE1BQU0sT0FBTyxXQUFXO0lBRHhCO1FBRVksbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFDdkIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixVQUFLLEdBQXFCLElBQUksQ0FBQztLQXFPMUM7SUFuT0csSUFBSSxJQUFJO1FBQ0osSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN2QixNQUFNLElBQUksR0FBRyxhQUFhLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3hDLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ1AsSUFBSSxDQUFDLEVBQUUsR0FBRyxZQUFZLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ25GLElBQUksQ0FBQyxPQUFPLEdBQUcsWUFBWSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FB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QUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDMUMsTUFBTSxDQUFDLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN6QixNQUFNLEtBQUssR0FBRyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2pDLElBQUksS0FBSztvQkFDTCxPQUFPLElBQUksQ0FBQztZQUNwQixDQUFDO1FBQ0wsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFHRCxpQkFBaUIsQ0FBQyxJQUFTO1FBQ3ZCLHVEQUF1RDtRQUN2RCxtQ0FBbUM7UUFDbkMsOENBQThDO1FBRTlDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7UUFFbkMsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUVyRCxvQ0FBb0M7UUFDcEMsT0FBTyxhQUFhLENBQUM7SUFDekIsQ0FBQzs4R0F2T1EsV0FBVztrSEFBWCxXQUFXOzsyRkFBWCxXQUFXO2tCQUR2QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEtleVBhaXIsIExvZ2luVG9rZW4sIExvZ2luVXNlciB9IGZyb20gJy4uL21vZGVscyc7XHJcbmltcG9ydCB7IENvbnZlcnQsIERhdGVIZWxwZXIsIE9iamVjdEhlbHBlciwgU3RvcmFnZUhlbHBlciB9IGZyb20gJy4uL3V0aWxzJztcclxuaW1wb3J0IHsgQml0d2lzZUhlbHBlciB9IGZyb20gJy4uL3V0aWxzL2JpdHdpc2UtaGVscGVyJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIEF1dGhTZXJ2aWNlIHtcclxuICAgIHByaXZhdGUgX2lzSW5pdGlhbGl6ZWQgPSBmYWxzZTtcclxuICAgIHByaXZhdGUgX29sZFZhbHVlID0gZmFsc2U7XHJcbiAgICBwcml2YXRlIF91c2VyOiBMb2dpblVzZXIgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgICBnZXQgdXNlcigpOiBMb2dpblVzZXIgfCBudWxsIHtcclxuICAgICAgICBpZiAoIXRoaXMuX2lzSW5pdGlhbGl6ZWQpIHtcclxuICAgICAgICAgICAgY29uc3QgdXNlciA9IFN0b3JhZ2VIZWxwZXIuZ2V0KCdsb2dpbicpO1xyXG4gICAgICAgICAgICBpZiAodXNlcikge1xyXG4gICAgICAgICAgICAgICAgdXNlci5pZCA9IE9iamVjdEhlbHBlci5pc0RlZmluZWQodXNlci5pZCkgPyBDb252ZXJ0LnBhcnNlTnVtYmVyKHVzZXIuaWQpIDogdXNlci5pZDtcclxuICAgICAgICAgICAgICAgIHVzZXIuZXhwaXJlZCA9IE9iamVjdEhlbHBlci5pc0RlZmluZWQodXNlci5leHBpcmVkKSA/IERhdGVIZWxwZXIucGFyc2VEYXRlKHVzZXIuZXhwaXJlZCkgOiB1c2VyLmV4cGlyZWQ7XHJcbiAgICAgICAgICAgICAgICB1c2VyLnJlZnJlc2hUb2tlblRpbWUgPSBPYmplY3RIZWxwZXIuaXNEZWZpbmVkKHVzZXIucmVmcmVzaFRva2VuVGltZSkgPyBEYXRlSGVscGVyLnBhcnNlRGF0ZSh1c2VyLnJlZnJlc2hUb2tlblRpbWUpIDogdXNlci5yZWZyZXNoVG9rZW5UaW1lO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHVzZXIucm9sZXMpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdXNlci5yb2xlcyA9IHVzZXIucm9sZXMubWFwKGZ1bmN0aW9uIChlOiBhbnkpIHsgcmV0dXJuIGUgPyBlLnRvVXBwZXJDYXNlKCkgOiBlOyB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLl91c2VyID0gdXNlcjtcclxuICAgICAgICAgICAgdGhpcy5faXNJbml0aWFsaXplZCA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuX3N0YXJSZWZyZXNoVG9rZW5UaW1lcigpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhpcy5fdXNlcjtcclxuICAgIH1cclxuXHJcblxyXG4gICAgcHJpdmF0ZSBfdGltZXJJZDogYW55O1xyXG4gICAgcHJpdmF0ZSBfc3RhclJlZnJlc2hUb2tlblRpbWVyKCkge1xyXG4gICAgICAgIHRoaXMuX3N0b3BSZWZyZXNoVG9rZW5UaW1lcigpO1xyXG5cclxuICAgICAgICBjb25zdCB1c2VyID0gdGhpcy5fdXNlcjtcclxuICAgICAgICBpZiAodXNlciAmJiB1c2VyLnJlZnJlc2hUb2tlblRpbWUpIHtcclxuICAgICAgICAgICAgbGV0IHRpbWVvdXQgPSB1c2VyLnJlZnJlc2hUb2tlblRpbWUuZ2V0VGltZSgpIC0gRGF0ZS5ub3coKTsvLyAtICg2MCAqIDEwMDApO1xyXG5cclxuICAgICAgICAgICAgaWYgKHRpbWVvdXQgPCAwKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRSZWZyZXNoVG9rZW4oKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgY29uc3QgbWluUmVmcmVzaFRpbWUgPSA2MF8wMDAvLzEgbWluO1xyXG4gICAgICAgICAgICBpZiAodGltZW91dCA8IG1pblJlZnJlc2hUaW1lKSB7XHJcbiAgICAgICAgICAgICAgICB0aW1lb3V0ID0gbWluUmVmcmVzaFRpbWU7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHRoaXMuX3RpbWVySWQgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRSZWZyZXNoVG9rZW4oKTtcclxuICAgICAgICAgICAgfSwgdGltZW91dCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcHJpdmF0ZSBfc3RvcFJlZnJlc2hUb2tlblRpbWVyKCkge1xyXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5fdGltZXJJZCA9PT0gJ251bWJlcicpIHtcclxuICAgICAgICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLl90aW1lcklkKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBlbWl0UmVmcmVzaFRva2VuKCkge1xyXG4gICAgICAgIGlmICh0aGlzLl9vblJlZnJlc2hUb2tlblN1YmplY3QpIHtcclxuICAgICAgICAgICAgdGhpcy5fb25SZWZyZXNoVG9rZW5TdWJqZWN0Lm5leHQoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIGlzQXV0aGVudGljYXRlZCgpOiBib29sZWFuIHtcclxuICAgICAgICBjb25zdCBleHBpcmVkID0gdGhpcy5nZXRFeHBpcmVkKCkgfHwgbmV3IERhdGUoMCk7Ly8gaWYgZ2V0RXhwaXJlZCBpcyBudWxsIHJldHVybiBtaW4gSlMgZGF0ZVxyXG5cclxuICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IG5ldyBEYXRlKCkgPCBleHBpcmVkO1xyXG4gICAgICAgIGlmICh0aGlzLl9vbGRWYWx1ZSAhPT0gbmV3VmFsdWUpIHtcclxuICAgICAgICAgICAgdGhpcy5fb2xkVmFsdWUgPSBuZXdWYWx1ZTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuZW1pdE9uU2lnbmVkSW4oKTtcclxuICAgICAgICAgICAgLy8gaWYgKHRoaXMuX29uU2lnbmVkSW5TdWJqZWN0KSB7XHJcbiAgICAgICAgICAgIC8vICAgICB0aGlzLl9vblNpZ25lZEluU3ViamVjdC5uZXh0KG5ld1ZhbHVlKTtcclxuICAgICAgICAgICAgLy8gfVxyXG5cclxuICAgICAgICAgICAgLy9pZiB1c2VyIGlzIHNpZ25lZCBpbiBhbmQgZXhwaXJlZCB3ZSBuZWVkIHRvIGxvZ291dCAocmVtb3ZlIGZyb20gbG9jYWxTdG9yYWdlKVxyXG4gICAgICAgICAgICBpZiAoIW5ld1ZhbHVlKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxvZ291dCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBuZXdWYWx1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG5ld1ZhbHVlO1xyXG4gICAgfVxyXG4gICAgZW1pdE9uU2lnbmVkSW4oKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuX29uU2lnbmVkSW5TdWJqZWN0KSB7XHJcbiAgICAgICAgICAgIHRoaXMuX29uU2lnbmVkSW5TdWJqZWN0Lm5leHQodGhpcy5fb2xkVmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9vblNpZ25lZEluU3ViamVjdD86IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPjsvL0JlaGF2aW9yU3ViamVjdCBpcyBmb3IgaW5pdGlhbCBmaXJ0IHZhbHVlID0gZmFsc2VcclxuICAgIHByaXZhdGUgX29uU2lnbmVkSW5PYnNlcnZhYmxlPzogT2JzZXJ2YWJsZTxib29sZWFuPjtcclxuICAgIGdldCBvblNpZ25lZEluKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gICAgICAgIGlmICghdGhpcy5fb25TaWduZWRJblN1YmplY3QpIHtcclxuICAgICAgICAgICAgdGhpcy5fb25TaWduZWRJblN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcclxuICAgICAgICAgICAgdGhpcy5fb25TaWduZWRJbk9ic2VydmFibGUgPSB0aGlzLl9vblNpZ25lZEluU3ViamVjdC5hc09ic2VydmFibGUoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5fb25TaWduZWRJbk9ic2VydmFibGUpXHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIl9vbkV4ZWN1dGVPYnNlcnZhYmxlIGlzIHVuZGVmaW5lZFwiKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX29uU2lnbmVkSW5PYnNlcnZhYmxlO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBwcml2YXRlIF9vblJlZnJlc2hUb2tlblN1YmplY3Q/OiBTdWJqZWN0PHZvaWQ+O1xyXG4gICAgcHJpdmF0ZSBfb25SZWZyZXNoVG9rZW5PYnNlcnZhYmxlPzogT2JzZXJ2YWJsZTx2b2lkPjtcclxuICAgIGdldCBvblJlZnJlc2hUb2tlbigpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcclxuICAgICAgICBpZiAoIXRoaXMuX29uUmVmcmVzaFRva2VuU3ViamVjdCkge1xyXG4gICAgICAgICAgICB0aGlzLl9vblJlZnJlc2hUb2tlblN1YmplY3QgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gICAgICAgICAgICB0aGlzLl9vblJlZnJlc2hUb2tlbk9ic2VydmFibGUgPSB0aGlzLl9vblJlZnJlc2hUb2tlblN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoIXRoaXMuX29uUmVmcmVzaFRva2VuT2JzZXJ2YWJsZSlcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwib25SZWZyZXNoVG9rZW5PYnNlcnZhYmxlIGlzIHVuZGVmaW5lZFwiKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX29uUmVmcmVzaFRva2VuT2JzZXJ2YWJsZTtcclxuICAgIH1cclxuXHJcblxyXG5cclxuICAgIGxvZ2luKHVzZXI6IExvZ2luVG9rZW4gfCBMb2dpblVzZXIgfCBudWxsKSB7XHJcbiAgICAgICAgU3RvcmFnZUhlbHBlci5zZXQoJ2xvZ2luJywgdXNlcik7XHJcbiAgICAgICAgdGhpcy5fdXNlciA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5faXNJbml0aWFsaXplZCA9IGZhbHNlOy8vdXNlciBnZXQgbWV0aG9kIHdpbGwgaW5pdCB1c2VyXHJcbiAgICAgICAgdGhpcy5pc0F1dGhlbnRpY2F0ZWQoKTsvL3RoaXMgbWV0aG9kIG5lZWQgdG8gZXhlY3V0ZSBzdWJqZWN0Lm5leHQoKTsgICAgICAgIFxyXG4gICAgfVxyXG4gICAgbG9nb3V0KCkge1xyXG4gICAgICAgIHRoaXMubG9naW4obnVsbCk7XHJcbiAgICB9XHJcblxyXG5cclxuXHJcbiAgICBwcm90ZWN0ZWQgZ2V0RXhwaXJlZCgpOiBEYXRlIHwgbnVsbCB8IHVuZGVmaW5lZCB7XHJcbiAgICAgICAgY29uc3QgdXNlciA9IHRoaXMudXNlcjtcclxuICAgICAgICBpZiAodXNlcikge1xyXG4gICAgICAgICAgICByZXR1cm4gdXNlci5leHBpcmVkO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIGdldFJlZnJlc2hUb2tlbkV4cGlyZWQoKTogRGF0ZSB8IG51bGwgfCB1bmRlZmluZWQge1xyXG4gICAgICAgIGNvbnN0IHVzZXIgPSB0aGlzLnVzZXI7XHJcbiAgICAgICAgaWYgKHVzZXIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHVzZXIucmVmcmVzaFRva2VuVGltZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvLyBpc0luUm9sZShhbGxvd2VkUm9sZXM6IHN0cmluZ1tdKTogYm9vbGVhbiB7XHJcbiAgICAvLyAgICAgaWYgKCFhbGxvd2VkUm9sZXMgfHwgYWxsb3dlZFJvbGVzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgLy8gICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIC8vICAgICB9XHJcblxyXG4gICAgLy8gICAgIGNvbnN0IHRtcCA9IHRoaXMuZ2V0VXNlcigpO1xyXG4gICAgLy8gICAgIGNvbnN0IHJvbGVzID0gdG1wID8gdG1wLnJvbGVzIDogbnVsbDtcclxuICAgIC8vICAgICBpZiAoIXJvbGVzIHx8IHJvbGVzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgLy8gICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAvLyAgICAgfVxyXG5cclxuICAgIC8vICAgICBsZXQgaXNJblJvbGUgPSBhbGxvd2VkUm9sZXMuc29tZShyb2xlID0+IHJvbGVzLmluZGV4T2Yocm9sZSkgIT09IC0xKTtcclxuICAgIC8vICAgICByZXR1cm4gaXNJblJvbGU7XHJcbiAgICAvLyB9XHJcblxyXG5cclxuICAgIGhhc1Blcm1pc3Npb24ocGVybWlzc2lvbj86IEtleVBhaXI8bnVtYmVyLCBudW1iZXI+IHwgbnVtYmVyIHwgbnVsbCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmICghcGVybWlzc2lvbikge1xyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCBrZXkgPSAwO1xyXG4gICAgICAgIGxldCB2YWx1ZTogbnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZDtcclxuICAgICAgICBpZiAodHlwZW9mIHBlcm1pc3Npb24gPT09ICdudW1iZXInIHx8IHR5cGVvZiBwZXJtaXNzaW9uID09PSAnc3RyaW5nJykge1xyXG4gICAgICAgICAgICBrZXkgPSArcGVybWlzc2lvbjtcclxuICAgICAgICB9Ly8gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShwZXJtaXNzaW9uKSkge1xyXG4gICAgICAgIC8vIH1cclxuICAgICAgICBlbHNlIGlmICh0eXBlb2YgcGVybWlzc2lvbiA9PT0gJ29iamVjdCcpIHtcclxuICAgICAgICAgICAgaWYgKCFwZXJtaXNzaW9uLmtleSlcclxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG5cclxuICAgICAgICAgICAga2V5ID0gcGVybWlzc2lvbi5rZXk7XHJcbiAgICAgICAgICAgIHZhbHVlID0gcGVybWlzc2lvbi52YWx1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmhhc1Blcm1pc3Npb25zKFtrZXldLCB2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIGhhc1Blcm1pc3Npb25zKHBlcm1pc3Npb25zPzogQXJyYXk8bnVtYmVyPiwgdmFsdWU/OiBudW1iZXIgfCBudWxsKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKCFwZXJtaXNzaW9ucyB8fCBwZXJtaXNzaW9ucy5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCB1c2VyID0gdGhpcy51c2VyO1xyXG4gICAgICAgIGNvbnN0IHVzZXJQZXJtaXNzaW9ucyA9IHVzZXIgPyB1c2VyLnBlcm1pc3Npb25zIDogbnVsbDtcclxuICAgICAgICBpZiAoIXVzZXJQZXJtaXNzaW9ucykge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodmFsdWUpIHtcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwZXJtaXNzaW9ucy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcCA9IHBlcm1pc3Npb25zW2ldO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZm91bmQgPSB1c2VyUGVybWlzc2lvbnNbcF07XHJcbiAgICAgICAgICAgICAgICBpZiAoZm91bmQpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBoYXNQZXJtaXNzaW9uID0gQml0d2lzZUhlbHBlci5oYXNGbGFnKGZvdW5kLCB2YWx1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGhhc1Blcm1pc3Npb24pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwZXJtaXNzaW9ucy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcCA9IHBlcm1pc3Npb25zW2ldO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZm91bmQgPSB1c2VyUGVybWlzc2lvbnNbcF07XHJcbiAgICAgICAgICAgICAgICBpZiAoZm91bmQpXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgaGFzRGF0YVBlcm1pc3Npb24oZGF0YTogYW55KSB7XHJcbiAgICAgICAgLy9pZiAoZGF0YSA9PT0gdW5kZWZpbmVkIHx8IGRhdGEgPT09IG51bGwpIHJldHVybiB0cnVlO1xyXG4gICAgICAgIC8vIGNvbnN0IGFsbG93ZWRSb2xlcyA9IGRhdGEucm9sZXM7XHJcbiAgICAgICAgLy8gbGV0IGlzSW5Sb2xlID0gdGhpcy5pc0luUm9sZShhbGxvd2VkUm9sZXMpO1xyXG5cclxuICAgICAgICBjb25zdCBwZXJtaXNzaW9uID0gZGF0YS5wZXJtaXNzaW9uO1xyXG5cclxuICAgICAgICBjb25zdCBoYXNQZXJtaXNzaW9uID0gdGhpcy5oYXNQZXJtaXNzaW9uKHBlcm1pc3Npb24pO1xyXG5cclxuICAgICAgICAvLyByZXR1cm4gaXNJblJvbGUgJiYgaGFzUGVybWlzc2lvbjtcclxuICAgICAgICByZXR1cm4gaGFzUGVybWlzc2lvbjtcclxuICAgIH1cclxufSJdfQ==
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { catchError } from "rxjs";
|
|
2
2
|
import { BaseService } from "./base.service";
|
|
3
|
+
import { UrlHelper } from "../utils";
|
|
3
4
|
export class CrudService extends BaseService {
|
|
4
5
|
constructor(controller, api, httpErrorHandler) {
|
|
5
6
|
super(controller, api, httpErrorHandler);
|
|
6
7
|
}
|
|
7
8
|
get(id) {
|
|
8
|
-
|
|
9
|
+
const url = UrlHelper.combine(`api/${this.controller}`, id);
|
|
10
|
+
return this.api.get(url).pipe(catchError(this.handleError(this.get.name, null)));
|
|
9
11
|
}
|
|
10
12
|
get2(id, id2) {
|
|
11
13
|
return this.api.get(`api/${this.controller}/${id}/${id2}`).pipe(catchError(this.handleError(this.get2.name, null)));
|
|
@@ -43,4 +45,4 @@ export class CrudService extends BaseService {
|
|
|
43
45
|
return this.api.getBlob(`api/${this.controller}/Export/${fileTypeId}`, model).pipe(catchError(this.handleError('export', null)));
|
|
44
46
|
}
|
|
45
47
|
}
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J1ZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvemVrL3NyYy9saWIvc2VydmljZXMvY3J1ZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFJOUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFpQnJDLE1BQU0sT0FBTyxXQUFZLFNBQVEsV0FBVztJQUN4QyxZQUNJLFVBQWtCLEVBQ2xCLEdBQWlCLEVBQ2pCLGdCQUFrQztRQUNsQyxLQUFLLENBQUMsVUFBVSxFQUFFLEdBQUcsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxHQUFHLENBQUMsRUFBTztRQUNQLE1BQU0sR0FBRyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDNUQsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3JGLENBQUM7SUFDRCxJQUFJLENBQUMsRUFBTyxFQUFFLEdBQVE7UUFDbEIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxPQUFPLElBQUksQ0FBQyxVQUFVLElBQUksRUFBRSxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4SCxDQUFDO0lBRUQsTUFBTSxDQUFDLE1BQVk7UUFDZixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLE9BQU8sSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvRyxDQUFDO0lBQ0QsR0FBRyxDQUFDLE1BQVk7UUFDWixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLE9BQU8sSUFBSSxDQUFDLFVBQVUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNoSCxDQUFDO0lBRUQsSUFBSSxDQUFDLEtBQVU7UUFDWCxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDWixDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQU0sT0FBTyxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDOUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFNLE9BQU8sSUFBSSxDQUFDLFVBQVUsSUFBSSxLQUFLLENBQUMsRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsSSxDQUFDO0lBRUQsTUFBTSxDQUFDLEVBQU87UUFDVixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE9BQU8sSUFBSSxDQUFDLFVBQVUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEgsQ0FBQztJQUNELE9BQU8sQ0FBQyxFQUFPLEVBQUUsR0FBUTtRQUNyQixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE9BQU8sSUFBSSxDQUFDLFVBQVUsSUFBSSxFQUFFLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzlILENBQUM7SUFFRCxPQUFPLENBQUMsRUFBTztRQUNYLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxJQUFJLENBQUMsVUFBVSxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM5SCxDQUFDO0lBRUQsT0FBTyxDQUFDLEtBQVU7UUFDZCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sSUFBSSxDQUFDLFVBQVUsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDL0gsQ0FBQztJQUNELFVBQVUsQ0FBQyxLQUFVO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxJQUFJLENBQUMsVUFBVSxhQUFhLEVBQUUsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNySSxDQUFDO0lBRUQsS0FBSyxDQUFDLEtBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLFVBQVUsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDMUgsQ0FBQztJQUdELE1BQU0sQ0FBQyxLQUFVLEVBQUUsVUFBZTtRQUM5QixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLE9BQU8sSUFBSSxDQUFDLFVBQVUsV0FBVyxVQUFVLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNySSxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjYXRjaEVycm9yLCBPYnNlcnZhYmxlIH0gZnJvbSBcInJ4anNcIjtcclxuXHJcbmltcG9ydCB7IEh0dHBFcnJvckhhbmRsZXIgfSBmcm9tIFwiLi9odHRwLWVycm9yLWhhbmRsZXIuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBQYWdlZExpc3QgfSBmcm9tIFwiLi4vbW9kZWxzXCI7XHJcbmltcG9ydCB7IEJhc2VTZXJ2aWNlIH0gZnJvbSBcIi4vYmFzZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFdlYkFwaUNsaWVudCB9IGZyb20gXCIuL3dlYi5hcGlcIjtcclxuaW1wb3J0IHsgVXJsSGVscGVyIH0gZnJvbSBcIi4uL3V0aWxzXCI7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElTZXJ2aWNlIHtcclxuICAgIGdldEFsbChmaWx0ZXI6IGFueSk6IE9ic2VydmFibGU8UGFnZWRMaXN0PjtcclxuICAgIGRlbGV0ZShpZDogYW55KTogT2JzZXJ2YWJsZTxhbnk+O1xyXG4gICAgZGVsZXRlMihpZDogYW55LCBpZDI6IGFueSk6IE9ic2VydmFibGU8YW55PjtcclxuICAgIGV4cG9ydChmaWx0ZXI6IGFueSwgZmlsZVR5cGVJZDogYW55KTogT2JzZXJ2YWJsZTxCbG9iIHwgbnVsbD47XHJcbiAgICBzdW0oZmlsdGVyOiBhbnkpOiBPYnNlcnZhYmxlPGFueT47XHJcblxyXG4gICAgZ2V0KGlkOiBhbnkpOiBPYnNlcnZhYmxlPGFueT47XHJcbiAgICBnZXQyKGlkOiBhbnksIGlkMjogYW55KTogT2JzZXJ2YWJsZTxhbnk+O1xyXG4gICAgc2F2ZShtb2RlbDogYW55KTogT2JzZXJ2YWJsZTxhbnk+O1xyXG4gICAgcmVzdG9yZShpZDogYW55KTogT2JzZXJ2YWJsZTxhbnk+O1xyXG4gICAgYXBwcm92ZShtb2RlbDogYW55KTogT2JzZXJ2YWJsZTxhbnk+O1xyXG4gICAgZGlzYXBwcm92ZShtb2RlbDogYW55KTogT2JzZXJ2YWJsZTxhbnk+O1xyXG4gICAgYmF0Y2gobW9kZWw6IGFueSk6IE9ic2VydmFibGU8YW55PjtcclxufVxyXG5leHBvcnQgY2xhc3MgQ3J1ZFNlcnZpY2UgZXh0ZW5kcyBCYXNlU2VydmljZSBpbXBsZW1lbnRzIElTZXJ2aWNlIHtcclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIGNvbnRyb2xsZXI6IHN0cmluZyxcclxuICAgICAgICBhcGk6IFdlYkFwaUNsaWVudCxcclxuICAgICAgICBodHRwRXJyb3JIYW5kbGVyOiBIdHRwRXJyb3JIYW5kbGVyKSB7XHJcbiAgICAgICAgc3VwZXIoY29udHJvbGxlciwgYXBpLCBodHRwRXJyb3JIYW5kbGVyKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQoaWQ6IGFueSkge1xyXG4gICAgICAgIGNvbnN0IHVybCA9IFVybEhlbHBlci5jb21iaW5lKGBhcGkvJHt0aGlzLmNvbnRyb2xsZXJ9YCwgaWQpO1xyXG4gICAgICAgIHJldHVybiB0aGlzLmFwaS5nZXQodXJsKS5waXBlKGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcih0aGlzLmdldC5uYW1lLCBudWxsKSkpO1xyXG4gICAgfVxyXG4gICAgZ2V0MihpZDogYW55LCBpZDI6IGFueSkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmFwaS5nZXQoYGFwaS8ke3RoaXMuY29udHJvbGxlcn0vJHtpZH0vJHtpZDJ9YCkucGlwZShjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IodGhpcy5nZXQyLm5hbWUsIG51bGwpKSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0QWxsKGZpbHRlcj86IGFueSk6IE9ic2VydmFibGU8UGFnZWRMaXN0PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBpLmdldChgYXBpLyR7dGhpcy5jb250cm9sbGVyfWAsIGZpbHRlcikucGlwZShjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IodGhpcy5nZXRBbGwubmFtZSkpKTtcclxuICAgIH1cclxuICAgIHN1bShmaWx0ZXI/OiBhbnkpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5hcGkuZ2V0KGBhcGkvJHt0aGlzLmNvbnRyb2xsZXJ9L1N1bWAsIGZpbHRlcikucGlwZShjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IodGhpcy5zdW0ubmFtZSkpKTtcclxuICAgIH1cclxuXHJcbiAgICBzYXZlKG1vZGVsOiBhbnkpIHtcclxuICAgICAgICByZXR1cm4gIW1vZGVsLmlkXHJcbiAgICAgICAgICAgID8gdGhpcy5hcGkucG9zdDxhbnk+KGBhcGkvJHt0aGlzLmNvbnRyb2xsZXJ9YCwgbW9kZWwpLnBpcGUoY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKHRoaXMuc2F2ZS5uYW1lLCBudWxsKSkpXHJcbiAgICAgICAgICAgIDogdGhpcy5hcGkucHV0PGFueT4oYGFwaS8ke3RoaXMuY29udHJvbGxlcn0vJHttb2RlbC5pZH1gLCBtb2RlbCkucGlwZShjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IodGhpcy5zYXZlLm5hbWUsIG51bGwpKSk7XHJcbiAgICB9XHJcblxyXG4gICAgZGVsZXRlKGlkOiBhbnkpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5hcGkuZGVsZXRlKGBhcGkvJHt0aGlzLmNvbnRyb2xsZXJ9LyR7aWR9YCkucGlwZShjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IodGhpcy5kZWxldGUubmFtZSwgbnVsbCkpKTtcclxuICAgIH1cclxuICAgIGRlbGV0ZTIoaWQ6IGFueSwgaWQyOiBhbnkpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5hcGkuZGVsZXRlKGBhcGkvJHt0aGlzLmNvbnRyb2xsZXJ9LyR7aWR9LyR7aWQyfWApLnBpcGUoY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKHRoaXMuZGVsZXRlMi5uYW1lLCBudWxsKSkpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlc3RvcmUoaWQ6IGFueSkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmFwaS5wYXRjaChgYXBpLyR7dGhpcy5jb250cm9sbGVyfS8ke2lkfS9SZXN0b3JlYCkucGlwZShjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IodGhpcy5yZXN0b3JlLm5hbWUsIG51bGwpKSk7XHJcbiAgICB9XHJcblxyXG4gICAgYXBwcm92ZShtb2RlbDogYW55KSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBpLnBhdGNoKGBhcGkvJHt0aGlzLmNvbnRyb2xsZXJ9L0FwcHJvdmVgLCBtb2RlbCkucGlwZShjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IodGhpcy5hcHByb3ZlLm5hbWUsIG51bGwpKSk7XHJcbiAgICB9XHJcbiAgICBkaXNhcHByb3ZlKG1vZGVsOiBhbnkpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5hcGkucGF0Y2goYGFwaS8ke3RoaXMuY29udHJvbGxlcn0vRGlzYXBwcm92ZWAsIG1vZGVsKS5waXBlKGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcih0aGlzLmRpc2FwcHJvdmUubmFtZSwgbnVsbCkpKTtcclxuICAgIH1cclxuXHJcbiAgICBiYXRjaChtb2RlbDogYW55KSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBpLnBvc3QoYGFwaS8ke3RoaXMuY29udHJvbGxlcn0vQmF0Y2hgLCBtb2RlbCkucGlwZShjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IodGhpcy5iYXRjaC5uYW1lLCBudWxsKSkpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBleHBvcnQobW9kZWw6IGFueSwgZmlsZVR5cGVJZDogYW55KTogT2JzZXJ2YWJsZTxCbG9iIHwgbnVsbD4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmFwaS5nZXRCbG9iKGBhcGkvJHt0aGlzLmNvbnRyb2xsZXJ9L0V4cG9ydC8ke2ZpbGVUeXBlSWR9YCwgbW9kZWwpLnBpcGUoY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKCdleHBvcnQnLCBudWxsKSkpO1xyXG4gICAgfVxyXG59Il19
|
package/fesm2022/zek.mjs
CHANGED
|
@@ -1355,14 +1355,14 @@ class AuthService {
|
|
|
1355
1355
|
if (user && user.refreshTokenTime) {
|
|
1356
1356
|
let timeout = user.refreshTokenTime.getTime() - Date.now(); // - (60 * 1000);
|
|
1357
1357
|
if (timeout < 0) {
|
|
1358
|
-
this.
|
|
1358
|
+
this.emitRefreshToken();
|
|
1359
1359
|
}
|
|
1360
1360
|
const minRefreshTime = 60000; //1 min;
|
|
1361
1361
|
if (timeout < minRefreshTime) {
|
|
1362
1362
|
timeout = minRefreshTime;
|
|
1363
1363
|
}
|
|
1364
1364
|
this._timerId = setInterval(() => {
|
|
1365
|
-
this.
|
|
1365
|
+
this.emitRefreshToken();
|
|
1366
1366
|
}, timeout);
|
|
1367
1367
|
}
|
|
1368
1368
|
}
|
|
@@ -1371,7 +1371,7 @@ class AuthService {
|
|
|
1371
1371
|
clearInterval(this._timerId);
|
|
1372
1372
|
}
|
|
1373
1373
|
}
|
|
1374
|
-
|
|
1374
|
+
emitRefreshToken() {
|
|
1375
1375
|
if (this._onRefreshTokenSubject) {
|
|
1376
1376
|
this._onRefreshTokenSubject.next();
|
|
1377
1377
|
}
|
|
@@ -1417,15 +1417,6 @@ class AuthService {
|
|
|
1417
1417
|
return this._onRefreshTokenObservable;
|
|
1418
1418
|
}
|
|
1419
1419
|
login(user) {
|
|
1420
|
-
// if (user) {
|
|
1421
|
-
// // I think we don't need this
|
|
1422
|
-
// user.id = ObjectHelper.isDefined(user.id) ? Convert.parseNumber(user.id) : user.id;
|
|
1423
|
-
// user.expired = ObjectHelper.isDefined(user.expired) ? DateHelper.parseDate(user.expired) : user.expired;
|
|
1424
|
-
// user.refreshTokenTime = ObjectHelper.isDefined(user.refreshTokenTime) ? DateHelper.parseDate(user.refreshTokenTime) : user.refreshTokenTime;
|
|
1425
|
-
// if (Array.isArray(user.roles)) {
|
|
1426
|
-
// user.roles = user.roles.map(function (e) { return e.toUpperCase(); });
|
|
1427
|
-
// }
|
|
1428
|
-
// }
|
|
1429
1420
|
StorageHelper.set('login', user);
|
|
1430
1421
|
this._user = null;
|
|
1431
1422
|
this._isInitialized = false; //user get method will init user
|
|
@@ -1525,41 +1516,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
|
|
|
1525
1516
|
}] });
|
|
1526
1517
|
|
|
1527
1518
|
const zekAuthGuard = (route, state) => {
|
|
1528
|
-
const
|
|
1519
|
+
const auth = inject(AuthService);
|
|
1529
1520
|
const router = inject(Router);
|
|
1530
|
-
if (!
|
|
1521
|
+
if (!auth.isAuthenticated()) {
|
|
1531
1522
|
router.navigate(['/login'], { queryParams: { returnUrl: state.url } });
|
|
1532
1523
|
return false;
|
|
1533
1524
|
}
|
|
1534
|
-
return
|
|
1525
|
+
return auth.hasDataPermission(route.data);
|
|
1535
1526
|
};
|
|
1536
|
-
/**
|
|
1537
|
-
* @deprecated Please use canActivate
|
|
1538
|
-
* @see {@link canActivate}
|
|
1539
|
-
*/
|
|
1540
|
-
class AuthGuardService {
|
|
1541
|
-
constructor(authService, router) {
|
|
1542
|
-
this.authService = authService;
|
|
1543
|
-
this.router = router;
|
|
1544
|
-
}
|
|
1545
|
-
canActivate(route, state) {
|
|
1546
|
-
if (!this.authService.isAuthenticated()) {
|
|
1547
|
-
this.router.navigate(['/login'], { queryParams: { returnUrl: state.url } });
|
|
1548
|
-
return false;
|
|
1549
|
-
}
|
|
1550
|
-
return this.authService.hasDataPermission(route.data);
|
|
1551
|
-
// const allowedRoles = route.data.roles;
|
|
1552
|
-
// let isInRole = this.authService.isInRole(allowedRoles);
|
|
1553
|
-
// const permission = route.data.permission;
|
|
1554
|
-
// let hasPermission = this.authService.hasPermission(permission);
|
|
1555
|
-
// return isInRole && hasPermission;
|
|
1556
|
-
}
|
|
1557
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: AuthGuardService, deps: [{ token: AuthService }, { token: i1.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1558
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: AuthGuardService }); }
|
|
1559
|
-
}
|
|
1560
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: AuthGuardService, decorators: [{
|
|
1561
|
-
type: Injectable
|
|
1562
|
-
}], ctorParameters: () => [{ type: AuthService }, { type: i1.Router }] });
|
|
1563
1527
|
|
|
1564
1528
|
class BaseService {
|
|
1565
1529
|
constructor(controller, api, httpErrorHandler) {
|
|
@@ -1574,7 +1538,8 @@ class CrudService extends BaseService {
|
|
|
1574
1538
|
super(controller, api, httpErrorHandler);
|
|
1575
1539
|
}
|
|
1576
1540
|
get(id) {
|
|
1577
|
-
|
|
1541
|
+
const url = UrlHelper.combine(`api/${this.controller}`, id);
|
|
1542
|
+
return this.api.get(url).pipe(catchError(this.handleError(this.get.name, null)));
|
|
1578
1543
|
}
|
|
1579
1544
|
get2(id, id2) {
|
|
1580
1545
|
return this.api.get(`api/${this.controller}/${id}/${id2}`).pipe(catchError(this.handleError(this.get2.name, null)));
|
|
@@ -4934,7 +4899,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
|
|
|
4934
4899
|
|
|
4935
4900
|
// export * from './loading-interceptor';
|
|
4936
4901
|
|
|
4937
|
-
class
|
|
4902
|
+
class ZekNumericDirective {
|
|
4938
4903
|
get digits() {
|
|
4939
4904
|
return this._digits;
|
|
4940
4905
|
}
|
|
@@ -5002,10 +4967,10 @@ class NumericDirective {
|
|
|
5002
4967
|
onPaste(event) {
|
|
5003
4968
|
this.run(this.el.nativeElement.value);
|
|
5004
4969
|
}
|
|
5005
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type:
|
|
5006
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.4", type:
|
|
4970
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ZekNumericDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
4971
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.4", type: ZekNumericDirective, isStandalone: true, selector: "[numeric]", inputs: { digits: "digits", negative: "negative" }, host: { listeners: { "keydown": "onKeyDown($event)", "paste": "onPaste($event)" } }, ngImport: i0 }); }
|
|
5007
4972
|
}
|
|
5008
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type:
|
|
4973
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ZekNumericDirective, decorators: [{
|
|
5009
4974
|
type: Directive,
|
|
5010
4975
|
args: [{
|
|
5011
4976
|
standalone: true,
|
|
@@ -6815,5 +6780,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
|
|
|
6815
6780
|
* Generated bundle index. Do not edit.
|
|
6816
6781
|
*/
|
|
6817
6782
|
|
|
6818
|
-
export { API_BASE_URL, AgePipe, Alert, AlertService, ArrayHelper,
|
|
6783
|
+
export { API_BASE_URL, AgePipe, Alert, AlertService, ArrayHelper, AuthService, Base64Helper, BaseAlert, BaseComponent, BaseService, BitwiseHelper, BootstrapHelper, Color, ComponentType, Convert, CoreComponent, CoreUiComponent, CrudService, CssHelper, CustomHttpParamEncoder, DATE_FORMAT, DateHelper, DateValueAccessor, DatepickerModule, EditBase, EditBaseComponent, EditComponent, EditFormComponent, ErrorHelper, ExcelHelper, FileBase, FileBytes, FileHelper, FileString, FilterBase, FilterHelper, GOOGLE_CLIENT_ID, Gender, HtmlHelper, HttpErrorHandler, JwtHelper, KeyPair, KeyPairChecked, KeyPairEx, KeyPairRequired, LANGUAGE, ListBase, ListBaseComponent, MATCH_VALIDATOR, MatchValidator, MathHelper, Month, ObjectHelper, OverlapHelper, PagedList, Pager, PagerHelper, PeriodRelation, PrintType, RANGE_VALIDATOR, RECAPTCHA_SITE_KEY, RandomHelper, RangeValidator, ReCaptchaService, RecaptchaModule, StorageHelper, StringHelper, TimeHelper, TimeModule, TimePipe, TimerService, TmpHelper, Toast, Tree, UrlHelper, ValidEventArgs, ValidationHelper, Validators, ValidatorsModule, WebApiClient, WebApiModule, ZekAlert, ZekApproveModal, ZekAutoComplete, ZekButtonBrowse, ZekButtonBrowseModalBase, ZekButtonBrowseModalToolbar, ZekButtonBrowseModule, ZekCallbackPipe, ZekCard, ZekDateAgoPipe, ZekDeleteModal, ZekDisapproveModal, ZekEditToolbar, ZekFieldValidator, ZekFileSizePipe, ZekFileViewer, ZekFilterModal, ZekGoogleLoginButton, ZekGoogleLoginModule, ZekGridToolbar, ZekGridToolbarBar, ZekListToolbar, ZekLoading, ZekLoadingModule, ZekLocalToUtcModule, ZekLocalToUtcPipe, ZekModal, ZekModalModule, ZekNumericDirective, ZekPageTitle, ZekPager, ZekPassword, ZekProgress, ZekRadio, ZekReadOnlyDirective, ZekRestoreModal, ZekSafePipe, ZekSelect2, ZekSelect2Multiple, ZekSelectMultiple, ZekSort, ZekSortButtonGroup, ZekSubmitModal, ZekSumModal, ZekToast, ZekTooltip, ZekUtcToLocalModule, ZekUtcToLocalPipe, ZekValidation, ZekWizard, ZekWizard2, firstBy, handler, matchValidator, nullValidator, rangeValidator, zekAuthGuard };
|
|
6819
6784
|
//# sourceMappingURL=zek.mjs.map
|