@gipisistemas/ng-core 1.1.7 → 1.1.8
Sign up to get free protection for your applications and to get access to all the features.
- package/bundles/gipisistemas-ng-core.umd.js +2261 -2168
- package/bundles/gipisistemas-ng-core.umd.js.map +1 -1
- package/bundles/gipisistemas-ng-core.umd.min.js +8 -8
- package/bundles/gipisistemas-ng-core.umd.min.js.map +1 -1
- package/core/guards/auth.guard.d.ts +3 -1
- package/core/guards/permission.guard.d.ts +5 -4
- package/core/interceptors/auth.interceptor.d.ts +2 -2
- package/core/services/authentication.service.d.ts +8 -9
- package/core.d.ts +0 -1
- package/esm2015/core/guards/auth.guard.js +16 -19
- package/esm2015/core/guards/permission.guard.js +31 -22
- package/esm2015/core/interceptors/auth.interceptor.js +7 -5
- package/esm2015/core/services/authentication.service.js +40 -34
- package/esm2015/core.js +1 -2
- package/esm2015/gipi-components.js +4 -1
- package/esm2015/shared/components/input/input.component.js +7 -2
- package/esm2015/shared/components/select-entity/select-entity.component.js +1 -1
- package/esm2015/shared/components/select-enum/select-enum.component.js +8 -3
- package/esm2015/shared/gipi-components/form-field/form-field.component.js +3 -3
- package/esm2015/shared/gipi-components/input-currency/input-currency.component.js +1 -1
- package/esm2015/shared/gipi-components/input-monthpicker/input-monthpicker.component.js +1 -1
- package/esm2015/shared/gipi-components/input-select/input-select.component.js +1 -1
- package/esm2015/shared/gipi-components/skeleton/skeleton.component.js +44 -0
- package/esm2015/shared/gipi-components/skeleton/skeleton.directive.js +79 -0
- package/esm2015/shared/shared.module.js +7 -3
- package/esm5/core/guards/auth.guard.js +16 -20
- package/esm5/core/guards/permission.guard.js +31 -23
- package/esm5/core/interceptors/auth.interceptor.js +7 -5
- package/esm5/core/services/authentication.service.js +41 -46
- package/esm5/core.js +1 -2
- package/esm5/gipi-components.js +4 -1
- package/esm5/shared/components/input/input.component.js +7 -2
- package/esm5/shared/components/select-entity/select-entity.component.js +1 -1
- package/esm5/shared/components/select-enum/select-enum.component.js +8 -3
- package/esm5/shared/gipi-components/form-field/form-field.component.js +3 -3
- package/esm5/shared/gipi-components/input-currency/input-currency.component.js +1 -1
- package/esm5/shared/gipi-components/input-monthpicker/input-monthpicker.component.js +1 -1
- package/esm5/shared/gipi-components/input-select/input-select.component.js +1 -1
- package/esm5/shared/gipi-components/skeleton/skeleton.component.js +46 -0
- package/esm5/shared/gipi-components/skeleton/skeleton.directive.js +81 -0
- package/esm5/shared/shared.module.js +7 -3
- package/fesm2015/gipisistemas-ng-core.js +4172 -4069
- package/fesm2015/gipisistemas-ng-core.js.map +1 -1
- package/fesm5/gipisistemas-ng-core.js +2260 -2168
- package/fesm5/gipisistemas-ng-core.js.map +1 -1
- package/gipi-components.d.ts +2 -0
- package/gipisistemas-ng-core.metadata.json +1 -1
- package/package.json +1 -1
- package/shared/components/input/input.component.d.ts +1 -0
- package/shared/components/select-enum/select-enum.component.d.ts +1 -0
- package/shared/gipi-components/skeleton/skeleton.component.d.ts +9 -0
- package/shared/gipi-components/skeleton/skeleton.directive.d.ts +15 -0
- package/core/guards/public.guard.d.ts +0 -11
- package/esm2015/core/guards/public.guard.js +0 -44
- package/esm5/core/guards/public.guard.js +0 -46
package/package.json
CHANGED
@@ -0,0 +1,15 @@
|
|
1
|
+
import { ComponentFactoryResolver, ElementRef, SimpleChanges, TemplateRef, ViewContainerRef } from '@angular/core';
|
2
|
+
export declare class GIPISkeletonDirective {
|
3
|
+
private _templateRef;
|
4
|
+
private _viewContainerRef;
|
5
|
+
private _componentFactoryResolver;
|
6
|
+
private _elementRef;
|
7
|
+
loading: boolean;
|
8
|
+
size: number;
|
9
|
+
width: string;
|
10
|
+
height: string;
|
11
|
+
className: string;
|
12
|
+
constructor(_templateRef: TemplateRef<any>, _viewContainerRef: ViewContainerRef, _componentFactoryResolver: ComponentFactoryResolver, _elementRef: ElementRef);
|
13
|
+
ngOnChanges(changes: SimpleChanges): void;
|
14
|
+
private _createSkeletons;
|
15
|
+
}
|
@@ -1,11 +0,0 @@
|
|
1
|
-
import { ActivatedRouteSnapshot, CanActivate, CanActivateChild, Router, RouterStateSnapshot } from '@angular/router';
|
2
|
-
import { Observable } from 'rxjs';
|
3
|
-
import { BaseUser } from '../models/base-user.model';
|
4
|
-
import { AuthenticationService } from '../services/authentication.service';
|
5
|
-
export declare class PublicGuard implements CanActivate, CanActivateChild {
|
6
|
-
private _router;
|
7
|
-
private _authenticationService;
|
8
|
-
constructor(_router: Router, _authenticationService: AuthenticationService<BaseUser>);
|
9
|
-
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean>;
|
10
|
-
canActivateChild(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean>;
|
11
|
-
}
|
@@ -1,44 +0,0 @@
|
|
1
|
-
import { __decorate, __metadata } from "tslib";
|
2
|
-
import { Injectable } from '@angular/core';
|
3
|
-
import { ActivatedRouteSnapshot, CanActivate, CanActivateChild, Router, RouterStateSnapshot } from '@angular/router';
|
4
|
-
import { of } from 'rxjs';
|
5
|
-
import { map } from 'rxjs/operators';
|
6
|
-
import { AuthenticationService } from '../services/authentication.service';
|
7
|
-
import { ObjectUtil } from '../utils/object.util';
|
8
|
-
import * as i0 from "@angular/core";
|
9
|
-
import * as i1 from "@angular/router";
|
10
|
-
import * as i2 from "../services/authentication.service";
|
11
|
-
let PublicGuard = class PublicGuard {
|
12
|
-
constructor(_router, _authenticationService) {
|
13
|
-
this._router = _router;
|
14
|
-
this._authenticationService = _authenticationService;
|
15
|
-
}
|
16
|
-
canActivate(route, state) {
|
17
|
-
if (!ObjectUtil.isNull(this._authenticationService.tokenValueLocalStorage)) {
|
18
|
-
return this._authenticationService.token.pipe(map(token => {
|
19
|
-
if (this._authenticationService.isValidToken(token)) {
|
20
|
-
this._router.navigate(['dashboard']);
|
21
|
-
return false;
|
22
|
-
}
|
23
|
-
return true;
|
24
|
-
}));
|
25
|
-
}
|
26
|
-
this._router.navigate(['dashboard']);
|
27
|
-
return of(false);
|
28
|
-
}
|
29
|
-
canActivateChild(route, state) {
|
30
|
-
return this.canActivate(route, state);
|
31
|
-
}
|
32
|
-
};
|
33
|
-
PublicGuard.ctorParameters = () => [
|
34
|
-
{ type: Router },
|
35
|
-
{ type: AuthenticationService }
|
36
|
-
];
|
37
|
-
PublicGuard.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function PublicGuard_Factory() { return new PublicGuard(i0.ɵɵinject(i1.Router), i0.ɵɵinject(i2.AuthenticationService)); }, token: PublicGuard, providedIn: "root" });
|
38
|
-
PublicGuard = __decorate([
|
39
|
-
Injectable({ providedIn: 'root' }),
|
40
|
-
__metadata("design:paramtypes", [Router,
|
41
|
-
AuthenticationService])
|
42
|
-
], PublicGuard);
|
43
|
-
export { PublicGuard };
|
44
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLmd1YXJkLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGdpcGlzaXN0ZW1hcy9uZy1jb3JlLyIsInNvdXJjZXMiOlsiY29yZS9ndWFyZHMvcHVibGljLmd1YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDckgsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHckMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDM0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7O0FBR2xELElBQWEsV0FBVyxHQUF4QixNQUFhLFdBQVc7SUFFcEIsWUFDWSxPQUFlLEVBQ2Ysc0JBQXVEO1FBRHZELFlBQU8sR0FBUCxPQUFPLENBQVE7UUFDZiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQWlDO0lBQy9ELENBQUM7SUFFTCxXQUFXLENBQUMsS0FBNkIsRUFBRSxLQUEwQjtRQUNqRSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsc0JBQXNCLENBQUMsRUFBRTtZQUN4RSxPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUN6QyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ1IsSUFBSSxJQUFJLENBQUMsc0JBQXNCLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxFQUFFO29CQUNqRCxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7b0JBQ3JDLE9BQU8sS0FBSyxDQUFDO2lCQUNoQjtnQkFDRCxPQUFPLElBQUksQ0FBQztZQUNoQixDQUFDLENBQUMsQ0FDTCxDQUFDO1NBQ0w7UUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7UUFDckMsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUVELGdCQUFnQixDQUFDLEtBQTZCLEVBQUUsS0FBMEI7UUFDdEUsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztJQUMxQyxDQUFDO0NBQ0osQ0FBQTs7WUF2QndCLE1BQU07WUFDUyxxQkFBcUI7OztBQUpoRCxXQUFXO0lBRHZCLFVBQVUsQ0FBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsQ0FBQztxQ0FJVixNQUFNO1FBQ1MscUJBQXFCO0dBSmhELFdBQVcsQ0EwQnZCO1NBMUJZLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBDYW5BY3RpdmF0ZSwgQ2FuQWN0aXZhdGVDaGlsZCwgUm91dGVyLCBSb3V0ZXJTdGF0ZVNuYXBzaG90IH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEJhc2VVc2VyIH0gZnJvbSAnLi4vbW9kZWxzL2Jhc2UtdXNlci5tb2RlbCc7XG5pbXBvcnQgeyBBdXRoZW50aWNhdGlvblNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9hdXRoZW50aWNhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IE9iamVjdFV0aWwgfSBmcm9tICcuLi91dGlscy9vYmplY3QudXRpbCc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgUHVibGljR3VhcmQgaW1wbGVtZW50cyBDYW5BY3RpdmF0ZSwgQ2FuQWN0aXZhdGVDaGlsZCB7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBfcm91dGVyOiBSb3V0ZXIsXG4gICAgICAgIHByaXZhdGUgX2F1dGhlbnRpY2F0aW9uU2VydmljZTogQXV0aGVudGljYXRpb25TZXJ2aWNlPEJhc2VVc2VyPlxuICAgICkgeyB9XG5cbiAgICBjYW5BY3RpdmF0ZShyb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgc3RhdGU6IFJvdXRlclN0YXRlU25hcHNob3QpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICAgICAgaWYgKCFPYmplY3RVdGlsLmlzTnVsbCh0aGlzLl9hdXRoZW50aWNhdGlvblNlcnZpY2UudG9rZW5WYWx1ZUxvY2FsU3RvcmFnZSkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9hdXRoZW50aWNhdGlvblNlcnZpY2UudG9rZW4ucGlwZShcbiAgICAgICAgICAgICAgICBtYXAodG9rZW4gPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5fYXV0aGVudGljYXRpb25TZXJ2aWNlLmlzVmFsaWRUb2tlbih0b2tlbikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZShbJ2Rhc2hib2FyZCddKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGUoWydkYXNoYm9hcmQnXSk7XG4gICAgICAgIHJldHVybiBvZihmYWxzZSk7XG4gICAgfVxuXG4gICAgY2FuQWN0aXZhdGVDaGlsZChyb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgc3RhdGU6IFJvdXRlclN0YXRlU25hcHNob3QpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2FuQWN0aXZhdGUocm91dGUsIHN0YXRlKTtcbiAgICB9XG59XG4iXX0=
|
@@ -1,46 +0,0 @@
|
|
1
|
-
import { __decorate, __metadata } from "tslib";
|
2
|
-
import { Injectable } from '@angular/core';
|
3
|
-
import { ActivatedRouteSnapshot, CanActivate, CanActivateChild, Router, RouterStateSnapshot } from '@angular/router';
|
4
|
-
import { of } from 'rxjs';
|
5
|
-
import { map } from 'rxjs/operators';
|
6
|
-
import { AuthenticationService } from '../services/authentication.service';
|
7
|
-
import { ObjectUtil } from '../utils/object.util';
|
8
|
-
import * as i0 from "@angular/core";
|
9
|
-
import * as i1 from "@angular/router";
|
10
|
-
import * as i2 from "../services/authentication.service";
|
11
|
-
var PublicGuard = /** @class */ (function () {
|
12
|
-
function PublicGuard(_router, _authenticationService) {
|
13
|
-
this._router = _router;
|
14
|
-
this._authenticationService = _authenticationService;
|
15
|
-
}
|
16
|
-
PublicGuard.prototype.canActivate = function (route, state) {
|
17
|
-
var _this = this;
|
18
|
-
if (!ObjectUtil.isNull(this._authenticationService.tokenValueLocalStorage)) {
|
19
|
-
return this._authenticationService.token.pipe(map(function (token) {
|
20
|
-
if (_this._authenticationService.isValidToken(token)) {
|
21
|
-
_this._router.navigate(['dashboard']);
|
22
|
-
return false;
|
23
|
-
}
|
24
|
-
return true;
|
25
|
-
}));
|
26
|
-
}
|
27
|
-
this._router.navigate(['dashboard']);
|
28
|
-
return of(false);
|
29
|
-
};
|
30
|
-
PublicGuard.prototype.canActivateChild = function (route, state) {
|
31
|
-
return this.canActivate(route, state);
|
32
|
-
};
|
33
|
-
PublicGuard.ctorParameters = function () { return [
|
34
|
-
{ type: Router },
|
35
|
-
{ type: AuthenticationService }
|
36
|
-
]; };
|
37
|
-
PublicGuard.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function PublicGuard_Factory() { return new PublicGuard(i0.ɵɵinject(i1.Router), i0.ɵɵinject(i2.AuthenticationService)); }, token: PublicGuard, providedIn: "root" });
|
38
|
-
PublicGuard = __decorate([
|
39
|
-
Injectable({ providedIn: 'root' }),
|
40
|
-
__metadata("design:paramtypes", [Router,
|
41
|
-
AuthenticationService])
|
42
|
-
], PublicGuard);
|
43
|
-
return PublicGuard;
|
44
|
-
}());
|
45
|
-
export { PublicGuard };
|
46
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLmd1YXJkLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGdpcGlzaXN0ZW1hcy9uZy1jb3JlLyIsInNvdXJjZXMiOlsiY29yZS9ndWFyZHMvcHVibGljLmd1YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDckgsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHckMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDM0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7O0FBR2xEO0lBRUkscUJBQ1ksT0FBZSxFQUNmLHNCQUF1RDtRQUR2RCxZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ2YsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUFpQztJQUMvRCxDQUFDO0lBRUwsaUNBQVcsR0FBWCxVQUFZLEtBQTZCLEVBQUUsS0FBMEI7UUFBckUsaUJBY0M7UUFiRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsc0JBQXNCLENBQUMsRUFBRTtZQUN4RSxPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUN6QyxHQUFHLENBQUMsVUFBQSxLQUFLO2dCQUNMLElBQUksS0FBSSxDQUFDLHNCQUFzQixDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsRUFBRTtvQkFDakQsS0FBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO29CQUNyQyxPQUFPLEtBQUssQ0FBQztpQkFDaEI7Z0JBQ0QsT0FBTyxJQUFJLENBQUM7WUFDaEIsQ0FBQyxDQUFDLENBQ0wsQ0FBQztTQUNMO1FBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQ3JDLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxzQ0FBZ0IsR0FBaEIsVUFBaUIsS0FBNkIsRUFBRSxLQUEwQjtRQUN0RSxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzFDLENBQUM7O2dCQXRCb0IsTUFBTTtnQkFDUyxxQkFBcUI7OztJQUpoRCxXQUFXO1FBRHZCLFVBQVUsQ0FBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsQ0FBQzt5Q0FJVixNQUFNO1lBQ1MscUJBQXFCO09BSmhELFdBQVcsQ0EwQnZCO3NCQXBDRDtDQW9DQyxBQTFCRCxJQTBCQztTQTFCWSxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgQ2FuQWN0aXZhdGUsIENhbkFjdGl2YXRlQ2hpbGQsIFJvdXRlciwgUm91dGVyU3RhdGVTbmFwc2hvdCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBCYXNlVXNlciB9IGZyb20gJy4uL21vZGVscy9iYXNlLXVzZXIubW9kZWwnO1xuaW1wb3J0IHsgQXV0aGVudGljYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvYXV0aGVudGljYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBPYmplY3RVdGlsIH0gZnJvbSAnLi4vdXRpbHMvb2JqZWN0LnV0aWwnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIFB1YmxpY0d1YXJkIGltcGxlbWVudHMgQ2FuQWN0aXZhdGUsIENhbkFjdGl2YXRlQ2hpbGQge1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgX3JvdXRlcjogUm91dGVyLFxuICAgICAgICBwcml2YXRlIF9hdXRoZW50aWNhdGlvblNlcnZpY2U6IEF1dGhlbnRpY2F0aW9uU2VydmljZTxCYXNlVXNlcj5cbiAgICApIHsgfVxuXG4gICAgY2FuQWN0aXZhdGUocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIHN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90KTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgICAgIGlmICghT2JqZWN0VXRpbC5pc051bGwodGhpcy5fYXV0aGVudGljYXRpb25TZXJ2aWNlLnRva2VuVmFsdWVMb2NhbFN0b3JhZ2UpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fYXV0aGVudGljYXRpb25TZXJ2aWNlLnRva2VuLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKHRva2VuID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX2F1dGhlbnRpY2F0aW9uU2VydmljZS5pc1ZhbGlkVG9rZW4odG9rZW4pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGUoWydkYXNoYm9hcmQnXSk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fcm91dGVyLm5hdmlnYXRlKFsnZGFzaGJvYXJkJ10pO1xuICAgICAgICByZXR1cm4gb2YoZmFsc2UpO1xuICAgIH1cblxuICAgIGNhbkFjdGl2YXRlQ2hpbGQocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIHN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90KTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNhbkFjdGl2YXRlKHJvdXRlLCBzdGF0ZSk7XG4gICAgfVxufVxuIl19
|