@adins/ucviewgeneric 3.3.4-canary.0 → 3.3.4-canary.2
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/README.md +11 -0
- package/esm2020/lib/ucviewgeneric.component.mjs +4 -1
- package/fesm2015/adins-ucviewgeneric.mjs +3 -0
- package/fesm2015/adins-ucviewgeneric.mjs.map +1 -1
- package/fesm2020/adins-ucviewgeneric.mjs +3 -0
- package/fesm2020/adins-ucviewgeneric.mjs.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -3,8 +3,19 @@
|
|
|
3
3
|
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 13.0.0.
|
|
4
4
|
|
|
5
5
|
## Version
|
|
6
|
+
tags:
|
|
7
|
+
- legacy
|
|
8
|
+
- canary
|
|
9
|
+
|
|
10
|
+
Version 3.3.4-tags.2
|
|
11
|
+
1. fix html tag
|
|
12
|
+
|
|
13
|
+
Version 3.3.4-tags.1
|
|
14
|
+
1. support hardcode value
|
|
15
|
+
|
|
6
16
|
Version 3.3.4-canary.0
|
|
7
17
|
1. Fix columns
|
|
18
|
+
2. separate old ui in legacy
|
|
8
19
|
|
|
9
20
|
Version 3.3.3
|
|
10
21
|
1. Fix Table indent
|
|
@@ -293,6 +293,9 @@ export class UcviewgenericComponent {
|
|
|
293
293
|
if (this.viewList.subsection[i].reqObj !== undefined) {
|
|
294
294
|
for (const [key, value] of Object.entries(this.viewList.subsection[i].reqObj)) {
|
|
295
295
|
reqObj[key] = this.getList[value] || this.viewGenericObj.dicts[value];
|
|
296
|
+
if (reqObj[key] == undefined) {
|
|
297
|
+
reqObj[key] = value;
|
|
298
|
+
}
|
|
296
299
|
}
|
|
297
300
|
}
|
|
298
301
|
this.http.post(this.viewList.subsection[i].fullpath, reqObj).subscribe((response) => {
|
|
@@ -560,4 +563,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
560
563
|
}], callback: [{
|
|
561
564
|
type: Output
|
|
562
565
|
}] } });
|
|
563
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWN2aWV3Z2VuZXJpYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy91Y3ZpZXdnZW5lcmljL3NyYy9saWIvdWN2aWV3Z2VuZXJpYy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy91Y3ZpZXdnZW5lcmljL3NyYy9saWIvdWN2aWV3Z2VuZXJpYy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFbEQsT0FBTyxFQUFZLGdCQUFnQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDL0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUMzQyxPQUFPLEtBQUssUUFBUSxNQUFNLFdBQVcsQ0FBQztBQUN0QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7Ozs7Ozs7QUFPNUQsTUFBTSxPQUFPLHNCQUFzQjtJQWNqQyxZQUNVLEtBQXFCLEVBQ3JCLElBQWdCLEVBQ2hCLGdCQUFrQyxFQUNsQyxhQUE0QjtRQUg1QixVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQixTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFqQjdCLG1CQUFjLEdBQXFCLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztRQUMxRCxn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QUFFLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQ3hDLElBQUksQ0FBQyxDQUFDLEVBQ1A7d0JBQ0EsU0FBUyxHQUFHLElBQUksQ0FBQztxQkFDbEI7eUJBQU07d0JBQ0wsU0FBUyxHQUFHLEtBQUssQ0FBQzt3QkFDbEIsTUFBTTtxQkFDUDtpQkFDRjthQUNGO1NBQ0Y7UUFDRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDOzt1SUF2cEJVLHNCQUFzQjsySEFBdEIsc0JBQXNCLHNLQ2hCbkMscWpkQWlNQTs0RkRqTGEsc0JBQXNCO2tCQUxsQyxTQUFTOytCQUNFLG1CQUFtQjt5TEFLcEIsY0FBYztzQkFBdEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNJLFFBQVE7c0JBQWpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IEVudmlzT2JqLCBVY1ZpZXdHZW5lcmljT2JqIH0gZnJvbSBcIi4vbW9kZWwvdWMtdmlldy1nZW5lcmljLW9iai5tb2RlbFwiO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcclxuaW1wb3J0IHsgQ29va2llU2VydmljZSB9IGZyb20gXCJuZ3gtY29va2llXCI7XHJcbmltcG9ydCAqIGFzIENyeXB0b0pTIGZyb20gXCJjcnlwdG8tanNcIjtcclxuaW1wb3J0IHsgR3JpZFZpZXdPYmogfSBmcm9tIFwiLi9tb2RlbC9ncmlkLXZpZXctb2JqLm1vZGVsXCI7XHJcbmltcG9ydCB7IElucHV0R3JpZE9iaiB9IGZyb20gXCIuL21vZGVsL2lucHV0LWdyaWQtb2JqLm1vZGVsXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJsaWItdWN2aWV3Z2VuZXJpY1wiLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vdWN2aWV3Z2VuZXJpYy5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsczogWycuL3Vjdmlld2dlbmVyaWMuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFVjdmlld2dlbmVyaWNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBJbnB1dCgpIHZpZXdHZW5lcmljT2JqOiBVY1ZpZXdHZW5lcmljT2JqID0gbmV3IFVjVmlld0dlbmVyaWNPYmooKTtcclxuICBASW5wdXQoKSBncmlkVmlld09iajogR3JpZFZpZXdPYmogPSBuZXcgR3JpZFZpZXdPYmooKTtcclxuICBAT3V0cHV0KCkgY2FsbGJhY2s6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIFVzZXJBY2Nlc3M6IGFueSA9IEpTT04ucGFyc2UoXHJcbiAgICB0aGlzLkdldENvb2tpZSh0aGlzLmNvb2tpZVNlcnZpY2UsIFwiVXNlckFjY2Vzc1wiKVxyXG4gICk7XHJcbiAgaW5wdXRHcmlkVmlld09ianM6IEFycmF5PElucHV0R3JpZE9iaj4gPSBuZXcgQXJyYXk8SW5wdXRHcmlkT2JqPigpO1xyXG4gIHZpZXdMaXN0OiBhbnkgPSBcIlwiO1xyXG4gIGdldExpc3Q6IGFueTtcclxuICB2aWV3SW5mb09iakxpc3Q6IGFueTtcclxuICBpc1JlYWR5OiBib29sZWFuID0gZmFsc2U7XHJcbiAgSXNDYXJkOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgY29va2llU2VydmljZTogQ29va2llU2VydmljZVxyXG4gICkge1xyXG4gICAgdGhpcy5yb3V0ZS5xdWVyeVBhcmFtcy5zdWJzY3JpYmUoKHBhcmFtcykgPT4ge1xyXG4gICAgICB0aGlzLmdldExpc3QgPSBwYXJhbXM7XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2Uuc2V0RGVmYXVsdExhbmcoXCJlblwiKTtcclxuICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS51c2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJsYW5nXCIpIHx8IFwiZW5cIik7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGNvbnNvbGUubG9nKFwidmlld2dlbmVyaWNcIik7XHJcbiAgICB0aGlzLmluaXRpYXRlRm9ybSgpO1xyXG4gICAgdGhpcy5DaGVja0lzQ2FyZCgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBDaGVja0lzQ2FyZCgpIHtcclxuICAgIGlmIChcclxuICAgICAgdGhpcy52aWV3R2VuZXJpY09iai5Jc0NhcmQgPT0gdW5kZWZpbmVkIHx8XHJcbiAgICAgIHRoaXMudmlld0dlbmVyaWNPYmouSXNDYXJkID09IG51bGxcclxuICAgIClcclxuICAgICAgcmV0dXJuO1xyXG4gICAgdGhpcy5Jc0NhcmQgPSB0aGlzLnZpZXdHZW5lcmljT2JqLklzQ2FyZDtcclxuICB9XHJcblxyXG4gIGluaXRpYXRlRm9ybSgpIHtcclxuICAgIGlmIChcclxuICAgICAgdGhpcy52aWV3R2VuZXJpY09iai5kYXRhSW5wdXQgIT09IHVuZGVmaW5lZCAmJlxyXG4gICAgICBPYmplY3Qua2V5cyh0aGlzLnZpZXdHZW5lcmljT2JqLmRhdGFJbnB1dCkubGVuZ3RoICE9PSAwXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5zZXRDb25maWd1cmF0aW9uKHsgLi4udGhpcy52aWV3R2VuZXJpY09iai5kYXRhSW5wdXQgfSk7XHJcbiAgICAgIHRoaXMuZ3JpZFZpZXdPYmouZ3JpZFZpZXdzID0gdGhpcy52aWV3R2VuZXJpY09iai5kYXRhSW5wdXQuc3Vic2VjdGlvblswXT8uZ3JpZFZpZXdzIHx8IFtdO1xyXG4gICAgICB0aGlzLmluaXRpYWxpemVHcmlkVmlld3MoKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZ2V0SlNPTih0aGlzLnZpZXdHZW5lcmljT2JqLnZpZXdJbnB1dCkuc3Vic2NyaWJlKChkYXRhKSA9PiB7XHJcbiAgICAgIHRoaXMuc2V0Q29uZmlndXJhdGlvbihkYXRhKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5pbml0aWFsaXplR3JpZFZpZXdzKCk7XHJcbiAgfVxyXG5cclxuICBpbml0aWFsaXplR3JpZFZpZXdzKCkge1xyXG4gICAgaWYgKHRoaXMuZ3JpZFZpZXdPYmogJiYgdGhpcy5ncmlkVmlld09iai5ncmlkVmlld3MubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmdyaWRWaWV3T2JqLmdyaWRWaWV3cy5tYXAoYXN5bmMgKGdyaWRWaWV3KSA9PiB7XHJcbiAgICAgIGNvbnN0IGlucHV0R3JpZE9iaiA9IG5ldyBJbnB1dEdyaWRPYmooKTtcclxuICAgICAgaW5wdXRHcmlkT2JqLmRhdGFJbnB1dCA9IGdyaWRWaWV3LnRhYmxlSW5wdXQ7XHJcbiAgICAgIGlucHV0R3JpZE9iai5yZXN1bHREYXRhID0geyBEYXRhOiBbXSB9O1xyXG4gICAgICBhd2FpdCB0aGlzLkdldEdyaWRWaWV3RGF0YShncmlkVmlldy5nZXREYXRhLCBpbnB1dEdyaWRPYmopO1xyXG4gICAgICB0aGlzLmlucHV0R3JpZFZpZXdPYmpzLnB1c2goaW5wdXRHcmlkT2JqKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0RW52aXJvbm1lbnQoZW52aSkge1xyXG4gICAgY29uc3QgZmlsdGVyZWRFbnZpcyA9IHRoaXMudmlld0dlbmVyaWNPYmoubGlzdEVudmlyb25tZW50cy5maWx0ZXIoXHJcbiAgICAgICh2KSA9PiB2LmVudmlyb25tZW50ID09IGVudmlcclxuICAgICk7XHJcbiAgICByZXR1cm4gZmlsdGVyZWRFbnZpcy5sZW5ndGggPiAwID8gZmlsdGVyZWRFbnZpc1swXSA6IG51bGw7XHJcbiAgfVxyXG5cclxuICBhc3luYyBHZXRHcmlkVmlld0RhdGEobWV0YTogYW55LCBpbnB1dEdyaWRPYmo6IElucHV0R3JpZE9iaikge1xyXG4gICAgbGV0IHRlbXBsTGlzdERhdGEgPSBbXTtcclxuICAgIGNvbnN0IGVudmlVcmwgPSBtZXRhLmVudmlyb25tZW50ICYmIHRoaXMuZ2V0RW52aXJvbm1lbnQobWV0YS5lbnZpcm9ubWVudCk7XHJcbiAgICBhd2FpdCB0aGlzLmh0dHBcclxuICAgICAgLnBvc3QoZW52aVVybCA/IGVudmlVcmwudXJsICsgbWV0YS5hcGlQYXRoIDogbWV0YS5hcGlQYXRoLCBtZXRhLnJlcU9iailcclxuICAgICAgLnRvUHJvbWlzZSgpXHJcbiAgICAgIC50aGVuKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgIHRlbXBsTGlzdERhdGEgPSByZXNwb25zZVttZXRhLmN1c3RvbU9iak5hbWUgfHwgXCJSZXR1cm5PYmplY3RcIl07XHJcbiAgICAgICAgaW5wdXRHcmlkT2JqLmFwaVVybCA9IG1ldGEuYXBpUGF0aDtcclxuICAgICAgICBpbnB1dEdyaWRPYmoucmVzdWx0RGF0YVtcIkRhdGFcIl0gPSBuZXcgQXJyYXkoKTtcclxuICAgICAgICBpbnB1dEdyaWRPYmoucmVzdWx0RGF0YS5EYXRhID0gdGVtcGxMaXN0RGF0YTtcclxuICAgICAgfSlcclxuICAgICAgLmNhdGNoKChlcnJvcikgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBncmlkRXZlbnQoZXYpIHtcclxuICAgIHRoaXMuY2FsbGJhY2tGdW5jdGlvbihldi5Sb3dPYmosIGV2LktleSk7XHJcbiAgfVxyXG5cclxuICBzZXRDb25maWd1cmF0aW9uKGRhdGEpIHtcclxuICAgIHRoaXMudmlld0xpc3QgPSBkYXRhO1xyXG4gICAgdGhpcy52aWV3SW5mb09iakxpc3QgPSBbXTtcclxuXHJcbiAgICBmb3IgKGxldCBqID0gMDsgaiA8IHRoaXMudmlld0xpc3Quc3Vic2VjdGlvbi5sZW5ndGg7IGorKykge1xyXG4gICAgICB0aGlzLnZpZXdJbmZvT2JqTGlzdC5wdXNoKGopO1xyXG4gICAgfVxyXG5cclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy52aWV3TGlzdC5zdWJzZWN0aW9uLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGlmIChcclxuICAgICAgICB0aGlzLnZpZXdMaXN0LnN1YnNlY3Rpb25baV0ucXVlcnlzdHJpbmcgIT0gbnVsbCAmJlxyXG4gICAgICAgIHRoaXMudmlld0xpc3Quc3Vic2VjdGlvbltpXS5xdWVyeXN0cmluZy5uYW1lICE9IFwiXCJcclxuICAgICAgKSB7XHJcbiAgICAgICAgbGV0IHF1ZXJ5T2JqOiBhbnk7XHJcbiAgICAgICAgaWYgKHRoaXMudmlld0dlbmVyaWNPYmoud2hlcmVWYWx1ZS5sZW5ndGggPT0gMCkge1xyXG4gICAgICAgICAgdGhpcy52aWV3TGlzdC5zdWJzZWN0aW9uW2ldLnF1ZXJ5c3RyaW5nLndoZXJlUXVlcnkgPSAoPGFueT4oXHJcbiAgICAgICAgICAgIE9iamVjdFxyXG4gICAgICAgICAgKSkudmFsdWVzKHRoaXMuZ2V0TGlzdCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMudmlld0xpc3Quc3Vic2VjdGlvbltpXS5xdWVyeXN0cmluZy53aGVyZVF1ZXJ5ID1cclxuICAgICAgICAgICAgdGhpcy52aWV3R2VuZXJpY09iai53aGVyZVZhbHVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgdGhpcy52aWV3TGlzdC5zdWJzZWN0aW9uW2ldLm1haW5JbmZvUGF0aCAhPSB1bmRlZmluZWQgJiZcclxuICAgICAgICAgIHRoaXMudmlld0xpc3Quc3Vic2VjdGlvbltpXS5tYWluSW5mb1BhdGggIT0gXCJcIlxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICB0aGlzLnZpZXdHZW5lcmljT2JqLnZpZXdFbnZpcm9ubWVudCAhPSB1bmRlZmluZWQgJiZcclxuICAgICAgICAgICAgdGhpcy52aWV3R2VuZXJpY09iai52aWV3RW52aXJvbm1lbnQgIT0gXCJcIlxyXG4gICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgIHRoaXMudmlld0xpc3Quc3Vic2VjdGlvbltpXS5mdWxscGF0aCA9XHJcbiAgICAgICAgICAgICAgdGhpcy52aWV3R2VuZXJpY09iai52aWV3RW52aXJvbm1lbnQgK1xyXG4gICAgICAgICAgICAgIHRoaXMudmlld0xpc3Quc3Vic2VjdGlvbltpXS5tYWluSW5mb1BhdGg7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnZpZXdMaXN0LnN1YnNlY3Rpb25baV0uZnVsbHBhdGggPVxyXG4gICAgICAgICAgICAgIHRoaXMudmlld0xpc3Quc3Vic2VjdGlvbltpXS5tYWluSW5mb1VybDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy52aWV3TGlzdC5zdWJzZWN0aW9uW2ldLmZ1bGxwYXRoID1cclxuICAgICAgICAgICAgdGhpcy52aWV3TGlzdC5zdWJzZWN0aW9uW2ldLm1haW5JbmZvVXJsO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcXVlcnlPYmogPSB7XHJcbiAgICAgICAgICBxdWVyeXN0cmluZzogdGhpcy52aWV3TGlzdC5zdWJzZWN0aW9uW2ldLnF1ZXJ5c3RyaW5nLFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgdGhpcy5odHRwXHJcbiAgICAgICAgICAucG9zdCh0aGlzLnZpZXdMaXN0LnN1YnNlY3Rpb25baV0uZnVsbHBhdGgsIHF1ZXJ5T2JqKVxyXG4gICAgICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAgICAgKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy52aWV3SW5mb09iakxpc3RbaV0gPSByZXNwb25zZVtcIkRhdGFcIl1bMF07XHJcblxyXG4gICAgICAgICAgICAgIGZvciAoXHJcbiAgICAgICAgICAgICAgICBsZXQgeSA9IDA7XHJcbiAgICAgICAgICAgICAgICB5IDwgdGhpcy52aWV3TGlzdC5zdWJzZWN0aW9uW2ldLm1haW5JbmZvLmxlbmd0aDtcclxuICAgICAgICAgICAgICAgIHkrK1xyXG4gICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgICB0aGlzLnZpZXdMaXN0LnN1YnNlY3Rpb25baV0ubWFpbkluZm9beV0ucHJvcGVydHlMaXN0ICE9XHJcbiAgICAgICAgICAgICAgICAgICAgdW5kZWZpbmVkICYmXHJcbiAgICAgICAgICAgICAgICAgIHRoaXMudmlld0xpc3Quc3Vic2VjdGlvbltpXS5tYWluSW5mb1t5XS5wcm9wZXJ0eUxpc3QubGVuZ3RoICE9XHJcbiAgICAgICAgICAgICAgICAgICAgMFxyXG4gICAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHByb3BlcnR5TGlzdCA9XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy52aWV3TGlzdC5zdWJzZWN0aW9uW2ldLm1haW5JbmZvW3ldLnByb3BlcnR5TGlzdDtcclxuICAgICAgICAgICAgICAgICAgbGV0IGNvbmNhdCA9IFwiXCI7XHJcbiAgICAgICAgICAgICAgICAgIGZvciAobGV0IHogPSAwOyB6IDwgcHJvcGVydHlMaXN0Lmxlbmd0aDsgeisrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uY2F0ID1cclxuICAgICAgICAgICAgICAgICAgICAgIGNvbmNhdCArXHJcbiAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eUxpc3Rbel0ucHJlZml4ICtcclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMudmlld0luZm9PYmpMaXN0W2ldW3Byb3BlcnR5TGlzdFt6XS5wcm9wZXJ0eV0gK1xyXG4gICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlMaXN0W3pdLnN1ZmZpeDtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICB0aGlzLnZpZXdMaXN0LnN1YnNlY3Rpb25baV0ubWFpbkluZm9beV0uY29uY2F0ID0gY29uY2F0O1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIC8vc3dpdGNoIGNhc2VcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnZpZXdMaXN0LnN1YnNlY3Rpb25baV0ubWFpbkluZm9beV0udHlwZSA9PSBcInN3aXRjaFwiKSB7XHJcbiAgICAgICAgICAgICAgICAgIGZvciAoXHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IHogPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgIHogPCB0aGlzLnZpZXdMaXN0LnN1YnNlY3Rpb25baV0ubWFpbkluZm9beV0uY2FzZS5sZW5ndGg7XHJcbiAgICAgICAgICAgICAgICAgICAgeisrXHJcbiAgICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBFbXB0eSA9IG5ldyBBcnJheTxib29sZWFuPigpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmlld0xpc3Quc3Vic2VjdGlvbltpXS5tYWluSW5mb1t5XS5jYXNlW3pdLkhpZGRlbiA9XHJcbiAgICAgICAgICAgICAgICAgICAgICBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAvL2NoZWNrIGhpZGVJZkVtcHR5XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy52aWV3TGlzdC5zdWJzZWN0aW9uW2ldLm1haW5JbmZvW3ldLmNhc2Vbel0ucmVzdWx0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC5oaWRlSWZFbXB0eSAhPSB1bmRlZmluZWQgJiZcclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMudmlld0xpc3Quc3Vic2VjdGlvbltpXS5tYWluSW5mb1t5XS5jYXNlW3pdLnJlc3VsdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAuaGlkZUlmRW1wdHkgIT0gbnVsbFxyXG4gICAgICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnZpZXdMaXN0LnN1YnNlY3Rpb25baV0ubWFpbkluZm9beV0uY2FzZVt6XS5yZXN1bHRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAudHlwZSAhPSBcImNvbmNhdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHkucHVzaChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnZpZXdJbmZvT2JqTGlzdFtpXVtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudmlld0xpc3Quc3Vic2VjdGlvbltpXS5tYWluSW5mb1t5XS5jYXNlW3pdXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5yZXN1bHQucHJvcGVydHlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBdICE9IHVuZGVmaW5lZCAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy52aWV3SW5mb09iakxpc3RbaV1bXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudmlld0xpc3Quc3Vic2VjdGlvbltpXS5tYWluSW5mb1t5XS5jYXNlW3pdXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnJlc3VsdC5wcm9wZXJ0eVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXSAhPSBudWxsICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnZpZXdJbmZvT2JqTGlzdFtpXVtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy52aWV3TGlzdC5zdWJzZWN0aW9uW2ldLm1haW5JbmZvW3ldLmNhc2Vbel1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAucmVzdWx0LnByb3BlcnR5XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdICE9IFwiXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gZmFsc2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogdHJ1ZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdHlwZSBjb25jYXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudmlld0xpc3Quc3Vic2VjdGlvbltpXS5tYWluSW5mb1t5XS5jYXNlW3pdLnJlc3VsdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnByb3BlcnR5TGlzdCAhPSB1bmRlZmluZWQgJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnZpZXdMaXN0LnN1YnNlY3Rpb25baV0ubWFpbkluZm9beV0uY2FzZVt6XS5yZXN1bHRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5wcm9wZXJ0eUxpc3QubGVuZ3RoICE9IDBcclxuICAgICAgICAgICAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJvcGVydHlMaXN0ID1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudmlld0xpc3Quc3Vic2VjdGlvbltpXS5tYWluSW5mb1t5XS5jYXNlW3pdXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5yZXN1bHQucHJvcGVydHlMaXN0O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBjb25jYXQgPSBcIlwiO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGEgPSAwOyBhIDwgcHJvcGVydHlMaXN0Lmxlbmd0aDsgYSsrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25jYXQgPVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25jYXQgK1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eUxpc3RbYV0ucHJlZml4ICtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy52aWV3SW5mb09iakxpc3RbaV1bXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlMaXN0W2FdLnByb3BlcnR5XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0gK1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eUxpc3RbYV0uc3VmZml4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHkucHVzaChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy52aWV3SW5mb09iakxpc3RbaV1bXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlMaXN0W2FdLnByb3BlcnR5XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0gIT0gdW5kZWZpbmVkICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy52aWV3SW5mb09iakxpc3RbaV1bXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eUxpc3RbYV0ucHJvcGVydHlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdICE9IG51bGwgJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnZpZXdJbmZvT2JqTGlzdFtpXVtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5TGlzdFthXS5wcm9wZXJ0eVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0gIT0gXCJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gZmFsc2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHRydWVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudmlld0xpc3Quc3Vic2VjdGlvbltpXS5tYWluSW5mb1t5XS5jYXNlW1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgelxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIF0ucmVzdWx0LmNvbmNhdCA9IGNvbmNhdDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHkuaW5jbHVkZXModHJ1ZSkgJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy52aWV3TGlzdC5zdWJzZWN0aW9uW2ldLm1haW5JbmZvW3ldLmNhc2Vbel0ucmVzdWx0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgLmhpZGVJZkVtcHR5XHJcbiAgICAgICAgICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy52aWV3TGlzdC5zdWJzZWN0aW9uW2ldLm1haW5JbmZvW3ldLmNhc2Vbel0uSGlkZGVuID1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnZpZXdMaXN0LnN1YnNlY3Rpb25baV0ubWFpbkluZm9beV0uaXNIaWRlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgLy9jb25jYXRcclxuICAgICAgICAgICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy52aWV3TGlzdC5zdWJzZWN0aW9uW2ldLm1haW5JbmZvW3ldLmNhc2Vbel0ucmVzdWx0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgLnByb3BlcnR5TGlzdCAhPSB1bmRlZmluZWQgJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy52aWV3TGlzdC5zdWJzZWN0aW9uW2ldLm1haW5JbmZvW3ldLmNhc2Vbel0ucmVzdWx0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgLnByb3BlcnR5TGlzdC5sZW5ndGggIT0gMFxyXG4gICAgICAgICAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHByb3BlcnR5TGlzdCA9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy52aWV3TGlzdC5zdWJzZWN0aW9uW2ldLm1haW5JbmZvW3ldLmNhc2Vbel0ucmVzdWx0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAucHJvcGVydHlMaXN0O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgY29uY2F0ID0gXCJcIjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgYSA9IDA7IGEgPCBwcm9wZXJ0eUxpc3QubGVuZ3RoOyBhKyspIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBjb25jYXQgPVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uY2F0ICtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5TGlzdFthXS5wcmVmaXggK1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy52aWV3SW5mb09iakxpc3RbaV1bcHJvcGVydHlMaXN0W2FdLnByb3BlcnR5XSArXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eUxpc3RbYV0uc3VmZml4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudmlld0xpc3Quc3Vic2VjdGlvbltpXS5tYWluSW5mb1t5XS5jYXNlW1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHpcclxuICAgICAgICAgICAgICAgICAgICAgICAgXS5yZXN1bHQuY29uY2F0ID0gY29uY2F0O1xyXG4gICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgICAgdGhpcy52aWV3TGlzdC5zdWJzZWN0aW9uW2ldLm1haW5JbmZvW3ldLnR5cGUgPT0gXCJsaW5rXCIgJiZcclxuICAgICAgICAgICAgICAgICAgKHRoaXMudmlld0dlbmVyaWNPYmoubmF2aWdhdGlvbkNvbnN0ICE9IHVuZGVmaW5lZCB8fFxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmlld0dlbmVyaWNPYmoubmF2aWdhdGlvbkNvbnN0ICE9IG51bGwpXHJcbiAgICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgICAgbGV0IHRlbXBMaW5rID1cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnZpZXdHZW5lcmljT2JqLm5hdmlnYXRpb25Db25zdFtcclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMudmlld0xpc3Quc3Vic2VjdGlvbltpXS5tYWluSW5mb1t5XS5wYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgXTtcclxuICAgICAgICAgICAgICAgICAgaWYgKHRlbXBMaW5rICE9IHVuZGVmaW5lZCAmJiB0ZW1wTGluayAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy52aWV3TGlzdC5zdWJzZWN0aW9uW2ldLm1haW5JbmZvW3ldLnBhdGggPSB0ZW1wTGluaztcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgICB0aGlzLnZpZXdMaXN0LnN1YnNlY3Rpb25baV0ubWFpbkluZm9beV0udHlwZSA9PSBcImxpbmtcIiAmJlxyXG4gICAgICAgICAgICAgICAgICB0aGlzLnZpZXdHZW5lcmljT2JqLmxpc3RFbnZpcm9ubWVudHMgIT0gdW5kZWZpbmVkICYmXHJcbiAgICAgICAgICAgICAgICAgIHRoaXMudmlld0dlbmVyaWNPYmoubGlzdEVudmlyb25tZW50cy5sZW5ndGggIT0gMFxyXG4gICAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICAgIGZvciAoXHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IHogPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgIHogPCB0aGlzLnZpZXdHZW5lcmljT2JqLmxpc3RFbnZpcm9ubWVudHMubGVuZ3RoO1xyXG4gICAgICAgICAgICAgICAgICAgIHorK1xyXG4gICAgICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnZpZXdMaXN0LnN1YnNlY3Rpb25baV0ubWFpbkluZm9beV0uZW52aXJvbm1lbnQgPT1cclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMudmlld0dlbmVyaWNPYmoubGlzdEVudmlyb25tZW50c1t6XS5lbnZpcm9ubWVudFxyXG4gICAgICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy52aWV3TGlzdC5zdWJzZWN0aW9uW2ldLm1haW5JbmZvW3ldLmlzRnVsbHBhdGggPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy52aWV3TGlzdC5zdWJzZWN0aW9uW2ldLm1haW5JbmZvW3ldLmZ1bGxwYXRoID1cclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy52aWV3R2VuZXJpY09iai5saXN0RW52aXJvbm1lbnRzW3pdLnVybCArXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudmlld0xpc3Quc3Vic2VjdGlvbltpXS5tYWluSW5mb1t5XS5wYXRoO1xyXG4gICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKFxyXG4gICAgICAgICAgICAgICAgICB0aGlzLnZpZXdMaXN0LnN1YnNlY3Rpb25baV0ubWFpbkluZm9beV0udHlwZSA9PSBcImxpbmtcIlxyXG4gICAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMudmlld0xpc3Quc3Vic2VjdGlvbltpXS5tYWluSW5mb1t5XS5pc0Z1bGxwYXRoID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMudmlld0xpc3Quc3Vic2VjdGlvbltpXS5tYWluSW5mb1t5XS5mdWxscGF0aCA9XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy52aWV3TGlzdC5zdWJzZWN0aW9uW2ldLm1haW5JbmZvW3ldLnBhdGg7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHRoaXMuaXNSZWFkeSA9IHRydWU7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICB0aGlzLnZpZXdMaXN0LnN1YnNlY3Rpb25baV0ubWFpbkluZm9QYXRoICE9IHVuZGVmaW5lZCAmJlxyXG4gICAgICAgICAgdGhpcy52aWV3TGlzdC5zdWJzZWN0aW9uW2ldLm1haW5JbmZvUGF0aCAhPSBcIlwiXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgIHRoaXMudmlld0xpc3Quc3Vic2VjdGlvbltpXS5lbnZpcm9ubWVudCAhPSB1bmRlZmluZWQgJiZcclxuICAgICAgICAgICAgdGhpcy52aWV3TGlzdC5zdWJzZWN0aW9uW2ldLm1haW5JbmZvUGF0aCAhPSBcIlwiXHJcbiAgICAgICAgICApIHtcclxuICAgICAgICAgICAgZm9yIChcclxuICAgICAgICAgICAgICBsZXQgeiA9IDA7XHJcbiAgICAgICAgICAgICAgeiA8IHRoaXMudmlld0dlbmVyaWNPYmoubGlzdEVudmlyb25tZW50cy5sZW5ndGg7XHJcbiAgICAgICAgICAgICAgeisrXHJcbiAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgIHRoaXMudmlld0xpc3Quc3Vic2VjdGlvbltpXS5lbnZpcm9ubWVudCA9PVxyXG4gICAgICAgICAgICAgICAgdGhpcy52aWV3R2VuZXJpY09iai5saXN0RW52aXJvbm1lbnRzW3pdLmVudmlyb25tZW50XHJcbiAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnZpZXdMaXN0LnN1YnNlY3Rpb25baV0uZnVsbHBhdGggPVxyXG4gICAgICAgICAgICAgICAgICB0aGlzLnZpZXdHZW5lcmljT2JqLmxpc3RFbnZpcm9ubWVudHNbel0udXJsICtcclxuICAgICAgICAgICAgICAgICAgdGhpcy52aWV3TGlzdC5zdWJzZWN0aW9uW2ldLm1haW5JbmZvUGF0aDtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSBlbHNlIGlmIChcclxuICAgICAgICAgICAgdGhpcy52aWV3R2VuZXJpY09iai52aWV3RW52aXJvbm1lbnQgIT0gdW5kZWZpbmVkICYmXHJcbiAgICAgICAgICAgIHRoaXMudmlld0dlbmVyaWNPYmoudmlld0Vudmlyb25tZW50ICE9IFwiXCJcclxuICAgICAgICAgICkge1xyXG4gICAgICAgICAgICB0aGlzLnZpZXdMaXN0LnN1YnNlY3Rpb25baV0uZnVsbHBhdGggPVxyXG4gICAgICAgICAgICAgIHRoaXMudmlld0dlbmVyaWNPYmoudmlld0Vudmlyb25tZW50ICtcclxuICAgICAgICAgICAgICB0aGlzLnZpZXdMaXN0LnN1YnNlY3Rpb25baV0ubWFpbkluZm9QYXRoO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy52aWV3TGlzdC5zdWJzZWN0aW9uW2ldLmZ1bGxwYXRoID1cclxuICAgICAgICAgICAgICB0aGlzLnZpZXdMaXN0LnN1YnNlY3Rpb25baV0ubWFpbkluZm9Vcmw7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMudmlld0xpc3Quc3Vic2VjdGlvbltpXS5mdWxscGF0aCA9XHJcbiAgICAgICAgICAgIHRoaXMudmlld0xpc3Quc3Vic2VjdGlvbltpXS5tYWluSW5mb1VybDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IHJlcU9iaiA9IHRoaXMudmlld0xpc3Quc3Vic2VjdGlvbltpXS5yZXFPYmogPz8gdGhpcy5nZXRMaXN0O1xyXG4gICAgICAgIGlmICh0aGlzLnZpZXdMaXN0LnN1YnNlY3Rpb25baV0ucmVxT2JqICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKFxyXG4gICAgICAgICAgICB0aGlzLnZpZXdMaXN0LnN1YnNlY3Rpb25baV0ucmVxT2JqXHJcbiAgICAgICAgICApKSB7XHJcbiAgICAgICAgICAgIHJlcU9ialtrZXldID0gdGhpcy5nZXRMaXN0W3ZhbHVlIGFzIHN0cmluZ10gfHwgdGhpcy52aWV3R2VuZXJpY09iai5kaWN0c1t2YWx1ZSBhcyBzdHJpbmddO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5odHRwLnBvc3QodGhpcy52aWV3TGlzdC5zdWJzZWN0aW9uW2ldLmZ1bGxwYXRoLCByZXFPYmopLnN1YnNjcmliZShcclxuICAgICAgICAgIChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgdGhpcy52aWV3TGlzdC5zdWJzZWN0aW9uW2ldLnJlc09iak5hbWUgPT09IHVuZGVmaW5lZCB8fFxyXG4gICAgICAgICAgICAgIHRoaXMudmlld0xpc3Quc3Vic2VjdGlvbltpXS5yZXNPYmpOYW1lID09PSBcIlwiXHJcbiAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgIHRoaXMudmlld0luZm9PYmpMaXN0W2ldID0gcmVzcG9uc2U7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgdGhpcy52aWV3SW5mb09iakxpc3RbaV0gPVxyXG4gICAgICAgICAgICAgICAgcmVzcG9uc2VbdGhpcy52aWV3TGlzdC5zdWJzZWN0aW9uW2ldLnJlc09iak5hbWVdO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuaXNSZWFkeSA9IHRydWU7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0SlNPTih1cmw6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldCh1cmwpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBHZXRDb29raWUoY29va2llU2VydmljZTogQ29va2llU2VydmljZSwga2V5OiBzdHJpbmcpIHtcclxuICAgIGxldCB2YWx1ZSA9IGNvb2tpZVNlcnZpY2UuZ2V0KGtleSk7XHJcbiAgICBpZiAodmFsdWUgPT0gdW5kZWZpbmVkIHx8IHZhbHVlLnRyaW0oKSA9PSBcIlwiKSByZXR1cm4gbnVsbDtcclxuICAgIHJldHVybiB0aGlzLkRlY3J5cHRTdHJpbmcodmFsdWUsIFwiQWRJbnNGT1UxMjM0NTY3OFwiKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgRGVjcnlwdFN0cmluZyhjaGlwcGVyVGV4dDogc3RyaW5nLCBjaGlwcGVyS2V5OiBzdHJpbmcpIHtcclxuICAgIGlmIChcclxuICAgICAgY2hpcHBlcktleSA9PSB1bmRlZmluZWQgfHxcclxuICAgICAgY2hpcHBlcktleS50cmltKCkgPT0gXCJcIiB8fFxyXG4gICAgICBjaGlwcGVyVGV4dCA9PSB1bmRlZmluZWQgfHxcclxuICAgICAgY2hpcHBlclRleHQudHJpbSgpID09IFwiXCJcclxuICAgIClcclxuICAgICAgcmV0dXJuIGNoaXBwZXJUZXh0O1xyXG4gICAgbGV0IGNoaXBwZXJLZXlBcnIgPSBDcnlwdG9KUy5lbmMuVXRmOC5wYXJzZShjaGlwcGVyS2V5KTtcclxuICAgIGxldCBpdiA9IENyeXB0b0pTLmxpYi5Xb3JkQXJyYXkuY3JlYXRlKFsweDAwLCAweDAwLCAweDAwLCAweDAwXSk7XHJcbiAgICBsZXQgZGVjcnlwdGVkID0gQ3J5cHRvSlMuQUVTLmRlY3J5cHQoY2hpcHBlclRleHQsIGNoaXBwZXJLZXlBcnIsIHtcclxuICAgICAgaXY6IGl2LFxyXG4gICAgfSk7XHJcbiAgICBsZXQgcGxhaW5UZXh0ID0gZGVjcnlwdGVkLnRvU3RyaW5nKENyeXB0b0pTLmVuYy5VdGY4KTtcclxuICAgIHJldHVybiBwbGFpblRleHQ7XHJcbiAgfVxyXG5cclxuICBnZW5BY3Rpb24odmlld09iaiwgcGFyYW0pIHtcclxuICAgIGxldCBhcnJMaXN0ID0ge307XHJcblxyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwYXJhbS5sZW5ndGg7IGkrKykge1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgdmlld09ialtwYXJhbVtpXS50eXBlXSAhPSB1bmRlZmluZWQgfHxcclxuICAgICAgICB2aWV3T2JqW3BhcmFtW2ldLnByb3BlcnR5XSAhPSB1bmRlZmluZWRcclxuICAgICAgKSB7XHJcbiAgICAgICAgYXJyTGlzdFtwYXJhbVtpXS50eXBlXSA9IHZpZXdPYmpbcGFyYW1baV0ucHJvcGVydHldO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGFyckxpc3RbcGFyYW1baV0udHlwZV0gPSBwYXJhbVtpXS5wcm9wZXJ0eTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGFyckxpc3Q7XHJcbiAgfVxyXG5cclxuICBnZW5Sb3V0ZXJMaW5rKHVybExpbms6IHN0cmluZykge1xyXG4gICAgbGV0IHRlbXBMaW5rID0gdXJsTGluaztcclxuICAgIGlmIChcclxuICAgICAgdGhpcy52aWV3R2VuZXJpY09iai5uYXZpZ2F0aW9uQ29uc3QgIT0gdW5kZWZpbmVkICYmXHJcbiAgICAgIHRoaXMudmlld0dlbmVyaWNPYmoubmF2aWdhdGlvbkNvbnN0W3VybExpbmtdICE9IG51bGxcclxuICAgICkge1xyXG4gICAgICB0ZW1wTGluayA9IHRoaXMudmlld0dlbmVyaWNPYmoubmF2aWdhdGlvbkNvbnN0W3VybExpbmtdO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRlbXBMaW5rO1xyXG4gIH1cclxuXHJcbiAgcmVkaXJlY3RGdWxsUGF0aChmdWxscGF0aDogc3RyaW5nLCBwYXJhbTogT2JqZWN0LCB0YXJnZXQ6IHN0cmluZykge1xyXG4gICAgbGV0IHF1ZXJ5UGFyYW0gPSBcIlwiO1xyXG4gICAgY29uc3QgTGlzdE9iaiA9IE9iamVjdC5rZXlzKHBhcmFtKTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgTGlzdE9iai5sZW5ndGg7IGkrKykge1xyXG4gICAgICBpZiAocXVlcnlQYXJhbSAhPSBcIlwiKSB7XHJcbiAgICAgICAgcXVlcnlQYXJhbSA9IHF1ZXJ5UGFyYW0gKyBcIiZcIiArIExpc3RPYmpbaV0gKyBcIj1cIiArIHBhcmFtW0xpc3RPYmpbaV1dO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHF1ZXJ5UGFyYW0gPSBMaXN0T2JqW2ldICsgXCI9XCIgKyBwYXJhbVtMaXN0T2JqW2ldXTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgd2luZG93Lm9wZW4oZnVsbHBhdGggKyBcIj9cIiArIHF1ZXJ5UGFyYW0sIHRhcmdldCk7XHJcbiAgfVxyXG5cclxuICBjYWxsYmFja0Z1bmN0aW9uKGl0ZW0sIGtleTogc3RyaW5nID0gXCJcIikge1xyXG4gICAgbGV0IENCT2JqID0ge1xyXG4gICAgICBWaWV3T2JqOiBpdGVtLFxyXG4gICAgICBLZXk6IGtleSxcclxuICAgIH07XHJcbiAgICB0aGlzLmNhbGxiYWNrLmVtaXQoQ0JPYmopO1xyXG4gIH1cclxuXHJcbiAgc3dpdGNoQ2FzZShpdGVtLCBjb25kTGlzdCkge1xyXG4gICAgbGV0IGNvbmRpdGlvbiA9IGZhbHNlO1xyXG4gICAgaWYgKCFpdGVtKSByZXR1cm4gZmFsc2U7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvbmRMaXN0LmNvbmRpdGlvbnMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgaWYgKGNvbmRMaXN0LmNvbmRpdGlvbnNbaV0ucmVzdHJpY3Rpb24gPT0gXCJFUVwiKSB7XHJcbiAgICAgICAgaWYgKGNvbmRMaXN0LmNvbmRpdGlvbnNbaV0uaXNVc2VyICE9IHRydWUpIHtcclxuICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgaXRlbVtjb25kTGlzdC5jb25kaXRpb25zW2ldLnByb3BlcnR5XSA9PVxyXG4gICAgICAgICAgICBjb25kTGlzdC5jb25kaXRpb25zW2ldLnZhbHVlXHJcbiAgICAgICAgICApIHtcclxuICAgICAgICAgICAgY29uZGl0aW9uID0gdHJ1ZTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNvbmRpdGlvbiA9IGZhbHNlO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICBpdGVtW2NvbmRMaXN0LmNvbmRpdGlvbnNbaV0ucHJvcGVydHldID09IHRoaXMuVXNlckFjY2Vzc1tcIlVzZXJOYW1lXCJdXHJcbiAgICAgICAgICApIHtcclxuICAgICAgICAgICAgY29uZGl0aW9uID0gdHJ1ZTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNvbmRpdGlvbiA9IGZhbHNlO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSBpZiAoY29uZExpc3QuY29uZGl0aW9uc1tpXS5yZXN0cmljdGlvbiA9PSBcIk5FUVwiKSB7XHJcbiAgICAgICAgaWYgKGNvbmRMaXN0LmNvbmRpdGlvbnNbaV0uaXNVc2VyICE9IHRydWUpIHtcclxuICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgaXRlbVtjb25kTGlzdC5jb25kaXRpb25zW2ldLnByb3BlcnR5XSAhPVxyXG4gICAgICAgICAgICBjb25kTGlzdC5jb25kaXRpb25zW2ldLnZhbHVlXHJcbiAgICAgICAgICApIHtcclxuICAgICAgICAgICAgY29uZGl0aW9uID0gdHJ1ZTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNvbmRpdGlvbiA9IGZhbHNlO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICBpdGVtW2NvbmRMaXN0LmNvbmRpdGlvbnNbaV0ucHJvcGVydHldICE9IHRoaXMuVXNlckFjY2Vzc1tcIlVzZXJOYW1lXCJdXHJcbiAgICAgICAgICApIHtcclxuICAgICAgICAgICAgY29uZGl0aW9uID0gdHJ1ZTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNvbmRpdGlvbiA9IGZhbHNlO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSBpZiAoY29uZExpc3QuY29uZGl0aW9uc1tpXS5yZXN0cmljdGlvbiA9PSBcIkdUXCIpIHtcclxuICAgICAgICBpZiAoY29uZExpc3QuY29uZGl0aW9uc1tpXS5pc1VzZXIgIT0gdHJ1ZSkge1xyXG4gICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICBpdGVtW2NvbmRMaXN0LmNvbmRpdGlvbnNbaV0ucHJvcGVydHldID4gY29uZExpc3QuY29uZGl0aW9uc1tpXS52YWx1ZVxyXG4gICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgIGNvbmRpdGlvbiA9IHRydWU7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBjb25kaXRpb24gPSBmYWxzZTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgaXRlbVtjb25kTGlzdC5jb25kaXRpb25zW2ldLnByb3BlcnR5XSA+IHRoaXMuVXNlckFjY2Vzc1tcIlVzZXJOYW1lXCJdXHJcbiAgICAgICAgICApIHtcclxuICAgICAgICAgICAgY29uZGl0aW9uID0gdHJ1ZTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNvbmRpdGlvbiA9IGZhbHNlO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSBpZiAoY29uZExpc3QuY29uZGl0aW9uc1tpXS5yZXN0cmljdGlvbiA9PSBcIkdURVwiKSB7XHJcbiAgICAgICAgaWYgKGNvbmRMaXN0LmNvbmRpdGlvbnNbaV0uaXNVc2VyICE9IHRydWUpIHtcclxuICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgaXRlbVtjb25kTGlzdC5jb25kaXRpb25zW2ldLnByb3BlcnR5XSA+PVxyXG4gICAgICAgICAgICBjb25kTGlzdC5jb25kaXRpb25zW2ldLnZhbHVlXHJcbiAgICAgICAgICApIHtcclxuICAgICAgICAgICAgY29uZGl0aW9uID0gdHJ1ZTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNvbmRpdGlvbiA9IGZhbHNlO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICBpdGVtW2NvbmRMaXN0LmNvbmRpdGlvbnNbaV0ucHJvcGVydHldID49IHRoaXMuVXNlckFjY2Vzc1tcIlVzZXJOYW1lXCJdXHJcbiAgICAgICAgICApIHtcclxuICAgICAgICAgICAgY29uZGl0aW9uID0gdHJ1ZTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNvbmRpdGlvbiA9IGZhbHNlO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSBpZiAoY29uZExpc3QuY29uZGl0aW9uc1tpXS5yZXN0cmljdGlvbiA9PSBcIkxUXCIpIHtcclxuICAgICAgICBpZiAoY29uZExpc3QuY29uZGl0aW9uc1tpXS5pc1VzZXIgIT0gdHJ1ZSkge1xyXG4gICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICBpdGVtW2NvbmRMaXN0LmNvbmRpdGlvbnNbaV0ucHJvcGVydHldIDwgY29uZExpc3QuY29uZGl0aW9uc1tpXS52YWx1ZVxyXG4gICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgIGNvbmRpdGlvbiA9IHRydWU7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBjb25kaXRpb24gPSBmYWxzZTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgaXRlbVtjb25kTGlzdC5jb25kaXRpb25zW2ldLnByb3BlcnR5XSA8IHRoaXMuVXNlckFjY2Vzc1tcIlVzZXJOYW1lXCJdXHJcbiAgICAgICAgICApIHtcclxuICAgICAgICAgICAgY29uZGl0aW9uID0gdHJ1ZTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNvbmRpdGlvbiA9IGZhbHNlO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSBpZiAoY29uZExpc3QuY29uZGl0aW9uc1tpXS5yZXN0cmljdGlvbiA9PSBcIkxURVwiKSB7XHJcbiAgICAgICAgaWYgKGNvbmRMaXN0LmNvbmRpdGlvbnNbaV0uaXNVc2VyICE9IHRydWUpIHtcclxuICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgaXRlbVtjb25kTGlzdC5jb25kaXRpb25zW2ldLnByb3BlcnR5XSA8PVxyXG4gICAgICAgICAgICBjb25kTGlzdC5jb25kaXRpb25zW2ldLnZhbHVlXHJcbiAgICAgICAgICApIHtcclxuICAgICAgICAgICAgY29uZGl0aW9uID0gdHJ1ZTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNvbmRpdGlvbiA9IGZhbHNlO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICBpdGVtW2NvbmRMaXN0LmNvbmRpdGlvbnNbaV0ucHJvcGVydHldIDw9IHRoaXMuVXNlckFjY2Vzc1tcIlVzZXJOYW1lXCJdXHJcbiAgICAgICAgICApIHtcclxuICAgICAgICAgICAgY29uZGl0aW9uID0gdHJ1ZTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNvbmRpdGlvbiA9IGZhbHNlO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSBpZiAoY29uZExpc3QuY29uZGl0aW9uc1tpXS5yZXN0cmljdGlvbiA9PSBcIklOXCIpIHtcclxuICAgICAgICBpZiAoY29uZExpc3QuY29uZGl0aW9uc1tpXS5pc1VzZXIgIT0gdHJ1ZSkge1xyXG4gICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICBjb25kTGlzdC5jb25kaXRpb25zW2ldLnZhbHVlLmZpbmRJbmRleChcclxuICAgICAgICAgICAgICAoeCkgPT4geCA9PSBpdGVtW2NvbmRMaXN0LmNvbmRpdGlvbnNbaV0ucHJvcGVydHldXHJcbiAgICAgICAgICAgICkgPj0gMFxyXG4gICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgIGNvbmRpdGlvbiA9IHRydWU7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBjb25kaXRpb24gPSBmYWxzZTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgY29uZExpc3QuY29uZGl0aW9uc1tpXS52YWx1ZS5maW5kSW5kZXgoXHJcbiAgICAgICAgICAgICAgKHgpID0+IHggPT0gdGhpcy5Vc2VyQWNjZXNzW1wiVXNlck5hbWVcIl1cclxuICAgICAgICAgICAgKSA+PSAwXHJcbiAgICAgICAgICApIHtcclxuICAgICAgICAgICAgY29uZGl0aW9uID0gdHJ1ZTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNvbmRpdGlvbiA9IGZhbHNlO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSBpZiAoY29uZExpc3QuY29uZGl0aW9uc1tpXS5yZXN0cmljdGlvbiA9PSBcIk5JTlwiKSB7XHJcbiAgICAgICAgaWYgKGNvbmRMaXN0LmNvbmRpdGlvbnNbaV0uaXNVc2VyICE9IHRydWUpIHtcclxuICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgY29uZExpc3QuY29uZGl0aW9uc1tpXS52YWx1ZS5maW5kSW5kZXgoXHJcbiAgICAgICAgICAgICAgKHgpID0+IHggPT0gaXRlbVtjb25kTGlzdC5jb25kaXRpb25zW2ldLnByb3BlcnR5XVxyXG4gICAgICAgICAgICApID09IC0xXHJcbiAgICAgICAgICApIHtcclxuICAgICAgICAgICAgY29uZGl0aW9uID0gdHJ1ZTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNvbmRpdGlvbiA9IGZhbHNlO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICBjb25kTGlzdC5jb25kaXRpb25zW2ldLnZhbHVlLmZpbmRJbmRleChcclxuICAgICAgICAgICAgICAoeCkgPT4geCA9PSB0aGlzLlVzZXJBY2Nlc3NbXCJVc2VyTmFtZVwiXVxyXG4gICAgICAgICAgICApID09IC0xXHJcbiAgICAgICAgICApIHtcclxuICAgICAgICAgICAgY29uZGl0aW9uID0gdHJ1ZTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNvbmRpdGlvbiA9IGZhbHNlO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBjb25kaXRpb247XHJcbiAgfVxyXG59XHJcbiIsIjxzZWN0aW9uIGlkPVwiaG9yaXpvbnRhbC1mb3JtLWxheW91dHNcIj5cclxuICA8ZGl2IGNsYXNzPVwicm93IHRleHQtbGVmdFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxyXG4gICAgICA8ZGl2IFtuZ0NsYXNzXT1cIklzQ2FyZCA/ICdjYXJkJyA6ICcnXCIgKm5nSWY9XCJpc1JlYWR5XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInBsLTMgbWItMiBtdC0yXCIgKm5nSWY9XCJ2aWV3TGlzdD8udGl0bGUgIT0gJydcIj5cclxuICAgICAgICAgIDxoNCBjbGFzcz1cImNhcmQtdGl0bGUgdWNTZWFyY2gtdGl0bGVcIiBpZD1cImhvcnotbGF5b3V0LWNvbG9yZWQtY29udHJvbHNcIiB0cmFuc2xhdGU+e3t2aWV3TGlzdC50aXRsZX19PC9oND5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5XCIgKm5nRm9yPVwibGV0IHNzIG9mIHZpZXdMaXN0Py5zdWJzZWN0aW9uO2xldCBpID0gaW5kZXg7XCI+XHJcbiAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICA8bGliLXVjU3Vic2VjdGlvbiAqbmdJZj1cInNzLnN1YnNlY3Rpb24gIT0gJydcIiBbaWRdPVwic3Muc3ViU2VjdGlvbklkICsgJ2lkJ1wiIFt0aXRsZV09XCJzcy5zdWJTZWN0aW9uVGl0bGVcIlxyXG4gICAgICAgICAgICAgIFtwYW5lbF09XCJzcy5zdWJTZWN0aW9uSWRcIj5cclxuICAgICAgICAgICAgPC9saWItdWNTdWJzZWN0aW9uPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ib2R5IHAtMyBib3JkZXItdG9wIGJvcmRlci1ib3R0b21cIiBbaWRdPSdzcy5zdWJTZWN0aW9uSWQnPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwIHJvd1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgbWkgb2Ygc3M/Lm1haW5JbmZvXCJcclxuICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnY29sLXh4bC0yIGNvbC14bC0zIGNvbC1sZy00IGNvbC1tZC02IGNvbC14cy0xMiBweS0yJzogbWkuaXNIaWRlID09IHVuZGVmaW5lZCB8fCAhbWkuaXNIaWRlIHx8ICh2aWV3SW5mb09iakxpc3RbaV1bbWkucHJvcGVydHldICE9ICcnICYmIHZpZXdJbmZvT2JqTGlzdFtpXVttaS5wcm9wZXJ0eV0gIT0gbnVsbCl9XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJtaS5pc0hpZGUgPT0gdW5kZWZpbmVkIHx8ICFtaS5pc0hpZGUgfHwgKHZpZXdJbmZvT2JqTGlzdFtpXVttaS5wcm9wZXJ0eV0gIT0gJycgJiYgdmlld0luZm9PYmpMaXN0W2ldW21pLnByb3BlcnR5XSAhPSBudWxsKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIiAqbmdJZj1cIm1pLnR5cGUgIT0gJ3N3aXRjaCdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwibGFiZWwtY29udHJvbCBsYWJlbC1maWVsZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwibWkuY3VzdG9tQ2xhc3NMYWJlbCAhPSB1bmRlZmluZWQgPyBtaS5jdXN0b21DbGFzc0xhYmVsIDogJydcIiB0cmFuc2xhdGU+e3ttaS5sYWJlbH19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiICpuZ0lmPVwibWkudHlwZSA9PSAnc3dpdGNoJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBjYXNlIG9mIG1pPy5jYXNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInN3aXRjaENhc2Uodmlld0luZm9PYmpMaXN0W2ldLGNhc2UpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJsYWJlbC1jb250cm9sIGxhYmVsLWZpZWxkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwibWkuY3VzdG9tQ2xhc3NMYWJlbCAhPSB1bmRlZmluZWQgPyBtaS5jdXN0b21DbGFzc0xhYmVsIDogJydcIiB0cmFuc2xhdGU+e3tjYXNlLnJlc3VsdC5sYWJlbH19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ2aWV3SW5mb09iakxpc3RbaV0gIT0gdW5kZWZpbmVkXCIgY2xhc3M9XCJjb2wtbWQtMTJcIiBbbmdDbGFzc109XCJ7ICd0ZXh0LWxlZnQnOiBtaS5wb3NpdGlvbiA9PSAnbGVmdCcsXHJcbiAgICAgICAgICAgICAgICAgICAgICd0ZXh0LXJpZ2h0JzogbWkucG9zaXRpb24gPT0gJ3JpZ2h0JywgJ3RleHQtY2VudGVyJzogbWkucG9zaXRpb24gPT0gJ2NlbnRlcicgfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiKG1pLnR5cGUgPT0gJ2Jvb2xlYW4nICYmIHZpZXdJbmZvT2JqTGlzdFtpXVttaS5wcm9wZXJ0eV0gIT0gbnVsbCkgfHwgKHZpZXdJbmZvT2JqTGlzdFtpXVttaS5wcm9wZXJ0eV0gIT0gJycgJiYgdmlld0luZm9PYmpMaXN0W2ldW21pLnByb3BlcnR5XSAhPSBudWxsKSB8fCBtaS50eXBlID09ICdzd2l0Y2gnIHx8IG1pLnR5cGUgPT0nY29uY2F0JzsgdGhlbiBub25FbXB0eUxhYmVsIGVsc2UgZW1wdHlMYWJlbFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNlbXB0eUxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCAqbmdJZj1cIm1pLnR5cGUgPT0gJ2JsYW5rJ1wiPjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsICpuZ0lmPVwibWkudHlwZSAhPSAnYmxhbmsnXCIgY2xhc3M9XCJsYWJlbC1jb250cm9sIGxhYmVsLWZpZWxkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIm1pLmN1c3RvbUNsYXNzUHJvcGVydHkgIT0gdW5kZWZpbmVkID8gbWkuY3VzdG9tQ2xhc3NQcm9wZXJ0eSA6ICcnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbGF0ZT4tPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNub25FbXB0eUxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwibWkudHlwZSA9PSAndGV4dCdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInZpZXdJbmZvT2JqTGlzdFtpXVttaS5wcm9wZXJ0eV0gIT0gJycgJiYgdmlld0luZm9PYmpMaXN0W2ldW21pLnByb3BlcnR5XSAhPSBudWxsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJsYWJlbC1jb250cm9sIGJyZWFrd29yZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIm1pLmN1c3RvbUNsYXNzUHJvcGVydHkgIT0gdW5kZWZpbmVkID8gbWkuY3VzdG9tQ2xhc3NQcm9wZXJ0eSA6ICcnXCIgdHJhbnNsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyB2aWV3SW5mb09iakxpc3RbaV1bbWkucHJvcGVydHldIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwidmlld0luZm9PYmpMaXN0W2ldW21pLnByb3BlcnR5XSA9PSAnJyB8fCB2aWV3SW5mb09iakxpc3RbaV1bbWkucHJvcGVydHldID09IG51bGxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImxhYmVsLWNvbnRyb2wgbGFiZWwtZmllbGRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJtaS5jdXN0b21DbGFzc1Byb3BlcnR5ICE9IHVuZGVmaW5lZCA/IG1pLmN1c3RvbUNsYXNzUHJvcGVydHkgOiAnJ1wiIHRyYW5zbGF0ZT4tXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgKm5nSWY9XCJtaS50eXBlID09ICdjdXJyZW5jeSdcIiBjbGFzcz1cImxhYmVsLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwibWkuY3VzdG9tQ2xhc3NQcm9wZXJ0eSAhPSB1bmRlZmluZWQgPyBtaS5jdXN0b21DbGFzc1Byb3BlcnR5IDogJydcIiB0cmFuc2xhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyB2aWV3SW5mb09iakxpc3RbaV1bbWkucHJvcGVydHldIHwgbnVtYmVyOiBtaT8ucHJlY2lzaW9uID8gbWk/LnByZWNpc2lvbiA6ICcwLjInIDonZW4tVVMnfX0gPHNwYW4gKm5nSWY9XCJtaT8uSXNQcmNudFwiPiZuYnNwOyU8L3NwYW4+IDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsICpuZ0lmPVwibWkudHlwZSA9PSAnZGF0ZSdcIiBjbGFzcz1cImxhYmVsLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwibWkuY3VzdG9tQ2xhc3NQcm9wZXJ0eSAhPSB1bmRlZmluZWQgPyBtaS5jdXN0b21DbGFzc1Byb3BlcnR5IDogJydcIiB0cmFuc2xhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyB2aWV3SW5mb09iakxpc3RbaV1bbWkucHJvcGVydHldIHwgZGF0ZTogKG1pPy5kYXRlRm9ybWF0KSA/IG1pPy5kYXRlRm9ybWF0IDogJ2RkLU1NTS15eXl5J319IDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsICpuZ0lmPVwibWkudHlwZSA9PSAnbGluaydcIiBjbGFzcz1cImxhYmVsLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwibWkuY3VzdG9tQ2xhc3NQcm9wZXJ0eSAhPSB1bmRlZmluZWQgPyBtaS5jdXN0b21DbGFzc1Byb3BlcnR5IDogJydcIiB0cmFuc2xhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSAqbmdJZj1cIiFtaT8uaXNGdWxscGF0aFwiIFtyb3V0ZXJMaW5rXT1cImdlblJvdXRlckxpbmsobWkucGF0aClcIiBbdGFyZ2V0XT1cIm1pLnRhcmdldFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtxdWVyeVBhcmFtc109XCJnZW5BY3Rpb24odmlld0luZm9PYmpMaXN0W2ldLCBtaS5wYXJhbSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCIobWkuaXNDdXJyZW5jeSAhPSB1bmRlZmluZWQgJiYgbWkuaXNDdXJyZW5jeSlcIj57e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdJbmZvT2JqTGlzdFtpXVttaS5wcm9wZXJ0eV0gfCBudW1iZXI6Jy4yJzonZW4tVVMnIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIihtaS5pc0N1cnJlbmN5ID09IHVuZGVmaW5lZCB8fCAhbWkuaXNDdXJyZW5jeSlcIj57e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdJbmZvT2JqTGlzdFtpXVttaS5wcm9wZXJ0eV0gfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSAqbmdJZj1cIm1pPy5pc0Z1bGxwYXRoXCIgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKTtcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVkaXJlY3RGdWxsUGF0aChtaS5mdWxscGF0aCwgZ2VuQWN0aW9uKHZpZXdJbmZvT2JqTGlzdFtpXSwgbWkucGFyYW0pLCBtaS50YXJnZXQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiKG1pLmlzQ3VycmVuY3kgIT0gdW5kZWZpbmVkICYmIG1pLmlzQ3VycmVuY3kpXCI+e3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3SW5mb09iakxpc3RbaV1bbWkucHJvcGVydHldIHwgbnVtYmVyOicuMic6J2VuLVVTJyB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCIobWkuaXNDdXJyZW5jeSA9PSB1bmRlZmluZWQgfHwgIW1pLmlzQ3VycmVuY3kpXCI+e3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3SW5mb09iakxpc3RbaV1bbWkucHJvcGVydHldIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsICpuZ0lmPVwibWkudHlwZSA9PSAnY2FsbGJhY2snXCIgY2xhc3M9XCJsYWJlbC1jb250cm9sIGxhYmVsLWZpZWxkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIm1pLmN1c3RvbUNsYXNzUHJvcGVydHkgIT0gdW5kZWZpbmVkID8gbWkuY3VzdG9tQ2xhc3NQcm9wZXJ0eSA6ICcnXCIgdHJhbnNsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKTtcIiAoY2xpY2spPVwiY2FsbGJhY2tGdW5jdGlvbih2aWV3SW5mb09iakxpc3RbaV0sIG1pLmtleSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgdmlld0luZm9PYmpMaXN0W2ldW21pLnByb3BlcnR5XSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHRleHRhcmVhICpuZ0lmPVwibWkudHlwZSA9PSAndGV4dGFyZWEnXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiByZWFkb25seVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwibWkuY3VzdG9tQ2xhc3NQcm9wZXJ0eSAhPSB1bmRlZmluZWQgPyBtaS5jdXN0b21DbGFzc1Byb3BlcnR5IDogJydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRlPiB7eyB2aWV3SW5mb09iakxpc3RbaV1bbWkucHJvcGVydHldIH19IDwvdGV4dGFyZWE+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJtaS50eXBlID09ICdib29sZWFuJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJtaS5jdXN0b21DbGFzc1Byb3BlcnR5ICE9IHVuZGVmaW5lZCA/IG1pLmN1c3RvbUNsYXNzUHJvcGVydHkgOiAnJ1wiIHRyYW5zbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCAqbmdJZj1cInZpZXdJbmZvT2JqTGlzdFtpXVttaS5wcm9wZXJ0eV0gPT0gdHJ1ZVwiPlllczwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgKm5nSWY9XCJ2aWV3SW5mb09iakxpc3RbaV1bbWkucHJvcGVydHldID09IGZhbHNlXCI+Tm88L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8bGFiZWxcclxuICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJ2aWV3SW5mb09iakxpc3RbaV1bbWkucHJvcGVydHldID09ICcnIHx8IHZpZXdJbmZvT2JqTGlzdFtpXVttaS5wcm9wZXJ0eV0gPT0gbnVsbFwiPi08L2xhYmVsPiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJtaS50eXBlID09ICdjb25jYXQnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJsYWJlbC1jb250cm9sIGJyZWFrd29yZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIm1pLmN1c3RvbUNsYXNzUHJvcGVydHkgIT0gdW5kZWZpbmVkID8gbWkuY3VzdG9tQ2xhc3NQcm9wZXJ0eSA6ICcnXCIgdHJhbnNsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBtaS5jb25jYXQgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwibWkudHlwZSA9PSAnc3dpdGNoJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nRm9yPVwibGV0IGNzIG9mIG1pPy5jYXNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwic3dpdGNoQ2FzZSh2aWV3SW5mb09iakxpc3RbaV0sY3MpICYmICFjcy5IaWRkZW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImxhYmVsLWNvbnRyb2wgYnJlYWt3b3JkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIm1pLmN1c3RvbUNsYXNzUHJvcGVydHkgIT0gdW5kZWZpbmVkID8gbWkuY3VzdG9tQ2xhc3NQcm9wZXJ0eSA6ICcnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbGF0ZSAqbmdJZj1cImNzLnJlc3VsdC50eXBlID09ICd0ZXh0J1wiPnt7IHZpZXdJbmZvT2JqTGlzdFtpXVtjcy5yZXN1bHQucHJvcGVydHldXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBbbmdDbGFzc109XCJtaS5jdXN0b21DbGFzc1Byb3BlcnR5ICE9IHVuZGVmaW5lZCA/IG1pLmN1c3RvbUNsYXNzUHJvcGVydHkgOiAnJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGUgKm5nSWY9XCJjcy5yZXN1bHQudHlwZSA9PSAnZGVjaW1hbCdcIj57e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0luZm9PYmpMaXN0W2ldW2NzLnJlc3VsdC5wcm9wZXJ0eV0gfCBudW1iZXI6Jy4yJzonZW4tVVMnIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIFtuZ0NsYXNzXT1cIm1pLmN1c3RvbUNsYXNzUHJvcGVydHkgIT0gdW5kZWZpbmVkID8gbWkuY3VzdG9tQ2xhc3NQcm9wZXJ0eSA6ICcnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbGF0ZSAqbmdJZj1cImNzLnJlc3VsdC50eXBlID09ICdkYXRlJ1wiPnt7IHZpZXdJbmZvT2JqTGlzdFtpXVtjcy5yZXN1bHQucHJvcGVydHldIHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGU6ICdkZC1NTU0teXl5eScgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJjcy5yZXN1bHQudHlwZSA9PSAnbGluaydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwibWkuY3VzdG9tQ2xhc3NQcm9wZXJ0eSAhPSB1bmRlZmluZWQgPyBtaS5jdXN0b21DbGFzc1Byb3BlcnR5IDogJydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgW3RhcmdldF09XCJjcy5yZXN1bHQudGFyZ2V0XCIgW3JvdXRlckxpbmtdPVwiZ2VuUm91dGVyTGluayhjcy5yZXN1bHQucGF0aClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcXVlcnlQYXJhbXNdPVwiZ2VuQWN0aW9uKHZpZXdJbmZvT2JqTGlzdFtpXSxjcy5yZXN1bHQucGFyYW0pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiKG1pLmlzQ3VycmVuY3kgIT0gdW5kZWZpbmVkICYmIG1pLmlzQ3VycmVuY3kpXCI+e3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3SW5mb09iakxpc3RbaV1bY3MucmVzdWx0LnByb3BlcnR5XSB8IG51bWJlcjonLjInOidlbi1VUycgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiKG1pLmlzQ3VycmVuY3kgPT0gdW5kZWZpbmVkIHx8ICFtaS5pc0N1cnJlbmN5KVwiPnt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0luZm9PYmpMaXN0W2ldW2NzLnJlc3VsdC5wcm9wZXJ0eV0gfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiY3MucmVzdWx0LnR5cGUgPT0gJ2Jvb2xlYW4nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIm1pLmN1c3RvbUNsYXNzUHJvcGVydHkgIT0gdW5kZWZpbmVkID8gbWkuY3VzdG9tQ2xhc3NQcm9wZXJ0eSA6ICcnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwidmlld0luZm9PYmpMaXN0W2ldW2NzLnJlc3VsdC5wcm9wZXJ0eV0gPT0gJ3RydWUnXCI+WWVzPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJ2aWV3SW5mb09iakxpc3RbaV1bY3MucmVzdWx0LnByb3BlcnR5XSA9PSAnZmFsc2UnXCI+Tm88L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiY3MucmVzdWx0LnR5cGUgPT0gJ2NvbmNhdCdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImxhYmVsLWNvbnRyb2wgYnJlYWt3b3JkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwibWkuY3VzdG9tQ2xhc3NQcm9wZXJ0eSAhPSB1bmRlZmluZWQgPyBtaS5jdXN0b21DbGFzc1Byb3BlcnR5IDogJydcIiB0cmFuc2xhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGNzLnJlc3VsdC5jb25jYXQgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiY3MucmVzdWx0LnR5cGUgPT0gJ2NhbGxiYWNrJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjcy5yZXN1bHQuaXNUZXh0ICE9IHVuZGVmaW5lZCAmJiBjcy5yZXN1bHQuaXNUZXh0OyB0aGVuIHRleHRDYWxsYmFjayBlbHNlIGljb25DYWxsYmFja1wiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjdGV4dENhbGxiYWNrPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApO1wiIChjbGljayk9XCJjYWxsYmFja0Z1bmN0aW9uKHZpZXdJbmZvT2JqTGlzdFtpXSwgY3MucmVzdWx0LmtleSlcIj57e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0luZm9PYmpMaXN0W2ldW2NzLnJlc3VsdC5wcm9wZXJ0eV0gfX08L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2ljb25DYWxsYmFjaz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgW25nQ2xhc3NdPVwiW2NzLnJlc3VsdC50b29sdGlwICE9IHVuZGVmaW5lZCAmJiBjcy5yZXN1bHQudG9vbHRpcCAhPSAnJyA/ICd0b29sdGlwcycgOiAnJywgY3MucmVzdWx0LmFuY2hvciA9PSB1bmRlZmluZWQgfHwgY3MucmVzdWx0LmFuY2hvciA9PSAnJyA/ICdzdWNjZXNzIHAtMCcgOiBjcy5yZXN1bHQuYW5jaG9yXVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2FsbGJhY2tGdW5jdGlvbih2aWV3SW5mb09iakxpc3RbaV0sIGNzLnJlc3VsdC5rZXkpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZvbnQtbWVkaXVtLTMgbXItMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIiBjcy5yZXN1bHQuaWNvbiA9PSB1bmRlZmluZWQgfHwgY3MucmVzdWx0Lmljb24gPT0gJycgPyAnZnQtZWRpdC0yJyA6IGNzLnJlc3VsdC5pY29uIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJjcy5yZXN1bHQudG9vbHRpcCAhPSB1bmRlZmluZWQgJiYgY3MucmVzdWx0LnRvb2x0aXAgIT0gJydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJjcy5yZXN1bHQudG9vbHRpcCAhPSB1bmRlZmluZWQgJiYgY3MucmVzdWx0LnRvb2x0aXAgIT0gJycgPyAndG9vbHRpcHN0ZXh0JyA6ICcnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7Y3MucmVzdWx0LnRvb2x0aXB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncmlkLXZpZXdcIiAqbmdJZj1cImdyaWRWaWV3T2JqLmdyaWRWaWV3cy5sZW5ndGggPiAwXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBncmlkVmlldyBvZiBpbnB1dEdyaWRWaWV3T2JqczsgbGV0IGkgPSBpbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGliLXVjU3Vic2VjdGlvblxyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZ3JpZFZpZXdPYmouZ3JpZFZpZXdzW2ldLnN1YnNlY3Rpb24gJiYgZ3JpZFZpZXdPYmouZ3JpZFZpZXdzW2ldLnN1YnNlY3Rpb24gIT09ICcnXCJcclxuICAgICAgICAgICAgICAgICAgICBbaWRdPVwiJ2dyaWQtc3Vic2VjdGlvbi1pZCcraVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cImdyaWRWaWV3T2JqLmdyaWRWaWV3c1tpXS5zdWJzZWN0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICBbcGFuZWxdPVwiJ2dyaWQtc3Vic2VjdGlvbi1wYW5lbC0nK2lcIj5cclxuICAgICAgICAgICAgICAgICAgPC9saWItdWNTdWJzZWN0aW9uPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ib2R5XCIgW2lkXT1cIidncmlkLXN1YnNlY3Rpb24tcGFuZWwtJytpXCI+XHJcbjwhLS0gICAgICAgICAgICAgICAgICAgIDxsaWItdWNncmlkdmlldyBbZ3JpZElucHV0XT1cImdyaWRWaWV3XCIgKGNhbGxiYWNrKT1cImdyaWRFdmVudCgkZXZlbnQpXCIgKGlzUmVmcmVzaCk9XCJHZXRHcmlkVmlld0RhdGEoZ3JpZFZpZXdPYmouZ3JpZFZpZXdzW2ldLCBncmlkVmlldylcIj48L2xpYi11Y2dyaWR2aWV3Pi0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsaWItdWN0YWJsZSBbZ3JpZE9ial09XCJncmlkVmlld1wiIFtzdGFuZGFsb25lXT1cImZhbHNlXCIgKGNhbGxiYWNrKT1cImdyaWRFdmVudCgkZXZlbnQpXCI+PC9saWItdWN0YWJsZT5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9zZWN0aW9uPlxyXG4iXX0=
|
|
566
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWN2aWV3Z2VuZXJpYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy91Y3ZpZXdnZW5lcmljL3NyYy9saWIvdWN2aWV3Z2VuZXJpYy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy91Y3ZpZXdnZW5lcmljL3NyYy9saWIvdWN2aWV3Z2VuZXJpYy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFbEQsT0FBTyxFQUFZLGdCQUFnQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDL0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUMzQyxPQUFPLEtBQUssUUFBUSxNQUFNLFdBQVcsQ0FBQztBQUN0QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7Ozs7Ozs7QUFPNUQsTUFBTSxPQUFPLHNCQUFzQjtJQWNqQyxZQUNVLEtBQXFCLEVBQ3JCLElBQWdCLEVBQ2hCLGdCQUFrQyxFQUNsQyxhQUE0QjtRQUg1QixVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQixTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFqQjdCLG1CQUFjLEdBQXFCLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztRQUMxRCxn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aUJBQ0Y7cUJBQU07b0JBQ0wsSUFDRSxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQ3BDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FDeEMsSUFBSSxDQUFDLENBQUMsRUFDUDt3QkFDQSxTQUFTLEdBQUcsSUFBSSxDQUFDO3FCQUNsQjt5QkFBTTt3QkFDTCxTQUFTLEdBQUcsS0FBSyxDQUFDO3dCQUNsQixNQUFNO3FCQUNQO2lCQUNGO2FBQ0Y7U0FDRjtRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7O3VJQTFwQlUsc0JBQXNCOzJIQUF0QixzQkFBc0Isc0tDaEJuQyxxamRBaU1BOzRGRGpMYSxzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0UsbUJBQW1CO3lMQUtwQixjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0ksUUFBUTtzQkFBakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgRW52aXNPYmosIFVjVmlld0dlbmVyaWNPYmogfSBmcm9tIFwiLi9tb2RlbC91Yy12aWV3LWdlbmVyaWMtb2JqLm1vZGVsXCI7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xyXG5pbXBvcnQgeyBDb29raWVTZXJ2aWNlIH0gZnJvbSBcIm5neC1jb29raWVcIjtcclxuaW1wb3J0ICogYXMgQ3J5cHRvSlMgZnJvbSBcImNyeXB0by1qc1wiO1xyXG5pbXBvcnQgeyBHcmlkVmlld09iaiB9IGZyb20gXCIuL21vZGVsL2dyaWQtdmlldy1vYmoubW9kZWxcIjtcclxuaW1wb3J0IHsgSW5wdXRHcmlkT2JqIH0gZnJvbSBcIi4vbW9kZWwvaW5wdXQtZ3JpZC1vYmoubW9kZWxcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImxpYi11Y3ZpZXdnZW5lcmljXCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi91Y3ZpZXdnZW5lcmljLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdWN2aWV3Z2VuZXJpYy5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVWN2aWV3Z2VuZXJpY0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KCkgdmlld0dlbmVyaWNPYmo6IFVjVmlld0dlbmVyaWNPYmogPSBuZXcgVWNWaWV3R2VuZXJpY09iaigpO1xyXG4gIEBJbnB1dCgpIGdyaWRWaWV3T2JqOiBHcmlkVmlld09iaiA9IG5ldyBHcmlkVmlld09iaigpO1xyXG4gIEBPdXRwdXQoKSBjYWxsYmFjazogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgVXNlckFjY2VzczogYW55ID0gSlNPTi5wYXJzZShcclxuICAgIHRoaXMuR2V0Q29va2llKHRoaXMuY29va2llU2VydmljZSwgXCJVc2VyQWNjZXNzXCIpXHJcbiAgKTtcclxuICBpbnB1dEdyaWRWaWV3T2JqczogQXJyYXk8SW5wdXRHcmlkT2JqPiA9IG5ldyBBcnJheTxJbnB1dEdyaWRPYmo+KCk7XHJcbiAgdmlld0xpc3Q6IGFueSA9IFwiXCI7XHJcbiAgZ2V0TGlzdDogYW55O1xyXG4gIHZpZXdJbmZvT2JqTGlzdDogYW55O1xyXG4gIGlzUmVhZHk6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBJc0NhcmQ6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjb29raWVTZXJ2aWNlOiBDb29raWVTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICB0aGlzLnJvdXRlLnF1ZXJ5UGFyYW1zLnN1YnNjcmliZSgocGFyYW1zKSA9PiB7XHJcbiAgICAgIHRoaXMuZ2V0TGlzdCA9IHBhcmFtcztcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5zZXREZWZhdWx0TGFuZyhcImVuXCIpO1xyXG4gICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnVzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImxhbmdcIikgfHwgXCJlblwiKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgY29uc29sZS5sb2coXCJ2aWV3Z2VuZXJpY1wiKTtcclxuICAgIHRoaXMuaW5pdGlhdGVGb3JtKCk7XHJcbiAgICB0aGlzLkNoZWNrSXNDYXJkKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIENoZWNrSXNDYXJkKCkge1xyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLnZpZXdHZW5lcmljT2JqLklzQ2FyZCA9PSB1bmRlZmluZWQgfHxcclxuICAgICAgdGhpcy52aWV3R2VuZXJpY09iai5Jc0NhcmQgPT0gbnVsbFxyXG4gICAgKVxyXG4gICAgICByZXR1cm47XHJcbiAgICB0aGlzLklzQ2FyZCA9IHRoaXMudmlld0dlbmVyaWNPYmouSXNDYXJkO1xyXG4gIH1cclxuXHJcbiAgaW5pdGlhdGVGb3JtKCkge1xyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLnZpZXdHZW5lcmljT2JqLmRhdGFJbnB1dCAhPT0gdW5kZWZpbmVkICYmXHJcbiAgICAgIE9iamVjdC5rZXlzKHRoaXMudmlld0dlbmVyaWNPYmouZGF0YUlucHV0KS5sZW5ndGggIT09IDBcclxuICAgICkge1xyXG4gICAgICB0aGlzLnNldENvbmZpZ3VyYXRpb24oeyAuLi50aGlzLnZpZXdHZW5lcmljT2JqLmRhdGFJbnB1dCB9KTtcclxuICAgICAgdGhpcy5ncmlkVmlld09iai5ncmlkVmlld3MgPSB0aGlzLnZpZXdHZW5lcmljT2JqLmRhdGFJbnB1dC5zdWJzZWN0aW9uWzBdPy5ncmlkVmlld3MgfHwgW107XHJcbiAgICAgIHRoaXMuaW5pdGlhbGl6ZUdyaWRWaWV3cygpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5nZXRKU09OKHRoaXMudmlld0dlbmVyaWNPYmoudmlld0lucHV0KS5zdWJzY3JpYmUoKGRhdGEpID0+IHtcclxuICAgICAgdGhpcy5zZXRDb25maWd1cmF0aW9uKGRhdGEpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmluaXRpYWxpemVHcmlkVmlld3MoKTtcclxuICB9XHJcblxyXG4gIGluaXRpYWxpemVHcmlkVmlld3MoKSB7XHJcbiAgICBpZiAodGhpcy5ncmlkVmlld09iaiAmJiB0aGlzLmdyaWRWaWV3T2JqLmdyaWRWaWV3cy5sZW5ndGggPT09IDApIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZ3JpZFZpZXdPYmouZ3JpZFZpZXdzLm1hcChhc3luYyAoZ3JpZFZpZXcpID0+IHtcclxuICAgICAgY29uc3QgaW5wdXRHcmlkT2JqID0gbmV3IElucHV0R3JpZE9iaigpO1xyXG4gICAgICBpbnB1dEdyaWRPYmouZGF0YUlucHV0ID0gZ3JpZFZpZXcudGFibGVJbnB1dDtcclxuICAgICAgaW5wdXRHcmlkT2JqLnJlc3VsdERhdGEgPSB7IERhdGE6IFtdIH07XHJcbiAgICAgIGF3YWl0IHRoaXMuR2V0R3JpZFZpZXdEYXRhKGdyaWRWaWV3LmdldERhdGEsIGlucHV0R3JpZE9iaik7XHJcbiAgICAgIHRoaXMuaW5wdXRHcmlkVmlld09ianMucHVzaChpbnB1dEdyaWRPYmopO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRFbnZpcm9ubWVudChlbnZpKSB7XHJcbiAgICBjb25zdCBmaWx0ZXJlZEVudmlzID0gdGhpcy52aWV3R2VuZXJpY09iai5saXN0RW52aXJvbm1lbnRzLmZpbHRlcihcclxuICAgICAgKHYpID0+IHYuZW52aXJvbm1lbnQgPT0gZW52aVxyXG4gICAgKTtcclxuICAgIHJldHVybiBmaWx0ZXJlZEVudmlzLmxlbmd0aCA+IDAgPyBmaWx0ZXJlZEVudmlzWzBdIDogbnVsbDtcclxuICB9XHJcblxyXG4gIGFzeW5jIEdldEdyaWRWaWV3RGF0YShtZXRhOiBhbnksIGlucHV0R3JpZE9iajogSW5wdXRHcmlkT2JqKSB7XHJcbiAgICBsZXQgdGVtcGxMaXN0RGF0YSA9IFtdO1xyXG4gICAgY29uc3QgZW52aVVybCA9IG1ldGEuZW52aXJvbm1lbnQgJiYgdGhpcy5nZXRFbnZpcm9ubWVudChtZXRhLmVudmlyb25tZW50KTtcclxuICAgIGF3YWl0IHRoaXMuaHR0cFxyXG4gICAgICAucG9zdChlbnZpVXJsID8gZW52aVVybC51cmwgKyBtZXRhLmFwaVBhdGggOiBtZXRhLmFwaVBhdGgsIG1ldGEucmVxT2JqKVxyXG4gICAgICAudG9Qcm9taXNlKClcclxuICAgICAgLnRoZW4oKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgdGVtcGxMaXN0RGF0YSA9IHJlc3BvbnNlW21ldGEuY3VzdG9tT2JqTmFtZSB8fCBcIlJldHVybk9iamVjdFwiXTtcclxuICAgICAgICBpbnB1dEdyaWRPYmouYXBpVXJsID0gbWV0YS5hcGlQYXRoO1xyXG4gICAgICAgIGlucHV0R3JpZE9iai5yZXN1bHREYXRhW1wiRGF0YVwiXSA9IG5ldyBBcnJheSgpO1xyXG4gICAgICAgIGlucHV0R3JpZE9iai5yZXN1bHREYXRhLkRhdGEgPSB0ZW1wbExpc3REYXRhO1xyXG4gICAgICB9KVxyXG4gICAgICAuY2F0Y2goKGVycm9yKSA9PiB7XHJcbiAgICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIGdyaWRFdmVudChldikge1xyXG4gICAgdGhpcy5jYWxsYmFja0Z1bmN0aW9uKGV2LlJvd09iaiwgZXYuS2V5KTtcclxuICB9XHJcblxyXG4gIHNldENvbmZpZ3VyYXRpb24oZGF0YSkge1xyXG4gICAgdGhpcy52aWV3TGlzdCA9IGRhdGE7XHJcbiAgICB0aGlzLnZpZXdJbmZvT2JqTGlzdCA9IFtdO1xyXG5cclxuICAgIGZvciAobGV0IGogPSAwOyBqIDwgdGhpcy52aWV3TGlzdC5zdWJzZWN0aW9uLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgIHRoaXMudmlld0luZm9PYmpMaXN0LnB1c2goaik7XHJcbiAgICB9XHJcblxyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnZpZXdMaXN0LnN1YnNlY3Rpb24ubGVuZ3RoOyBpKyspIHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIHRoaXMudmlld0xpc3Quc3Vic2VjdGlvbltpXS5xdWVyeXN0cmluZyAhPSBudWxsICYmXHJcbiAgICAgICAgdGhpcy52aWV3TGlzdC5zdWJzZWN0aW9uW2ldLnF1ZXJ5c3RyaW5nLm5hbWUgIT0gXCJcIlxyXG4gICAgICApIHtcclxuICAgICAgICBsZXQgcXVlcnlPYmo6IGFueTtcclxuICAgICAgICBpZiAodGhpcy52aWV3R2VuZXJpY09iai53aGVyZVZhbHVlLmxlbmd0aCA9PSAwKSB7XHJcbiAgICAgICAgICB0aGlzLnZpZXdMaXN0LnN1YnNlY3Rpb25baV0ucXVlcnlzdHJpbmcud2hlcmVRdWVyeSA9ICg8YW55PihcclxuICAgICAgICAgICAgT2JqZWN0XHJcbiAgICAgICAgICApKS52YWx1ZXModGhpcy5nZXRMaXN0KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy52aWV3TGlzdC5zdWJzZWN0aW9uW2ldLnF1ZXJ5c3RyaW5nLndoZXJlUXVlcnkgPVxyXG4gICAgICAgICAgICB0aGlzLnZpZXdHZW5lcmljT2JqLndoZXJlVmFsdWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICB0aGlzLnZpZXdMaXN0LnN1YnNlY3Rpb25baV0ubWFpbkluZm9QYXRoICE9IHVuZGVmaW5lZCAmJlxyXG4gICAgICAgICAgdGhpcy52aWV3TGlzdC5zdWJzZWN0aW9uW2ldLm1haW5JbmZvUGF0aCAhPSBcIlwiXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgIHRoaXMudmlld0dlbmVyaWNPYmoudmlld0Vudmlyb25tZW50ICE9IHVuZGVmaW5lZCAmJlxyXG4gICAgICAgICAgICB0aGlzLnZpZXdHZW5lcmljT2JqLnZpZXdFbnZpcm9ubWVudCAhPSBcIlwiXHJcbiAgICAgICAgICApIHtcclxuICAgICAgICAgICAgdGhpcy52aWV3TGlzdC5zdWJzZWN0aW9uW2ldLmZ1bGxwYXRoID1cclxuICAgICAgICAgICAgICB0aGlzLnZpZXdHZW5lcmljT2JqLnZpZXdFbnZpcm9ubWVudCArXHJcbiAgICAgICAgICAgICAgdGhpcy52aWV3TGlzdC5zdWJzZWN0aW9uW2ldLm1haW5JbmZvUGF0aDtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMudmlld0xpc3Quc3Vic2VjdGlvbltpXS5mdWxscGF0aCA9XHJcbiAgICAgICAgICAgICAgdGhpcy52aWV3TGlzdC5zdWJzZWN0aW9uW2ldLm1haW5JbmZvVXJsO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnZpZXdMaXN0LnN1YnNlY3Rpb25baV0uZnVsbHBhdGggPVxyXG4gICAgICAgICAgICB0aGlzLnZpZXdMaXN0LnN1YnNlY3Rpb25baV0ubWFpbkluZm9Vcmw7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBxdWVyeU9iaiA9IHtcclxuICAgICAgICAgIHF1ZXJ5c3RyaW5nOiB0aGlzLnZpZXdMaXN0LnN1YnNlY3Rpb25baV0ucXVlcnlzdHJpbmcsXHJcbiAgICAgICAgfTtcclxuICAgICAgICB0aGlzLmh0dHBcclxuICAgICAgICAgIC5wb3N0KHRoaXMudmlld0xpc3Quc3Vic2VjdGlvbltpXS5mdWxscGF0aCwgcXVlcnlPYmopXHJcbiAgICAgICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICAocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLnZpZXdJbmZvT2JqTGlzdFtpXSA9IHJlc3BvbnNlW1wiRGF0YVwiXVswXTtcclxuXHJcbiAgICAgICAgICAgICAgZm9yIChcclxuICAgICAgICAgICAgICAgIGxldCB5ID0gMDtcclxuICAgICAgICAgICAgICAgIHkgPCB0aGlzLnZpZXdMaXN0LnN1YnNlY3Rpb25baV0ubWFpbkluZm8ubGVuZ3RoO1xyXG4gICAgICAgICAgICAgICAgeSsrXHJcbiAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICAgIHRoaXMudmlld0xpc3Quc3Vic2VjdGlvbltpXS5tYWluSW5mb1t5XS5wcm9wZXJ0eUxpc3QgIT1cclxuICAgICAgICAgICAgICAgICAgICB1bmRlZmluZWQgJiZcclxuICAgICAgICAgICAgICAgICAgdGhpcy52aWV3TGlzdC5zdWJzZWN0aW9uW2ldLm1haW5JbmZvW3ldLnByb3BlcnR5TGlzdC5sZW5ndGggIT1cclxuICAgICAgICAgICAgICAgICAgICAwXHJcbiAgICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgICAgY29uc3QgcHJvcGVydHlMaXN0ID1cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnZpZXdMaXN0LnN1YnNlY3Rpb25baV0ubWFpbkluZm9beV0ucHJvcGVydHlMaXN0O1xyXG4gICAgICAgICAgICAgICAgICBsZXQgY29uY2F0ID0gXCJcIjtcclxuICAgICAgICAgICAgICAgICAgZm9yIChsZXQgeiA9IDA7IHogPCBwcm9wZXJ0eUxpc3QubGVuZ3RoOyB6KyspIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25jYXQgPVxyXG4gICAgICAgICAgICAgICAgICAgICAgY29uY2F0ICtcclxuICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5TGlzdFt6XS5wcmVmaXggK1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy52aWV3SW5mb09iakxpc3RbaV1bcHJvcGVydHlMaXN0W3pdLnByb3BlcnR5XSArXHJcbiAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eUxpc3Rbel0uc3VmZml4O1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMudmlld0xpc3Quc3Vic2VjdGlvbltpXS5tYWluSW5mb1t5XS5jb25jYXQgPSBjb25jYXQ7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgLy9zd2l0Y2ggY2FzZVxyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMudmlld0xpc3Quc3Vic2VjdGlvbltpXS5tYWluSW5mb1t5XS50eXBlID09IFwic3dpdGNoXCIpIHtcclxuICAgICAgICAgICAgICAgICAgZm9yIChcclxuICAgICAgICAgICAgICAgICAgICBsZXQgeiA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgeiA8IHRoaXMudmlld0xpc3Quc3Vic2VjdGlvbltpXS5tYWluSW5mb1t5XS5jYXNlLmxlbmd0aDtcclxuICAgICAgICAgICAgICAgICAgICB6KytcclxuICAgICAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IEVtcHR5ID0gbmV3IEFycmF5PGJvb2xlYW4+KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy52aWV3TGlzdC5zdWJzZWN0aW9uW2ldLm1haW5JbmZvW3ldLmNhc2Vbel0uSGlkZGVuID1cclxuICAgICAgICAgICAgICAgICAgICAgIGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIC8vY2hlY2sgaGlkZUlmRW1wdHlcclxuICAgICAgICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnZpZXdMaXN0LnN1YnNlY3Rpb25baV0ubWFpbkluZm9beV0uY2FzZVt6XS5yZXN1bHRcclxuICAgICAgICAgICAgICAgICAgICAgICAgLmhpZGVJZkVtcHR5ICE9IHVuZGVmaW5lZCAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy52aWV3TGlzdC5zdWJzZWN0aW9uW2ldLm1haW5JbmZvW3ldLmNhc2Vbel0ucmVzdWx0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC5oaWRlSWZFbXB0eSAhPSBudWxsXHJcbiAgICAgICAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudmlld0xpc3Quc3Vic2VjdGlvbltpXS5tYWluSW5mb1t5XS5jYXNlW3pdLnJlc3VsdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIC50eXBlICE9IFwiY29uY2F0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBFbXB0eS5wdXNoKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudmlld0luZm9PYmpMaXN0W2ldW1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy52aWV3TGlzdC5zdWJzZWN0aW9uW2ldLm1haW5JbmZvW3ldLmNhc2Vbel1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnJlc3VsdC5wcm9wZXJ0eVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIF0gIT0gdW5kZWZpbmVkICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnZpZXdJbmZvT2JqTGlzdFtpXVtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy52aWV3TGlzdC5zdWJzZWN0aW9uW2ldLm1haW5JbmZvW3ldLmNhc2Vbel1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAucmVzdWx0LnByb3BlcnR5XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdICE9IG51bGwgJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudmlld0luZm9PYmpMaXN0W2ldW1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnZpZXdMaXN0LnN1YnNlY3Rpb25baV0ubWFpbkluZm9beV0uY2FzZVt6XVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5yZXN1bHQucHJvcGVydHlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0gIT0gXCJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBmYWxzZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0cnVlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB0eXBlIGNvbmNhdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy52aWV3TGlzdC5zdWJzZWN0aW9uW2ldLm1haW5JbmZvW3ldLmNhc2Vbel0ucmVzdWx0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAucHJvcGVydHlMaXN0ICE9IHVuZGVmaW5lZCAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudmlld0xpc3Quc3Vic2VjdGlvbltpXS5tYWluSW5mb1t5XS5jYXNlW3pdLnJlc3VsdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnByb3BlcnR5TGlzdC5sZW5ndGggIT0gMFxyXG4gICAgICAgICAgICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwcm9wZXJ0eUxpc3QgPVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy52aWV3TGlzdC5zdWJzZWN0aW9uW2ldLm1haW5JbmZvW3ldLmNhc2Vbel1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnJlc3VsdC5wcm9wZXJ0eUxpc3Q7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGNvbmNhdCA9IFwiXCI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgYSA9IDA7IGEgPCBwcm9wZXJ0eUxpc3QubGVuZ3RoOyBhKyspIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmNhdCA9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmNhdCArXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5TGlzdFthXS5wcmVmaXggK1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnZpZXdJbmZvT2JqTGlzdFtpXVtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eUxpc3RbYV0ucHJvcGVydHlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSArXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5TGlzdFthXS5zdWZmaXg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eS5wdXNoKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnZpZXdJbmZvT2JqTGlzdFtpXVtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eUxpc3RbYV0ucHJvcGVydHlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSAhPSB1bmRlZmluZWQgJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnZpZXdJbmZvT2JqTGlzdFtpXVtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5TGlzdFthXS5wcm9wZXJ0eVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0gIT0gbnVsbCAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudmlld0luZm9PYmpMaXN0W2ldW1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlMaXN0W2FdLnByb3BlcnR5XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSAhPSBcIlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBmYWxzZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogdHJ1ZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy52aWV3TGlzdC5zdWJzZWN0aW9uW2ldLm1haW5JbmZvW3ldLmNhc2VbXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXS5yZXN1bHQuY29uY2F0ID0gY29uY2F0O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBFbXB0eS5pbmNsdWRlcyh0cnVlKSAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnZpZXdMaXN0LnN1YnNlY3Rpb25baV0ubWFpbkluZm9beV0uY2FzZVt6XS5yZXN1bHRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAuaGlkZUlmRW1wdHlcclxuICAgICAgICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnZpZXdMaXN0LnN1YnNlY3Rpb25baV0ubWFpbkluZm9beV0uY2FzZVt6XS5IaWRkZW4gPVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudmlld0xpc3Quc3Vic2VjdGlvbltpXS5tYWluSW5mb1t5XS5pc0hpZGUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAvL2NvbmNhdFxyXG4gICAgICAgICAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnZpZXdMaXN0LnN1YnNlY3Rpb25baV0ubWFpbkluZm9beV0uY2FzZVt6XS5yZXN1bHRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAucHJvcGVydHlMaXN0ICE9IHVuZGVmaW5lZCAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnZpZXdMaXN0LnN1YnNlY3Rpb25baV0ubWFpbkluZm9beV0uY2FzZVt6XS5yZXN1bHRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAucHJvcGVydHlMaXN0Lmxlbmd0aCAhPSAwXHJcbiAgICAgICAgICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJvcGVydHlMaXN0ID1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnZpZXdMaXN0LnN1YnNlY3Rpb25baV0ubWFpbkluZm9beV0uY2FzZVt6XS5yZXN1bHRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5wcm9wZXJ0eUxpc3Q7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBjb25jYXQgPSBcIlwiO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBhID0gMDsgYSA8IHByb3BlcnR5TGlzdC5sZW5ndGg7IGErKykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmNhdCA9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25jYXQgK1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlMaXN0W2FdLnByZWZpeCArXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnZpZXdJbmZvT2JqTGlzdFtpXVtwcm9wZXJ0eUxpc3RbYV0ucHJvcGVydHldICtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5TGlzdFthXS5zdWZmaXg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy52aWV3TGlzdC5zdWJzZWN0aW9uW2ldLm1haW5JbmZvW3ldLmNhc2VbXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgelxyXG4gICAgICAgICAgICAgICAgICAgICAgICBdLnJlc3VsdC5jb25jYXQgPSBjb25jYXQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgICB0aGlzLnZpZXdMaXN0LnN1YnNlY3Rpb25baV0ubWFpbkluZm9beV0udHlwZSA9PSBcImxpbmtcIiAmJlxyXG4gICAgICAgICAgICAgICAgICAodGhpcy52aWV3R2VuZXJpY09iai5uYXZpZ2F0aW9uQ29uc3QgIT0gdW5kZWZpbmVkIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy52aWV3R2VuZXJpY09iai5uYXZpZ2F0aW9uQ29uc3QgIT0gbnVsbClcclxuICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICBsZXQgdGVtcExpbmsgPVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmlld0dlbmVyaWNPYmoubmF2aWdhdGlvbkNvbnN0W1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy52aWV3TGlzdC5zdWJzZWN0aW9uW2ldLm1haW5JbmZvW3ldLnBhdGhcclxuICAgICAgICAgICAgICAgICAgICBdO1xyXG4gICAgICAgICAgICAgICAgICBpZiAodGVtcExpbmsgIT0gdW5kZWZpbmVkICYmIHRlbXBMaW5rICE9IG51bGwpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnZpZXdMaXN0LnN1YnNlY3Rpb25baV0ubWFpbkluZm9beV0ucGF0aCA9IHRlbXBMaW5rO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICAgIHRoaXMudmlld0xpc3Quc3Vic2VjdGlvbltpXS5tYWluSW5mb1t5XS50eXBlID09IFwibGlua1wiICYmXHJcbiAgICAgICAgICAgICAgICAgIHRoaXMudmlld0dlbmVyaWNPYmoubGlzdEVudmlyb25tZW50cyAhPSB1bmRlZmluZWQgJiZcclxuICAgICAgICAgICAgICAgICAgdGhpcy52aWV3R2VuZXJpY09iai5saXN0RW52aXJvbm1lbnRzLmxlbmd0aCAhPSAwXHJcbiAgICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgICAgZm9yIChcclxuICAgICAgICAgICAgICAgICAgICBsZXQgeiA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgeiA8IHRoaXMudmlld0dlbmVyaWNPYmoubGlzdEVudmlyb25tZW50cy5sZW5ndGg7XHJcbiAgICAgICAgICAgICAgICAgICAgeisrXHJcbiAgICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMudmlld0xpc3Quc3Vic2VjdGlvbltpXS5tYWluSW5mb1t5XS5lbnZpcm9ubWVudCA9PVxyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy52aWV3R2VuZXJpY09iai5saXN0RW52aXJvbm1lbnRzW3pdLmVudmlyb25tZW50XHJcbiAgICAgICAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnZpZXdMaXN0LnN1YnNlY3Rpb25baV0ubWFpbkluZm9beV0uaXNGdWxscGF0aCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnZpZXdMaXN0LnN1YnNlY3Rpb25baV0ubWFpbkluZm9beV0uZnVsbHBhdGggPVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnZpZXdHZW5lcmljT2JqLmxpc3RFbnZpcm9ubWVudHNbel0udXJsICtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy52aWV3TGlzdC5zdWJzZWN0aW9uW2ldLm1haW5JbmZvW3ldLnBhdGg7XHJcbiAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgICAgICAgICAgICAgIHRoaXMudmlld0xpc3Quc3Vic2VjdGlvbltpXS5tYWluSW5mb1t5XS50eXBlID09IFwibGlua1wiXHJcbiAgICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy52aWV3TGlzdC5zdWJzZWN0aW9uW2ldLm1haW5JbmZvW3ldLmlzRnVsbHBhdGggPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgdGhpcy52aWV3TGlzdC5zdWJzZWN0aW9uW2ldLm1haW5JbmZvW3ldLmZ1bGxwYXRoID1cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnZpZXdMaXN0LnN1YnNlY3Rpb25baV0ubWFpbkluZm9beV0ucGF0aDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgdGhpcy5pc1JlYWR5ID0gdHJ1ZTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICApO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgIHRoaXMudmlld0xpc3Quc3Vic2VjdGlvbltpXS5tYWluSW5mb1BhdGggIT0gdW5kZWZpbmVkICYmXHJcbiAgICAgICAgICB0aGlzLnZpZXdMaXN0LnN1YnNlY3Rpb25baV0ubWFpbkluZm9QYXRoICE9IFwiXCJcclxuICAgICAgICApIHtcclxuICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgdGhpcy52aWV3TGlzdC5zdWJzZWN0aW9uW2ldLmVudmlyb25tZW50ICE9IHVuZGVmaW5lZCAmJlxyXG4gICAgICAgICAgICB0aGlzLnZpZXdMaXN0LnN1YnNlY3Rpb25baV0ubWFpbkluZm9QYXRoICE9IFwiXCJcclxuICAgICAgICAgICkge1xyXG4gICAgICAgICAgICBmb3IgKFxyXG4gICAgICAgICAgICAgIGxldCB6ID0gMDtcclxuICAgICAgICAgICAgICB6IDwgdGhpcy52aWV3R2VuZXJpY09iai5saXN0RW52aXJvbm1lbnRzLmxlbmd0aDtcclxuICAgICAgICAgICAgICB6KytcclxuICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgdGhpcy52aWV3TGlzdC5zdWJzZWN0aW9uW2ldLmVudmlyb25tZW50ID09XHJcbiAgICAgICAgICAgICAgICB0aGlzLnZpZXdHZW5lcmljT2JqLmxpc3RFbnZpcm9ubWVudHNbel0uZW52aXJvbm1lbnRcclxuICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgIHRoaXMudmlld0xpc3Quc3Vic2VjdGlvbltpXS5mdWxscGF0aCA9XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMudmlld0dlbmVyaWNPYmoubGlzdEVudmlyb25tZW50c1t6XS51cmwgK1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnZpZXdMaXN0LnN1YnNlY3Rpb25baV0ubWFpbkluZm9QYXRoO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKFxyXG4gICAgICAgICAgICB0aGlzLnZpZXdHZW5lcmljT2JqLnZpZXdFbnZpcm9ubWVudCAhPSB1bmRlZmluZWQgJiZcclxuICAgICAgICAgICAgdGhpcy52aWV3R2VuZXJpY09iai52aWV3RW52aXJvbm1lbnQgIT0gXCJcIlxyXG4gICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgIHRoaXMudmlld0xpc3Quc3Vic2VjdGlvbltpXS5mdWxscGF0aCA9XHJcbiAgICAgICAgICAgICAgdGhpcy52aWV3R2VuZXJpY09iai52aWV3RW52aXJvbm1lbnQgK1xyXG4gICAgICAgICAgICAgIHRoaXMudmlld0xpc3Quc3Vic2VjdGlvbltpXS5tYWluSW5mb1BhdGg7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnZpZXdMaXN0LnN1YnNlY3Rpb25baV0uZnVsbHBhdGggPVxyXG4gICAgICAgICAgICAgIHRoaXMudmlld0xpc3Quc3Vic2VjdGlvbltpXS5tYWluSW5mb1VybDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy52aWV3TGlzdC5zdWJzZWN0aW9uW2ldLmZ1bGxwYXRoID1cclxuICAgICAgICAgICAgdGhpcy52aWV3TGlzdC5zdWJzZWN0aW9uW2ldLm1haW5JbmZvVXJsO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgcmVxT2JqID0gdGhpcy52aWV3TGlzdC5zdWJzZWN0aW9uW2ldLnJlcU9iaiA/PyB0aGlzLmdldExpc3Q7XHJcbiAgICAgICAgaWYgKHRoaXMudmlld0xpc3Quc3Vic2VjdGlvbltpXS5yZXFPYmogIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoXHJcbiAgICAgICAgICAgIHRoaXMudmlld0xpc3Quc3Vic2VjdGlvbltpXS5yZXFPYmpcclxuICAgICAgICAgICkpIHtcclxuICAgICAgICAgICAgcmVxT2JqW2tleV0gPSB0aGlzLmdldExpc3RbdmFsdWUgYXMgc3RyaW5nXSB8fCB0aGlzLnZpZXdHZW5lcmljT2JqLmRpY3RzW3ZhbHVlIGFzIHN0cmluZ107XHJcbiAgICAgICAgICAgIGlmIChyZXFPYmpba2V5XSA9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICByZXFPYmpba2V5XSA9IHZhbHVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmh0dHAucG9zdCh0aGlzLnZpZXdMaXN0LnN1YnNlY3Rpb25baV0uZnVsbHBhdGgsIHJlcU9iaikuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICB0aGlzLnZpZXdMaXN0LnN1YnNlY3Rpb25baV0ucmVzT2JqTmFtZSA9PT0gdW5kZWZpbmVkIHx8XHJcbiAgICAgICAgICAgICAgdGhpcy52aWV3TGlzdC5zdWJzZWN0aW9uW2ldLnJlc09iak5hbWUgPT09IFwiXCJcclxuICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy52aWV3SW5mb09iakxpc3RbaV0gPSByZXNwb25zZTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLnZpZXdJbmZvT2JqTGlzdFtpXSA9XHJcbiAgICAgICAgICAgICAgICByZXNwb25zZVt0aGlzLnZpZXdMaXN0LnN1YnNlY3Rpb25baV0ucmVzT2JqTmFtZV07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5pc1JlYWR5ID0gdHJ1ZTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICAoZXJyb3IpID0+IHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRKU09OKHVybDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHVybCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIEdldENvb2tpZShjb29raWVTZXJ2aWNlOiBDb29raWVTZXJ2aWNlLCBrZXk6IHN0cmluZykge1xyXG4gICAgbGV0IHZhbHVlID0gY29va2llU2VydmljZS5nZXQoa2V5KTtcclxuICAgIGlmICh2YWx1ZSA9PSB1bmRlZmluZWQgfHwgdmFsdWUudHJpbSgpID09IFwiXCIpIHJldHVybiBudWxsO1xyXG4gICAgcmV0dXJuIHRoaXMuRGVjcnlwdFN0cmluZyh2YWx1ZSwgXCJBZEluc0ZPVTEyMzQ1Njc4XCIpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBEZWNyeXB0U3RyaW5nKGNoaXBwZXJUZXh0OiBzdHJpbmcsIGNoaXBwZXJLZXk6IHN0cmluZykge1xyXG4gICAgaWYgKFxyXG4gICAgICBjaGlwcGVyS2V5ID09IHVuZGVmaW5lZCB8fFxyXG4gICAgICBjaGlwcGVyS2V5LnRyaW0oKSA9PSBcIlwiIHx8XHJcbiAgICAgIGNoaXBwZXJUZXh0ID09IHVuZGVmaW5lZCB8fFxyXG4gICAgICBjaGlwcGVyVGV4dC50cmltKCkgPT0gXCJcIlxyXG4gICAgKVxyXG4gICAgICByZXR1cm4gY2hpcHBlclRleHQ7XHJcbiAgICBsZXQgY2hpcHBlcktleUFyciA9IENyeXB0b0pTLmVuYy5VdGY4LnBhcnNlKGNoaXBwZXJLZXkpO1xyXG4gICAgbGV0IGl2ID0gQ3J5cHRvSlMubGliLldvcmRBcnJheS5jcmVhdGUoWzB4MDAsIDB4MDAsIDB4MDAsIDB4MDBdKTtcclxuICAgIGxldCBkZWNyeXB0ZWQgPSBDcnlwdG9KUy5BRVMuZGVjcnlwdChjaGlwcGVyVGV4dCwgY2hpcHBlcktleUFyciwge1xyXG4gICAgICBpdjogaXYsXHJcbiAgICB9KTtcclxuICAgIGxldCBwbGFpblRleHQgPSBkZWNyeXB0ZWQudG9TdHJpbmcoQ3J5cHRvSlMuZW5jLlV0ZjgpO1xyXG4gICAgcmV0dXJuIHBsYWluVGV4dDtcclxuICB9XHJcblxyXG4gIGdlbkFjdGlvbih2aWV3T2JqLCBwYXJhbSkge1xyXG4gICAgbGV0IGFyckxpc3QgPSB7fTtcclxuXHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBhcmFtLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGlmIChcclxuICAgICAgICB2aWV3T2JqW3BhcmFtW2ldLnR5cGVdICE9IHVuZGVmaW5lZCB8fFxyXG4gICAgICAgIHZpZXdPYmpbcGFyYW1baV0ucHJvcGVydHldICE9IHVuZGVmaW5lZFxyXG4gICAgICApIHtcclxuICAgICAgICBhcnJMaXN0W3BhcmFtW2ldLnR5cGVdID0gdmlld09ialtwYXJhbVtpXS5wcm9wZXJ0eV07XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgYXJyTGlzdFtwYXJhbVtpXS50eXBlXSA9IHBhcmFtW2ldLnByb3BlcnR5O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYXJyTGlzdDtcclxuICB9XHJcblxyXG4gIGdlblJvdXRlckxpbmsodXJsTGluazogc3RyaW5nKSB7XHJcbiAgICBsZXQgdGVtcExpbmsgPSB1cmxMaW5rO1xyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLnZpZXdHZW5lcmljT2JqLm5hdmlnYXRpb25Db25zdCAhPSB1bmRlZmluZWQgJiZcclxuICAgICAgdGhpcy52aWV3R2VuZXJpY09iai5uYXZpZ2F0aW9uQ29uc3RbdXJsTGlua10gIT0gbnVsbFxyXG4gICAgKSB7XHJcbiAgICAgIHRlbXBMaW5rID0gdGhpcy52aWV3R2VuZXJpY09iai5uYXZpZ2F0aW9uQ29uc3RbdXJsTGlua107XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGVtcExpbms7XHJcbiAgfVxyXG5cclxuICByZWRpcmVjdEZ1bGxQYXRoKGZ1bGxwYXRoOiBzdHJpbmcsIHBhcmFtOiBPYmplY3QsIHRhcmdldDogc3RyaW5nKSB7XHJcbiAgICBsZXQgcXVlcnlQYXJhbSA9IFwiXCI7XHJcbiAgICBjb25zdCBMaXN0T2JqID0gT2JqZWN0LmtleXMocGFyYW0pO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBMaXN0T2JqLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGlmIChxdWVyeVBhcmFtICE9IFwiXCIpIHtcclxuICAgICAgICBxdWVyeVBhcmFtID0gcXVlcnlQYXJhbSArIFwiJlwiICsgTGlzdE9ialtpXSArIFwiPVwiICsgcGFyYW1bTGlzdE9ialtpXV07XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcXVlcnlQYXJhbSA9IExpc3RPYmpbaV0gKyBcIj1cIiArIHBhcmFtW0xpc3RPYmpbaV1dO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB3aW5kb3cub3BlbihmdWxscGF0aCArIFwiP1wiICsgcXVlcnlQYXJhbSwgdGFyZ2V0KTtcclxuICB9XHJcblxyXG4gIGNhbGxiYWNrRnVuY3Rpb24oaXRlbSwga2V5OiBzdHJpbmcgPSBcIlwiKSB7XHJcbiAgICBsZXQgQ0JPYmogPSB7XHJcbiAgICAgIFZpZXdPYmo6IGl0ZW0sXHJcbiAgICAgIEtleToga2V5LFxyXG4gICAgfTtcclxuICAgIHRoaXMuY2FsbGJhY2suZW1pdChDQk9iaik7XHJcbiAgfVxyXG5cclxuICBzd2l0Y2hDYXNlKGl0ZW0sIGNvbmRMaXN0KSB7XHJcbiAgICBsZXQgY29uZGl0aW9uID0gZmFsc2U7XHJcbiAgICBpZiAoIWl0ZW0pIHJldHVybiBmYWxzZTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY29uZExpc3QuY29uZGl0aW9ucy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBpZiAoY29uZExpc3QuY29uZGl0aW9uc1tpXS5yZXN0cmljdGlvbiA9PSBcIkVRXCIpIHtcclxuICAgICAgICBpZiAoY29uZExpc3QuY29uZGl0aW9uc1tpXS5pc1VzZXIgIT0gdHJ1ZSkge1xyXG4gICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICBpdGVtW2NvbmRMaXN0LmNvbmRpdGlvbnNbaV0ucHJvcGVydHldID09XHJcbiAgICAgICAgICAgIGNvbmRMaXN0LmNvbmRpdGlvbnNbaV0udmFsdWVcclxuICAgICAgICAgICkge1xyXG4gICAgICAgICAgICBjb25kaXRpb24gPSB0cnVlO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY29uZGl0aW9uID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgIGl0ZW1bY29uZExpc3QuY29uZGl0aW9uc1tpXS5wcm9wZXJ0eV0gPT0gdGhpcy5Vc2VyQWNjZXNzW1wiVXNlck5hbWVcIl1cclxuICAgICAgICAgICkge1xyXG4gICAgICAgICAgICBjb25kaXRpb24gPSB0cnVlO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY29uZGl0aW9uID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIGlmIChjb25kTGlzdC5jb25kaXRpb25zW2ldLnJlc3RyaWN0aW9uID09IFwiTkVRXCIpIHtcclxuICAgICAgICBpZiAoY29uZExpc3QuY29uZGl0aW9uc1tpXS5pc1VzZXIgIT0gdHJ1ZSkge1xyXG4gICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICBpdGVtW2NvbmRMaXN0LmNvbmRpdGlvbnNbaV0ucHJvcGVydHldICE9XHJcbiAgICAgICAgICAgIGNvbmRMaXN0LmNvbmRpdGlvbnNbaV0udmFsdWVcclxuICAgICAgICAgICkge1xyXG4gICAgICAgICAgICBjb25kaXRpb24gPSB0cnVlO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY29uZGl0aW9uID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgIGl0ZW1bY29uZExpc3QuY29uZGl0aW9uc1tpXS5wcm9wZXJ0eV0gIT0gdGhpcy5Vc2VyQWNjZXNzW1wiVXNlck5hbWVcIl1cclxuICAgICAgICAgICkge1xyXG4gICAgICAgICAgICBjb25kaXRpb24gPSB0cnVlO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY29uZGl0aW9uID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIGlmIChjb25kTGlzdC5jb25kaXRpb25zW2ldLnJlc3RyaWN0aW9uID09IFwiR1RcIikge1xyXG4gICAgICAgIGlmIChjb25kTGlzdC5jb25kaXRpb25zW2ldLmlzVXNlciAhPSB0cnVlKSB7XHJcbiAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgIGl0ZW1bY29uZExpc3QuY29uZGl0aW9uc1tpXS5wcm9wZXJ0eV0gPiBjb25kTGlzdC5jb25kaXRpb25zW2ldLnZhbHVlXHJcbiAgICAgICAgICApIHtcclxuICAgICAgICAgICAgY29uZGl0aW9uID0gdHJ1ZTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNvbmRpdGlvbiA9IGZhbHNlO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICBpdGVtW2NvbmRMaXN0LmNvbmRpdGlvbnNbaV0ucHJvcGVydHldID4gdGhpcy5Vc2VyQWNjZXNzW1wiVXNlck5hbWVcIl1cclxuICAgICAgICAgICkge1xyXG4gICAgICAgICAgICBjb25kaXRpb24gPSB0cnVlO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY29uZGl0aW9uID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIGlmIChjb25kTGlzdC5jb25kaXRpb25zW2ldLnJlc3RyaWN0aW9uID09IFwiR1RFXCIpIHtcclxuICAgICAgICBpZiAoY29uZExpc3QuY29uZGl0aW9uc1tpXS5pc1VzZXIgIT0gdHJ1ZSkge1xyXG4gICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICBpdGVtW2NvbmRMaXN0LmNvbmRpdGlvbnNbaV0ucHJvcGVydHldID49XHJcbiAgICAgICAgICAgIGNvbmRMaXN0LmNvbmRpdGlvbnNbaV0udmFsdWVcclxuICAgICAgICAgICkge1xyXG4gICAgICAgICAgICBjb25kaXRpb24gPSB0cnVlO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY29uZGl0aW9uID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgIGl0ZW1bY29uZExpc3QuY29uZGl0aW9uc1tpXS5wcm9wZXJ0eV0gPj0gdGhpcy5Vc2VyQWNjZXNzW1wiVXNlck5hbWVcIl1cclxuICAgICAgICAgICkge1xyXG4gICAgICAgICAgICBjb25kaXRpb24gPSB0cnVlO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY29uZGl0aW9uID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIGlmIChjb25kTGlzdC5jb25kaXRpb25zW2ldLnJlc3RyaWN0aW9uID09IFwiTFRcIikge1xyXG4gICAgICAgIGlmIChjb25kTGlzdC5jb25kaXRpb25zW2ldLmlzVXNlciAhPSB0cnVlKSB7XHJcbiAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgIGl0ZW1bY29uZExpc3QuY29uZGl0aW9uc1tpXS5wcm9wZXJ0eV0gPCBjb25kTGlzdC5jb25kaXRpb25zW2ldLnZhbHVlXHJcbiAgICAgICAgICApIHtcclxuICAgICAgICAgICAgY29uZGl0aW9uID0gdHJ1ZTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNvbmRpdGlvbiA9IGZhbHNlO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICBpdGVtW2NvbmRMaXN0LmNvbmRpdGlvbnNbaV0ucHJvcGVydHldIDwgdGhpcy5Vc2VyQWNjZXNzW1wiVXNlck5hbWVcIl1cclxuICAgICAgICAgICkge1xyXG4gICAgICAgICAgICBjb25kaXRpb24gPSB0cnVlO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY29uZGl0aW9uID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIGlmIChjb25kTGlzdC5jb25kaXRpb25zW2ldLnJlc3RyaWN0aW9uID09IFwiTFRFXCIpIHtcclxuICAgICAgICBpZiAoY29uZExpc3QuY29uZGl0aW9uc1tpXS5pc1VzZXIgIT0gdHJ1ZSkge1xyXG4gICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICBpdGVtW2NvbmRMaXN0LmNvbmRpdGlvbnNbaV0ucHJvcGVydHldIDw9XHJcbiAgICAgICAgICAgIGNvbmRMaXN0LmNvbmRpdGlvbnNbaV0udmFsdWVcclxuICAgICAgICAgICkge1xyXG4gICAgICAgICAgICBjb25kaXRpb24gPSB0cnVlO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY29uZGl0aW9uID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgIGl0ZW1bY29uZExpc3QuY29uZGl0aW9uc1tpXS5wcm9wZXJ0eV0gPD0gdGhpcy5Vc2VyQWNjZXNzW1wiVXNlck5hbWVcIl1cclxuICAgICAgICAgICkge1xyXG4gICAgICAgICAgICBjb25kaXRpb24gPSB0cnVlO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY29uZGl0aW9uID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIGlmIChjb25kTGlzdC5jb25kaXRpb25zW2ldLnJlc3RyaWN0aW9uID09IFwiSU5cIikge1xyXG4gICAgICAgIGlmIChjb25kTGlzdC5jb25kaXRpb25zW2ldLmlzVXNlciAhPSB0cnVlKSB7XHJcbiAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgIGNvbmRMaXN0LmNvbmRpdGlvbnNbaV0udmFsdWUuZmluZEluZGV4KFxyXG4gICAgICAgICAgICAgICh4KSA9PiB4ID09IGl0ZW1bY29uZExpc3QuY29uZGl0aW9uc1tpXS5wcm9wZXJ0eV1cclxuICAgICAgICAgICAgKSA+PSAwXHJcbiAgICAgICAgICApIHtcclxuICAgICAgICAgICAgY29uZGl0aW9uID0gdHJ1ZTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNvbmRpdGlvbiA9IGZhbHNlO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICBjb25kTGlzdC5jb25kaXRpb25zW2ldLnZhbHVlLmZpbmRJbmRleChcclxuICAgICAgICAgICAgICAoeCkgPT4geCA9PSB0aGlzLlVzZXJBY2Nlc3NbXCJVc2VyTmFtZVwiXVxyXG4gICAgICAgICAgICApID49IDBcclxuICAgICAgICAgICkge1xyXG4gICAgICAgICAgICBjb25kaXRpb24gPSB0cnVlO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY29uZGl0aW9uID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIGlmIChjb25kTGlzdC5jb25kaXRpb25zW2ldLnJlc3RyaWN0aW9uID09IFwiTklOXCIpIHtcclxuICAgICAgICBpZiAoY29uZExpc3QuY29uZGl0aW9uc1tpXS5pc1VzZXIgIT0gdHJ1ZSkge1xyXG4gICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICBjb25kTGlzdC5jb25kaXRpb25zW2ldLnZhbHVlLmZpbmRJbmRleChcclxuICAgICAgICAgICAgICAoeCkgPT4geCA9PSBpdGVtW2NvbmRMaXN0LmNvbmRpdGlvbnNbaV0ucHJvcGVydHldXHJcbiAgICAgICAgICAgICkgPT0gLTFcclxuICAgICAgICAgICkge1xyXG4gICAgICAgICAgICBjb25kaXRpb24gPSB0cnVlO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY29uZGl0aW9uID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgIGNvbmRMaXN0LmNvbmRpdGlvbnNbaV0udmFsdWUuZmluZEluZGV4KFxyXG4gICAgICAgICAgICAgICh4KSA9PiB4ID09IHRoaXMuVXNlckFjY2Vzc1tcIlVzZXJOYW1lXCJdXHJcbiAgICAgICAgICAgICkgPT0gLTFcclxuICAgICAgICAgICkge1xyXG4gICAgICAgICAgICBjb25kaXRpb24gPSB0cnVlO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY29uZGl0aW9uID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGNvbmRpdGlvbjtcclxuICB9XHJcbn1cclxuIiwiPHNlY3Rpb24gaWQ9XCJob3Jpem9udGFsLWZvcm0tbGF5b3V0c1wiPlxyXG4gIDxkaXYgY2xhc3M9XCJyb3cgdGV4dC1sZWZ0XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XHJcbiAgICAgIDxkaXYgW25nQ2xhc3NdPVwiSXNDYXJkID8gJ2NhcmQnIDogJydcIiAqbmdJZj1cImlzUmVhZHlcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicGwtMyBtYi0yIG10LTJcIiAqbmdJZj1cInZpZXdMaXN0Py50aXRsZSAhPSAnJ1wiPlxyXG4gICAgICAgICAgPGg0IGNsYXNzPVwiY2FyZC10aXRsZSB1Y1NlYXJjaC10aXRsZVwiIGlkPVwiaG9yei1sYXlvdXQtY29sb3JlZC1jb250cm9sc1wiIHRyYW5zbGF0ZT57e3ZpZXdMaXN0LnRpdGxlfX08L2g0PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHlcIiAqbmdGb3I9XCJsZXQgc3Mgb2Ygdmlld0xpc3Q/LnN1YnNlY3Rpb247bGV0IGkgPSBpbmRleDtcIj5cclxuICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgIDxsaWItdWNTdWJzZWN0aW9uICpuZ0lmPVwic3Muc3Vic2VjdGlvbiAhPSAnJ1wiIFtpZF09XCJzcy5zdWJTZWN0aW9uSWQgKyAnaWQnXCIgW3RpdGxlXT1cInNzLnN1YlNlY3Rpb25UaXRsZVwiXHJcbiAgICAgICAgICAgICAgW3BhbmVsXT1cInNzLnN1YlNlY3Rpb25JZFwiPlxyXG4gICAgICAgICAgICA8L2xpYi11Y1N1YnNlY3Rpb24+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWJvZHkgcC0zIGJvcmRlci10b3AgYm9yZGVyLWJvdHRvbVwiIFtpZF09J3NzLnN1YlNlY3Rpb25JZCc+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgcm93XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBtaSBvZiBzcz8ubWFpbkluZm9cIlxyXG4gICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdjb2wteHhsLTIgY29sLXhsLTMgY29sLWxnLTQgY29sLW1kLTYgY29sLXhzLTEyIHB5LTInOiBtaS5pc0hpZGUgPT0gdW5kZWZpbmVkIHx8ICFtaS5pc0hpZGUgfHwgKHZpZXdJbmZvT2JqTGlzdFtpXVttaS5wcm9wZXJ0eV0gIT0gJycgJiYgdmlld0luZm9PYmpMaXN0W2ldW21pLnByb3BlcnR5XSAhPSBudWxsKX1cIj5cclxuICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIm1pLmlzSGlkZSA9PSB1bmRlZmluZWQgfHwgIW1pLmlzSGlkZSB8fCAodmlld0luZm9PYmpMaXN0W2ldW21pLnByb3BlcnR5XSAhPSAnJyAmJiB2aWV3SW5mb09iakxpc3RbaV1bbWkucHJvcGVydHldICE9IG51bGwpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiICpuZ0lmPVwibWkudHlwZSAhPSAnc3dpdGNoJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJsYWJlbC1jb250cm9sIGxhYmVsLWZpZWxkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJtaS5jdXN0b21DbGFzc0xhYmVsICE9IHVuZGVmaW5lZCA/IG1pLmN1c3RvbUNsYXNzTGFiZWwgOiAnJ1wiIHRyYW5zbGF0ZT57e21pLmxhYmVsfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCIgKm5nSWY9XCJtaS50eXBlID09ICdzd2l0Y2gnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGNhc2Ugb2YgbWk/LmNhc2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic3dpdGNoQ2FzZSh2aWV3SW5mb09iakxpc3RbaV0sY2FzZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImxhYmVsLWNvbnRyb2wgbGFiZWwtZmllbGRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJtaS5jdXN0b21DbGFzc0xhYmVsICE9IHVuZGVmaW5lZCA/IG1pLmN1c3RvbUNsYXNzTGFiZWwgOiAnJ1wiIHRyYW5zbGF0ZT57e2Nhc2UucmVzdWx0LmxhYmVsfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInZpZXdJbmZvT2JqTGlzdFtpXSAhPSB1bmRlZmluZWRcIiBjbGFzcz1cImNvbC1tZC0xMlwiIFtuZ0NsYXNzXT1cInsgJ3RleHQtbGVmdCc6IG1pLnBvc2l0aW9uID09ICdsZWZ0JyxcclxuICAgICAgICAgICAgICAgICAgICAgJ3RleHQtcmlnaHQnOiBtaS5wb3NpdGlvbiA9PSAncmlnaHQnLCAndGV4dC1jZW50ZXInOiBtaS5wb3NpdGlvbiA9PSAnY2VudGVyJyB9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIobWkudHlwZSA9PSAnYm9vbGVhbicgJiYgdmlld0luZm9PYmpMaXN0W2ldW21pLnByb3BlcnR5XSAhPSBudWxsKSB8fCAodmlld0luZm9PYmpMaXN0W2ldW21pLnByb3BlcnR5XSAhPSAnJyAmJiB2aWV3SW5mb09iakxpc3RbaV1bbWkucHJvcGVydHldICE9IG51bGwpIHx8IG1pLnR5cGUgPT0gJ3N3aXRjaCcgfHwgbWkudHlwZSA9PSdjb25jYXQnOyB0aGVuIG5vbkVtcHR5TGFiZWwgZWxzZSBlbXB0eUxhYmVsXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2VtcHR5TGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsICpuZ0lmPVwibWkudHlwZSA9PSAnYmxhbmsnXCI+PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgKm5nSWY9XCJtaS50eXBlICE9ICdibGFuaydcIiBjbGFzcz1cImxhYmVsLWNvbnRyb2wgbGFiZWwtZmllbGRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwibWkuY3VzdG9tQ2xhc3NQcm9wZXJ0eSAhPSB1bmRlZmluZWQgPyBtaS5jdXN0b21DbGFzc1Byb3BlcnR5IDogJydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRlPi08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vbkVtcHR5TGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJtaS50eXBlID09ICd0ZXh0J1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwidmlld0luZm9PYmpMaXN0W2ldW21pLnByb3BlcnR5XSAhPSAnJyAmJiB2aWV3SW5mb09iakxpc3RbaV1bbWkucHJvcGVydHldICE9IG51bGxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImxhYmVsLWNvbnRyb2wgYnJlYWt3b3JkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwibWkuY3VzdG9tQ2xhc3NQcm9wZXJ0eSAhPSB1bmRlZmluZWQgPyBtaS5jdXN0b21DbGFzc1Byb3BlcnR5IDogJydcIiB0cmFuc2xhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHZpZXdJbmZvT2JqTGlzdFtpXVttaS5wcm9wZXJ0eV0gfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJ2aWV3SW5mb09iakxpc3RbaV1bbWkucHJvcGVydHldID09ICcnIHx8IHZpZXdJbmZvT2JqTGlzdFtpXVttaS5wcm9wZXJ0eV0gPT0gbnVsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibGFiZWwtY29udHJvbCBsYWJlbC1maWVsZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIm1pLmN1c3RvbUNsYXNzUHJvcGVydHkgIT0gdW5kZWZpbmVkID8gbWkuY3VzdG9tQ2xhc3NQcm9wZXJ0eSA6ICcnXCIgdHJhbnNsYXRlPi1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCAqbmdJZj1cIm1pLnR5cGUgPT0gJ2N1cnJlbmN5J1wiIGNsYXNzPVwibGFiZWwtY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJtaS5jdXN0b21DbGFzc1Byb3BlcnR5ICE9IHVuZGVmaW5lZCA/IG1pLmN1c3RvbUNsYXNzUHJvcGVydHkgOiAnJ1wiIHRyYW5zbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHZpZXdJbmZvT2JqTGlzdFtpXVttaS5wcm9wZXJ0eV0gfCBudW1iZXI6IG1pPy5wcmVjaXNpb24gPyBtaT8ucHJlY2lzaW9uIDogJzAuMicgOidlbi1VUyd9fSA8c3BhbiAqbmdJZj1cIm1pPy5Jc1ByY250XCI+Jm5ic3A7JTwvc3Bhbj4gPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgKm5nSWY9XCJtaS50eXBlID09ICdkYXRlJ1wiIGNsYXNzPVwibGFiZWwtY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJtaS5jdXN0b21DbGFzc1Byb3BlcnR5ICE9IHVuZGVmaW5lZCA/IG1pLmN1c3RvbUNsYXNzUHJvcGVydHkgOiAnJ1wiIHRyYW5zbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHZpZXdJbmZvT2JqTGlzdFtpXVttaS5wcm9wZXJ0eV0gfCBkYXRlOiAobWk/LmRhdGVGb3JtYXQpID8gbWk/LmRhdGVGb3JtYXQgOiAnZGQtTU1NLXl5eXknfX0gPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgKm5nSWY9XCJtaS50eXBlID09ICdsaW5rJ1wiIGNsYXNzPVwibGFiZWwtY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJtaS5jdXN0b21DbGFzc1Byb3BlcnR5ICE9IHVuZGVmaW5lZCA/IG1pLmN1c3RvbUNsYXNzUHJvcGVydHkgOiAnJ1wiIHRyYW5zbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhICpuZ0lmPVwiIW1pPy5pc0Z1bGxwYXRoXCIgW3JvdXRlckxpbmtdPVwiZ2VuUm91dGVyTGluayhtaS5wYXRoKVwiIFt0YXJnZXRdPVwibWkudGFyZ2V0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3F1ZXJ5UGFyYW1zXT1cImdlbkFjdGlvbih2aWV3SW5mb09iakxpc3RbaV0sIG1pLnBhcmFtKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIihtaS5pc0N1cnJlbmN5ICE9IHVuZGVmaW5lZCAmJiBtaS5pc0N1cnJlbmN5KVwiPnt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0luZm9PYmpMaXN0W2ldW21pLnByb3BlcnR5XSB8IG51bWJlcjonLjInOidlbi1VUycgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiKG1pLmlzQ3VycmVuY3kgPT0gdW5kZWZpbmVkIHx8ICFtaS5pc0N1cnJlbmN5KVwiPnt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0luZm9PYmpMaXN0W2ldW21pLnByb3BlcnR5XSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhICpuZ0lmPVwibWk/LmlzRnVsbHBhdGhcIiBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApO1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyZWRpcmVjdEZ1bGxQYXRoKG1pLmZ1bGxwYXRoLCBnZW5BY3Rpb24odmlld0luZm9PYmpMaXN0W2ldLCBtaS5wYXJhbSksIG1pLnRhcmdldClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCIobWkuaXNDdXJyZW5jeSAhPSB1bmRlZmluZWQgJiYgbWkuaXNDdXJyZW5jeSlcIj57e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdJbmZvT2JqTGlzdFtpXVttaS5wcm9wZXJ0eV0gfCBudW1iZXI6Jy4yJzonZW4tVVMnIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIihtaS5pc0N1cnJlbmN5ID09IHVuZGVmaW5lZCB8fCAhbWkuaXNDdXJyZW5jeSlcIj57e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdJbmZvT2JqTGlzdFtpXVttaS5wcm9wZXJ0eV0gfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgKm5nSWY9XCJtaS50eXBlID09ICdjYWxsYmFjaydcIiBjbGFzcz1cImxhYmVsLWNvbnRyb2wgbGFiZWwtZmllbGRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwibWkuY3VzdG9tQ2xhc3NQcm9wZXJ0eSAhPSB1bmRlZmluZWQgPyBtaS5jdXN0b21DbGFzc1Byb3BlcnR5IDogJydcIiB0cmFuc2xhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApO1wiIChjbGljayk9XCJjYWxsYmFja0Z1bmN0aW9uKHZpZXdJbmZvT2JqTGlzdFtpXSwgbWkua2V5KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyB2aWV3SW5mb09iakxpc3RbaV1bbWkucHJvcGVydHldIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8dGV4dGFyZWEgKm5nSWY9XCJtaS50eXBlID09ICd0ZXh0YXJlYSdcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIHJlYWRvbmx5XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJtaS5jdXN0b21DbGFzc1Byb3BlcnR5ICE9IHVuZGVmaW5lZCA/IG1pLmN1c3RvbUNsYXNzUHJvcGVydHkgOiAnJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGU+IHt7IHZpZXdJbmZvT2JqTGlzdFtpXVttaS5wcm9wZXJ0eV0gfX0gPC90ZXh0YXJlYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIm1pLnR5cGUgPT0gJ2Jvb2xlYW4nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIm1pLmN1c3RvbUNsYXNzUHJvcGVydHkgIT0gdW5kZWZpbmVkID8gbWkuY3VzdG9tQ2xhc3NQcm9wZXJ0eSA6ICcnXCIgdHJhbnNsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsICpuZ0lmPVwidmlld0luZm9PYmpMaXN0W2ldW21pLnByb3BlcnR5XSA9PSB0cnVlXCI+WWVzPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCAqbmdJZj1cInZpZXdJbmZvT2JqTGlzdFtpXVttaS5wcm9wZXJ0eV0gPT0gZmFsc2VcIj5ObzwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxsYWJlbFxyXG4gICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInZpZXdJbmZvT2JqTGlzdFtpXVttaS5wcm9wZXJ0eV0gPT0gJycgfHwgdmlld0luZm9PYmpMaXN0W2ldW21pLnByb3BlcnR5XSA9PSBudWxsXCI+LTwvbGFiZWw+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIm1pLnR5cGUgPT0gJ2NvbmNhdCdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImxhYmVsLWNvbnRyb2wgYnJlYWt3b3JkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwibWkuY3VzdG9tQ2xhc3NQcm9wZXJ0eSAhPSB1bmRlZmluZWQgPyBtaS5jdXN0b21DbGFzc1Byb3BlcnR5IDogJydcIiB0cmFuc2xhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IG1pLmNvbmNhdCB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJtaS50eXBlID09ICdzd2l0Y2gnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdGb3I9XCJsZXQgY3Mgb2YgbWk/LmNhc2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJzd2l0Y2hDYXNlKHZpZXdJbmZvT2JqTGlzdFtpXSxjcykgJiYgIWNzLkhpZGRlblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibGFiZWwtY29udHJvbCBicmVha3dvcmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwibWkuY3VzdG9tQ2xhc3NQcm9wZXJ0eSAhPSB1bmRlZmluZWQgPyBtaS5jdXN0b21DbGFzc1Byb3BlcnR5IDogJydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRlICpuZ0lmPVwiY3MucmVzdWx0LnR5cGUgPT0gJ3RleHQnXCI+e3sgdmlld0luZm9PYmpMaXN0W2ldW2NzLnJlc3VsdC5wcm9wZXJ0eV1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIFtuZ0NsYXNzXT1cIm1pLmN1c3RvbUNsYXNzUHJvcGVydHkgIT0gdW5kZWZpbmVkID8gbWkuY3VzdG9tQ2xhc3NQcm9wZXJ0eSA6ICcnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbGF0ZSAqbmdJZj1cImNzLnJlc3VsdC50eXBlID09ICdkZWNpbWFsJ1wiPnt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3SW5mb09iakxpc3RbaV1bY3MucmVzdWx0LnByb3BlcnR5XSB8IG51bWJlcjonLjInOidlbi1VUycgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW25nQ2xhc3NdPVwibWkuY3VzdG9tQ2xhc3NQcm9wZXJ0eSAhPSB1bmRlZmluZWQgPyBtaS5jdXN0b21DbGFzc1Byb3BlcnR5IDogJydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRlICpuZ0lmPVwiY3MucmVzdWx0LnR5cGUgPT0gJ2RhdGUnXCI+e3sgdmlld0luZm9PYmpMaXN0W2ldW2NzLnJlc3VsdC5wcm9wZXJ0eV0gfFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZTogJ2RkLU1NTS15eXl5JyB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImNzLnJlc3VsdC50eXBlID09ICdsaW5rJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJtaS5jdXN0b21DbGFzc1Byb3BlcnR5ICE9IHVuZGVmaW5lZCA/IG1pLmN1c3RvbUNsYXNzUHJvcGVydHkgOiAnJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBbdGFyZ2V0XT1cImNzLnJlc3VsdC50YXJnZXRcIiBbcm91dGVyTGlua109XCJnZW5Sb3V0ZXJMaW5rKGNzLnJlc3VsdC5wYXRoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtxdWVyeVBhcmFtc109XCJnZW5BY3Rpb24odmlld0luZm9PYmpMaXN0W2ldLGNzLnJlc3VsdC5wYXJhbSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCIobWkuaXNDdXJyZW5jeSAhPSB1bmRlZmluZWQgJiYgbWkuaXNDdXJyZW5jeSlcIj57e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdJbmZvT2JqTGlzdFtpXVtjcy5yZXN1bHQucHJvcGVydHldIHwgbnVtYmVyOicuMic6J2VuLVVTJyB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCIobWkuaXNDdXJyZW5jeSA9PSB1bmRlZmluZWQgfHwgIW1pLmlzQ3VycmVuY3kpXCI+e3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3SW5mb09iakxpc3RbaV1bY3MucmVzdWx0LnByb3BlcnR5XSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJjcy5yZXN1bHQudHlwZSA9PSAnYm9vbGVhbidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwibWkuY3VzdG9tQ2xhc3NQcm9wZXJ0eSAhPSB1bmRlZmluZWQgPyBtaS5jdXN0b21DbGFzc1Byb3BlcnR5IDogJydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJ2aWV3SW5mb09iakxpc3RbaV1bY3MucmVzdWx0LnByb3BlcnR5XSA9PSAndHJ1ZSdcIj5ZZXM8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInZpZXdJbmZvT2JqTGlzdFtpXVtjcy5yZXN1bHQucHJvcGVydHldID09ICdmYWxzZSdcIj5Obzwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJjcy5yZXN1bHQudHlwZSA9PSAnY29uY2F0J1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwibGFiZWwtY29udHJvbCBicmVha3dvcmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJtaS5jdXN0b21DbGFzc1Byb3BlcnR5ICE9IHVuZGVmaW5lZCA/IG1pLmN1c3RvbUNsYXNzUHJvcGVydHkgOiAnJ1wiIHRyYW5zbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgY3MucmVzdWx0LmNvbmNhdCB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJjcy5yZXN1bHQudHlwZSA9PSAnY2FsbGJhY2snXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNzLnJlc3VsdC5pc1RleHQgIT0gdW5kZWZpbmVkICYmIGNzLnJlc3VsdC5pc1RleHQ7IHRoZW4gdGV4dENhbGxiYWNrIGVsc2UgaWNvbkNhbGxiYWNrXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICN0ZXh0Q2FsbGJhY2s+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMCk7XCIgKGNsaWNrKT1cImNhbGxiYWNrRnVuY3Rpb24odmlld0luZm9PYmpMaXN0W2ldLCBjcy5yZXN1bHQua2V5KVwiPnt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3SW5mb09iakxpc3RbaV1bY3MucmVzdWx0LnByb3BlcnR5XSB9fTwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjaWNvbkNhbGxiYWNrPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBbbmdDbGFzc109XCJbY3MucmVzdWx0LnRvb2x0aXAgIT0gdW5kZWZpbmVkICYmIGNzLnJlc3VsdC50b29sdGlwICE9ICcnID8gJ3Rvb2x0aXBzJyA6ICcnLCBjcy5yZXN1bHQuYW5jaG9yID09IHVuZGVmaW5lZCB8fCBjcy5yZXN1bHQuYW5jaG9yID09ICcnID8gJ3N1Y2Nlc3MgcC0wJyA6IGNzLnJlc3VsdC5hbmNob3JdXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjYWxsYmFja0Z1bmN0aW9uKHZpZXdJbmZvT2JqTGlzdFtpXSwgY3MucmVzdWx0LmtleSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZm9udC1tZWRpdW0tMyBtci0yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiIGNzLnJlc3VsdC5pY29uID09IHVuZGVmaW5lZCB8fCBjcy5yZXN1bHQuaWNvbiA9PSAnJyA/ICdmdC1lZGl0LTInIDogY3MucmVzdWx0Lmljb24gXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImNzLnJlc3VsdC50b29sdGlwICE9IHVuZGVmaW5lZCAmJiBjcy5yZXN1bHQudG9vbHRpcCAhPSAnJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImNzLnJlc3VsdC50b29sdGlwICE9IHVuZGVmaW5lZCAmJiBjcy5yZXN1bHQudG9vbHRpcCAhPSAnJyA/ICd0b29sdGlwc3RleHQnIDogJydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tjcy5yZXN1bHQudG9vbHRpcH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdyaWQtdmlld1wiICpuZ0lmPVwiZ3JpZFZpZXdPYmouZ3JpZFZpZXdzLmxlbmd0aCA+IDBcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGdyaWRWaWV3IG9mIGlucHV0R3JpZFZpZXdPYmpzOyBsZXQgaSA9IGluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxsaWItdWNTdWJzZWN0aW9uXHJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJncmlkVmlld09iai5ncmlkVmlld3NbaV0uc3Vic2VjdGlvbiAmJiBncmlkVmlld09iai5ncmlkVmlld3NbaV0uc3Vic2VjdGlvbiAhPT0gJydcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtpZF09XCInZ3JpZC1zdWJzZWN0aW9uLWlkJytpXCJcclxuICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiZ3JpZFZpZXdPYmouZ3JpZFZpZXdzW2ldLnN1YnNlY3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgIFtwYW5lbF09XCInZ3JpZC1zdWJzZWN0aW9uLXBhbmVsLScraVwiPlxyXG4gICAgICAgICAgICAgICAgICA8L2xpYi11Y1N1YnNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWJvZHlcIiBbaWRdPVwiJ2dyaWQtc3Vic2VjdGlvbi1wYW5lbC0nK2lcIj5cclxuPCEtLSAgICAgICAgICAgICAgICAgICAgPGxpYi11Y2dyaWR2aWV3IFtncmlkSW5wdXRdPVwiZ3JpZFZpZXdcIiAoY2FsbGJhY2spPVwiZ3JpZEV2ZW50KCRldmVudClcIiAoaXNSZWZyZXNoKT1cIkdldEdyaWRWaWV3RGF0YShncmlkVmlld09iai5ncmlkVmlld3NbaV0sIGdyaWRWaWV3KVwiPjwvbGliLXVjZ3JpZHZpZXc+LS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxpYi11Y3RhYmxlIFtncmlkT2JqXT1cImdyaWRWaWV3XCIgW3N0YW5kYWxvbmVdPVwiZmFsc2VcIiAoY2FsbGJhY2spPVwiZ3JpZEV2ZW50KCRldmVudClcIj48L2xpYi11Y3RhYmxlPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L3NlY3Rpb24+XHJcbiJdfQ==
|
|
@@ -371,6 +371,9 @@ class UcviewgenericComponent {
|
|
|
371
371
|
if (this.viewList.subsection[i].reqObj !== undefined) {
|
|
372
372
|
for (const [key, value] of Object.entries(this.viewList.subsection[i].reqObj)) {
|
|
373
373
|
reqObj[key] = this.getList[value] || this.viewGenericObj.dicts[value];
|
|
374
|
+
if (reqObj[key] == undefined) {
|
|
375
|
+
reqObj[key] = value;
|
|
376
|
+
}
|
|
374
377
|
}
|
|
375
378
|
}
|
|
376
379
|
this.http.post(this.viewList.subsection[i].fullpath, reqObj).subscribe((response) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adins-ucviewgeneric.mjs","sources":["../../../projects/ucviewgeneric/src/lib/ucviewgeneric.service.ts","../../../projects/ucviewgeneric/src/lib/model/uc-view-generic-obj.model.ts","../../../projects/ucviewgeneric/src/lib/model/grid-view-obj.model.ts","../../../projects/ucviewgeneric/src/lib/model/input-grid-obj.model.ts","../../../projects/ucviewgeneric/src/lib/ucviewgeneric.component.ts","../../../projects/ucviewgeneric/src/lib/ucviewgeneric.component.html","../../../projects/ucviewgeneric/src/lib/ucviewgeneric.module.ts","../../../projects/ucviewgeneric/src/public-api.ts","../../../projects/ucviewgeneric/src/adins-ucviewgeneric.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UcviewgenericService {\r\n\r\n constructor() { }\r\n}\r\n","\r\nexport class UcViewGenericObj {\r\n viewInput: string;\r\n viewEnvironment: string;\r\n navigationConst: any;\r\n ddlEnvironments: Array<EnviObj>;\r\n listEnvironments: Array<EnvisObj>;\r\n whereValue: Array<WhereValueObj>;\r\n IsCard: boolean = true;\r\n dataInput: any;\r\n dicts: Record<string, any>;\r\n\r\n constructor() {\r\n this.viewInput = \"\";\r\n this.viewEnvironment = \"\";\r\n this.ddlEnvironments = new Array<EnviObj>();\r\n this.listEnvironments = new Array<EnvisObj>();\r\n this.whereValue = new Array<WhereValueObj>();\r\n this.IsCard = true;\r\n this.dicts = {};\r\n }\r\n}\r\n\r\nexport class EnviObj {\r\n name: string;\r\n environment: string;\r\n\r\n constructor() {\r\n this.name = \"\";\r\n this.environment = \"\";\r\n }\r\n}\r\n\r\nexport class WhereValueObj {\r\n property: string;\r\n value: any;\r\n\r\n constructor() {\r\n this.property = \"\";\r\n }\r\n}\r\n\r\nexport class EnvisObj {\r\n environment: string;\r\n url: string;\r\n\r\n constructor() {\r\n this.environment = \"\";\r\n this.url = \"\";\r\n }\r\n}","export class GridViewObj {\r\n gridViews: GridViewInput[];\r\n constructor() {\r\n this.gridViews = [];\r\n }\r\n}\r\nexport class GridViewInput {\r\n subsection?: string;\r\n getData: {\r\n environment: string;\r\n apiPath: string;\r\n customObjName: string;\r\n reqObj: any;\r\n };\r\n tableInput: {\r\n isSeq: boolean;\r\n headerList: any;\r\n bodyList: any;\r\n };\r\n}\r\n","import { UCSearchComponent } from \"@adins/ucsearch\";\r\n\r\nexport class InputGridObj {\r\n resultData: any;\r\n searchComp: UCSearchComponent;\r\n apiUrl: string;\r\n deleteUrl: string;\r\n pageNow: number;\r\n pageSize: number;\r\n pagingJson: string;\r\n navigationConst: any;\r\n switchValue: Array<SwitchValueObj>;\r\n addGridList: Array<InputAddGridObj>;\r\n dataInput: any;\r\n\r\n constructor() {\r\n this.apiUrl = \"\";\r\n this.deleteUrl = \"\";\r\n this.pageNow = 0;\r\n this.pageSize = 0;\r\n this.pagingJson = \"\";\r\n this.switchValue = new Array<SwitchValueObj>();\r\n this.addGridList = new Array<InputAddGridObj>();\r\n }\r\n}\r\n\r\nexport class SwitchValueObj {\r\n property: string;\r\n value: any;\r\n\r\n constructor() {\r\n this.property = \"\";\r\n }\r\n}\r\n\r\nexport class InputAddGridObj {\r\n AddGridLabel: string;\r\n AddGridProperty: string;\r\n\r\n constructor() {\r\n this.AddGridLabel = \"\";\r\n this.AddGridProperty = \"\";\r\n }\r\n}\r\n","import { Component, OnInit, Input, Output, EventEmitter } from \"@angular/core\";\r\nimport { ActivatedRoute } from \"@angular/router\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { Observable } from \"rxjs\";\r\nimport { EnvisObj, UcViewGenericObj } from \"./model/uc-view-generic-obj.model\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { CookieService } from \"ngx-cookie\";\r\nimport * as CryptoJS from \"crypto-js\";\r\nimport { GridViewObj } from \"./model/grid-view-obj.model\";\r\nimport { InputGridObj } from \"./model/input-grid-obj.model\";\r\n\r\n@Component({\r\n selector: \"lib-ucviewgeneric\",\r\n templateUrl: \"./ucviewgeneric.component.html\",\r\n styleUrls: ['./ucviewgeneric.component.scss'],\r\n})\r\nexport class UcviewgenericComponent implements OnInit {\r\n @Input() viewGenericObj: UcViewGenericObj = new UcViewGenericObj();\r\n @Input() gridViewObj: GridViewObj = new GridViewObj();\r\n @Output() callback: EventEmitter<any> = new EventEmitter();\r\n UserAccess: any = JSON.parse(\r\n this.GetCookie(this.cookieService, \"UserAccess\")\r\n );\r\n inputGridViewObjs: Array<InputGridObj> = new Array<InputGridObj>();\r\n viewList: any = \"\";\r\n getList: any;\r\n viewInfoObjList: any;\r\n isReady: boolean = false;\r\n IsCard: boolean = true;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private http: HttpClient,\r\n private translateService: TranslateService,\r\n private cookieService: CookieService\r\n ) {\r\n this.route.queryParams.subscribe((params) => {\r\n this.getList = params;\r\n });\r\n\r\n this.translateService.setDefaultLang(\"en\");\r\n this.translateService.use(localStorage.getItem(\"lang\") || \"en\");\r\n }\r\n\r\n ngOnInit() {\r\n console.log(\"viewgeneric\");\r\n this.initiateForm();\r\n this.CheckIsCard();\r\n }\r\n\r\n private CheckIsCard() {\r\n if (\r\n this.viewGenericObj.IsCard == undefined ||\r\n this.viewGenericObj.IsCard == null\r\n )\r\n return;\r\n this.IsCard = this.viewGenericObj.IsCard;\r\n }\r\n\r\n initiateForm() {\r\n if (\r\n this.viewGenericObj.dataInput !== undefined &&\r\n Object.keys(this.viewGenericObj.dataInput).length !== 0\r\n ) {\r\n this.setConfiguration({ ...this.viewGenericObj.dataInput });\r\n this.gridViewObj.gridViews = this.viewGenericObj.dataInput.subsection[0]?.gridViews || [];\r\n this.initializeGridViews();\r\n return;\r\n }\r\n\r\n this.getJSON(this.viewGenericObj.viewInput).subscribe((data) => {\r\n this.setConfiguration(data);\r\n });\r\n this.initializeGridViews();\r\n }\r\n\r\n initializeGridViews() {\r\n if (this.gridViewObj && this.gridViewObj.gridViews.length === 0) {\r\n return;\r\n }\r\n\r\n this.gridViewObj.gridViews.map(async (gridView) => {\r\n const inputGridObj = new InputGridObj();\r\n inputGridObj.dataInput = gridView.tableInput;\r\n inputGridObj.resultData = { Data: [] };\r\n await this.GetGridViewData(gridView.getData, inputGridObj);\r\n this.inputGridViewObjs.push(inputGridObj);\r\n });\r\n }\r\n\r\n getEnvironment(envi) {\r\n const filteredEnvis = this.viewGenericObj.listEnvironments.filter(\r\n (v) => v.environment == envi\r\n );\r\n return filteredEnvis.length > 0 ? filteredEnvis[0] : null;\r\n }\r\n\r\n async GetGridViewData(meta: any, inputGridObj: InputGridObj) {\r\n let templListData = [];\r\n const enviUrl = meta.environment && this.getEnvironment(meta.environment);\r\n await this.http\r\n .post(enviUrl ? enviUrl.url + meta.apiPath : meta.apiPath, meta.reqObj)\r\n .toPromise()\r\n .then((response) => {\r\n templListData = response[meta.customObjName || \"ReturnObject\"];\r\n inputGridObj.apiUrl = meta.apiPath;\r\n inputGridObj.resultData[\"Data\"] = new Array();\r\n inputGridObj.resultData.Data = templListData;\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n });\r\n }\r\n\r\n gridEvent(ev) {\r\n this.callbackFunction(ev.RowObj, ev.Key);\r\n }\r\n\r\n setConfiguration(data) {\r\n this.viewList = data;\r\n this.viewInfoObjList = [];\r\n\r\n for (let j = 0; j < this.viewList.subsection.length; j++) {\r\n this.viewInfoObjList.push(j);\r\n }\r\n\r\n for (let i = 0; i < this.viewList.subsection.length; i++) {\r\n if (\r\n this.viewList.subsection[i].querystring != null &&\r\n this.viewList.subsection[i].querystring.name != \"\"\r\n ) {\r\n let queryObj: any;\r\n if (this.viewGenericObj.whereValue.length == 0) {\r\n this.viewList.subsection[i].querystring.whereQuery = (<any>(\r\n Object\r\n )).values(this.getList);\r\n } else {\r\n this.viewList.subsection[i].querystring.whereQuery =\r\n this.viewGenericObj.whereValue;\r\n }\r\n\r\n if (\r\n this.viewList.subsection[i].mainInfoPath != undefined &&\r\n this.viewList.subsection[i].mainInfoPath != \"\"\r\n ) {\r\n if (\r\n this.viewGenericObj.viewEnvironment != undefined &&\r\n this.viewGenericObj.viewEnvironment != \"\"\r\n ) {\r\n this.viewList.subsection[i].fullpath =\r\n this.viewGenericObj.viewEnvironment +\r\n this.viewList.subsection[i].mainInfoPath;\r\n } else {\r\n this.viewList.subsection[i].fullpath =\r\n this.viewList.subsection[i].mainInfoUrl;\r\n }\r\n } else {\r\n this.viewList.subsection[i].fullpath =\r\n this.viewList.subsection[i].mainInfoUrl;\r\n }\r\n\r\n queryObj = {\r\n querystring: this.viewList.subsection[i].querystring,\r\n };\r\n this.http\r\n .post(this.viewList.subsection[i].fullpath, queryObj)\r\n .subscribe(\r\n (response) => {\r\n this.viewInfoObjList[i] = response[\"Data\"][0];\r\n\r\n for (\r\n let y = 0;\r\n y < this.viewList.subsection[i].mainInfo.length;\r\n y++\r\n ) {\r\n if (\r\n this.viewList.subsection[i].mainInfo[y].propertyList !=\r\n undefined &&\r\n this.viewList.subsection[i].mainInfo[y].propertyList.length !=\r\n 0\r\n ) {\r\n const propertyList =\r\n this.viewList.subsection[i].mainInfo[y].propertyList;\r\n let concat = \"\";\r\n for (let z = 0; z < propertyList.length; z++) {\r\n concat =\r\n concat +\r\n propertyList[z].prefix +\r\n this.viewInfoObjList[i][propertyList[z].property] +\r\n propertyList[z].suffix;\r\n }\r\n this.viewList.subsection[i].mainInfo[y].concat = concat;\r\n }\r\n\r\n //switch case\r\n if (this.viewList.subsection[i].mainInfo[y].type == \"switch\") {\r\n for (\r\n let z = 0;\r\n z < this.viewList.subsection[i].mainInfo[y].case.length;\r\n z++\r\n ) {\r\n let Empty = new Array<boolean>();\r\n this.viewList.subsection[i].mainInfo[y].case[z].Hidden =\r\n false;\r\n //check hideIfEmpty\r\n if (\r\n this.viewList.subsection[i].mainInfo[y].case[z].result\r\n .hideIfEmpty != undefined &&\r\n this.viewList.subsection[i].mainInfo[y].case[z].result\r\n .hideIfEmpty != null\r\n ) {\r\n if (\r\n this.viewList.subsection[i].mainInfo[y].case[z].result\r\n .type != \"concat\"\r\n ) {\r\n Empty.push(\r\n this.viewInfoObjList[i][\r\n this.viewList.subsection[i].mainInfo[y].case[z]\r\n .result.property\r\n ] != undefined &&\r\n this.viewInfoObjList[i][\r\n this.viewList.subsection[i].mainInfo[y].case[z]\r\n .result.property\r\n ] != null &&\r\n this.viewInfoObjList[i][\r\n this.viewList.subsection[i].mainInfo[y].case[z]\r\n .result.property\r\n ] != \"\"\r\n ? false\r\n : true\r\n );\r\n } else {\r\n // type concat\r\n if (\r\n this.viewList.subsection[i].mainInfo[y].case[z].result\r\n .propertyList != undefined &&\r\n this.viewList.subsection[i].mainInfo[y].case[z].result\r\n .propertyList.length != 0\r\n ) {\r\n const propertyList =\r\n this.viewList.subsection[i].mainInfo[y].case[z]\r\n .result.propertyList;\r\n let concat = \"\";\r\n for (let a = 0; a < propertyList.length; a++) {\r\n concat =\r\n concat +\r\n propertyList[a].prefix +\r\n this.viewInfoObjList[i][\r\n propertyList[a].property\r\n ] +\r\n propertyList[a].suffix;\r\n Empty.push(\r\n this.viewInfoObjList[i][\r\n propertyList[a].property\r\n ] != undefined &&\r\n this.viewInfoObjList[i][\r\n propertyList[a].property\r\n ] != null &&\r\n this.viewInfoObjList[i][\r\n propertyList[a].property\r\n ] != \"\"\r\n ? false\r\n : true\r\n );\r\n }\r\n this.viewList.subsection[i].mainInfo[y].case[\r\n z\r\n ].result.concat = concat;\r\n }\r\n }\r\n\r\n if (\r\n Empty.includes(true) &&\r\n this.viewList.subsection[i].mainInfo[y].case[z].result\r\n .hideIfEmpty\r\n ) {\r\n this.viewList.subsection[i].mainInfo[y].case[z].Hidden =\r\n true;\r\n this.viewList.subsection[i].mainInfo[y].isHide = true;\r\n }\r\n } else {\r\n //concat\r\n if (\r\n this.viewList.subsection[i].mainInfo[y].case[z].result\r\n .propertyList != undefined &&\r\n this.viewList.subsection[i].mainInfo[y].case[z].result\r\n .propertyList.length != 0\r\n ) {\r\n const propertyList =\r\n this.viewList.subsection[i].mainInfo[y].case[z].result\r\n .propertyList;\r\n let concat = \"\";\r\n for (let a = 0; a < propertyList.length; a++) {\r\n concat =\r\n concat +\r\n propertyList[a].prefix +\r\n this.viewInfoObjList[i][propertyList[a].property] +\r\n propertyList[a].suffix;\r\n }\r\n this.viewList.subsection[i].mainInfo[y].case[\r\n z\r\n ].result.concat = concat;\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (\r\n this.viewList.subsection[i].mainInfo[y].type == \"link\" &&\r\n (this.viewGenericObj.navigationConst != undefined ||\r\n this.viewGenericObj.navigationConst != null)\r\n ) {\r\n let tempLink =\r\n this.viewGenericObj.navigationConst[\r\n this.viewList.subsection[i].mainInfo[y].path\r\n ];\r\n if (tempLink != undefined && tempLink != null) {\r\n this.viewList.subsection[i].mainInfo[y].path = tempLink;\r\n }\r\n }\r\n if (\r\n this.viewList.subsection[i].mainInfo[y].type == \"link\" &&\r\n this.viewGenericObj.listEnvironments != undefined &&\r\n this.viewGenericObj.listEnvironments.length != 0\r\n ) {\r\n for (\r\n let z = 0;\r\n z < this.viewGenericObj.listEnvironments.length;\r\n z++\r\n ) {\r\n if (\r\n this.viewList.subsection[i].mainInfo[y].environment ==\r\n this.viewGenericObj.listEnvironments[z].environment\r\n ) {\r\n this.viewList.subsection[i].mainInfo[y].isFullpath = true;\r\n this.viewList.subsection[i].mainInfo[y].fullpath =\r\n this.viewGenericObj.listEnvironments[z].url +\r\n this.viewList.subsection[i].mainInfo[y].path;\r\n break;\r\n }\r\n }\r\n } else if (\r\n this.viewList.subsection[i].mainInfo[y].type == \"link\"\r\n ) {\r\n this.viewList.subsection[i].mainInfo[y].isFullpath = false;\r\n this.viewList.subsection[i].mainInfo[y].fullpath =\r\n this.viewList.subsection[i].mainInfo[y].path;\r\n }\r\n }\r\n this.isReady = true;\r\n },\r\n (error) => {\r\n console.log(error);\r\n }\r\n );\r\n } else {\r\n if (\r\n this.viewList.subsection[i].mainInfoPath != undefined &&\r\n this.viewList.subsection[i].mainInfoPath != \"\"\r\n ) {\r\n if (\r\n this.viewList.subsection[i].environment != undefined &&\r\n this.viewList.subsection[i].mainInfoPath != \"\"\r\n ) {\r\n for (\r\n let z = 0;\r\n z < this.viewGenericObj.listEnvironments.length;\r\n z++\r\n ) {\r\n if (\r\n this.viewList.subsection[i].environment ==\r\n this.viewGenericObj.listEnvironments[z].environment\r\n ) {\r\n this.viewList.subsection[i].fullpath =\r\n this.viewGenericObj.listEnvironments[z].url +\r\n this.viewList.subsection[i].mainInfoPath;\r\n break;\r\n }\r\n }\r\n } else if (\r\n this.viewGenericObj.viewEnvironment != undefined &&\r\n this.viewGenericObj.viewEnvironment != \"\"\r\n ) {\r\n this.viewList.subsection[i].fullpath =\r\n this.viewGenericObj.viewEnvironment +\r\n this.viewList.subsection[i].mainInfoPath;\r\n } else {\r\n this.viewList.subsection[i].fullpath =\r\n this.viewList.subsection[i].mainInfoUrl;\r\n }\r\n } else {\r\n this.viewList.subsection[i].fullpath =\r\n this.viewList.subsection[i].mainInfoUrl;\r\n }\r\n\r\n const reqObj = this.viewList.subsection[i].reqObj ?? this.getList;\r\n if (this.viewList.subsection[i].reqObj !== undefined) {\r\n for (const [key, value] of Object.entries(\r\n this.viewList.subsection[i].reqObj\r\n )) {\r\n reqObj[key] = this.getList[value as string] || this.viewGenericObj.dicts[value as string];\r\n }\r\n }\r\n\r\n this.http.post(this.viewList.subsection[i].fullpath, reqObj).subscribe(\r\n (response) => {\r\n if (\r\n this.viewList.subsection[i].resObjName === undefined ||\r\n this.viewList.subsection[i].resObjName === \"\"\r\n ) {\r\n this.viewInfoObjList[i] = response;\r\n } else {\r\n this.viewInfoObjList[i] =\r\n response[this.viewList.subsection[i].resObjName];\r\n }\r\n this.isReady = true;\r\n },\r\n (error) => {\r\n console.log(error);\r\n }\r\n );\r\n }\r\n }\r\n }\r\n\r\n public getJSON(url: string): Observable<any> {\r\n return this.http.get(url);\r\n }\r\n\r\n private GetCookie(cookieService: CookieService, key: string) {\r\n let value = cookieService.get(key);\r\n if (value == undefined || value.trim() == \"\") return null;\r\n return this.DecryptString(value, \"AdInsFOU12345678\");\r\n }\r\n\r\n private DecryptString(chipperText: string, chipperKey: string) {\r\n if (\r\n chipperKey == undefined ||\r\n chipperKey.trim() == \"\" ||\r\n chipperText == undefined ||\r\n chipperText.trim() == \"\"\r\n )\r\n return chipperText;\r\n let chipperKeyArr = CryptoJS.enc.Utf8.parse(chipperKey);\r\n let iv = CryptoJS.lib.WordArray.create([0x00, 0x00, 0x00, 0x00]);\r\n let decrypted = CryptoJS.AES.decrypt(chipperText, chipperKeyArr, {\r\n iv: iv,\r\n });\r\n let plainText = decrypted.toString(CryptoJS.enc.Utf8);\r\n return plainText;\r\n }\r\n\r\n genAction(viewObj, param) {\r\n let arrList = {};\r\n\r\n for (let i = 0; i < param.length; i++) {\r\n if (\r\n viewObj[param[i].type] != undefined ||\r\n viewObj[param[i].property] != undefined\r\n ) {\r\n arrList[param[i].type] = viewObj[param[i].property];\r\n } else {\r\n arrList[param[i].type] = param[i].property;\r\n }\r\n }\r\n return arrList;\r\n }\r\n\r\n genRouterLink(urlLink: string) {\r\n let tempLink = urlLink;\r\n if (\r\n this.viewGenericObj.navigationConst != undefined &&\r\n this.viewGenericObj.navigationConst[urlLink] != null\r\n ) {\r\n tempLink = this.viewGenericObj.navigationConst[urlLink];\r\n }\r\n return tempLink;\r\n }\r\n\r\n redirectFullPath(fullpath: string, param: Object, target: string) {\r\n let queryParam = \"\";\r\n const ListObj = Object.keys(param);\r\n for (let i = 0; i < ListObj.length; i++) {\r\n if (queryParam != \"\") {\r\n queryParam = queryParam + \"&\" + ListObj[i] + \"=\" + param[ListObj[i]];\r\n } else {\r\n queryParam = ListObj[i] + \"=\" + param[ListObj[i]];\r\n }\r\n }\r\n window.open(fullpath + \"?\" + queryParam, target);\r\n }\r\n\r\n callbackFunction(item, key: string = \"\") {\r\n let CBObj = {\r\n ViewObj: item,\r\n Key: key,\r\n };\r\n this.callback.emit(CBObj);\r\n }\r\n\r\n switchCase(item, condList) {\r\n let condition = false;\r\n if (!item) return false;\r\n for (let i = 0; i < condList.conditions.length; i++) {\r\n if (condList.conditions[i].restriction == \"EQ\") {\r\n if (condList.conditions[i].isUser != true) {\r\n if (\r\n item[condList.conditions[i].property] ==\r\n condList.conditions[i].value\r\n ) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n } else {\r\n if (\r\n item[condList.conditions[i].property] == this.UserAccess[\"UserName\"]\r\n ) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n }\r\n } else if (condList.conditions[i].restriction == \"NEQ\") {\r\n if (condList.conditions[i].isUser != true) {\r\n if (\r\n item[condList.conditions[i].property] !=\r\n condList.conditions[i].value\r\n ) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n } else {\r\n if (\r\n item[condList.conditions[i].property] != this.UserAccess[\"UserName\"]\r\n ) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n }\r\n } else if (condList.conditions[i].restriction == \"GT\") {\r\n if (condList.conditions[i].isUser != true) {\r\n if (\r\n item[condList.conditions[i].property] > condList.conditions[i].value\r\n ) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n } else {\r\n if (\r\n item[condList.conditions[i].property] > this.UserAccess[\"UserName\"]\r\n ) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n }\r\n } else if (condList.conditions[i].restriction == \"GTE\") {\r\n if (condList.conditions[i].isUser != true) {\r\n if (\r\n item[condList.conditions[i].property] >=\r\n condList.conditions[i].value\r\n ) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n } else {\r\n if (\r\n item[condList.conditions[i].property] >= this.UserAccess[\"UserName\"]\r\n ) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n }\r\n } else if (condList.conditions[i].restriction == \"LT\") {\r\n if (condList.conditions[i].isUser != true) {\r\n if (\r\n item[condList.conditions[i].property] < condList.conditions[i].value\r\n ) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n } else {\r\n if (\r\n item[condList.conditions[i].property] < this.UserAccess[\"UserName\"]\r\n ) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n }\r\n } else if (condList.conditions[i].restriction == \"LTE\") {\r\n if (condList.conditions[i].isUser != true) {\r\n if (\r\n item[condList.conditions[i].property] <=\r\n condList.conditions[i].value\r\n ) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n } else {\r\n if (\r\n item[condList.conditions[i].property] <= this.UserAccess[\"UserName\"]\r\n ) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n }\r\n } else if (condList.conditions[i].restriction == \"IN\") {\r\n if (condList.conditions[i].isUser != true) {\r\n if (\r\n condList.conditions[i].value.findIndex(\r\n (x) => x == item[condList.conditions[i].property]\r\n ) >= 0\r\n ) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n } else {\r\n if (\r\n condList.conditions[i].value.findIndex(\r\n (x) => x == this.UserAccess[\"UserName\"]\r\n ) >= 0\r\n ) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n }\r\n } else if (condList.conditions[i].restriction == \"NIN\") {\r\n if (condList.conditions[i].isUser != true) {\r\n if (\r\n condList.conditions[i].value.findIndex(\r\n (x) => x == item[condList.conditions[i].property]\r\n ) == -1\r\n ) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n } else {\r\n if (\r\n condList.conditions[i].value.findIndex(\r\n (x) => x == this.UserAccess[\"UserName\"]\r\n ) == -1\r\n ) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n return condition;\r\n }\r\n}\r\n","<section id=\"horizontal-form-layouts\">\r\n <div class=\"row text-left\">\r\n <div class=\"col-md-12\">\r\n <div [ngClass]=\"IsCard ? 'card' : ''\" *ngIf=\"isReady\">\r\n <div class=\"pl-3 mb-2 mt-2\" *ngIf=\"viewList?.title != ''\">\r\n <h4 class=\"card-title ucSearch-title\" id=\"horz-layout-colored-controls\" translate>{{viewList.title}}</h4>\r\n </div>\r\n <div class=\"card-body\" *ngFor=\"let ss of viewList?.subsection;let i = index;\">\r\n <div>\r\n <lib-ucSubsection *ngIf=\"ss.subsection != ''\" [id]=\"ss.subSectionId + 'id'\" [title]=\"ss.subSectionTitle\"\r\n [panel]=\"ss.subSectionId\">\r\n </lib-ucSubsection>\r\n <div class=\"form-body p-3 border-top border-bottom\" [id]='ss.subSectionId'>\r\n <div class=\"form-group row\">\r\n <div *ngFor=\"let mi of ss?.mainInfo\"\r\n [ngClass]=\"{ 'col-xxl-2 col-xl-3 col-lg-4 col-md-6 col-xs-12 py-2': mi.isHide == undefined || !mi.isHide || (viewInfoObjList[i][mi.property] != '' && viewInfoObjList[i][mi.property] != null)}\">\r\n <span\r\n *ngIf=\"mi.isHide == undefined || !mi.isHide || (viewInfoObjList[i][mi.property] != '' && viewInfoObjList[i][mi.property] != null)\">\r\n <div class=\"row\">\r\n <div class=\"col-md-12\" *ngIf=\"mi.type != 'switch'\">\r\n <label class=\"label-control label-field\"\r\n [ngClass]=\"mi.customClassLabel != undefined ? mi.customClassLabel : ''\" translate>{{mi.label}}</label>\r\n </div>\r\n <div class=\"col-md-12\" *ngIf=\"mi.type == 'switch'\">\r\n <div *ngFor=\"let case of mi?.case\">\r\n <div *ngIf=\"switchCase(viewInfoObjList[i],case)\">\r\n <label class=\"label-control label-field\"\r\n [ngClass]=\"mi.customClassLabel != undefined ? mi.customClassLabel : ''\" translate>{{case.result.label}}</label>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"viewInfoObjList[i] != undefined\" class=\"col-md-12\" [ngClass]=\"{ 'text-left': mi.position == 'left',\r\n 'text-right': mi.position == 'right', 'text-center': mi.position == 'center' }\">\r\n <span\r\n *ngIf=\"(mi.type == 'boolean' && viewInfoObjList[i][mi.property] != null) || (viewInfoObjList[i][mi.property] != '' && viewInfoObjList[i][mi.property] != null) || mi.type == 'switch' || mi.type =='concat'; then nonEmptyLabel else emptyLabel\"></span>\r\n <ng-template #emptyLabel>\r\n <label *ngIf=\"mi.type == 'blank'\"></label>\r\n <label *ngIf=\"mi.type != 'blank'\" class=\"label-control label-field\"\r\n [ngClass]=\"mi.customClassProperty != undefined ? mi.customClassProperty : ''\"\r\n translate>-</label>\r\n </ng-template>\r\n <ng-template #nonEmptyLabel>\r\n <span *ngIf=\"mi.type == 'text'\">\r\n <label\r\n *ngIf=\"viewInfoObjList[i][mi.property] != '' && viewInfoObjList[i][mi.property] != null\"\r\n class=\"label-control breakword\"\r\n [ngClass]=\"mi.customClassProperty != undefined ? mi.customClassProperty : ''\" translate>\r\n {{ viewInfoObjList[i][mi.property] }}\r\n </label>\r\n <label\r\n *ngIf=\"viewInfoObjList[i][mi.property] == '' || viewInfoObjList[i][mi.property] == null\"\r\n class=\"label-control label-field\"\r\n [ngClass]=\"mi.customClassProperty != undefined ? mi.customClassProperty : ''\" translate>-\r\n </label>\r\n </span>\r\n <label *ngIf=\"mi.type == 'currency'\" class=\"label-control\"\r\n [ngClass]=\"mi.customClassProperty != undefined ? mi.customClassProperty : ''\" translate>\r\n {{ viewInfoObjList[i][mi.property] | number: mi?.precision ? mi?.precision : '0.2' :'en-US'}} <span *ngIf=\"mi?.IsPrcnt\"> %</span> </label>\r\n <label *ngIf=\"mi.type == 'date'\" class=\"label-control\"\r\n [ngClass]=\"mi.customClassProperty != undefined ? mi.customClassProperty : ''\" translate>\r\n {{ viewInfoObjList[i][mi.property] | date: (mi?.dateFormat) ? mi?.dateFormat : 'dd-MMM-yyyy'}} </label>\r\n <label *ngIf=\"mi.type == 'link'\" class=\"label-control\"\r\n [ngClass]=\"mi.customClassProperty != undefined ? mi.customClassProperty : ''\" translate>\r\n <a *ngIf=\"!mi?.isFullpath\" [routerLink]=\"genRouterLink(mi.path)\" [target]=\"mi.target\"\r\n [queryParams]=\"genAction(viewInfoObjList[i], mi.param)\">\r\n <span *ngIf=\"(mi.isCurrency != undefined && mi.isCurrency)\">{{\r\n viewInfoObjList[i][mi.property] | number:'.2':'en-US' }}</span>\r\n <span *ngIf=\"(mi.isCurrency == undefined || !mi.isCurrency)\">{{\r\n viewInfoObjList[i][mi.property] }}</span>\r\n </a>\r\n <a *ngIf=\"mi?.isFullpath\" href=\"javascript:void(0);\"\r\n (click)=\"redirectFullPath(mi.fullpath, genAction(viewInfoObjList[i], mi.param), mi.target)\">\r\n <span *ngIf=\"(mi.isCurrency != undefined && mi.isCurrency)\">{{\r\n viewInfoObjList[i][mi.property] | number:'.2':'en-US' }}</span>\r\n <span *ngIf=\"(mi.isCurrency == undefined || !mi.isCurrency)\">{{\r\n viewInfoObjList[i][mi.property] }}</span>\r\n </a>\r\n </label>\r\n <label *ngIf=\"mi.type == 'callback'\" class=\"label-control label-field\"\r\n [ngClass]=\"mi.customClassProperty != undefined ? mi.customClassProperty : ''\" translate>\r\n <a href=\"javascript:void(0);\" (click)=\"callbackFunction(viewInfoObjList[i], mi.key)\">\r\n {{ viewInfoObjList[i][mi.property] }}\r\n </a>\r\n </label>\r\n <textarea *ngIf=\"mi.type == 'textarea'\" class=\"form-control\" readonly\r\n [ngClass]=\"mi.customClassProperty != undefined ? mi.customClassProperty : ''\"\r\n translate> {{ viewInfoObjList[i][mi.property] }} </textarea>\r\n <span *ngIf=\"mi.type == 'boolean'\"\r\n [ngClass]=\"mi.customClassProperty != undefined ? mi.customClassProperty : ''\" translate>\r\n <label *ngIf=\"viewInfoObjList[i][mi.property] == true\">Yes</label>\r\n <label *ngIf=\"viewInfoObjList[i][mi.property] == false\">No</label>\r\n <!-- <label\r\n *ngIf=\"viewInfoObjList[i][mi.property] == '' || viewInfoObjList[i][mi.property] == null\">-</label> -->\r\n </span>\r\n <span *ngIf=\"mi.type == 'concat'\">\r\n <label class=\"label-control breakword\"\r\n [ngClass]=\"mi.customClassProperty != undefined ? mi.customClassProperty : ''\" translate>\r\n {{ mi.concat }}\r\n </label>\r\n </span>\r\n <span *ngIf=\"mi.type == 'switch'\">\r\n <span *ngFor=\"let cs of mi?.case\">\r\n <span *ngIf=\"switchCase(viewInfoObjList[i],cs) && !cs.Hidden\">\r\n <span class=\"label-control breakword\"\r\n [ngClass]=\"mi.customClassProperty != undefined ? mi.customClassProperty : ''\"\r\n translate *ngIf=\"cs.result.type == 'text'\">{{ viewInfoObjList[i][cs.result.property]\r\n }}\r\n </span>\r\n <span [ngClass]=\"mi.customClassProperty != undefined ? mi.customClassProperty : ''\"\r\n translate *ngIf=\"cs.result.type == 'decimal'\">{{\r\n viewInfoObjList[i][cs.result.property] | number:'.2':'en-US' }}</span>\r\n <span [ngClass]=\"mi.customClassProperty != undefined ? mi.customClassProperty : ''\"\r\n translate *ngIf=\"cs.result.type == 'date'\">{{ viewInfoObjList[i][cs.result.property] |\r\n date: 'dd-MMM-yyyy' }}\r\n </span>\r\n <span *ngIf=\"cs.result.type == 'link'\"\r\n [ngClass]=\"mi.customClassProperty != undefined ? mi.customClassProperty : ''\"\r\n translate>\r\n <a [target]=\"cs.result.target\" [routerLink]=\"genRouterLink(cs.result.path)\"\r\n [queryParams]=\"genAction(viewInfoObjList[i],cs.result.param)\">\r\n <span *ngIf=\"(mi.isCurrency != undefined && mi.isCurrency)\">{{\r\n viewInfoObjList[i][cs.result.property] | number:'.2':'en-US' }}</span>\r\n <span *ngIf=\"(mi.isCurrency == undefined || !mi.isCurrency)\">{{\r\n viewInfoObjList[i][cs.result.property] }}</span>\r\n </a>\r\n </span>\r\n <span *ngIf=\"cs.result.type == 'boolean'\"\r\n [ngClass]=\"mi.customClassProperty != undefined ? mi.customClassProperty : ''\"\r\n translate>\r\n <span *ngIf=\"viewInfoObjList[i][cs.result.property] == 'true'\">Yes</span>\r\n <span *ngIf=\"viewInfoObjList[i][cs.result.property] == 'false'\">No</span>\r\n </span>\r\n <span *ngIf=\"cs.result.type == 'concat'\">\r\n <label class=\"label-control breakword\"\r\n [ngClass]=\"mi.customClassProperty != undefined ? mi.customClassProperty : ''\" translate>\r\n {{ cs.result.concat }}\r\n </label>\r\n </span>\r\n <span *ngIf=\"cs.result.type == 'callback'\">\r\n <span\r\n *ngIf=\"cs.result.isText != undefined && cs.result.isText; then textCallback else iconCallback\"></span>\r\n <ng-template #textCallback>\r\n <span>\r\n <a href=\"javascript:void(0);\" (click)=\"callbackFunction(viewInfoObjList[i], cs.result.key)\">{{\r\n viewInfoObjList[i][cs.result.property] }}</a>\r\n </span>\r\n </ng-template>\r\n <ng-template #iconCallback>\r\n <span>\r\n <a [ngClass]=\"[cs.result.tooltip != undefined && cs.result.tooltip != '' ? 'tooltips' : '', cs.result.anchor == undefined || cs.result.anchor == '' ? 'success p-0' : cs.result.anchor]\"\r\n (click)=\"callbackFunction(viewInfoObjList[i], cs.result.key)\">\r\n <i class=\"font-medium-3 mr-2\"\r\n [ngClass]=\" cs.result.icon == undefined || cs.result.icon == '' ? 'ft-edit-2' : cs.result.icon \">\r\n </i>\r\n <span *ngIf=\"cs.result.tooltip != undefined && cs.result.tooltip != ''\"\r\n [ngClass]=\"cs.result.tooltip != undefined && cs.result.tooltip != '' ? 'tooltipstext' : ''\">\r\n {{cs.result.tooltip}}\r\n </span>\r\n </a>\r\n </span>\r\n </ng-template>\r\n </span>\r\n </span>\r\n </span>\r\n </span>\r\n </ng-template>\r\n </div>\r\n </div>\r\n </span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"grid-view\" *ngIf=\"gridViewObj.gridViews.length > 0\">\r\n <div *ngFor=\"let gridView of inputGridViewObjs; let i = index\">\r\n <lib-ucSubsection\r\n *ngIf=\"gridViewObj.gridViews[i].subsection && gridViewObj.gridViews[i].subsection !== ''\"\r\n [id]=\"'grid-subsection-id'+i\"\r\n [title]=\"gridViewObj.gridViews[i].subsection\"\r\n [panel]=\"'grid-subsection-panel-'+i\">\r\n </lib-ucSubsection>\r\n <div class=\"form-body\" [id]=\"'grid-subsection-panel-'+i\">\r\n<!-- <lib-ucgridview [gridInput]=\"gridView\" (callback)=\"gridEvent($event)\" (isRefresh)=\"GetGridViewData(gridViewObj.gridViews[i], gridView)\"></lib-ucgridview>-->\r\n <lib-uctable [gridObj]=\"gridView\" [standalone]=\"false\" (callback)=\"gridEvent($event)\"></lib-uctable>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</section>\r\n","import { NgModule } from \"@angular/core\";\r\nimport { UcviewgenericComponent } from \"./ucviewgeneric.component\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { RouterModule } from \"@angular/router\";\r\nimport { UcSubsectionModule } from \"@adins/uc-subsection\";\r\nimport { TranslateModule } from \"@ngx-translate/core\";\r\nimport { UcgridviewModule } from \"@adins/ucgridview\";\r\nimport { UctableModule } from '@adins/uctable';\r\n\r\n@NgModule({\r\n declarations: [UcviewgenericComponent],\r\n imports: [\r\n CommonModule,\r\n RouterModule,\r\n UcSubsectionModule,\r\n UcgridviewModule,\r\n UctableModule,\r\n TranslateModule.forChild(),\r\n ],\r\n exports: [UcviewgenericComponent],\r\n})\r\nexport class UcviewgenericModule {}\r\n","/*\r\n * Public API Surface of ucviewgeneric\r\n */\r\n\r\nexport * from './lib/ucviewgeneric.service';\r\nexport * from './lib/ucviewgeneric.component';\r\nexport * from './lib/ucviewgeneric.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"adins-ucviewgeneric.mjs","sources":["../../../projects/ucviewgeneric/src/lib/ucviewgeneric.service.ts","../../../projects/ucviewgeneric/src/lib/model/uc-view-generic-obj.model.ts","../../../projects/ucviewgeneric/src/lib/model/grid-view-obj.model.ts","../../../projects/ucviewgeneric/src/lib/model/input-grid-obj.model.ts","../../../projects/ucviewgeneric/src/lib/ucviewgeneric.component.ts","../../../projects/ucviewgeneric/src/lib/ucviewgeneric.component.html","../../../projects/ucviewgeneric/src/lib/ucviewgeneric.module.ts","../../../projects/ucviewgeneric/src/public-api.ts","../../../projects/ucviewgeneric/src/adins-ucviewgeneric.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UcviewgenericService {\r\n\r\n constructor() { }\r\n}\r\n","\r\nexport class UcViewGenericObj {\r\n viewInput: string;\r\n viewEnvironment: string;\r\n navigationConst: any;\r\n ddlEnvironments: Array<EnviObj>;\r\n listEnvironments: Array<EnvisObj>;\r\n whereValue: Array<WhereValueObj>;\r\n IsCard: boolean = true;\r\n dataInput: any;\r\n dicts: Record<string, any>;\r\n\r\n constructor() {\r\n this.viewInput = \"\";\r\n this.viewEnvironment = \"\";\r\n this.ddlEnvironments = new Array<EnviObj>();\r\n this.listEnvironments = new Array<EnvisObj>();\r\n this.whereValue = new Array<WhereValueObj>();\r\n this.IsCard = true;\r\n this.dicts = {};\r\n }\r\n}\r\n\r\nexport class EnviObj {\r\n name: string;\r\n environment: string;\r\n\r\n constructor() {\r\n this.name = \"\";\r\n this.environment = \"\";\r\n }\r\n}\r\n\r\nexport class WhereValueObj {\r\n property: string;\r\n value: any;\r\n\r\n constructor() {\r\n this.property = \"\";\r\n }\r\n}\r\n\r\nexport class EnvisObj {\r\n environment: string;\r\n url: string;\r\n\r\n constructor() {\r\n this.environment = \"\";\r\n this.url = \"\";\r\n }\r\n}","export class GridViewObj {\r\n gridViews: GridViewInput[];\r\n constructor() {\r\n this.gridViews = [];\r\n }\r\n}\r\nexport class GridViewInput {\r\n subsection?: string;\r\n getData: {\r\n environment: string;\r\n apiPath: string;\r\n customObjName: string;\r\n reqObj: any;\r\n };\r\n tableInput: {\r\n isSeq: boolean;\r\n headerList: any;\r\n bodyList: any;\r\n };\r\n}\r\n","import { UCSearchComponent } from \"@adins/ucsearch\";\r\n\r\nexport class InputGridObj {\r\n resultData: any;\r\n searchComp: UCSearchComponent;\r\n apiUrl: string;\r\n deleteUrl: string;\r\n pageNow: number;\r\n pageSize: number;\r\n pagingJson: string;\r\n navigationConst: any;\r\n switchValue: Array<SwitchValueObj>;\r\n addGridList: Array<InputAddGridObj>;\r\n dataInput: any;\r\n\r\n constructor() {\r\n this.apiUrl = \"\";\r\n this.deleteUrl = \"\";\r\n this.pageNow = 0;\r\n this.pageSize = 0;\r\n this.pagingJson = \"\";\r\n this.switchValue = new Array<SwitchValueObj>();\r\n this.addGridList = new Array<InputAddGridObj>();\r\n }\r\n}\r\n\r\nexport class SwitchValueObj {\r\n property: string;\r\n value: any;\r\n\r\n constructor() {\r\n this.property = \"\";\r\n }\r\n}\r\n\r\nexport class InputAddGridObj {\r\n AddGridLabel: string;\r\n AddGridProperty: string;\r\n\r\n constructor() {\r\n this.AddGridLabel = \"\";\r\n this.AddGridProperty = \"\";\r\n }\r\n}\r\n","import { Component, OnInit, Input, Output, EventEmitter } from \"@angular/core\";\r\nimport { ActivatedRoute } from \"@angular/router\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { Observable } from \"rxjs\";\r\nimport { EnvisObj, UcViewGenericObj } from \"./model/uc-view-generic-obj.model\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { CookieService } from \"ngx-cookie\";\r\nimport * as CryptoJS from \"crypto-js\";\r\nimport { GridViewObj } from \"./model/grid-view-obj.model\";\r\nimport { InputGridObj } from \"./model/input-grid-obj.model\";\r\n\r\n@Component({\r\n selector: \"lib-ucviewgeneric\",\r\n templateUrl: \"./ucviewgeneric.component.html\",\r\n styleUrls: ['./ucviewgeneric.component.scss'],\r\n})\r\nexport class UcviewgenericComponent implements OnInit {\r\n @Input() viewGenericObj: UcViewGenericObj = new UcViewGenericObj();\r\n @Input() gridViewObj: GridViewObj = new GridViewObj();\r\n @Output() callback: EventEmitter<any> = new EventEmitter();\r\n UserAccess: any = JSON.parse(\r\n this.GetCookie(this.cookieService, \"UserAccess\")\r\n );\r\n inputGridViewObjs: Array<InputGridObj> = new Array<InputGridObj>();\r\n viewList: any = \"\";\r\n getList: any;\r\n viewInfoObjList: any;\r\n isReady: boolean = false;\r\n IsCard: boolean = true;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private http: HttpClient,\r\n private translateService: TranslateService,\r\n private cookieService: CookieService\r\n ) {\r\n this.route.queryParams.subscribe((params) => {\r\n this.getList = params;\r\n });\r\n\r\n this.translateService.setDefaultLang(\"en\");\r\n this.translateService.use(localStorage.getItem(\"lang\") || \"en\");\r\n }\r\n\r\n ngOnInit() {\r\n console.log(\"viewgeneric\");\r\n this.initiateForm();\r\n this.CheckIsCard();\r\n }\r\n\r\n private CheckIsCard() {\r\n if (\r\n this.viewGenericObj.IsCard == undefined ||\r\n this.viewGenericObj.IsCard == null\r\n )\r\n return;\r\n this.IsCard = this.viewGenericObj.IsCard;\r\n }\r\n\r\n initiateForm() {\r\n if (\r\n this.viewGenericObj.dataInput !== undefined &&\r\n Object.keys(this.viewGenericObj.dataInput).length !== 0\r\n ) {\r\n this.setConfiguration({ ...this.viewGenericObj.dataInput });\r\n this.gridViewObj.gridViews = this.viewGenericObj.dataInput.subsection[0]?.gridViews || [];\r\n this.initializeGridViews();\r\n return;\r\n }\r\n\r\n this.getJSON(this.viewGenericObj.viewInput).subscribe((data) => {\r\n this.setConfiguration(data);\r\n });\r\n this.initializeGridViews();\r\n }\r\n\r\n initializeGridViews() {\r\n if (this.gridViewObj && this.gridViewObj.gridViews.length === 0) {\r\n return;\r\n }\r\n\r\n this.gridViewObj.gridViews.map(async (gridView) => {\r\n const inputGridObj = new InputGridObj();\r\n inputGridObj.dataInput = gridView.tableInput;\r\n inputGridObj.resultData = { Data: [] };\r\n await this.GetGridViewData(gridView.getData, inputGridObj);\r\n this.inputGridViewObjs.push(inputGridObj);\r\n });\r\n }\r\n\r\n getEnvironment(envi) {\r\n const filteredEnvis = this.viewGenericObj.listEnvironments.filter(\r\n (v) => v.environment == envi\r\n );\r\n return filteredEnvis.length > 0 ? filteredEnvis[0] : null;\r\n }\r\n\r\n async GetGridViewData(meta: any, inputGridObj: InputGridObj) {\r\n let templListData = [];\r\n const enviUrl = meta.environment && this.getEnvironment(meta.environment);\r\n await this.http\r\n .post(enviUrl ? enviUrl.url + meta.apiPath : meta.apiPath, meta.reqObj)\r\n .toPromise()\r\n .then((response) => {\r\n templListData = response[meta.customObjName || \"ReturnObject\"];\r\n inputGridObj.apiUrl = meta.apiPath;\r\n inputGridObj.resultData[\"Data\"] = new Array();\r\n inputGridObj.resultData.Data = templListData;\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n });\r\n }\r\n\r\n gridEvent(ev) {\r\n this.callbackFunction(ev.RowObj, ev.Key);\r\n }\r\n\r\n setConfiguration(data) {\r\n this.viewList = data;\r\n this.viewInfoObjList = [];\r\n\r\n for (let j = 0; j < this.viewList.subsection.length; j++) {\r\n this.viewInfoObjList.push(j);\r\n }\r\n\r\n for (let i = 0; i < this.viewList.subsection.length; i++) {\r\n if (\r\n this.viewList.subsection[i].querystring != null &&\r\n this.viewList.subsection[i].querystring.name != \"\"\r\n ) {\r\n let queryObj: any;\r\n if (this.viewGenericObj.whereValue.length == 0) {\r\n this.viewList.subsection[i].querystring.whereQuery = (<any>(\r\n Object\r\n )).values(this.getList);\r\n } else {\r\n this.viewList.subsection[i].querystring.whereQuery =\r\n this.viewGenericObj.whereValue;\r\n }\r\n\r\n if (\r\n this.viewList.subsection[i].mainInfoPath != undefined &&\r\n this.viewList.subsection[i].mainInfoPath != \"\"\r\n ) {\r\n if (\r\n this.viewGenericObj.viewEnvironment != undefined &&\r\n this.viewGenericObj.viewEnvironment != \"\"\r\n ) {\r\n this.viewList.subsection[i].fullpath =\r\n this.viewGenericObj.viewEnvironment +\r\n this.viewList.subsection[i].mainInfoPath;\r\n } else {\r\n this.viewList.subsection[i].fullpath =\r\n this.viewList.subsection[i].mainInfoUrl;\r\n }\r\n } else {\r\n this.viewList.subsection[i].fullpath =\r\n this.viewList.subsection[i].mainInfoUrl;\r\n }\r\n\r\n queryObj = {\r\n querystring: this.viewList.subsection[i].querystring,\r\n };\r\n this.http\r\n .post(this.viewList.subsection[i].fullpath, queryObj)\r\n .subscribe(\r\n (response) => {\r\n this.viewInfoObjList[i] = response[\"Data\"][0];\r\n\r\n for (\r\n let y = 0;\r\n y < this.viewList.subsection[i].mainInfo.length;\r\n y++\r\n ) {\r\n if (\r\n this.viewList.subsection[i].mainInfo[y].propertyList !=\r\n undefined &&\r\n this.viewList.subsection[i].mainInfo[y].propertyList.length !=\r\n 0\r\n ) {\r\n const propertyList =\r\n this.viewList.subsection[i].mainInfo[y].propertyList;\r\n let concat = \"\";\r\n for (let z = 0; z < propertyList.length; z++) {\r\n concat =\r\n concat +\r\n propertyList[z].prefix +\r\n this.viewInfoObjList[i][propertyList[z].property] +\r\n propertyList[z].suffix;\r\n }\r\n this.viewList.subsection[i].mainInfo[y].concat = concat;\r\n }\r\n\r\n //switch case\r\n if (this.viewList.subsection[i].mainInfo[y].type == \"switch\") {\r\n for (\r\n let z = 0;\r\n z < this.viewList.subsection[i].mainInfo[y].case.length;\r\n z++\r\n ) {\r\n let Empty = new Array<boolean>();\r\n this.viewList.subsection[i].mainInfo[y].case[z].Hidden =\r\n false;\r\n //check hideIfEmpty\r\n if (\r\n this.viewList.subsection[i].mainInfo[y].case[z].result\r\n .hideIfEmpty != undefined &&\r\n this.viewList.subsection[i].mainInfo[y].case[z].result\r\n .hideIfEmpty != null\r\n ) {\r\n if (\r\n this.viewList.subsection[i].mainInfo[y].case[z].result\r\n .type != \"concat\"\r\n ) {\r\n Empty.push(\r\n this.viewInfoObjList[i][\r\n this.viewList.subsection[i].mainInfo[y].case[z]\r\n .result.property\r\n ] != undefined &&\r\n this.viewInfoObjList[i][\r\n this.viewList.subsection[i].mainInfo[y].case[z]\r\n .result.property\r\n ] != null &&\r\n this.viewInfoObjList[i][\r\n this.viewList.subsection[i].mainInfo[y].case[z]\r\n .result.property\r\n ] != \"\"\r\n ? false\r\n : true\r\n );\r\n } else {\r\n // type concat\r\n if (\r\n this.viewList.subsection[i].mainInfo[y].case[z].result\r\n .propertyList != undefined &&\r\n this.viewList.subsection[i].mainInfo[y].case[z].result\r\n .propertyList.length != 0\r\n ) {\r\n const propertyList =\r\n this.viewList.subsection[i].mainInfo[y].case[z]\r\n .result.propertyList;\r\n let concat = \"\";\r\n for (let a = 0; a < propertyList.length; a++) {\r\n concat =\r\n concat +\r\n propertyList[a].prefix +\r\n this.viewInfoObjList[i][\r\n propertyList[a].property\r\n ] +\r\n propertyList[a].suffix;\r\n Empty.push(\r\n this.viewInfoObjList[i][\r\n propertyList[a].property\r\n ] != undefined &&\r\n this.viewInfoObjList[i][\r\n propertyList[a].property\r\n ] != null &&\r\n this.viewInfoObjList[i][\r\n propertyList[a].property\r\n ] != \"\"\r\n ? false\r\n : true\r\n );\r\n }\r\n this.viewList.subsection[i].mainInfo[y].case[\r\n z\r\n ].result.concat = concat;\r\n }\r\n }\r\n\r\n if (\r\n Empty.includes(true) &&\r\n this.viewList.subsection[i].mainInfo[y].case[z].result\r\n .hideIfEmpty\r\n ) {\r\n this.viewList.subsection[i].mainInfo[y].case[z].Hidden =\r\n true;\r\n this.viewList.subsection[i].mainInfo[y].isHide = true;\r\n }\r\n } else {\r\n //concat\r\n if (\r\n this.viewList.subsection[i].mainInfo[y].case[z].result\r\n .propertyList != undefined &&\r\n this.viewList.subsection[i].mainInfo[y].case[z].result\r\n .propertyList.length != 0\r\n ) {\r\n const propertyList =\r\n this.viewList.subsection[i].mainInfo[y].case[z].result\r\n .propertyList;\r\n let concat = \"\";\r\n for (let a = 0; a < propertyList.length; a++) {\r\n concat =\r\n concat +\r\n propertyList[a].prefix +\r\n this.viewInfoObjList[i][propertyList[a].property] +\r\n propertyList[a].suffix;\r\n }\r\n this.viewList.subsection[i].mainInfo[y].case[\r\n z\r\n ].result.concat = concat;\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (\r\n this.viewList.subsection[i].mainInfo[y].type == \"link\" &&\r\n (this.viewGenericObj.navigationConst != undefined ||\r\n this.viewGenericObj.navigationConst != null)\r\n ) {\r\n let tempLink =\r\n this.viewGenericObj.navigationConst[\r\n this.viewList.subsection[i].mainInfo[y].path\r\n ];\r\n if (tempLink != undefined && tempLink != null) {\r\n this.viewList.subsection[i].mainInfo[y].path = tempLink;\r\n }\r\n }\r\n if (\r\n this.viewList.subsection[i].mainInfo[y].type == \"link\" &&\r\n this.viewGenericObj.listEnvironments != undefined &&\r\n this.viewGenericObj.listEnvironments.length != 0\r\n ) {\r\n for (\r\n let z = 0;\r\n z < this.viewGenericObj.listEnvironments.length;\r\n z++\r\n ) {\r\n if (\r\n this.viewList.subsection[i].mainInfo[y].environment ==\r\n this.viewGenericObj.listEnvironments[z].environment\r\n ) {\r\n this.viewList.subsection[i].mainInfo[y].isFullpath = true;\r\n this.viewList.subsection[i].mainInfo[y].fullpath =\r\n this.viewGenericObj.listEnvironments[z].url +\r\n this.viewList.subsection[i].mainInfo[y].path;\r\n break;\r\n }\r\n }\r\n } else if (\r\n this.viewList.subsection[i].mainInfo[y].type == \"link\"\r\n ) {\r\n this.viewList.subsection[i].mainInfo[y].isFullpath = false;\r\n this.viewList.subsection[i].mainInfo[y].fullpath =\r\n this.viewList.subsection[i].mainInfo[y].path;\r\n }\r\n }\r\n this.isReady = true;\r\n },\r\n (error) => {\r\n console.log(error);\r\n }\r\n );\r\n } else {\r\n if (\r\n this.viewList.subsection[i].mainInfoPath != undefined &&\r\n this.viewList.subsection[i].mainInfoPath != \"\"\r\n ) {\r\n if (\r\n this.viewList.subsection[i].environment != undefined &&\r\n this.viewList.subsection[i].mainInfoPath != \"\"\r\n ) {\r\n for (\r\n let z = 0;\r\n z < this.viewGenericObj.listEnvironments.length;\r\n z++\r\n ) {\r\n if (\r\n this.viewList.subsection[i].environment ==\r\n this.viewGenericObj.listEnvironments[z].environment\r\n ) {\r\n this.viewList.subsection[i].fullpath =\r\n this.viewGenericObj.listEnvironments[z].url +\r\n this.viewList.subsection[i].mainInfoPath;\r\n break;\r\n }\r\n }\r\n } else if (\r\n this.viewGenericObj.viewEnvironment != undefined &&\r\n this.viewGenericObj.viewEnvironment != \"\"\r\n ) {\r\n this.viewList.subsection[i].fullpath =\r\n this.viewGenericObj.viewEnvironment +\r\n this.viewList.subsection[i].mainInfoPath;\r\n } else {\r\n this.viewList.subsection[i].fullpath =\r\n this.viewList.subsection[i].mainInfoUrl;\r\n }\r\n } else {\r\n this.viewList.subsection[i].fullpath =\r\n this.viewList.subsection[i].mainInfoUrl;\r\n }\r\n\r\n const reqObj = this.viewList.subsection[i].reqObj ?? this.getList;\r\n if (this.viewList.subsection[i].reqObj !== undefined) {\r\n for (const [key, value] of Object.entries(\r\n this.viewList.subsection[i].reqObj\r\n )) {\r\n reqObj[key] = this.getList[value as string] || this.viewGenericObj.dicts[value as string];\r\n if (reqObj[key] == undefined) {\r\n reqObj[key] = value;\r\n }\r\n }\r\n }\r\n\r\n this.http.post(this.viewList.subsection[i].fullpath, reqObj).subscribe(\r\n (response) => {\r\n if (\r\n this.viewList.subsection[i].resObjName === undefined ||\r\n this.viewList.subsection[i].resObjName === \"\"\r\n ) {\r\n this.viewInfoObjList[i] = response;\r\n } else {\r\n this.viewInfoObjList[i] =\r\n response[this.viewList.subsection[i].resObjName];\r\n }\r\n this.isReady = true;\r\n },\r\n (error) => {\r\n console.log(error);\r\n }\r\n );\r\n }\r\n }\r\n }\r\n\r\n public getJSON(url: string): Observable<any> {\r\n return this.http.get(url);\r\n }\r\n\r\n private GetCookie(cookieService: CookieService, key: string) {\r\n let value = cookieService.get(key);\r\n if (value == undefined || value.trim() == \"\") return null;\r\n return this.DecryptString(value, \"AdInsFOU12345678\");\r\n }\r\n\r\n private DecryptString(chipperText: string, chipperKey: string) {\r\n if (\r\n chipperKey == undefined ||\r\n chipperKey.trim() == \"\" ||\r\n chipperText == undefined ||\r\n chipperText.trim() == \"\"\r\n )\r\n return chipperText;\r\n let chipperKeyArr = CryptoJS.enc.Utf8.parse(chipperKey);\r\n let iv = CryptoJS.lib.WordArray.create([0x00, 0x00, 0x00, 0x00]);\r\n let decrypted = CryptoJS.AES.decrypt(chipperText, chipperKeyArr, {\r\n iv: iv,\r\n });\r\n let plainText = decrypted.toString(CryptoJS.enc.Utf8);\r\n return plainText;\r\n }\r\n\r\n genAction(viewObj, param) {\r\n let arrList = {};\r\n\r\n for (let i = 0; i < param.length; i++) {\r\n if (\r\n viewObj[param[i].type] != undefined ||\r\n viewObj[param[i].property] != undefined\r\n ) {\r\n arrList[param[i].type] = viewObj[param[i].property];\r\n } else {\r\n arrList[param[i].type] = param[i].property;\r\n }\r\n }\r\n return arrList;\r\n }\r\n\r\n genRouterLink(urlLink: string) {\r\n let tempLink = urlLink;\r\n if (\r\n this.viewGenericObj.navigationConst != undefined &&\r\n this.viewGenericObj.navigationConst[urlLink] != null\r\n ) {\r\n tempLink = this.viewGenericObj.navigationConst[urlLink];\r\n }\r\n return tempLink;\r\n }\r\n\r\n redirectFullPath(fullpath: string, param: Object, target: string) {\r\n let queryParam = \"\";\r\n const ListObj = Object.keys(param);\r\n for (let i = 0; i < ListObj.length; i++) {\r\n if (queryParam != \"\") {\r\n queryParam = queryParam + \"&\" + ListObj[i] + \"=\" + param[ListObj[i]];\r\n } else {\r\n queryParam = ListObj[i] + \"=\" + param[ListObj[i]];\r\n }\r\n }\r\n window.open(fullpath + \"?\" + queryParam, target);\r\n }\r\n\r\n callbackFunction(item, key: string = \"\") {\r\n let CBObj = {\r\n ViewObj: item,\r\n Key: key,\r\n };\r\n this.callback.emit(CBObj);\r\n }\r\n\r\n switchCase(item, condList) {\r\n let condition = false;\r\n if (!item) return false;\r\n for (let i = 0; i < condList.conditions.length; i++) {\r\n if (condList.conditions[i].restriction == \"EQ\") {\r\n if (condList.conditions[i].isUser != true) {\r\n if (\r\n item[condList.conditions[i].property] ==\r\n condList.conditions[i].value\r\n ) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n } else {\r\n if (\r\n item[condList.conditions[i].property] == this.UserAccess[\"UserName\"]\r\n ) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n }\r\n } else if (condList.conditions[i].restriction == \"NEQ\") {\r\n if (condList.conditions[i].isUser != true) {\r\n if (\r\n item[condList.conditions[i].property] !=\r\n condList.conditions[i].value\r\n ) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n } else {\r\n if (\r\n item[condList.conditions[i].property] != this.UserAccess[\"UserName\"]\r\n ) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n }\r\n } else if (condList.conditions[i].restriction == \"GT\") {\r\n if (condList.conditions[i].isUser != true) {\r\n if (\r\n item[condList.conditions[i].property] > condList.conditions[i].value\r\n ) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n } else {\r\n if (\r\n item[condList.conditions[i].property] > this.UserAccess[\"UserName\"]\r\n ) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n }\r\n } else if (condList.conditions[i].restriction == \"GTE\") {\r\n if (condList.conditions[i].isUser != true) {\r\n if (\r\n item[condList.conditions[i].property] >=\r\n condList.conditions[i].value\r\n ) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n } else {\r\n if (\r\n item[condList.conditions[i].property] >= this.UserAccess[\"UserName\"]\r\n ) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n }\r\n } else if (condList.conditions[i].restriction == \"LT\") {\r\n if (condList.conditions[i].isUser != true) {\r\n if (\r\n item[condList.conditions[i].property] < condList.conditions[i].value\r\n ) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n } else {\r\n if (\r\n item[condList.conditions[i].property] < this.UserAccess[\"UserName\"]\r\n ) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n }\r\n } else if (condList.conditions[i].restriction == \"LTE\") {\r\n if (condList.conditions[i].isUser != true) {\r\n if (\r\n item[condList.conditions[i].property] <=\r\n condList.conditions[i].value\r\n ) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n } else {\r\n if (\r\n item[condList.conditions[i].property] <= this.UserAccess[\"UserName\"]\r\n ) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n }\r\n } else if (condList.conditions[i].restriction == \"IN\") {\r\n if (condList.conditions[i].isUser != true) {\r\n if (\r\n condList.conditions[i].value.findIndex(\r\n (x) => x == item[condList.conditions[i].property]\r\n ) >= 0\r\n ) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n } else {\r\n if (\r\n condList.conditions[i].value.findIndex(\r\n (x) => x == this.UserAccess[\"UserName\"]\r\n ) >= 0\r\n ) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n }\r\n } else if (condList.conditions[i].restriction == \"NIN\") {\r\n if (condList.conditions[i].isUser != true) {\r\n if (\r\n condList.conditions[i].value.findIndex(\r\n (x) => x == item[condList.conditions[i].property]\r\n ) == -1\r\n ) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n } else {\r\n if (\r\n condList.conditions[i].value.findIndex(\r\n (x) => x == this.UserAccess[\"UserName\"]\r\n ) == -1\r\n ) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n return condition;\r\n }\r\n}\r\n","<section id=\"horizontal-form-layouts\">\r\n <div class=\"row text-left\">\r\n <div class=\"col-md-12\">\r\n <div [ngClass]=\"IsCard ? 'card' : ''\" *ngIf=\"isReady\">\r\n <div class=\"pl-3 mb-2 mt-2\" *ngIf=\"viewList?.title != ''\">\r\n <h4 class=\"card-title ucSearch-title\" id=\"horz-layout-colored-controls\" translate>{{viewList.title}}</h4>\r\n </div>\r\n <div class=\"card-body\" *ngFor=\"let ss of viewList?.subsection;let i = index;\">\r\n <div>\r\n <lib-ucSubsection *ngIf=\"ss.subsection != ''\" [id]=\"ss.subSectionId + 'id'\" [title]=\"ss.subSectionTitle\"\r\n [panel]=\"ss.subSectionId\">\r\n </lib-ucSubsection>\r\n <div class=\"form-body p-3 border-top border-bottom\" [id]='ss.subSectionId'>\r\n <div class=\"form-group row\">\r\n <div *ngFor=\"let mi of ss?.mainInfo\"\r\n [ngClass]=\"{ 'col-xxl-2 col-xl-3 col-lg-4 col-md-6 col-xs-12 py-2': mi.isHide == undefined || !mi.isHide || (viewInfoObjList[i][mi.property] != '' && viewInfoObjList[i][mi.property] != null)}\">\r\n <span\r\n *ngIf=\"mi.isHide == undefined || !mi.isHide || (viewInfoObjList[i][mi.property] != '' && viewInfoObjList[i][mi.property] != null)\">\r\n <div class=\"row\">\r\n <div class=\"col-md-12\" *ngIf=\"mi.type != 'switch'\">\r\n <label class=\"label-control label-field\"\r\n [ngClass]=\"mi.customClassLabel != undefined ? mi.customClassLabel : ''\" translate>{{mi.label}}</label>\r\n </div>\r\n <div class=\"col-md-12\" *ngIf=\"mi.type == 'switch'\">\r\n <div *ngFor=\"let case of mi?.case\">\r\n <div *ngIf=\"switchCase(viewInfoObjList[i],case)\">\r\n <label class=\"label-control label-field\"\r\n [ngClass]=\"mi.customClassLabel != undefined ? mi.customClassLabel : ''\" translate>{{case.result.label}}</label>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"viewInfoObjList[i] != undefined\" class=\"col-md-12\" [ngClass]=\"{ 'text-left': mi.position == 'left',\r\n 'text-right': mi.position == 'right', 'text-center': mi.position == 'center' }\">\r\n <span\r\n *ngIf=\"(mi.type == 'boolean' && viewInfoObjList[i][mi.property] != null) || (viewInfoObjList[i][mi.property] != '' && viewInfoObjList[i][mi.property] != null) || mi.type == 'switch' || mi.type =='concat'; then nonEmptyLabel else emptyLabel\"></span>\r\n <ng-template #emptyLabel>\r\n <label *ngIf=\"mi.type == 'blank'\"></label>\r\n <label *ngIf=\"mi.type != 'blank'\" class=\"label-control label-field\"\r\n [ngClass]=\"mi.customClassProperty != undefined ? mi.customClassProperty : ''\"\r\n translate>-</label>\r\n </ng-template>\r\n <ng-template #nonEmptyLabel>\r\n <span *ngIf=\"mi.type == 'text'\">\r\n <label\r\n *ngIf=\"viewInfoObjList[i][mi.property] != '' && viewInfoObjList[i][mi.property] != null\"\r\n class=\"label-control breakword\"\r\n [ngClass]=\"mi.customClassProperty != undefined ? mi.customClassProperty : ''\" translate>\r\n {{ viewInfoObjList[i][mi.property] }}\r\n </label>\r\n <label\r\n *ngIf=\"viewInfoObjList[i][mi.property] == '' || viewInfoObjList[i][mi.property] == null\"\r\n class=\"label-control label-field\"\r\n [ngClass]=\"mi.customClassProperty != undefined ? mi.customClassProperty : ''\" translate>-\r\n </label>\r\n </span>\r\n <label *ngIf=\"mi.type == 'currency'\" class=\"label-control\"\r\n [ngClass]=\"mi.customClassProperty != undefined ? mi.customClassProperty : ''\" translate>\r\n {{ viewInfoObjList[i][mi.property] | number: mi?.precision ? mi?.precision : '0.2' :'en-US'}} <span *ngIf=\"mi?.IsPrcnt\"> %</span> </label>\r\n <label *ngIf=\"mi.type == 'date'\" class=\"label-control\"\r\n [ngClass]=\"mi.customClassProperty != undefined ? mi.customClassProperty : ''\" translate>\r\n {{ viewInfoObjList[i][mi.property] | date: (mi?.dateFormat) ? mi?.dateFormat : 'dd-MMM-yyyy'}} </label>\r\n <label *ngIf=\"mi.type == 'link'\" class=\"label-control\"\r\n [ngClass]=\"mi.customClassProperty != undefined ? mi.customClassProperty : ''\" translate>\r\n <a *ngIf=\"!mi?.isFullpath\" [routerLink]=\"genRouterLink(mi.path)\" [target]=\"mi.target\"\r\n [queryParams]=\"genAction(viewInfoObjList[i], mi.param)\">\r\n <span *ngIf=\"(mi.isCurrency != undefined && mi.isCurrency)\">{{\r\n viewInfoObjList[i][mi.property] | number:'.2':'en-US' }}</span>\r\n <span *ngIf=\"(mi.isCurrency == undefined || !mi.isCurrency)\">{{\r\n viewInfoObjList[i][mi.property] }}</span>\r\n </a>\r\n <a *ngIf=\"mi?.isFullpath\" href=\"javascript:void(0);\"\r\n (click)=\"redirectFullPath(mi.fullpath, genAction(viewInfoObjList[i], mi.param), mi.target)\">\r\n <span *ngIf=\"(mi.isCurrency != undefined && mi.isCurrency)\">{{\r\n viewInfoObjList[i][mi.property] | number:'.2':'en-US' }}</span>\r\n <span *ngIf=\"(mi.isCurrency == undefined || !mi.isCurrency)\">{{\r\n viewInfoObjList[i][mi.property] }}</span>\r\n </a>\r\n </label>\r\n <label *ngIf=\"mi.type == 'callback'\" class=\"label-control label-field\"\r\n [ngClass]=\"mi.customClassProperty != undefined ? mi.customClassProperty : ''\" translate>\r\n <a href=\"javascript:void(0);\" (click)=\"callbackFunction(viewInfoObjList[i], mi.key)\">\r\n {{ viewInfoObjList[i][mi.property] }}\r\n </a>\r\n </label>\r\n <textarea *ngIf=\"mi.type == 'textarea'\" class=\"form-control\" readonly\r\n [ngClass]=\"mi.customClassProperty != undefined ? mi.customClassProperty : ''\"\r\n translate> {{ viewInfoObjList[i][mi.property] }} </textarea>\r\n <span *ngIf=\"mi.type == 'boolean'\"\r\n [ngClass]=\"mi.customClassProperty != undefined ? mi.customClassProperty : ''\" translate>\r\n <label *ngIf=\"viewInfoObjList[i][mi.property] == true\">Yes</label>\r\n <label *ngIf=\"viewInfoObjList[i][mi.property] == false\">No</label>\r\n <!-- <label\r\n *ngIf=\"viewInfoObjList[i][mi.property] == '' || viewInfoObjList[i][mi.property] == null\">-</label> -->\r\n </span>\r\n <span *ngIf=\"mi.type == 'concat'\">\r\n <label class=\"label-control breakword\"\r\n [ngClass]=\"mi.customClassProperty != undefined ? mi.customClassProperty : ''\" translate>\r\n {{ mi.concat }}\r\n </label>\r\n </span>\r\n <span *ngIf=\"mi.type == 'switch'\">\r\n <span *ngFor=\"let cs of mi?.case\">\r\n <span *ngIf=\"switchCase(viewInfoObjList[i],cs) && !cs.Hidden\">\r\n <span class=\"label-control breakword\"\r\n [ngClass]=\"mi.customClassProperty != undefined ? mi.customClassProperty : ''\"\r\n translate *ngIf=\"cs.result.type == 'text'\">{{ viewInfoObjList[i][cs.result.property]\r\n }}\r\n </span>\r\n <span [ngClass]=\"mi.customClassProperty != undefined ? mi.customClassProperty : ''\"\r\n translate *ngIf=\"cs.result.type == 'decimal'\">{{\r\n viewInfoObjList[i][cs.result.property] | number:'.2':'en-US' }}</span>\r\n <span [ngClass]=\"mi.customClassProperty != undefined ? mi.customClassProperty : ''\"\r\n translate *ngIf=\"cs.result.type == 'date'\">{{ viewInfoObjList[i][cs.result.property] |\r\n date: 'dd-MMM-yyyy' }}\r\n </span>\r\n <span *ngIf=\"cs.result.type == 'link'\"\r\n [ngClass]=\"mi.customClassProperty != undefined ? mi.customClassProperty : ''\"\r\n translate>\r\n <a [target]=\"cs.result.target\" [routerLink]=\"genRouterLink(cs.result.path)\"\r\n [queryParams]=\"genAction(viewInfoObjList[i],cs.result.param)\">\r\n <span *ngIf=\"(mi.isCurrency != undefined && mi.isCurrency)\">{{\r\n viewInfoObjList[i][cs.result.property] | number:'.2':'en-US' }}</span>\r\n <span *ngIf=\"(mi.isCurrency == undefined || !mi.isCurrency)\">{{\r\n viewInfoObjList[i][cs.result.property] }}</span>\r\n </a>\r\n </span>\r\n <span *ngIf=\"cs.result.type == 'boolean'\"\r\n [ngClass]=\"mi.customClassProperty != undefined ? mi.customClassProperty : ''\"\r\n translate>\r\n <span *ngIf=\"viewInfoObjList[i][cs.result.property] == 'true'\">Yes</span>\r\n <span *ngIf=\"viewInfoObjList[i][cs.result.property] == 'false'\">No</span>\r\n </span>\r\n <span *ngIf=\"cs.result.type == 'concat'\">\r\n <label class=\"label-control breakword\"\r\n [ngClass]=\"mi.customClassProperty != undefined ? mi.customClassProperty : ''\" translate>\r\n {{ cs.result.concat }}\r\n </label>\r\n </span>\r\n <span *ngIf=\"cs.result.type == 'callback'\">\r\n <span\r\n *ngIf=\"cs.result.isText != undefined && cs.result.isText; then textCallback else iconCallback\"></span>\r\n <ng-template #textCallback>\r\n <span>\r\n <a href=\"javascript:void(0);\" (click)=\"callbackFunction(viewInfoObjList[i], cs.result.key)\">{{\r\n viewInfoObjList[i][cs.result.property] }}</a>\r\n </span>\r\n </ng-template>\r\n <ng-template #iconCallback>\r\n <span>\r\n <a [ngClass]=\"[cs.result.tooltip != undefined && cs.result.tooltip != '' ? 'tooltips' : '', cs.result.anchor == undefined || cs.result.anchor == '' ? 'success p-0' : cs.result.anchor]\"\r\n (click)=\"callbackFunction(viewInfoObjList[i], cs.result.key)\">\r\n <i class=\"font-medium-3 mr-2\"\r\n [ngClass]=\" cs.result.icon == undefined || cs.result.icon == '' ? 'ft-edit-2' : cs.result.icon \">\r\n </i>\r\n <span *ngIf=\"cs.result.tooltip != undefined && cs.result.tooltip != ''\"\r\n [ngClass]=\"cs.result.tooltip != undefined && cs.result.tooltip != '' ? 'tooltipstext' : ''\">\r\n {{cs.result.tooltip}}\r\n </span>\r\n </a>\r\n </span>\r\n </ng-template>\r\n </span>\r\n </span>\r\n </span>\r\n </span>\r\n </ng-template>\r\n </div>\r\n </div>\r\n </span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"grid-view\" *ngIf=\"gridViewObj.gridViews.length > 0\">\r\n <div *ngFor=\"let gridView of inputGridViewObjs; let i = index\">\r\n <lib-ucSubsection\r\n *ngIf=\"gridViewObj.gridViews[i].subsection && gridViewObj.gridViews[i].subsection !== ''\"\r\n [id]=\"'grid-subsection-id'+i\"\r\n [title]=\"gridViewObj.gridViews[i].subsection\"\r\n [panel]=\"'grid-subsection-panel-'+i\">\r\n </lib-ucSubsection>\r\n <div class=\"form-body\" [id]=\"'grid-subsection-panel-'+i\">\r\n<!-- <lib-ucgridview [gridInput]=\"gridView\" (callback)=\"gridEvent($event)\" (isRefresh)=\"GetGridViewData(gridViewObj.gridViews[i], gridView)\"></lib-ucgridview>-->\r\n <lib-uctable [gridObj]=\"gridView\" [standalone]=\"false\" (callback)=\"gridEvent($event)\"></lib-uctable>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</section>\r\n","import { NgModule } from \"@angular/core\";\r\nimport { UcviewgenericComponent } from \"./ucviewgeneric.component\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { RouterModule } from \"@angular/router\";\r\nimport { UcSubsectionModule } from \"@adins/uc-subsection\";\r\nimport { TranslateModule } from \"@ngx-translate/core\";\r\nimport { UcgridviewModule } from \"@adins/ucgridview\";\r\nimport { UctableModule } from '@adins/uctable';\r\n\r\n@NgModule({\r\n declarations: [UcviewgenericComponent],\r\n imports: [\r\n CommonModule,\r\n RouterModule,\r\n UcSubsectionModule,\r\n UcgridviewModule,\r\n UctableModule,\r\n TranslateModule.forChild(),\r\n ],\r\n exports: [UcviewgenericComponent],\r\n})\r\nexport class UcviewgenericModule {}\r\n","/*\r\n * Public API Surface of ucviewgeneric\r\n */\r\n\r\nexport * from './lib/ucviewgeneric.service';\r\nexport * from './lib/ucviewgeneric.component';\r\nexport * from './lib/ucviewgeneric.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -366,6 +366,9 @@ class UcviewgenericComponent {
|
|
|
366
366
|
if (this.viewList.subsection[i].reqObj !== undefined) {
|
|
367
367
|
for (const [key, value] of Object.entries(this.viewList.subsection[i].reqObj)) {
|
|
368
368
|
reqObj[key] = this.getList[value] || this.viewGenericObj.dicts[value];
|
|
369
|
+
if (reqObj[key] == undefined) {
|
|
370
|
+
reqObj[key] = value;
|
|
371
|
+
}
|
|
369
372
|
}
|
|
370
373
|
}
|
|
371
374
|
this.http.post(this.viewList.subsection[i].fullpath, reqObj).subscribe((response) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adins-ucviewgeneric.mjs","sources":["../../../projects/ucviewgeneric/src/lib/ucviewgeneric.service.ts","../../../projects/ucviewgeneric/src/lib/model/uc-view-generic-obj.model.ts","../../../projects/ucviewgeneric/src/lib/model/grid-view-obj.model.ts","../../../projects/ucviewgeneric/src/lib/model/input-grid-obj.model.ts","../../../projects/ucviewgeneric/src/lib/ucviewgeneric.component.ts","../../../projects/ucviewgeneric/src/lib/ucviewgeneric.component.html","../../../projects/ucviewgeneric/src/lib/ucviewgeneric.module.ts","../../../projects/ucviewgeneric/src/public-api.ts","../../../projects/ucviewgeneric/src/adins-ucviewgeneric.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UcviewgenericService {\r\n\r\n constructor() { }\r\n}\r\n","\r\nexport class UcViewGenericObj {\r\n viewInput: string;\r\n viewEnvironment: string;\r\n navigationConst: any;\r\n ddlEnvironments: Array<EnviObj>;\r\n listEnvironments: Array<EnvisObj>;\r\n whereValue: Array<WhereValueObj>;\r\n IsCard: boolean = true;\r\n dataInput: any;\r\n dicts: Record<string, any>;\r\n\r\n constructor() {\r\n this.viewInput = \"\";\r\n this.viewEnvironment = \"\";\r\n this.ddlEnvironments = new Array<EnviObj>();\r\n this.listEnvironments = new Array<EnvisObj>();\r\n this.whereValue = new Array<WhereValueObj>();\r\n this.IsCard = true;\r\n this.dicts = {};\r\n }\r\n}\r\n\r\nexport class EnviObj {\r\n name: string;\r\n environment: string;\r\n\r\n constructor() {\r\n this.name = \"\";\r\n this.environment = \"\";\r\n }\r\n}\r\n\r\nexport class WhereValueObj {\r\n property: string;\r\n value: any;\r\n\r\n constructor() {\r\n this.property = \"\";\r\n }\r\n}\r\n\r\nexport class EnvisObj {\r\n environment: string;\r\n url: string;\r\n\r\n constructor() {\r\n this.environment = \"\";\r\n this.url = \"\";\r\n }\r\n}","export class GridViewObj {\r\n gridViews: GridViewInput[];\r\n constructor() {\r\n this.gridViews = [];\r\n }\r\n}\r\nexport class GridViewInput {\r\n subsection?: string;\r\n getData: {\r\n environment: string;\r\n apiPath: string;\r\n customObjName: string;\r\n reqObj: any;\r\n };\r\n tableInput: {\r\n isSeq: boolean;\r\n headerList: any;\r\n bodyList: any;\r\n };\r\n}\r\n","import { UCSearchComponent } from \"@adins/ucsearch\";\r\n\r\nexport class InputGridObj {\r\n resultData: any;\r\n searchComp: UCSearchComponent;\r\n apiUrl: string;\r\n deleteUrl: string;\r\n pageNow: number;\r\n pageSize: number;\r\n pagingJson: string;\r\n navigationConst: any;\r\n switchValue: Array<SwitchValueObj>;\r\n addGridList: Array<InputAddGridObj>;\r\n dataInput: any;\r\n\r\n constructor() {\r\n this.apiUrl = \"\";\r\n this.deleteUrl = \"\";\r\n this.pageNow = 0;\r\n this.pageSize = 0;\r\n this.pagingJson = \"\";\r\n this.switchValue = new Array<SwitchValueObj>();\r\n this.addGridList = new Array<InputAddGridObj>();\r\n }\r\n}\r\n\r\nexport class SwitchValueObj {\r\n property: string;\r\n value: any;\r\n\r\n constructor() {\r\n this.property = \"\";\r\n }\r\n}\r\n\r\nexport class InputAddGridObj {\r\n AddGridLabel: string;\r\n AddGridProperty: string;\r\n\r\n constructor() {\r\n this.AddGridLabel = \"\";\r\n this.AddGridProperty = \"\";\r\n }\r\n}\r\n","import { Component, OnInit, Input, Output, EventEmitter } from \"@angular/core\";\r\nimport { ActivatedRoute } from \"@angular/router\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { Observable } from \"rxjs\";\r\nimport { EnvisObj, UcViewGenericObj } from \"./model/uc-view-generic-obj.model\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { CookieService } from \"ngx-cookie\";\r\nimport * as CryptoJS from \"crypto-js\";\r\nimport { GridViewObj } from \"./model/grid-view-obj.model\";\r\nimport { InputGridObj } from \"./model/input-grid-obj.model\";\r\n\r\n@Component({\r\n selector: \"lib-ucviewgeneric\",\r\n templateUrl: \"./ucviewgeneric.component.html\",\r\n styleUrls: ['./ucviewgeneric.component.scss'],\r\n})\r\nexport class UcviewgenericComponent implements OnInit {\r\n @Input() viewGenericObj: UcViewGenericObj = new UcViewGenericObj();\r\n @Input() gridViewObj: GridViewObj = new GridViewObj();\r\n @Output() callback: EventEmitter<any> = new EventEmitter();\r\n UserAccess: any = JSON.parse(\r\n this.GetCookie(this.cookieService, \"UserAccess\")\r\n );\r\n inputGridViewObjs: Array<InputGridObj> = new Array<InputGridObj>();\r\n viewList: any = \"\";\r\n getList: any;\r\n viewInfoObjList: any;\r\n isReady: boolean = false;\r\n IsCard: boolean = true;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private http: HttpClient,\r\n private translateService: TranslateService,\r\n private cookieService: CookieService\r\n ) {\r\n this.route.queryParams.subscribe((params) => {\r\n this.getList = params;\r\n });\r\n\r\n this.translateService.setDefaultLang(\"en\");\r\n this.translateService.use(localStorage.getItem(\"lang\") || \"en\");\r\n }\r\n\r\n ngOnInit() {\r\n console.log(\"viewgeneric\");\r\n this.initiateForm();\r\n this.CheckIsCard();\r\n }\r\n\r\n private CheckIsCard() {\r\n if (\r\n this.viewGenericObj.IsCard == undefined ||\r\n this.viewGenericObj.IsCard == null\r\n )\r\n return;\r\n this.IsCard = this.viewGenericObj.IsCard;\r\n }\r\n\r\n initiateForm() {\r\n if (\r\n this.viewGenericObj.dataInput !== undefined &&\r\n Object.keys(this.viewGenericObj.dataInput).length !== 0\r\n ) {\r\n this.setConfiguration({ ...this.viewGenericObj.dataInput });\r\n this.gridViewObj.gridViews = this.viewGenericObj.dataInput.subsection[0]?.gridViews || [];\r\n this.initializeGridViews();\r\n return;\r\n }\r\n\r\n this.getJSON(this.viewGenericObj.viewInput).subscribe((data) => {\r\n this.setConfiguration(data);\r\n });\r\n this.initializeGridViews();\r\n }\r\n\r\n initializeGridViews() {\r\n if (this.gridViewObj && this.gridViewObj.gridViews.length === 0) {\r\n return;\r\n }\r\n\r\n this.gridViewObj.gridViews.map(async (gridView) => {\r\n const inputGridObj = new InputGridObj();\r\n inputGridObj.dataInput = gridView.tableInput;\r\n inputGridObj.resultData = { Data: [] };\r\n await this.GetGridViewData(gridView.getData, inputGridObj);\r\n this.inputGridViewObjs.push(inputGridObj);\r\n });\r\n }\r\n\r\n getEnvironment(envi) {\r\n const filteredEnvis = this.viewGenericObj.listEnvironments.filter(\r\n (v) => v.environment == envi\r\n );\r\n return filteredEnvis.length > 0 ? filteredEnvis[0] : null;\r\n }\r\n\r\n async GetGridViewData(meta: any, inputGridObj: InputGridObj) {\r\n let templListData = [];\r\n const enviUrl = meta.environment && this.getEnvironment(meta.environment);\r\n await this.http\r\n .post(enviUrl ? enviUrl.url + meta.apiPath : meta.apiPath, meta.reqObj)\r\n .toPromise()\r\n .then((response) => {\r\n templListData = response[meta.customObjName || \"ReturnObject\"];\r\n inputGridObj.apiUrl = meta.apiPath;\r\n inputGridObj.resultData[\"Data\"] = new Array();\r\n inputGridObj.resultData.Data = templListData;\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n });\r\n }\r\n\r\n gridEvent(ev) {\r\n this.callbackFunction(ev.RowObj, ev.Key);\r\n }\r\n\r\n setConfiguration(data) {\r\n this.viewList = data;\r\n this.viewInfoObjList = [];\r\n\r\n for (let j = 0; j < this.viewList.subsection.length; j++) {\r\n this.viewInfoObjList.push(j);\r\n }\r\n\r\n for (let i = 0; i < this.viewList.subsection.length; i++) {\r\n if (\r\n this.viewList.subsection[i].querystring != null &&\r\n this.viewList.subsection[i].querystring.name != \"\"\r\n ) {\r\n let queryObj: any;\r\n if (this.viewGenericObj.whereValue.length == 0) {\r\n this.viewList.subsection[i].querystring.whereQuery = (<any>(\r\n Object\r\n )).values(this.getList);\r\n } else {\r\n this.viewList.subsection[i].querystring.whereQuery =\r\n this.viewGenericObj.whereValue;\r\n }\r\n\r\n if (\r\n this.viewList.subsection[i].mainInfoPath != undefined &&\r\n this.viewList.subsection[i].mainInfoPath != \"\"\r\n ) {\r\n if (\r\n this.viewGenericObj.viewEnvironment != undefined &&\r\n this.viewGenericObj.viewEnvironment != \"\"\r\n ) {\r\n this.viewList.subsection[i].fullpath =\r\n this.viewGenericObj.viewEnvironment +\r\n this.viewList.subsection[i].mainInfoPath;\r\n } else {\r\n this.viewList.subsection[i].fullpath =\r\n this.viewList.subsection[i].mainInfoUrl;\r\n }\r\n } else {\r\n this.viewList.subsection[i].fullpath =\r\n this.viewList.subsection[i].mainInfoUrl;\r\n }\r\n\r\n queryObj = {\r\n querystring: this.viewList.subsection[i].querystring,\r\n };\r\n this.http\r\n .post(this.viewList.subsection[i].fullpath, queryObj)\r\n .subscribe(\r\n (response) => {\r\n this.viewInfoObjList[i] = response[\"Data\"][0];\r\n\r\n for (\r\n let y = 0;\r\n y < this.viewList.subsection[i].mainInfo.length;\r\n y++\r\n ) {\r\n if (\r\n this.viewList.subsection[i].mainInfo[y].propertyList !=\r\n undefined &&\r\n this.viewList.subsection[i].mainInfo[y].propertyList.length !=\r\n 0\r\n ) {\r\n const propertyList =\r\n this.viewList.subsection[i].mainInfo[y].propertyList;\r\n let concat = \"\";\r\n for (let z = 0; z < propertyList.length; z++) {\r\n concat =\r\n concat +\r\n propertyList[z].prefix +\r\n this.viewInfoObjList[i][propertyList[z].property] +\r\n propertyList[z].suffix;\r\n }\r\n this.viewList.subsection[i].mainInfo[y].concat = concat;\r\n }\r\n\r\n //switch case\r\n if (this.viewList.subsection[i].mainInfo[y].type == \"switch\") {\r\n for (\r\n let z = 0;\r\n z < this.viewList.subsection[i].mainInfo[y].case.length;\r\n z++\r\n ) {\r\n let Empty = new Array<boolean>();\r\n this.viewList.subsection[i].mainInfo[y].case[z].Hidden =\r\n false;\r\n //check hideIfEmpty\r\n if (\r\n this.viewList.subsection[i].mainInfo[y].case[z].result\r\n .hideIfEmpty != undefined &&\r\n this.viewList.subsection[i].mainInfo[y].case[z].result\r\n .hideIfEmpty != null\r\n ) {\r\n if (\r\n this.viewList.subsection[i].mainInfo[y].case[z].result\r\n .type != \"concat\"\r\n ) {\r\n Empty.push(\r\n this.viewInfoObjList[i][\r\n this.viewList.subsection[i].mainInfo[y].case[z]\r\n .result.property\r\n ] != undefined &&\r\n this.viewInfoObjList[i][\r\n this.viewList.subsection[i].mainInfo[y].case[z]\r\n .result.property\r\n ] != null &&\r\n this.viewInfoObjList[i][\r\n this.viewList.subsection[i].mainInfo[y].case[z]\r\n .result.property\r\n ] != \"\"\r\n ? false\r\n : true\r\n );\r\n } else {\r\n // type concat\r\n if (\r\n this.viewList.subsection[i].mainInfo[y].case[z].result\r\n .propertyList != undefined &&\r\n this.viewList.subsection[i].mainInfo[y].case[z].result\r\n .propertyList.length != 0\r\n ) {\r\n const propertyList =\r\n this.viewList.subsection[i].mainInfo[y].case[z]\r\n .result.propertyList;\r\n let concat = \"\";\r\n for (let a = 0; a < propertyList.length; a++) {\r\n concat =\r\n concat +\r\n propertyList[a].prefix +\r\n this.viewInfoObjList[i][\r\n propertyList[a].property\r\n ] +\r\n propertyList[a].suffix;\r\n Empty.push(\r\n this.viewInfoObjList[i][\r\n propertyList[a].property\r\n ] != undefined &&\r\n this.viewInfoObjList[i][\r\n propertyList[a].property\r\n ] != null &&\r\n this.viewInfoObjList[i][\r\n propertyList[a].property\r\n ] != \"\"\r\n ? false\r\n : true\r\n );\r\n }\r\n this.viewList.subsection[i].mainInfo[y].case[\r\n z\r\n ].result.concat = concat;\r\n }\r\n }\r\n\r\n if (\r\n Empty.includes(true) &&\r\n this.viewList.subsection[i].mainInfo[y].case[z].result\r\n .hideIfEmpty\r\n ) {\r\n this.viewList.subsection[i].mainInfo[y].case[z].Hidden =\r\n true;\r\n this.viewList.subsection[i].mainInfo[y].isHide = true;\r\n }\r\n } else {\r\n //concat\r\n if (\r\n this.viewList.subsection[i].mainInfo[y].case[z].result\r\n .propertyList != undefined &&\r\n this.viewList.subsection[i].mainInfo[y].case[z].result\r\n .propertyList.length != 0\r\n ) {\r\n const propertyList =\r\n this.viewList.subsection[i].mainInfo[y].case[z].result\r\n .propertyList;\r\n let concat = \"\";\r\n for (let a = 0; a < propertyList.length; a++) {\r\n concat =\r\n concat +\r\n propertyList[a].prefix +\r\n this.viewInfoObjList[i][propertyList[a].property] +\r\n propertyList[a].suffix;\r\n }\r\n this.viewList.subsection[i].mainInfo[y].case[\r\n z\r\n ].result.concat = concat;\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (\r\n this.viewList.subsection[i].mainInfo[y].type == \"link\" &&\r\n (this.viewGenericObj.navigationConst != undefined ||\r\n this.viewGenericObj.navigationConst != null)\r\n ) {\r\n let tempLink =\r\n this.viewGenericObj.navigationConst[\r\n this.viewList.subsection[i].mainInfo[y].path\r\n ];\r\n if (tempLink != undefined && tempLink != null) {\r\n this.viewList.subsection[i].mainInfo[y].path = tempLink;\r\n }\r\n }\r\n if (\r\n this.viewList.subsection[i].mainInfo[y].type == \"link\" &&\r\n this.viewGenericObj.listEnvironments != undefined &&\r\n this.viewGenericObj.listEnvironments.length != 0\r\n ) {\r\n for (\r\n let z = 0;\r\n z < this.viewGenericObj.listEnvironments.length;\r\n z++\r\n ) {\r\n if (\r\n this.viewList.subsection[i].mainInfo[y].environment ==\r\n this.viewGenericObj.listEnvironments[z].environment\r\n ) {\r\n this.viewList.subsection[i].mainInfo[y].isFullpath = true;\r\n this.viewList.subsection[i].mainInfo[y].fullpath =\r\n this.viewGenericObj.listEnvironments[z].url +\r\n this.viewList.subsection[i].mainInfo[y].path;\r\n break;\r\n }\r\n }\r\n } else if (\r\n this.viewList.subsection[i].mainInfo[y].type == \"link\"\r\n ) {\r\n this.viewList.subsection[i].mainInfo[y].isFullpath = false;\r\n this.viewList.subsection[i].mainInfo[y].fullpath =\r\n this.viewList.subsection[i].mainInfo[y].path;\r\n }\r\n }\r\n this.isReady = true;\r\n },\r\n (error) => {\r\n console.log(error);\r\n }\r\n );\r\n } else {\r\n if (\r\n this.viewList.subsection[i].mainInfoPath != undefined &&\r\n this.viewList.subsection[i].mainInfoPath != \"\"\r\n ) {\r\n if (\r\n this.viewList.subsection[i].environment != undefined &&\r\n this.viewList.subsection[i].mainInfoPath != \"\"\r\n ) {\r\n for (\r\n let z = 0;\r\n z < this.viewGenericObj.listEnvironments.length;\r\n z++\r\n ) {\r\n if (\r\n this.viewList.subsection[i].environment ==\r\n this.viewGenericObj.listEnvironments[z].environment\r\n ) {\r\n this.viewList.subsection[i].fullpath =\r\n this.viewGenericObj.listEnvironments[z].url +\r\n this.viewList.subsection[i].mainInfoPath;\r\n break;\r\n }\r\n }\r\n } else if (\r\n this.viewGenericObj.viewEnvironment != undefined &&\r\n this.viewGenericObj.viewEnvironment != \"\"\r\n ) {\r\n this.viewList.subsection[i].fullpath =\r\n this.viewGenericObj.viewEnvironment +\r\n this.viewList.subsection[i].mainInfoPath;\r\n } else {\r\n this.viewList.subsection[i].fullpath =\r\n this.viewList.subsection[i].mainInfoUrl;\r\n }\r\n } else {\r\n this.viewList.subsection[i].fullpath =\r\n this.viewList.subsection[i].mainInfoUrl;\r\n }\r\n\r\n const reqObj = this.viewList.subsection[i].reqObj ?? this.getList;\r\n if (this.viewList.subsection[i].reqObj !== undefined) {\r\n for (const [key, value] of Object.entries(\r\n this.viewList.subsection[i].reqObj\r\n )) {\r\n reqObj[key] = this.getList[value as string] || this.viewGenericObj.dicts[value as string];\r\n }\r\n }\r\n\r\n this.http.post(this.viewList.subsection[i].fullpath, reqObj).subscribe(\r\n (response) => {\r\n if (\r\n this.viewList.subsection[i].resObjName === undefined ||\r\n this.viewList.subsection[i].resObjName === \"\"\r\n ) {\r\n this.viewInfoObjList[i] = response;\r\n } else {\r\n this.viewInfoObjList[i] =\r\n response[this.viewList.subsection[i].resObjName];\r\n }\r\n this.isReady = true;\r\n },\r\n (error) => {\r\n console.log(error);\r\n }\r\n );\r\n }\r\n }\r\n }\r\n\r\n public getJSON(url: string): Observable<any> {\r\n return this.http.get(url);\r\n }\r\n\r\n private GetCookie(cookieService: CookieService, key: string) {\r\n let value = cookieService.get(key);\r\n if (value == undefined || value.trim() == \"\") return null;\r\n return this.DecryptString(value, \"AdInsFOU12345678\");\r\n }\r\n\r\n private DecryptString(chipperText: string, chipperKey: string) {\r\n if (\r\n chipperKey == undefined ||\r\n chipperKey.trim() == \"\" ||\r\n chipperText == undefined ||\r\n chipperText.trim() == \"\"\r\n )\r\n return chipperText;\r\n let chipperKeyArr = CryptoJS.enc.Utf8.parse(chipperKey);\r\n let iv = CryptoJS.lib.WordArray.create([0x00, 0x00, 0x00, 0x00]);\r\n let decrypted = CryptoJS.AES.decrypt(chipperText, chipperKeyArr, {\r\n iv: iv,\r\n });\r\n let plainText = decrypted.toString(CryptoJS.enc.Utf8);\r\n return plainText;\r\n }\r\n\r\n genAction(viewObj, param) {\r\n let arrList = {};\r\n\r\n for (let i = 0; i < param.length; i++) {\r\n if (\r\n viewObj[param[i].type] != undefined ||\r\n viewObj[param[i].property] != undefined\r\n ) {\r\n arrList[param[i].type] = viewObj[param[i].property];\r\n } else {\r\n arrList[param[i].type] = param[i].property;\r\n }\r\n }\r\n return arrList;\r\n }\r\n\r\n genRouterLink(urlLink: string) {\r\n let tempLink = urlLink;\r\n if (\r\n this.viewGenericObj.navigationConst != undefined &&\r\n this.viewGenericObj.navigationConst[urlLink] != null\r\n ) {\r\n tempLink = this.viewGenericObj.navigationConst[urlLink];\r\n }\r\n return tempLink;\r\n }\r\n\r\n redirectFullPath(fullpath: string, param: Object, target: string) {\r\n let queryParam = \"\";\r\n const ListObj = Object.keys(param);\r\n for (let i = 0; i < ListObj.length; i++) {\r\n if (queryParam != \"\") {\r\n queryParam = queryParam + \"&\" + ListObj[i] + \"=\" + param[ListObj[i]];\r\n } else {\r\n queryParam = ListObj[i] + \"=\" + param[ListObj[i]];\r\n }\r\n }\r\n window.open(fullpath + \"?\" + queryParam, target);\r\n }\r\n\r\n callbackFunction(item, key: string = \"\") {\r\n let CBObj = {\r\n ViewObj: item,\r\n Key: key,\r\n };\r\n this.callback.emit(CBObj);\r\n }\r\n\r\n switchCase(item, condList) {\r\n let condition = false;\r\n if (!item) return false;\r\n for (let i = 0; i < condList.conditions.length; i++) {\r\n if (condList.conditions[i].restriction == \"EQ\") {\r\n if (condList.conditions[i].isUser != true) {\r\n if (\r\n item[condList.conditions[i].property] ==\r\n condList.conditions[i].value\r\n ) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n } else {\r\n if (\r\n item[condList.conditions[i].property] == this.UserAccess[\"UserName\"]\r\n ) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n }\r\n } else if (condList.conditions[i].restriction == \"NEQ\") {\r\n if (condList.conditions[i].isUser != true) {\r\n if (\r\n item[condList.conditions[i].property] !=\r\n condList.conditions[i].value\r\n ) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n } else {\r\n if (\r\n item[condList.conditions[i].property] != this.UserAccess[\"UserName\"]\r\n ) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n }\r\n } else if (condList.conditions[i].restriction == \"GT\") {\r\n if (condList.conditions[i].isUser != true) {\r\n if (\r\n item[condList.conditions[i].property] > condList.conditions[i].value\r\n ) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n } else {\r\n if (\r\n item[condList.conditions[i].property] > this.UserAccess[\"UserName\"]\r\n ) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n }\r\n } else if (condList.conditions[i].restriction == \"GTE\") {\r\n if (condList.conditions[i].isUser != true) {\r\n if (\r\n item[condList.conditions[i].property] >=\r\n condList.conditions[i].value\r\n ) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n } else {\r\n if (\r\n item[condList.conditions[i].property] >= this.UserAccess[\"UserName\"]\r\n ) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n }\r\n } else if (condList.conditions[i].restriction == \"LT\") {\r\n if (condList.conditions[i].isUser != true) {\r\n if (\r\n item[condList.conditions[i].property] < condList.conditions[i].value\r\n ) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n } else {\r\n if (\r\n item[condList.conditions[i].property] < this.UserAccess[\"UserName\"]\r\n ) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n }\r\n } else if (condList.conditions[i].restriction == \"LTE\") {\r\n if (condList.conditions[i].isUser != true) {\r\n if (\r\n item[condList.conditions[i].property] <=\r\n condList.conditions[i].value\r\n ) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n } else {\r\n if (\r\n item[condList.conditions[i].property] <= this.UserAccess[\"UserName\"]\r\n ) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n }\r\n } else if (condList.conditions[i].restriction == \"IN\") {\r\n if (condList.conditions[i].isUser != true) {\r\n if (\r\n condList.conditions[i].value.findIndex(\r\n (x) => x == item[condList.conditions[i].property]\r\n ) >= 0\r\n ) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n } else {\r\n if (\r\n condList.conditions[i].value.findIndex(\r\n (x) => x == this.UserAccess[\"UserName\"]\r\n ) >= 0\r\n ) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n }\r\n } else if (condList.conditions[i].restriction == \"NIN\") {\r\n if (condList.conditions[i].isUser != true) {\r\n if (\r\n condList.conditions[i].value.findIndex(\r\n (x) => x == item[condList.conditions[i].property]\r\n ) == -1\r\n ) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n } else {\r\n if (\r\n condList.conditions[i].value.findIndex(\r\n (x) => x == this.UserAccess[\"UserName\"]\r\n ) == -1\r\n ) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n return condition;\r\n }\r\n}\r\n","<section id=\"horizontal-form-layouts\">\r\n <div class=\"row text-left\">\r\n <div class=\"col-md-12\">\r\n <div [ngClass]=\"IsCard ? 'card' : ''\" *ngIf=\"isReady\">\r\n <div class=\"pl-3 mb-2 mt-2\" *ngIf=\"viewList?.title != ''\">\r\n <h4 class=\"card-title ucSearch-title\" id=\"horz-layout-colored-controls\" translate>{{viewList.title}}</h4>\r\n </div>\r\n <div class=\"card-body\" *ngFor=\"let ss of viewList?.subsection;let i = index;\">\r\n <div>\r\n <lib-ucSubsection *ngIf=\"ss.subsection != ''\" [id]=\"ss.subSectionId + 'id'\" [title]=\"ss.subSectionTitle\"\r\n [panel]=\"ss.subSectionId\">\r\n </lib-ucSubsection>\r\n <div class=\"form-body p-3 border-top border-bottom\" [id]='ss.subSectionId'>\r\n <div class=\"form-group row\">\r\n <div *ngFor=\"let mi of ss?.mainInfo\"\r\n [ngClass]=\"{ 'col-xxl-2 col-xl-3 col-lg-4 col-md-6 col-xs-12 py-2': mi.isHide == undefined || !mi.isHide || (viewInfoObjList[i][mi.property] != '' && viewInfoObjList[i][mi.property] != null)}\">\r\n <span\r\n *ngIf=\"mi.isHide == undefined || !mi.isHide || (viewInfoObjList[i][mi.property] != '' && viewInfoObjList[i][mi.property] != null)\">\r\n <div class=\"row\">\r\n <div class=\"col-md-12\" *ngIf=\"mi.type != 'switch'\">\r\n <label class=\"label-control label-field\"\r\n [ngClass]=\"mi.customClassLabel != undefined ? mi.customClassLabel : ''\" translate>{{mi.label}}</label>\r\n </div>\r\n <div class=\"col-md-12\" *ngIf=\"mi.type == 'switch'\">\r\n <div *ngFor=\"let case of mi?.case\">\r\n <div *ngIf=\"switchCase(viewInfoObjList[i],case)\">\r\n <label class=\"label-control label-field\"\r\n [ngClass]=\"mi.customClassLabel != undefined ? mi.customClassLabel : ''\" translate>{{case.result.label}}</label>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"viewInfoObjList[i] != undefined\" class=\"col-md-12\" [ngClass]=\"{ 'text-left': mi.position == 'left',\r\n 'text-right': mi.position == 'right', 'text-center': mi.position == 'center' }\">\r\n <span\r\n *ngIf=\"(mi.type == 'boolean' && viewInfoObjList[i][mi.property] != null) || (viewInfoObjList[i][mi.property] != '' && viewInfoObjList[i][mi.property] != null) || mi.type == 'switch' || mi.type =='concat'; then nonEmptyLabel else emptyLabel\"></span>\r\n <ng-template #emptyLabel>\r\n <label *ngIf=\"mi.type == 'blank'\"></label>\r\n <label *ngIf=\"mi.type != 'blank'\" class=\"label-control label-field\"\r\n [ngClass]=\"mi.customClassProperty != undefined ? mi.customClassProperty : ''\"\r\n translate>-</label>\r\n </ng-template>\r\n <ng-template #nonEmptyLabel>\r\n <span *ngIf=\"mi.type == 'text'\">\r\n <label\r\n *ngIf=\"viewInfoObjList[i][mi.property] != '' && viewInfoObjList[i][mi.property] != null\"\r\n class=\"label-control breakword\"\r\n [ngClass]=\"mi.customClassProperty != undefined ? mi.customClassProperty : ''\" translate>\r\n {{ viewInfoObjList[i][mi.property] }}\r\n </label>\r\n <label\r\n *ngIf=\"viewInfoObjList[i][mi.property] == '' || viewInfoObjList[i][mi.property] == null\"\r\n class=\"label-control label-field\"\r\n [ngClass]=\"mi.customClassProperty != undefined ? mi.customClassProperty : ''\" translate>-\r\n </label>\r\n </span>\r\n <label *ngIf=\"mi.type == 'currency'\" class=\"label-control\"\r\n [ngClass]=\"mi.customClassProperty != undefined ? mi.customClassProperty : ''\" translate>\r\n {{ viewInfoObjList[i][mi.property] | number: mi?.precision ? mi?.precision : '0.2' :'en-US'}} <span *ngIf=\"mi?.IsPrcnt\"> %</span> </label>\r\n <label *ngIf=\"mi.type == 'date'\" class=\"label-control\"\r\n [ngClass]=\"mi.customClassProperty != undefined ? mi.customClassProperty : ''\" translate>\r\n {{ viewInfoObjList[i][mi.property] | date: (mi?.dateFormat) ? mi?.dateFormat : 'dd-MMM-yyyy'}} </label>\r\n <label *ngIf=\"mi.type == 'link'\" class=\"label-control\"\r\n [ngClass]=\"mi.customClassProperty != undefined ? mi.customClassProperty : ''\" translate>\r\n <a *ngIf=\"!mi?.isFullpath\" [routerLink]=\"genRouterLink(mi.path)\" [target]=\"mi.target\"\r\n [queryParams]=\"genAction(viewInfoObjList[i], mi.param)\">\r\n <span *ngIf=\"(mi.isCurrency != undefined && mi.isCurrency)\">{{\r\n viewInfoObjList[i][mi.property] | number:'.2':'en-US' }}</span>\r\n <span *ngIf=\"(mi.isCurrency == undefined || !mi.isCurrency)\">{{\r\n viewInfoObjList[i][mi.property] }}</span>\r\n </a>\r\n <a *ngIf=\"mi?.isFullpath\" href=\"javascript:void(0);\"\r\n (click)=\"redirectFullPath(mi.fullpath, genAction(viewInfoObjList[i], mi.param), mi.target)\">\r\n <span *ngIf=\"(mi.isCurrency != undefined && mi.isCurrency)\">{{\r\n viewInfoObjList[i][mi.property] | number:'.2':'en-US' }}</span>\r\n <span *ngIf=\"(mi.isCurrency == undefined || !mi.isCurrency)\">{{\r\n viewInfoObjList[i][mi.property] }}</span>\r\n </a>\r\n </label>\r\n <label *ngIf=\"mi.type == 'callback'\" class=\"label-control label-field\"\r\n [ngClass]=\"mi.customClassProperty != undefined ? mi.customClassProperty : ''\" translate>\r\n <a href=\"javascript:void(0);\" (click)=\"callbackFunction(viewInfoObjList[i], mi.key)\">\r\n {{ viewInfoObjList[i][mi.property] }}\r\n </a>\r\n </label>\r\n <textarea *ngIf=\"mi.type == 'textarea'\" class=\"form-control\" readonly\r\n [ngClass]=\"mi.customClassProperty != undefined ? mi.customClassProperty : ''\"\r\n translate> {{ viewInfoObjList[i][mi.property] }} </textarea>\r\n <span *ngIf=\"mi.type == 'boolean'\"\r\n [ngClass]=\"mi.customClassProperty != undefined ? mi.customClassProperty : ''\" translate>\r\n <label *ngIf=\"viewInfoObjList[i][mi.property] == true\">Yes</label>\r\n <label *ngIf=\"viewInfoObjList[i][mi.property] == false\">No</label>\r\n <!-- <label\r\n *ngIf=\"viewInfoObjList[i][mi.property] == '' || viewInfoObjList[i][mi.property] == null\">-</label> -->\r\n </span>\r\n <span *ngIf=\"mi.type == 'concat'\">\r\n <label class=\"label-control breakword\"\r\n [ngClass]=\"mi.customClassProperty != undefined ? mi.customClassProperty : ''\" translate>\r\n {{ mi.concat }}\r\n </label>\r\n </span>\r\n <span *ngIf=\"mi.type == 'switch'\">\r\n <span *ngFor=\"let cs of mi?.case\">\r\n <span *ngIf=\"switchCase(viewInfoObjList[i],cs) && !cs.Hidden\">\r\n <span class=\"label-control breakword\"\r\n [ngClass]=\"mi.customClassProperty != undefined ? mi.customClassProperty : ''\"\r\n translate *ngIf=\"cs.result.type == 'text'\">{{ viewInfoObjList[i][cs.result.property]\r\n }}\r\n </span>\r\n <span [ngClass]=\"mi.customClassProperty != undefined ? mi.customClassProperty : ''\"\r\n translate *ngIf=\"cs.result.type == 'decimal'\">{{\r\n viewInfoObjList[i][cs.result.property] | number:'.2':'en-US' }}</span>\r\n <span [ngClass]=\"mi.customClassProperty != undefined ? mi.customClassProperty : ''\"\r\n translate *ngIf=\"cs.result.type == 'date'\">{{ viewInfoObjList[i][cs.result.property] |\r\n date: 'dd-MMM-yyyy' }}\r\n </span>\r\n <span *ngIf=\"cs.result.type == 'link'\"\r\n [ngClass]=\"mi.customClassProperty != undefined ? mi.customClassProperty : ''\"\r\n translate>\r\n <a [target]=\"cs.result.target\" [routerLink]=\"genRouterLink(cs.result.path)\"\r\n [queryParams]=\"genAction(viewInfoObjList[i],cs.result.param)\">\r\n <span *ngIf=\"(mi.isCurrency != undefined && mi.isCurrency)\">{{\r\n viewInfoObjList[i][cs.result.property] | number:'.2':'en-US' }}</span>\r\n <span *ngIf=\"(mi.isCurrency == undefined || !mi.isCurrency)\">{{\r\n viewInfoObjList[i][cs.result.property] }}</span>\r\n </a>\r\n </span>\r\n <span *ngIf=\"cs.result.type == 'boolean'\"\r\n [ngClass]=\"mi.customClassProperty != undefined ? mi.customClassProperty : ''\"\r\n translate>\r\n <span *ngIf=\"viewInfoObjList[i][cs.result.property] == 'true'\">Yes</span>\r\n <span *ngIf=\"viewInfoObjList[i][cs.result.property] == 'false'\">No</span>\r\n </span>\r\n <span *ngIf=\"cs.result.type == 'concat'\">\r\n <label class=\"label-control breakword\"\r\n [ngClass]=\"mi.customClassProperty != undefined ? mi.customClassProperty : ''\" translate>\r\n {{ cs.result.concat }}\r\n </label>\r\n </span>\r\n <span *ngIf=\"cs.result.type == 'callback'\">\r\n <span\r\n *ngIf=\"cs.result.isText != undefined && cs.result.isText; then textCallback else iconCallback\"></span>\r\n <ng-template #textCallback>\r\n <span>\r\n <a href=\"javascript:void(0);\" (click)=\"callbackFunction(viewInfoObjList[i], cs.result.key)\">{{\r\n viewInfoObjList[i][cs.result.property] }}</a>\r\n </span>\r\n </ng-template>\r\n <ng-template #iconCallback>\r\n <span>\r\n <a [ngClass]=\"[cs.result.tooltip != undefined && cs.result.tooltip != '' ? 'tooltips' : '', cs.result.anchor == undefined || cs.result.anchor == '' ? 'success p-0' : cs.result.anchor]\"\r\n (click)=\"callbackFunction(viewInfoObjList[i], cs.result.key)\">\r\n <i class=\"font-medium-3 mr-2\"\r\n [ngClass]=\" cs.result.icon == undefined || cs.result.icon == '' ? 'ft-edit-2' : cs.result.icon \">\r\n </i>\r\n <span *ngIf=\"cs.result.tooltip != undefined && cs.result.tooltip != ''\"\r\n [ngClass]=\"cs.result.tooltip != undefined && cs.result.tooltip != '' ? 'tooltipstext' : ''\">\r\n {{cs.result.tooltip}}\r\n </span>\r\n </a>\r\n </span>\r\n </ng-template>\r\n </span>\r\n </span>\r\n </span>\r\n </span>\r\n </ng-template>\r\n </div>\r\n </div>\r\n </span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"grid-view\" *ngIf=\"gridViewObj.gridViews.length > 0\">\r\n <div *ngFor=\"let gridView of inputGridViewObjs; let i = index\">\r\n <lib-ucSubsection\r\n *ngIf=\"gridViewObj.gridViews[i].subsection && gridViewObj.gridViews[i].subsection !== ''\"\r\n [id]=\"'grid-subsection-id'+i\"\r\n [title]=\"gridViewObj.gridViews[i].subsection\"\r\n [panel]=\"'grid-subsection-panel-'+i\">\r\n </lib-ucSubsection>\r\n <div class=\"form-body\" [id]=\"'grid-subsection-panel-'+i\">\r\n<!-- <lib-ucgridview [gridInput]=\"gridView\" (callback)=\"gridEvent($event)\" (isRefresh)=\"GetGridViewData(gridViewObj.gridViews[i], gridView)\"></lib-ucgridview>-->\r\n <lib-uctable [gridObj]=\"gridView\" [standalone]=\"false\" (callback)=\"gridEvent($event)\"></lib-uctable>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</section>\r\n","import { NgModule } from \"@angular/core\";\r\nimport { UcviewgenericComponent } from \"./ucviewgeneric.component\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { RouterModule } from \"@angular/router\";\r\nimport { UcSubsectionModule } from \"@adins/uc-subsection\";\r\nimport { TranslateModule } from \"@ngx-translate/core\";\r\nimport { UcgridviewModule } from \"@adins/ucgridview\";\r\nimport { UctableModule } from '@adins/uctable';\r\n\r\n@NgModule({\r\n declarations: [UcviewgenericComponent],\r\n imports: [\r\n CommonModule,\r\n RouterModule,\r\n UcSubsectionModule,\r\n UcgridviewModule,\r\n UctableModule,\r\n TranslateModule.forChild(),\r\n ],\r\n exports: [UcviewgenericComponent],\r\n})\r\nexport class UcviewgenericModule {}\r\n","/*\r\n * Public API Surface of ucviewgeneric\r\n */\r\n\r\nexport * from './lib/ucviewgeneric.service';\r\nexport * from './lib/ucviewgeneric.component';\r\nexport * from './lib/ucviewgeneric.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"adins-ucviewgeneric.mjs","sources":["../../../projects/ucviewgeneric/src/lib/ucviewgeneric.service.ts","../../../projects/ucviewgeneric/src/lib/model/uc-view-generic-obj.model.ts","../../../projects/ucviewgeneric/src/lib/model/grid-view-obj.model.ts","../../../projects/ucviewgeneric/src/lib/model/input-grid-obj.model.ts","../../../projects/ucviewgeneric/src/lib/ucviewgeneric.component.ts","../../../projects/ucviewgeneric/src/lib/ucviewgeneric.component.html","../../../projects/ucviewgeneric/src/lib/ucviewgeneric.module.ts","../../../projects/ucviewgeneric/src/public-api.ts","../../../projects/ucviewgeneric/src/adins-ucviewgeneric.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UcviewgenericService {\r\n\r\n constructor() { }\r\n}\r\n","\r\nexport class UcViewGenericObj {\r\n viewInput: string;\r\n viewEnvironment: string;\r\n navigationConst: any;\r\n ddlEnvironments: Array<EnviObj>;\r\n listEnvironments: Array<EnvisObj>;\r\n whereValue: Array<WhereValueObj>;\r\n IsCard: boolean = true;\r\n dataInput: any;\r\n dicts: Record<string, any>;\r\n\r\n constructor() {\r\n this.viewInput = \"\";\r\n this.viewEnvironment = \"\";\r\n this.ddlEnvironments = new Array<EnviObj>();\r\n this.listEnvironments = new Array<EnvisObj>();\r\n this.whereValue = new Array<WhereValueObj>();\r\n this.IsCard = true;\r\n this.dicts = {};\r\n }\r\n}\r\n\r\nexport class EnviObj {\r\n name: string;\r\n environment: string;\r\n\r\n constructor() {\r\n this.name = \"\";\r\n this.environment = \"\";\r\n }\r\n}\r\n\r\nexport class WhereValueObj {\r\n property: string;\r\n value: any;\r\n\r\n constructor() {\r\n this.property = \"\";\r\n }\r\n}\r\n\r\nexport class EnvisObj {\r\n environment: string;\r\n url: string;\r\n\r\n constructor() {\r\n this.environment = \"\";\r\n this.url = \"\";\r\n }\r\n}","export class GridViewObj {\r\n gridViews: GridViewInput[];\r\n constructor() {\r\n this.gridViews = [];\r\n }\r\n}\r\nexport class GridViewInput {\r\n subsection?: string;\r\n getData: {\r\n environment: string;\r\n apiPath: string;\r\n customObjName: string;\r\n reqObj: any;\r\n };\r\n tableInput: {\r\n isSeq: boolean;\r\n headerList: any;\r\n bodyList: any;\r\n };\r\n}\r\n","import { UCSearchComponent } from \"@adins/ucsearch\";\r\n\r\nexport class InputGridObj {\r\n resultData: any;\r\n searchComp: UCSearchComponent;\r\n apiUrl: string;\r\n deleteUrl: string;\r\n pageNow: number;\r\n pageSize: number;\r\n pagingJson: string;\r\n navigationConst: any;\r\n switchValue: Array<SwitchValueObj>;\r\n addGridList: Array<InputAddGridObj>;\r\n dataInput: any;\r\n\r\n constructor() {\r\n this.apiUrl = \"\";\r\n this.deleteUrl = \"\";\r\n this.pageNow = 0;\r\n this.pageSize = 0;\r\n this.pagingJson = \"\";\r\n this.switchValue = new Array<SwitchValueObj>();\r\n this.addGridList = new Array<InputAddGridObj>();\r\n }\r\n}\r\n\r\nexport class SwitchValueObj {\r\n property: string;\r\n value: any;\r\n\r\n constructor() {\r\n this.property = \"\";\r\n }\r\n}\r\n\r\nexport class InputAddGridObj {\r\n AddGridLabel: string;\r\n AddGridProperty: string;\r\n\r\n constructor() {\r\n this.AddGridLabel = \"\";\r\n this.AddGridProperty = \"\";\r\n }\r\n}\r\n","import { Component, OnInit, Input, Output, EventEmitter } from \"@angular/core\";\r\nimport { ActivatedRoute } from \"@angular/router\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { Observable } from \"rxjs\";\r\nimport { EnvisObj, UcViewGenericObj } from \"./model/uc-view-generic-obj.model\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { CookieService } from \"ngx-cookie\";\r\nimport * as CryptoJS from \"crypto-js\";\r\nimport { GridViewObj } from \"./model/grid-view-obj.model\";\r\nimport { InputGridObj } from \"./model/input-grid-obj.model\";\r\n\r\n@Component({\r\n selector: \"lib-ucviewgeneric\",\r\n templateUrl: \"./ucviewgeneric.component.html\",\r\n styleUrls: ['./ucviewgeneric.component.scss'],\r\n})\r\nexport class UcviewgenericComponent implements OnInit {\r\n @Input() viewGenericObj: UcViewGenericObj = new UcViewGenericObj();\r\n @Input() gridViewObj: GridViewObj = new GridViewObj();\r\n @Output() callback: EventEmitter<any> = new EventEmitter();\r\n UserAccess: any = JSON.parse(\r\n this.GetCookie(this.cookieService, \"UserAccess\")\r\n );\r\n inputGridViewObjs: Array<InputGridObj> = new Array<InputGridObj>();\r\n viewList: any = \"\";\r\n getList: any;\r\n viewInfoObjList: any;\r\n isReady: boolean = false;\r\n IsCard: boolean = true;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private http: HttpClient,\r\n private translateService: TranslateService,\r\n private cookieService: CookieService\r\n ) {\r\n this.route.queryParams.subscribe((params) => {\r\n this.getList = params;\r\n });\r\n\r\n this.translateService.setDefaultLang(\"en\");\r\n this.translateService.use(localStorage.getItem(\"lang\") || \"en\");\r\n }\r\n\r\n ngOnInit() {\r\n console.log(\"viewgeneric\");\r\n this.initiateForm();\r\n this.CheckIsCard();\r\n }\r\n\r\n private CheckIsCard() {\r\n if (\r\n this.viewGenericObj.IsCard == undefined ||\r\n this.viewGenericObj.IsCard == null\r\n )\r\n return;\r\n this.IsCard = this.viewGenericObj.IsCard;\r\n }\r\n\r\n initiateForm() {\r\n if (\r\n this.viewGenericObj.dataInput !== undefined &&\r\n Object.keys(this.viewGenericObj.dataInput).length !== 0\r\n ) {\r\n this.setConfiguration({ ...this.viewGenericObj.dataInput });\r\n this.gridViewObj.gridViews = this.viewGenericObj.dataInput.subsection[0]?.gridViews || [];\r\n this.initializeGridViews();\r\n return;\r\n }\r\n\r\n this.getJSON(this.viewGenericObj.viewInput).subscribe((data) => {\r\n this.setConfiguration(data);\r\n });\r\n this.initializeGridViews();\r\n }\r\n\r\n initializeGridViews() {\r\n if (this.gridViewObj && this.gridViewObj.gridViews.length === 0) {\r\n return;\r\n }\r\n\r\n this.gridViewObj.gridViews.map(async (gridView) => {\r\n const inputGridObj = new InputGridObj();\r\n inputGridObj.dataInput = gridView.tableInput;\r\n inputGridObj.resultData = { Data: [] };\r\n await this.GetGridViewData(gridView.getData, inputGridObj);\r\n this.inputGridViewObjs.push(inputGridObj);\r\n });\r\n }\r\n\r\n getEnvironment(envi) {\r\n const filteredEnvis = this.viewGenericObj.listEnvironments.filter(\r\n (v) => v.environment == envi\r\n );\r\n return filteredEnvis.length > 0 ? filteredEnvis[0] : null;\r\n }\r\n\r\n async GetGridViewData(meta: any, inputGridObj: InputGridObj) {\r\n let templListData = [];\r\n const enviUrl = meta.environment && this.getEnvironment(meta.environment);\r\n await this.http\r\n .post(enviUrl ? enviUrl.url + meta.apiPath : meta.apiPath, meta.reqObj)\r\n .toPromise()\r\n .then((response) => {\r\n templListData = response[meta.customObjName || \"ReturnObject\"];\r\n inputGridObj.apiUrl = meta.apiPath;\r\n inputGridObj.resultData[\"Data\"] = new Array();\r\n inputGridObj.resultData.Data = templListData;\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n });\r\n }\r\n\r\n gridEvent(ev) {\r\n this.callbackFunction(ev.RowObj, ev.Key);\r\n }\r\n\r\n setConfiguration(data) {\r\n this.viewList = data;\r\n this.viewInfoObjList = [];\r\n\r\n for (let j = 0; j < this.viewList.subsection.length; j++) {\r\n this.viewInfoObjList.push(j);\r\n }\r\n\r\n for (let i = 0; i < this.viewList.subsection.length; i++) {\r\n if (\r\n this.viewList.subsection[i].querystring != null &&\r\n this.viewList.subsection[i].querystring.name != \"\"\r\n ) {\r\n let queryObj: any;\r\n if (this.viewGenericObj.whereValue.length == 0) {\r\n this.viewList.subsection[i].querystring.whereQuery = (<any>(\r\n Object\r\n )).values(this.getList);\r\n } else {\r\n this.viewList.subsection[i].querystring.whereQuery =\r\n this.viewGenericObj.whereValue;\r\n }\r\n\r\n if (\r\n this.viewList.subsection[i].mainInfoPath != undefined &&\r\n this.viewList.subsection[i].mainInfoPath != \"\"\r\n ) {\r\n if (\r\n this.viewGenericObj.viewEnvironment != undefined &&\r\n this.viewGenericObj.viewEnvironment != \"\"\r\n ) {\r\n this.viewList.subsection[i].fullpath =\r\n this.viewGenericObj.viewEnvironment +\r\n this.viewList.subsection[i].mainInfoPath;\r\n } else {\r\n this.viewList.subsection[i].fullpath =\r\n this.viewList.subsection[i].mainInfoUrl;\r\n }\r\n } else {\r\n this.viewList.subsection[i].fullpath =\r\n this.viewList.subsection[i].mainInfoUrl;\r\n }\r\n\r\n queryObj = {\r\n querystring: this.viewList.subsection[i].querystring,\r\n };\r\n this.http\r\n .post(this.viewList.subsection[i].fullpath, queryObj)\r\n .subscribe(\r\n (response) => {\r\n this.viewInfoObjList[i] = response[\"Data\"][0];\r\n\r\n for (\r\n let y = 0;\r\n y < this.viewList.subsection[i].mainInfo.length;\r\n y++\r\n ) {\r\n if (\r\n this.viewList.subsection[i].mainInfo[y].propertyList !=\r\n undefined &&\r\n this.viewList.subsection[i].mainInfo[y].propertyList.length !=\r\n 0\r\n ) {\r\n const propertyList =\r\n this.viewList.subsection[i].mainInfo[y].propertyList;\r\n let concat = \"\";\r\n for (let z = 0; z < propertyList.length; z++) {\r\n concat =\r\n concat +\r\n propertyList[z].prefix +\r\n this.viewInfoObjList[i][propertyList[z].property] +\r\n propertyList[z].suffix;\r\n }\r\n this.viewList.subsection[i].mainInfo[y].concat = concat;\r\n }\r\n\r\n //switch case\r\n if (this.viewList.subsection[i].mainInfo[y].type == \"switch\") {\r\n for (\r\n let z = 0;\r\n z < this.viewList.subsection[i].mainInfo[y].case.length;\r\n z++\r\n ) {\r\n let Empty = new Array<boolean>();\r\n this.viewList.subsection[i].mainInfo[y].case[z].Hidden =\r\n false;\r\n //check hideIfEmpty\r\n if (\r\n this.viewList.subsection[i].mainInfo[y].case[z].result\r\n .hideIfEmpty != undefined &&\r\n this.viewList.subsection[i].mainInfo[y].case[z].result\r\n .hideIfEmpty != null\r\n ) {\r\n if (\r\n this.viewList.subsection[i].mainInfo[y].case[z].result\r\n .type != \"concat\"\r\n ) {\r\n Empty.push(\r\n this.viewInfoObjList[i][\r\n this.viewList.subsection[i].mainInfo[y].case[z]\r\n .result.property\r\n ] != undefined &&\r\n this.viewInfoObjList[i][\r\n this.viewList.subsection[i].mainInfo[y].case[z]\r\n .result.property\r\n ] != null &&\r\n this.viewInfoObjList[i][\r\n this.viewList.subsection[i].mainInfo[y].case[z]\r\n .result.property\r\n ] != \"\"\r\n ? false\r\n : true\r\n );\r\n } else {\r\n // type concat\r\n if (\r\n this.viewList.subsection[i].mainInfo[y].case[z].result\r\n .propertyList != undefined &&\r\n this.viewList.subsection[i].mainInfo[y].case[z].result\r\n .propertyList.length != 0\r\n ) {\r\n const propertyList =\r\n this.viewList.subsection[i].mainInfo[y].case[z]\r\n .result.propertyList;\r\n let concat = \"\";\r\n for (let a = 0; a < propertyList.length; a++) {\r\n concat =\r\n concat +\r\n propertyList[a].prefix +\r\n this.viewInfoObjList[i][\r\n propertyList[a].property\r\n ] +\r\n propertyList[a].suffix;\r\n Empty.push(\r\n this.viewInfoObjList[i][\r\n propertyList[a].property\r\n ] != undefined &&\r\n this.viewInfoObjList[i][\r\n propertyList[a].property\r\n ] != null &&\r\n this.viewInfoObjList[i][\r\n propertyList[a].property\r\n ] != \"\"\r\n ? false\r\n : true\r\n );\r\n }\r\n this.viewList.subsection[i].mainInfo[y].case[\r\n z\r\n ].result.concat = concat;\r\n }\r\n }\r\n\r\n if (\r\n Empty.includes(true) &&\r\n this.viewList.subsection[i].mainInfo[y].case[z].result\r\n .hideIfEmpty\r\n ) {\r\n this.viewList.subsection[i].mainInfo[y].case[z].Hidden =\r\n true;\r\n this.viewList.subsection[i].mainInfo[y].isHide = true;\r\n }\r\n } else {\r\n //concat\r\n if (\r\n this.viewList.subsection[i].mainInfo[y].case[z].result\r\n .propertyList != undefined &&\r\n this.viewList.subsection[i].mainInfo[y].case[z].result\r\n .propertyList.length != 0\r\n ) {\r\n const propertyList =\r\n this.viewList.subsection[i].mainInfo[y].case[z].result\r\n .propertyList;\r\n let concat = \"\";\r\n for (let a = 0; a < propertyList.length; a++) {\r\n concat =\r\n concat +\r\n propertyList[a].prefix +\r\n this.viewInfoObjList[i][propertyList[a].property] +\r\n propertyList[a].suffix;\r\n }\r\n this.viewList.subsection[i].mainInfo[y].case[\r\n z\r\n ].result.concat = concat;\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (\r\n this.viewList.subsection[i].mainInfo[y].type == \"link\" &&\r\n (this.viewGenericObj.navigationConst != undefined ||\r\n this.viewGenericObj.navigationConst != null)\r\n ) {\r\n let tempLink =\r\n this.viewGenericObj.navigationConst[\r\n this.viewList.subsection[i].mainInfo[y].path\r\n ];\r\n if (tempLink != undefined && tempLink != null) {\r\n this.viewList.subsection[i].mainInfo[y].path = tempLink;\r\n }\r\n }\r\n if (\r\n this.viewList.subsection[i].mainInfo[y].type == \"link\" &&\r\n this.viewGenericObj.listEnvironments != undefined &&\r\n this.viewGenericObj.listEnvironments.length != 0\r\n ) {\r\n for (\r\n let z = 0;\r\n z < this.viewGenericObj.listEnvironments.length;\r\n z++\r\n ) {\r\n if (\r\n this.viewList.subsection[i].mainInfo[y].environment ==\r\n this.viewGenericObj.listEnvironments[z].environment\r\n ) {\r\n this.viewList.subsection[i].mainInfo[y].isFullpath = true;\r\n this.viewList.subsection[i].mainInfo[y].fullpath =\r\n this.viewGenericObj.listEnvironments[z].url +\r\n this.viewList.subsection[i].mainInfo[y].path;\r\n break;\r\n }\r\n }\r\n } else if (\r\n this.viewList.subsection[i].mainInfo[y].type == \"link\"\r\n ) {\r\n this.viewList.subsection[i].mainInfo[y].isFullpath = false;\r\n this.viewList.subsection[i].mainInfo[y].fullpath =\r\n this.viewList.subsection[i].mainInfo[y].path;\r\n }\r\n }\r\n this.isReady = true;\r\n },\r\n (error) => {\r\n console.log(error);\r\n }\r\n );\r\n } else {\r\n if (\r\n this.viewList.subsection[i].mainInfoPath != undefined &&\r\n this.viewList.subsection[i].mainInfoPath != \"\"\r\n ) {\r\n if (\r\n this.viewList.subsection[i].environment != undefined &&\r\n this.viewList.subsection[i].mainInfoPath != \"\"\r\n ) {\r\n for (\r\n let z = 0;\r\n z < this.viewGenericObj.listEnvironments.length;\r\n z++\r\n ) {\r\n if (\r\n this.viewList.subsection[i].environment ==\r\n this.viewGenericObj.listEnvironments[z].environment\r\n ) {\r\n this.viewList.subsection[i].fullpath =\r\n this.viewGenericObj.listEnvironments[z].url +\r\n this.viewList.subsection[i].mainInfoPath;\r\n break;\r\n }\r\n }\r\n } else if (\r\n this.viewGenericObj.viewEnvironment != undefined &&\r\n this.viewGenericObj.viewEnvironment != \"\"\r\n ) {\r\n this.viewList.subsection[i].fullpath =\r\n this.viewGenericObj.viewEnvironment +\r\n this.viewList.subsection[i].mainInfoPath;\r\n } else {\r\n this.viewList.subsection[i].fullpath =\r\n this.viewList.subsection[i].mainInfoUrl;\r\n }\r\n } else {\r\n this.viewList.subsection[i].fullpath =\r\n this.viewList.subsection[i].mainInfoUrl;\r\n }\r\n\r\n const reqObj = this.viewList.subsection[i].reqObj ?? this.getList;\r\n if (this.viewList.subsection[i].reqObj !== undefined) {\r\n for (const [key, value] of Object.entries(\r\n this.viewList.subsection[i].reqObj\r\n )) {\r\n reqObj[key] = this.getList[value as string] || this.viewGenericObj.dicts[value as string];\r\n if (reqObj[key] == undefined) {\r\n reqObj[key] = value;\r\n }\r\n }\r\n }\r\n\r\n this.http.post(this.viewList.subsection[i].fullpath, reqObj).subscribe(\r\n (response) => {\r\n if (\r\n this.viewList.subsection[i].resObjName === undefined ||\r\n this.viewList.subsection[i].resObjName === \"\"\r\n ) {\r\n this.viewInfoObjList[i] = response;\r\n } else {\r\n this.viewInfoObjList[i] =\r\n response[this.viewList.subsection[i].resObjName];\r\n }\r\n this.isReady = true;\r\n },\r\n (error) => {\r\n console.log(error);\r\n }\r\n );\r\n }\r\n }\r\n }\r\n\r\n public getJSON(url: string): Observable<any> {\r\n return this.http.get(url);\r\n }\r\n\r\n private GetCookie(cookieService: CookieService, key: string) {\r\n let value = cookieService.get(key);\r\n if (value == undefined || value.trim() == \"\") return null;\r\n return this.DecryptString(value, \"AdInsFOU12345678\");\r\n }\r\n\r\n private DecryptString(chipperText: string, chipperKey: string) {\r\n if (\r\n chipperKey == undefined ||\r\n chipperKey.trim() == \"\" ||\r\n chipperText == undefined ||\r\n chipperText.trim() == \"\"\r\n )\r\n return chipperText;\r\n let chipperKeyArr = CryptoJS.enc.Utf8.parse(chipperKey);\r\n let iv = CryptoJS.lib.WordArray.create([0x00, 0x00, 0x00, 0x00]);\r\n let decrypted = CryptoJS.AES.decrypt(chipperText, chipperKeyArr, {\r\n iv: iv,\r\n });\r\n let plainText = decrypted.toString(CryptoJS.enc.Utf8);\r\n return plainText;\r\n }\r\n\r\n genAction(viewObj, param) {\r\n let arrList = {};\r\n\r\n for (let i = 0; i < param.length; i++) {\r\n if (\r\n viewObj[param[i].type] != undefined ||\r\n viewObj[param[i].property] != undefined\r\n ) {\r\n arrList[param[i].type] = viewObj[param[i].property];\r\n } else {\r\n arrList[param[i].type] = param[i].property;\r\n }\r\n }\r\n return arrList;\r\n }\r\n\r\n genRouterLink(urlLink: string) {\r\n let tempLink = urlLink;\r\n if (\r\n this.viewGenericObj.navigationConst != undefined &&\r\n this.viewGenericObj.navigationConst[urlLink] != null\r\n ) {\r\n tempLink = this.viewGenericObj.navigationConst[urlLink];\r\n }\r\n return tempLink;\r\n }\r\n\r\n redirectFullPath(fullpath: string, param: Object, target: string) {\r\n let queryParam = \"\";\r\n const ListObj = Object.keys(param);\r\n for (let i = 0; i < ListObj.length; i++) {\r\n if (queryParam != \"\") {\r\n queryParam = queryParam + \"&\" + ListObj[i] + \"=\" + param[ListObj[i]];\r\n } else {\r\n queryParam = ListObj[i] + \"=\" + param[ListObj[i]];\r\n }\r\n }\r\n window.open(fullpath + \"?\" + queryParam, target);\r\n }\r\n\r\n callbackFunction(item, key: string = \"\") {\r\n let CBObj = {\r\n ViewObj: item,\r\n Key: key,\r\n };\r\n this.callback.emit(CBObj);\r\n }\r\n\r\n switchCase(item, condList) {\r\n let condition = false;\r\n if (!item) return false;\r\n for (let i = 0; i < condList.conditions.length; i++) {\r\n if (condList.conditions[i].restriction == \"EQ\") {\r\n if (condList.conditions[i].isUser != true) {\r\n if (\r\n item[condList.conditions[i].property] ==\r\n condList.conditions[i].value\r\n ) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n } else {\r\n if (\r\n item[condList.conditions[i].property] == this.UserAccess[\"UserName\"]\r\n ) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n }\r\n } else if (condList.conditions[i].restriction == \"NEQ\") {\r\n if (condList.conditions[i].isUser != true) {\r\n if (\r\n item[condList.conditions[i].property] !=\r\n condList.conditions[i].value\r\n ) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n } else {\r\n if (\r\n item[condList.conditions[i].property] != this.UserAccess[\"UserName\"]\r\n ) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n }\r\n } else if (condList.conditions[i].restriction == \"GT\") {\r\n if (condList.conditions[i].isUser != true) {\r\n if (\r\n item[condList.conditions[i].property] > condList.conditions[i].value\r\n ) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n } else {\r\n if (\r\n item[condList.conditions[i].property] > this.UserAccess[\"UserName\"]\r\n ) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n }\r\n } else if (condList.conditions[i].restriction == \"GTE\") {\r\n if (condList.conditions[i].isUser != true) {\r\n if (\r\n item[condList.conditions[i].property] >=\r\n condList.conditions[i].value\r\n ) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n } else {\r\n if (\r\n item[condList.conditions[i].property] >= this.UserAccess[\"UserName\"]\r\n ) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n }\r\n } else if (condList.conditions[i].restriction == \"LT\") {\r\n if (condList.conditions[i].isUser != true) {\r\n if (\r\n item[condList.conditions[i].property] < condList.conditions[i].value\r\n ) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n } else {\r\n if (\r\n item[condList.conditions[i].property] < this.UserAccess[\"UserName\"]\r\n ) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n }\r\n } else if (condList.conditions[i].restriction == \"LTE\") {\r\n if (condList.conditions[i].isUser != true) {\r\n if (\r\n item[condList.conditions[i].property] <=\r\n condList.conditions[i].value\r\n ) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n } else {\r\n if (\r\n item[condList.conditions[i].property] <= this.UserAccess[\"UserName\"]\r\n ) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n }\r\n } else if (condList.conditions[i].restriction == \"IN\") {\r\n if (condList.conditions[i].isUser != true) {\r\n if (\r\n condList.conditions[i].value.findIndex(\r\n (x) => x == item[condList.conditions[i].property]\r\n ) >= 0\r\n ) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n } else {\r\n if (\r\n condList.conditions[i].value.findIndex(\r\n (x) => x == this.UserAccess[\"UserName\"]\r\n ) >= 0\r\n ) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n }\r\n } else if (condList.conditions[i].restriction == \"NIN\") {\r\n if (condList.conditions[i].isUser != true) {\r\n if (\r\n condList.conditions[i].value.findIndex(\r\n (x) => x == item[condList.conditions[i].property]\r\n ) == -1\r\n ) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n } else {\r\n if (\r\n condList.conditions[i].value.findIndex(\r\n (x) => x == this.UserAccess[\"UserName\"]\r\n ) == -1\r\n ) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n return condition;\r\n }\r\n}\r\n","<section id=\"horizontal-form-layouts\">\r\n <div class=\"row text-left\">\r\n <div class=\"col-md-12\">\r\n <div [ngClass]=\"IsCard ? 'card' : ''\" *ngIf=\"isReady\">\r\n <div class=\"pl-3 mb-2 mt-2\" *ngIf=\"viewList?.title != ''\">\r\n <h4 class=\"card-title ucSearch-title\" id=\"horz-layout-colored-controls\" translate>{{viewList.title}}</h4>\r\n </div>\r\n <div class=\"card-body\" *ngFor=\"let ss of viewList?.subsection;let i = index;\">\r\n <div>\r\n <lib-ucSubsection *ngIf=\"ss.subsection != ''\" [id]=\"ss.subSectionId + 'id'\" [title]=\"ss.subSectionTitle\"\r\n [panel]=\"ss.subSectionId\">\r\n </lib-ucSubsection>\r\n <div class=\"form-body p-3 border-top border-bottom\" [id]='ss.subSectionId'>\r\n <div class=\"form-group row\">\r\n <div *ngFor=\"let mi of ss?.mainInfo\"\r\n [ngClass]=\"{ 'col-xxl-2 col-xl-3 col-lg-4 col-md-6 col-xs-12 py-2': mi.isHide == undefined || !mi.isHide || (viewInfoObjList[i][mi.property] != '' && viewInfoObjList[i][mi.property] != null)}\">\r\n <span\r\n *ngIf=\"mi.isHide == undefined || !mi.isHide || (viewInfoObjList[i][mi.property] != '' && viewInfoObjList[i][mi.property] != null)\">\r\n <div class=\"row\">\r\n <div class=\"col-md-12\" *ngIf=\"mi.type != 'switch'\">\r\n <label class=\"label-control label-field\"\r\n [ngClass]=\"mi.customClassLabel != undefined ? mi.customClassLabel : ''\" translate>{{mi.label}}</label>\r\n </div>\r\n <div class=\"col-md-12\" *ngIf=\"mi.type == 'switch'\">\r\n <div *ngFor=\"let case of mi?.case\">\r\n <div *ngIf=\"switchCase(viewInfoObjList[i],case)\">\r\n <label class=\"label-control label-field\"\r\n [ngClass]=\"mi.customClassLabel != undefined ? mi.customClassLabel : ''\" translate>{{case.result.label}}</label>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"viewInfoObjList[i] != undefined\" class=\"col-md-12\" [ngClass]=\"{ 'text-left': mi.position == 'left',\r\n 'text-right': mi.position == 'right', 'text-center': mi.position == 'center' }\">\r\n <span\r\n *ngIf=\"(mi.type == 'boolean' && viewInfoObjList[i][mi.property] != null) || (viewInfoObjList[i][mi.property] != '' && viewInfoObjList[i][mi.property] != null) || mi.type == 'switch' || mi.type =='concat'; then nonEmptyLabel else emptyLabel\"></span>\r\n <ng-template #emptyLabel>\r\n <label *ngIf=\"mi.type == 'blank'\"></label>\r\n <label *ngIf=\"mi.type != 'blank'\" class=\"label-control label-field\"\r\n [ngClass]=\"mi.customClassProperty != undefined ? mi.customClassProperty : ''\"\r\n translate>-</label>\r\n </ng-template>\r\n <ng-template #nonEmptyLabel>\r\n <span *ngIf=\"mi.type == 'text'\">\r\n <label\r\n *ngIf=\"viewInfoObjList[i][mi.property] != '' && viewInfoObjList[i][mi.property] != null\"\r\n class=\"label-control breakword\"\r\n [ngClass]=\"mi.customClassProperty != undefined ? mi.customClassProperty : ''\" translate>\r\n {{ viewInfoObjList[i][mi.property] }}\r\n </label>\r\n <label\r\n *ngIf=\"viewInfoObjList[i][mi.property] == '' || viewInfoObjList[i][mi.property] == null\"\r\n class=\"label-control label-field\"\r\n [ngClass]=\"mi.customClassProperty != undefined ? mi.customClassProperty : ''\" translate>-\r\n </label>\r\n </span>\r\n <label *ngIf=\"mi.type == 'currency'\" class=\"label-control\"\r\n [ngClass]=\"mi.customClassProperty != undefined ? mi.customClassProperty : ''\" translate>\r\n {{ viewInfoObjList[i][mi.property] | number: mi?.precision ? mi?.precision : '0.2' :'en-US'}} <span *ngIf=\"mi?.IsPrcnt\"> %</span> </label>\r\n <label *ngIf=\"mi.type == 'date'\" class=\"label-control\"\r\n [ngClass]=\"mi.customClassProperty != undefined ? mi.customClassProperty : ''\" translate>\r\n {{ viewInfoObjList[i][mi.property] | date: (mi?.dateFormat) ? mi?.dateFormat : 'dd-MMM-yyyy'}} </label>\r\n <label *ngIf=\"mi.type == 'link'\" class=\"label-control\"\r\n [ngClass]=\"mi.customClassProperty != undefined ? mi.customClassProperty : ''\" translate>\r\n <a *ngIf=\"!mi?.isFullpath\" [routerLink]=\"genRouterLink(mi.path)\" [target]=\"mi.target\"\r\n [queryParams]=\"genAction(viewInfoObjList[i], mi.param)\">\r\n <span *ngIf=\"(mi.isCurrency != undefined && mi.isCurrency)\">{{\r\n viewInfoObjList[i][mi.property] | number:'.2':'en-US' }}</span>\r\n <span *ngIf=\"(mi.isCurrency == undefined || !mi.isCurrency)\">{{\r\n viewInfoObjList[i][mi.property] }}</span>\r\n </a>\r\n <a *ngIf=\"mi?.isFullpath\" href=\"javascript:void(0);\"\r\n (click)=\"redirectFullPath(mi.fullpath, genAction(viewInfoObjList[i], mi.param), mi.target)\">\r\n <span *ngIf=\"(mi.isCurrency != undefined && mi.isCurrency)\">{{\r\n viewInfoObjList[i][mi.property] | number:'.2':'en-US' }}</span>\r\n <span *ngIf=\"(mi.isCurrency == undefined || !mi.isCurrency)\">{{\r\n viewInfoObjList[i][mi.property] }}</span>\r\n </a>\r\n </label>\r\n <label *ngIf=\"mi.type == 'callback'\" class=\"label-control label-field\"\r\n [ngClass]=\"mi.customClassProperty != undefined ? mi.customClassProperty : ''\" translate>\r\n <a href=\"javascript:void(0);\" (click)=\"callbackFunction(viewInfoObjList[i], mi.key)\">\r\n {{ viewInfoObjList[i][mi.property] }}\r\n </a>\r\n </label>\r\n <textarea *ngIf=\"mi.type == 'textarea'\" class=\"form-control\" readonly\r\n [ngClass]=\"mi.customClassProperty != undefined ? mi.customClassProperty : ''\"\r\n translate> {{ viewInfoObjList[i][mi.property] }} </textarea>\r\n <span *ngIf=\"mi.type == 'boolean'\"\r\n [ngClass]=\"mi.customClassProperty != undefined ? mi.customClassProperty : ''\" translate>\r\n <label *ngIf=\"viewInfoObjList[i][mi.property] == true\">Yes</label>\r\n <label *ngIf=\"viewInfoObjList[i][mi.property] == false\">No</label>\r\n <!-- <label\r\n *ngIf=\"viewInfoObjList[i][mi.property] == '' || viewInfoObjList[i][mi.property] == null\">-</label> -->\r\n </span>\r\n <span *ngIf=\"mi.type == 'concat'\">\r\n <label class=\"label-control breakword\"\r\n [ngClass]=\"mi.customClassProperty != undefined ? mi.customClassProperty : ''\" translate>\r\n {{ mi.concat }}\r\n </label>\r\n </span>\r\n <span *ngIf=\"mi.type == 'switch'\">\r\n <span *ngFor=\"let cs of mi?.case\">\r\n <span *ngIf=\"switchCase(viewInfoObjList[i],cs) && !cs.Hidden\">\r\n <span class=\"label-control breakword\"\r\n [ngClass]=\"mi.customClassProperty != undefined ? mi.customClassProperty : ''\"\r\n translate *ngIf=\"cs.result.type == 'text'\">{{ viewInfoObjList[i][cs.result.property]\r\n }}\r\n </span>\r\n <span [ngClass]=\"mi.customClassProperty != undefined ? mi.customClassProperty : ''\"\r\n translate *ngIf=\"cs.result.type == 'decimal'\">{{\r\n viewInfoObjList[i][cs.result.property] | number:'.2':'en-US' }}</span>\r\n <span [ngClass]=\"mi.customClassProperty != undefined ? mi.customClassProperty : ''\"\r\n translate *ngIf=\"cs.result.type == 'date'\">{{ viewInfoObjList[i][cs.result.property] |\r\n date: 'dd-MMM-yyyy' }}\r\n </span>\r\n <span *ngIf=\"cs.result.type == 'link'\"\r\n [ngClass]=\"mi.customClassProperty != undefined ? mi.customClassProperty : ''\"\r\n translate>\r\n <a [target]=\"cs.result.target\" [routerLink]=\"genRouterLink(cs.result.path)\"\r\n [queryParams]=\"genAction(viewInfoObjList[i],cs.result.param)\">\r\n <span *ngIf=\"(mi.isCurrency != undefined && mi.isCurrency)\">{{\r\n viewInfoObjList[i][cs.result.property] | number:'.2':'en-US' }}</span>\r\n <span *ngIf=\"(mi.isCurrency == undefined || !mi.isCurrency)\">{{\r\n viewInfoObjList[i][cs.result.property] }}</span>\r\n </a>\r\n </span>\r\n <span *ngIf=\"cs.result.type == 'boolean'\"\r\n [ngClass]=\"mi.customClassProperty != undefined ? mi.customClassProperty : ''\"\r\n translate>\r\n <span *ngIf=\"viewInfoObjList[i][cs.result.property] == 'true'\">Yes</span>\r\n <span *ngIf=\"viewInfoObjList[i][cs.result.property] == 'false'\">No</span>\r\n </span>\r\n <span *ngIf=\"cs.result.type == 'concat'\">\r\n <label class=\"label-control breakword\"\r\n [ngClass]=\"mi.customClassProperty != undefined ? mi.customClassProperty : ''\" translate>\r\n {{ cs.result.concat }}\r\n </label>\r\n </span>\r\n <span *ngIf=\"cs.result.type == 'callback'\">\r\n <span\r\n *ngIf=\"cs.result.isText != undefined && cs.result.isText; then textCallback else iconCallback\"></span>\r\n <ng-template #textCallback>\r\n <span>\r\n <a href=\"javascript:void(0);\" (click)=\"callbackFunction(viewInfoObjList[i], cs.result.key)\">{{\r\n viewInfoObjList[i][cs.result.property] }}</a>\r\n </span>\r\n </ng-template>\r\n <ng-template #iconCallback>\r\n <span>\r\n <a [ngClass]=\"[cs.result.tooltip != undefined && cs.result.tooltip != '' ? 'tooltips' : '', cs.result.anchor == undefined || cs.result.anchor == '' ? 'success p-0' : cs.result.anchor]\"\r\n (click)=\"callbackFunction(viewInfoObjList[i], cs.result.key)\">\r\n <i class=\"font-medium-3 mr-2\"\r\n [ngClass]=\" cs.result.icon == undefined || cs.result.icon == '' ? 'ft-edit-2' : cs.result.icon \">\r\n </i>\r\n <span *ngIf=\"cs.result.tooltip != undefined && cs.result.tooltip != ''\"\r\n [ngClass]=\"cs.result.tooltip != undefined && cs.result.tooltip != '' ? 'tooltipstext' : ''\">\r\n {{cs.result.tooltip}}\r\n </span>\r\n </a>\r\n </span>\r\n </ng-template>\r\n </span>\r\n </span>\r\n </span>\r\n </span>\r\n </ng-template>\r\n </div>\r\n </div>\r\n </span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"grid-view\" *ngIf=\"gridViewObj.gridViews.length > 0\">\r\n <div *ngFor=\"let gridView of inputGridViewObjs; let i = index\">\r\n <lib-ucSubsection\r\n *ngIf=\"gridViewObj.gridViews[i].subsection && gridViewObj.gridViews[i].subsection !== ''\"\r\n [id]=\"'grid-subsection-id'+i\"\r\n [title]=\"gridViewObj.gridViews[i].subsection\"\r\n [panel]=\"'grid-subsection-panel-'+i\">\r\n </lib-ucSubsection>\r\n <div class=\"form-body\" [id]=\"'grid-subsection-panel-'+i\">\r\n<!-- <lib-ucgridview [gridInput]=\"gridView\" (callback)=\"gridEvent($event)\" (isRefresh)=\"GetGridViewData(gridViewObj.gridViews[i], gridView)\"></lib-ucgridview>-->\r\n <lib-uctable [gridObj]=\"gridView\" [standalone]=\"false\" (callback)=\"gridEvent($event)\"></lib-uctable>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</section>\r\n","import { NgModule } from \"@angular/core\";\r\nimport { UcviewgenericComponent } from \"./ucviewgeneric.component\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { RouterModule } from \"@angular/router\";\r\nimport { UcSubsectionModule } from \"@adins/uc-subsection\";\r\nimport { TranslateModule } from \"@ngx-translate/core\";\r\nimport { UcgridviewModule } from \"@adins/ucgridview\";\r\nimport { UctableModule } from '@adins/uctable';\r\n\r\n@NgModule({\r\n declarations: [UcviewgenericComponent],\r\n imports: [\r\n CommonModule,\r\n RouterModule,\r\n UcSubsectionModule,\r\n UcgridviewModule,\r\n UctableModule,\r\n TranslateModule.forChild(),\r\n ],\r\n exports: [UcviewgenericComponent],\r\n})\r\nexport class UcviewgenericModule {}\r\n","/*\r\n * Public API Surface of ucviewgeneric\r\n */\r\n\r\nexport * from './lib/ucviewgeneric.service';\r\nexport * from './lib/ucviewgeneric.component';\r\nexport * from './lib/ucviewgeneric.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@adins/ucviewgeneric",
|
|
3
|
-
"version": "3.3.4-canary.
|
|
3
|
+
"version": "3.3.4-canary.2",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"@angular/common": ">=13.1.2",
|
|
6
6
|
"@angular/core": ">=13.1.2",
|
|
@@ -37,6 +37,6 @@
|
|
|
37
37
|
"scripts": {
|
|
38
38
|
"test": "echo \"Error: no test specified\" && exit 1"
|
|
39
39
|
},
|
|
40
|
-
"author": "
|
|
40
|
+
"author": "msa",
|
|
41
41
|
"license": "ISC"
|
|
42
42
|
}
|