mmhglobal-dynamicform 1.2.3 → 1.3.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 +14 -2
- package/esm2020/lib/directives/fieldelement.directive.mjs +16 -0
- package/esm2020/lib/directives/scrollbar.theme.directive.mjs +43 -0
- package/esm2020/lib/mmhglobal-dynamicform.module.mjs +464 -0
- package/esm2020/lib/services/main.service.mjs +752 -0
- package/esm2020/lib/services/zcomponent.debug.service.mjs +621 -0
- package/esm2020/lib/services/zcomponent.service.mjs +81 -0
- package/esm2020/lib/uiactionbutton/uiactionbutton.component.mjs +265 -0
- package/esm2020/lib/uiappmenucontent/uiappmenucontent.component.mjs +67 -0
- package/esm2020/lib/uicontent/uicontent.component.mjs +41 -0
- package/esm2020/lib/uiheader/uiheader.component.mjs +66 -0
- package/esm2020/lib/uimenubutton/uimenubutton.component.mjs +35 -0
- package/esm2020/lib/uimenucontent/uimenucontent.component.mjs +37 -0
- package/{esm2015/lib/uipage/uipage.component.js → esm2020/lib/uipage/uipage.component.mjs} +12 -13
- package/esm2020/lib/uivalidationmessage/uivalidationmessage.component.mjs +41 -0
- package/esm2020/lib/zbullet/zbullet.component.mjs +74 -0
- package/esm2020/lib/zbuttons/zbuttons.component.mjs +171 -0
- package/esm2020/lib/zcard/zcard.component.mjs +72 -0
- package/esm2020/lib/zchart/zchart.component.mjs +201 -0
- package/esm2020/lib/zcheckbox/zcheckbox.component.mjs +166 -0
- package/esm2020/lib/zchip/zchip.component.mjs +121 -0
- package/esm2020/lib/zcodeeditor/zcodeeditor.component.mjs +169 -0
- package/esm2020/lib/zcodeeditor/zcodeeditor.pipe.mjs +60 -0
- package/esm2020/lib/zdaterange/zdaterange.component.mjs +70 -0
- package/esm2020/lib/zdatetime/dateParser.pipe.mjs +30 -0
- package/esm2020/lib/zdatetime/zdatetime.component.mjs +285 -0
- package/esm2020/lib/zdiv/zdiv.component.mjs +50 -0
- package/esm2020/lib/zdiv/zdiv.pipe.mjs +31 -0
- package/esm2020/lib/zform/zform.component.mjs +147 -0
- package/esm2020/lib/zformcontrol/zformcontrol.component.mjs +49 -0
- package/esm2020/lib/zgauge/zgauge.component.mjs +148 -0
- package/esm2020/lib/zgrid/date-range-cell-filter.component.mjs +135 -0
- package/esm2020/lib/zgrid/zgrid.binding.directive.mjs +490 -0
- package/esm2020/lib/zgrid/zgrid.component.mjs +847 -0
- package/esm2020/lib/zgrid/zgrid.popup.anchor-target.directive.mjs +17 -0
- package/esm2020/lib/zimg/zimg.component.mjs +121 -0
- package/esm2020/lib/zkcard/zkcard.component.mjs +367 -0
- package/esm2020/lib/zlabel/zlabel.component.mjs +62 -0
- package/esm2020/lib/zmfb/zmfb.component.mjs +215 -0
- package/esm2020/lib/zmodal/zmodal-mobile.component.mjs +120 -0
- package/esm2020/lib/zmodal/zmodal.component.mjs +125 -0
- package/esm2020/lib/znumeric/znumeric.component.mjs +119 -0
- package/esm2020/lib/zpostselectinput/zpostselectinput.component.mjs +352 -0
- package/esm2020/lib/zquerybuilder/zquerybuilder.component.mjs +204 -0
- package/esm2020/lib/zreport/zreport.component.mjs +105 -0
- package/esm2020/lib/zreport/zreport.config.mjs +117 -0
- package/esm2020/lib/zscheduler/zscheduler.component.mjs +267 -0
- package/{esm2015/lib/zscheduler/zscheduler.toolbar.component.js → esm2020/lib/zscheduler/zscheduler.toolbar.component.mjs} +55 -19
- package/esm2020/lib/zselectmultiple/zselectmultiple.component.mjs +577 -0
- package/esm2020/lib/zselectmultiple/zselectmultiple.directive.mjs +35 -0
- package/esm2020/lib/ztab/ztab.component.mjs +187 -0
- package/esm2020/lib/ztab/ztab.pipe.mjs +26 -0
- package/esm2020/lib/ztext/ztext.component.mjs +297 -0
- package/esm2020/lib/ztextarea/ztextarea.component.mjs +109 -0
- package/esm2020/lib/ztexteditor/ztexteditor.component.mjs +57 -0
- package/esm2020/lib/ztree/ztree.component.mjs +380 -0
- package/esm2020/lib/ztreelist/ztreelist.component.mjs +544 -0
- package/esm2020/lib/ztrendcard/ztrendcard.component.mjs +92 -0
- package/esm2020/lib/zudf/zudf.component.mjs +205 -0
- package/esm2020/lib/zunknown/zunknown.component.mjs +20 -0
- package/esm2020/lib/zupload/zupload.component.mjs +359 -0
- package/esm2020/lib/zworkflowbuttons/zworkflowbuttons.component.mjs +216 -0
- package/esm2020/mmhglobal-dynamicform.mjs +5 -0
- package/{esm2015/public-api.js → esm2020/public-api.mjs} +0 -0
- package/fesm2015/mmhglobal-dynamicform.mjs +10790 -0
- package/fesm2015/mmhglobal-dynamicform.mjs.map +1 -0
- package/fesm2020/mmhglobal-dynamicform.mjs +10779 -0
- package/fesm2020/mmhglobal-dynamicform.mjs.map +1 -0
- package/lib/directives/fieldelement.directive.d.ts +3 -0
- package/lib/directives/scrollbar.theme.directive.d.ts +3 -0
- package/lib/mmhglobal-dynamicform.module.d.ts +92 -0
- package/lib/services/main.service.d.ts +3 -0
- package/lib/services/zcomponent.debug.service.d.ts +8 -5
- package/lib/services/zcomponent.service.d.ts +7 -2
- package/lib/uiactionbutton/uiactionbutton.component.d.ts +3 -0
- package/lib/uiappmenucontent/uiappmenucontent.component.d.ts +3 -0
- package/lib/uicontent/uicontent.component.d.ts +3 -0
- package/lib/uiheader/uiheader.component.d.ts +3 -0
- package/lib/uimenubutton/uimenubutton.component.d.ts +3 -0
- package/lib/uimenucontent/uimenucontent.component.d.ts +3 -0
- package/lib/uipage/uipage.component.d.ts +3 -0
- package/lib/uivalidationmessage/uivalidationmessage.component.d.ts +3 -0
- package/lib/zbullet/zbullet.component.d.ts +3 -0
- package/lib/zbuttons/zbuttons.component.d.ts +3 -0
- package/lib/zcard/zcard.component.d.ts +3 -0
- package/lib/zchart/zchart.component.d.ts +3 -0
- package/lib/zcheckbox/zcheckbox.component.d.ts +3 -0
- package/lib/zchip/zchip.component.d.ts +3 -0
- package/lib/zcodeeditor/zcodeeditor.component.d.ts +3 -0
- package/lib/zcodeeditor/zcodeeditor.pipe.d.ts +3 -0
- package/lib/zdaterange/zdaterange.component.d.ts +3 -0
- package/lib/zdatetime/dateParser.pipe.d.ts +3 -0
- package/lib/zdatetime/zdatetime.component.d.ts +3 -0
- package/lib/zdiv/zdiv.component.d.ts +3 -0
- package/lib/zdiv/zdiv.pipe.d.ts +3 -0
- package/lib/zform/zform.component.d.ts +3 -0
- package/lib/zformcontrol/zformcontrol.component.d.ts +3 -0
- package/lib/zgauge/zgauge.component.d.ts +3 -0
- package/lib/zgrid/date-range-cell-filter.component.d.ts +3 -0
- package/lib/zgrid/zgrid.binding.directive.d.ts +3 -0
- package/lib/zgrid/zgrid.component.d.ts +4 -1
- package/lib/zgrid/zgrid.popup.anchor-target.directive.d.ts +3 -0
- package/lib/zimg/zimg.component.d.ts +3 -0
- package/lib/zkcard/zkcard.component.d.ts +3 -0
- package/lib/zlabel/zlabel.component.d.ts +3 -0
- package/lib/zmfb/zmfb.component.d.ts +3 -0
- package/lib/zmodal/zmodal-mobile.component.d.ts +3 -0
- package/lib/zmodal/zmodal.component.d.ts +3 -0
- package/lib/znumeric/znumeric.component.d.ts +3 -0
- package/lib/zpostselectinput/zpostselectinput.component.d.ts +3 -0
- package/lib/zquerybuilder/zquerybuilder.component.d.ts +3 -0
- package/lib/zreport/zreport.component.d.ts +3 -0
- package/lib/zreport/zreport.config.d.ts +3 -0
- package/lib/zscheduler/zscheduler.component.d.ts +3 -0
- package/lib/zscheduler/zscheduler.toolbar.component.d.ts +3 -0
- package/lib/zselectmultiple/zselectmultiple.component.d.ts +3 -0
- package/lib/zselectmultiple/zselectmultiple.directive.d.ts +3 -0
- package/lib/ztab/ztab.component.d.ts +3 -0
- package/lib/ztab/ztab.pipe.d.ts +3 -0
- package/lib/ztext/ztext.component.d.ts +3 -0
- package/lib/ztextarea/ztextarea.component.d.ts +3 -0
- package/lib/ztexteditor/ztexteditor.component.d.ts +3 -0
- package/lib/ztree/ztree.component.d.ts +3 -0
- package/lib/ztreelist/ztreelist.component.d.ts +3 -0
- package/lib/ztrendcard/ztrendcard.component.d.ts +3 -0
- package/lib/zudf/zudf.component.d.ts +3 -0
- package/lib/zunknown/zunknown.component.d.ts +3 -0
- package/lib/zupload/zupload.component.d.ts +3 -0
- package/lib/zworkflowbuttons/zworkflowbuttons.component.d.ts +3 -0
- package/mmhglobal-dynamicform.d.ts +1 -2
- package/package.json +20 -11
- package/bundles/mmhglobal-dynamicform.umd.js +0 -11360
- package/bundles/mmhglobal-dynamicform.umd.js.map +0 -1
- package/bundles/mmhglobal-dynamicform.umd.min.js +0 -16
- package/bundles/mmhglobal-dynamicform.umd.min.js.map +0 -1
- package/esm2015/lib/directives/fieldelement.directive.js +0 -15
- package/esm2015/lib/directives/scrollbar.theme.directive.js +0 -42
- package/esm2015/lib/mmhglobal-dynamicform.module.js +0 -314
- package/esm2015/lib/services/main.service.js +0 -766
- package/esm2015/lib/services/zcomponent.debug.service.js +0 -626
- package/esm2015/lib/services/zcomponent.service.js +0 -167
- package/esm2015/lib/uiactionbutton/uiactionbutton.component.js +0 -271
- package/esm2015/lib/uiappmenucontent/uiappmenucontent.component.js +0 -69
- package/esm2015/lib/uicontent/uicontent.component.js +0 -41
- package/esm2015/lib/uiheader/uiheader.component.js +0 -65
- package/esm2015/lib/uimenubutton/uimenubutton.component.js +0 -40
- package/esm2015/lib/uimenucontent/uimenucontent.component.js +0 -34
- package/esm2015/lib/uivalidationmessage/uivalidationmessage.component.js +0 -39
- package/esm2015/lib/zbullet/zbullet.component.js +0 -71
- package/esm2015/lib/zbuttons/zbuttons.component.js +0 -168
- package/esm2015/lib/zcard/zcard.component.js +0 -68
- package/esm2015/lib/zchart/zchart.component.js +0 -199
- package/esm2015/lib/zcheckbox/zcheckbox.component.js +0 -158
- package/esm2015/lib/zchip/zchip.component.js +0 -117
- package/esm2015/lib/zcodeeditor/zcodeeditor.component.js +0 -163
- package/esm2015/lib/zcodeeditor/zcodeeditor.pipe.js +0 -56
- package/esm2015/lib/zdaterange/zdaterange.component.js +0 -63
- package/esm2015/lib/zdatetime/dateParser.pipe.js +0 -26
- package/esm2015/lib/zdatetime/zdatetime.component.js +0 -279
- package/esm2015/lib/zdiv/zdiv.component.js +0 -48
- package/esm2015/lib/zdiv/zdiv.pipe.js +0 -27
- package/esm2015/lib/zform/zform.component.js +0 -148
- package/esm2015/lib/zformcontrol/zformcontrol.component.js +0 -49
- package/esm2015/lib/zgauge/zgauge.component.js +0 -146
- package/esm2015/lib/zgrid/date-range-cell-filter.component.js +0 -102
- package/esm2015/lib/zgrid/zgrid.binding.directive.js +0 -493
- package/esm2015/lib/zgrid/zgrid.component.js +0 -834
- package/esm2015/lib/zgrid/zgrid.popup.anchor-target.directive.js +0 -16
- package/esm2015/lib/zimg/zimg.component.js +0 -123
- package/esm2015/lib/zkcard/zkcard.component.js +0 -372
- package/esm2015/lib/zlabel/zlabel.component.js +0 -59
- package/esm2015/lib/zmfb/zmfb.component.js +0 -215
- package/esm2015/lib/zmodal/zmodal-mobile.component.js +0 -119
- package/esm2015/lib/zmodal/zmodal.component.js +0 -130
- package/esm2015/lib/znumeric/znumeric.component.js +0 -114
- package/esm2015/lib/zpostselectinput/zpostselectinput.component.js +0 -345
- package/esm2015/lib/zquerybuilder/zquerybuilder.component.js +0 -196
- package/esm2015/lib/zreport/zreport.component.js +0 -104
- package/esm2015/lib/zreport/zreport.config.js +0 -115
- package/esm2015/lib/zscheduler/zscheduler.component.js +0 -268
- package/esm2015/lib/zselectmultiple/zselectmultiple.component.js +0 -565
- package/esm2015/lib/zselectmultiple/zselectmultiple.directive.js +0 -28
- package/esm2015/lib/ztab/ztab.component.js +0 -180
- package/esm2015/lib/ztab/ztab.pipe.js +0 -22
- package/esm2015/lib/ztext/ztext.component.js +0 -286
- package/esm2015/lib/ztextarea/ztextarea.component.js +0 -104
- package/esm2015/lib/ztexteditor/ztexteditor.component.js +0 -52
- package/esm2015/lib/ztree/ztree.component.js +0 -374
- package/esm2015/lib/ztreelist/ztreelist.component.js +0 -539
- package/esm2015/lib/ztrendcard/ztrendcard.component.js +0 -89
- package/esm2015/lib/zudf/zudf.component.js +0 -206
- package/esm2015/lib/zunknown/zunknown.component.js +0 -20
- package/esm2015/lib/zupload/zupload.component.js +0 -358
- package/esm2015/lib/zworkflowbuttons/zworkflowbuttons.component.js +0 -215
- package/esm2015/mmhglobal-dynamicform.js +0 -7
- package/fesm2015/mmhglobal-dynamicform.js +0 -10729
- package/fesm2015/mmhglobal-dynamicform.js.map +0 -1
- package/mmhglobal-dynamicform.metadata.json +0 -1
|
@@ -0,0 +1,367 @@
|
|
|
1
|
+
/********** Angular **********/
|
|
2
|
+
import { Component } from '@angular/core';
|
|
3
|
+
import { delay, tap } from 'rxjs/operators';
|
|
4
|
+
/********** Component & Service **********/
|
|
5
|
+
import { ZComponentHelper } from 'mmhglobal-zcore';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@angular/router";
|
|
8
|
+
import * as i2 from "mmhglobal-zcore";
|
|
9
|
+
import * as i3 from "@progress/kendo-angular-layout";
|
|
10
|
+
import * as i4 from "@progress/kendo-angular-progressbar";
|
|
11
|
+
import * as i5 from "@fortawesome/angular-fontawesome";
|
|
12
|
+
import * as i6 from "@angular/common";
|
|
13
|
+
export class ZkcardComponent {
|
|
14
|
+
constructor(activatedRoute, resourceApiService, authService, zGridStatePersistingService, webapiService, router) {
|
|
15
|
+
this.activatedRoute = activatedRoute;
|
|
16
|
+
this.resourceApiService = resourceApiService;
|
|
17
|
+
this.authService = authService;
|
|
18
|
+
this.zGridStatePersistingService = zGridStatePersistingService;
|
|
19
|
+
this.webapiService = webapiService;
|
|
20
|
+
this.router = router;
|
|
21
|
+
this.zgrid = null;
|
|
22
|
+
this.scrollViewCards = { data: [], total: 0 };
|
|
23
|
+
this.responseData = { data: [], total: 0 };
|
|
24
|
+
this.params = {
|
|
25
|
+
referId: null,
|
|
26
|
+
pageNo: 0,
|
|
27
|
+
pageSize: 20,
|
|
28
|
+
sortColumnName: "",
|
|
29
|
+
sortOrder: "",
|
|
30
|
+
sortColumnNames: [],
|
|
31
|
+
sortOrders: [],
|
|
32
|
+
filterParams: [],
|
|
33
|
+
parameters: "",
|
|
34
|
+
filters: "",
|
|
35
|
+
columns: "",
|
|
36
|
+
grantType: 4
|
|
37
|
+
};
|
|
38
|
+
this.gridColumns = [];
|
|
39
|
+
this.usableColumns = [];
|
|
40
|
+
this.dataSource = null;
|
|
41
|
+
this.state = {
|
|
42
|
+
skip: 0,
|
|
43
|
+
take: 10,
|
|
44
|
+
};
|
|
45
|
+
this.paginationApiPostUrl = null;
|
|
46
|
+
this.resourceURL = null;
|
|
47
|
+
this.filterItems = [];
|
|
48
|
+
this.progressStyles = {
|
|
49
|
+
color: '',
|
|
50
|
+
background: 'green'
|
|
51
|
+
};
|
|
52
|
+
this.loadingPanelVisible = false;
|
|
53
|
+
this.label = {
|
|
54
|
+
visible: true,
|
|
55
|
+
format: 'percent',
|
|
56
|
+
position: 'center'
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
ngOnInit() {
|
|
60
|
+
ZComponentHelper.setComponentProperties(this);
|
|
61
|
+
ZComponentHelper.registerComponent(this);
|
|
62
|
+
this.dataSource = this.field.DataSource ? this.field.DataSource : null;
|
|
63
|
+
this.filterItems = this.group['filterItems'];
|
|
64
|
+
if (!this.dataSource) {
|
|
65
|
+
this.resourceURL = ZComponentHelper.getGroupValue(this.field.ResourceURL, this.grp);
|
|
66
|
+
// console.log("At zgrid.component (OnInit) resourceURL: ", resourceURL);
|
|
67
|
+
if (!this.resourceURL) {
|
|
68
|
+
// this.grid.loading = false;
|
|
69
|
+
//if (this.zgridbinding.data.Name !== "ActivityLogGrid") {
|
|
70
|
+
// console.warn(
|
|
71
|
+
// "No initialise for Field.ResourceURL: ",
|
|
72
|
+
// this.field.ResourceURL
|
|
73
|
+
// );
|
|
74
|
+
//}
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
const array = this.resourceURL.split("/api/");
|
|
78
|
+
if (!!array[1]) {
|
|
79
|
+
array[1] = "Page" + array[1];
|
|
80
|
+
this.paginationApiPostUrl = array.join("/api/");
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
const arr = this.resourceURL.split("/");
|
|
84
|
+
arr[arr.length - 2] = "Page" + arr[arr.length - 2];
|
|
85
|
+
this.paginationApiPostUrl = arr.join("/");
|
|
86
|
+
}
|
|
87
|
+
this.setFilterParamsByParentRefId();
|
|
88
|
+
}
|
|
89
|
+
this.generateGridColumns();
|
|
90
|
+
}
|
|
91
|
+
ngOnDestroy() {
|
|
92
|
+
if (this.subscription) {
|
|
93
|
+
this.subscription.unsubscribe();
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
getData() {
|
|
97
|
+
if (this.zgrid) {
|
|
98
|
+
this.zgrid.getDataBinding();
|
|
99
|
+
}
|
|
100
|
+
//if (this.data.SkipDirective) {
|
|
101
|
+
// this.gridData = process(this.gData, this.state);
|
|
102
|
+
// this.createFormControls();
|
|
103
|
+
//}
|
|
104
|
+
}
|
|
105
|
+
generateGridColumns() {
|
|
106
|
+
this.loadingPanelVisible = true;
|
|
107
|
+
const columnFields$ = ZComponentHelper.getGroupValue(this.field.ColumnFields, this.grp);
|
|
108
|
+
columnFields$
|
|
109
|
+
.pipe(tap((data) => {
|
|
110
|
+
const gridSetting = this.getGridSettings();
|
|
111
|
+
const fieldName = this.field["FieldElementName"];
|
|
112
|
+
ZComponentHelper.getGridColumns(data, this.gridColumns, this.group, this.authService, fieldName, gridSetting, this.usableColumns);
|
|
113
|
+
this.getFilterParamsColumns();
|
|
114
|
+
this.getFilter();
|
|
115
|
+
//this.getSorting();
|
|
116
|
+
//this.getGrantType();
|
|
117
|
+
//this.setHiddenColumn(gridSetting);
|
|
118
|
+
//this.params.referId = this.getFieldReferenceId() || this.grp.referenceId || null;
|
|
119
|
+
}), tap(() => {
|
|
120
|
+
this.getDataBinding();
|
|
121
|
+
}))
|
|
122
|
+
.subscribe(() => {
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
getDataBinding() {
|
|
126
|
+
if (!this.dataSource) {
|
|
127
|
+
this.param.pageSize = this.field.PageSize ?? 50;
|
|
128
|
+
if (this.field.ExternalPagination) {
|
|
129
|
+
// For POST method Page WebAPI
|
|
130
|
+
this.webapiService
|
|
131
|
+
.postApi(this.paginationApiPostUrl, this.param, null, null, null, null, true)
|
|
132
|
+
.subscribe((data) => {
|
|
133
|
+
delay(2500);
|
|
134
|
+
this.responseData = { data: data.dataSet, total: data.totalCount };
|
|
135
|
+
this.scrollViewCards = { data: data.dataSet, total: data.totalCount };
|
|
136
|
+
if (data.dataSet.length > 0) {
|
|
137
|
+
this.getRecordsSummary();
|
|
138
|
+
}
|
|
139
|
+
if (this.data.ResourceURLAlt) {
|
|
140
|
+
this.getNewSurvey();
|
|
141
|
+
}
|
|
142
|
+
//this.aggregateHandling(data.dataSet);
|
|
143
|
+
//this.grid.data = { data: data.dataSet, total: data.totalCount };
|
|
144
|
+
//this.grid.loading = false;
|
|
145
|
+
this.loadingPanelVisible = false;
|
|
146
|
+
//this.notifyDataChange();
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
else {
|
|
150
|
+
// For GET method
|
|
151
|
+
this.webapiService
|
|
152
|
+
.getApi(this.resourceURL, null, null, null, null, null, true)
|
|
153
|
+
.subscribe((data) => {
|
|
154
|
+
let _data = null;
|
|
155
|
+
let _totalCount = 0;
|
|
156
|
+
if (data.dataSet) {
|
|
157
|
+
_data = data.dataSet;
|
|
158
|
+
_totalCount = data.totalCount;
|
|
159
|
+
}
|
|
160
|
+
else {
|
|
161
|
+
_data = data;
|
|
162
|
+
_totalCount = data.length;
|
|
163
|
+
}
|
|
164
|
+
this.loadingPanelVisible = false;
|
|
165
|
+
//this.aggregateHandling(_data);
|
|
166
|
+
//this.grid.data = { data: _data, total: _totalCount };
|
|
167
|
+
//this.grid.pageSize = _totalCount;
|
|
168
|
+
//this.grid.loading = false;
|
|
169
|
+
//this.notifyDataChange();
|
|
170
|
+
});
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
else {
|
|
174
|
+
const ds = ZComponentHelper.getGroupValue(this.field.DataSource, this.grp);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
getRecordsSummary() {
|
|
178
|
+
let SurveyIds = [];
|
|
179
|
+
this.responseData.data.forEach(value => {
|
|
180
|
+
SurveyIds.push(value.Id);
|
|
181
|
+
});
|
|
182
|
+
this.webapiService
|
|
183
|
+
.postApi(this.resourceApiService.getURL('ppsapsurveysummaryinfoURL'), SurveyIds, null, null, null, null, true)
|
|
184
|
+
.subscribe(data => {
|
|
185
|
+
this.responseData.data.forEach(value => {
|
|
186
|
+
data.forEach(x => {
|
|
187
|
+
if (x.SurveyId == value.Id) {
|
|
188
|
+
value['value'] = Number.isNaN(((x.TotalTakenQuestions / x.TotalQuestions) * 100)) ? 0 : Math.round(((x.TotalTakenQuestions / x.TotalQuestions) * 100));
|
|
189
|
+
// value['value'] = 100;
|
|
190
|
+
}
|
|
191
|
+
});
|
|
192
|
+
});
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
getNewSurvey() {
|
|
196
|
+
let requestBody = {
|
|
197
|
+
columns: "PartnerMillId,SurveyTemplateId,WFS_StatusCode,WFS_StatusName",
|
|
198
|
+
pageSize: this.field.PageSize ?? 50,
|
|
199
|
+
};
|
|
200
|
+
this.webapiService
|
|
201
|
+
.postApi(this.resourceApiService.getPageUrl(this.data.ResourceURLAlt), requestBody, null, null, null, null, true)
|
|
202
|
+
.subscribe((data) => {
|
|
203
|
+
data.dataSet.forEach(value => {
|
|
204
|
+
value['value'] = 0;
|
|
205
|
+
this.scrollViewCards.data.push(value);
|
|
206
|
+
this.scrollViewCards.total += 1;
|
|
207
|
+
//data.forEach(x => {
|
|
208
|
+
// if (x.SurveyId == value.Id) {
|
|
209
|
+
// value['value'] = Number.isNaN(((x.TotalTakenQuestions / x.TotalQuestions) * 100)) ? 0 : Math.round(((x.TotalTakenQuestions / x.TotalQuestions) * 100));
|
|
210
|
+
// }
|
|
211
|
+
//})
|
|
212
|
+
});
|
|
213
|
+
});
|
|
214
|
+
}
|
|
215
|
+
get field() {
|
|
216
|
+
return this.data;
|
|
217
|
+
}
|
|
218
|
+
get grp() {
|
|
219
|
+
return this.group;
|
|
220
|
+
}
|
|
221
|
+
get param() {
|
|
222
|
+
return this.params;
|
|
223
|
+
}
|
|
224
|
+
getGridSettings() {
|
|
225
|
+
const _storageKey = 'ionic-field::' + this.authService.e1Token.userName;
|
|
226
|
+
const _gridName = this.field.Name + '::' + this.field.Value;
|
|
227
|
+
// Find any setting from localstorage..
|
|
228
|
+
let _arrGridCaching = this.zGridStatePersistingService.get(_storageKey);
|
|
229
|
+
if (_arrGridCaching && _arrGridCaching[0]) {
|
|
230
|
+
const _gridCaching = _arrGridCaching.find(x => x['dataFormFields'] === _gridName);
|
|
231
|
+
if (_gridCaching) {
|
|
232
|
+
return _gridCaching.gridSettings.columnsConfig.sort((a, b) => a.orderIndex - b.orderIndex);
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
setFilterParamsByParentRefId() {
|
|
237
|
+
// Use field own referenceId if available
|
|
238
|
+
const refId = this.getFieldReferenceId() || this.grp.referenceId;
|
|
239
|
+
const refField = this.field.ReferenceField || this.grp.parentReferenceField;
|
|
240
|
+
if (refId && this.grp.parentReferenceField) {
|
|
241
|
+
const filterValue = {
|
|
242
|
+
key: refField,
|
|
243
|
+
ops: "=",
|
|
244
|
+
value: refId,
|
|
245
|
+
};
|
|
246
|
+
// if (this.params.filterParams.find(x => x.key === filterValue.key) === undefined) {
|
|
247
|
+
this.params.filterParams.push(filterValue);
|
|
248
|
+
// }
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
getFieldReferenceId() {
|
|
252
|
+
let fieldReferenceId = null;
|
|
253
|
+
if (this.field.ReferenceId) {
|
|
254
|
+
fieldReferenceId = ZComponentHelper.getGroupValue(this.field.ReferenceId, this.grp);
|
|
255
|
+
}
|
|
256
|
+
return fieldReferenceId;
|
|
257
|
+
}
|
|
258
|
+
getFilterParamsColumns() {
|
|
259
|
+
const colFields = [];
|
|
260
|
+
this.gridColumns.forEach((field) => {
|
|
261
|
+
if (field.valueExpr) {
|
|
262
|
+
colFields.push(field.valueExpr + " as " + field.field);
|
|
263
|
+
}
|
|
264
|
+
else {
|
|
265
|
+
colFields.push(field.field);
|
|
266
|
+
}
|
|
267
|
+
});
|
|
268
|
+
if (colFields.length > 0) {
|
|
269
|
+
if (colFields.indexOf("Id") === -1) {
|
|
270
|
+
colFields.push("Id");
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
let tmpGridColumn = [];
|
|
274
|
+
tmpGridColumn.push(colFields.join(","));
|
|
275
|
+
if (this.usableColumns.length > 0) {
|
|
276
|
+
tmpGridColumn.push(this.usableColumns.join(","));
|
|
277
|
+
}
|
|
278
|
+
this.params.columns = tmpGridColumn.join(",");
|
|
279
|
+
}
|
|
280
|
+
start(event) {
|
|
281
|
+
this.group;
|
|
282
|
+
this.group.isLoading = true;
|
|
283
|
+
if (event.WFS_StatusName == 'New') {
|
|
284
|
+
let param = {
|
|
285
|
+
UserId: this.group['PSAPUSERID'],
|
|
286
|
+
SurveyMillId: event.Id
|
|
287
|
+
};
|
|
288
|
+
this.webapiService
|
|
289
|
+
.postApi(this.resourceApiService.getURL('ppsapsurveycreateURL'), param, null, null, null, null, true)
|
|
290
|
+
.subscribe((data) => {
|
|
291
|
+
this.group.isLoading = false;
|
|
292
|
+
if (this.data.EditClickURL) {
|
|
293
|
+
// TODO:
|
|
294
|
+
// debugger;
|
|
295
|
+
// this.router.navigate([this.data.EditClickURL, dataItem.Id]);
|
|
296
|
+
const colFields = ZComponentHelper.getGroupValue(this.data.ColumnFields, this.group);
|
|
297
|
+
this.group.subject.next({
|
|
298
|
+
type: "zgrid-cellClick",
|
|
299
|
+
target: this.data.EditClickURL,
|
|
300
|
+
data: event,
|
|
301
|
+
columnFields$: colFields
|
|
302
|
+
});
|
|
303
|
+
}
|
|
304
|
+
else {
|
|
305
|
+
this.router.navigate([this.group.editModelURL, data.Id, 'edit'], {
|
|
306
|
+
relativeTo: this.activatedRoute
|
|
307
|
+
});
|
|
308
|
+
}
|
|
309
|
+
});
|
|
310
|
+
}
|
|
311
|
+
else {
|
|
312
|
+
this.group.isLoading = false;
|
|
313
|
+
if (this.data.EditClickURL) {
|
|
314
|
+
// TODO:
|
|
315
|
+
// debugger;
|
|
316
|
+
// this.router.navigate([this.data.EditClickURL, dataItem.Id]);
|
|
317
|
+
const colFields = ZComponentHelper.getGroupValue(this.data.ColumnFields, this.group);
|
|
318
|
+
this.group.subject.next({
|
|
319
|
+
type: "zgrid-cellClick",
|
|
320
|
+
target: this.data.EditClickURL,
|
|
321
|
+
data: event,
|
|
322
|
+
columnFields$: colFields
|
|
323
|
+
});
|
|
324
|
+
}
|
|
325
|
+
else {
|
|
326
|
+
this.router.navigate([this.group.editModelURL, event.Id, 'edit'], {
|
|
327
|
+
relativeTo: this.activatedRoute
|
|
328
|
+
});
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
getFontAwesome(iconName) {
|
|
333
|
+
return ZComponentHelper.getFontAwesome(iconName);
|
|
334
|
+
}
|
|
335
|
+
getFilter() {
|
|
336
|
+
if (this.params.filters && this.field.Filters) {
|
|
337
|
+
this.params.filters = this.params.filters + " && " + this.field.Filters;
|
|
338
|
+
}
|
|
339
|
+
else if (!this.params.filters && this.field.Filters) {
|
|
340
|
+
this.params.filters = this.field.Filters;
|
|
341
|
+
}
|
|
342
|
+
if (this.field.Filters && this.field.Filters.indexOf("group.") !== -1) {
|
|
343
|
+
const filterKeyValPairs = this.field.Filters.split(" ");
|
|
344
|
+
const grpValues = filterKeyValPairs.filter((element) => element.trim().indexOf("group.") !== -1);
|
|
345
|
+
grpValues.forEach((val) => {
|
|
346
|
+
const actualVal = ZComponentHelper.getGroupValue(val, this.grp);
|
|
347
|
+
this.params.filters = this.params.filters.replace(val, actualVal);
|
|
348
|
+
});
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
valueChange(event) {
|
|
352
|
+
if (event.length < 1) {
|
|
353
|
+
this.scrollViewCards.data = this.responseData.data;
|
|
354
|
+
this.scrollViewCards.total = this.responseData.total;
|
|
355
|
+
return;
|
|
356
|
+
}
|
|
357
|
+
this.scrollViewCards.data = this.responseData.data.filter(x => event.includes(x.WFS_StatusName));
|
|
358
|
+
this.scrollViewCards.total = this.responseData.data.filter(x => event.includes(x.WFS_StatusName)).length;
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
ZkcardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.4", ngImport: i0, type: ZkcardComponent, deps: [{ token: i1.ActivatedRoute }, { token: i2.ResourceApiService }, { token: i2.AuthService }, { token: i2.ZGridStatePersistingService }, { token: i2.WebApiService }, { token: i1.Router }], target: i0.ɵɵFactoryTarget.Component });
|
|
362
|
+
ZkcardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.4", type: ZkcardComponent, selector: "app-zkcard", ngImport: i0, template: "<!--<kendo-multiselect [data]=\"filterItems\" [value]=\"value\" [placeholder]=\"'Survey Status'\" [filterable]=\"true\"\r\n (valueChange)=\"valueChange($event)\"></kendo-multiselect>\r\n -->\r\n<div class=\"survey-card-list\">\r\n <div *ngFor=\"let card of scrollViewCards.data\">\r\n <!--<scrollview-card [card]=\"card\"></scrollview-card>-->\r\n <kendo-card class=\"custom-card-draft\" *ngIf=\"card.WFS_StatusName == 'Draft'\" [width]=\"'250px'\">\r\n <kendo-card-header class=\"k-hbox\">\r\n <div>\r\n <h1 kendoCardTitle>{{ card.SurveyTemplateName }}</h1>\r\n <p kendoCardSubtitle>Survey Doc No: {{card.DocumentNo}}</p>\r\n </div>\r\n </kendo-card-header>\r\n <kendo-card-body class=\"card-body\">\r\n Mill Name: {{card.PartnerMillName}}\r\n <br />\r\n Survey Status: {{card.WFS_StatusName}}\r\n </kendo-card-body>\r\n <kendo-card-footer>\r\n Survey Progression:\r\n <kendo-progressbar style=\"width: 210px; border-radius:10px\" [value]=\"card.value\" [label]=\"label\" [progressCssStyle]=\"progressStyles\">\r\n </kendo-progressbar>\r\n\r\n <kendo-card-actions class=\"k-hbox-actionBtn\" orientation=\"horizontal\" [layout]=\"'end'\">\r\n <button class=\"k-button k-navigation\"\r\n (click)=\"start(card)\">\r\n <div style=\"justify-content:space-between\">\r\n <span> Continue </span>\r\n <fa-icon [icon]=\"getFontAwesome('play')\"></fa-icon>\r\n </div>\r\n </button>\r\n </kendo-card-actions>\r\n </kendo-card-footer>\r\n </kendo-card>\r\n\r\n <kendo-card class=\"custom-card-submit\" *ngIf=\"card.WFS_StatusName == 'Submitted'\" [width]=\"'250px'\">\r\n <kendo-card-header class=\"k-hbox\">\r\n <div>\r\n <h1 kendoCardTitle>{{ card.SurveyTemplateName }}</h1>\r\n <p kendoCardSubtitle>Survey Doc No: {{card.DocumentNo}}</p>\r\n </div>\r\n </kendo-card-header>\r\n <kendo-card-body class=\"card-body\">\r\n Mill Name: {{card.PartnerMillName}}\r\n <br />\r\n Survey Status: {{card.WFS_StatusName}}\r\n </kendo-card-body>\r\n <kendo-card-footer>\r\n Survey Progression:\r\n <kendo-progressbar style=\"width: 210px; border-radius:10px\" [value]=\"card.value\" [label]=\"label\" [progressCssStyle]=\"progressStyles\">\r\n </kendo-progressbar>\r\n <kendo-card-actions class=\"k-hbox-actionBtn\" orientation=\"horizontal\" [layout]=\"'end'\">\r\n <button class=\"k-button k-navigation\"\r\n (click)=\"start(card)\">\r\n <div style=\"justify-content:space-between\">\r\n <span> View </span>\r\n <fa-icon [icon]=\"getFontAwesome('file-alt')\"></fa-icon>\r\n </div>\r\n </button>\r\n </kendo-card-actions>\r\n </kendo-card-footer>\r\n </kendo-card>\r\n\r\n <kendo-card class=\"custom-card-new\" *ngIf=\"card.WFS_StatusName == 'New'\" [width]=\"'250px'\">\r\n <kendo-card-header class=\"k-hbox\">\r\n <div>\r\n <h1 kendoCardTitle>{{ card.SurveyTemplateName }}</h1>\r\n <p kendoCardSubtitle>{{card.DocumentNo}}</p>\r\n </div>\r\n </kendo-card-header>\r\n <kendo-card-body class=\"card-body\">\r\n Mill Name: {{card.PartnerMillName}}\r\n <br />\r\n Survey Status: {{card.WFS_StatusName}}\r\n </kendo-card-body>\r\n <kendo-card-footer>\r\n Survey Progression: \r\n <kendo-progressbar style=\"width: 210px; border-radius:10px\" [value]=\"card.value\" [label]=\"label\" [progressCssStyle]=\"progressStyles\">\r\n </kendo-progressbar>\r\n <kendo-card-actions class=\"k-hbox-actionBtn\" orientation=\"horizontal\" [layout]=\"'end'\">\r\n <button class=\"k-button k-navigation\"\r\n (click)=\"start(card)\">\r\n <div style=\"justify-content:space-between\">\r\n <span> Start </span>\r\n <fa-icon [icon]=\"getFontAwesome('play')\"></fa-icon>\r\n </div>\r\n </button>\r\n </kendo-card-actions>\r\n </kendo-card-footer>\r\n </kendo-card>\r\n </div>\r\n</div>\r\n", styles: [".survey-card-list{display:flex;flex-wrap:wrap;background-color:#f0dcd9;align-items:center;border-radius:10px}.custom-card-submit{margin:20px;border:3px solid;border-color:green;border-radius:15px}.custom-card-draft,.custom-card-new{margin:20px;border:3px solid;border-color:orange;border-radius:15px}\n"], components: [{ type: i3.CardComponent, selector: "kendo-card", inputs: ["orientation", "width"] }, { type: i3.CardHeaderComponent, selector: "kendo-card-header" }, { type: i3.CardBodyComponent, selector: "kendo-card-body" }, { type: i3.CardFooterComponent, selector: "kendo-card-footer" }, { type: i4.ProgressBarComponent, selector: "kendo-progressbar", inputs: ["label", "animation", "progressCssStyle", "progressCssClass", "emptyCssStyle", "emptyCssClass"], outputs: ["animationEnd"], exportAs: ["kendoProgressBar"] }, { type: i3.CardActionsComponent, selector: "kendo-card-actions", inputs: ["orientation", "layout", "actions"], outputs: ["action"] }, { type: i5.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }], directives: [{ type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.CardTitleDirective, selector: "[kendoCardTitle]" }, { type: i3.CardSubtitleDirective, selector: "[kendoCardSubtitle]" }] });
|
|
363
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.4", ngImport: i0, type: ZkcardComponent, decorators: [{
|
|
364
|
+
type: Component,
|
|
365
|
+
args: [{ selector: 'app-zkcard', template: "<!--<kendo-multiselect [data]=\"filterItems\" [value]=\"value\" [placeholder]=\"'Survey Status'\" [filterable]=\"true\"\r\n (valueChange)=\"valueChange($event)\"></kendo-multiselect>\r\n -->\r\n<div class=\"survey-card-list\">\r\n <div *ngFor=\"let card of scrollViewCards.data\">\r\n <!--<scrollview-card [card]=\"card\"></scrollview-card>-->\r\n <kendo-card class=\"custom-card-draft\" *ngIf=\"card.WFS_StatusName == 'Draft'\" [width]=\"'250px'\">\r\n <kendo-card-header class=\"k-hbox\">\r\n <div>\r\n <h1 kendoCardTitle>{{ card.SurveyTemplateName }}</h1>\r\n <p kendoCardSubtitle>Survey Doc No: {{card.DocumentNo}}</p>\r\n </div>\r\n </kendo-card-header>\r\n <kendo-card-body class=\"card-body\">\r\n Mill Name: {{card.PartnerMillName}}\r\n <br />\r\n Survey Status: {{card.WFS_StatusName}}\r\n </kendo-card-body>\r\n <kendo-card-footer>\r\n Survey Progression:\r\n <kendo-progressbar style=\"width: 210px; border-radius:10px\" [value]=\"card.value\" [label]=\"label\" [progressCssStyle]=\"progressStyles\">\r\n </kendo-progressbar>\r\n\r\n <kendo-card-actions class=\"k-hbox-actionBtn\" orientation=\"horizontal\" [layout]=\"'end'\">\r\n <button class=\"k-button k-navigation\"\r\n (click)=\"start(card)\">\r\n <div style=\"justify-content:space-between\">\r\n <span> Continue </span>\r\n <fa-icon [icon]=\"getFontAwesome('play')\"></fa-icon>\r\n </div>\r\n </button>\r\n </kendo-card-actions>\r\n </kendo-card-footer>\r\n </kendo-card>\r\n\r\n <kendo-card class=\"custom-card-submit\" *ngIf=\"card.WFS_StatusName == 'Submitted'\" [width]=\"'250px'\">\r\n <kendo-card-header class=\"k-hbox\">\r\n <div>\r\n <h1 kendoCardTitle>{{ card.SurveyTemplateName }}</h1>\r\n <p kendoCardSubtitle>Survey Doc No: {{card.DocumentNo}}</p>\r\n </div>\r\n </kendo-card-header>\r\n <kendo-card-body class=\"card-body\">\r\n Mill Name: {{card.PartnerMillName}}\r\n <br />\r\n Survey Status: {{card.WFS_StatusName}}\r\n </kendo-card-body>\r\n <kendo-card-footer>\r\n Survey Progression:\r\n <kendo-progressbar style=\"width: 210px; border-radius:10px\" [value]=\"card.value\" [label]=\"label\" [progressCssStyle]=\"progressStyles\">\r\n </kendo-progressbar>\r\n <kendo-card-actions class=\"k-hbox-actionBtn\" orientation=\"horizontal\" [layout]=\"'end'\">\r\n <button class=\"k-button k-navigation\"\r\n (click)=\"start(card)\">\r\n <div style=\"justify-content:space-between\">\r\n <span> View </span>\r\n <fa-icon [icon]=\"getFontAwesome('file-alt')\"></fa-icon>\r\n </div>\r\n </button>\r\n </kendo-card-actions>\r\n </kendo-card-footer>\r\n </kendo-card>\r\n\r\n <kendo-card class=\"custom-card-new\" *ngIf=\"card.WFS_StatusName == 'New'\" [width]=\"'250px'\">\r\n <kendo-card-header class=\"k-hbox\">\r\n <div>\r\n <h1 kendoCardTitle>{{ card.SurveyTemplateName }}</h1>\r\n <p kendoCardSubtitle>{{card.DocumentNo}}</p>\r\n </div>\r\n </kendo-card-header>\r\n <kendo-card-body class=\"card-body\">\r\n Mill Name: {{card.PartnerMillName}}\r\n <br />\r\n Survey Status: {{card.WFS_StatusName}}\r\n </kendo-card-body>\r\n <kendo-card-footer>\r\n Survey Progression: \r\n <kendo-progressbar style=\"width: 210px; border-radius:10px\" [value]=\"card.value\" [label]=\"label\" [progressCssStyle]=\"progressStyles\">\r\n </kendo-progressbar>\r\n <kendo-card-actions class=\"k-hbox-actionBtn\" orientation=\"horizontal\" [layout]=\"'end'\">\r\n <button class=\"k-button k-navigation\"\r\n (click)=\"start(card)\">\r\n <div style=\"justify-content:space-between\">\r\n <span> Start </span>\r\n <fa-icon [icon]=\"getFontAwesome('play')\"></fa-icon>\r\n </div>\r\n </button>\r\n </kendo-card-actions>\r\n </kendo-card-footer>\r\n </kendo-card>\r\n </div>\r\n</div>\r\n", styles: [".survey-card-list{display:flex;flex-wrap:wrap;background-color:#f0dcd9;align-items:center;border-radius:10px}.custom-card-submit{margin:20px;border:3px solid;border-color:green;border-radius:15px}.custom-card-draft,.custom-card-new{margin:20px;border:3px solid;border-color:orange;border-radius:15px}\n"] }]
|
|
366
|
+
}], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i2.ResourceApiService }, { type: i2.AuthService }, { type: i2.ZGridStatePersistingService }, { type: i2.WebApiService }, { type: i1.Router }]; } });
|
|
367
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiemtjYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21taGdsb2JhbC1keW5hbWljZm9ybS9zcmMvbGliL3prY2FyZC96a2NhcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvemtjYXJkL3prY2FyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQkFBK0I7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFRN0QsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUk1QywyQ0FBMkM7QUFDM0MsT0FBTyxFQUVPLGdCQUFnQixFQUU3QixNQUFNLGlCQUFpQixDQUFDOzs7Ozs7OztBQVF6QixNQUFNLE9BQU8sZUFBZTtJQUUxQixZQUNVLGNBQThCLEVBQzlCLGtCQUFzQyxFQUN0QyxXQUF3QixFQUN4QiwyQkFBd0QsRUFDeEQsYUFBNEIsRUFDNUIsTUFBYztRQUxkLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5Qix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLGdDQUEyQixHQUEzQiwyQkFBMkIsQ0FBNkI7UUFDeEQsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQU14QixVQUFLLEdBQVEsSUFBSSxDQUFDO1FBQ2xCLG9CQUFlLEdBQVEsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUM5QyxpQkFBWSxHQUFRLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFDM0MsV0FBTSxHQUF1QjtZQUMzQixPQUFPLEVBQUUsSUFB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Q0FBQyxlQUFlLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7UUFDakcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDM0csQ0FBQzs7NEdBMWJVLGVBQWU7Z0dBQWYsZUFBZSxrREMxQjVCLDh0SUE0RkE7MkZEbEVhLGVBQWU7a0JBTDNCLFNBQVM7K0JBQ0UsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbIi8qKioqKioqKioqIEFuZ3VsYXIgKioqKioqKioqKi9cclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5cclxuLyoqKioqKioqKiogSW9uaWMgKioqKioqKioqKi9cclxuXHJcbi8qKioqKioqKioqIFBsdWdpbiAqKioqKioqKioqL1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGVsYXksIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgTGFiZWxTZXR0aW5ncyB9IGZyb20gJ0Bwcm9ncmVzcy9rZW5kby1hbmd1bGFyLXByb2dyZXNzYmFyJztcclxuaW1wb3J0IHsgU3RhdGUgfSBmcm9tICdAcHJvZ3Jlc3Mva2VuZG8tZGF0YS1xdWVyeSc7XHJcblxyXG4vKioqKioqKioqKiBDb21wb25lbnQgJiBTZXJ2aWNlICoqKioqKioqKiovXHJcbmltcG9ydCB7XHJcbiAgQXV0aFNlcnZpY2UsIFpGaWVsZCwgWkdyb3VwLCBSZXNvdXJjZUFwaVNlcnZpY2UsIFdlYkFwaVNlcnZpY2UsIEdyaWRDYWNoaW5nLFxyXG4gIFpDb21wb25lbnQsIFpDb21wb25lbnRIZWxwZXIsIFpDb21wb25lbnRPdXRwdXRFdmVudCxcclxuICBaR3JpZFN0YXRlUGVyc2lzdGluZ1NlcnZpY2UsIFpHcmlkQ29sdW1uU2V0dGluZ3MsIFpHcmlkUG9zdEFwaVBhcmFtc1xyXG59IGZyb20gJ21taGdsb2JhbC16Y29yZSc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtemtjYXJkJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vemtjYXJkLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi96a2NhcmQuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFprY2FyZENvbXBvbmVudCBpbXBsZW1lbnRzIFpDb21wb25lbnQsIE9uSW5pdCwgT25EZXN0cm95IHtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgIHByaXZhdGUgcmVzb3VyY2VBcGlTZXJ2aWNlOiBSZXNvdXJjZUFwaVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSxcclxuICAgIHByaXZhdGUgekdyaWRTdGF0ZVBlcnNpc3RpbmdTZXJ2aWNlOiBaR3JpZFN0YXRlUGVyc2lzdGluZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHdlYmFwaVNlcnZpY2U6IFdlYkFwaVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICkgeyB9XHJcblxyXG4gIGRhdGE6IFpGaWVsZDtcclxuICBncm91cDogWkdyb3VwO1xyXG4gIGZvcm06IEZvcm1Hcm91cDtcclxuICB6Z3JpZDogYW55ID0gbnVsbDtcclxuICBzY3JvbGxWaWV3Q2FyZHM6IGFueSA9IHsgZGF0YTogW10sIHRvdGFsOiAwIH07XHJcbiAgcmVzcG9uc2VEYXRhOiBhbnkgPSB7IGRhdGE6IFtdLCB0b3RhbDogMCB9O1xyXG4gIHBhcmFtczogWkdyaWRQb3N0QXBpUGFyYW1zID0ge1xyXG4gICAgcmVmZXJJZDogbnVsbCxcclxuICAgIHBhZ2VObzogMCxcclxuICAgIHBhZ2VTaXplOiAyMCxcclxuICAgIHNvcnRDb2x1bW5OYW1lOiBcIlwiLFxyXG4gICAgc29ydE9yZGVyOiBcIlwiLFxyXG4gICAgc29ydENvbHVtbk5hbWVzOiBbXSxcclxuICAgIHNvcnRPcmRlcnM6IFtdLFxyXG4gICAgZmlsdGVyUGFyYW1zOiBbXSxcclxuICAgIHBhcmFtZXRlcnM6IFwiXCIsXHJcbiAgICBmaWx0ZXJzOiBcIlwiLFxyXG4gICAgY29sdW1uczogXCJcIixcclxuICAgIGdyYW50VHlwZTogNFxyXG4gIH07XHJcbiAgLy9ncmlkRGF0YTogR3JpZERhdGFSZXN1bHQ7XHJcbiAgY29sdW1uczogYW55W107XHJcbiAgZ3JpZENvbHVtbnM6IGFueVtdID0gW107XHJcbiAgdXNhYmxlQ29sdW1uczogYW55W10gPSBbXTtcclxuICBkYXRhU291cmNlID0gbnVsbDtcclxuICBzdGF0ZTogU3RhdGUgPSB7XHJcbiAgICBza2lwOiAwLFxyXG4gICAgdGFrZTogMTAsXHJcbiAgfTtcclxuICBwYWdpbmF0aW9uQXBpUG9zdFVybCA9IG51bGw7XHJcbiAgcmVzb3VyY2VVUkwgPSBudWxsO1xyXG4gIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG4gIHB1YmxpYyBmaWx0ZXJJdGVtczogQXJyYXk8c3RyaW5nPiA9IFtdO1xyXG4gIHB1YmxpYyBwcm9ncmVzc1N0eWxlczogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IHtcclxuICAgIGNvbG9yOiAnJyxcclxuICAgIGJhY2tncm91bmQ6ICdncmVlbidcclxuICB9O1xyXG4gIHB1YmxpYyBsb2FkaW5nUGFuZWxWaXNpYmxlID0gZmFsc2U7XHJcblxyXG5cclxuICBwdWJsaWMgbGFiZWw6IExhYmVsU2V0dGluZ3MgPSB7XHJcbiAgICB2aXNpYmxlOiB0cnVlLFxyXG4gICAgZm9ybWF0OiAncGVyY2VudCcsXHJcbiAgICBwb3NpdGlvbjogJ2NlbnRlcidcclxuICB9O1xyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIFpDb21wb25lbnRIZWxwZXIuc2V0Q29tcG9uZW50UHJvcGVydGllcyh0aGlzKTtcclxuICAgIFpDb21wb25lbnRIZWxwZXIucmVnaXN0ZXJDb21wb25lbnQodGhpcyk7XHJcblxyXG4gICAgdGhpcy5kYXRhU291cmNlID0gdGhpcy5maWVsZC5EYXRhU291cmNlID8gdGhpcy5maWVsZC5EYXRhU291cmNlIDogbnVsbDtcclxuICAgIHRoaXMuZmlsdGVySXRlbXMgPSB0aGlzLmdyb3VwWydmaWx0ZXJJdGVtcyddO1xyXG4gICAgaWYgKCF0aGlzLmRhdGFTb3VyY2UpIHtcclxuICAgICAgdGhpcy5yZXNvdXJjZVVSTCA9IFpDb21wb25lbnRIZWxwZXIuZ2V0R3JvdXBWYWx1ZShcclxuICAgICAgICB0aGlzLmZpZWxkLlJlc291cmNlVVJMLFxyXG4gICAgICAgIHRoaXMuZ3JwXHJcbiAgICAgICk7XHJcbiAgICAgIC8vIGNvbnNvbGUubG9nKFwiQXQgemdyaWQuY29tcG9uZW50IChPbkluaXQpIHJlc291cmNlVVJMOiBcIiwgcmVzb3VyY2VVUkwpO1xyXG4gICAgICBpZiAoIXRoaXMucmVzb3VyY2VVUkwpIHtcclxuICAgICAgICAvLyB0aGlzLmdyaWQubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIC8vaWYgKHRoaXMuemdyaWRiaW5kaW5nLmRhdGEuTmFtZSAhPT0gXCJBY3Rpdml0eUxvZ0dyaWRcIikge1xyXG4gICAgICAgIC8vICBjb25zb2xlLndhcm4oXHJcbiAgICAgICAgLy8gICAgXCJObyBpbml0aWFsaXNlIGZvciBGaWVsZC5SZXNvdXJjZVVSTDogXCIsXHJcbiAgICAgICAgLy8gICAgdGhpcy5maWVsZC5SZXNvdXJjZVVSTFxyXG4gICAgICAgIC8vICApO1xyXG4gICAgICAgIC8vfVxyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgY29uc3QgYXJyYXkgPSB0aGlzLnJlc291cmNlVVJMLnNwbGl0KFwiL2FwaS9cIik7XHJcbiAgICAgIGlmICghIWFycmF5WzFdKSB7XHJcbiAgICAgICAgYXJyYXlbMV0gPSBcIlBhZ2VcIiArIGFycmF5WzFdO1xyXG4gICAgICAgIHRoaXMucGFnaW5hdGlvbkFwaVBvc3RVcmwgPSBhcnJheS5qb2luKFwiL2FwaS9cIik7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29uc3QgYXJyID0gdGhpcy5yZXNvdXJjZVVSTC5zcGxpdChcIi9cIik7XHJcbiAgICAgICAgYXJyW2Fyci5sZW5ndGggLSAyXSA9IFwiUGFnZVwiICsgYXJyW2Fyci5sZW5ndGggLSAyXTtcclxuICAgICAgICB0aGlzLnBhZ2luYXRpb25BcGlQb3N0VXJsID0gYXJyLmpvaW4oXCIvXCIpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLnNldEZpbHRlclBhcmFtc0J5UGFyZW50UmVmSWQoKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmdlbmVyYXRlR3JpZENvbHVtbnMoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9uKSB7XHJcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXREYXRhKCkge1xyXG4gICAgaWYgKHRoaXMuemdyaWQpIHtcclxuICAgICAgdGhpcy56Z3JpZC5nZXREYXRhQmluZGluZygpO1xyXG4gICAgfVxyXG4gICAgLy9pZiAodGhpcy5kYXRhLlNraXBEaXJlY3RpdmUpIHtcclxuICAgIC8vICB0aGlzLmdyaWREYXRhID0gcHJvY2Vzcyh0aGlzLmdEYXRhLCB0aGlzLnN0YXRlKTtcclxuICAgIC8vICB0aGlzLmNyZWF0ZUZvcm1Db250cm9scygpO1xyXG4gICAgLy99XHJcbiAgfVxyXG5cclxuICBnZW5lcmF0ZUdyaWRDb2x1bW5zKCkge1xyXG4gICAgdGhpcy5sb2FkaW5nUGFuZWxWaXNpYmxlID0gdHJ1ZTtcclxuICAgIGNvbnN0IGNvbHVtbkZpZWxkcyQ6IE9ic2VydmFibGU8YW55PiA9IFpDb21wb25lbnRIZWxwZXIuZ2V0R3JvdXBWYWx1ZShcclxuICAgICAgdGhpcy5maWVsZC5Db2x1bW5GaWVsZHMsXHJcbiAgICAgIHRoaXMuZ3JwXHJcbiAgICApO1xyXG4gICAgY29sdW1uRmllbGRzJFxyXG4gICAgICAucGlwZShcclxuICAgICAgICB0YXAoKGRhdGEpID0+IHtcclxuXHJcbiAgICAgICAgICBjb25zdCBncmlkU2V0dGluZyA9IHRoaXMuZ2V0R3JpZFNldHRpbmdzKCk7XHJcbiAgICAgICAgICBjb25zdCBmaWVsZE5hbWUgPSB0aGlzLmZpZWxkW1wiRmllbGRFbGVtZW50TmFtZVwiXTtcclxuICAgICAgICAgIFpDb21wb25lbnRIZWxwZXIuZ2V0R3JpZENvbHVtbnMoXHJcbiAgICAgICAgICAgIGRhdGEsXHJcbiAgICAgICAgICAgIHRoaXMuZ3JpZENvbHVtbnMsXHJcbiAgICAgICAgICAgIHRoaXMuZ3JvdXAsXHJcbiAgICAgICAgICAgIHRoaXMuYXV0aFNlcnZpY2UsXHJcbiAgICAgICAgICAgIGZpZWxkTmFtZSxcclxuICAgICAgICAgICAgZ3JpZFNldHRpbmcsXHJcbiAgICAgICAgICAgIHRoaXMudXNhYmxlQ29sdW1uc1xyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIHRoaXMuZ2V0RmlsdGVyUGFyYW1zQ29sdW1ucygpO1xyXG4gICAgICAgICAgdGhpcy5nZXRGaWx0ZXIoKTtcclxuICAgICAgICAgIC8vdGhpcy5nZXRTb3J0aW5nKCk7XHJcbiAgICAgICAgICAvL3RoaXMuZ2V0R3JhbnRUeXBlKCk7XHJcbiAgICAgICAgICAvL3RoaXMuc2V0SGlkZGVuQ29sdW1uKGdyaWRTZXR0aW5nKTtcclxuICAgICAgICAgIC8vdGhpcy5wYXJhbXMucmVmZXJJZCA9IHRoaXMuZ2V0RmllbGRSZWZlcmVuY2VJZCgpIHx8IHRoaXMuZ3JwLnJlZmVyZW5jZUlkIHx8IG51bGw7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgdGFwKCgpID0+IHtcclxuICAgICAgICAgIHRoaXMuZ2V0RGF0YUJpbmRpbmcoKTtcclxuICAgICAgICB9KVxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldERhdGFCaW5kaW5nKCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmRhdGFTb3VyY2UpIHtcclxuICAgICAgdGhpcy5wYXJhbS5wYWdlU2l6ZSA9IHRoaXMuZmllbGQuUGFnZVNpemUgPz8gNTA7XHJcbiAgICAgIGlmICh0aGlzLmZpZWxkLkV4dGVybmFsUGFnaW5hdGlvbikge1xyXG4gICAgICAgIC8vIEZvciBQT1NUIG1ldGhvZCBQYWdlIFdlYkFQSVxyXG4gICAgICAgIHRoaXMud2ViYXBpU2VydmljZVxyXG4gICAgICAgICAgLnBvc3RBcGkoXHJcbiAgICAgICAgICAgIHRoaXMucGFnaW5hdGlvbkFwaVBvc3RVcmwsXHJcbiAgICAgICAgICAgIHRoaXMucGFyYW0sXHJcbiAgICAgICAgICAgIG51bGwsXHJcbiAgICAgICAgICAgIG51bGwsXHJcbiAgICAgICAgICAgIG51bGwsXHJcbiAgICAgICAgICAgIG51bGwsXHJcbiAgICAgICAgICAgIHRydWVcclxuICAgICAgICAgIClcclxuICAgICAgICAgIC5zdWJzY3JpYmUoKGRhdGEpID0+IHtcclxuICAgICAgICAgICAgZGVsYXkoMjUwMClcclxuICAgICAgICAgICAgdGhpcy5yZXNwb25zZURhdGEgPSB7IGRhdGE6IGRhdGEuZGF0YVNldCwgdG90YWw6IGRhdGEudG90YWxDb3VudCB9O1xyXG4gICAgICAgICAgICB0aGlzLnNjcm9sbFZpZXdDYXJkcyA9IHsgZGF0YTogZGF0YS5kYXRhU2V0LCB0b3RhbDogZGF0YS50b3RhbENvdW50IH07XHJcbiAgICAgICAgICAgIGlmIChkYXRhLmRhdGFTZXQubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgIHRoaXMuZ2V0UmVjb3Jkc1N1bW1hcnkoKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMuZGF0YS5SZXNvdXJjZVVSTEFsdCkge1xyXG4gICAgICAgICAgICAgIHRoaXMuZ2V0TmV3U3VydmV5KCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy90aGlzLmFnZ3JlZ2F0ZUhhbmRsaW5nKGRhdGEuZGF0YVNldCk7XHJcbiAgICAgICAgICAgIC8vdGhpcy5ncmlkLmRhdGEgPSB7IGRhdGE6IGRhdGEuZGF0YVNldCwgdG90YWw6IGRhdGEudG90YWxDb3VudCB9O1xyXG4gICAgICAgICAgICAvL3RoaXMuZ3JpZC5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMubG9hZGluZ1BhbmVsVmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAvL3RoaXMubm90aWZ5RGF0YUNoYW5nZSgpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gRm9yIEdFVCBtZXRob2RcclxuICAgICAgICB0aGlzLndlYmFwaVNlcnZpY2VcclxuICAgICAgICAgIC5nZXRBcGkodGhpcy5yZXNvdXJjZVVSTCwgbnVsbCwgbnVsbCwgbnVsbCwgbnVsbCwgbnVsbCwgdHJ1ZSlcclxuICAgICAgICAgIC5zdWJzY3JpYmUoKGRhdGEpID0+IHtcclxuICAgICAgICAgICAgbGV0IF9kYXRhID0gbnVsbDtcclxuICAgICAgICAgICAgbGV0IF90b3RhbENvdW50ID0gMDtcclxuXHJcbiAgICAgICAgICAgIGlmIChkYXRhLmRhdGFTZXQpIHtcclxuICAgICAgICAgICAgICBfZGF0YSA9IGRhdGEuZGF0YVNldDtcclxuICAgICAgICAgICAgICBfdG90YWxDb3VudCA9IGRhdGEudG90YWxDb3VudDtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICBfZGF0YSA9IGRhdGE7XHJcbiAgICAgICAgICAgICAgX3RvdGFsQ291bnQgPSBkYXRhLmxlbmd0aDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLmxvYWRpbmdQYW5lbFZpc2libGUgPSBmYWxzZTtcclxuICAgICAgICAgICAgLy90aGlzLmFnZ3JlZ2F0ZUhhbmRsaW5nKF9kYXRhKTtcclxuICAgICAgICAgICAgLy90aGlzLmdyaWQuZGF0YSA9IHsgZGF0YTogX2RhdGEsIHRvdGFsOiBfdG90YWxDb3VudCB9O1xyXG4gICAgICAgICAgICAvL3RoaXMuZ3JpZC5wYWdlU2l6ZSA9IF90b3RhbENvdW50O1xyXG4gICAgICAgICAgICAvL3RoaXMuZ3JpZC5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIC8vdGhpcy5ub3RpZnlEYXRhQ2hhbmdlKCk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgZHMgPSBaQ29tcG9uZW50SGVscGVyLmdldEdyb3VwVmFsdWUoXHJcbiAgICAgICAgdGhpcy5maWVsZC5EYXRhU291cmNlLFxyXG4gICAgICAgIHRoaXMuZ3JwXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRSZWNvcmRzU3VtbWFyeSgpIHtcclxuICAgIGxldCBTdXJ2ZXlJZHMgPSBbXTtcclxuXHJcbiAgICB0aGlzLnJlc3BvbnNlRGF0YS5kYXRhLmZvckVhY2godmFsdWUgPT4ge1xyXG4gICAgICBTdXJ2ZXlJZHMucHVzaCh2YWx1ZS5JZCk7XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLndlYmFwaVNlcnZpY2VcclxuICAgICAgLnBvc3RBcGkoXHJcbiAgICAgICAgdGhpcy5yZXNvdXJjZUFwaVNlcnZpY2UuZ2V0VVJMKCdwcHNhcHN1cnZleXN1bW1hcnlpbmZvVVJMJyksXHJcbiAgICAgICAgU3VydmV5SWRzLFxyXG4gICAgICAgIG51bGwsXHJcbiAgICAgICAgbnVsbCxcclxuICAgICAgICBudWxsLFxyXG4gICAgICAgIG51bGwsXHJcbiAgICAgICAgdHJ1ZVxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUoZGF0YSA9PiB7XHJcbiAgICAgICAgdGhpcy5yZXNwb25zZURhdGEuZGF0YS5mb3JFYWNoKHZhbHVlID0+IHtcclxuICAgICAgICAgIGRhdGEuZm9yRWFjaCh4ID0+IHtcclxuICAgICAgICAgICAgaWYgKHguU3VydmV5SWQgPT0gdmFsdWUuSWQpIHtcclxuICAgICAgICAgICAgICB2YWx1ZVsndmFsdWUnXSA9IE51bWJlci5pc05hTigoKHguVG90YWxUYWtlblF1ZXN0aW9ucyAvIHguVG90YWxRdWVzdGlvbnMpICogMTAwKSkgPyAwIDogTWF0aC5yb3VuZCgoKHguVG90YWxUYWtlblF1ZXN0aW9ucyAvIHguVG90YWxRdWVzdGlvbnMpICogMTAwKSk7XHJcbiAgICAgICAgICAgICAgLy8gdmFsdWVbJ3ZhbHVlJ10gPSAxMDA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0pXHJcbiAgfVxyXG5cclxuICBnZXROZXdTdXJ2ZXkoKSB7XHJcbiAgICBsZXQgcmVxdWVzdEJvZHkgPSB7XHJcbiAgICAgIGNvbHVtbnM6IFwiUGFydG5lck1pbGxJZCxTdXJ2ZXlUZW1wbGF0ZUlkLFdGU19TdGF0dXNDb2RlLFdGU19TdGF0dXNOYW1lXCIsXHJcbiAgICAgIHBhZ2VTaXplOiB0aGlzLmZpZWxkLlBhZ2VTaXplID8/IDUwLFxyXG4gICAgfTtcclxuXHJcbiAgICB0aGlzLndlYmFwaVNlcnZpY2VcclxuICAgICAgLnBvc3RBcGkoXHJcbiAgICAgICAgdGhpcy5yZXNvdXJjZUFwaVNlcnZpY2UuZ2V0UGFnZVVybCh0aGlzLmRhdGEuUmVzb3VyY2VVUkxBbHQpLFxyXG4gICAgICAgIHJlcXVlc3RCb2R5LFxyXG4gICAgICAgIG51bGwsXHJcbiAgICAgICAgbnVsbCxcclxuICAgICAgICBudWxsLFxyXG4gICAgICAgIG51bGwsXHJcbiAgICAgICAgdHJ1ZVxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUoKGRhdGEpID0+IHtcclxuICAgICAgICBkYXRhLmRhdGFTZXQuZm9yRWFjaCh2YWx1ZSA9PiB7XHJcbiAgICAgICAgICB2YWx1ZVsndmFsdWUnXSA9IDA7XHJcbiAgICAgICAgICB0aGlzLnNjcm9sbFZpZXdDYXJkcy5kYXRhLnB1c2godmFsdWUpO1xyXG4gICAgICAgICAgdGhpcy5zY3JvbGxWaWV3Q2FyZHMudG90YWwgKz0gMTtcclxuXHJcbiAgICAgICAgICAvL2RhdGEuZm9yRWFjaCh4ID0+IHtcclxuICAgICAgICAgIC8vICBpZiAoeC5TdXJ2ZXlJZCA9PSB2YWx1ZS5JZCkge1xyXG4gICAgICAgICAgLy8gICAgdmFsdWVbJ3ZhbHVlJ10gPSBOdW1iZXIuaXNOYU4oKCh4LlRvdGFsVGFrZW5RdWVzdGlvbnMgLyB4LlRvdGFsUXVlc3Rpb25zKSAqIDEwMCkpID8gMCA6IE1hdGgucm91bmQoKCh4LlRvdGFsVGFrZW5RdWVzdGlvbnMgLyB4LlRvdGFsUXVlc3Rpb25zKSAqIDEwMCkpO1xyXG4gICAgICAgICAgLy8gIH1cclxuICAgICAgICAgIC8vfSlcclxuICAgICAgICB9KTtcclxuICAgICAgfSlcclxuICB9XHJcblxyXG4gIGdldCBmaWVsZCgpIHtcclxuICAgIHJldHVybiB0aGlzLmRhdGE7XHJcbiAgfVxyXG5cclxuICBnZXQgZ3JwKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZ3JvdXA7XHJcbiAgfVxyXG5cclxuICBnZXQgcGFyYW0oKTogWkdyaWRQb3N0QXBpUGFyYW1zIHtcclxuICAgIHJldHVybiB0aGlzLnBhcmFtcztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0R3JpZFNldHRpbmdzKCk6IFpHcmlkQ29sdW1uU2V0dGluZ3NbXSB7XHJcbiAgICBjb25zdCBfc3RvcmFnZUtleSA9ICdpb25pYy1maWVsZDo6JyArIHRoaXMuYXV0aFNlcnZpY2UuZTFUb2tlbi51c2VyTmFtZTtcclxuICAgIGNvbnN0IF9ncmlkTmFtZSA9IHRoaXMuZmllbGQuTmFtZSArICc6OicgKyB0aGlzLmZpZWxkLlZhbHVlO1xyXG5cclxuICAgIC8vIEZpbmQgYW55IHNldHRpbmcgZnJvbSBsb2NhbHN0b3JhZ2UuLlxyXG4gICAgbGV0IF9hcnJHcmlkQ2FjaGluZzogR3JpZENhY2hpbmdbXSA9IHRoaXMuekdyaWRTdGF0ZVBlcnNpc3RpbmdTZXJ2aWNlLmdldChfc3RvcmFnZUtleSk7XHJcbiAgICBpZiAoX2FyckdyaWRDYWNoaW5nICYmIF9hcnJHcmlkQ2FjaGluZ1swXSkge1xyXG4gICAgICBjb25zdCBfZ3JpZENhY2hpbmc6IEdyaWRDYWNoaW5nID0gX2FyckdyaWRDYWNoaW5nLmZpbmQoeCA9PiB4WydkYXRhRm9ybUZpZWxkcyddID09PSBfZ3JpZE5hbWUpO1xyXG5cclxuICAgICAgaWYgKF9ncmlkQ2FjaGluZykge1xyXG4gICAgICAgIHJldHVybiBfZ3JpZENhY2hpbmcuZ3JpZFNldHRpbmdzLmNvbHVtbnNDb25maWcuc29ydCgoYSwgYikgPT4gYS5vcmRlckluZGV4IC0gYi5vcmRlckluZGV4KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRGaWx0ZXJQYXJhbXNCeVBhcmVudFJlZklkKCkge1xyXG4gICAgLy8gVXNlIGZpZWxkIG93biByZWZlcmVuY2VJZCBpZiBhdmFpbGFibGVcclxuICAgIGNvbnN0IHJlZklkID0gdGhpcy5nZXRGaWVsZFJlZmVyZW5jZUlkKCkgfHwgdGhpcy5ncnAucmVmZXJlbmNlSWQ7XHJcbiAgICBjb25zdCByZWZGaWVsZCA9IHRoaXMuZmllbGQuUmVmZXJlbmNlRmllbGQgfHwgdGhpcy5ncnAucGFyZW50UmVmZXJlbmNlRmllbGQ7XHJcbiAgICBpZiAocmVmSWQgJiYgdGhpcy5ncnAucGFyZW50UmVmZXJlbmNlRmllbGQpIHtcclxuICAgICAgY29uc3QgZmlsdGVyVmFsdWUgPSB7XHJcbiAgICAgICAga2V5OiByZWZGaWVsZCxcclxuICAgICAgICBvcHM6IFwiPVwiLFxyXG4gICAgICAgIHZhbHVlOiByZWZJZCxcclxuICAgICAgfTtcclxuICAgICAgLy8gaWYgKHRoaXMucGFyYW1zLmZpbHRlclBhcmFtcy5maW5kKHggPT4geC5rZXkgPT09IGZpbHRlclZhbHVlLmtleSkgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aGlzLnBhcmFtcy5maWx0ZXJQYXJhbXMucHVzaChmaWx0ZXJWYWx1ZSk7XHJcbiAgICAgIC8vIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0RmllbGRSZWZlcmVuY2VJZCgpIHtcclxuICAgIGxldCBmaWVsZFJlZmVyZW5jZUlkID0gbnVsbDtcclxuICAgIGlmICh0aGlzLmZpZWxkLlJlZmVyZW5jZUlkKSB7XHJcbiAgICAgIGZpZWxkUmVmZXJlbmNlSWQgPSBaQ29tcG9uZW50SGVscGVyLmdldEdyb3VwVmFsdWUoXHJcbiAgICAgICAgdGhpcy5maWVsZC5SZWZlcmVuY2VJZCxcclxuICAgICAgICB0aGlzLmdycFxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZpZWxkUmVmZXJlbmNlSWQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEZpbHRlclBhcmFtc0NvbHVtbnMoKSB7XHJcbiAgICBjb25zdCBjb2xGaWVsZHM6IEFycmF5PHN0cmluZz4gPSBbXTtcclxuICAgIHRoaXMuZ3JpZENvbHVtbnMuZm9yRWFjaCgoZmllbGQpID0+IHtcclxuICAgICAgaWYgKGZpZWxkLnZhbHVlRXhwcikge1xyXG4gICAgICAgIGNvbEZpZWxkcy5wdXNoKGZpZWxkLnZhbHVlRXhwciArIFwiIGFzIFwiICsgZmllbGQuZmllbGQpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbEZpZWxkcy5wdXNoKGZpZWxkLmZpZWxkKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKGNvbEZpZWxkcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGlmIChjb2xGaWVsZHMuaW5kZXhPZihcIklkXCIpID09PSAtMSkge1xyXG4gICAgICAgIGNvbEZpZWxkcy5wdXNoKFwiSWRcIik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBsZXQgdG1wR3JpZENvbHVtbjogYW55W10gPSBbXTtcclxuICAgIHRtcEdyaWRDb2x1bW4ucHVzaChjb2xGaWVsZHMuam9pbihcIixcIikpO1xyXG4gICAgaWYgKHRoaXMudXNhYmxlQ29sdW1ucy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRtcEdyaWRDb2x1bW4ucHVzaCh0aGlzLnVzYWJsZUNvbHVtbnMuam9pbihcIixcIikpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5wYXJhbXMuY29sdW1ucyA9IHRtcEdyaWRDb2x1bW4uam9pbihcIixcIik7XHJcbiAgfVxyXG5cclxuICBzdGFydChldmVudDogYW55KSB7XHJcbiAgICB0aGlzLmdyb3VwO1xyXG4gICAgdGhpcy5ncm91cC5pc0xvYWRpbmcgPSB0cnVlO1xyXG4gICAgaWYgKGV2ZW50LldGU19TdGF0dXNOYW1lID09ICdOZXcnKSB7XHJcbiAgICAgIGxldCBwYXJhbSA9IHtcclxuICAgICAgICBVc2VySWQ6IHRoaXMuZ3JvdXBbJ1BTQVBVU0VSSUQnXSxcclxuICAgICAgICBTdXJ2ZXlNaWxsSWQ6IGV2ZW50LklkXHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMud2ViYXBpU2VydmljZVxyXG4gICAgICAgIC5wb3N0QXBpKFxyXG4gICAgICAgICAgdGhpcy5yZXNvdXJjZUFwaVNlcnZpY2UuZ2V0VVJMKCdwcHNhcHN1cnZleWNyZWF0ZVVSTCcpLFxyXG4gICAgICAgICAgcGFyYW0sXHJcbiAgICAgICAgICBudWxsLFxyXG4gICAgICAgICAgbnVsbCxcclxuICAgICAgICAgIG51bGwsXHJcbiAgICAgICAgICBudWxsLFxyXG4gICAgICAgICAgdHJ1ZVxyXG4gICAgICAgIClcclxuICAgICAgICAuc3Vic2NyaWJlKChkYXRhKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmdyb3VwLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgaWYgKHRoaXMuZGF0YS5FZGl0Q2xpY2tVUkwpIHtcclxuICAgICAgICAgICAgLy8gVE9ETzpcclxuICAgICAgICAgICAgLy8gZGVidWdnZXI7XHJcbiAgICAgICAgICAgIC8vIHRoaXMucm91dGVyLm5hdmlnYXRlKFt0aGlzLmRhdGEuRWRpdENsaWNrVVJMLCBkYXRhSXRlbS5JZF0pO1xyXG4gICAgICAgICAgICBjb25zdCBjb2xGaWVsZHMgPSBaQ29tcG9uZW50SGVscGVyLmdldEdyb3VwVmFsdWUodGhpcy5kYXRhLkNvbHVtbkZpZWxkcywgdGhpcy5ncm91cCk7XHJcbiAgICAgICAgICAgIHRoaXMuZ3JvdXAuc3ViamVjdC5uZXh0KHtcclxuICAgICAgICAgICAgICB0eXBlOiBcInpncmlkLWNlbGxDbGlja1wiLFxyXG4gICAgICAgICAgICAgIHRhcmdldDogdGhpcy5kYXRhLkVkaXRDbGlja1VSTCxcclxuICAgICAgICAgICAgICBkYXRhOiBldmVudCxcclxuICAgICAgICAgICAgICBjb2x1bW5GaWVsZHMkOiBjb2xGaWVsZHNcclxuICAgICAgICAgICAgfSBhcyBaQ29tcG9uZW50T3V0cHV0RXZlbnQpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3RoaXMuZ3JvdXAuZWRpdE1vZGVsVVJMLCBkYXRhLklkLCAnZWRpdCddLCB7XHJcbiAgICAgICAgICAgICAgcmVsYXRpdmVUbzogdGhpcy5hY3RpdmF0ZWRSb3V0ZVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5ncm91cC5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgaWYgKHRoaXMuZGF0YS5FZGl0Q2xpY2tVUkwpIHtcclxuICAgICAgICAvLyBUT0RPOlxyXG4gICAgICAgIC8vIGRlYnVnZ2VyO1xyXG4gICAgICAgIC8vIHRoaXMucm91dGVyLm5hdmlnYXRlKFt0aGlzLmRhdGEuRWRpdENsaWNrVVJMLCBkYXRhSXRlbS5JZF0pO1xyXG4gICAgICAgIGNvbnN0IGNvbEZpZWxkcyA9IFpDb21wb25lbnRIZWxwZXIuZ2V0R3JvdXBWYWx1ZSh0aGlzLmRhdGEuQ29sdW1uRmllbGRzLCB0aGlzLmdyb3VwKTtcclxuICAgICAgICB0aGlzLmdyb3VwLnN1YmplY3QubmV4dCh7XHJcbiAgICAgICAgICB0eXBlOiBcInpncmlkLWNlbGxDbGlja1wiLFxyXG4gICAgICAgICAgdGFyZ2V0OiB0aGlzLmRhdGEuRWRpdENsaWNrVVJMLFxyXG4gICAgICAgICAgZGF0YTogZXZlbnQsXHJcbiAgICAgICAgICBjb2x1bW5GaWVsZHMkOiBjb2xGaWVsZHNcclxuICAgICAgICB9IGFzIFpDb21wb25lbnRPdXRwdXRFdmVudCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3RoaXMuZ3JvdXAuZWRpdE1vZGVsVVJMLCBldmVudC5JZCwgJ2VkaXQnXSwge1xyXG4gICAgICAgICAgcmVsYXRpdmVUbzogdGhpcy5hY3RpdmF0ZWRSb3V0ZVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRGb250QXdlc29tZShpY29uTmFtZTogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gWkNvbXBvbmVudEhlbHBlci5nZXRGb250QXdlc29tZShpY29uTmFtZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEZpbHRlcigpIHtcclxuICAgIGlmICh0aGlzLnBhcmFtcy5maWx0ZXJzICYmIHRoaXMuZmllbGQuRmlsdGVycykge1xyXG4gICAgICB0aGlzLnBhcmFtcy5maWx0ZXJzID0gdGhpcy5wYXJhbXMuZmlsdGVycyArIFwiICYmIFwiICsgdGhpcy5maWVsZC5GaWx0ZXJzO1xyXG4gICAgfSBlbHNlIGlmICghdGhpcy5wYXJhbXMuZmlsdGVycyAmJiB0aGlzLmZpZWxkLkZpbHRlcnMpIHtcclxuICAgICAgdGhpcy5wYXJhbXMuZmlsdGVycyA9IHRoaXMuZmllbGQuRmlsdGVycztcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5maWVsZC5GaWx0ZXJzICYmIHRoaXMuZmllbGQuRmlsdGVycy5pbmRleE9mKFwiZ3JvdXAuXCIpICE9PSAtMSkge1xyXG4gICAgICBjb25zdCBmaWx0ZXJLZXlWYWxQYWlycyA9IHRoaXMuZmllbGQuRmlsdGVycy5zcGxpdChcIiBcIik7XHJcbiAgICAgIGNvbnN0IGdycFZhbHVlcyA9IGZpbHRlcktleVZhbFBhaXJzLmZpbHRlcihcclxuICAgICAgICAoZWxlbWVudCkgPT4gZWxlbWVudC50cmltKCkuaW5kZXhPZihcImdyb3VwLlwiKSAhPT0gLTFcclxuICAgICAgKTtcclxuXHJcbiAgICAgIGdycFZhbHVlcy5mb3JFYWNoKCh2YWwpID0+IHtcclxuICAgICAgICBjb25zdCBhY3R1YWxWYWwgPSBaQ29tcG9uZW50SGVscGVyLmdldEdyb3VwVmFsdWUodmFsLCB0aGlzLmdycCk7XHJcbiAgICAgICAgdGhpcy5wYXJhbXMuZmlsdGVycyA9IHRoaXMucGFyYW1zLmZpbHRlcnMucmVwbGFjZSh2YWwsIGFjdHVhbFZhbCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdmFsdWVDaGFuZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgaWYgKGV2ZW50Lmxlbmd0aCA8IDEpIHtcclxuICAgICAgdGhpcy5zY3JvbGxWaWV3Q2FyZHMuZGF0YSA9IHRoaXMucmVzcG9uc2VEYXRhLmRhdGE7XHJcbiAgICAgIHRoaXMuc2Nyb2xsVmlld0NhcmRzLnRvdGFsID0gdGhpcy5yZXNwb25zZURhdGEudG90YWw7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuc2Nyb2xsVmlld0NhcmRzLmRhdGEgPSB0aGlzLnJlc3BvbnNlRGF0YS5kYXRhLmZpbHRlcih4ID0+IGV2ZW50LmluY2x1ZGVzKHguV0ZTX1N0YXR1c05hbWUpKTtcclxuICAgIHRoaXMuc2Nyb2xsVmlld0NhcmRzLnRvdGFsID0gdGhpcy5yZXNwb25zZURhdGEuZGF0YS5maWx0ZXIoeCA9PiBldmVudC5pbmNsdWRlcyh4LldGU19TdGF0dXNOYW1lKSkubGVuZ3RoO1xyXG4gIH1cclxufVxyXG4iLCI8IS0tPGtlbmRvLW11bHRpc2VsZWN0IFtkYXRhXT1cImZpbHRlckl0ZW1zXCIgW3ZhbHVlXT1cInZhbHVlXCIgW3BsYWNlaG9sZGVyXT1cIidTdXJ2ZXkgU3RhdHVzJ1wiIFtmaWx0ZXJhYmxlXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cInZhbHVlQ2hhbmdlKCRldmVudClcIj48L2tlbmRvLW11bHRpc2VsZWN0PlxyXG4mbmJzcDstLT5cclxuPGRpdiBjbGFzcz1cInN1cnZleS1jYXJkLWxpc3RcIj5cclxuICA8ZGl2ICpuZ0Zvcj1cImxldCBjYXJkIG9mIHNjcm9sbFZpZXdDYXJkcy5kYXRhXCI+XHJcbiAgICA8IS0tPHNjcm9sbHZpZXctY2FyZCBbY2FyZF09XCJjYXJkXCI+PC9zY3JvbGx2aWV3LWNhcmQ+LS0+XHJcbiAgICA8a2VuZG8tY2FyZCBjbGFzcz1cImN1c3RvbS1jYXJkLWRyYWZ0XCIgKm5nSWY9XCJjYXJkLldGU19TdGF0dXNOYW1lID09ICdEcmFmdCdcIiBbd2lkdGhdPVwiJzI1MHB4J1wiPlxyXG4gICAgICA8a2VuZG8tY2FyZC1oZWFkZXIgY2xhc3M9XCJrLWhib3hcIj5cclxuICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgPGgxIGtlbmRvQ2FyZFRpdGxlPnt7IGNhcmQuU3VydmV5VGVtcGxhdGVOYW1lIH19PC9oMT5cclxuICAgICAgICAgIDxwIGtlbmRvQ2FyZFN1YnRpdGxlPlN1cnZleSBEb2MgTm86IHt7Y2FyZC5Eb2N1bWVudE5vfX08L3A+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwva2VuZG8tY2FyZC1oZWFkZXI+XHJcbiAgICAgIDxrZW5kby1jYXJkLWJvZHkgY2xhc3M9XCJjYXJkLWJvZHlcIj5cclxuICAgICAgICBNaWxsIE5hbWU6ICB7e2NhcmQuUGFydG5lck1pbGxOYW1lfX1cclxuICAgICAgICA8YnIgLz5cclxuICAgICAgICBTdXJ2ZXkgU3RhdHVzOiB7e2NhcmQuV0ZTX1N0YXR1c05hbWV9fVxyXG4gICAgICA8L2tlbmRvLWNhcmQtYm9keT5cclxuICAgICAgPGtlbmRvLWNhcmQtZm9vdGVyPlxyXG4gICAgICAgIFN1cnZleSBQcm9ncmVzc2lvbjpcclxuICAgICAgICA8a2VuZG8tcHJvZ3Jlc3NiYXIgc3R5bGU9XCJ3aWR0aDogMjEwcHg7IGJvcmRlci1yYWRpdXM6MTBweFwiIFt2YWx1ZV09XCJjYXJkLnZhbHVlXCIgW2xhYmVsXT1cImxhYmVsXCIgW3Byb2dyZXNzQ3NzU3R5bGVdPVwicHJvZ3Jlc3NTdHlsZXNcIj5cclxuICAgICAgICA8L2tlbmRvLXByb2dyZXNzYmFyPlxyXG5cclxuICAgICAgICA8a2VuZG8tY2FyZC1hY3Rpb25zIGNsYXNzPVwiay1oYm94LWFjdGlvbkJ0blwiIG9yaWVudGF0aW9uPVwiaG9yaXpvbnRhbFwiIFtsYXlvdXRdPVwiJ2VuZCdcIj5cclxuICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJrLWJ1dHRvbiBrLW5hdmlnYXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwic3RhcnQoY2FyZClcIj5cclxuICAgICAgICAgICAgPGRpdiBzdHlsZT1cImp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuXCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4+IENvbnRpbnVlICZuYnNwOzwvc3Bhbj5cclxuICAgICAgICAgICAgICA8ZmEtaWNvbiBbaWNvbl09XCJnZXRGb250QXdlc29tZSgncGxheScpXCI+PC9mYS1pY29uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwva2VuZG8tY2FyZC1hY3Rpb25zPlxyXG4gICAgICA8L2tlbmRvLWNhcmQtZm9vdGVyPlxyXG4gICAgPC9rZW5kby1jYXJkPlxyXG5cclxuICAgIDxrZW5kby1jYXJkIGNsYXNzPVwiY3VzdG9tLWNhcmQtc3VibWl0XCIgKm5nSWY9XCJjYXJkLldGU19TdGF0dXNOYW1lID09ICdTdWJtaXR0ZWQnXCIgW3dpZHRoXT1cIicyNTBweCdcIj5cclxuICAgICAgPGtlbmRvLWNhcmQtaGVhZGVyIGNsYXNzPVwiay1oYm94XCI+XHJcbiAgICAgICAgPGRpdj5cclxuICAgICAgICAgIDxoMSBrZW5kb0NhcmRUaXRsZT57eyBjYXJkLlN1cnZleVRlbXBsYXRlTmFtZSB9fTwvaDE+XHJcbiAgICAgICAgICA8cCBrZW5kb0NhcmRTdWJ0aXRsZT5TdXJ2ZXkgRG9jIE5vOiB7e2NhcmQuRG9jdW1lbnROb319PC9wPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2tlbmRvLWNhcmQtaGVhZGVyPlxyXG4gICAgICA8a2VuZG8tY2FyZC1ib2R5IGNsYXNzPVwiY2FyZC1ib2R5XCI+XHJcbiAgICAgICAgTWlsbCBOYW1lOiAge3tjYXJkLlBhcnRuZXJNaWxsTmFtZX19XHJcbiAgICAgICAgPGJyIC8+XHJcbiAgICAgICAgU3VydmV5IFN0YXR1czoge3tjYXJkLldGU19TdGF0dXNOYW1lfX1cclxuICAgICAgPC9rZW5kby1jYXJkLWJvZHk+XHJcbiAgICAgIDxrZW5kby1jYXJkLWZvb3Rlcj5cclxuICAgICAgICBTdXJ2ZXkgUHJvZ3Jlc3Npb246XHJcbiAgICAgICAgPGtlbmRvLXByb2dyZXNzYmFyIHN0eWxlPVwid2lkdGg6IDIxMHB4OyBib3JkZXItcmFkaXVzOjEwcHhcIiBbdmFsdWVdPVwiY2FyZC52YWx1ZVwiIFtsYWJlbF09XCJsYWJlbFwiIFtwcm9ncmVzc0Nzc1N0eWxlXT1cInByb2dyZXNzU3R5bGVzXCI+XHJcbiAgICAgICAgPC9rZW5kby1wcm9ncmVzc2Jhcj5cclxuICAgICAgICA8a2VuZG8tY2FyZC1hY3Rpb25zIGNsYXNzPVwiay1oYm94LWFjdGlvbkJ0blwiIG9yaWVudGF0aW9uPVwiaG9yaXpvbnRhbFwiIFtsYXlvdXRdPVwiJ2VuZCdcIj5cclxuICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJrLWJ1dHRvbiBrLW5hdmlnYXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwic3RhcnQoY2FyZClcIj5cclxuICAgICAgICAgICAgPGRpdiBzdHlsZT1cImp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuXCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4+IFZpZXcgJm5ic3A7PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDxmYS1pY29uIFtpY29uXT1cImdldEZvbnRBd2Vzb21lKCdmaWxlLWFsdCcpXCI+PC9mYS1pY29uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwva2VuZG8tY2FyZC1hY3Rpb25zPlxyXG4gICAgICA8L2tlbmRvLWNhcmQtZm9vdGVyPlxyXG4gICAgPC9rZW5kby1jYXJkPlxyXG5cclxuICAgIDxrZW5kby1jYXJkIGNsYXNzPVwiY3VzdG9tLWNhcmQtbmV3XCIgKm5nSWY9XCJjYXJkLldGU19TdGF0dXNOYW1lID09ICdOZXcnXCIgW3dpZHRoXT1cIicyNTBweCdcIj5cclxuICAgICAgPGtlbmRvLWNhcmQtaGVhZGVyIGNsYXNzPVwiay1oYm94XCI+XHJcbiAgICAgICAgPGRpdj5cclxuICAgICAgICAgIDxoMSBrZW5kb0NhcmRUaXRsZT57eyBjYXJkLlN1cnZleVRlbXBsYXRlTmFtZSB9fTwvaDE+XHJcbiAgICAgICAgICA8cCBrZW5kb0NhcmRTdWJ0aXRsZT57e2NhcmQuRG9jdW1lbnROb319PC9wPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2tlbmRvLWNhcmQtaGVhZGVyPlxyXG4gICAgICA8a2VuZG8tY2FyZC1ib2R5IGNsYXNzPVwiY2FyZC1ib2R5XCI+XHJcbiAgICAgICAgTWlsbCBOYW1lOiAge3tjYXJkLlBhcnRuZXJNaWxsTmFtZX19XHJcbiAgICAgICAgPGJyIC8+XHJcbiAgICAgICAgU3VydmV5IFN0YXR1czoge3tjYXJkLldGU19TdGF0dXNOYW1lfX1cclxuICAgICAgPC9rZW5kby1jYXJkLWJvZHk+XHJcbiAgICAgIDxrZW5kby1jYXJkLWZvb3Rlcj5cclxuICAgICAgICBTdXJ2ZXkgUHJvZ3Jlc3Npb246IFxyXG4gICAgICAgIDxrZW5kby1wcm9ncmVzc2JhciBzdHlsZT1cIndpZHRoOiAyMTBweDsgYm9yZGVyLXJhZGl1czoxMHB4XCIgW3ZhbHVlXT1cImNhcmQudmFsdWVcIiBbbGFiZWxdPVwibGFiZWxcIiBbcHJvZ3Jlc3NDc3NTdHlsZV09XCJwcm9ncmVzc1N0eWxlc1wiPlxyXG4gICAgICAgIDwva2VuZG8tcHJvZ3Jlc3NiYXI+XHJcbiAgICAgICAgPGtlbmRvLWNhcmQtYWN0aW9ucyBjbGFzcz1cImstaGJveC1hY3Rpb25CdG5cIiBvcmllbnRhdGlvbj1cImhvcml6b250YWxcIiBbbGF5b3V0XT1cIidlbmQnXCI+XHJcbiAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiay1idXR0b24gay1uYXZpZ2F0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInN0YXJ0KGNhcmQpXCI+XHJcbiAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlblwiPlxyXG4gICAgICAgICAgICAgIDxzcGFuPiBTdGFydCAmbmJzcDs8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPGZhLWljb24gW2ljb25dPVwiZ2V0Rm9udEF3ZXNvbWUoJ3BsYXknKVwiPjwvZmEtaWNvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2tlbmRvLWNhcmQtYWN0aW9ucz5cclxuICAgICAgPC9rZW5kby1jYXJkLWZvb3Rlcj5cclxuICAgIDwva2VuZG8tY2FyZD5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/********** Angular **********/
|
|
2
|
+
import { Component, Input } from "@angular/core";
|
|
3
|
+
/********** Ionic **********/
|
|
4
|
+
/********** Plugin **********/
|
|
5
|
+
/********** Component & Service **********/
|
|
6
|
+
import { ZComponentHelper, ZComponentProperties } from 'mmhglobal-zcore';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "@ionic/angular";
|
|
9
|
+
import * as i2 from "@angular/common";
|
|
10
|
+
import * as i3 from "@angular/forms";
|
|
11
|
+
export class ZlabelComponent {
|
|
12
|
+
constructor() {
|
|
13
|
+
this.componentProperties = new ZComponentProperties();
|
|
14
|
+
this.labelText = "";
|
|
15
|
+
this.setVisible = (status) => {
|
|
16
|
+
this.componentProperties.isVisible = status;
|
|
17
|
+
this.data.Visible = status;
|
|
18
|
+
};
|
|
19
|
+
this.setData = (data) => {
|
|
20
|
+
this.labelText = data;
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
ngOnInit() {
|
|
24
|
+
ZComponentHelper.setComponentProperties(this);
|
|
25
|
+
ZComponentHelper.registerComponent(this);
|
|
26
|
+
this.labelText = ZComponentHelper.getGroupValue(this.data.Label.toString(), this.group);
|
|
27
|
+
}
|
|
28
|
+
getReadOnlyValue() {
|
|
29
|
+
const readOnlyValue = ZComponentHelper.getGroupEvalValue.call(this, this.data.ReadOnly);
|
|
30
|
+
if (typeof readOnlyValue === 'function') {
|
|
31
|
+
return readOnlyValue();
|
|
32
|
+
}
|
|
33
|
+
return readOnlyValue;
|
|
34
|
+
}
|
|
35
|
+
isVisible() {
|
|
36
|
+
if (this.componentProperties.isVisible === null) {
|
|
37
|
+
return ZComponentHelper.isVisible.call(this, this.data);
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
return this.componentProperties.isVisible;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
getIon_InvalidClass(form, data) {
|
|
44
|
+
return ZComponentHelper.getIon_InvalidClass(form, data);
|
|
45
|
+
}
|
|
46
|
+
getClass(form, data) {
|
|
47
|
+
return `${ZComponentHelper.getIon_InvalidClass(form, data)} ${data.DivClass}`;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
ZlabelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.4", ngImport: i0, type: ZlabelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
51
|
+
ZlabelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.4", type: ZlabelComponent, selector: "app-zlabel", inputs: { data: "data", group: "group", form: "form" }, ngImport: i0, template: "<ion-item [formGroup]=\"form\" *ngIf=\"componentProperties.isVisible\" [ngClass]=\"getClass(form, data)\">\r\n <div class=\"ion-row\" style=\"justify-content: space-between; width: 100%\">\r\n <span style=\"flex: 1;\">\r\n <ion-label class=\"ion-text-wrap label\" Position=\"Fixed\" [color]=\"data.Color\">{{labelText}}</ion-label>\r\n </span>\r\n </div>\r\n</ion-item>\r\n", styles: [".subtitle{font-weight:700;text-decoration:underline}.subtitle .label,.mediumFont .label{font-size:15px}.label{font-size:12px;white-space:pre-wrap!important}.boldFont .label{font-weight:700}.underlineFont .label{text-decoration:underline}\n"], components: [{ type: i1.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { type: i1.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
|
|
52
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.4", ngImport: i0, type: ZlabelComponent, decorators: [{
|
|
53
|
+
type: Component,
|
|
54
|
+
args: [{ selector: 'app-zlabel', template: "<ion-item [formGroup]=\"form\" *ngIf=\"componentProperties.isVisible\" [ngClass]=\"getClass(form, data)\">\r\n <div class=\"ion-row\" style=\"justify-content: space-between; width: 100%\">\r\n <span style=\"flex: 1;\">\r\n <ion-label class=\"ion-text-wrap label\" Position=\"Fixed\" [color]=\"data.Color\">{{labelText}}</ion-label>\r\n </span>\r\n </div>\r\n</ion-item>\r\n", styles: [".subtitle{font-weight:700;text-decoration:underline}.subtitle .label,.mediumFont .label{font-size:15px}.label{font-size:12px;white-space:pre-wrap!important}.boldFont .label{font-weight:700}.underlineFont .label{text-decoration:underline}\n"] }]
|
|
55
|
+
}], ctorParameters: function () { return []; }, propDecorators: { data: [{
|
|
56
|
+
type: Input
|
|
57
|
+
}], group: [{
|
|
58
|
+
type: Input
|
|
59
|
+
}], form: [{
|
|
60
|
+
type: Input
|
|
61
|
+
}] } });
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiemxhYmVsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21taGdsb2JhbC1keW5hbWljZm9ybS9zcmMvbGliL3psYWJlbC96bGFiZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvemxhYmVsL3psYWJlbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQkFBK0I7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHekQsNkJBQTZCO0FBRTdCLDhCQUE4QjtBQUU5QiwyQ0FBMkM7QUFDM0MsT0FBTyxFQUNPLGdCQUFnQixFQUNaLG9CQUFvQixFQUNyQyxNQUFNLGlCQUFpQixDQUFDOzs7OztBQVF6QixNQUFNLE9BQU8sZUFBZTtJQVMxQjtRQUpBLHdCQUFtQixHQUFHLElBQUksb0JBQW9CLEVBQUUsQ0FBQztRQUVqRCxjQUFTLEdBQUcsRUFBRSxDQUFDO1FBMEJSLGVBQVUsR0FBRyxDQUFDLE1BQWUsRUFBRSxFQUFFO1lBQ3RDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDO1lBQzVDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUM3QixDQUFDLENBQUE7UUFVTSxZQUFPLEdBQUcsQ0FBQyxJQUFTLEVBQUUsRUFBRTtZQUM3QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN4QixDQUFDLENBQUE7SUF2Q2UsQ0FBQztJQUVqQixRQUFRO1FBQ04sZ0JBQWdCLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUMsZ0JBQWdCLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLFNBQVMsR0FBRyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFGLENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxNQUFNLGFBQWEsR0FBRyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDeEYsSUFBSSxPQUFPLGFBQWEsS0FBSyxVQUFVLEVBQUU7WUFDdkMsT0FBTyxhQUFhLEVBQUUsQ0FBQztTQUN4QjtRQUNELE9BQU8sYUFBYSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxTQUFTO1FBQ1AsSUFBSSxJQUFJLENBQUMsbUJBQW1CLENBQUMsU0FBUyxLQUFLLElBQUksRUFBRTtZQUMvQyxPQUFPLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN6RDthQUFNO1lBQ0wsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDO1NBQzNDO0lBQ0gsQ0FBQztJQU9ELG1CQUFtQixDQUFDLElBQWUsRUFBRSxJQUFZO1FBQy9DLE9BQU8sZ0JBQWdCLENBQUMsbUJBQW1CLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCxRQUFRLENBQUMsSUFBZSxFQUFFLElBQVk7UUFDcEMsT0FBTyxHQUFHLGdCQUFnQixDQUFDLG1CQUFtQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDaEYsQ0FBQzs7NEdBNUNVLGVBQWU7Z0dBQWYsZUFBZSwwR0NwQjVCLG9ZQU9BOzJGRGFhLGVBQWU7a0JBTDNCLFNBQVM7K0JBQ0UsWUFBWTswRUFLYixJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qKioqKioqKioqIEFuZ3VsYXIgKioqKioqKioqKi9cclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuLyoqKioqKioqKiogSW9uaWMgKioqKioqKioqKi9cclxuXHJcbi8qKioqKioqKioqIFBsdWdpbiAqKioqKioqKioqL1xyXG5cclxuLyoqKioqKioqKiogQ29tcG9uZW50ICYgU2VydmljZSAqKioqKioqKioqL1xyXG5pbXBvcnQgeyBcclxuICBaQ29tcG9uZW50LCBaQ29tcG9uZW50SGVscGVyLFxyXG4gIFpGaWVsZCwgWkdyb3VwLCBaQ29tcG9uZW50UHJvcGVydGllcyBcclxufSBmcm9tICdtbWhnbG9iYWwtemNvcmUnO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLXpsYWJlbCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3psYWJlbC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vemxhYmVsLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBabGFiZWxDb21wb25lbnQgaW1wbGVtZW50cyBaQ29tcG9uZW50LCBPbkluaXQge1xyXG4gIEBJbnB1dCgpIGRhdGE6IFpGaWVsZDtcclxuICBASW5wdXQoKSBncm91cDogWkdyb3VwO1xyXG4gIEBJbnB1dCgpIGZvcm06IEZvcm1Hcm91cDtcclxuXHJcbiAgY29tcG9uZW50UHJvcGVydGllcyA9IG5ldyBaQ29tcG9uZW50UHJvcGVydGllcygpO1xyXG5cclxuICBsYWJlbFRleHQgPSBcIlwiO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIFpDb21wb25lbnRIZWxwZXIuc2V0Q29tcG9uZW50UHJvcGVydGllcyh0aGlzKTtcclxuICAgIFpDb21wb25lbnRIZWxwZXIucmVnaXN0ZXJDb21wb25lbnQodGhpcyk7XHJcbiAgICB0aGlzLmxhYmVsVGV4dCA9IFpDb21wb25lbnRIZWxwZXIuZ2V0R3JvdXBWYWx1ZSh0aGlzLmRhdGEuTGFiZWwudG9TdHJpbmcoKSwgdGhpcy5ncm91cCk7XHJcbiAgfVxyXG5cclxuICBnZXRSZWFkT25seVZhbHVlKCkge1xyXG4gICAgY29uc3QgcmVhZE9ubHlWYWx1ZSA9IFpDb21wb25lbnRIZWxwZXIuZ2V0R3JvdXBFdmFsVmFsdWUuY2FsbCh0aGlzLCB0aGlzLmRhdGEuUmVhZE9ubHkpO1xyXG4gICAgaWYgKHR5cGVvZiByZWFkT25seVZhbHVlID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgIHJldHVybiByZWFkT25seVZhbHVlKCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVhZE9ubHlWYWx1ZTtcclxuICB9XHJcblxyXG4gIGlzVmlzaWJsZSgpIHtcclxuICAgIGlmICh0aGlzLmNvbXBvbmVudFByb3BlcnRpZXMuaXNWaXNpYmxlID09PSBudWxsKSB7XHJcbiAgICAgIHJldHVybiBaQ29tcG9uZW50SGVscGVyLmlzVmlzaWJsZS5jYWxsKHRoaXMsIHRoaXMuZGF0YSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gdGhpcy5jb21wb25lbnRQcm9wZXJ0aWVzLmlzVmlzaWJsZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRWaXNpYmxlID0gKHN0YXR1czogYm9vbGVhbikgPT4ge1xyXG4gICAgdGhpcy5jb21wb25lbnRQcm9wZXJ0aWVzLmlzVmlzaWJsZSA9IHN0YXR1cztcclxuICAgIHRoaXMuZGF0YS5WaXNpYmxlID0gc3RhdHVzO1xyXG4gIH1cclxuXHJcbiAgZ2V0SW9uX0ludmFsaWRDbGFzcyhmb3JtOiBGb3JtR3JvdXAsIGRhdGE6IFpGaWVsZCkge1xyXG4gICAgcmV0dXJuIFpDb21wb25lbnRIZWxwZXIuZ2V0SW9uX0ludmFsaWRDbGFzcyhmb3JtLCBkYXRhKTtcclxuICB9XHJcblxyXG4gIGdldENsYXNzKGZvcm06IEZvcm1Hcm91cCwgZGF0YTogWkZpZWxkKSB7XHJcbiAgICByZXR1cm4gYCR7WkNvbXBvbmVudEhlbHBlci5nZXRJb25fSW52YWxpZENsYXNzKGZvcm0sIGRhdGEpfSAke2RhdGEuRGl2Q2xhc3N9YDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXREYXRhID0gKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgdGhpcy5sYWJlbFRleHQgPSBkYXRhO1xyXG4gIH1cclxufSIsIjxpb24taXRlbSBbZm9ybUdyb3VwXT1cImZvcm1cIiAqbmdJZj1cImNvbXBvbmVudFByb3BlcnRpZXMuaXNWaXNpYmxlXCIgW25nQ2xhc3NdPVwiZ2V0Q2xhc3MoZm9ybSwgZGF0YSlcIj5cclxuICA8ZGl2IGNsYXNzPVwiaW9uLXJvd1wiIHN0eWxlPVwianVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyB3aWR0aDogMTAwJVwiPlxyXG4gICAgPHNwYW4gc3R5bGU9XCJmbGV4OiAxO1wiPlxyXG4gICAgICA8aW9uLWxhYmVsIGNsYXNzPVwiaW9uLXRleHQtd3JhcCBsYWJlbFwiIFBvc2l0aW9uPVwiRml4ZWRcIiBbY29sb3JdPVwiZGF0YS5Db2xvclwiPnt7bGFiZWxUZXh0fX08L2lvbi1sYWJlbD5cclxuICAgIDwvc3Bhbj5cclxuICA8L2Rpdj5cclxuPC9pb24taXRlbT5cclxuIl19
|