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
|
@@ -1,167 +0,0 @@
|
|
|
1
|
-
/********** Angular **********/
|
|
2
|
-
import { Injectable } from "@angular/core";
|
|
3
|
-
/********** Service & Directive **********/
|
|
4
|
-
import { ZComponentHelper } from 'mmhglobal-zcore';
|
|
5
|
-
// import { ZGridBindingDirective } from "../zgrid/zgrid.binding.directive";
|
|
6
|
-
/********** zComponent **********/
|
|
7
|
-
import { ZBulletComponent } from "../zbullet/zbullet.component";
|
|
8
|
-
import { ZbuttonsComponent } from "../zbuttons/zbuttons.component";
|
|
9
|
-
import { ZcardComponent } from "../zcard/zcard.component";
|
|
10
|
-
import { ZchartComponent } from '../zchart/zchart.component';
|
|
11
|
-
import { ZcheckboxComponent } from '../zcheckbox/zcheckbox.component';
|
|
12
|
-
import { ZChipComponent } from "../zchip/zchip.component";
|
|
13
|
-
import { ZcodeeditorComponent } from '../zcodeeditor/zcodeeditor.component';
|
|
14
|
-
import { ZdatetimeComponent } from '../zdatetime/zdatetime.component';
|
|
15
|
-
import { ZdivComponent } from '../zdiv/zdiv.component';
|
|
16
|
-
import { ZgaugeComponent } from '../zgauge/zgauge.component';
|
|
17
|
-
import { ZgridComponent } from '../zgrid/zgrid.component';
|
|
18
|
-
import { ZimgComponent } from '../zimg/zimg.component';
|
|
19
|
-
import { ZkcardComponent } from '../zkcard/zkcard.component';
|
|
20
|
-
import { ZlabelComponent } from '../zlabel/zlabel.component';
|
|
21
|
-
import { ZmfbComponent } from '../zmfb/zmfb.component';
|
|
22
|
-
import { ZnumericComponent } from '../znumeric/znumeric.component';
|
|
23
|
-
import { ZpostselectinputComponent } from '../zpostselectinput/zpostselectinput.component';
|
|
24
|
-
import { ZquerybuilderComponent } from '../zquerybuilder/zquerybuilder.component';
|
|
25
|
-
import { ZreportComponent } from '../zreport/zreport.component';
|
|
26
|
-
import { ZschedulerComponent } from '../zscheduler/zscheduler.component';
|
|
27
|
-
import { ZselectmultipleComponent } from "../zselectmultiple/zselectmultiple.component";
|
|
28
|
-
import { ZtabComponent } from "../ztab/ztab.component";
|
|
29
|
-
import { ZtextComponent } from "../ztext/ztext.component";
|
|
30
|
-
import { ZtextareaComponent } from '../ztextarea/ztextarea.component';
|
|
31
|
-
import { ZtexteditorComponent } from '../ztexteditor/ztexteditor.component';
|
|
32
|
-
import { ZtreeComponent } from '../ztree/ztree.component';
|
|
33
|
-
import { ZtreelistComponent } from '../ztreelist/ztreelist.component';
|
|
34
|
-
import { ZtrendcardComponent } from '../ztrendcard/ztrendcard.component';
|
|
35
|
-
import { ZudfComponent } from "../zudf/zudf.component";
|
|
36
|
-
import { ZunknownComponent } from "../zunknown/zunknown.component";
|
|
37
|
-
import { ZuploadComponent } from '../zupload/zupload.component';
|
|
38
|
-
import { ZworkflowbuttonsComponent } from "../zworkflowbuttons/zworkflowbuttons.component";
|
|
39
|
-
import * as i0 from "@angular/core";
|
|
40
|
-
// import { ZComponentServiceModule } from './zcomponent.service.module';
|
|
41
|
-
export class ZComponentService {
|
|
42
|
-
constructor() { }
|
|
43
|
-
mapByName(name) {
|
|
44
|
-
const _name = name.toLocaleLowerCase();
|
|
45
|
-
const data = {
|
|
46
|
-
zbullet: ZBulletComponent,
|
|
47
|
-
zbuttons: ZbuttonsComponent,
|
|
48
|
-
zcard: ZcardComponent,
|
|
49
|
-
zchart: ZchartComponent,
|
|
50
|
-
checkbox: ZcheckboxComponent,
|
|
51
|
-
zchip: ZChipComponent,
|
|
52
|
-
textareajson: ZcodeeditorComponent,
|
|
53
|
-
textareahtml: ZcodeeditorComponent,
|
|
54
|
-
zdate: ZdatetimeComponent,
|
|
55
|
-
zdatetime: ZdatetimeComponent,
|
|
56
|
-
zshortdate: ZdatetimeComponent,
|
|
57
|
-
zuidatetime: ZdatetimeComponent,
|
|
58
|
-
zuitime: ZdatetimeComponent,
|
|
59
|
-
zdiv: ZdivComponent,
|
|
60
|
-
zgauge: ZgaugeComponent,
|
|
61
|
-
zgrid: ZgridComponent,
|
|
62
|
-
zimg: ZimgComponent,
|
|
63
|
-
zkcard: ZkcardComponent,
|
|
64
|
-
zlabel: ZlabelComponent,
|
|
65
|
-
zmfb: ZmfbComponent,
|
|
66
|
-
znumeric: ZnumericComponent,
|
|
67
|
-
post_select_input: ZpostselectinputComponent,
|
|
68
|
-
pre_select_input: ZpostselectinputComponent,
|
|
69
|
-
zphone_countrycode: ZpostselectinputComponent,
|
|
70
|
-
zquerybuilder: ZquerybuilderComponent,
|
|
71
|
-
zreport: ZreportComponent,
|
|
72
|
-
zcalendar: ZschedulerComponent,
|
|
73
|
-
zuiselectmultiple: ZselectmultipleComponent,
|
|
74
|
-
zuiselectmultiple_button: ZselectmultipleComponent,
|
|
75
|
-
select: ZselectmultipleComponent,
|
|
76
|
-
ztab: ZtabComponent,
|
|
77
|
-
number: ZtextComponent,
|
|
78
|
-
numeric: ZtextComponent,
|
|
79
|
-
date: ZtextComponent,
|
|
80
|
-
email: ZtextComponent,
|
|
81
|
-
password: ZtextComponent,
|
|
82
|
-
search: ZtextComponent,
|
|
83
|
-
tel: ZtextComponent,
|
|
84
|
-
text: ZtextComponent,
|
|
85
|
-
url: ZtextComponent,
|
|
86
|
-
currency: ZtextComponent,
|
|
87
|
-
textarea: ZtextareaComponent,
|
|
88
|
-
ztexteditor: ZtexteditorComponent,
|
|
89
|
-
ztree: ZtreeComponent,
|
|
90
|
-
ktree_list: ZtreelistComponent,
|
|
91
|
-
ztrendcard: ZtrendcardComponent,
|
|
92
|
-
unknown: ZunknownComponent,
|
|
93
|
-
zudf: ZudfComponent,
|
|
94
|
-
zupload: ZuploadComponent,
|
|
95
|
-
zworkflowbuttons: ZworkflowbuttonsComponent
|
|
96
|
-
// kdate_rangepicker: ZdaterangeComponent
|
|
97
|
-
};
|
|
98
|
-
return data[_name];
|
|
99
|
-
}
|
|
100
|
-
isSkipComponentType(componentType) {
|
|
101
|
-
return ZComponentHelper.isSkipComponentType(componentType);
|
|
102
|
-
}
|
|
103
|
-
loadComponent(componentFactoryResolver, fieldElement, field, group, form) {
|
|
104
|
-
// if(field.Name === 'FormDetailContactGrid') {
|
|
105
|
-
// debugger;
|
|
106
|
-
// }
|
|
107
|
-
if (this.isSkipComponentType(field.Type)) {
|
|
108
|
-
return;
|
|
109
|
-
}
|
|
110
|
-
let componentFactory;
|
|
111
|
-
const componentName = this.mapByName(field.Type);
|
|
112
|
-
if (componentName) {
|
|
113
|
-
componentFactory = componentFactoryResolver.resolveComponentFactory(componentName);
|
|
114
|
-
}
|
|
115
|
-
else {
|
|
116
|
-
componentFactory = componentFactoryResolver.resolveComponentFactory(this.mapByName("unknown"));
|
|
117
|
-
}
|
|
118
|
-
const viewContainerRef = fieldElement.viewContainerRef;
|
|
119
|
-
viewContainerRef.clear();
|
|
120
|
-
if (!form) {
|
|
121
|
-
console.warn('FormGroup is empty!');
|
|
122
|
-
debugger;
|
|
123
|
-
}
|
|
124
|
-
const componentRef = viewContainerRef.createComponent(componentFactory);
|
|
125
|
-
componentRef.instance.data = field;
|
|
126
|
-
componentRef.instance.group = group;
|
|
127
|
-
componentRef.instance.form = form;
|
|
128
|
-
// (componentRef.instance as ZComponent).outputEvent.subscribe((event: any) => group.outputEvent(event));
|
|
129
|
-
}
|
|
130
|
-
appendComponentToDynamicForm(componentFactoryResolver, injector, appRef, field, group, containerId) {
|
|
131
|
-
if (this.isSkipComponentType(field.Type)) {
|
|
132
|
-
return;
|
|
133
|
-
}
|
|
134
|
-
let componentRef;
|
|
135
|
-
const componentName = this.mapByName(field.Type);
|
|
136
|
-
// 1. Create a component reference from the component
|
|
137
|
-
if (componentName) {
|
|
138
|
-
componentRef = componentFactoryResolver
|
|
139
|
-
.resolveComponentFactory(componentName)
|
|
140
|
-
.create(injector);
|
|
141
|
-
}
|
|
142
|
-
else {
|
|
143
|
-
componentRef = componentFactoryResolver
|
|
144
|
-
.resolveComponentFactory(this.mapByName("unknown"))
|
|
145
|
-
.create(injector);
|
|
146
|
-
}
|
|
147
|
-
// 2. Attach component to the appRef so that it's inside the ng component tree
|
|
148
|
-
appRef.attachView(componentRef.hostView);
|
|
149
|
-
// 3. Get DOM element from component
|
|
150
|
-
const domElem = componentRef.hostView
|
|
151
|
-
.rootNodes[0];
|
|
152
|
-
// 4. Append DOM element to the body
|
|
153
|
-
const dynamicFormHost = document.querySelector("#" + containerId);
|
|
154
|
-
dynamicFormHost.appendChild(domElem);
|
|
155
|
-
componentRef.instance.data = field;
|
|
156
|
-
componentRef.instance.group = group;
|
|
157
|
-
return componentRef;
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
ZComponentService.ɵprov = i0.ɵɵdefineInjectable({ factory: function ZComponentService_Factory() { return new ZComponentService(); }, token: ZComponentService, providedIn: "root" });
|
|
161
|
-
ZComponentService.decorators = [
|
|
162
|
-
{ type: Injectable, args: [{
|
|
163
|
-
providedIn: 'root'
|
|
164
|
-
},] }
|
|
165
|
-
];
|
|
166
|
-
ZComponentService.ctorParameters = () => [];
|
|
167
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiemNvbXBvbmVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvc2VydmljZXMvemNvbXBvbmVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtCQUErQjtBQUMvQixPQUFPLEVBQUUsVUFBVSxFQUE2QyxNQUFNLGVBQWUsQ0FBQztBQUd0RiwyQ0FBMkM7QUFDM0MsT0FBTyxFQUFjLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0QsNEVBQTRFO0FBRTVFLGtDQUFrQztBQUNsQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8s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UUFBUSxDQUFDLENBQUM7UUFFekMsb0NBQW9DO1FBQ3BDLE1BQU0sT0FBTyxHQUFJLFlBQVksQ0FBQyxRQUFpQzthQUM1RCxTQUFTLENBQUMsQ0FBQyxDQUFnQixDQUFDO1FBRS9CLG9DQUFvQztRQUNwQyxNQUFNLGVBQWUsR0FBUSxRQUFRLENBQUMsYUFBYSxDQUFDLEdBQUcsR0FBRyxXQUFXLENBQUMsQ0FBQztRQUN2RSxlQUFlLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXBDLFlBQVksQ0FBQyxRQUF1QixDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7UUFDbEQsWUFBWSxDQUFDLFFBQXVCLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNwRCxPQUFPLFlBQVksQ0FBQztJQUN0QixDQUFDOzs7O1lBckpGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKioqKioqKioqIEFuZ3VsYXIgKioqKioqKioqKi9cclxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBFbWJlZGRlZFZpZXdSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG4vKioqKioqKioqKiBTZXJ2aWNlICYgRGlyZWN0aXZlICoqKioqKioqKiovXHJcbmltcG9ydCB7IFpDb21wb25lbnQsIFpDb21wb25lbnRIZWxwZXIgfSBmcm9tICdtbWhnbG9iYWwtemNvcmUnO1xyXG5pbXBvcnQgeyBGaWVsZEVsZW1lbnREaXJlY3RpdmUgfSBmcm9tICcuLi9kaXJlY3RpdmVzL2ZpZWxkZWxlbWVudC5kaXJlY3RpdmUnO1xyXG4vLyBpbXBvcnQgeyBaR3JpZEJpbmRpbmdEaXJlY3RpdmUgfSBmcm9tIFwiLi4vemdyaWQvemdyaWQuYmluZGluZy5kaXJlY3RpdmVcIjtcclxuXHJcbi8qKioqKioqKioqIHpDb21wb25lbnQgKioqKioqKioqKi9cclxuaW1wb3J0IHsgWkJ1bGxldENvbXBvbmVudCB9IGZyb20gXCIuLi96YnVsbGV0L3pidWxsZXQuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFpidXR0b25zQ29tcG9uZW50IH0gZnJvbSBcIi4uL3pidXR0b25zL3pidXR0b25zLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBaY2FyZENvbXBvbmVudCB9IGZyb20gXCIuLi96Y2FyZC96Y2FyZC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgWmNoYXJ0Q29tcG9uZW50IH0gZnJvbSAnLi4vemNoYXJ0L3pjaGFydC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBaY2hlY2tib3hDb21wb25lbnQgfSBmcm9tICcuLi96Y2hlY2tib3gvemNoZWNrYm94LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFpDaGlwQ29tcG9uZW50IH0gZnJvbSBcIi4uL3pjaGlwL3pjaGlwLmNvbXBvbmVudFwiOyBcclxuaW1wb3J0IHsgWmNvZGVlZGl0b3JDb21wb25lbnQgfSBmcm9tICcuLi96Y29kZWVkaXRvci96Y29kZWVkaXRvci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBaZGF0ZXRpbWVDb21wb25lbnQgfSBmcm9tICcuLi96ZGF0ZXRpbWUvemRhdGV0aW1lLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFpkaXZDb21wb25lbnQgfSBmcm9tICcuLi96ZGl2L3pkaXYuY29tcG9uZW50JztcclxuaW1wb3J0IHsgWmdhdWdlQ29tcG9uZW50IH0gZnJvbSAnLi4vemdhdWdlL3pnYXVnZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBaZ3JpZENvbXBvbmVudCB9IGZyb20gJy4uL3pncmlkL3pncmlkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFppbWdDb21wb25lbnQgfSBmcm9tICcuLi96aW1nL3ppbWcuY29tcG9uZW50JztcclxuaW1wb3J0IHsgWmtjYXJkQ29tcG9uZW50IH0gZnJvbSAnLi4vemtjYXJkL3prY2FyZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBabGFiZWxDb21wb25lbnQgfSBmcm9tICcuLi96bGFiZWwvemxhYmVsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFptZmJDb21wb25lbnQgfSBmcm9tICcuLi96bWZiL3ptZmIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgWm51bWVyaWNDb21wb25lbnQgfSBmcm9tICcuLi96bnVtZXJpYy96bnVtZXJpYy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBacG9zdHNlbGVjdGlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4venBvc3RzZWxlY3RpbnB1dC96cG9zdHNlbGVjdGlucHV0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFpxdWVyeWJ1aWxkZXJDb21wb25lbnQgfSBmcm9tICcuLi96cXVlcnlidWlsZGVyL3pxdWVyeWJ1aWxkZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgWnJlcG9ydENvbXBvbmVudCB9IGZyb20gJy4uL3pyZXBvcnQvenJlcG9ydC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBac2NoZWR1bGVyQ29tcG9uZW50IH0gZnJvbSAnLi4venNjaGVkdWxlci96c2NoZWR1bGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFpzZWxlY3RtdWx0aXBsZUNvbXBvbmVudCB9IGZyb20gXCIuLi96c2VsZWN0bXVsdGlwbGUvenNlbGVjdG11bHRpcGxlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBadGFiQ29tcG9uZW50IH0gZnJvbSBcIi4uL3p0YWIvenRhYi5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgWnRleHRDb21wb25lbnQgfSBmcm9tIFwiLi4venRleHQvenRleHQuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFp0ZXh0YXJlYUNvbXBvbmVudCB9IGZyb20gJy4uL3p0ZXh0YXJlYS96dGV4dGFyZWEuY29tcG9uZW50JztcclxuaW1wb3J0IHsgWnRleHRlZGl0b3JDb21wb25lbnQgfSBmcm9tICcuLi96dGV4dGVkaXRvci96dGV4dGVkaXRvci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBadHJlZUNvbXBvbmVudCB9IGZyb20gJy4uL3p0cmVlL3p0cmVlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFp0cmVlbGlzdENvbXBvbmVudCB9IGZyb20gJy4uL3p0cmVlbGlzdC96dHJlZWxpc3QuY29tcG9uZW50JztcclxuaW1wb3J0IHsgWnRyZW5kY2FyZENvbXBvbmVudCB9IGZyb20gJy4uL3p0cmVuZGNhcmQvenRyZW5kY2FyZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBadWRmQ29tcG9uZW50IH0gZnJvbSBcIi4uL3p1ZGYvenVkZi5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgWnVua25vd25Db21wb25lbnQgfSBmcm9tIFwiLi4venVua25vd24venVua25vd24uY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFp1cGxvYWRDb21wb25lbnQgfSBmcm9tICcuLi96dXBsb2FkL3p1cGxvYWQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgWndvcmtmbG93YnV0dG9uc0NvbXBvbmVudCB9IGZyb20gXCIuLi96d29ya2Zsb3didXR0b25zL3p3b3JrZmxvd2J1dHRvbnMuY29tcG9uZW50XCI7XHJcbi8vIGltcG9ydCB7IFpDb21wb25lbnRTZXJ2aWNlTW9kdWxlIH0gZnJvbSAnLi96Y29tcG9uZW50LnNlcnZpY2UubW9kdWxlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFpDb21wb25lbnRTZXJ2aWNlIHtcclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICBtYXBCeU5hbWUobmFtZTogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBfbmFtZSA9IG5hbWUudG9Mb2NhbGVMb3dlckNhc2UoKTtcclxuXHJcbiAgICBjb25zdCBkYXRhID0ge1xyXG4gICAgICB6YnVsbGV0OiBaQnVsbGV0Q29tcG9uZW50LFxyXG4gICAgICB6YnV0dG9uczogWmJ1dHRvbnNDb21wb25lbnQsXHJcbiAgICAgIHpjYXJkOiBaY2FyZENvbXBvbmVudCxcclxuICAgICAgemNoYXJ0OiBaY2hhcnRDb21wb25lbnQsXHJcbiAgICAgIGNoZWNrYm94OiBaY2hlY2tib3hDb21wb25lbnQsXHJcbiAgICAgIHpjaGlwOiBaQ2hpcENvbXBvbmVudCxcclxuICAgICAgdGV4dGFyZWFqc29uOiBaY29kZWVkaXRvckNvbXBvbmVudCxcclxuICAgICAgdGV4dGFyZWFodG1sOiBaY29kZWVkaXRvckNvbXBvbmVudCxcclxuICAgICAgemRhdGU6IFpkYXRldGltZUNvbXBvbmVudCxcclxuICAgICAgemRhdGV0aW1lOiBaZGF0ZXRpbWVDb21wb25lbnQsXHJcbiAgICAgIHpzaG9ydGRhdGU6IFpkYXRldGltZUNvbXBvbmVudCxcclxuICAgICAgenVpZGF0ZXRpbWU6IFpkYXRldGltZUNvbXBvbmVudCxcclxuICAgICAgenVpdGltZTogWmRhdGV0aW1lQ29tcG9uZW50LFxyXG4gICAgICB6ZGl2OiBaZGl2Q29tcG9uZW50LFxyXG4gICAgICB6Z2F1Z2U6IFpnYXVnZUNvbXBvbmVudCxcclxuICAgICAgemdyaWQ6IFpncmlkQ29tcG9uZW50LFxyXG4gICAgICB6aW1nOiBaaW1nQ29tcG9uZW50LFxyXG4gICAgICB6a2NhcmQ6IFprY2FyZENvbXBvbmVudCxcclxuICAgICAgemxhYmVsOiBabGFiZWxDb21wb25lbnQsXHJcbiAgICAgIHptZmI6IFptZmJDb21wb25lbnQsXHJcbiAgICAgIHpudW1lcmljOiBabnVtZXJpY0NvbXBvbmVudCxcclxuICAgICAgcG9zdF9zZWxlY3RfaW5wdXQ6IFpwb3N0c2VsZWN0aW5wdXRDb21wb25lbnQsXHJcbiAgICAgIHByZV9zZWxlY3RfaW5wdXQ6IFpwb3N0c2VsZWN0aW5wdXRDb21wb25lbnQsXHJcbiAgICAgIHpwaG9uZV9jb3VudHJ5Y29kZTogWnBvc3RzZWxlY3RpbnB1dENvbXBvbmVudCxcclxuICAgICAgenF1ZXJ5YnVpbGRlcjogWnF1ZXJ5YnVpbGRlckNvbXBvbmVudCxcclxuICAgICAgenJlcG9ydDogWnJlcG9ydENvbXBvbmVudCxcclxuICAgICAgemNhbGVuZGFyOiBac2NoZWR1bGVyQ29tcG9uZW50LFxyXG4gICAgICB6dWlzZWxlY3RtdWx0aXBsZTogWnNlbGVjdG11bHRpcGxlQ29tcG9uZW50LFxyXG4gICAgICB6dWlzZWxlY3RtdWx0aXBsZV9idXR0b246IFpzZWxlY3RtdWx0aXBsZUNvbXBvbmVudCxcclxuICAgICAgc2VsZWN0OiBac2VsZWN0bXVsdGlwbGVDb21wb25lbnQsXHJcbiAgICAgIHp0YWI6IFp0YWJDb21wb25lbnQsXHJcbiAgICAgIG51bWJlcjogWnRleHRDb21wb25lbnQsXHJcbiAgICAgIG51bWVyaWM6IFp0ZXh0Q29tcG9uZW50LFxyXG4gICAgICBkYXRlOiBadGV4dENvbXBvbmVudCxcclxuICAgICAgZW1haWw6IFp0ZXh0Q29tcG9uZW50LFxyXG4gICAgICBwYXNzd29yZDogWnRleHRDb21wb25lbnQsXHJcbiAgICAgIHNlYXJjaDogWnRleHRDb21wb25lbnQsXHJcbiAgICAgIHRlbDogWnRleHRDb21wb25lbnQsXHJcbiAgICAgIHRleHQ6IFp0ZXh0Q29tcG9uZW50LFxyXG4gICAgICB1cmw6IFp0ZXh0Q29tcG9uZW50LFxyXG4gICAgICBjdXJyZW5jeTogWnRleHRDb21wb25lbnQsXHJcbiAgICAgIHRleHRhcmVhOiBadGV4dGFyZWFDb21wb25lbnQsXHJcbiAgICAgIHp0ZXh0ZWRpdG9yOiBadGV4dGVkaXRvckNvbXBvbmVudCxcclxuICAgICAgenRyZWU6IFp0cmVlQ29tcG9uZW50LFxyXG4gICAgICBrdHJlZV9saXN0OiBadHJlZWxpc3RDb21wb25lbnQsXHJcbiAgICAgIHp0cmVuZGNhcmQ6IFp0cmVuZGNhcmRDb21wb25lbnQsXHJcbiAgICAgIHVua25vd246IFp1bmtub3duQ29tcG9uZW50LFxyXG4gICAgICB6dWRmOiBadWRmQ29tcG9uZW50LFxyXG4gICAgICB6dXBsb2FkOiBadXBsb2FkQ29tcG9uZW50LFxyXG4gICAgICB6d29ya2Zsb3didXR0b25zOiBad29ya2Zsb3didXR0b25zQ29tcG9uZW50XHJcbiAgICAgIC8vIGtkYXRlX3JhbmdlcGlja2VyOiBaZGF0ZXJhbmdlQ29tcG9uZW50XHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiBkYXRhW19uYW1lXTtcclxuICB9XHJcblxyXG4gIGlzU2tpcENvbXBvbmVudFR5cGUoY29tcG9uZW50VHlwZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gWkNvbXBvbmVudEhlbHBlci5pc1NraXBDb21wb25lbnRUeXBlKGNvbXBvbmVudFR5cGUpO1xyXG4gIH1cclxuXHJcbiAgbG9hZENvbXBvbmVudChcclxuICAgIGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxyXG4gICAgZmllbGRFbGVtZW50OiBGaWVsZEVsZW1lbnREaXJlY3RpdmUsXHJcbiAgICBmaWVsZDogYW55LFxyXG4gICAgZ3JvdXA6IGFueSxcclxuICAgIGZvcm06IEZvcm1Hcm91cFxyXG4gICkge1xyXG4gICAgLy8gaWYoZmllbGQuTmFtZSA9PT0gJ0Zvcm1EZXRhaWxDb250YWN0R3JpZCcpIHtcclxuICAgIC8vICAgZGVidWdnZXI7XHJcbiAgICAvLyB9XHJcblxyXG4gICAgaWYgKHRoaXMuaXNTa2lwQ29tcG9uZW50VHlwZShmaWVsZC5UeXBlKSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGNvbXBvbmVudEZhY3Rvcnk7XHJcbiAgICBjb25zdCBjb21wb25lbnROYW1lID0gdGhpcy5tYXBCeU5hbWUoZmllbGQuVHlwZSk7XHJcbiAgICBpZiAoY29tcG9uZW50TmFtZSkge1xyXG4gICAgICBjb21wb25lbnRGYWN0b3J5ID0gY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KFxyXG4gICAgICAgIGNvbXBvbmVudE5hbWVcclxuICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbXBvbmVudEZhY3RvcnkgPSBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoXHJcbiAgICAgICAgdGhpcy5tYXBCeU5hbWUoXCJ1bmtub3duXCIpXHJcbiAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3Qgdmlld0NvbnRhaW5lclJlZiA9IGZpZWxkRWxlbWVudC52aWV3Q29udGFpbmVyUmVmO1xyXG4gICAgdmlld0NvbnRhaW5lclJlZi5jbGVhcigpO1xyXG4gICAgaWYgKCFmb3JtKSB7XHJcbiAgICAgIGNvbnNvbGUud2FybignRm9ybUdyb3VwIGlzIGVtcHR5IScpO1xyXG4gICAgICBkZWJ1Z2dlcjtcclxuICAgIH1cclxuICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IHZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KGNvbXBvbmVudEZhY3RvcnkpO1xyXG4gICAgKGNvbXBvbmVudFJlZi5pbnN0YW5jZSBhcyBaQ29tcG9uZW50KS5kYXRhID0gZmllbGQ7XHJcbiAgICAoY29tcG9uZW50UmVmLmluc3RhbmNlIGFzIFpDb21wb25lbnQpLmdyb3VwID0gZ3JvdXA7XHJcbiAgICAoY29tcG9uZW50UmVmLmluc3RhbmNlIGFzIFpDb21wb25lbnQpLmZvcm0gPSBmb3JtO1xyXG4gICAgLy8gKGNvbXBvbmVudFJlZi5pbnN0YW5jZSBhcyBaQ29tcG9uZW50KS5vdXRwdXRFdmVudC5zdWJzY3JpYmUoKGV2ZW50OiBhbnkpID0+IGdyb3VwLm91dHB1dEV2ZW50KGV2ZW50KSk7XHJcbiAgfVxyXG5cclxuICBhcHBlbmRDb21wb25lbnRUb0R5bmFtaWNGb3JtKFxyXG4gICAgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXHJcbiAgICBpbmplY3RvcjogYW55LFxyXG4gICAgYXBwUmVmOiBhbnksXHJcbiAgICBmaWVsZDogYW55LFxyXG4gICAgZ3JvdXA6IGFueSxcclxuICAgIGNvbnRhaW5lcklkOiBzdHJpbmdcclxuICApIHtcclxuICAgIGlmICh0aGlzLmlzU2tpcENvbXBvbmVudFR5cGUoZmllbGQuVHlwZSkpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBjb21wb25lbnRSZWY7XHJcbiAgICBjb25zdCBjb21wb25lbnROYW1lID0gdGhpcy5tYXBCeU5hbWUoZmllbGQuVHlwZSk7XHJcbiAgICAvLyAxLiBDcmVhdGUgYSBjb21wb25lbnQgcmVmZXJlbmNlIGZyb20gdGhlIGNvbXBvbmVudFxyXG4gICAgaWYgKGNvbXBvbmVudE5hbWUpIHtcclxuICAgICAgY29tcG9uZW50UmVmID0gY29tcG9uZW50RmFjdG9yeVJlc29sdmVyXHJcbiAgICAgICAgLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KGNvbXBvbmVudE5hbWUpXHJcbiAgICAgICAgLmNyZWF0ZShpbmplY3Rvcik7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb21wb25lbnRSZWYgPSBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXJcclxuICAgICAgICAucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkodGhpcy5tYXBCeU5hbWUoXCJ1bmtub3duXCIpKVxyXG4gICAgICAgIC5jcmVhdGUoaW5qZWN0b3IpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIDIuIEF0dGFjaCBjb21wb25lbnQgdG8gdGhlIGFwcFJlZiBzbyB0aGF0IGl0J3MgaW5zaWRlIHRoZSBuZyBjb21wb25lbnQgdHJlZVxyXG4gICAgYXBwUmVmLmF0dGFjaFZpZXcoY29tcG9uZW50UmVmLmhvc3RWaWV3KTtcclxuXHJcbiAgICAvLyAzLiBHZXQgRE9NIGVsZW1lbnQgZnJvbSBjb21wb25lbnRcclxuICAgIGNvbnN0IGRvbUVsZW0gPSAoY29tcG9uZW50UmVmLmhvc3RWaWV3IGFzIEVtYmVkZGVkVmlld1JlZjxhbnk+KVxyXG4gICAgICAucm9vdE5vZGVzWzBdIGFzIEhUTUxFbGVtZW50O1xyXG5cclxuICAgIC8vIDQuIEFwcGVuZCBET00gZWxlbWVudCB0byB0aGUgYm9keVxyXG4gICAgY29uc3QgZHluYW1pY0Zvcm1Ib3N0OiBhbnkgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiI1wiICsgY29udGFpbmVySWQpO1xyXG4gICAgZHluYW1pY0Zvcm1Ib3N0LmFwcGVuZENoaWxkKGRvbUVsZW0pO1xyXG5cclxuICAgIChjb21wb25lbnRSZWYuaW5zdGFuY2UgYXMgWkNvbXBvbmVudCkuZGF0YSA9IGZpZWxkO1xyXG4gICAgKGNvbXBvbmVudFJlZi5pbnN0YW5jZSBhcyBaQ29tcG9uZW50KS5ncm91cCA9IGdyb3VwO1xyXG4gICAgcmV0dXJuIGNvbXBvbmVudFJlZjtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -1,271 +0,0 @@
|
|
|
1
|
-
/********** Angular **********/
|
|
2
|
-
import { Component, Input } from '@angular/core';
|
|
3
|
-
import { Validators } from '@angular/forms';
|
|
4
|
-
/********** Ionic **********/
|
|
5
|
-
import { ActionSheetController } from '@ionic/angular';
|
|
6
|
-
/********** Plugin **********/
|
|
7
|
-
import { map } from 'rxjs/operators';
|
|
8
|
-
/********** Component & Service **********/
|
|
9
|
-
import { FieldService, WebApiService, ResourceApiService, WorkflowService, ZComponentProperties, ZComponentHelper } from 'mmhglobal-zcore';
|
|
10
|
-
export class UiactionbuttonComponent {
|
|
11
|
-
constructor(fieldService, webApiService, resourceApiService, workflowService, actionSheetCtrl) {
|
|
12
|
-
this.fieldService = fieldService;
|
|
13
|
-
this.webApiService = webApiService;
|
|
14
|
-
this.resourceApiService = resourceApiService;
|
|
15
|
-
this.workflowService = workflowService;
|
|
16
|
-
this.actionSheetCtrl = actionSheetCtrl;
|
|
17
|
-
this.topRightActionButton = [];
|
|
18
|
-
this.isWorkflowButton = false;
|
|
19
|
-
this.componentProperties = new ZComponentProperties();
|
|
20
|
-
this.setEnable = (status) => {
|
|
21
|
-
this.componentProperties.isReadOnly = !status;
|
|
22
|
-
};
|
|
23
|
-
this.setVisible = (status) => {
|
|
24
|
-
this.componentProperties.isVisible = status;
|
|
25
|
-
this.data.Visible = status;
|
|
26
|
-
};
|
|
27
|
-
this.setRequire = (status) => {
|
|
28
|
-
this.componentProperties.isRequired = status;
|
|
29
|
-
ZComponentHelper.changeValidator(status, this.group, this.data.Value, this.componentProperties, Validators.required);
|
|
30
|
-
};
|
|
31
|
-
/******************** zWorkflowButton ********************/
|
|
32
|
-
// URL required
|
|
33
|
-
// eslint-disable-next-line @typescript-eslint/naming-convention,no-underscore-dangle,id-blacklist,id-match
|
|
34
|
-
this.e1wfs_wfcGetWorkflowButtonURL = this.resourceApiService.getURL("e1wfs_wfcGetWorkflowButtonURL");
|
|
35
|
-
// eslint-disable-next-line @typescript-eslint/naming-convention,no-underscore-dangle,id-blacklist,id-match
|
|
36
|
-
this.e1wfs_wfc_getWorkflowInitialStatusURL = this.resourceApiService.getURL("e1wfs_wfc_getWorkflowInitialStatusURL");
|
|
37
|
-
// eslint-disable-next-line @typescript-eslint/naming-convention, no-underscore-dangle, id-blacklist, id-match
|
|
38
|
-
this.e1wfs_wfc_getDocumentStatusURL = this.resourceApiService.getURL("e1wfs_wfc_getDocumentStatusURL");
|
|
39
|
-
}
|
|
40
|
-
/******************** Common function ********************/
|
|
41
|
-
ngOnInit() {
|
|
42
|
-
this.data = this.getFirstzButton(this.group.fields);
|
|
43
|
-
// this.visible = ZComponentHelper.isVisible(buttonData);
|
|
44
|
-
if (this.data) {
|
|
45
|
-
ZComponentHelper.setComponentProperties(this);
|
|
46
|
-
ZComponentHelper.registerComponent(this);
|
|
47
|
-
if (!ZComponentHelper.isNullUndefinedEmpty(this.data.WorkflowCode)) {
|
|
48
|
-
// handle as zWorkflowButton
|
|
49
|
-
this.isWorkflowButton = true;
|
|
50
|
-
this.loadWorkflowButton();
|
|
51
|
-
}
|
|
52
|
-
else {
|
|
53
|
-
// handle as zButton
|
|
54
|
-
const field$ = this.fieldService.getFormFieldCode(this.data.Value, "FormField", null, null);
|
|
55
|
-
field$.subscribe((data) => {
|
|
56
|
-
this.actionBtnList = data;
|
|
57
|
-
this.reloadButtonList();
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
return;
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
isMobileScreen() {
|
|
64
|
-
const v = ZComponentHelper.isMobileScreen();
|
|
65
|
-
return v;
|
|
66
|
-
}
|
|
67
|
-
isBtnVisible(fieldExpr) {
|
|
68
|
-
if (fieldExpr !== false && !fieldExpr) {
|
|
69
|
-
return true;
|
|
70
|
-
}
|
|
71
|
-
const v = ZComponentHelper.getGroupEvalValue.call(this, fieldExpr);
|
|
72
|
-
return v;
|
|
73
|
-
}
|
|
74
|
-
/******************** zButton ********************/
|
|
75
|
-
getFirstzButton(data) {
|
|
76
|
-
// data.forEach(d => {
|
|
77
|
-
for (let i = 0; i < data.length - 1; i++) {
|
|
78
|
-
if (data[i].Type === "zbuttons" || data[i].Type === "zworkflowbuttons") {
|
|
79
|
-
return data[i];
|
|
80
|
-
}
|
|
81
|
-
else {
|
|
82
|
-
if (Array.isArray(data[i].Value)) {
|
|
83
|
-
this.getFirstzButton(data[i].Value);
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
return null;
|
|
88
|
-
}
|
|
89
|
-
onAction() {
|
|
90
|
-
if (this.isWorkflowButton) {
|
|
91
|
-
//this.loadWorkflowButton();
|
|
92
|
-
this.actionSheetCtrl
|
|
93
|
-
.create({
|
|
94
|
-
header: "Choose an Action",
|
|
95
|
-
buttons: this.topRightActionButton
|
|
96
|
-
})
|
|
97
|
-
.then(actionSheetEl => {
|
|
98
|
-
actionSheetEl.present();
|
|
99
|
-
});
|
|
100
|
-
}
|
|
101
|
-
else {
|
|
102
|
-
//this.reloadButtonList();
|
|
103
|
-
this.actionSheetCtrl
|
|
104
|
-
.create({
|
|
105
|
-
header: "Choose an Action",
|
|
106
|
-
buttons: this.topRightActionButton
|
|
107
|
-
})
|
|
108
|
-
.then(actionSheetEl => {
|
|
109
|
-
actionSheetEl.present();
|
|
110
|
-
});
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
reloadButtonList() {
|
|
114
|
-
this.topRightActionButton = [];
|
|
115
|
-
this.actionBtnList.forEach((button) => {
|
|
116
|
-
const visible = ZComponentHelper.getGroupEvalValue.call(this, button.Visible, this.group);
|
|
117
|
-
if (visible !== false) {
|
|
118
|
-
const label = this.getButtonLabel(button);
|
|
119
|
-
const buttonRole = this.getButtonRole(button, label);
|
|
120
|
-
this.topRightActionButton.push({
|
|
121
|
-
text: label,
|
|
122
|
-
handler: () => {
|
|
123
|
-
this.buttonClick(button);
|
|
124
|
-
},
|
|
125
|
-
role: buttonRole
|
|
126
|
-
});
|
|
127
|
-
}
|
|
128
|
-
});
|
|
129
|
-
}
|
|
130
|
-
buttonClick(button) {
|
|
131
|
-
// debugger;
|
|
132
|
-
this.group['DismissType'] = button.DismissType;
|
|
133
|
-
this.group.subject.next({
|
|
134
|
-
type: "buttonClick",
|
|
135
|
-
target: button.ClickEvent,
|
|
136
|
-
data: null
|
|
137
|
-
});
|
|
138
|
-
}
|
|
139
|
-
getButtonLabel(button) {
|
|
140
|
-
let buttonLabel = button.Label;
|
|
141
|
-
if (!buttonLabel) {
|
|
142
|
-
buttonLabel = button.Name;
|
|
143
|
-
}
|
|
144
|
-
let labelExpr = buttonLabel.match(/^{{.*}}$/gi);
|
|
145
|
-
if (labelExpr) {
|
|
146
|
-
labelExpr = labelExpr[0].slice(2, -2);
|
|
147
|
-
const label = ZComponentHelper.getGroupValue(labelExpr, this.group);
|
|
148
|
-
return label;
|
|
149
|
-
}
|
|
150
|
-
else {
|
|
151
|
-
return buttonLabel;
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
getButtonRole(button, label) {
|
|
155
|
-
// console.log("getButtonRole: ", label, button.ClickEvent);
|
|
156
|
-
const lowerCaseLabel = label.toLowerCase();
|
|
157
|
-
if (lowerCaseLabel.indexOf("cancel") !== -1 ||
|
|
158
|
-
lowerCaseLabel.indexOf("close") !== -1) {
|
|
159
|
-
return "cancel";
|
|
160
|
-
}
|
|
161
|
-
return null;
|
|
162
|
-
}
|
|
163
|
-
loadWorkflowButton() {
|
|
164
|
-
// actionBtnList: Array<ZField>;
|
|
165
|
-
this.topRightActionButton = [];
|
|
166
|
-
// Get WFS_DocumentId if any.
|
|
167
|
-
let documentId = null;
|
|
168
|
-
if (this.group.zModel) {
|
|
169
|
-
documentId = this.group.zModel['WFS_DocumentId'];
|
|
170
|
-
}
|
|
171
|
-
// Set the documentId to the service
|
|
172
|
-
this.workflowService.appendWFS_DocumentsInfo(this.data.WorkflowCode, documentId);
|
|
173
|
-
try {
|
|
174
|
-
// Set param for field
|
|
175
|
-
const field$ = this.workflowService.getWorkflowButtonsField(this.data.WorkflowCode, this.e1wfs_wfcGetWorkflowButtonURL, String(false));
|
|
176
|
-
field$.subscribe(data => {
|
|
177
|
-
data.forEach((button) => {
|
|
178
|
-
const label = this.getButtonLabel(button);
|
|
179
|
-
const attributes = JSON.parse(button.Attributes);
|
|
180
|
-
const buttonLabel = attributes.Label || label;
|
|
181
|
-
const _isVisible = this.isBtnVisible(button.Visible);
|
|
182
|
-
if (_isVisible) {
|
|
183
|
-
this.topRightActionButton.push({
|
|
184
|
-
text: buttonLabel,
|
|
185
|
-
fieldAttribute: button,
|
|
186
|
-
iconName: attributes.Icon,
|
|
187
|
-
handler: (y) => {
|
|
188
|
-
this.workflowButtonClick(button);
|
|
189
|
-
}
|
|
190
|
-
});
|
|
191
|
-
}
|
|
192
|
-
//ZComponentHelper.collectWorkflowButton(this.group, this.data.WorkflowCode, buttonLabel, button, attributes, mappedInfo);
|
|
193
|
-
});
|
|
194
|
-
});
|
|
195
|
-
if (!this.data.DisableSyncWorkflowStatus) {
|
|
196
|
-
// Set default status
|
|
197
|
-
// eslint-disable-next-line @typescript-eslint/dot-notation
|
|
198
|
-
if (!this.group.zModel["WFS_StatusName"]) {
|
|
199
|
-
const params = {
|
|
200
|
-
"WorkflowMasterCode": this.data.WorkflowCode
|
|
201
|
-
};
|
|
202
|
-
return this.webApiService.httpPost$(this.e1wfs_wfc_getWorkflowInitialStatusURL, params).pipe(map(res => {
|
|
203
|
-
if (res.Data) {
|
|
204
|
-
ZComponentHelper.presetModelValue("WFS_StatusId", res.Data["Id"], this.group);
|
|
205
|
-
ZComponentHelper.presetModelValue("WFS_StatusName", res.Data["Name"], this.group);
|
|
206
|
-
ZComponentHelper.presetModelValue("WFS_StatusCode", res.Data["Code"], this.group);
|
|
207
|
-
this.workflowService.setCurrentDocumentStatus(res.Data);
|
|
208
|
-
}
|
|
209
|
-
})).subscribe();
|
|
210
|
-
}
|
|
211
|
-
else {
|
|
212
|
-
// When loading also to get current Status Information if any.
|
|
213
|
-
const docInfoParam = {
|
|
214
|
-
"WorkflowMasterCode": this.data.WorkflowCode,
|
|
215
|
-
"DocumentId": documentId,
|
|
216
|
-
};
|
|
217
|
-
this.webApiService.httpPost$(this.e1wfs_wfc_getDocumentStatusURL, docInfoParam).pipe(map(res => {
|
|
218
|
-
this.workflowService.setCurrentDocumentStatus(res);
|
|
219
|
-
if (res.Data) {
|
|
220
|
-
this.workflowService.setCurrentDocumentStatus(res.Data);
|
|
221
|
-
}
|
|
222
|
-
})).subscribe();
|
|
223
|
-
}
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
catch (error) {
|
|
227
|
-
console.error("error: ", error);
|
|
228
|
-
}
|
|
229
|
-
}
|
|
230
|
-
workflowButtonClick(button) {
|
|
231
|
-
// Type 1 == functional;
|
|
232
|
-
// Type 2 == GOTO;
|
|
233
|
-
const attributes = JSON.parse(button.Attributes);
|
|
234
|
-
switch (button.TypeCode.toUpperCase()) {
|
|
235
|
-
case "FUNCTION":
|
|
236
|
-
console.log("Functional Button: ", button.Name);
|
|
237
|
-
this.workflowService.functionalButton_OnClick(attributes, this.group);
|
|
238
|
-
break;
|
|
239
|
-
case "GOTO":
|
|
240
|
-
console.log("GOTO Button: ", button.Name);
|
|
241
|
-
this.workflowService.gotoButton_Onclick(button, this.data, attributes, this.group, false).subscribe(res => {
|
|
242
|
-
this.loadWorkflowButton();
|
|
243
|
-
if (res) {
|
|
244
|
-
this.workflowService.triggerSendEmail(this.group).subscribe();
|
|
245
|
-
}
|
|
246
|
-
});
|
|
247
|
-
break;
|
|
248
|
-
default:
|
|
249
|
-
console.log("Invalid Button Type. ", button.Name);
|
|
250
|
-
break;
|
|
251
|
-
}
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
UiactionbuttonComponent.decorators = [
|
|
255
|
-
{ type: Component, args: [{
|
|
256
|
-
selector: 'app-uiactionbutton',
|
|
257
|
-
template: "<ion-button (click)=\"onAction()\" [disabled]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\" \r\n *ngIf=\"isMobileScreen() && (!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\"\r\n class=\"ion-activatable ripple-parent\">\r\n <!-- <ion-icon name=\"more\" slot=\"icon-only\"></ion-icon> -->\r\n <fa-icon [icon]=\"'ellipsis-v'\"></fa-icon>\r\n <ion-ripple-effect type=\"unbounded\"></ion-ripple-effect>\r\n</ion-button>",
|
|
258
|
-
styles: [":host ion-button{width:48px;height:48px;justify-content:center;margin-right:4px;cursor:pointer}:host ion-button fa-icon{text-align:center;justify-content:center;text-overflow:ellipsis;text-transform:none;white-space:nowrap;font-kerning:none;text-decoration:none;font-size:21px}:host ion-button:hover{color:#fff;background-color:rgba(0,0,0,.4);border-radius:20px}"]
|
|
259
|
-
},] }
|
|
260
|
-
];
|
|
261
|
-
UiactionbuttonComponent.ctorParameters = () => [
|
|
262
|
-
{ type: FieldService },
|
|
263
|
-
{ type: WebApiService },
|
|
264
|
-
{ type: ResourceApiService },
|
|
265
|
-
{ type: WorkflowService },
|
|
266
|
-
{ type: ActionSheetController }
|
|
267
|
-
];
|
|
268
|
-
UiactionbuttonComponent.propDecorators = {
|
|
269
|
-
group: [{ type: Input }]
|
|
270
|
-
};
|
|
271
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWlhY3Rpb25idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvdWlhY3Rpb25idXR0b24vdWlhY3Rpb25idXR0b24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtCQUErQjtBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFNUMsNkJBQTZCO0FBQzdCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXZELDhCQUE4QjtBQUM5QixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckMsMkNBQTJDO0FBQzNDLE9BQU8sRUFDSixZQUFZLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUFFLGVBQWUsRUFDaEQsb0JBQW9CLEVBQUUsZ0JBQWdCLEVBRXhELE1BQU0saUJBQWlCLENBQUM7QUFTekIsTUFBTSxPQUFPLHVCQUF1QjtJQVNsQyxZQUNVLFlBQTBCLEVBQzFCLGFBQTRCLEVBQzVCLGtCQUFzQyxFQUN0QyxlQUFnQyxFQUNoQyxlQUFzQztRQUp0QyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1Qix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxvQkFBZSxHQUFmLGVBQWUsQ0FBdUI7UUFaaEQseUJBQW9CLEdBQVUsRUFBRSxDQUFDO1FBRWpDLHFCQUFnQixHQUFZLEtBQUssQ0FBQztRQUdsQyx3QkFBbUIsR0FBRyxJQUFJLG9CQUFvQixFQUFFLENBQUM7UUErQzFDLGNBQVMsR0FBRyxDQUFDLE1BQWUsRUFBRSxFQUFFO1lB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SUFBSSxDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7cUJBQy9EO2dCQUNILENBQUMsQ0FBQyxDQUFDO2dCQUNILE1BQU07WUFDUjtnQkFDRSxPQUFPLENBQUMsR0FBRyxDQUFDLHVCQUF1QixFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDbEQsTUFBTTtTQUNUO0lBQ0gsQ0FBQzs7O1lBMVNGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsb0JBQW9CO2dCQUM5QiwrakJBQThDOzthQUUvQzs7O1lBVkUsWUFBWTtZQUFFLGFBQWE7WUFBRSxrQkFBa0I7WUFBRSxlQUFlO1lBUDFELHFCQUFxQjs7O29CQW9CM0IsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qKioqKioqKioqIEFuZ3VsYXIgKioqKioqKioqKi9cclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBEaXJlY3RpdmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJzsgXHJcbmltcG9ydCB7IFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG4vKioqKioqKioqKiBJb25pYyAqKioqKioqKioqL1xyXG5pbXBvcnQgeyBBY3Rpb25TaGVldENvbnRyb2xsZXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XHJcblxyXG4vKioqKioqKioqKiBQbHVnaW4gKioqKioqKioqKi9cclxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuLyoqKioqKioqKiogQ29tcG9uZW50ICYgU2VydmljZSAqKioqKioqKioqL1xyXG5pbXBvcnQgeyBcclxuICAgRmllbGRTZXJ2aWNlLCBXZWJBcGlTZXJ2aWNlLCBSZXNvdXJjZUFwaVNlcnZpY2UsIFdvcmtmbG93U2VydmljZSxcclxuICAgWkdyb3VwLCBaRmllbGQsIFpDb21wb25lbnRQcm9wZXJ0aWVzLCBaQ29tcG9uZW50SGVscGVyLFxyXG4gICBaQ29tcG9uZW50T3V0cHV0RXZlbnRcclxufSBmcm9tICdtbWhnbG9iYWwtemNvcmUnOyBcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC11aWFjdGlvbmJ1dHRvbicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3VpYWN0aW9uYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi91aWFjdGlvbmJ1dHRvbi5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIFVpYWN0aW9uYnV0dG9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBASW5wdXQoKSBncm91cDogWkdyb3VwO1xyXG4gIHRvcFJpZ2h0QWN0aW9uQnV0dG9uOiBhbnlbXSA9IFtdO1xyXG4gIGFjdGlvbkJ0bkxpc3Q6IEFycmF5PFpGaWVsZD47XHJcbiAgaXNXb3JrZmxvd0J1dHRvbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIC8vIHZpc2libGU6Ym9vbGVhbiA9IHRydWU7XHJcbiAgcHJpdmF0ZSBkYXRhOiBhbnk7XHJcbiAgY29tcG9uZW50UHJvcGVydGllcyA9IG5ldyBaQ29tcG9uZW50UHJvcGVydGllcygpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZmllbGRTZXJ2aWNlOiBGaWVsZFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHdlYkFwaVNlcnZpY2U6IFdlYkFwaVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlc291cmNlQXBpU2VydmljZTogUmVzb3VyY2VBcGlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB3b3JrZmxvd1NlcnZpY2U6IFdvcmtmbG93U2VydmljZSxcclxuICAgIHByaXZhdGUgYWN0aW9uU2hlZXRDdHJsOiBBY3Rpb25TaGVldENvbnRyb2xsZXJcclxuICApIHsgfVxyXG5cclxuICAvKioqKioqKioqKioqKioqKioqKiogQ29tbW9uIGZ1bmN0aW9uICoqKioqKioqKioqKioqKioqKioqL1xyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5kYXRhID0gdGhpcy5nZXRGaXJzdHpCdXR0b24odGhpcy5ncm91cC5maWVsZHMpO1xyXG4gICAgLy8gdGhpcy52aXNpYmxlID0gWkNvbXBvbmVudEhlbHBlci5pc1Zpc2libGUoYnV0dG9uRGF0YSk7XHJcblxyXG4gICAgaWYgKHRoaXMuZGF0YSkge1xyXG4gICAgICBaQ29tcG9uZW50SGVscGVyLnNldENvbXBvbmVudFByb3BlcnRpZXModGhpcyk7XHJcbiAgICAgIFpDb21wb25lbnRIZWxwZXIucmVnaXN0ZXJDb21wb25lbnQodGhpcyk7XHJcblxyXG4gICAgICBpZiAoIVpDb21wb25lbnRIZWxwZXIuaXNOdWxsVW5kZWZpbmVkRW1wdHkodGhpcy5kYXRhLldvcmtmbG93Q29kZSkpIHtcclxuICAgICAgICAvLyBoYW5kbGUgYXMgeldvcmtmbG93QnV0dG9uXHJcbiAgICAgICAgdGhpcy5pc1dvcmtmbG93QnV0dG9uID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmxvYWRXb3JrZmxvd0J1dHRvbigpO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIC8vIGhhbmRsZSBhcyB6QnV0dG9uXHJcbiAgICAgICAgY29uc3QgZmllbGQkID0gdGhpcy5maWVsZFNlcnZpY2UuZ2V0Rm9ybUZpZWxkQ29kZShcclxuICAgICAgICAgIHRoaXMuZGF0YS5WYWx1ZSxcclxuICAgICAgICAgIFwiRm9ybUZpZWxkXCIsXHJcbiAgICAgICAgICBudWxsLFxyXG4gICAgICAgICAgbnVsbFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgZmllbGQkLnN1YnNjcmliZSgoZGF0YTogQXJyYXk8WkZpZWxkPikgPT4ge1xyXG4gICAgICAgICAgdGhpcy5hY3Rpb25CdG5MaXN0ID0gZGF0YTtcclxuICAgICAgICAgIHRoaXMucmVsb2FkQnV0dG9uTGlzdCgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpc01vYmlsZVNjcmVlbigpIHtcclxuICAgIGNvbnN0IHYgPSBaQ29tcG9uZW50SGVscGVyLmlzTW9iaWxlU2NyZWVuKCk7XHJcbiAgICByZXR1cm4gdjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRFbmFibGUgPSAoc3RhdHVzOiBib29sZWFuKSA9PiB7XHJcbiAgICB0aGlzLmNvbXBvbmVudFByb3BlcnRpZXMuaXNSZWFkT25seSA9ICFzdGF0dXM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0VmlzaWJsZSA9IChzdGF0dXM6IGJvb2xlYW4pID0+IHtcclxuICAgIHRoaXMuY29tcG9uZW50UHJvcGVydGllcy5pc1Zpc2libGUgPSBzdGF0dXM7XHJcbiAgICB0aGlzLmRhdGEuVmlzaWJsZSA9IHN0YXR1cztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRSZXF1aXJlID0gKHN0YXR1czogYm9vbGVhbikgPT4ge1xyXG4gICAgdGhpcy5jb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVxdWlyZWQgPSBzdGF0dXM7XHJcbiAgICBaQ29tcG9uZW50SGVscGVyLmNoYW5nZVZhbGlkYXRvcihzdGF0dXMsIHRoaXMuZ3JvdXAsIHRoaXMuZGF0YS5WYWx1ZSwgdGhpcy5jb21wb25lbnRQcm9wZXJ0aWVzLCBWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNCdG5WaXNpYmxlKGZpZWxkRXhwcikge1xyXG4gICAgaWYgKGZpZWxkRXhwciAhPT0gZmFsc2UgJiYgIWZpZWxkRXhwcikge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgIGNvbnN0IHYgPSBaQ29tcG9uZW50SGVscGVyLmdldEdyb3VwRXZhbFZhbHVlLmNhbGwodGhpcywgZmllbGRFeHByKTtcclxuICAgIHJldHVybiB2O1xyXG4gIH1cclxuXHJcbiAgLyoqKioqKioqKioqKioqKioqKioqIHpCdXR0b24gKioqKioqKioqKioqKioqKioqKiovXHJcbiAgZ2V0Rmlyc3R6QnV0dG9uKGRhdGE6IGFueVtdKSB7XHJcbiAgICAvLyBkYXRhLmZvckVhY2goZCA9PiB7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRhdGEubGVuZ3RoIC0gMTsgaSsrKSB7XHJcbiAgICAgIGlmIChkYXRhW2ldLlR5cGUgPT09IFwiemJ1dHRvbnNcIiB8fCBkYXRhW2ldLlR5cGUgPT09IFwiendvcmtmbG93YnV0dG9uc1wiKSB7XHJcbiAgICAgICAgcmV0dXJuIGRhdGFbaV07XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZGF0YVtpXS5WYWx1ZSkpIHtcclxuICAgICAgICAgIHRoaXMuZ2V0Rmlyc3R6QnV0dG9uKGRhdGFbaV0uVmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICBvbkFjdGlvbigpIHtcclxuICAgIGlmICh0aGlzLmlzV29ya2Zsb3dCdXR0b24pIHtcclxuICAgICAgLy90aGlzLmxvYWRXb3JrZmxvd0J1dHRvbigpO1xyXG4gICAgICB0aGlzLmFjdGlvblNoZWV0Q3RybFxyXG4gICAgICAgIC5jcmVhdGUoe1xyXG4gICAgICAgICAgaGVhZGVyOiBcIkNob29zZSBhbiBBY3Rpb25cIixcclxuICAgICAgICAgIGJ1dHRvbnM6IHRoaXMudG9wUmlnaHRBY3Rpb25CdXR0b25cclxuICAgICAgICB9KVxyXG4gICAgICAgIC50aGVuKGFjdGlvblNoZWV0RWwgPT4ge1xyXG4gICAgICAgICAgYWN0aW9uU2hlZXRFbC5wcmVzZW50KCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgLy90aGlzLnJlbG9hZEJ1dHRvbkxpc3QoKTtcclxuICAgICAgdGhpcy5hY3Rpb25TaGVldEN0cmxcclxuICAgICAgICAuY3JlYXRlKHtcclxuICAgICAgICAgIGhlYWRlcjogXCJDaG9vc2UgYW4gQWN0aW9uXCIsXHJcbiAgICAgICAgICBidXR0b25zOiB0aGlzLnRvcFJpZ2h0QWN0aW9uQnV0dG9uXHJcbiAgICAgICAgfSlcclxuICAgICAgICAudGhlbihhY3Rpb25TaGVldEVsID0+IHtcclxuICAgICAgICAgIGFjdGlvblNoZWV0RWwucHJlc2VudCgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZWxvYWRCdXR0b25MaXN0KCkge1xyXG4gICAgdGhpcy50b3BSaWdodEFjdGlvbkJ1dHRvbiA9IFtdO1xyXG4gICAgdGhpcy5hY3Rpb25CdG5MaXN0LmZvckVhY2goKGJ1dHRvbjogWkZpZWxkKSA9PiB7XHJcbiAgICAgIGNvbnN0IHZpc2libGUgPSBaQ29tcG9uZW50SGVscGVyLmdldEdyb3VwRXZhbFZhbHVlLmNhbGwoXHJcbiAgICAgICAgdGhpcyxcclxuICAgICAgICBidXR0b24uVmlzaWJsZSxcclxuICAgICAgICB0aGlzLmdyb3VwXHJcbiAgICAgICk7XHJcbiAgICAgIGlmICh2aXNpYmxlICE9PSBmYWxzZSkge1xyXG4gICAgICAgIGNvbnN0IGxhYmVsID0gdGhpcy5nZXRCdXR0b25MYWJlbChidXR0b24pO1xyXG4gICAgICAgIGNvbnN0IGJ1dHRvblJvbGUgPSB0aGlzLmdldEJ1dHRvblJvbGUoYnV0dG9uLCBsYWJlbCk7XHJcbiAgICAgICAgdGhpcy50b3BSaWdodEFjdGlvbkJ1dHRvbi5wdXNoKHtcclxuICAgICAgICAgIHRleHQ6IGxhYmVsLFxyXG4gICAgICAgICAgaGFuZGxlcjogKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmJ1dHRvbkNsaWNrKGJ1dHRvbik7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgcm9sZTogYnV0dG9uUm9sZVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYnV0dG9uQ2xpY2soYnV0dG9uOiBhbnkpIHtcclxuICAgIC8vIGRlYnVnZ2VyO1xyXG4gICAgdGhpcy5ncm91cFsnRGlzbWlzc1R5cGUnXSA9IGJ1dHRvbi5EaXNtaXNzVHlwZTtcclxuICAgIHRoaXMuZ3JvdXAuc3ViamVjdC5uZXh0KHtcclxuICAgICAgdHlwZTogXCJidXR0b25DbGlja1wiLFxyXG4gICAgICB0YXJnZXQ6IGJ1dHRvbi5DbGlja0V2ZW50LFxyXG4gICAgICBkYXRhOiBudWxsXHJcbiAgICB9IGFzIFpDb21wb25lbnRPdXRwdXRFdmVudCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEJ1dHRvbkxhYmVsKGJ1dHRvbjogYW55KSB7XHJcbiAgICBsZXQgYnV0dG9uTGFiZWwgPSBidXR0b24uTGFiZWw7XHJcbiAgICBpZiAoIWJ1dHRvbkxhYmVsKSB7XHJcbiAgICAgIGJ1dHRvbkxhYmVsID0gYnV0dG9uLk5hbWU7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGxhYmVsRXhwciA9IGJ1dHRvbkxhYmVsLm1hdGNoKC9ee3suKn19JC9naSk7XHJcbiAgICBpZiAobGFiZWxFeHByKSB7XHJcbiAgICAgIGxhYmVsRXhwciA9IGxhYmVsRXhwclswXS5zbGljZSgyLCAtMik7XHJcbiAgICAgIGNvbnN0IGxhYmVsID0gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cFZhbHVlKGxhYmVsRXhwciwgdGhpcy5ncm91cCk7XHJcbiAgICAgIHJldHVybiBsYWJlbDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBidXR0b25MYWJlbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0QnV0dG9uUm9sZShidXR0b246IGFueSwgbGFiZWw6IHN0cmluZykge1xyXG4gICAgLy8gY29uc29sZS5sb2coXCJnZXRCdXR0b25Sb2xlOiBcIiwgbGFiZWwsIGJ1dHRvbi5DbGlja0V2ZW50KTtcclxuICAgIGNvbnN0IGxvd2VyQ2FzZUxhYmVsID0gbGFiZWwudG9Mb3dlckNhc2UoKTtcclxuICAgIGlmIChcclxuICAgICAgbG93ZXJDYXNlTGFiZWwuaW5kZXhPZihcImNhbmNlbFwiKSAhPT0gLTEgfHxcclxuICAgICAgbG93ZXJDYXNlTGFiZWwuaW5kZXhPZihcImNsb3NlXCIpICE9PSAtMVxyXG4gICAgKSB7XHJcbiAgICAgIHJldHVybiBcImNhbmNlbFwiO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICAvKioqKioqKioqKioqKioqKioqKiogeldvcmtmbG93QnV0dG9uICoqKioqKioqKioqKioqKioqKioqL1xyXG4gIC8vIFVSTCByZXF1aXJlZFxyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb24sbm8tdW5kZXJzY29yZS1kYW5nbGUsaWQtYmxhY2tsaXN0LGlkLW1hdGNoXHJcbiAgZTF3ZnNfd2ZjR2V0V29ya2Zsb3dCdXR0b25VUkwgPSB0aGlzLnJlc291cmNlQXBpU2VydmljZS5nZXRVUkwoXCJlMXdmc193ZmNHZXRXb3JrZmxvd0J1dHRvblVSTFwiKTtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uLG5vLXVuZGVyc2NvcmUtZGFuZ2xlLGlkLWJsYWNrbGlzdCxpZC1tYXRjaFxyXG4gIGUxd2ZzX3dmY19nZXRXb3JrZmxvd0luaXRpYWxTdGF0dXNVUkwgPSB0aGlzLnJlc291cmNlQXBpU2VydmljZS5nZXRVUkwoXCJlMXdmc193ZmNfZ2V0V29ya2Zsb3dJbml0aWFsU3RhdHVzVVJMXCIpO1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb24sIG5vLXVuZGVyc2NvcmUtZGFuZ2xlLCBpZC1ibGFja2xpc3QsIGlkLW1hdGNoXHJcbiAgZTF3ZnNfd2ZjX2dldERvY3VtZW50U3RhdHVzVVJMID0gdGhpcy5yZXNvdXJjZUFwaVNlcnZpY2UuZ2V0VVJMKFwiZTF3ZnNfd2ZjX2dldERvY3VtZW50U3RhdHVzVVJMXCIpO1xyXG5cclxuXHJcbiAgcHJpdmF0ZSBsb2FkV29ya2Zsb3dCdXR0b24oKSB7XHJcbiAgICAvLyAgYWN0aW9uQnRuTGlzdDogQXJyYXk8WkZpZWxkPjtcclxuICAgIHRoaXMudG9wUmlnaHRBY3Rpb25CdXR0b24gPSBbXTtcclxuXHJcbiAgICAvLyBHZXQgV0ZTX0RvY3VtZW50SWQgaWYgYW55LlxyXG4gICAgbGV0IGRvY3VtZW50SWQgPSBudWxsO1xyXG4gICAgaWYgKHRoaXMuZ3JvdXAuek1vZGVsKSB7XHJcbiAgICAgIGRvY3VtZW50SWQgPSB0aGlzLmdyb3VwLnpNb2RlbFsnV0ZTX0RvY3VtZW50SWQnXTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBTZXQgdGhlIGRvY3VtZW50SWQgdG8gdGhlIHNlcnZpY2VcclxuICAgIHRoaXMud29ya2Zsb3dTZXJ2aWNlLmFwcGVuZFdGU19Eb2N1bWVudHNJbmZvKHRoaXMuZGF0YS5Xb3JrZmxvd0NvZGUsIGRvY3VtZW50SWQpO1xyXG5cclxuICAgIHRyeSB7XHJcbiAgICAgIC8vIFNldCBwYXJhbSBmb3IgZmllbGRcclxuICAgICAgY29uc3QgZmllbGQkID0gdGhpcy53b3JrZmxvd1NlcnZpY2UuZ2V0V29ya2Zsb3dCdXR0b25zRmllbGQoXHJcbiAgICAgICAgdGhpcy5kYXRhLldvcmtmbG93Q29kZSxcclxuICAgICAgICB0aGlzLmUxd2ZzX3dmY0dldFdvcmtmbG93QnV0dG9uVVJMLFxyXG4gICAgICAgIFN0cmluZyhmYWxzZSlcclxuICAgICAgKTtcclxuXHJcbiAgICAgIGZpZWxkJC5zdWJzY3JpYmUoZGF0YSA9PiB7XHJcbiAgICAgICAgZGF0YS5mb3JFYWNoKChidXR0b246IGFueSkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgbGFiZWwgPSB0aGlzLmdldEJ1dHRvbkxhYmVsKGJ1dHRvbik7XHJcbiAgICAgICAgICBjb25zdCBhdHRyaWJ1dGVzID0gSlNPTi5wYXJzZShidXR0b24uQXR0cmlidXRlcyk7XHJcbiAgICAgICAgICBjb25zdCBidXR0b25MYWJlbCA9IGF0dHJpYnV0ZXMuTGFiZWwgfHwgbGFiZWw7XHJcbiAgICAgICAgICBjb25zdCBfaXNWaXNpYmxlID0gdGhpcy5pc0J0blZpc2libGUoYnV0dG9uLlZpc2libGUpO1xyXG5cclxuICAgICAgICAgIGlmIChfaXNWaXNpYmxlKSB7XHJcbiAgICAgICAgICAgIHRoaXMudG9wUmlnaHRBY3Rpb25CdXR0b24ucHVzaCh7XHJcbiAgICAgICAgICAgICAgdGV4dDogYnV0dG9uTGFiZWwsXHJcbiAgICAgICAgICAgICAgZmllbGRBdHRyaWJ1dGU6IGJ1dHRvbixcclxuICAgICAgICAgICAgICBpY29uTmFtZTogYXR0cmlidXRlcy5JY29uLFxyXG4gICAgICAgICAgICAgIGhhbmRsZXI6ICh5KSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLndvcmtmbG93QnV0dG9uQ2xpY2soYnV0dG9uKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgLy9aQ29tcG9uZW50SGVscGVyLmNvbGxlY3RXb3JrZmxvd0J1dHRvbih0aGlzLmdyb3VwLCB0aGlzLmRhdGEuV29ya2Zsb3dDb2RlLCBidXR0b25MYWJlbCwgYnV0dG9uLCBhdHRyaWJ1dGVzLCBtYXBwZWRJbmZvKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgICBpZiAoIXRoaXMuZGF0YS5EaXNhYmxlU3luY1dvcmtmbG93U3RhdHVzKSB7XHJcbiAgICAgICAgLy8gU2V0IGRlZmF1bHQgc3RhdHVzXHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9kb3Qtbm90YXRpb25cclxuICAgICAgICBpZiAoIXRoaXMuZ3JvdXAuek1vZGVsW1wiV0ZTX1N0YXR1c05hbWVcIl0pIHtcclxuICAgICAgICAgIGNvbnN0IHBhcmFtcyA9IHtcclxuICAgICAgICAgICAgXCJXb3JrZmxvd01hc3RlckNvZGVcIjogdGhpcy5kYXRhLldvcmtmbG93Q29kZVxyXG4gICAgICAgICAgfTtcclxuXHJcbiAgICAgICAgICByZXR1cm4gdGhpcy53ZWJBcGlTZXJ2aWNlLmh0dHBQb3N0JCh0aGlzLmUxd2ZzX3dmY19nZXRXb3JrZmxvd0luaXRpYWxTdGF0dXNVUkwsIHBhcmFtcykucGlwZShcclxuICAgICAgICAgICAgbWFwKHJlcyA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKHJlcy5EYXRhKSB7XHJcbiAgICAgICAgICAgICAgICBaQ29tcG9uZW50SGVscGVyLnByZXNldE1vZGVsVmFsdWUoXCJXRlNfU3RhdHVzSWRcIiwgcmVzLkRhdGFbXCJJZFwiXSwgdGhpcy5ncm91cCk7XHJcbiAgICAgICAgICAgICAgICBaQ29tcG9uZW50SGVscGVyLnByZXNldE1vZGVsVmFsdWUoXCJXRlNfU3RhdHVzTmFtZVwiLCByZXMuRGF0YVtcIk5hbWVcIl0sIHRoaXMuZ3JvdXApO1xyXG4gICAgICAgICAgICAgICAgWkNvbXBvbmVudEhlbHBlci5wcmVzZXRNb2RlbFZhbHVlKFwiV0ZTX1N0YXR1c0NvZGVcIiwgcmVzLkRhdGFbXCJDb2RlXCJdLCB0aGlzLmdyb3VwKTtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLndvcmtmbG93U2VydmljZS5zZXRDdXJyZW50RG9jdW1lbnRTdGF0dXMocmVzLkRhdGEpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICkuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIC8vIFdoZW4gbG9hZGluZyBhbHNvIHRvIGdldCBjdXJyZW50IFN0YXR1cyBJbmZvcm1hdGlvbiBpZiBhbnkuXHJcbiAgICAgICAgICBjb25zdCBkb2NJbmZvUGFyYW0gPSB7XHJcbiAgICAgICAgICAgIFwiV29ya2Zsb3dNYXN0ZXJDb2RlXCI6IHRoaXMuZGF0YS5Xb3JrZmxvd0NvZGUsXHJcbiAgICAgICAgICAgIFwiRG9jdW1lbnRJZFwiOiBkb2N1bWVudElkLFxyXG4gICAgICAgICAgfTtcclxuXHJcbiAgICAgICAgICB0aGlzLndlYkFwaVNlcnZpY2UuaHR0cFBvc3QkKHRoaXMuZTF3ZnNfd2ZjX2dldERvY3VtZW50U3RhdHVzVVJMLCBkb2NJbmZvUGFyYW0pLnBpcGUoXHJcbiAgICAgICAgICAgIG1hcChyZXMgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMud29ya2Zsb3dTZXJ2aWNlLnNldEN1cnJlbnREb2N1bWVudFN0YXR1cyhyZXMpO1xyXG4gICAgICAgICAgICAgIGlmIChyZXMuRGF0YSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy53b3JrZmxvd1NlcnZpY2Uuc2V0Q3VycmVudERvY3VtZW50U3RhdHVzKHJlcy5EYXRhKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICApLnN1YnNjcmliZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoXCJlcnJvcjogXCIsIGVycm9yKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHdvcmtmbG93QnV0dG9uQ2xpY2soYnV0dG9uOiBhbnkpIHtcclxuICAgIC8vIFR5cGUgMSA9PSBmdW5jdGlvbmFsO1xyXG4gICAgLy8gVHlwZSAyID09IEdPVE87XHJcbiAgICBjb25zdCBhdHRyaWJ1dGVzID0gSlNPTi5wYXJzZShidXR0b24uQXR0cmlidXRlcyk7XHJcbiAgICBzd2l0Y2ggKGJ1dHRvbi5UeXBlQ29kZS50b1VwcGVyQ2FzZSgpKSB7XHJcbiAgICAgIGNhc2UgXCJGVU5DVElPTlwiOlxyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiRnVuY3Rpb25hbCBCdXR0b246IFwiLCBidXR0b24uTmFtZSk7XHJcbiAgICAgICAgdGhpcy53b3JrZmxvd1NlcnZpY2UuZnVuY3Rpb25hbEJ1dHRvbl9PbkNsaWNrKGF0dHJpYnV0ZXMsIHRoaXMuZ3JvdXApO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFwiR09UT1wiOlxyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiR09UTyBCdXR0b246IFwiLCBidXR0b24uTmFtZSk7XHJcbiAgICAgICAgdGhpcy53b3JrZmxvd1NlcnZpY2UuZ290b0J1dHRvbl9PbmNsaWNrKGJ1dHRvbiwgdGhpcy5kYXRhLCBhdHRyaWJ1dGVzLCB0aGlzLmdyb3VwLCBmYWxzZSkuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgICAgICB0aGlzLmxvYWRXb3JrZmxvd0J1dHRvbigpO1xyXG4gICAgICAgICAgaWYgKHJlcykge1xyXG4gICAgICAgICAgICB0aGlzLndvcmtmbG93U2VydmljZS50cmlnZ2VyU2VuZEVtYWlsKHRoaXMuZ3JvdXApLnN1YnNjcmliZSgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiSW52YWxpZCBCdXR0b24gVHlwZS4gXCIsIGJ1dHRvbi5OYW1lKTtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
/********** Angular **********/
|
|
2
|
-
import { Component, Input } from '@angular/core';
|
|
3
|
-
import { Router } from '@angular/router';
|
|
4
|
-
/********** Ionic **********/
|
|
5
|
-
/********** Plugin **********/
|
|
6
|
-
/********** Component & Service **********/
|
|
7
|
-
import { MenuService, AuthService, ZComponentHelper, ZCoreService } from 'mmhglobal-zcore';
|
|
8
|
-
export class UiappmenucontentComponent {
|
|
9
|
-
constructor(router, menuService, authService, zcoreService) {
|
|
10
|
-
this.router = router;
|
|
11
|
-
this.menuService = menuService;
|
|
12
|
-
this.authService = authService;
|
|
13
|
-
this.zcoreService = zcoreService;
|
|
14
|
-
this.colorArray = [
|
|
15
|
-
{ stroke: '#F59600', color: '#F59600' },
|
|
16
|
-
{ stroke: '#F5C800', color: '#F5C800' },
|
|
17
|
-
{ stroke: '#F5EF00', color: '#F5EF00' },
|
|
18
|
-
{ stroke: '#8FE300', color: '#8FE300' },
|
|
19
|
-
{ stroke: '#00B33D', color: '#00B33D' },
|
|
20
|
-
{ stroke: '#095D9D', color: '#095D9D' },
|
|
21
|
-
{ stroke: '#2116AA', color: '#2116AA' },
|
|
22
|
-
{ stroke: '#6509A4', color: '#6509A4' },
|
|
23
|
-
{ stroke: '#C4006F', color: '#C4006F' },
|
|
24
|
-
{ stroke: '#F52B00', color: '#F52B00' }
|
|
25
|
-
];
|
|
26
|
-
}
|
|
27
|
-
ngOnInit() {
|
|
28
|
-
}
|
|
29
|
-
getDivClass(item) {
|
|
30
|
-
return item.Type === 'dropdown-submenu' ? 'flex-show' : 'col-xs-4 col-sm-4 col-md-3 col-xl-2';
|
|
31
|
-
}
|
|
32
|
-
getMenuList(item) {
|
|
33
|
-
return item.Type === 'dropdown-submenu' ? this.menuService.getMenuFolder(item.URL) : null;
|
|
34
|
-
}
|
|
35
|
-
menuOnClick(pathName, appClientPath) {
|
|
36
|
-
const startupPage = this.zcoreService.getEnvironment().startUpPage;
|
|
37
|
-
if (appClientPath && startupPage.toLocaleLowerCase() == 'launcher') {
|
|
38
|
-
ZComponentHelper.openAppClientPath(pathName, appClientPath, this.authService);
|
|
39
|
-
return false;
|
|
40
|
-
}
|
|
41
|
-
else {
|
|
42
|
-
this.router.navigate([pathName]);
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
setMapInput(key, value) {
|
|
46
|
-
const mapInput = document.createElement('input');
|
|
47
|
-
mapInput.type = 'hidden';
|
|
48
|
-
mapInput.name = key;
|
|
49
|
-
mapInput.setAttribute('value', value);
|
|
50
|
-
return mapInput;
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
UiappmenucontentComponent.decorators = [
|
|
54
|
-
{ type: Component, args: [{
|
|
55
|
-
selector: 'app-uiappmenucontent',
|
|
56
|
-
template: "<ion-grid>\r\n <ion-row>\r\n <ion-col [ngClass]=\"getDivClass(item)\" *ngFor=\"let item of items; index as i\">\r\n <div *ngIf=\"item.Type !== 'dropdown-submenu'\" class=\"menu-btn ion-activatable ripple-parent\" (click)=\"menuOnClick(item.URL, item.AppClientPath)\">\r\n <ion-label class=\"menu-btn-label menu-btn-icon\">\r\n <!-- <fa-icon [icon]=\"item.Icon\"></fa-icon> -->\r\n <fa-stack size=\"1x\">\r\n <fa-icon [icon]=\"['fas', 'square']\" stackItemSize=\"2x\"\r\n [styles]=\"colorArray[i%10]\"></fa-icon>\r\n <fa-icon [icon]=\"['fas', item.Icon ]\" [inverse]=\"true\" stackItemSize=\"1x\"\r\n transform=\"grow-2\"></fa-icon>\r\n </fa-stack>\r\n <ion-badge color=\"danger\" class=\"pending-counter\"\r\n *ngIf=\"item['PendingCounter'] && item['PendingCounter'] > 0\">\r\n {{item['PendingCounter']}}\r\n </ion-badge>\r\n </ion-label>\r\n <ion-label class=\"menu-btn-label\">{{ item.Label }}</ion-label>\r\n <ion-ripple-effect></ion-ripple-effect>\r\n </div>\r\n <kendo-panelbar *ngIf=\"item.Type === 'dropdown-submenu'\" keepItemContent=\"true\">\r\n <kendo-panelbar-item [title]=\"item.Label\" [expanded]=\"true\" icon=\"folder\">\r\n <ng-template kendoPanelBarContent>\r\n <app-uiappmenucontent [items]=\"getMenuList(item)\"></app-uiappmenucontent>\r\n </ng-template>\r\n </kendo-panelbar-item>\r\n </kendo-panelbar>\r\n </ion-col>\r\n </ion-row>\r\n</ion-grid>\r\n",
|
|
57
|
-
styles: [".menu-btn{display:flex;flex-flow:column;justify-content:center;align-items:stretch;background-color:#fff;padding:10px 5px;border:1px solid #ccc;border-radius:5px;min-height:100px;cursor:pointer}.menu-btn:hover{color:#fff;background-color:rgba(0,0,0,.4)}.ripple-parent{position:relative;overflow:hidden}.menu-btn-label{flex:1;text-align:center;font-size:12px}.menu-btn-icon{zoom:2}.pending-counter{background-color:#ff243a;border-radius:1em;box-sizing:border-box;color:#fff;height:1.5em;line-height:1;max-width:5em;min-width:1.5em;overflow:hidden;padding:.25em;right:2px;text-overflow:ellipsis;top:2px;transform:scale(.25);transform-origin:top right;display:inline-block;position:absolute;text-align:center;font-size:2.2em}"]
|
|
58
|
-
},] }
|
|
59
|
-
];
|
|
60
|
-
UiappmenucontentComponent.ctorParameters = () => [
|
|
61
|
-
{ type: Router },
|
|
62
|
-
{ type: MenuService },
|
|
63
|
-
{ type: AuthService },
|
|
64
|
-
{ type: ZCoreService }
|
|
65
|
-
];
|
|
66
|
-
UiappmenucontentComponent.propDecorators = {
|
|
67
|
-
items: [{ type: Input }]
|
|
68
|
-
};
|
|
69
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWlhcHBtZW51Y29udGVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tbWhnbG9iYWwtZHluYW1pY2Zvcm0vc3JjL2xpYi91aWFwcG1lbnVjb250ZW50L3VpYXBwbWVudWNvbnRlbnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtCQUErQjtBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFekMsNkJBQTZCO0FBRTdCLDhCQUE4QjtBQUU5QiwyQ0FBMkM7QUFDM0MsT0FBTyxFQUFpQixXQUFXLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBUTFHLE1BQU0sT0FBTyx5QkFBeUI7SUFrQnBDLFlBQ1UsTUFBYyxFQUNkLFdBQXdCLEVBQ3hCLFdBQXdCLEVBQ3hCLFlBQTBCO1FBSDFCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQW5CcEMsZUFBVSxHQUFVO1lBQ2xCLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO1lBRXZDLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO1lBQ3ZDLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO1lBQ3ZDLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO1lBQ3ZDLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO1lBQ3ZDLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO1lBQ3ZDLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO1lBRXZDLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO1lBQ3ZDLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO1lBQ3ZDLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO1NBQ3hDLENBQUM7SUFPRSxDQUFDO0lBRUwsUUFBUTtJQUNSLENBQUM7SUFFTSxXQUFXLENBQUMsSUFBSTtRQUNyQixPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssa0JBQWtCLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMscUNBQXFDLENBQUM7SUFDaEcsQ0FBQztJQUVNLFdBQVcsQ0FBQyxJQUFJO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDNUYsQ0FBQztJQUVNLFdBQVcsQ0FBQyxRQUFnQixFQUFFLGFBQXNCO1FBQ3pELE1BQU0sV0FBVyxHQUFXLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxFQUFFLENBQUMsV0FBVyxDQUFDO1FBRTNFLElBQUksYUFBYSxJQUFJLFdBQVcsQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLFVBQVUsRUFBRTtZQUNsRSxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLEVBQUUsYUFBYSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUM5RSxPQUFPLEtBQUssQ0FBQztTQUNkO2FBQ0k7WUFDSCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7U0FDbEM7SUFDSCxDQUFDO0lBRU8sV0FBVyxDQUFDLEdBQVcsRUFBRSxLQUFhO1FBQzVDLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDakQsUUFBUSxDQUFDLElBQUksR0FBRyxRQUFRLENBQUM7UUFDekIsUUFBUSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUM7UUFDcEIsUUFBUSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFdEMsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQzs7O1lBNURGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsc0JBQXNCO2dCQUNoQyxxbERBQWdEOzthQUVqRDs7O1lBZFEsTUFBTTtZQU9TLFdBQVc7WUFBRSxXQUFXO1lBQW9CLFlBQVk7OztvQkFTN0UsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qKioqKioqKioqIEFuZ3VsYXIgKioqKioqKioqKi9cclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcblxyXG4vKioqKioqKioqKiBJb25pYyAqKioqKioqKioqL1xyXG5cclxuLyoqKioqKioqKiogUGx1Z2luICoqKioqKioqKiovXHJcblxyXG4vKioqKioqKioqKiBDb21wb25lbnQgJiBTZXJ2aWNlICoqKioqKioqKiovXHJcbmltcG9ydCB7IE9BdXRoTWVudUl0ZW0sIE1lbnVTZXJ2aWNlLCBBdXRoU2VydmljZSwgWkNvbXBvbmVudEhlbHBlciwgWkNvcmVTZXJ2aWNlIH0gZnJvbSAnbW1oZ2xvYmFsLXpjb3JlJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC11aWFwcG1lbnVjb250ZW50JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdWlhcHBtZW51Y29udGVudC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdWlhcHBtZW51Y29udGVudC5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVWlhcHBtZW51Y29udGVudENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KCkgaXRlbXM6IEFycmF5PE9BdXRoTWVudUl0ZW0+O1xyXG5cclxuICBjb2xvckFycmF5OiBhbnlbXSA9IFtcclxuICAgIHsgc3Ryb2tlOiAnI0Y1OTYwMCcsIGNvbG9yOiAnI0Y1OTYwMCcgfSxcclxuXHJcbiAgICB7IHN0cm9rZTogJyNGNUM4MDAnLCBjb2xvcjogJyNGNUM4MDAnIH0sXHJcbiAgICB7IHN0cm9rZTogJyNGNUVGMDAnLCBjb2xvcjogJyNGNUVGMDAnIH0sXHJcbiAgICB7IHN0cm9rZTogJyM4RkUzMDAnLCBjb2xvcjogJyM4RkUzMDAnIH0sXHJcbiAgICB7IHN0cm9rZTogJyMwMEIzM0QnLCBjb2xvcjogJyMwMEIzM0QnIH0sXHJcbiAgICB7IHN0cm9rZTogJyMwOTVEOUQnLCBjb2xvcjogJyMwOTVEOUQnIH0sXHJcbiAgICB7IHN0cm9rZTogJyMyMTE2QUEnLCBjb2xvcjogJyMyMTE2QUEnIH0sXHJcblxyXG4gICAgeyBzdHJva2U6ICcjNjUwOUE0JywgY29sb3I6ICcjNjUwOUE0JyB9LFxyXG4gICAgeyBzdHJva2U6ICcjQzQwMDZGJywgY29sb3I6ICcjQzQwMDZGJyB9LFxyXG4gICAgeyBzdHJva2U6ICcjRjUyQjAwJywgY29sb3I6ICcjRjUyQjAwJyB9XHJcbiAgXTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgcHJpdmF0ZSBtZW51U2VydmljZTogTWVudVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSxcclxuICAgIHByaXZhdGUgemNvcmVTZXJ2aWNlOiBaQ29yZVNlcnZpY2VcclxuICApIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXREaXZDbGFzcyhpdGVtKSB7XHJcbiAgICByZXR1cm4gaXRlbS5UeXBlID09PSAnZHJvcGRvd24tc3VibWVudScgPyAnZmxleC1zaG93JyA6ICdjb2wteHMtNCBjb2wtc20tNCBjb2wtbWQtMyBjb2wteGwtMic7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0TWVudUxpc3QoaXRlbSkge1xyXG4gICAgcmV0dXJuIGl0ZW0uVHlwZSA9PT0gJ2Ryb3Bkb3duLXN1Ym1lbnUnID8gdGhpcy5tZW51U2VydmljZS5nZXRNZW51Rm9sZGVyKGl0ZW0uVVJMKSA6IG51bGw7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbWVudU9uQ2xpY2socGF0aE5hbWU6IHN0cmluZywgYXBwQ2xpZW50UGF0aD86IHN0cmluZykge1xyXG4gICAgY29uc3Qgc3RhcnR1cFBhZ2U6IHN0cmluZyA9IHRoaXMuemNvcmVTZXJ2aWNlLmdldEVudmlyb25tZW50KCkuc3RhcnRVcFBhZ2U7XHJcblxyXG4gICAgaWYgKGFwcENsaWVudFBhdGggJiYgc3RhcnR1cFBhZ2UudG9Mb2NhbGVMb3dlckNhc2UoKSA9PSAnbGF1bmNoZXInKSB7XHJcbiAgICAgIFpDb21wb25lbnRIZWxwZXIub3BlbkFwcENsaWVudFBhdGgocGF0aE5hbWUsIGFwcENsaWVudFBhdGgsIHRoaXMuYXV0aFNlcnZpY2UpOyBcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtwYXRoTmFtZV0pO1xyXG4gICAgfVxyXG4gIH0gXHJcblxyXG4gIHByaXZhdGUgc2V0TWFwSW5wdXQoa2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IG1hcElucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTtcclxuICAgIG1hcElucHV0LnR5cGUgPSAnaGlkZGVuJztcclxuICAgIG1hcElucHV0Lm5hbWUgPSBrZXk7XHJcbiAgICBtYXBJbnB1dC5zZXRBdHRyaWJ1dGUoJ3ZhbHVlJywgdmFsdWUpO1xyXG5cclxuICAgIHJldHVybiBtYXBJbnB1dDtcclxuICB9XHJcbn1cclxuIl19
|