tnx-shared 5.3.363 → 5.3.365
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/tnx-shared.umd.js +292 -255
- package/bundles/tnx-shared.umd.js.map +1 -1
- package/bundles/tnx-shared.umd.min.js +1 -1
- package/bundles/tnx-shared.umd.min.js.map +1 -1
- package/components/common-lib/common-lib.component.d.ts +14 -1
- package/components/common-lib/common-lib.component.d.ts.map +1 -1
- package/components/file-explorer/services/file-object.service.d.ts +1 -1
- package/components/file-explorer/services/file-object.service.d.ts.map +1 -1
- package/esm2015/components/common-lib/common-lib.component.js +45 -3
- package/esm2015/components/file-explorer/services/file-object.service.js +3 -3
- package/fesm2015/tnx-shared.js +266 -230
- package/fesm2015/tnx-shared.js.map +1 -1
- package/package.json +2 -2
- package/tnx-shared.metadata.json +1 -1
|
@@ -1,12 +1,25 @@
|
|
|
1
1
|
import { ElementRef, OnInit } from '@angular/core';
|
|
2
2
|
import { ComponentContextService } from '../../app-context/component-context.service';
|
|
3
|
+
import { ActivatedRoute, Router } from '@angular/router';
|
|
4
|
+
import { ApplicationContextService } from '../../app-context/application-context.service';
|
|
5
|
+
import { StorageService } from '../../services/storage.service';
|
|
6
|
+
import { ModuleConfigService } from '../../services/module-config.service';
|
|
3
7
|
export declare class CommonLibComponent implements OnInit {
|
|
4
8
|
_componentContextService: ComponentContextService;
|
|
9
|
+
private _router;
|
|
10
|
+
private _activatedRoute;
|
|
11
|
+
private _applicationContext;
|
|
12
|
+
private _storageService;
|
|
13
|
+
private _moduleConfigService;
|
|
5
14
|
okButton: ElementRef;
|
|
6
15
|
cancelButton: ElementRef;
|
|
7
16
|
showRejectConfirm: boolean;
|
|
8
|
-
|
|
17
|
+
rootData: any;
|
|
18
|
+
environment: any;
|
|
19
|
+
appCode: string;
|
|
20
|
+
constructor(_componentContextService: ComponentContextService, _router: Router, _activatedRoute: ActivatedRoute, _applicationContext: ApplicationContextService, _storageService: StorageService, _moduleConfigService: ModuleConfigService);
|
|
9
21
|
ngOnInit(): void;
|
|
10
22
|
focusTrap(event: any, direct: any): void;
|
|
23
|
+
private addGuard;
|
|
11
24
|
}
|
|
12
25
|
//# sourceMappingURL=common-lib.component.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common-lib.component.d.ts","sourceRoot":"","sources":["../../../../projects/tnx-shared/src/lib/components/common-lib/common-lib.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,UAAU,EAAE,MAAM,EAAa,MAAM,eAAe,CAAC;AACzE,OAAO,EAAE,uBAAuB,EAAE,MAAM,6CAA6C,CAAC;
|
|
1
|
+
{"version":3,"file":"common-lib.component.d.ts","sourceRoot":"","sources":["../../../../projects/tnx-shared/src/lib/components/common-lib/common-lib.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,UAAU,EAAE,MAAM,EAAa,MAAM,eAAe,CAAC;AACzE,OAAO,EAAE,uBAAuB,EAAE,MAAM,6CAA6C,CAAC;AAEtF,OAAO,EAAE,cAAc,EAAS,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAGhE,OAAO,EAAE,yBAAyB,EAAE,MAAM,+CAA+C,CAAC;AAC1F,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAE3E,qBAMa,kBAAmB,YAAW,MAAM;IASlC,wBAAwB,EAAE,uBAAuB;IACxD,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,mBAAmB;IAC3B,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,oBAAoB;IAbT,QAAQ,EAAE,UAAU,CAAC;IACjB,YAAY,EAAE,UAAU,CAAC;IACpD,iBAAiB,UAAQ;IACzB,QAAQ,EAAE,GAAG,CAAC;IACd,WAAW,EAAE,GAAG,CAAC;IACjB,OAAO,SAAM;gBAGF,wBAAwB,EAAE,uBAAuB,EAChD,OAAO,EAAE,MAAM,EACf,eAAe,EAAE,cAAc,EAC/B,mBAAmB,EAAE,yBAAyB,EAC9C,eAAe,EAAE,cAAc,EAC/B,oBAAoB,EAAE,mBAAmB;IAiBrD,QAAQ;IAQR,SAAS,CAAC,KAAK,KAAA,EAAE,MAAM,KAAA;IAUvB,OAAO,CAAC,QAAQ;CAanB"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { HttpClient } from '@angular/common/http';
|
|
2
2
|
import { Injector } from '@angular/core';
|
|
3
|
+
import { FileTypeFlag } from '../../../models/file-type';
|
|
3
4
|
import { ResponseResult } from '../../../models/response-result';
|
|
4
5
|
import { BaseService } from '../../../services/base.service';
|
|
5
6
|
import { ModuleConfigService } from '../../../services/module-config.service';
|
|
6
|
-
import { FileTypeFlag } from '../../../models/file-type';
|
|
7
7
|
export declare class FileObjectService extends BaseService {
|
|
8
8
|
private _moduleConfigService;
|
|
9
9
|
thumborEndpoint: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-object.service.d.ts","sourceRoot":"","sources":["../../../../../projects/tnx-shared/src/lib/components/file-explorer/services/file-object.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAc,QAAQ,EAAE,MAAM,eAAe,CAAC;AAErD,OAAO,
|
|
1
|
+
{"version":3,"file":"file-object.service.d.ts","sourceRoot":"","sources":["../../../../../projects/tnx-shared/src/lib/components/file-explorer/services/file-object.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAc,QAAQ,EAAE,MAAM,eAAe,CAAC;AAErD,OAAO,EAAmC,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC1F,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAC;AAE9E,qBAGa,iBAAkB,SAAQ,WAAW;IAM1C,OAAO,CAAC,oBAAoB;IALhC,eAAe,SAAM;IACrB,uBAAuB,SAAM;IAC7B,gBAAgB,SAAM;gBAEV,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EACpC,oBAAoB,EAAE,mBAAmB;IAQrD,qBAAqB,CAAC,MAAM,KAAA,EAAE,KAAK,SAAI,EAAE,MAAM,SAAI;IAKnD,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAInC,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM;IAKvD,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM;IAKnD,YAAY;IAIZ,oBAAoB;IAIpB,4BAA4B;IAI5B,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IA6BhD,gBAAgB,CAAC,QAAQ,EAAE,MAAM;IAcjC,WAAW,CAAC,aAAa,EAAE,MAAM;IAgCjC,cAAc,CAAC,QAAQ,EAAE,MAAM;IAe/B,UAAU,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,KAAA;IAItC,0BAA0B,CAAC,QAAQ,KAAA;IAMnC,qBAAqB,CAAC,KAAK,KAAA;IAM3B,0BAA0B,CAAC,KAAK,KAAA;IAMhC,iBAAiB,CAAC,oBAAoB,EAAE,QAAQ,GAAG,OAAO,CAAC,cAAc,CAAC;IAM1E,oBAAoB,CAAC,mBAAmB,EAAE,GAAG,GAAG,OAAO,CAAC,cAAc,CAAC;IAMvE,yBAAyB,CAAC,aAAa,EAAE,MAAM;IAK/C,qBAAqB,CAAC,eAAe,EAAE,YAAY;IAoBnD,0BAA0B,CAAC,eAAe,EAAE,YAAY;IAoBxD,mBAAmB,CAAC,IAAI,KAAA;CAM3B"}
|
|
@@ -1,15 +1,39 @@
|
|
|
1
1
|
import { Component, ElementRef, ViewChild } from '@angular/core';
|
|
2
2
|
import { ComponentContextService } from '../../app-context/component-context.service';
|
|
3
3
|
import { ComCtxConstants } from '../../configs/component-context.constant';
|
|
4
|
+
import { ActivatedRoute, Router } from '@angular/router';
|
|
5
|
+
import { GenericGuardChildService } from '../../services/generic-guard-child.service';
|
|
6
|
+
import { GenericGuardService } from '../../services/generic-guard.service';
|
|
7
|
+
import { ApplicationContextService } from '../../app-context/application-context.service';
|
|
8
|
+
import { StorageService } from '../../services/storage.service';
|
|
9
|
+
import { ModuleConfigService } from '../../services/module-config.service';
|
|
4
10
|
export class CommonLibComponent {
|
|
5
|
-
constructor(_componentContextService) {
|
|
11
|
+
constructor(_componentContextService, _router, _activatedRoute, _applicationContext, _storageService, _moduleConfigService) {
|
|
6
12
|
this._componentContextService = _componentContextService;
|
|
13
|
+
this._router = _router;
|
|
14
|
+
this._activatedRoute = _activatedRoute;
|
|
15
|
+
this._applicationContext = _applicationContext;
|
|
16
|
+
this._storageService = _storageService;
|
|
17
|
+
this._moduleConfigService = _moduleConfigService;
|
|
7
18
|
this.showRejectConfirm = true;
|
|
19
|
+
this.appCode = '';
|
|
20
|
+
this.environment = this._moduleConfigService.getConfig().environment;
|
|
21
|
+
this.appCode = this._moduleConfigService.getConfig().appCode;
|
|
8
22
|
this._componentContextService.subscribe(ComCtxConstants.ROOT.SHOW_REJECT_CONFIRM, data => {
|
|
9
23
|
this.showRejectConfirm = data;
|
|
10
24
|
});
|
|
25
|
+
this._applicationContext.addRootContext(this._componentContextService, _activatedRoute);
|
|
26
|
+
this._componentContextService.data.personalize = this._storageService.getObjectAny('personalize');
|
|
27
|
+
if (!this._componentContextService.data.personalize) {
|
|
28
|
+
this._componentContextService.data.personalize = {};
|
|
29
|
+
}
|
|
11
30
|
}
|
|
12
31
|
ngOnInit() {
|
|
32
|
+
const root = this._applicationContext.getRootContext();
|
|
33
|
+
this.rootData = root.data;
|
|
34
|
+
root.data.currentAppMetadata = this.environment.appMetadata.appSwitcher.find(x => x.code.toLowerCase() == this.appCode.toLowerCase());
|
|
35
|
+
root.data.appOrigin = this.environment.enableBaseHref ? `/${root.data.currentAppMetadata.code.toLowerCase()}/` : '/';
|
|
36
|
+
this._router.config.forEach(route => this.addGuard(route));
|
|
13
37
|
}
|
|
14
38
|
focusTrap(event, direct) {
|
|
15
39
|
event.preventDefault();
|
|
@@ -20,6 +44,19 @@ export class CommonLibComponent {
|
|
|
20
44
|
this.cancelButton.nativeElement.focus();
|
|
21
45
|
}
|
|
22
46
|
}
|
|
47
|
+
addGuard(route) {
|
|
48
|
+
if (route.path === '' || route.path === '/') {
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
if (route.loadChildren) {
|
|
53
|
+
route.canActivateChild = route.canActivateChild ? route.canActivateChild : [GenericGuardChildService];
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
route.canActivate = route.canActivate ? route.canActivate : [GenericGuardService];
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
23
60
|
}
|
|
24
61
|
CommonLibComponent.decorators = [
|
|
25
62
|
{ type: Component, args: [{
|
|
@@ -30,10 +67,15 @@ CommonLibComponent.decorators = [
|
|
|
30
67
|
},] }
|
|
31
68
|
];
|
|
32
69
|
CommonLibComponent.ctorParameters = () => [
|
|
33
|
-
{ type: ComponentContextService }
|
|
70
|
+
{ type: ComponentContextService },
|
|
71
|
+
{ type: Router },
|
|
72
|
+
{ type: ActivatedRoute },
|
|
73
|
+
{ type: ApplicationContextService },
|
|
74
|
+
{ type: StorageService },
|
|
75
|
+
{ type: ModuleConfigService }
|
|
34
76
|
];
|
|
35
77
|
CommonLibComponent.propDecorators = {
|
|
36
78
|
okButton: [{ type: ViewChild, args: ['okButton',] }],
|
|
37
79
|
cancelButton: [{ type: ViewChild, args: ['cancelButton',] }]
|
|
38
80
|
};
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLWxpYi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90bngtc2hhcmVkL3NyYy9saWIvY29tcG9uZW50cy9jb21tb24tbGliL2NvbW1vbi1saWIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFVLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUN0RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDM0UsT0FBTyxFQUFFLGNBQWMsRUFBUyxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUN0RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUMxRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDaEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFRM0UsTUFBTSxPQUFPLGtCQUFrQjtJQVEzQixZQUNXLHdCQUFpRCxFQUNoRCxPQUFlLEVBQ2YsZUFBK0IsRUFDL0IsbUJBQThDLEVBQzlDLGVBQStCLEVBQy9CLG9CQUF5QztRQUwxQyw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQXlCO1FBQ2hELFlBQU8sR0FBUCxPQUFPLENBQVE7UUFDZixvQkFBZSxHQUFmLGVBQWUsQ0FBZ0I7UUFDL0Isd0JBQW1CLEdBQW5CLG1CQUFtQixDQUEyQjtRQUM5QyxvQkFBZSxHQUFmLGVBQWUsQ0FBZ0I7UUFDL0IseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFxQjtRQVhyRCxzQkFB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RjtTQUNKO0lBQ0wsQ0FBQzs7O1lBbkVKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsWUFBWTtnQkFDdEIsbXZCQUEwQztnQkFFMUMsU0FBUyxFQUFFLENBQUMsdUJBQXVCLENBQUM7O2FBQ3ZDOzs7WUFkUSx1QkFBdUI7WUFFQSxNQUFNO1lBQTdCLGNBQWM7WUFHZCx5QkFBeUI7WUFDekIsY0FBYztZQUNkLG1CQUFtQjs7O3VCQVN2QixTQUFTLFNBQUMsVUFBVTsyQkFDcEIsU0FBUyxTQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21wb25lbnRDb250ZXh0U2VydmljZSB9IGZyb20gJy4uLy4uL2FwcC1jb250ZXh0L2NvbXBvbmVudC1jb250ZXh0LnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29tQ3R4Q29uc3RhbnRzIH0gZnJvbSAnLi4vLi4vY29uZmlncy9jb21wb25lbnQtY29udGV4dC5jb25zdGFudCc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBHZW5lcmljR3VhcmRDaGlsZFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9nZW5lcmljLWd1YXJkLWNoaWxkLnNlcnZpY2UnO1xuaW1wb3J0IHsgR2VuZXJpY0d1YXJkU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2dlbmVyaWMtZ3VhcmQuc2VydmljZSc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbkNvbnRleHRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vYXBwLWNvbnRleHQvYXBwbGljYXRpb24tY29udGV4dC5zZXJ2aWNlJztcbmltcG9ydCB7IFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc3RvcmFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IE1vZHVsZUNvbmZpZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9tb2R1bGUtY29uZmlnLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2NvbW1vbi1saWInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9jb21tb24tbGliLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9jb21tb24tbGliLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgcHJvdmlkZXJzOiBbQ29tcG9uZW50Q29udGV4dFNlcnZpY2VdXG59KVxuZXhwb3J0IGNsYXNzIENvbW1vbkxpYkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQFZpZXdDaGlsZCgnb2tCdXR0b24nKSBva0J1dHRvbjogRWxlbWVudFJlZjtcbiAgICBAVmlld0NoaWxkKCdjYW5jZWxCdXR0b24nKSBjYW5jZWxCdXR0b246IEVsZW1lbnRSZWY7XG4gICAgc2hvd1JlamVjdENvbmZpcm0gPSB0cnVlO1xuICAgIHJvb3REYXRhOiBhbnk7XG4gICAgZW52aXJvbm1lbnQ6IGFueTtcbiAgICBhcHBDb2RlID0gJyc7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIF9jb21wb25lbnRDb250ZXh0U2VydmljZTogQ29tcG9uZW50Q29udGV4dFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgX3JvdXRlcjogUm91dGVyLFxuICAgICAgICBwcml2YXRlIF9hY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgICAgIHByaXZhdGUgX2FwcGxpY2F0aW9uQ29udGV4dDogQXBwbGljYXRpb25Db250ZXh0U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBfc3RvcmFnZVNlcnZpY2U6IFN0b3JhZ2VTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIF9tb2R1bGVDb25maWdTZXJ2aWNlOiBNb2R1bGVDb25maWdTZXJ2aWNlLFxuICAgICkge1xuICAgICAgICB0aGlzLmVudmlyb25tZW50ID0gdGhpcy5fbW9kdWxlQ29uZmlnU2VydmljZS5nZXRDb25maWcoKS5lbnZpcm9ubWVudDtcbiAgICAgICAgdGhpcy5hcHBDb2RlID0gdGhpcy5fbW9kdWxlQ29uZmlnU2VydmljZS5nZXRDb25maWcoKS5hcHBDb2RlO1xuICAgICAgICB0aGlzLl9jb21wb25lbnRDb250ZXh0U2VydmljZS5zdWJzY3JpYmUoQ29tQ3R4Q29uc3RhbnRzLlJPT1QuU0hPV19SRUpFQ1RfQ09ORklSTSwgZGF0YSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNob3dSZWplY3RDb25maXJtID0gZGF0YTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuX2FwcGxpY2F0aW9uQ29udGV4dC5hZGRSb290Q29udGV4dChcbiAgICAgICAgICAgIHRoaXMuX2NvbXBvbmVudENvbnRleHRTZXJ2aWNlLFxuICAgICAgICAgICAgX2FjdGl2YXRlZFJvdXRlLFxuICAgICAgICApO1xuICAgICAgICB0aGlzLl9jb21wb25lbnRDb250ZXh0U2VydmljZS5kYXRhLnBlcnNvbmFsaXplID0gdGhpcy5fc3RvcmFnZVNlcnZpY2UuZ2V0T2JqZWN0QW55KCdwZXJzb25hbGl6ZScpO1xuICAgICAgICBpZiAoIXRoaXMuX2NvbXBvbmVudENvbnRleHRTZXJ2aWNlLmRhdGEucGVyc29uYWxpemUpIHtcbiAgICAgICAgICAgIHRoaXMuX2NvbXBvbmVudENvbnRleHRTZXJ2aWNlLmRhdGEucGVyc29uYWxpemUgPSB7fTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBjb25zdCByb290ID0gdGhpcy5fYXBwbGljYXRpb25Db250ZXh0LmdldFJvb3RDb250ZXh0KCk7XG4gICAgICAgIHRoaXMucm9vdERhdGEgPSByb290LmRhdGE7XG4gICAgICAgIHJvb3QuZGF0YS5jdXJyZW50QXBwTWV0YWRhdGEgPSB0aGlzLmVudmlyb25tZW50LmFwcE1ldGFkYXRhLmFwcFN3aXRjaGVyLmZpbmQoeCA9PiB4LmNvZGUudG9Mb3dlckNhc2UoKSA9PSB0aGlzLmFwcENvZGUudG9Mb3dlckNhc2UoKSk7XG4gICAgICAgIHJvb3QuZGF0YS5hcHBPcmlnaW4gPSB0aGlzLmVudmlyb25tZW50LmVuYWJsZUJhc2VIcmVmID8gYC8ke3Jvb3QuZGF0YS5jdXJyZW50QXBwTWV0YWRhdGEuY29kZS50b0xvd2VyQ2FzZSgpfS9gIDogJy8nO1xuICAgICAgICB0aGlzLl9yb3V0ZXIuY29uZmlnLmZvckVhY2gocm91dGUgPT4gdGhpcy5hZGRHdWFyZChyb3V0ZSkpO1xuICAgIH1cblxuICAgIGZvY3VzVHJhcChldmVudCwgZGlyZWN0KSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGlmIChkaXJlY3QpIHtcbiAgICAgICAgICAgIHRoaXMub2tCdXR0b24ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5jYW5jZWxCdXR0b24ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhZGRHdWFyZChyb3V0ZTogUm91dGUpOiB2b2lkIHtcbiAgICAgICAgaWYgKHJvdXRlLnBhdGggPT09ICcnIHx8IHJvdXRlLnBhdGggPT09ICcvJykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgaWYgKHJvdXRlLmxvYWRDaGlsZHJlbikge1xuICAgICAgICAgICAgICAgIHJvdXRlLmNhbkFjdGl2YXRlQ2hpbGQgPSByb3V0ZS5jYW5BY3RpdmF0ZUNoaWxkID8gcm91dGUuY2FuQWN0aXZhdGVDaGlsZCA6IFtHZW5lcmljR3VhcmRDaGlsZFNlcnZpY2VdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgcm91dGUuY2FuQWN0aXZhdGUgPSByb3V0ZS5jYW5BY3RpdmF0ZSA/IHJvdXRlLmNhbkFjdGl2YXRlIDogW0dlbmVyaWNHdWFyZFNlcnZpY2VdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIl19
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { HttpClient } from '@angular/common/http';
|
|
2
2
|
import { Injectable, Injector } from '@angular/core';
|
|
3
3
|
import { FILE_TYPES } from '../../../classes/constants';
|
|
4
|
+
import { ExtensionsConst, FileExtensions, FileTypeFlag } from '../../../models/file-type';
|
|
4
5
|
import { BaseService } from '../../../services/base.service';
|
|
5
6
|
import { ModuleConfigService } from '../../../services/module-config.service';
|
|
6
|
-
import { ExtensionsConst, FileExtensions, FileTypeFlag } from '../../../models/file-type';
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
8
|
import * as i1 from "@angular/common/http";
|
|
9
9
|
import * as i2 from "../../../services/module-config.service";
|
|
@@ -120,7 +120,7 @@ export class FileObjectService extends BaseService {
|
|
|
120
120
|
const arr = fileExtension.split('.');
|
|
121
121
|
fileExtension = arr[arr.length - 1];
|
|
122
122
|
}
|
|
123
|
-
if ((/(pdf|doc|docx)$/i).test(fileExtension)) {
|
|
123
|
+
if ((/(pdf|doc|docx|xlsx|xls)$/i).test(fileExtension)) {
|
|
124
124
|
return true;
|
|
125
125
|
}
|
|
126
126
|
}
|
|
@@ -208,4 +208,4 @@ FileObjectService.ctorParameters = () => [
|
|
|
208
208
|
{ type: Injector },
|
|
209
209
|
{ type: ModuleConfigService }
|
|
210
210
|
];
|
|
211
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1vYmplY3Quc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RueC1zaGFyZWQvc3JjL2xpYi9jb21wb25lbnRzL2ZpbGUtZXhwbG9yZXIvc2VydmljZXMvZmlsZS1vYmplY3Quc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXhELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM3RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7OztBQUsxRixNQUFNLE9BQU8saUJBQWtCLFNBQVEsV0FBVztJQUs5QyxZQUFZLElBQWdCLEVBQUUsUUFBa0IsRUFDcEMsb0JBQXlDO1FBQ2pELEtBQUssQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLEdBQUcsb0JBQW9CLENBQUMsU0FBUyxFQUFFLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxZQUFZLElBQUksb0JBQW9CLENBQUMsU0FBUyxFQUFFLENBQUMsV0FBVyxDQUFDLFVBQVUsYUFBYSxDQUFDLENBQUM7UUFEOUoseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFxQjtRQUxyRCxvQkFBZSxHQUFHLEVBQUUsQ0FBQztRQUNyQiw0QkFBdUIsR0FBRyxFQUFFLENBQUM7UUFDN0IscUJBQWdCLEdBQUcsRUFBRSxDQUFDO1FBS2xCLElBQUksQ0FBQyxRQUFRLEdBQUcsb0JBQW9CLENBQUMsU0FBUyxFQUFFLENBQUMsV0FBVyxDQUFDLFNB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Q0QsSUFBSSxDQUFDLGVBQWUsR0FBRyxZQUFZLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzVDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxlQUFlLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDakQ7UUFDRCxJQUFJLENBQUMsZUFBZSxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDOUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLGVBQWUsQ0FBQyxlQUFlLENBQUMsQ0FBQztTQUNuRDtRQUNELElBQUksQ0FBQyxlQUFlLEdBQUcsWUFBWSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNuRCxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsZUFBZSxDQUFDLG9CQUFvQixDQUFDLENBQUM7U0FDeEQ7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0lBRUQsbUJBQW1CLENBQUMsSUFBSTtRQUNwQixNQUFNLFFBQVEsR0FBRyxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQ2hDLFFBQVEsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQy9CLE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLFVBQVUsc0JBQXNCLENBQUM7UUFDckQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsUUFBUSxFQUFFLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDaEYsQ0FBQzs7OztZQTlOSixVQUFVLFNBQUM7Z0JBQ1IsVUFBVSxFQUFFLE1BQU07YUFDckI7OztZQVZRLFVBQVU7WUFDRSxRQUFRO1lBSXBCLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRklMRV9UWVBFUyB9IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvY29uc3RhbnRzJztcbmltcG9ydCB7IFJlc3BvbnNlUmVzdWx0IH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL3Jlc3BvbnNlLXJlc3VsdCc7XG5pbXBvcnQgeyBCYXNlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2Jhc2Uuc2VydmljZSc7XG5pbXBvcnQgeyBNb2R1bGVDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbW9kdWxlLWNvbmZpZy5zZXJ2aWNlJztcbmltcG9ydCB7IEV4dGVuc2lvbnNDb25zdCwgRmlsZUV4dGVuc2lvbnMsIEZpbGVUeXBlRmxhZyB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9maWxlLXR5cGUnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEZpbGVPYmplY3RTZXJ2aWNlIGV4dGVuZHMgQmFzZVNlcnZpY2Uge1xuICAgIHRodW1ib3JFbmRwb2ludCA9ICcnO1xuICAgIGZpbGVXaXRoVGh1bWJvckVuZHBvaW50ID0gJyc7XG4gICAgZmlsZVBhdGhFbmRwb2ludCA9ICcnO1xuXG4gICAgY29uc3RydWN0b3IoaHR0cDogSHR0cENsaWVudCwgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICAgICBwcml2YXRlIF9tb2R1bGVDb25maWdTZXJ2aWNlOiBNb2R1bGVDb25maWdTZXJ2aWNlKSB7XG4gICAgICAgIHN1cGVyKGh0dHAsIGluamVjdG9yLCBgJHtfbW9kdWxlQ29uZmlnU2VydmljZS5nZXRDb25maWcoKS5lbnZpcm9ubWVudC5hcGlEb21haW4uZmlsZUVuZHBvaW50fS8ke19tb2R1bGVDb25maWdTZXJ2aWNlLmdldENvbmZpZygpLmVudmlyb25tZW50LmFwaVZlcnNpb259L0ZpbGVPYmplY3RgKTtcbiAgICAgICAgdGhpcy5lbmRQb2ludCA9IF9tb2R1bGVDb25maWdTZXJ2aWNlLmdldENvbmZpZygpLmVudmlyb25tZW50LmFwaURvbWFpbi5maWxlRW5kcG9pbnQ7XG4gICAgICAgIHRoaXMuZmlsZVdpdGhUaHVtYm9yRW5kcG9pbnQgPSBfbW9kdWxlQ29uZmlnU2VydmljZS5nZXRDb25maWcoKS5lbnZpcm9ubWVudC5hcGlEb21haW4uZmlsZVdpdGhUaHVtYm9yRW5kcG9pbnQ7XG4gICAgICAgIHRoaXMudGh1bWJvckVuZHBvaW50ID0gX21vZHVsZUNvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnKCkuZW52aXJvbm1lbnQuYXBpRG9tYWluLnRodW1ib3I7XG4gICAgICAgIHRoaXMuZmlsZVBhdGhFbmRwb2ludCA9IF9tb2R1bGVDb25maWdTZXJ2aWNlLmdldENvbmZpZygpLmVudmlyb25tZW50LmFwaURvbWFpbi5maWxlUGF0aEVuZHBvaW50O1xuICAgIH1cblxuICAgIGdldEZpbGVVcmxXaXRoVGh1bWJvcihmaWxlSWQsIHdpZHRoID0gMCwgaGVpZ2h0ID0gMCkge1xuICAgICAgICBjb25zdCB1cmwgPSBgJHt0aGlzLnRodW1ib3JFbmRwb2ludH0vdW5zYWZlLyR7d2lkdGh9eCR7aGVpZ2h0fS9zbWFydC8ke3RoaXMuZmlsZVdpdGhUaHVtYm9yRW5kcG9pbnR9L3Y1L0ZpbGVPYmplY3QvcHVibGljLyR7ZmlsZUlkfS9kb3dubG9hZGA7XG4gICAgICAgIHJldHVybiB1cmw7XG4gICAgfVxuXG4gICAgZ2V0VXJsSW1hZ2UoZmlsZUlkOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYCR7dGhpcy5zZXJ2aWNlVXJpfS9wdWJsaWMvJHtmaWxlSWR9L0Rvd25sb2FkYDtcbiAgICB9XG5cbiAgICBjb3B5TXVsdGlwbGVGaWxlKGlkc0ZpbGU6IHN0cmluZ1tdLCBpZERlc0ZvbGRlcjogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke3RoaXMuc2VydmljZVVyaX0vQ29weU11bHRpcGxlRmlsZT9wYXJlbnRGb2xkZXJJZD0ke2lkRGVzRm9sZGVyfWA7XG4gICAgICAgIHJldHVybiB0aGlzLmRlZmF1bHRQb3N0KHVybCwgaWRzRmlsZSk7XG4gICAgfVxuXG4gICAgY29weUZpbGVCeUhhc2goaGFzaDogc3RyaW5nLCBwYXJlbnRGb2xkZXJJZDogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke3RoaXMuc2VydmljZVVyaX0vQ29weUZpbGVGcm9tSGFzaD9oYXNoPSR7aGFzaH0mcGFyZW50Rm9sZGVySWQ9JHtwYXJlbnRGb2xkZXJJZH1gO1xuICAgICAgICByZXR1cm4gdGhpcy5kZWZhdWx0R2V0KHVybCk7XG4gICAgfVxuXG4gICAgZ2V0VXBsb2FkVXJsKCkge1xuICAgICAgICByZXR1cm4gYCR7dGhpcy5zZXJ2aWNlVXJpfS9VcGxvYWRGaWxlSW50b0ZvbGRlcmA7XG4gICAgfVxuXG4gICAgZ2V0VXBsb2FkTXVsdGlwbGVVcmwoKSB7XG4gICAgICAgIHJldHVybiBgJHt0aGlzLnNlcnZpY2VVcml9L1VwbG9hZEZpbGVzSW50b0ZvbGRlcmA7XG4gICAgfVxuXG4gICAgZ2V0VXBsb2FkSW50b1NoYXJlZEZvbGRlclVybCgpIHtcbiAgICAgICAgcmV0dXJuIGAke3RoaXMuc2VydmljZVVyaX0vVXBsb2FkRmlsZUludG9TaGFyZWRGb2xkZXJgO1xuICAgIH1cblxuICAgIGlzU3VwcG9ydGVkVmlld09ubGluZShmaWxlTmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIGlmIChmaWxlTmFtZS5sYXN0SW5kZXhPZignLicpID09PSAtMSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZmlsZVR5cGUgPSBmaWxlTmFtZS5zdWJzdHJpbmcoZmlsZU5hbWUubGFzdEluZGV4T2YoJy4nKSArIDEpO1xuXG4gICAgICAgIGlmICgoLyhnaWZ8anBnfGpwZWd8dGlmZnxwbmcpJC9pKS50ZXN0KGZpbGVUeXBlKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoKC8oZG9jfGRvY218ZG9jeHxkb3R8ZG90bXxkb3R4fGVwdWJ8Zm9kdHxodG18aHRtbHxtaHR8b2R0fG90dHxwZGZ8cnRmfHR4dHxkanZ1fHhwcykkL2kpLnRlc3QoZmlsZVR5cGUpKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICgoLyhjc3Z8Zm9kc3xvZHN8b3RzfHhsc3x4bHNtfHhsc3h8eGx0fHhsdG18eGx0eCkkL2kpLnRlc3QoZmlsZVR5cGUpKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICgoLyhmb2RwfG9kcHxvdHB8cG90fHBvdG18cG90eHxwcHN8cHBzbXxwcHN4fHBwdHxwcHRtfHBwdHgpJC9pKS50ZXN0KGZpbGVUeXBlKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoKC8obXA0fG1vdnxhdml8d212fHZvYnxybXxhc2Z8M2dwKSQvaSkudGVzdChmaWxlVHlwZSkpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKCgvKG1wM3x3bWF8d2F2fHdtdnxvZ2cpJC9pKS50ZXN0KGZpbGVUeXBlKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgZ2V0RmlsZUV4dGVuc2lvbihmaWxlTmFtZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICghZmlsZU5hbWUpIHtcbiAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgfVxuICAgICAgICBmaWxlTmFtZSA9IGZpbGVOYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIGNvbnN0IGFyciA9IGZpbGVOYW1lLnNwbGl0KCcuJyk7XG4gICAgICAgIGlmIChhcnIubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgcmV0dXJuIGFyclthcnIubGVuZ3RoIC0gMV07XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRGaWxlVHlwZShmaWxlRXh0ZW5zaW9uOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKGZpbGVFeHRlbnNpb24pIHtcbiAgICAgICAgICAgIGZpbGVFeHRlbnNpb24gPSBmaWxlRXh0ZW5zaW9uLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICBpZiAoZmlsZUV4dGVuc2lvbi5pbmRleE9mKCcuJykgPiAtMSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGFyciA9IGZpbGVFeHRlbnNpb24uc3BsaXQoJy4nKTtcbiAgICAgICAgICAgICAgICBmaWxlRXh0ZW5zaW9uID0gYXJyW2Fyci5sZW5ndGggLSAxXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICgoLyhnaWZ8anBnfGpwZWd8dGlmZnxwbmcpJC9pKS50ZXN0KGZpbGVFeHRlbnNpb24pKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIEZJTEVfVFlQRVMuSU1BR0U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmICgoLyhkb2N8ZG9jbXxkb2N4fGRvdHxkb3RtfGRvdHh8ZXB1Ynxmb2R0fGh0bXxodG1sfG1odHxvZHR8b3R0fHJ0Znx0eHR8ZGp2dXx4cHMpJC9pKS50ZXN0KGZpbGVFeHRlbnNpb24pKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIEZJTEVfVFlQRVMuVEVYVDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKCgvKHBkZikkL2kpLnRlc3QoZmlsZUV4dGVuc2lvbikpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gRklMRV9UWVBFUy5QREY7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmICgoLyhjc3Z8Zm9kc3xvZHN8b3RzfHhsc3x4bHNtfHhsc3h8eGx0fHhsdG18eGx0eCkkL2kpLnRlc3QoZmlsZUV4dGVuc2lvbikpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gRklMRV9UWVBFUy5TUFJFQURTSEVFVDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKCgvKGZvZHB8b2RwfG90cHxwb3R8cG90bXxwb3R4fHBwc3xwcHNtfHBwc3h8cHB0fHBwdG18cHB0eCkkL2kpLnRlc3QoZmlsZUV4dGVuc2lvbikpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gRklMRV9UWVBFUy5QUkVTRU5UQVRJT047XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmICgoLyhtcDR8bW92fGF2aXx3bXZ8dm9ifHJtfGFzZnwzZ3ApJC9pKS50ZXN0KGZpbGVFeHRlbnNpb24pKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIEZJTEVfVFlQRVMuVklERU87XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmICgoLyhtcDN8d21hfHdhdnx3bXZ8b2dnKSQvaSkudGVzdChmaWxlRXh0ZW5zaW9uKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBGSUxFX1RZUEVTLkFVRElPO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICBpc1R5cGVGaWxlS3lTbyhmaWxlTmFtZTogc3RyaW5nKSB7XG4gICAgICAgIGxldCBmaWxlRXh0ZW5zaW9uID0gdGhpcy5nZXRGaWxlRXh0ZW5zaW9uKGZpbGVOYW1lKTtcbiAgICAgICAgaWYgKGZpbGVFeHRlbnNpb24pIHtcbiAgICAgICAgICAgIGZpbGVFeHRlbnNpb24gPSBmaWxlRXh0ZW5zaW9uLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICBpZiAoZmlsZUV4dGVuc2lvbi5pbmRleE9mKCcuJykgPiAtMSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGFyciA9IGZpbGVFeHRlbnNpb24uc3BsaXQoJy4nKTtcbiAgICAgICAgICAgICAgICBmaWxlRXh0ZW5zaW9uID0gYXJyW2Fyci5sZW5ndGggLSAxXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICgoLyhwZGZ8ZG9jfGRvY3gpJC9pKS50ZXN0KGZpbGVFeHRlbnNpb24pKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlzRmlsZVR5cGUoZmlsZUV4dGVuc2lvbjogc3RyaW5nLCB0eXBlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldEZpbGVUeXBlKGZpbGVFeHRlbnNpb24pID09PSB0eXBlO1xuICAgIH1cblxuICAgIGNyZWF0ZUZpbGVJbnRvU2hhcmVkRm9sZGVyKGZvcm1EYXRhKSB7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke3RoaXMuc2VydmljZVVyaX0vVXBsb2FkRmlsZUludG9TaGFyZWRGb2xkZXJgO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmRlZmF1bHRQb3N0KHVybCwgZm9ybURhdGEpO1xuICAgIH1cblxuICAgIGdldEZpbGVJblNoYXJlZEZvbGRlcihtb2RlbCkge1xuICAgICAgICBjb25zdCB1cmwgPSBgJHt0aGlzLnNlcnZpY2VVcml9L0dldEZpbGVJblNoYXJlZEZvbGRlcmA7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZGVmYXVsdFBvc3QodXJsLCBtb2RlbCk7XG4gICAgfVxuXG4gICAgZGVsZXRlRmlsZUZyb21TaGFyZWRGb2xkZXIobW9kZWwpIHtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7dGhpcy5zZXJ2aWNlVXJpfS9EZWxldGVGaWxlRnJvbVNoYXJlZEZvbGRlcmA7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZGVmYXVsdFBvc3QodXJsLCBtb2RlbCk7XG4gICAgfVxuXG4gICAgY3JlYXRlU2VydmljZUZpbGUoc2VydmljZUZpbGVPYmplY3REVE86IEZvcm1EYXRhKTogUHJvbWlzZTxSZXNwb25zZVJlc3VsdD4ge1xuICAgICAgICBjb25zdCB1cmwgPSBgJHt0aGlzLnNlcnZpY2VVcml9L0NyZWF0ZVNlcnZpY2VGaWxlYDtcblxuICAgICAgICByZXR1cm4gdGhpcy5kZWZhdWx0UG9zdCh1cmwsIHNlcnZpY2VGaWxlT2JqZWN0RFRPKTtcbiAgICB9XG5cbiAgICBnZXRTaW5nbGVTZXJ2aWNlRmlsZShzZXJ2aWNlUmVxdWVzdE1vZGVsOiBhbnkpOiBQcm9taXNlPFJlc3BvbnNlUmVzdWx0PiB7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke3RoaXMuc2VydmljZVVyaX0vR2V0U2luZ2xlU2VydmljZUZpbGVgO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmRlZmF1bHRQb3N0KHVybCwgc2VydmljZVJlcXVlc3RNb2RlbCk7XG4gICAgfVxuXG4gICAgZ2V0U2NhbkZpbGVVcGxvYWRFbmRwb2ludChjb3JyZWxhdGlvbklkOiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIGAke3RoaXMuc2VydmljZUNvZGV9L0NyZWF0ZVNjYW5uZWRGaWxlLyR7Y29ycmVsYXRpb25JZH1gO1xuICAgIH1cblxuXG4gICAgZ2V0QWNjZXB0ZWRFeHRlbnNpb25zKGFjY2VwdEZpbGVUeXBlczogRmlsZVR5cGVGbGFnKSB7XG4gICAgICAgIGxldCBhY2NlcHQgPSAnJztcbiAgICAgICAgaWYgKChhY2NlcHRGaWxlVHlwZXMgJiBGaWxlVHlwZUZsYWcuVklERU8pICE9PSAwKSB7XG4gICAgICAgICAgICBhY2NlcHQgKz0gRmlsZUV4dGVuc2lvbnMuVklERU8gKyAnLCc7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKChhY2NlcHRGaWxlVHlwZXMgJiBGaWxlVHlwZUZsYWcuSU1BR0UpICE9PSAwKSB7XG4gICAgICAgICAgICBhY2NlcHQgKz0gRmlsZUV4dGVuc2lvbnMuSU1BR0UgKyAnLCc7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKChhY2NlcHRGaWxlVHlwZXMgJiBGaWxlVHlwZUZsYWcuRE9DKSAhPT0gMCkge1xuICAgICAgICAgICAgYWNjZXB0ICs9IEZpbGVFeHRlbnNpb25zLkRPQyArICcsJztcbiAgICAgICAgfVxuICAgICAgICBpZiAoKGFjY2VwdEZpbGVUeXBlcyAmIEZpbGVUeXBlRmxhZy5BVURJTykgIT09IDApIHtcbiAgICAgICAgICAgIGFjY2VwdCArPSBGaWxlRXh0ZW5zaW9ucy5BVURJTyArICcsJztcbiAgICAgICAgfVxuICAgICAgICBpZiAoKGFjY2VwdEZpbGVUeXBlcyAmIEZpbGVUeXBlRmxhZy5DT01QUkVTU0VEKSAhPT0gMCkge1xuICAgICAgICAgICAgYWNjZXB0ICs9IEZpbGVFeHRlbnNpb25zLkNPTVBSRVNTRUQgKyAnLCc7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFjY2VwdDtcbiAgICB9XG5cbiAgICBnZXRBY2NlcHRlZEV4dGVuc2lvbnNBcnJheShhY2NlcHRGaWxlVHlwZXM6IEZpbGVUeXBlRmxhZykge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBbXTtcbiAgICAgICAgaWYgKChhY2NlcHRGaWxlVHlwZXMgJiBGaWxlVHlwZUZsYWcuVklERU8pICE9PSAwKSB7XG4gICAgICAgICAgICByZXN1bHQucHVzaCguLi5FeHRlbnNpb25zQ29uc3QuVmlkZW9FeHRlbnNpb25zKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoKGFjY2VwdEZpbGVUeXBlcyAmIEZpbGVUeXBlRmxhZy5JTUFHRSkgIT09IDApIHtcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKC4uLkV4dGVuc2lvbnNDb25zdC5JbWFnZUV4dGVuc2lvbnMpO1xuICAgICAgICB9XG4gICAgICAgIGlmICgoYWNjZXB0RmlsZVR5cGVzICYgRmlsZVR5cGVGbGFnLkRPQykgIT09IDApIHtcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKC4uLkV4dGVuc2lvbnNDb25zdC5Eb2NFeHRlbnNpb25zKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoKGFjY2VwdEZpbGVUeXBlcyAmIEZpbGVUeXBlRmxhZy5BVURJTykgIT09IDApIHtcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKC4uLkV4dGVuc2lvbnNDb25zdC5BdWRpb0V4dGVuc2lvbnMpO1xuICAgICAgICB9XG4gICAgICAgIGlmICgoYWNjZXB0RmlsZVR5cGVzICYgRmlsZVR5cGVGbGFnLkNPTVBSRVNTRUQpICE9PSAwKSB7XG4gICAgICAgICAgICByZXN1bHQucHVzaCguLi5FeHRlbnNpb25zQ29uc3QuQ29tcHJlc3NlZEV4dGVuc2lvbnMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgdXBsb2FkV2l0aEJ5dGVBcnJheShmaWxlKSB7XG4gICAgICAgIGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgICAgIGZvcm1EYXRhLmFwcGVuZCgnZmlsZXMnLCBmaWxlKTtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7dGhpcy5zZXJ2aWNlVXJpfS9VcGxvYWRXaXRoQnl0ZUFycmF5YDtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2h0dHAucG9zdCh1cmwsIGZvcm1EYXRhLCB7IHJlc3BvbnNlVHlwZTogJ3RleHQnIH0pLnRvUHJvbWlzZSgpO1xuICAgIH1cbn1cbiJdfQ==
|
|
211
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1vYmplY3Quc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RueC1zaGFyZWQvc3JjL2xpYi9jb21wb25lbnRzL2ZpbGUtZXhwbG9yZXIvc2VydmljZXMvZmlsZS1vYmplY3Quc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTFGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM3RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQzs7OztBQUs5RSxNQUFNLE9BQU8saUJBQWtCLFNBQVEsV0FBVztJQUs5QyxZQUFZLElBQWdCLEVBQUUsUUFBa0IsRUFDcEMsb0JBQXlDO1FBQ2pELEtBQUssQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLEdBQUcsb0JBQW9CLENBQUMsU0FBUyxFQUFFLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxZQUFZLElBQUksb0JBQW9CLENBQUMsU0FBUyxFQUFFLENBQUMsV0FBVyxDQUFDLFVBQVUsYUFBYSxDQUFDLENBQUM7UUFEOUoseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFxQjtRQUxyRCxvQkFBZSxHQUFHLEVBQUUsQ0FBQztRQUNyQiw0QkFBdUIsR0FBRyxFQUFFLENBQUM7UUFDN0IscUJBQWdCLEdBQUcsRUFBRSxDQUFDO1FBS2xCLElBQUksQ0FBQyxRQUFRLEdBQUcsb0JBQW9CLENBQUMsU0FBUyxFQUFFLENBQUMsV0FBVyxDQUFDLFNB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Q0QsSUFBSSxDQUFDLGVBQWUsR0FBRyxZQUFZLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzVDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxlQUFlLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDakQ7UUFDRCxJQUFJLENBQUMsZUFBZSxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDOUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLGVBQWUsQ0FBQyxlQUFlLENBQUMsQ0FBQztTQUNuRDtRQUNELElBQUksQ0FBQyxlQUFlLEdBQUcsWUFBWSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNuRCxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsZUFBZSxDQUFDLG9CQUFvQixDQUFDLENBQUM7U0FDeEQ7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0lBRUQsbUJBQW1CLENBQUMsSUFBSTtRQUNwQixNQUFNLFFBQVEsR0FBRyxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQ2hDLFFBQVEsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQy9CLE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLFVBQVUsc0JBQXNCLENBQUM7UUFDckQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsUUFBUSxFQUFFLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDaEYsQ0FBQzs7OztZQTlOSixVQUFVLFNBQUM7Z0JBQ1IsVUFBVSxFQUFFLE1BQU07YUFDckI7OztZQVZRLFVBQVU7WUFDRSxRQUFRO1lBS3BCLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRklMRV9UWVBFUyB9IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvY29uc3RhbnRzJztcbmltcG9ydCB7IEV4dGVuc2lvbnNDb25zdCwgRmlsZUV4dGVuc2lvbnMsIEZpbGVUeXBlRmxhZyB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9maWxlLXR5cGUnO1xuaW1wb3J0IHsgUmVzcG9uc2VSZXN1bHQgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvcmVzcG9uc2UtcmVzdWx0JztcbmltcG9ydCB7IEJhc2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYmFzZS5zZXJ2aWNlJztcbmltcG9ydCB7IE1vZHVsZUNvbmZpZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9tb2R1bGUtY29uZmlnLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEZpbGVPYmplY3RTZXJ2aWNlIGV4dGVuZHMgQmFzZVNlcnZpY2Uge1xuICAgIHRodW1ib3JFbmRwb2ludCA9ICcnO1xuICAgIGZpbGVXaXRoVGh1bWJvckVuZHBvaW50ID0gJyc7XG4gICAgZmlsZVBhdGhFbmRwb2ludCA9ICcnO1xuXG4gICAgY29uc3RydWN0b3IoaHR0cDogSHR0cENsaWVudCwgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICAgICBwcml2YXRlIF9tb2R1bGVDb25maWdTZXJ2aWNlOiBNb2R1bGVDb25maWdTZXJ2aWNlKSB7XG4gICAgICAgIHN1cGVyKGh0dHAsIGluamVjdG9yLCBgJHtfbW9kdWxlQ29uZmlnU2VydmljZS5nZXRDb25maWcoKS5lbnZpcm9ubWVudC5hcGlEb21haW4uZmlsZUVuZHBvaW50fS8ke19tb2R1bGVDb25maWdTZXJ2aWNlLmdldENvbmZpZygpLmVudmlyb25tZW50LmFwaVZlcnNpb259L0ZpbGVPYmplY3RgKTtcbiAgICAgICAgdGhpcy5lbmRQb2ludCA9IF9tb2R1bGVDb25maWdTZXJ2aWNlLmdldENvbmZpZygpLmVudmlyb25tZW50LmFwaURvbWFpbi5maWxlRW5kcG9pbnQ7XG4gICAgICAgIHRoaXMuZmlsZVdpdGhUaHVtYm9yRW5kcG9pbnQgPSBfbW9kdWxlQ29uZmlnU2VydmljZS5nZXRDb25maWcoKS5lbnZpcm9ubWVudC5hcGlEb21haW4uZmlsZVdpdGhUaHVtYm9yRW5kcG9pbnQ7XG4gICAgICAgIHRoaXMudGh1bWJvckVuZHBvaW50ID0gX21vZHVsZUNvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnKCkuZW52aXJvbm1lbnQuYXBpRG9tYWluLnRodW1ib3I7XG4gICAgICAgIHRoaXMuZmlsZVBhdGhFbmRwb2ludCA9IF9tb2R1bGVDb25maWdTZXJ2aWNlLmdldENvbmZpZygpLmVudmlyb25tZW50LmFwaURvbWFpbi5maWxlUGF0aEVuZHBvaW50O1xuICAgIH1cblxuICAgIGdldEZpbGVVcmxXaXRoVGh1bWJvcihmaWxlSWQsIHdpZHRoID0gMCwgaGVpZ2h0ID0gMCkge1xuICAgICAgICBjb25zdCB1cmwgPSBgJHt0aGlzLnRodW1ib3JFbmRwb2ludH0vdW5zYWZlLyR7d2lkdGh9eCR7aGVpZ2h0fS9zbWFydC8ke3RoaXMuZmlsZVdpdGhUaHVtYm9yRW5kcG9pbnR9L3Y1L0ZpbGVPYmplY3QvcHVibGljLyR7ZmlsZUlkfS9kb3dubG9hZGA7XG4gICAgICAgIHJldHVybiB1cmw7XG4gICAgfVxuXG4gICAgZ2V0VXJsSW1hZ2UoZmlsZUlkOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYCR7dGhpcy5zZXJ2aWNlVXJpfS9wdWJsaWMvJHtmaWxlSWR9L0Rvd25sb2FkYDtcbiAgICB9XG5cbiAgICBjb3B5TXVsdGlwbGVGaWxlKGlkc0ZpbGU6IHN0cmluZ1tdLCBpZERlc0ZvbGRlcjogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke3RoaXMuc2VydmljZVVyaX0vQ29weU11bHRpcGxlRmlsZT9wYXJlbnRGb2xkZXJJZD0ke2lkRGVzRm9sZGVyfWA7XG4gICAgICAgIHJldHVybiB0aGlzLmRlZmF1bHRQb3N0KHVybCwgaWRzRmlsZSk7XG4gICAgfVxuXG4gICAgY29weUZpbGVCeUhhc2goaGFzaDogc3RyaW5nLCBwYXJlbnRGb2xkZXJJZDogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke3RoaXMuc2VydmljZVVyaX0vQ29weUZpbGVGcm9tSGFzaD9oYXNoPSR7aGFzaH0mcGFyZW50Rm9sZGVySWQ9JHtwYXJlbnRGb2xkZXJJZH1gO1xuICAgICAgICByZXR1cm4gdGhpcy5kZWZhdWx0R2V0KHVybCk7XG4gICAgfVxuXG4gICAgZ2V0VXBsb2FkVXJsKCkge1xuICAgICAgICByZXR1cm4gYCR7dGhpcy5zZXJ2aWNlVXJpfS9VcGxvYWRGaWxlSW50b0ZvbGRlcmA7XG4gICAgfVxuXG4gICAgZ2V0VXBsb2FkTXVsdGlwbGVVcmwoKSB7XG4gICAgICAgIHJldHVybiBgJHt0aGlzLnNlcnZpY2VVcml9L1VwbG9hZEZpbGVzSW50b0ZvbGRlcmA7XG4gICAgfVxuXG4gICAgZ2V0VXBsb2FkSW50b1NoYXJlZEZvbGRlclVybCgpIHtcbiAgICAgICAgcmV0dXJuIGAke3RoaXMuc2VydmljZVVyaX0vVXBsb2FkRmlsZUludG9TaGFyZWRGb2xkZXJgO1xuICAgIH1cblxuICAgIGlzU3VwcG9ydGVkVmlld09ubGluZShmaWxlTmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIGlmIChmaWxlTmFtZS5sYXN0SW5kZXhPZignLicpID09PSAtMSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZmlsZVR5cGUgPSBmaWxlTmFtZS5zdWJzdHJpbmcoZmlsZU5hbWUubGFzdEluZGV4T2YoJy4nKSArIDEpO1xuXG4gICAgICAgIGlmICgoLyhnaWZ8anBnfGpwZWd8dGlmZnxwbmcpJC9pKS50ZXN0KGZpbGVUeXBlKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoKC8oZG9jfGRvY218ZG9jeHxkb3R8ZG90bXxkb3R4fGVwdWJ8Zm9kdHxodG18aHRtbHxtaHR8b2R0fG90dHxwZGZ8cnRmfHR4dHxkanZ1fHhwcykkL2kpLnRlc3QoZmlsZVR5cGUpKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICgoLyhjc3Z8Zm9kc3xvZHN8b3RzfHhsc3x4bHNtfHhsc3h8eGx0fHhsdG18eGx0eCkkL2kpLnRlc3QoZmlsZVR5cGUpKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICgoLyhmb2RwfG9kcHxvdHB8cG90fHBvdG18cG90eHxwcHN8cHBzbXxwcHN4fHBwdHxwcHRtfHBwdHgpJC9pKS50ZXN0KGZpbGVUeXBlKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoKC8obXA0fG1vdnxhdml8d212fHZvYnxybXxhc2Z8M2dwKSQvaSkudGVzdChmaWxlVHlwZSkpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKCgvKG1wM3x3bWF8d2F2fHdtdnxvZ2cpJC9pKS50ZXN0KGZpbGVUeXBlKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgZ2V0RmlsZUV4dGVuc2lvbihmaWxlTmFtZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICghZmlsZU5hbWUpIHtcbiAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgfVxuICAgICAgICBmaWxlTmFtZSA9IGZpbGVOYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIGNvbnN0IGFyciA9IGZpbGVOYW1lLnNwbGl0KCcuJyk7XG4gICAgICAgIGlmIChhcnIubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgcmV0dXJuIGFyclthcnIubGVuZ3RoIC0gMV07XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRGaWxlVHlwZShmaWxlRXh0ZW5zaW9uOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKGZpbGVFeHRlbnNpb24pIHtcbiAgICAgICAgICAgIGZpbGVFeHRlbnNpb24gPSBmaWxlRXh0ZW5zaW9uLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICBpZiAoZmlsZUV4dGVuc2lvbi5pbmRleE9mKCcuJykgPiAtMSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGFyciA9IGZpbGVFeHRlbnNpb24uc3BsaXQoJy4nKTtcbiAgICAgICAgICAgICAgICBmaWxlRXh0ZW5zaW9uID0gYXJyW2Fyci5sZW5ndGggLSAxXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICgoLyhnaWZ8anBnfGpwZWd8dGlmZnxwbmcpJC9pKS50ZXN0KGZpbGVFeHRlbnNpb24pKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIEZJTEVfVFlQRVMuSU1BR0U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmICgoLyhkb2N8ZG9jbXxkb2N4fGRvdHxkb3RtfGRvdHh8ZXB1Ynxmb2R0fGh0bXxodG1sfG1odHxvZHR8b3R0fHJ0Znx0eHR8ZGp2dXx4cHMpJC9pKS50ZXN0KGZpbGVFeHRlbnNpb24pKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIEZJTEVfVFlQRVMuVEVYVDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKCgvKHBkZikkL2kpLnRlc3QoZmlsZUV4dGVuc2lvbikpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gRklMRV9UWVBFUy5QREY7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmICgoLyhjc3Z8Zm9kc3xvZHN8b3RzfHhsc3x4bHNtfHhsc3h8eGx0fHhsdG18eGx0eCkkL2kpLnRlc3QoZmlsZUV4dGVuc2lvbikpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gRklMRV9UWVBFUy5TUFJFQURTSEVFVDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKCgvKGZvZHB8b2RwfG90cHxwb3R8cG90bXxwb3R4fHBwc3xwcHNtfHBwc3h8cHB0fHBwdG18cHB0eCkkL2kpLnRlc3QoZmlsZUV4dGVuc2lvbikpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gRklMRV9UWVBFUy5QUkVTRU5UQVRJT047XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmICgoLyhtcDR8bW92fGF2aXx3bXZ8dm9ifHJtfGFzZnwzZ3ApJC9pKS50ZXN0KGZpbGVFeHRlbnNpb24pKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIEZJTEVfVFlQRVMuVklERU87XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmICgoLyhtcDN8d21hfHdhdnx3bXZ8b2dnKSQvaSkudGVzdChmaWxlRXh0ZW5zaW9uKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBGSUxFX1RZUEVTLkFVRElPO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICBpc1R5cGVGaWxlS3lTbyhmaWxlTmFtZTogc3RyaW5nKSB7XG4gICAgICAgIGxldCBmaWxlRXh0ZW5zaW9uID0gdGhpcy5nZXRGaWxlRXh0ZW5zaW9uKGZpbGVOYW1lKTtcbiAgICAgICAgaWYgKGZpbGVFeHRlbnNpb24pIHtcbiAgICAgICAgICAgIGZpbGVFeHRlbnNpb24gPSBmaWxlRXh0ZW5zaW9uLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICBpZiAoZmlsZUV4dGVuc2lvbi5pbmRleE9mKCcuJykgPiAtMSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGFyciA9IGZpbGVFeHRlbnNpb24uc3BsaXQoJy4nKTtcbiAgICAgICAgICAgICAgICBmaWxlRXh0ZW5zaW9uID0gYXJyW2Fyci5sZW5ndGggLSAxXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICgoLyhwZGZ8ZG9jfGRvY3h8eGxzeHx4bHMpJC9pKS50ZXN0KGZpbGVFeHRlbnNpb24pKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlzRmlsZVR5cGUoZmlsZUV4dGVuc2lvbjogc3RyaW5nLCB0eXBlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldEZpbGVUeXBlKGZpbGVFeHRlbnNpb24pID09PSB0eXBlO1xuICAgIH1cblxuICAgIGNyZWF0ZUZpbGVJbnRvU2hhcmVkRm9sZGVyKGZvcm1EYXRhKSB7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke3RoaXMuc2VydmljZVVyaX0vVXBsb2FkRmlsZUludG9TaGFyZWRGb2xkZXJgO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmRlZmF1bHRQb3N0KHVybCwgZm9ybURhdGEpO1xuICAgIH1cblxuICAgIGdldEZpbGVJblNoYXJlZEZvbGRlcihtb2RlbCkge1xuICAgICAgICBjb25zdCB1cmwgPSBgJHt0aGlzLnNlcnZpY2VVcml9L0dldEZpbGVJblNoYXJlZEZvbGRlcmA7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZGVmYXVsdFBvc3QodXJsLCBtb2RlbCk7XG4gICAgfVxuXG4gICAgZGVsZXRlRmlsZUZyb21TaGFyZWRGb2xkZXIobW9kZWwpIHtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7dGhpcy5zZXJ2aWNlVXJpfS9EZWxldGVGaWxlRnJvbVNoYXJlZEZvbGRlcmA7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZGVmYXVsdFBvc3QodXJsLCBtb2RlbCk7XG4gICAgfVxuXG4gICAgY3JlYXRlU2VydmljZUZpbGUoc2VydmljZUZpbGVPYmplY3REVE86IEZvcm1EYXRhKTogUHJvbWlzZTxSZXNwb25zZVJlc3VsdD4ge1xuICAgICAgICBjb25zdCB1cmwgPSBgJHt0aGlzLnNlcnZpY2VVcml9L0NyZWF0ZVNlcnZpY2VGaWxlYDtcblxuICAgICAgICByZXR1cm4gdGhpcy5kZWZhdWx0UG9zdCh1cmwsIHNlcnZpY2VGaWxlT2JqZWN0RFRPKTtcbiAgICB9XG5cbiAgICBnZXRTaW5nbGVTZXJ2aWNlRmlsZShzZXJ2aWNlUmVxdWVzdE1vZGVsOiBhbnkpOiBQcm9taXNlPFJlc3BvbnNlUmVzdWx0PiB7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke3RoaXMuc2VydmljZVVyaX0vR2V0U2luZ2xlU2VydmljZUZpbGVgO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmRlZmF1bHRQb3N0KHVybCwgc2VydmljZVJlcXVlc3RNb2RlbCk7XG4gICAgfVxuXG4gICAgZ2V0U2NhbkZpbGVVcGxvYWRFbmRwb2ludChjb3JyZWxhdGlvbklkOiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIGAke3RoaXMuc2VydmljZUNvZGV9L0NyZWF0ZVNjYW5uZWRGaWxlLyR7Y29ycmVsYXRpb25JZH1gO1xuICAgIH1cblxuXG4gICAgZ2V0QWNjZXB0ZWRFeHRlbnNpb25zKGFjY2VwdEZpbGVUeXBlczogRmlsZVR5cGVGbGFnKSB7XG4gICAgICAgIGxldCBhY2NlcHQgPSAnJztcbiAgICAgICAgaWYgKChhY2NlcHRGaWxlVHlwZXMgJiBGaWxlVHlwZUZsYWcuVklERU8pICE9PSAwKSB7XG4gICAgICAgICAgICBhY2NlcHQgKz0gRmlsZUV4dGVuc2lvbnMuVklERU8gKyAnLCc7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKChhY2NlcHRGaWxlVHlwZXMgJiBGaWxlVHlwZUZsYWcuSU1BR0UpICE9PSAwKSB7XG4gICAgICAgICAgICBhY2NlcHQgKz0gRmlsZUV4dGVuc2lvbnMuSU1BR0UgKyAnLCc7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKChhY2NlcHRGaWxlVHlwZXMgJiBGaWxlVHlwZUZsYWcuRE9DKSAhPT0gMCkge1xuICAgICAgICAgICAgYWNjZXB0ICs9IEZpbGVFeHRlbnNpb25zLkRPQyArICcsJztcbiAgICAgICAgfVxuICAgICAgICBpZiAoKGFjY2VwdEZpbGVUeXBlcyAmIEZpbGVUeXBlRmxhZy5BVURJTykgIT09IDApIHtcbiAgICAgICAgICAgIGFjY2VwdCArPSBGaWxlRXh0ZW5zaW9ucy5BVURJTyArICcsJztcbiAgICAgICAgfVxuICAgICAgICBpZiAoKGFjY2VwdEZpbGVUeXBlcyAmIEZpbGVUeXBlRmxhZy5DT01QUkVTU0VEKSAhPT0gMCkge1xuICAgICAgICAgICAgYWNjZXB0ICs9IEZpbGVFeHRlbnNpb25zLkNPTVBSRVNTRUQgKyAnLCc7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFjY2VwdDtcbiAgICB9XG5cbiAgICBnZXRBY2NlcHRlZEV4dGVuc2lvbnNBcnJheShhY2NlcHRGaWxlVHlwZXM6IEZpbGVUeXBlRmxhZykge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBbXTtcbiAgICAgICAgaWYgKChhY2NlcHRGaWxlVHlwZXMgJiBGaWxlVHlwZUZsYWcuVklERU8pICE9PSAwKSB7XG4gICAgICAgICAgICByZXN1bHQucHVzaCguLi5FeHRlbnNpb25zQ29uc3QuVmlkZW9FeHRlbnNpb25zKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoKGFjY2VwdEZpbGVUeXBlcyAmIEZpbGVUeXBlRmxhZy5JTUFHRSkgIT09IDApIHtcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKC4uLkV4dGVuc2lvbnNDb25zdC5JbWFnZUV4dGVuc2lvbnMpO1xuICAgICAgICB9XG4gICAgICAgIGlmICgoYWNjZXB0RmlsZVR5cGVzICYgRmlsZVR5cGVGbGFnLkRPQykgIT09IDApIHtcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKC4uLkV4dGVuc2lvbnNDb25zdC5Eb2NFeHRlbnNpb25zKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoKGFjY2VwdEZpbGVUeXBlcyAmIEZpbGVUeXBlRmxhZy5BVURJTykgIT09IDApIHtcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKC4uLkV4dGVuc2lvbnNDb25zdC5BdWRpb0V4dGVuc2lvbnMpO1xuICAgICAgICB9XG4gICAgICAgIGlmICgoYWNjZXB0RmlsZVR5cGVzICYgRmlsZVR5cGVGbGFnLkNPTVBSRVNTRUQpICE9PSAwKSB7XG4gICAgICAgICAgICByZXN1bHQucHVzaCguLi5FeHRlbnNpb25zQ29uc3QuQ29tcHJlc3NlZEV4dGVuc2lvbnMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgdXBsb2FkV2l0aEJ5dGVBcnJheShmaWxlKSB7XG4gICAgICAgIGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgICAgIGZvcm1EYXRhLmFwcGVuZCgnZmlsZXMnLCBmaWxlKTtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7dGhpcy5zZXJ2aWNlVXJpfS9VcGxvYWRXaXRoQnl0ZUFycmF5YDtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2h0dHAucG9zdCh1cmwsIGZvcm1EYXRhLCB7IHJlc3BvbnNlVHlwZTogJ3RleHQnIH0pLnRvUHJvbWlzZSgpO1xuICAgIH1cbn1cbiJdfQ==
|