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,59 +0,0 @@
|
|
|
1
|
-
/********** Angular **********/
|
|
2
|
-
import { Component, Input } from "@angular/core";
|
|
3
|
-
/********** Ionic **********/
|
|
4
|
-
/********** Plugin **********/
|
|
5
|
-
/********** Component & Service **********/
|
|
6
|
-
import { ZComponentHelper, ZComponentProperties } from 'mmhglobal-zcore';
|
|
7
|
-
export class ZlabelComponent {
|
|
8
|
-
constructor() {
|
|
9
|
-
this.componentProperties = new ZComponentProperties();
|
|
10
|
-
this.labelText = "";
|
|
11
|
-
this.setVisible = (status) => {
|
|
12
|
-
this.componentProperties.isVisible = status;
|
|
13
|
-
this.data.Visible = status;
|
|
14
|
-
};
|
|
15
|
-
this.setData = (data) => {
|
|
16
|
-
this.labelText = data;
|
|
17
|
-
};
|
|
18
|
-
}
|
|
19
|
-
ngOnInit() {
|
|
20
|
-
ZComponentHelper.setComponentProperties(this);
|
|
21
|
-
ZComponentHelper.registerComponent(this);
|
|
22
|
-
this.labelText = ZComponentHelper.getGroupValue(this.data.Label.toString(), this.group);
|
|
23
|
-
}
|
|
24
|
-
getReadOnlyValue() {
|
|
25
|
-
const readOnlyValue = ZComponentHelper.getGroupEvalValue.call(this, this.data.ReadOnly);
|
|
26
|
-
if (typeof readOnlyValue === 'function') {
|
|
27
|
-
return readOnlyValue();
|
|
28
|
-
}
|
|
29
|
-
return readOnlyValue;
|
|
30
|
-
}
|
|
31
|
-
isVisible() {
|
|
32
|
-
if (this.componentProperties.isVisible === null) {
|
|
33
|
-
return ZComponentHelper.isVisible.call(this, this.data);
|
|
34
|
-
}
|
|
35
|
-
else {
|
|
36
|
-
return this.componentProperties.isVisible;
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
getIon_InvalidClass(form, data) {
|
|
40
|
-
return ZComponentHelper.getIon_InvalidClass(form, data);
|
|
41
|
-
}
|
|
42
|
-
getClass(form, data) {
|
|
43
|
-
return `${ZComponentHelper.getIon_InvalidClass(form, data)} ${data.DivClass}`;
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
ZlabelComponent.decorators = [
|
|
47
|
-
{ type: Component, args: [{
|
|
48
|
-
selector: 'app-zlabel',
|
|
49
|
-
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",
|
|
50
|
-
styles: [".subtitle{font-weight:700;text-decoration:underline}.mediumFont .label,.subtitle .label{font-size:15px}.label{font-size:12px;white-space:pre-wrap!important}.boldFont .label{font-weight:700}.underlineFont .label{text-decoration:underline}"]
|
|
51
|
-
},] }
|
|
52
|
-
];
|
|
53
|
-
ZlabelComponent.ctorParameters = () => [];
|
|
54
|
-
ZlabelComponent.propDecorators = {
|
|
55
|
-
data: [{ type: Input }],
|
|
56
|
-
group: [{ type: Input }],
|
|
57
|
-
form: [{ type: Input }]
|
|
58
|
-
};
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiemxhYmVsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21taGdsb2JhbC1keW5hbWljZm9ybS9zcmMvbGliL3psYWJlbC96bGFiZWwuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtCQUErQjtBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd6RCw2QkFBNkI7QUFFN0IsOEJBQThCO0FBRTlCLDJDQUEyQztBQUMzQyxPQUFPLEVBQ08sZ0JBQWdCLEVBQ1osb0JBQW9CLEVBQ3JDLE1BQU0saUJBQWlCLENBQUM7QUFRekIsTUFBTSxPQUFPLGVBQWU7SUFTMUI7UUFKQSx3QkFBbUIsR0FBRyxJQUFJLG9CQUFvQixFQUFFLENBQUM7UUFFakQsY0FBUyxHQUFHLEVBQUUsQ0FBQztRQTBCUixlQUFVLEdBQUcsQ0FBQyxNQUFlLEVBQUUsRUFBRTtZQUN0QyxJQUFJLENBQUMsbUJBQW1CLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQztZQUM1QyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7UUFDN0IsQ0FBQyxDQUFBO1FBVU0sWUFBTyxHQUFHLENBQUMsSUFBUyxFQUFFLEVBQUU7WUFDN0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDeEIsQ0FBQyxDQUFBO0lBdkNlLENBQUM7SUFFakIsUUFBUTtRQUNOLGdCQUFnQixDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzlDLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxTQUFTLEdBQUcsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxRixDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsTUFBTSxhQUFhLEdBQUcsZ0JBQWdCLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3hGLElBQUksT0FBTyxhQUFhLEtBQUssVUFBVSxFQUFFO1lBQ3ZDLE9BQU8sYUFBYSxFQUFFLENBQUM7U0FDeEI7UUFDRCxPQUFPLGFBQWEsQ0FBQztJQUN2QixDQUFDO0lBRUQsU0FBUztRQUNQLElBQUksSUFBSSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsS0FBSyxJQUFJLEVBQUU7WUFDL0MsT0FBTyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDekQ7YUFBTTtZQUNMLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQztTQUMzQztJQUNILENBQUM7SUFPRCxtQkFBbUIsQ0FBQyxJQUFlLEVBQUUsSUFBWTtRQUMvQyxPQUFPLGdCQUFnQixDQUFDLG1CQUFtQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQsUUFBUSxDQUFDLElBQWUsRUFBRSxJQUFZO1FBQ3BDLE9BQU8sR0FBRyxnQkFBZ0IsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2hGLENBQUM7OztZQWpERixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLFlBQVk7Z0JBQ3RCLDhZQUFzQzs7YUFFdkM7Ozs7bUJBRUUsS0FBSztvQkFDTCxLQUFLO21CQUNMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKioqKioqKioqKiBBbmd1bGFyICoqKioqKioqKiovXHJcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbi8qKioqKioqKioqIElvbmljICoqKioqKioqKiovXHJcblxyXG4vKioqKioqKioqKiBQbHVnaW4gKioqKioqKioqKi9cclxuXHJcbi8qKioqKioqKioqIENvbXBvbmVudCAmIFNlcnZpY2UgKioqKioqKioqKi9cclxuaW1wb3J0IHsgXHJcbiAgWkNvbXBvbmVudCwgWkNvbXBvbmVudEhlbHBlcixcclxuICBaRmllbGQsIFpHcm91cCwgWkNvbXBvbmVudFByb3BlcnRpZXMgXHJcbn0gZnJvbSAnbW1oZ2xvYmFsLXpjb3JlJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC16bGFiZWwnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi96bGFiZWwuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3psYWJlbC5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgWmxhYmVsQ29tcG9uZW50IGltcGxlbWVudHMgWkNvbXBvbmVudCwgT25Jbml0IHtcclxuICBASW5wdXQoKSBkYXRhOiBaRmllbGQ7XHJcbiAgQElucHV0KCkgZ3JvdXA6IFpHcm91cDtcclxuICBASW5wdXQoKSBmb3JtOiBGb3JtR3JvdXA7XHJcblxyXG4gIGNvbXBvbmVudFByb3BlcnRpZXMgPSBuZXcgWkNvbXBvbmVudFByb3BlcnRpZXMoKTtcclxuXHJcbiAgbGFiZWxUZXh0ID0gXCJcIjtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBaQ29tcG9uZW50SGVscGVyLnNldENvbXBvbmVudFByb3BlcnRpZXModGhpcyk7XHJcbiAgICBaQ29tcG9uZW50SGVscGVyLnJlZ2lzdGVyQ29tcG9uZW50KHRoaXMpO1xyXG4gICAgdGhpcy5sYWJlbFRleHQgPSBaQ29tcG9uZW50SGVscGVyLmdldEdyb3VwVmFsdWUodGhpcy5kYXRhLkxhYmVsLnRvU3RyaW5nKCksIHRoaXMuZ3JvdXApO1xyXG4gIH1cclxuXHJcbiAgZ2V0UmVhZE9ubHlWYWx1ZSgpIHtcclxuICAgIGNvbnN0IHJlYWRPbmx5VmFsdWUgPSBaQ29tcG9uZW50SGVscGVyLmdldEdyb3VwRXZhbFZhbHVlLmNhbGwodGhpcywgdGhpcy5kYXRhLlJlYWRPbmx5KTtcclxuICAgIGlmICh0eXBlb2YgcmVhZE9ubHlWYWx1ZSA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICByZXR1cm4gcmVhZE9ubHlWYWx1ZSgpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlYWRPbmx5VmFsdWU7XHJcbiAgfVxyXG5cclxuICBpc1Zpc2libGUoKSB7XHJcbiAgICBpZiAodGhpcy5jb21wb25lbnRQcm9wZXJ0aWVzLmlzVmlzaWJsZSA9PT0gbnVsbCkge1xyXG4gICAgICByZXR1cm4gWkNvbXBvbmVudEhlbHBlci5pc1Zpc2libGUuY2FsbCh0aGlzLCB0aGlzLmRhdGEpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMuY29tcG9uZW50UHJvcGVydGllcy5pc1Zpc2libGU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0VmlzaWJsZSA9IChzdGF0dXM6IGJvb2xlYW4pID0+IHtcclxuICAgIHRoaXMuY29tcG9uZW50UHJvcGVydGllcy5pc1Zpc2libGUgPSBzdGF0dXM7XHJcbiAgICB0aGlzLmRhdGEuVmlzaWJsZSA9IHN0YXR1cztcclxuICB9XHJcblxyXG4gIGdldElvbl9JbnZhbGlkQ2xhc3MoZm9ybTogRm9ybUdyb3VwLCBkYXRhOiBaRmllbGQpIHtcclxuICAgIHJldHVybiBaQ29tcG9uZW50SGVscGVyLmdldElvbl9JbnZhbGlkQ2xhc3MoZm9ybSwgZGF0YSk7XHJcbiAgfVxyXG5cclxuICBnZXRDbGFzcyhmb3JtOiBGb3JtR3JvdXAsIGRhdGE6IFpGaWVsZCkge1xyXG4gICAgcmV0dXJuIGAke1pDb21wb25lbnRIZWxwZXIuZ2V0SW9uX0ludmFsaWRDbGFzcyhmb3JtLCBkYXRhKX0gJHtkYXRhLkRpdkNsYXNzfWA7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0RGF0YSA9IChkYXRhOiBhbnkpID0+IHtcclxuICAgIHRoaXMubGFiZWxUZXh0ID0gZGF0YTtcclxuICB9XHJcbn0iXX0=
|
|
@@ -1,215 +0,0 @@
|
|
|
1
|
-
/********** Angular **********/
|
|
2
|
-
import { Component, Input } from "@angular/core";
|
|
3
|
-
/********** Component & Service **********/
|
|
4
|
-
import { FieldService, ResourceApiService, WorkflowService, ZComponentHelper, ZComponentProperties } from 'mmhglobal-zcore';
|
|
5
|
-
export class ZmfbComponent {
|
|
6
|
-
constructor(fieldService, resourceApiService, workflowService) {
|
|
7
|
-
this.fieldService = fieldService;
|
|
8
|
-
this.resourceApiService = resourceApiService;
|
|
9
|
-
this.workflowService = workflowService;
|
|
10
|
-
this.componentProperties = new ZComponentProperties();
|
|
11
|
-
this.positionMode = 'fixed';
|
|
12
|
-
this.bottomEnd = { vertical: 'bottom', horizontal: 'end' };
|
|
13
|
-
this.items = [];
|
|
14
|
-
this.dialOpen = false;
|
|
15
|
-
this.isWorkflowButton = false;
|
|
16
|
-
this.buttonColor = 'info';
|
|
17
|
-
this.setVisible = (status) => {
|
|
18
|
-
this.componentProperties.isVisible = status;
|
|
19
|
-
this.data.Visible = status;
|
|
20
|
-
};
|
|
21
|
-
this.events = [];
|
|
22
|
-
/******************** zWorkflowButton ********************/
|
|
23
|
-
// URL required
|
|
24
|
-
// eslint-disable-next-line @typescript-eslint/naming-convention,no-underscore-dangle,id-blacklist,id-match
|
|
25
|
-
this.e1wfs_wfcGetWorkflowButtonURL = this.resourceApiService.getURL("e1wfs_wfcGetWorkflowButtonURL");
|
|
26
|
-
// eslint-disable-next-line @typescript-eslint/naming-convention,no-underscore-dangle,id-blacklist,id-match
|
|
27
|
-
this.e1wfs_wfc_getWorkflowInitialStatusURL = this.resourceApiService.getURL("e1wfs_wfc_getWorkflowInitialStatusURL");
|
|
28
|
-
// eslint-disable-next-line @typescript-eslint/naming-convention, no-underscore-dangle, id-blacklist, id-match
|
|
29
|
-
this.e1wfs_wfc_getDocumentStatusURL = this.resourceApiService.getURL("e1wfs_wfc_getDocumentStatusURL");
|
|
30
|
-
}
|
|
31
|
-
/******************** Common function ********************/
|
|
32
|
-
ngOnInit() {
|
|
33
|
-
ZComponentHelper.setComponentProperties(this);
|
|
34
|
-
ZComponentHelper.registerComponent(this);
|
|
35
|
-
this.data = this.getFirstzButton(this.group.fields);
|
|
36
|
-
if (this.data) {
|
|
37
|
-
if (!ZComponentHelper.isNullUndefinedEmpty(this.data.WorkflowCode)) {
|
|
38
|
-
// handle as zWorkflowButton
|
|
39
|
-
this.isWorkflowButton = true;
|
|
40
|
-
this.loadWorkflowButton();
|
|
41
|
-
}
|
|
42
|
-
else {
|
|
43
|
-
const field$ = this.fieldService.getFormFieldCode(this.data.Value, "FormField", null, null);
|
|
44
|
-
try {
|
|
45
|
-
field$.subscribe(data => {
|
|
46
|
-
data.forEach((button) => {
|
|
47
|
-
const label = this.getButtonLabel(button);
|
|
48
|
-
const _isVisible = this.isBtnVisible(button.Visible);
|
|
49
|
-
if (_isVisible) {
|
|
50
|
-
this.items.push({
|
|
51
|
-
label: label,
|
|
52
|
-
icon: ZComponentHelper.getIcon(button.Icon),
|
|
53
|
-
'clickEvent': button.ClickEvent,
|
|
54
|
-
'click': (y) => {
|
|
55
|
-
this.buttonClick(button);
|
|
56
|
-
}
|
|
57
|
-
});
|
|
58
|
-
}
|
|
59
|
-
});
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
|
-
catch (error) {
|
|
63
|
-
console.error("error: ", error);
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
isMobileScreen() {
|
|
69
|
-
const v = ZComponentHelper.isMobileScreen();
|
|
70
|
-
return v;
|
|
71
|
-
}
|
|
72
|
-
isBtnVisible(fieldExpr) {
|
|
73
|
-
if (fieldExpr !== false && !fieldExpr) {
|
|
74
|
-
return true;
|
|
75
|
-
}
|
|
76
|
-
const v = ZComponentHelper.getGroupEvalValue.call(this, fieldExpr);
|
|
77
|
-
return v;
|
|
78
|
-
}
|
|
79
|
-
/******************** zButton ********************/
|
|
80
|
-
getFirstzButton(data) {
|
|
81
|
-
// data.forEach(d => {
|
|
82
|
-
for (let i = 0; i < data.length - 1; i++) {
|
|
83
|
-
if (data[i].Type === "zbuttons" || data[i].Type === "zworkflowbuttons") {
|
|
84
|
-
return data[i];
|
|
85
|
-
}
|
|
86
|
-
else {
|
|
87
|
-
if (Array.isArray(data[i].Value)) {
|
|
88
|
-
this.getFirstzButton(data[i].Value);
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
return null;
|
|
93
|
-
}
|
|
94
|
-
getButtonLabel(button) {
|
|
95
|
-
let buttonLabel = button.Label;
|
|
96
|
-
if (!buttonLabel) {
|
|
97
|
-
buttonLabel = button.Name;
|
|
98
|
-
}
|
|
99
|
-
let labelExpr = buttonLabel.match(/^{{.*}}$/gi);
|
|
100
|
-
if (labelExpr) {
|
|
101
|
-
labelExpr = labelExpr[0].slice(2, -2);
|
|
102
|
-
const label = ZComponentHelper.getGroupValue(labelExpr, this.group);
|
|
103
|
-
return label;
|
|
104
|
-
}
|
|
105
|
-
else {
|
|
106
|
-
return buttonLabel;
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
buttonClick(button) {
|
|
110
|
-
this.group.subject.next({
|
|
111
|
-
type: "buttonClick",
|
|
112
|
-
target: button.ClickEvent,
|
|
113
|
-
data: null
|
|
114
|
-
});
|
|
115
|
-
}
|
|
116
|
-
onBlur() {
|
|
117
|
-
//console.log('blur');
|
|
118
|
-
}
|
|
119
|
-
onFocus() {
|
|
120
|
-
if (this.isWorkflowButton) {
|
|
121
|
-
this.loadWorkflowButton();
|
|
122
|
-
}
|
|
123
|
-
//console.log('focus');
|
|
124
|
-
}
|
|
125
|
-
onOpen(e) {
|
|
126
|
-
this.dialOpen = true;
|
|
127
|
-
console.log('open');
|
|
128
|
-
}
|
|
129
|
-
onClose(e) {
|
|
130
|
-
this.dialOpen = false;
|
|
131
|
-
console.log('close');
|
|
132
|
-
}
|
|
133
|
-
onDialItemClick(e) {
|
|
134
|
-
e.item.click();
|
|
135
|
-
}
|
|
136
|
-
loadWorkflowButton() {
|
|
137
|
-
// actionBtnList: Array<ZField>;
|
|
138
|
-
this.items = [];
|
|
139
|
-
// Get WFS_DocumentId if any.
|
|
140
|
-
let documentId = null;
|
|
141
|
-
if (this.group.zModel) {
|
|
142
|
-
documentId = this.group.zModel['WFS_DocumentId'];
|
|
143
|
-
}
|
|
144
|
-
// Set the documentId to the service
|
|
145
|
-
this.workflowService.appendWFS_DocumentsInfo(this.data.WorkflowCode, documentId);
|
|
146
|
-
try {
|
|
147
|
-
// Set param for field
|
|
148
|
-
const field$ = this.workflowService.getWorkflowButtonsField(this.data.WorkflowCode, this.e1wfs_wfcGetWorkflowButtonURL, String(false));
|
|
149
|
-
field$.subscribe(data => {
|
|
150
|
-
data.forEach((button) => {
|
|
151
|
-
const label = this.getButtonLabel(button);
|
|
152
|
-
const attributes = JSON.parse(button.Attributes);
|
|
153
|
-
const buttonLabel = attributes.Label || label;
|
|
154
|
-
const _isVisible = this.isBtnVisible(button.Visible);
|
|
155
|
-
if (_isVisible) {
|
|
156
|
-
this.items.push({
|
|
157
|
-
label: buttonLabel,
|
|
158
|
-
fieldAttribute: button,
|
|
159
|
-
icon: ZComponentHelper.getIcon(attributes.Icon),
|
|
160
|
-
'clickEvent': button.ClickEvent,
|
|
161
|
-
'click': (y) => {
|
|
162
|
-
this.workflowButtonClick(button);
|
|
163
|
-
}
|
|
164
|
-
});
|
|
165
|
-
}
|
|
166
|
-
//ZComponentHelper.collectWorkflowButton(this.group, this.data.WorkflowCode, buttonLabel, button, attributes, mappedInfo);
|
|
167
|
-
});
|
|
168
|
-
});
|
|
169
|
-
}
|
|
170
|
-
catch (error) {
|
|
171
|
-
console.error("error: ", error);
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
workflowButtonClick(button) {
|
|
175
|
-
// Type 1 == functional;
|
|
176
|
-
// Type 2 == GOTO;
|
|
177
|
-
const attributes = JSON.parse(button.Attributes);
|
|
178
|
-
switch (button.TypeCode.toUpperCase()) {
|
|
179
|
-
case "FUNCTION":
|
|
180
|
-
console.log("Functional Button: ", button.Name);
|
|
181
|
-
this.workflowService.functionalButton_OnClick(attributes, this.group);
|
|
182
|
-
break;
|
|
183
|
-
case "GOTO":
|
|
184
|
-
console.log("GOTO Button: ", button.Name);
|
|
185
|
-
this.workflowService.gotoButton_Onclick(button, this.data, attributes, this.group, false).subscribe(res => {
|
|
186
|
-
this.loadWorkflowButton();
|
|
187
|
-
if (res) {
|
|
188
|
-
this.workflowService.triggerSendEmail(this.group).subscribe();
|
|
189
|
-
}
|
|
190
|
-
});
|
|
191
|
-
break;
|
|
192
|
-
default:
|
|
193
|
-
console.log("Invalid Button Type. ", button.Name);
|
|
194
|
-
break;
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
ZmfbComponent.decorators = [
|
|
199
|
-
{ type: Component, args: [{
|
|
200
|
-
selector: 'app-zmfb',
|
|
201
|
-
template: "<div class=\"zmfb-wrap\">\r\n <div class=\"k-overlay\" *ngIf=\"dialOpen\"></div>\r\n <kendo-floatingactionbutton icon=\"plus\"\r\n [themeColor]=\"buttonColor\"\r\n [positionMode]=\"positionMode\"\r\n [align]=\"bottomEnd\"\r\n [dialItems]=\"items\"\r\n (blur)=\"onBlur()\"\r\n (focus)=\"onFocus()\"\r\n (open)=\"onOpen($event)\"\r\n (close)=\"onClose($event)\"\r\n (dialItemClick)=\"onDialItemClick($event)\">\r\n <ng-template kendoDialItemTemplate let-item let-isFocused=\"isFocused\">\r\n <span class=\"k-fab-item-text\">\r\n <span>{{ item.label }}</span>\r\n </span>\r\n <kendo-avatar shape=\"circle\" [themeColor]=\"buttonColor\">\r\n <span class=\"k-icon k-i-{{ item.icon }}\"></span>\r\n </kendo-avatar> \r\n </ng-template>\r\n </kendo-floatingactionbutton>\r\n</div>\r\n",
|
|
202
|
-
styles: [".button-item{padding:8px 10px;width:100%;display:flex;align-items:center;background-color:#fff}.button-details{margin-left:8px;display:flex;flex-direction:column;align-items:flex-start}.custom-focused-class{box-shadow:inset 0 0 8px rgba(0,0,0,.2)}.zmfb-wrap{display:flex;justify-content:center;margin-top:60px}@media only screen and (max-device-width:768px){.k-bottom-end,.k-pos-bottom-end{padding-bottom:16vh}}"]
|
|
203
|
-
},] }
|
|
204
|
-
];
|
|
205
|
-
ZmfbComponent.ctorParameters = () => [
|
|
206
|
-
{ type: FieldService },
|
|
207
|
-
{ type: ResourceApiService },
|
|
208
|
-
{ type: WorkflowService }
|
|
209
|
-
];
|
|
210
|
-
ZmfbComponent.propDecorators = {
|
|
211
|
-
data: [{ type: Input }],
|
|
212
|
-
group: [{ type: Input }],
|
|
213
|
-
form: [{ type: Input }]
|
|
214
|
-
};
|
|
215
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem1mYi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tbWhnbG9iYWwtZHluYW1pY2Zvcm0vc3JjL2xpYi96bWZiL3ptZmIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtCQUErQjtBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVF6RCwyQ0FBMkM7QUFDM0MsT0FBTyxFQUNMLFlBQVksRUFBRSxrQkFBa0IsRUFBaUIsZUFBZSxFQUNwRCxnQkFBZ0IsRUFBeUIsb0JBQW9CLEVBQzFFLE1BQU0saUJBQWlCLENBQUM7QUFRekIsTUFBTSxPQUFPLGFBQWE7SUFheEIsWUFDVSxZQUEwQixFQUMxQixrQkFBc0MsRUFDdEMsZUFBZ0M7UUFGaEMsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUN0QyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFYMUMsd0JBQW1CLEdBQUcsSUFBSSxvQkFBb0IsRUFBRSxDQUFDO1FBQ2pELGlCQUFZLEdBQW9CLE9BQU8sQ0FBQztRQUN4QyxjQUFTLEdBQWEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUNoRSxVQUFLLEdBQWUsRUFBRSxDQUFDO1FBQ3ZCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDMUIscUJBQWdCLEdBQVksS0FBSyxDQUFDO1FBQ2xDLGdCQUFXLEdBQVcsTUFBTSxDQUFDO1FBb0V0QixlQUFVLEdBQUcsQ0FBQyxNQUFlLEVBQUUsRUFBRTtZQUN0QyxJQUFJLENBQUMsbUJBQW1CLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQztZQUM1QyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7UUFDN0IsQ0FBQyxDQUFBO1FBeUNNLFdBQU0sR0FBYSxFQUFFLENB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b0JBQ0wsS0FBSzttQkFDTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLyoqKioqKioqKiogQW5ndWxhciAqKioqKioqKioqL1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG4vKioqKioqKioqKiBJb25pYyAqKioqKioqKioqL1xyXG5cclxuLyoqKioqKioqKiogUGx1Z2luICoqKioqKioqKiovXHJcbmltcG9ydCB7IERpYWxJdGVtQ2xpY2tFdmVudCwgRmFiQWxpZ24sIEZhYlBvc2l0aW9uTW9kZSB9IGZyb20gJ0Bwcm9ncmVzcy9rZW5kby1hbmd1bGFyLWJ1dHRvbnMnO1xyXG5cclxuLyoqKioqKioqKiogQ29tcG9uZW50ICYgU2VydmljZSAqKioqKioqKioqL1xyXG5pbXBvcnQgeyBcclxuICBGaWVsZFNlcnZpY2UsIFJlc291cmNlQXBpU2VydmljZSwgV2ViQXBpU2VydmljZSwgV29ya2Zsb3dTZXJ2aWNlLFxyXG4gIFpDb21wb25lbnQsIFpDb21wb25lbnRIZWxwZXIsIFpDb21wb25lbnRPdXRwdXRFdmVudCwgWkNvbXBvbmVudFByb3BlcnRpZXMsIFpGaWVsZCwgWkdyb3VwXHJcbn0gZnJvbSAnbW1oZ2xvYmFsLXpjb3JlJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC16bWZiJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vem1mYi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vem1mYi5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgWm1mYkNvbXBvbmVudCBpbXBsZW1lbnRzIFpDb21wb25lbnQsIE9uSW5pdCB7XHJcbiAgQElucHV0KCkgZGF0YTogWkZpZWxkO1xyXG4gIEBJbnB1dCgpIGdyb3VwOiBaR3JvdXA7XHJcbiAgQElucHV0KCkgZm9ybTogRm9ybUdyb3VwO1xyXG5cclxuICBjb21wb25lbnRQcm9wZXJ0aWVzID0gbmV3IFpDb21wb25lbnRQcm9wZXJ0aWVzKCk7XHJcbiAgcG9zaXRpb25Nb2RlOiBGYWJQb3NpdGlvbk1vZGUgPSAnZml4ZWQnO1xyXG4gIGJvdHRvbUVuZDogRmFiQWxpZ24gPSB7IHZlcnRpY2FsOiAnYm90dG9tJywgaG9yaXpvbnRhbDogJ2VuZCcgfTtcclxuICBpdGVtczogQXJyYXk8YW55PiA9IFtdO1xyXG4gIGRpYWxPcGVuOiBib29sZWFuID0gZmFsc2U7IFxyXG4gIGlzV29ya2Zsb3dCdXR0b246IGJvb2xlYW4gPSBmYWxzZTtcclxuICBidXR0b25Db2xvcjogc3RyaW5nID0gJ2luZm8nO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZmllbGRTZXJ2aWNlOiBGaWVsZFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlc291cmNlQXBpU2VydmljZTogUmVzb3VyY2VBcGlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB3b3JrZmxvd1NlcnZpY2U6IFdvcmtmbG93U2VydmljZVxyXG4gICkgeyB9XHJcblxyXG4vKioqKioqKioqKioqKioqKioqKiogQ29tbW9uIGZ1bmN0aW9uICoqKioqKioqKioqKioqKioqKioqL1xyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgWkNvbXBvbmVudEhlbHBlci5zZXRDb21wb25lbnRQcm9wZXJ0aWVzKHRoaXMpO1xyXG4gICAgWkNvbXBvbmVudEhlbHBlci5yZWdpc3RlckNvbXBvbmVudCh0aGlzKTtcclxuXHJcbiAgICB0aGlzLmRhdGEgPSB0aGlzLmdldEZpcnN0ekJ1dHRvbih0aGlzLmdyb3VwLmZpZWxkcyk7XHJcblxyXG4gICAgaWYgKHRoaXMuZGF0YSkge1xyXG4gICAgICBpZiAoIVpDb21wb25lbnRIZWxwZXIuaXNOdWxsVW5kZWZpbmVkRW1wdHkodGhpcy5kYXRhLldvcmtmbG93Q29kZSkpIHtcclxuICAgICAgICAvLyBoYW5kbGUgYXMgeldvcmtmbG93QnV0dG9uXHJcbiAgICAgICAgdGhpcy5pc1dvcmtmbG93QnV0dG9uID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmxvYWRXb3JrZmxvd0J1dHRvbigpO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIGNvbnN0IGZpZWxkJCA9IHRoaXMuZmllbGRTZXJ2aWNlLmdldEZvcm1GaWVsZENvZGUoXHJcbiAgICAgICAgICB0aGlzLmRhdGEuVmFsdWUsXHJcbiAgICAgICAgICBcIkZvcm1GaWVsZFwiLFxyXG4gICAgICAgICAgbnVsbCxcclxuICAgICAgICAgIG51bGxcclxuICAgICAgICApO1xyXG5cclxuXHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgIGZpZWxkJC5zdWJzY3JpYmUoZGF0YSA9PiB7XHJcbiAgICAgICAgICAgIGRhdGEuZm9yRWFjaCgoYnV0dG9uOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICBjb25zdCBsYWJlbCA9IHRoaXMuZ2V0QnV0dG9uTGFiZWwoYnV0dG9uKTtcclxuXHJcbiAgICAgICAgICAgICAgY29uc3QgX2lzVmlzaWJsZSA9IHRoaXMuaXNCdG5WaXNpYmxlKGJ1dHRvbi5WaXNpYmxlKTtcclxuICAgICAgICAgICAgICBpZiAoX2lzVmlzaWJsZSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pdGVtcy5wdXNoKHtcclxuICAgICAgICAgICAgICAgICAgbGFiZWw6IGxhYmVsLFxyXG4gICAgICAgICAgICAgICAgICBpY29uOiBaQ29tcG9uZW50SGVscGVyLmdldEljb24oYnV0dG9uLkljb24pLFxyXG4gICAgICAgICAgICAgICAgICAnY2xpY2tFdmVudCc6IGJ1dHRvbi5DbGlja0V2ZW50LFxyXG4gICAgICAgICAgICAgICAgICAnY2xpY2snOiAoeSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYnV0dG9uQ2xpY2soYnV0dG9uKTtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgICBjb25zb2xlLmVycm9yKFwiZXJyb3I6IFwiLCBlcnJvcik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpc01vYmlsZVNjcmVlbigpIHtcclxuICAgIGNvbnN0IHYgPSBaQ29tcG9uZW50SGVscGVyLmlzTW9iaWxlU2NyZWVuKCk7XHJcbiAgICByZXR1cm4gdjtcclxuICB9XHJcblxyXG4gIGlzQnRuVmlzaWJsZShmaWVsZEV4cHIpIHtcclxuICAgIGlmIChmaWVsZEV4cHIgIT09IGZhbHNlICYmICFmaWVsZEV4cHIpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICBjb25zdCB2ID0gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cEV2YWxWYWx1ZS5jYWxsKHRoaXMsIGZpZWxkRXhwcik7XHJcbiAgICByZXR1cm4gdjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRWaXNpYmxlID0gKHN0YXR1czogYm9vbGVhbikgPT4ge1xyXG4gICAgdGhpcy5jb21wb25lbnRQcm9wZXJ0aWVzLmlzVmlzaWJsZSA9IHN0YXR1cztcclxuICAgIHRoaXMuZGF0YS5WaXNpYmxlID0gc3RhdHVzO1xyXG4gIH1cclxuICAgXHJcbiAgLyoqKioqKioqKioqKioqKioqKioqIHpCdXR0b24gKioqKioqKioqKioqKioqKioqKiovXHJcbiAgcHJpdmF0ZSBnZXRGaXJzdHpCdXR0b24oZGF0YTogYW55W10pIHtcclxuICAgIC8vIGRhdGEuZm9yRWFjaChkID0+IHtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZGF0YS5sZW5ndGggLSAxOyBpKyspIHtcclxuICAgICAgaWYgKGRhdGFbaV0uVHlwZSA9PT0gXCJ6YnV0dG9uc1wiIHx8IGRhdGFbaV0uVHlwZSA9PT0gXCJ6d29ya2Zsb3didXR0b25zXCIpIHtcclxuICAgICAgICByZXR1cm4gZGF0YVtpXTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShkYXRhW2ldLlZhbHVlKSkge1xyXG4gICAgICAgICAgdGhpcy5nZXRGaXJzdHpCdXR0b24oZGF0YVtpXS5WYWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0QnV0dG9uTGFiZWwoYnV0dG9uOiBhbnkpIHsgXHJcbiAgICBsZXQgYnV0dG9uTGFiZWwgPSBidXR0b24uTGFiZWw7XHJcbiAgICBpZiAoIWJ1dHRvbkxhYmVsKSB7XHJcbiAgICAgIGJ1dHRvbkxhYmVsID0gYnV0dG9uLk5hbWU7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGxhYmVsRXhwciA9IGJ1dHRvbkxhYmVsLm1hdGNoKC9ee3suKn19JC9naSk7XHJcbiAgICBpZiAobGFiZWxFeHByKSB7XHJcbiAgICAgIGxhYmVsRXhwciA9IGxhYmVsRXhwclswXS5zbGljZSgyLCAtMik7XHJcbiAgICAgIGNvbnN0IGxhYmVsID0gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cFZhbHVlKGxhYmVsRXhwciwgdGhpcy5ncm91cCk7XHJcbiAgICAgIHJldHVybiBsYWJlbDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBidXR0b25MYWJlbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgYnV0dG9uQ2xpY2soYnV0dG9uOiBhbnkpIHsgXHJcbiAgICB0aGlzLmdyb3VwLnN1YmplY3QubmV4dCh7XHJcbiAgICAgIHR5cGU6IFwiYnV0dG9uQ2xpY2tcIixcclxuICAgICAgdGFyZ2V0OiBidXR0b24uQ2xpY2tFdmVudCxcclxuICAgICAgZGF0YTogbnVsbFxyXG4gICAgfSBhcyBaQ29tcG9uZW50T3V0cHV0RXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGV2ZW50czogc3RyaW5nW10gPSBbXTtcclxuXHJcbiAgcHVibGljIG9uQmx1cigpOiB2b2lkIHtcclxuICAgIC8vY29uc29sZS5sb2coJ2JsdXInKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkZvY3VzKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuaXNXb3JrZmxvd0J1dHRvbikge1xyXG4gICAgICB0aGlzLmxvYWRXb3JrZmxvd0J1dHRvbigpO1xyXG4gICAgfVxyXG4gICAgLy9jb25zb2xlLmxvZygnZm9jdXMnKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbk9wZW4oZSk6IHZvaWQge1xyXG4gICAgdGhpcy5kaWFsT3BlbiA9IHRydWU7XHJcbiAgICBjb25zb2xlLmxvZygnb3BlbicpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uQ2xvc2UoZSk6IHZvaWQge1xyXG4gICAgdGhpcy5kaWFsT3BlbiA9IGZhbHNlO1xyXG4gICAgY29uc29sZS5sb2coJ2Nsb3NlJyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25EaWFsSXRlbUNsaWNrKGU6IERpYWxJdGVtQ2xpY2tFdmVudCk6IHZvaWQgeyBcclxuICAgIGUuaXRlbS5jbGljaygpOyBcclxuICB9XHJcblxyXG4gIC8qKioqKioqKioqKioqKioqKioqKiB6V29ya2Zsb3dCdXR0b24gKioqKioqKioqKioqKioqKioqKiovXHJcbiAgLy8gVVJMIHJlcXVpcmVkXHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvbixuby11bmRlcnNjb3JlLWRhbmdsZSxpZC1ibGFja2xpc3QsaWQtbWF0Y2hcclxuICBlMXdmc193ZmNHZXRXb3JrZmxvd0J1dHRvblVSTCA9IHRoaXMucmVzb3VyY2VBcGlTZXJ2aWNlLmdldFVSTChcImUxd2ZzX3dmY0dldFdvcmtmbG93QnV0dG9uVVJMXCIpO1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb24sbm8tdW5kZXJzY29yZS1kYW5nbGUsaWQtYmxhY2tsaXN0LGlkLW1hdGNoXHJcbiAgZTF3ZnNfd2ZjX2dldFdvcmtmbG93SW5pdGlhbFN0YXR1c1VSTCA9IHRoaXMucmVzb3VyY2VBcGlTZXJ2aWNlLmdldFVSTChcImUxd2ZzX3dmY19nZXRXb3JrZmxvd0luaXRpYWxTdGF0dXNVUkxcIik7XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvbiwgbm8tdW5kZXJzY29yZS1kYW5nbGUsIGlkLWJsYWNrbGlzdCwgaWQtbWF0Y2hcclxuICBlMXdmc193ZmNfZ2V0RG9jdW1lbnRTdGF0dXNVUkwgPSB0aGlzLnJlc291cmNlQXBpU2VydmljZS5nZXRVUkwoXCJlMXdmc193ZmNfZ2V0RG9jdW1lbnRTdGF0dXNVUkxcIik7XHJcblxyXG5cclxuICBwcml2YXRlIGxvYWRXb3JrZmxvd0J1dHRvbigpIHtcclxuICAgIC8vICBhY3Rpb25CdG5MaXN0OiBBcnJheTxaRmllbGQ+O1xyXG4gICAgdGhpcy5pdGVtcyA9IFtdO1xyXG5cclxuICAgIC8vIEdldCBXRlNfRG9jdW1lbnRJZCBpZiBhbnkuXHJcbiAgICBsZXQgZG9jdW1lbnRJZCA9IG51bGw7XHJcbiAgICBpZiAodGhpcy5ncm91cC56TW9kZWwpIHtcclxuICAgICAgZG9jdW1lbnRJZCA9IHRoaXMuZ3JvdXAuek1vZGVsWydXRlNfRG9jdW1lbnRJZCddO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFNldCB0aGUgZG9jdW1lbnRJZCB0byB0aGUgc2VydmljZVxyXG4gICAgdGhpcy53b3JrZmxvd1NlcnZpY2UuYXBwZW5kV0ZTX0RvY3VtZW50c0luZm8odGhpcy5kYXRhLldvcmtmbG93Q29kZSwgZG9jdW1lbnRJZCk7XHJcblxyXG4gICAgdHJ5IHtcclxuICAgICAgLy8gU2V0IHBhcmFtIGZvciBmaWVsZFxyXG4gICAgICBjb25zdCBmaWVsZCQgPSB0aGlzLndvcmtmbG93U2VydmljZS5nZXRXb3JrZmxvd0J1dHRvbnNGaWVsZChcclxuICAgICAgICB0aGlzLmRhdGEuV29ya2Zsb3dDb2RlLFxyXG4gICAgICAgIHRoaXMuZTF3ZnNfd2ZjR2V0V29ya2Zsb3dCdXR0b25VUkwsXHJcbiAgICAgICAgU3RyaW5nKGZhbHNlKVxyXG4gICAgICApO1xyXG5cclxuICAgICAgZmllbGQkLnN1YnNjcmliZShkYXRhID0+IHtcclxuICAgICAgICBkYXRhLmZvckVhY2goKGJ1dHRvbjogYW55KSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBsYWJlbCA9IHRoaXMuZ2V0QnV0dG9uTGFiZWwoYnV0dG9uKTtcclxuICAgICAgICAgIGNvbnN0IGF0dHJpYnV0ZXMgPSBKU09OLnBhcnNlKGJ1dHRvbi5BdHRyaWJ1dGVzKTtcclxuICAgICAgICAgIGNvbnN0IGJ1dHRvbkxhYmVsID0gYXR0cmlidXRlcy5MYWJlbCB8fCBsYWJlbDtcclxuICAgICAgICAgIGNvbnN0IF9pc1Zpc2libGUgPSB0aGlzLmlzQnRuVmlzaWJsZShidXR0b24uVmlzaWJsZSk7XHJcblxyXG4gICAgICAgICAgaWYgKF9pc1Zpc2libGUpIHsgXHJcbiAgICAgICAgICAgIHRoaXMuaXRlbXMucHVzaCh7XHJcbiAgICAgICAgICAgICAgbGFiZWw6IGJ1dHRvbkxhYmVsLFxyXG4gICAgICAgICAgICAgIGZpZWxkQXR0cmlidXRlOiBidXR0b24sXHJcbiAgICAgICAgICAgICAgaWNvbjogWkNvbXBvbmVudEhlbHBlci5nZXRJY29uKGF0dHJpYnV0ZXMuSWNvbiksXHJcbiAgICAgICAgICAgICAgJ2NsaWNrRXZlbnQnOiBidXR0b24uQ2xpY2tFdmVudCxcclxuICAgICAgICAgICAgICAnY2xpY2snOiAoeSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy53b3JrZmxvd0J1dHRvbkNsaWNrKGJ1dHRvbik7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH0gXHJcbiAgICAgICAgICAvL1pDb21wb25lbnRIZWxwZXIuY29sbGVjdFdvcmtmbG93QnV0dG9uKHRoaXMuZ3JvdXAsIHRoaXMuZGF0YS5Xb3JrZmxvd0NvZGUsIGJ1dHRvbkxhYmVsLCBidXR0b24sIGF0dHJpYnV0ZXMsIG1hcHBlZEluZm8pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KTsgXHJcbiAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICBjb25zb2xlLmVycm9yKFwiZXJyb3I6IFwiLCBlcnJvcik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB3b3JrZmxvd0J1dHRvbkNsaWNrKGJ1dHRvbjogYW55KSB7XHJcbiAgICAvLyBUeXBlIDEgPT0gZnVuY3Rpb25hbDtcclxuICAgIC8vIFR5cGUgMiA9PSBHT1RPO1xyXG4gICAgY29uc3QgYXR0cmlidXRlcyA9IEpTT04ucGFyc2UoYnV0dG9uLkF0dHJpYnV0ZXMpO1xyXG4gICAgc3dpdGNoIChidXR0b24uVHlwZUNvZGUudG9VcHBlckNhc2UoKSkge1xyXG4gICAgICBjYXNlIFwiRlVOQ1RJT05cIjpcclxuICAgICAgICBjb25zb2xlLmxvZyhcIkZ1bmN0aW9uYWwgQnV0dG9uOiBcIiwgYnV0dG9uLk5hbWUpO1xyXG4gICAgICAgIHRoaXMud29ya2Zsb3dTZXJ2aWNlLmZ1bmN0aW9uYWxCdXR0b25fT25DbGljayhhdHRyaWJ1dGVzLCB0aGlzLmdyb3VwKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBcIkdPVE9cIjpcclxuICAgICAgICBjb25zb2xlLmxvZyhcIkdPVE8gQnV0dG9uOiBcIiwgYnV0dG9uLk5hbWUpO1xyXG4gICAgICAgIHRoaXMud29ya2Zsb3dTZXJ2aWNlLmdvdG9CdXR0b25fT25jbGljayhidXR0b24sIHRoaXMuZGF0YSwgYXR0cmlidXRlcywgdGhpcy5ncm91cCwgZmFsc2UpLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICAgICAgdGhpcy5sb2FkV29ya2Zsb3dCdXR0b24oKTtcclxuICAgICAgICAgIGlmIChyZXMpIHtcclxuICAgICAgICAgICAgdGhpcy53b3JrZmxvd1NlcnZpY2UudHJpZ2dlclNlbmRFbWFpbCh0aGlzLmdyb3VwKS5zdWJzY3JpYmUoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICBjb25zb2xlLmxvZyhcIkludmFsaWQgQnV0dG9uIFR5cGUuIFwiLCBidXR0b24uTmFtZSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,119 +0,0 @@
|
|
|
1
|
-
/********** Angular **********/
|
|
2
|
-
import { Component, Input } from "@angular/core";
|
|
3
|
-
/********** Component & Service **********/
|
|
4
|
-
// import { FieldService } from "../mmhglobal-zcore/field.service";
|
|
5
|
-
// import { ResourceApiService } from "../mmhglobal-zcore/resourceapi.service";
|
|
6
|
-
import { WebApiService, ZGroup, ZCoreService, ZComponentHelper, FieldService, } from "mmhglobal-zcore";
|
|
7
|
-
import { ZmodalHelper } from 'mmhglobal-zmodal';
|
|
8
|
-
export class ZmodalMobileComponent {
|
|
9
|
-
constructor(webApiService, zcoreService, fieldService // Use in mmhglobal-zmodal.helper
|
|
10
|
-
) {
|
|
11
|
-
this.webApiService = webApiService;
|
|
12
|
-
this.zcoreService = zcoreService;
|
|
13
|
-
this.fieldService = fieldService;
|
|
14
|
-
this.group = new ZGroup(true);
|
|
15
|
-
}
|
|
16
|
-
// get modalGroup() {
|
|
17
|
-
// return this.group;
|
|
18
|
-
// }
|
|
19
|
-
ngOnInit() {
|
|
20
|
-
ZmodalHelper.onInit_ModalForm(this);
|
|
21
|
-
}
|
|
22
|
-
ngOnDestroy() {
|
|
23
|
-
ZmodalHelper.onDestroy_ModalForm(this);
|
|
24
|
-
}
|
|
25
|
-
onCancel(event) {
|
|
26
|
-
ZmodalHelper.onCancel(this, event);
|
|
27
|
-
// this.modalCtrl.dismiss(null, "cancel");
|
|
28
|
-
}
|
|
29
|
-
onConfirm(event) {
|
|
30
|
-
ZmodalHelper.onConfirm(this, event);
|
|
31
|
-
// const fg = this.group.form as FormGroup;
|
|
32
|
-
// if (!this.group.form) {
|
|
33
|
-
// return;
|
|
34
|
-
// }
|
|
35
|
-
// if (!fg.dirty) {
|
|
36
|
-
// console.warn('Form is not dirty hence modalform record is not saved.');
|
|
37
|
-
// this.onCancel();
|
|
38
|
-
// return;
|
|
39
|
-
// }
|
|
40
|
-
// if (!fg.valid) {
|
|
41
|
-
// const errors = ZComponentHelper.getFormGroupErrors(fg, this.alertService);
|
|
42
|
-
// console.warn("Form Validation got error(s):", errors);
|
|
43
|
-
// return;
|
|
44
|
-
// }
|
|
45
|
-
// // Object.assign(this.group.zModel, fg.value);
|
|
46
|
-
// // this.modalCtrl.dismiss(this.group.zModel, "confirm");
|
|
47
|
-
// // if (ZComponentHelper.isMobileScreen()) {
|
|
48
|
-
// this.modalCtrl.dismiss(event.data, "confirm");
|
|
49
|
-
// // } else {
|
|
50
|
-
// // this.dialog.close(event.data);
|
|
51
|
-
// // }
|
|
52
|
-
}
|
|
53
|
-
onInitClose(event) {
|
|
54
|
-
ZmodalHelper.onInitClose(this, event);
|
|
55
|
-
}
|
|
56
|
-
// to serve actionButton at formHeader
|
|
57
|
-
subjectEvent(event, group, me) {
|
|
58
|
-
if (!event || !event.target || !event.target.startsWith('modalGroup')) {
|
|
59
|
-
return;
|
|
60
|
-
}
|
|
61
|
-
console.log(">> SubjectEvent", event);
|
|
62
|
-
// const target = event.target.replace('modalGroup.', 'group.');
|
|
63
|
-
const callFunc = ZComponentHelper.getGroupEvalValue.call(this, event.target, group);
|
|
64
|
-
// callFunc(event);
|
|
65
|
-
if (typeof callFunc === "function") {
|
|
66
|
-
const fg = this.group.form;
|
|
67
|
-
Object.assign(this.group.zModel, fg.value);
|
|
68
|
-
event.data = this.group.zModel;
|
|
69
|
-
if (event.target.startsWith('modalGroup.modalAnswer') || event.target.startsWith('modalGroup.modalCancel')) {
|
|
70
|
-
const newFunc = callFunc.bind(this);
|
|
71
|
-
newFunc(event);
|
|
72
|
-
}
|
|
73
|
-
else {
|
|
74
|
-
const newFunc = callFunc.bind(group.ctrlScope);
|
|
75
|
-
newFunc(event);
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
else {
|
|
79
|
-
console.warn("Function not defined in group for: ", callFunc, ", Event: ", event);
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
getModel$(group, id) {
|
|
83
|
-
const recId = id || group.referenceId;
|
|
84
|
-
return this.webApiService.httpGet$(group.resourceURL + "/" + recId, null);
|
|
85
|
-
}
|
|
86
|
-
getGridStyle() {
|
|
87
|
-
// debugger;
|
|
88
|
-
if (!this.isMobileScreen) {
|
|
89
|
-
return {
|
|
90
|
-
"height.px": 500,
|
|
91
|
-
"width.px": 700
|
|
92
|
-
};
|
|
93
|
-
}
|
|
94
|
-
return;
|
|
95
|
-
}
|
|
96
|
-
isMobileScreen() {
|
|
97
|
-
const v = ZComponentHelper.isMobileScreen();
|
|
98
|
-
return v;
|
|
99
|
-
}
|
|
100
|
-
isSITEnvironment() {
|
|
101
|
-
return this.zcoreService.isDebugSession();
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
ZmodalMobileComponent.decorators = [
|
|
105
|
-
{ type: Component, args: [{
|
|
106
|
-
selector: "app-zmodal",
|
|
107
|
-
template: "<ion-header *ngIf=\"isMobileScreen()\">\r\n <ion-toolbar>\r\n <ion-buttons slot=\"start\">\r\n <ion-button (click)=\"onCancel()\">\r\n <!-- <ion-icon name=\"close\"></ion-icon> -->\r\n <fa-icon [icon]=\"'times'\" size=\"lg\"></fa-icon>\r\n </ion-button>\r\n </ion-buttons>\r\n <ion-title>\r\n {{ modalParams.formHeader }}\r\n </ion-title>\r\n <ion-buttons slot=\"primary\" *ngIf=\"!group.isLoading\">\r\n <app-uiactionbutton [group]=\"group\"></app-uiactionbutton>\r\n </ion-buttons>\r\n </ion-toolbar>\r\n</ion-header>\r\n\r\n<ion-content appScrollbarTheme [ngStyle]=\"getGridStyle()\">\r\n <ion-grid>\r\n <ion-row *ngIf=\"group.isLoading\" class=\"ion-text-center\">\r\n <ion-col class=\"ion-margin ion-padding\">\r\n <ion-spinner></ion-spinner>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row *ngIf=\"!group.isLoading\">\r\n <ion-col>\r\n <app-zform [group]=\"group\"></app-zform>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row *ngIf=\"isSITEnvironment() && !group.isLoading\">\r\n <ion-col>\r\n <pre style=\"font-size: x-small;\">{{group.zModel | json}}</pre>\r\n </ion-col>\r\n </ion-row>\r\n </ion-grid>\r\n</ion-content>\r\n\r\n",
|
|
108
|
-
styles: [""]
|
|
109
|
-
},] }
|
|
110
|
-
];
|
|
111
|
-
ZmodalMobileComponent.ctorParameters = () => [
|
|
112
|
-
{ type: WebApiService },
|
|
113
|
-
{ type: ZCoreService },
|
|
114
|
-
{ type: FieldService }
|
|
115
|
-
];
|
|
116
|
-
ZmodalMobileComponent.propDecorators = {
|
|
117
|
-
modalParams: [{ type: Input }]
|
|
118
|
-
};
|
|
119
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem1vZGFsLW1vYmlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tbWhnbG9iYWwtZHluYW1pY2Zvcm0vc3JjL2xpYi96bW9kYWwvem1vZGFsLW1vYmlsZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0JBQStCO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQXFCLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVVwRSwyQ0FBMkM7QUFDM0MsbUVBQW1FO0FBQ25FLCtFQUErRTtBQUMvRSxPQUFPLEVBQ0gsYUFBYSxFQUNiLE1BQU0sRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLEVBQXlCLFlBQVksR0FDOUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFRaEQsTUFBTSxPQUFPLHFCQUFxQjtJQU85QixZQUNZLGFBQTRCLEVBQzVCLFlBQTBCLEVBQzFCLFlBQTBCLENBQUMsaUNBQWlDOztRQUY1RCxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQVB0QyxVQUFLLEdBQVcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFTakMsQ0FBQztJQUVELHFCQUFxQjtJQUNyQix1QkFBdUI7SUFDdkIsSUFBSTtJQUVKLFFBQVE7UUFDSixZQUFZLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELFdBQVc7UUFDUCxZQUFZLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUE2QjtRQUNsQyxZQUFZLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNuQywwQ0FBMEM7SUFDOUMsQ0FBQztJQUVE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QUFDO0lBQ2IsQ0FBQztJQUVELGdCQUFnQjtRQUNaLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUM5QyxDQUFDOzs7WUF6SEosU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSxZQUFZO2dCQUN0QiwrdUNBQXNDOzthQUV6Qzs7O1lBVkcsYUFBYTtZQUNMLFlBQVk7WUFBMkMsWUFBWTs7OzBCQVcxRSxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLyoqKioqKioqKiogQW5ndWxhciAqKioqKioqKioqL1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgT25EZXN0cm95LCBJbnB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbi8qKioqKioqKioqIElvbmljICoqKioqKioqKiovXHJcbi8vIGltcG9ydCB7IE1vZGFsQ29udHJvbGxlciwgUGxhdGZvcm0gfSBmcm9tIFwiQGlvbmljL2FuZ3VsYXJcIjtcclxuXHJcbi8qKioqKioqKioqIFBsdWdpbiAqKioqKioqKioqL1xyXG4vLyBpbXBvcnQgeyBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24sIG9mLCBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIGZyb21FdmVudCB9IGZyb20gXCJyeGpzXCI7XHJcblxyXG4vKioqKioqKioqKiBDb21wb25lbnQgJiBTZXJ2aWNlICoqKioqKioqKiovXHJcbi8vIGltcG9ydCB7IEZpZWxkU2VydmljZSB9IGZyb20gXCIuLi9tbWhnbG9iYWwtemNvcmUvZmllbGQuc2VydmljZVwiO1xyXG4vLyBpbXBvcnQgeyBSZXNvdXJjZUFwaVNlcnZpY2UgfSBmcm9tIFwiLi4vbW1oZ2xvYmFsLXpjb3JlL3Jlc291cmNlYXBpLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtcclxuICAgIFdlYkFwaVNlcnZpY2UsIE1vZGFsUGFnZVBhcmFtcyxcclxuICAgIFpHcm91cCwgWkNvcmVTZXJ2aWNlLCBaQ29tcG9uZW50SGVscGVyLCBaQ29tcG9uZW50T3V0cHV0RXZlbnQsIEZpZWxkU2VydmljZSxcclxufSBmcm9tIFwibW1oZ2xvYmFsLXpjb3JlXCI7XHJcbmltcG9ydCB7IFptb2RhbEhlbHBlciB9IGZyb20gJ21taGdsb2JhbC16bW9kYWwnO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IFwiYXBwLXptb2RhbFwiLFxyXG4gICAgdGVtcGxhdGVVcmw6IFwiLi96bW9kYWwuY29tcG9uZW50Lmh0bWxcIixcclxuICAgIHN0eWxlVXJsczogW1wiLi96bW9kYWwuY29tcG9uZW50LnNjc3NcIl1cclxufSlcclxuZXhwb3J0IGNsYXNzIFptb2RhbE1vYmlsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICAgIEBJbnB1dCgpIG1vZGFsUGFyYW1zOiBNb2RhbFBhZ2VQYXJhbXM7XHJcblxyXG4gICAgZ3JvdXA6IFpHcm91cCA9IG5ldyBaR3JvdXAodHJ1ZSk7XHJcbiAgICBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuICAgIGJhY2tCdXR0b25TdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIHdlYkFwaVNlcnZpY2U6IFdlYkFwaVNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSB6Y29yZVNlcnZpY2U6IFpDb3JlU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIGZpZWxkU2VydmljZTogRmllbGRTZXJ2aWNlIC8vIFVzZSBpbiBtbWhnbG9iYWwtem1vZGFsLmhlbHBlclxyXG4gICAgKSB7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gZ2V0IG1vZGFsR3JvdXAoKSB7XHJcbiAgICAvLyAgIHJldHVybiB0aGlzLmdyb3VwO1xyXG4gICAgLy8gfVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIFptb2RhbEhlbHBlci5vbkluaXRfTW9kYWxGb3JtKHRoaXMpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIFptb2RhbEhlbHBlci5vbkRlc3Ryb3lfTW9kYWxGb3JtKHRoaXMpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uQ2FuY2VsKGV2ZW50PzogWkNvbXBvbmVudE91dHB1dEV2ZW50KSB7XHJcbiAgICAgICAgWm1vZGFsSGVscGVyLm9uQ2FuY2VsKHRoaXMsIGV2ZW50KTtcclxuICAgICAgICAvLyB0aGlzLm1vZGFsQ3RybC5kaXNtaXNzKG51bGwsIFwiY2FuY2VsXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uQ29uZmlybShldmVudDogWkNvbXBvbmVudE91dHB1dEV2ZW50KSB7XHJcbiAgICAgICAgWm1vZGFsSGVscGVyLm9uQ29uZmlybSh0aGlzLCBldmVudCk7XHJcbiAgICAgICAgLy8gY29uc3QgZmcgPSB0aGlzLmdyb3VwLmZvcm0gYXMgRm9ybUdyb3VwO1xyXG4gICAgICAgIC8vIGlmICghdGhpcy5ncm91cC5mb3JtKSB7XHJcbiAgICAgICAgLy8gICAgIHJldHVybjtcclxuICAgICAgICAvLyB9XHJcblxyXG4gICAgICAgIC8vIGlmICghZmcuZGlydHkpIHtcclxuICAgICAgICAvLyAgICAgY29uc29sZS53YXJuKCdGb3JtIGlzIG5vdCBkaXJ0eSBoZW5jZSBtb2RhbGZvcm0gcmVjb3JkIGlzIG5vdCBzYXZlZC4nKTtcclxuICAgICAgICAvLyAgICAgdGhpcy5vbkNhbmNlbCgpO1xyXG4gICAgICAgIC8vICAgICByZXR1cm47XHJcbiAgICAgICAgLy8gfVxyXG5cclxuICAgICAgICAvLyBpZiAoIWZnLnZhbGlkKSB7XHJcbiAgICAgICAgLy8gICAgIGNvbnN0IGVycm9ycyA9IFpDb21wb25lbnRIZWxwZXIuZ2V0Rm9ybUdyb3VwRXJyb3JzKGZnLCB0aGlzLmFsZXJ0U2VydmljZSk7XHJcbiAgICAgICAgLy8gICAgIGNvbnNvbGUud2FybihcIkZvcm0gVmFsaWRhdGlvbiBnb3QgZXJyb3Iocyk6XCIsIGVycm9ycyk7XHJcbiAgICAgICAgLy8gICAgIHJldHVybjtcclxuICAgICAgICAvLyB9XHJcblxyXG4gICAgICAgIC8vIC8vIE9iamVjdC5hc3NpZ24odGhpcy5ncm91cC56TW9kZWwsIGZnLnZhbHVlKTtcclxuICAgICAgICAvLyAvLyB0aGlzLm1vZGFsQ3RybC5kaXNtaXNzKHRoaXMuZ3JvdXAuek1vZGVsLCBcImNvbmZpcm1cIik7XHJcbiAgICAgICAgLy8gLy8gaWYgKFpDb21wb25lbnRIZWxwZXIuaXNNb2JpbGVTY3JlZW4oKSkge1xyXG4gICAgICAgIC8vIHRoaXMubW9kYWxDdHJsLmRpc21pc3MoZXZlbnQuZGF0YSwgXCJjb25maXJtXCIpO1xyXG4gICAgICAgIC8vIC8vIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gLy8gICB0aGlzLmRpYWxvZy5jbG9zZShldmVudC5kYXRhKTtcclxuICAgICAgICAvLyAvLyB9XHJcbiAgICB9XHJcblxyXG4gICAgb25Jbml0Q2xvc2UoZXZlbnQ/OiBaQ29tcG9uZW50T3V0cHV0RXZlbnQpIHtcclxuICAgICAgWm1vZGFsSGVscGVyLm9uSW5pdENsb3NlKHRoaXMsIGV2ZW50KTtcclxuICAgIH1cclxuXHJcbiAgICAvLyB0byBzZXJ2ZSBhY3Rpb25CdXR0b24gYXQgZm9ybUhlYWRlclxyXG4gICAgc3ViamVjdEV2ZW50KGV2ZW50OiBaQ29tcG9uZW50T3V0cHV0RXZlbnQsIGdyb3VwOiBaR3JvdXAsIG1lOiBhbnkpIHtcclxuICAgICAgICBpZiAoIWV2ZW50IHx8ICFldmVudC50YXJnZXQgfHwgIWV2ZW50LnRhcmdldC5zdGFydHNXaXRoKCdtb2RhbEdyb3VwJykpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zb2xlLmxvZyhcIj4+IFN1YmplY3RFdmVudFwiLCBldmVudCk7XHJcbiAgICAgICAgLy8gY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0LnJlcGxhY2UoJ21vZGFsR3JvdXAuJywgJ2dyb3VwLicpO1xyXG4gICAgICAgIGNvbnN0IGNhbGxGdW5jID0gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cEV2YWxWYWx1ZS5jYWxsKHRoaXMsIGV2ZW50LnRhcmdldCwgZ3JvdXApO1xyXG4gICAgICAgIC8vIGNhbGxGdW5jKGV2ZW50KTtcclxuICAgICAgICBpZiAodHlwZW9mIGNhbGxGdW5jID09PSBcImZ1bmN0aW9uXCIpIHtcclxuICAgICAgICAgICAgY29uc3QgZmcgPSB0aGlzLmdyb3VwLmZvcm0gYXMgRm9ybUdyb3VwO1xyXG4gICAgICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMuZ3JvdXAuek1vZGVsLCBmZy52YWx1ZSk7XHJcbiAgICAgICAgICAgIGV2ZW50LmRhdGEgPSB0aGlzLmdyb3VwLnpNb2RlbDtcclxuICAgICAgICAgICAgaWYgKGV2ZW50LnRhcmdldC5zdGFydHNXaXRoKCdtb2RhbEdyb3VwLm1vZGFsQW5zd2VyJykgfHwgZXZlbnQudGFyZ2V0LnN0YXJ0c1dpdGgoJ21vZGFsR3JvdXAubW9kYWxDYW5jZWwnKSkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgbmV3RnVuYyA9IGNhbGxGdW5jLmJpbmQodGhpcyk7XHJcbiAgICAgICAgICAgICAgICBuZXdGdW5jKGV2ZW50KTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IG5ld0Z1bmMgPSBjYWxsRnVuYy5iaW5kKGdyb3VwLmN0cmxTY29wZSk7XHJcbiAgICAgICAgICAgICAgICBuZXdGdW5jKGV2ZW50KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihcclxuICAgICAgICAgICAgICAgIFwiRnVuY3Rpb24gbm90IGRlZmluZWQgaW4gZ3JvdXAgZm9yOiBcIixcclxuICAgICAgICAgICAgICAgIGNhbGxGdW5jLFxyXG4gICAgICAgICAgICAgICAgXCIsIEV2ZW50OiBcIixcclxuICAgICAgICAgICAgICAgIGV2ZW50XHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGdldE1vZGVsJChncm91cDogYW55LCBpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgICAgICBjb25zdCByZWNJZCA9IGlkIHx8IGdyb3VwLnJlZmVyZW5jZUlkO1xyXG4gICAgICAgIHJldHVybiB0aGlzLndlYkFwaVNlcnZpY2UuaHR0cEdldCQoZ3JvdXAucmVzb3VyY2VVUkwgKyBcIi9cIiArIHJlY0lkLCBudWxsKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRHcmlkU3R5bGUoKSB7XHJcbiAgICAgICAgLy8gZGVidWdnZXI7XHJcbiAgICAgICAgaWYgKCF0aGlzLmlzTW9iaWxlU2NyZWVuKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICBcImhlaWdodC5weFwiOiA1MDAsXHJcbiAgICAgICAgICAgICAgICBcIndpZHRoLnB4XCI6IDcwMFxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaXNNb2JpbGVTY3JlZW4oKSB7XHJcbiAgICAgICAgY29uc3QgdiA9IFpDb21wb25lbnRIZWxwZXIuaXNNb2JpbGVTY3JlZW4oKTtcclxuICAgICAgICByZXR1cm4gdjtcclxuICAgIH1cclxuXHJcbiAgICBpc1NJVEVudmlyb25tZW50KCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnpjb3JlU2VydmljZS5pc0RlYnVnU2Vzc2lvbigpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,130 +0,0 @@
|
|
|
1
|
-
/********** Angular **********/
|
|
2
|
-
import { Component, Input } from "@angular/core";
|
|
3
|
-
/********** Ionic **********/
|
|
4
|
-
import { ModalController, Platform } from "@ionic/angular";
|
|
5
|
-
import { DialogContentBase, DialogRef } from '@progress/kendo-angular-dialog';
|
|
6
|
-
/********** Component & Service **********/
|
|
7
|
-
import { ZGroup, WebApiService, AlertService, ZCoreService, FieldService, ResourceApiService, ZComponentHelper } from "mmhglobal-zcore";
|
|
8
|
-
import { ZmodalHelper } from 'mmhglobal-zmodal';
|
|
9
|
-
export class ZmodalComponent extends DialogContentBase {
|
|
10
|
-
constructor(dialog, modalCtrl, zcoreService, webApiService, resourceApiService, fieldService, platform, alertService) {
|
|
11
|
-
super(dialog);
|
|
12
|
-
this.dialog = dialog;
|
|
13
|
-
this.modalCtrl = modalCtrl;
|
|
14
|
-
this.zcoreService = zcoreService;
|
|
15
|
-
this.webApiService = webApiService;
|
|
16
|
-
this.resourceApiService = resourceApiService;
|
|
17
|
-
this.fieldService = fieldService;
|
|
18
|
-
this.platform = platform;
|
|
19
|
-
this.alertService = alertService;
|
|
20
|
-
this.group = new ZGroup(true);
|
|
21
|
-
}
|
|
22
|
-
// get modalGroup() {
|
|
23
|
-
// return this.group;
|
|
24
|
-
// }
|
|
25
|
-
ngOnInit() {
|
|
26
|
-
ZmodalHelper.onInit_ModalForm(this);
|
|
27
|
-
}
|
|
28
|
-
ngOnDestroy() {
|
|
29
|
-
ZmodalHelper.onDestroy_ModalForm(this);
|
|
30
|
-
}
|
|
31
|
-
onCancel(event) {
|
|
32
|
-
ZmodalHelper.onCancel(this, event);
|
|
33
|
-
// this.dialog.close();
|
|
34
|
-
}
|
|
35
|
-
onConfirm(event) {
|
|
36
|
-
ZmodalHelper.onConfirm(this, event);
|
|
37
|
-
// const fg = this.group.form as FormGroup;
|
|
38
|
-
// if (!this.group.form) {
|
|
39
|
-
// return;
|
|
40
|
-
// }
|
|
41
|
-
// if (!fg.dirty) {
|
|
42
|
-
// console.warn('Form is not dirty hence modalform record is not saved.');
|
|
43
|
-
// this.onCancel();
|
|
44
|
-
// return;
|
|
45
|
-
// }
|
|
46
|
-
// if (!fg.valid) {
|
|
47
|
-
// const errors = ZComponentHelper.getFormGroupErrors(fg, this.alertService);
|
|
48
|
-
// console.warn("Form Validation got error(s):", errors);
|
|
49
|
-
// return;
|
|
50
|
-
// }
|
|
51
|
-
// Object.assign(this.group.zModel, fg.value);
|
|
52
|
-
// this.modalCtrl.dismiss(this.group.zModel, "confirm");
|
|
53
|
-
// if (ZComponentHelper.isMobileScreen()) {
|
|
54
|
-
// this.modalCtrl.dismiss(event.data, "confirm");
|
|
55
|
-
// } else {
|
|
56
|
-
// this.dialog.close(event.data);
|
|
57
|
-
// }
|
|
58
|
-
}
|
|
59
|
-
onInitClose(event) {
|
|
60
|
-
ZmodalHelper.onInitClose(this, event);
|
|
61
|
-
}
|
|
62
|
-
isSITEnvironment() {
|
|
63
|
-
return this.zcoreService.isDebugSession();
|
|
64
|
-
}
|
|
65
|
-
// to serve actionButton at formHeader
|
|
66
|
-
subjectEvent(event, group, me) {
|
|
67
|
-
if (!event || !event.target || !event.target.startsWith('modalGroup')) {
|
|
68
|
-
return;
|
|
69
|
-
}
|
|
70
|
-
console.log(">> SubjectEvent", event);
|
|
71
|
-
// const target = event.target.replace('modalGroup.', 'group.');
|
|
72
|
-
const callFunc = ZComponentHelper.getGroupEvalValue.call(this, event.target, group);
|
|
73
|
-
// callFunc(event);
|
|
74
|
-
if (typeof callFunc === "function") {
|
|
75
|
-
const fg = this.group.form;
|
|
76
|
-
Object.assign(this.group.zModel, fg.value);
|
|
77
|
-
event.data = this.group.zModel;
|
|
78
|
-
if (event.target.startsWith('modalGroup.modalAnswer') || event.target.startsWith('modalGroup.modalClose') || event.target.startsWith('modalGroup.modalCancel')) {
|
|
79
|
-
const newFunc = callFunc.bind(this);
|
|
80
|
-
newFunc(event);
|
|
81
|
-
}
|
|
82
|
-
else {
|
|
83
|
-
const newFunc = callFunc.bind(group.ctrlScope);
|
|
84
|
-
newFunc(event);
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
else {
|
|
88
|
-
console.warn("Function not defined in group for: ", callFunc, ", Event: ", event);
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
getModel$(group, id) {
|
|
92
|
-
const recId = id || group.referenceId;
|
|
93
|
-
return this.webApiService.httpGet$(group.resourceURL + "/" + recId, null);
|
|
94
|
-
}
|
|
95
|
-
getGridStyle() {
|
|
96
|
-
// debugger;
|
|
97
|
-
if (!this.isMobileScreen) {
|
|
98
|
-
return {
|
|
99
|
-
"height.px": 500,
|
|
100
|
-
"width.px": 700
|
|
101
|
-
};
|
|
102
|
-
}
|
|
103
|
-
return;
|
|
104
|
-
}
|
|
105
|
-
isMobileScreen() {
|
|
106
|
-
const v = ZComponentHelper.isMobileScreen();
|
|
107
|
-
return v;
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
ZmodalComponent.decorators = [
|
|
111
|
-
{ type: Component, args: [{
|
|
112
|
-
selector: 'app-zmodal',
|
|
113
|
-
template: "<ion-header *ngIf=\"isMobileScreen()\">\r\n <ion-toolbar>\r\n <ion-buttons slot=\"start\">\r\n <ion-button (click)=\"onCancel()\">\r\n <!-- <ion-icon name=\"close\"></ion-icon> -->\r\n <fa-icon [icon]=\"'times'\" size=\"lg\"></fa-icon>\r\n </ion-button>\r\n </ion-buttons>\r\n <ion-title>\r\n {{ modalParams.formHeader }}\r\n </ion-title>\r\n <ion-buttons slot=\"primary\" *ngIf=\"!group.isLoading\">\r\n <app-uiactionbutton [group]=\"group\"></app-uiactionbutton>\r\n </ion-buttons>\r\n </ion-toolbar>\r\n</ion-header>\r\n\r\n<ion-content appScrollbarTheme [ngStyle]=\"getGridStyle()\">\r\n <ion-grid>\r\n <ion-row *ngIf=\"group.isLoading\" class=\"ion-text-center\">\r\n <ion-col class=\"ion-margin ion-padding\">\r\n <ion-spinner></ion-spinner>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row *ngIf=\"!group.isLoading\">\r\n <ion-col>\r\n <app-zform [group]=\"group\"></app-zform>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row *ngIf=\"isSITEnvironment() && !group.isLoading\">\r\n <ion-col>\r\n <pre style=\"font-size: x-small;\">{{group.zModel | json}}</pre>\r\n </ion-col>\r\n </ion-row>\r\n </ion-grid>\r\n</ion-content>\r\n\r\n",
|
|
114
|
-
styles: [""]
|
|
115
|
-
},] }
|
|
116
|
-
];
|
|
117
|
-
ZmodalComponent.ctorParameters = () => [
|
|
118
|
-
{ type: DialogRef },
|
|
119
|
-
{ type: ModalController },
|
|
120
|
-
{ type: ZCoreService },
|
|
121
|
-
{ type: WebApiService },
|
|
122
|
-
{ type: ResourceApiService },
|
|
123
|
-
{ type: FieldService },
|
|
124
|
-
{ type: Platform },
|
|
125
|
-
{ type: AlertService }
|
|
126
|
-
];
|
|
127
|
-
ZmodalComponent.propDecorators = {
|
|
128
|
-
modalParams: [{ type: Input }]
|
|
129
|
-
};
|
|
130
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21taGdsb2JhbC1keW5hbWljZm9ybS9zcmMvbGliL3ptb2RhbC96bW9kYWwuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtCQUErQjtBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFxQixLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHcEUsNkJBQTZCO0FBQzdCLE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRTlFLDJDQUEyQztBQUMzQyxPQUFPLEVBQ0wsTUFBTSxFQUNOLGFBQWEsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxrQkFBa0IsRUFDM0UsZ0JBQWdCLEVBQ2pCLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUFFLFlBQVksRUFBaUIsTUFBTSxrQkFBa0IsQ0FBQztBQVEvRCxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxpQkFBaUI7SUFPcEQsWUFDUyxNQUFpQixFQUNoQixTQUEwQixFQUMxQixZQUEwQixFQUMxQixhQUE0QixFQUM1QixrQkFBc0MsRUFDdEMsWUFBMEIsRUFDMUIsUUFBa0IsRUFDbEIsWUFBMEI7UUFHbEMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBVlAsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUNoQixjQUFTLEdBQVQsU0FBUyxDQUFpQjtRQUMxQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1Qix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsaUJBQVksR0FB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V0FBVyxFQUNYLEtBQUssQ0FDTixDQUFDO1NBQ0g7SUFDSCxDQUFDO0lBRUQsU0FBUyxDQUFDLEtBQVUsRUFBRSxFQUFVO1FBQzlCLE1BQU0sS0FBSyxHQUFHLEVBQUUsSUFBSSxLQUFLLENBQUMsV0FBVyxDQUFDO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLFdBQVcsR0FBRyxHQUFHLEdBQUcsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFRCxZQUFZO1FBQ1YsWUFBWTtRQUNaLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3hCLE9BQU87Z0JBQ0wsV0FBVyxFQUFFLEdBQUc7Z0JBQ2hCLFVBQVUsRUFBRSxHQUFHO2FBQ2hCLENBQUM7U0FDSDtRQUNELE9BQU87SUFDVCxDQUFDO0lBRUQsY0FBYztRQUNaLE1BQU0sQ0FBQyxHQUFHLGdCQUFnQixDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQzVDLE9BQU8sQ0FBQyxDQUFDO0lBQ1gsQ0FBQzs7O1lBaklGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsWUFBWTtnQkFDdEIsK3VDQUFzQzs7YUFFdkM7OztZQWYyQixTQUFTO1lBSjVCLGVBQWU7WUFTTyxZQUFZO1lBQXpDLGFBQWE7WUFBNEMsa0JBQWtCO1lBQWhDLFlBQVk7WUFUL0IsUUFBUTtZQVNqQixZQUFZOzs7MEJBWTFCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKioqKioqKioqKiBBbmd1bGFyICoqKioqKioqKiovXHJcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBPbkRlc3Ryb3ksIElucHV0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuLyoqKioqKioqKiogSW9uaWMgKioqKioqKioqKi9cclxuaW1wb3J0IHsgTW9kYWxDb250cm9sbGVyLCBQbGF0Zm9ybSB9IGZyb20gXCJAaW9uaWMvYW5ndWxhclwiO1xyXG5cclxuLyoqKioqKioqKiogUGx1Z2luICoqKioqKioqKiovXHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiwgT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IERpYWxvZ0NvbnRlbnRCYXNlLCBEaWFsb2dSZWYgfSBmcm9tICdAcHJvZ3Jlc3Mva2VuZG8tYW5ndWxhci1kaWFsb2cnO1xyXG5cclxuLyoqKioqKioqKiogQ29tcG9uZW50ICYgU2VydmljZSAqKioqKioqKioqL1xyXG5pbXBvcnQgeyBcclxuICBaR3JvdXAsIE1vZGFsUGFnZVBhcmFtcyxcclxuICBXZWJBcGlTZXJ2aWNlLCBBbGVydFNlcnZpY2UsIFpDb3JlU2VydmljZSwgRmllbGRTZXJ2aWNlLCBSZXNvdXJjZUFwaVNlcnZpY2UsXHJcbiAgWkNvbXBvbmVudEhlbHBlciwgWkNvbXBvbmVudE91dHB1dEV2ZW50XHJcbn0gZnJvbSBcIm1taGdsb2JhbC16Y29yZVwiO1xyXG5pbXBvcnQgeyBabW9kYWxIZWxwZXIsIE1vZGFsUmVzcG9uc2UgfSBmcm9tICdtbWhnbG9iYWwtem1vZGFsJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC16bW9kYWwnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi96bW9kYWwuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3ptb2RhbC5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgWm1vZGFsQ29tcG9uZW50IGV4dGVuZHMgRGlhbG9nQ29udGVudEJhc2UgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgQElucHV0KCkgbW9kYWxQYXJhbXM6IE1vZGFsUGFnZVBhcmFtcztcclxuXHJcbiAgZ3JvdXA6IFpHcm91cCA9IG5ldyBaR3JvdXAodHJ1ZSk7XHJcbiAgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcbiAgYmFja0J1dHRvblN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG5cclxuICBjb25zdHJ1Y3RvciggXHJcbiAgICBwdWJsaWMgZGlhbG9nOiBEaWFsb2dSZWYsXHJcbiAgICBwcml2YXRlIG1vZGFsQ3RybDogTW9kYWxDb250cm9sbGVyLFxyXG4gICAgcHJpdmF0ZSB6Y29yZVNlcnZpY2U6IFpDb3JlU2VydmljZSxcclxuICAgIHByaXZhdGUgd2ViQXBpU2VydmljZTogV2ViQXBpU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVzb3VyY2VBcGlTZXJ2aWNlOiBSZXNvdXJjZUFwaVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGZpZWxkU2VydmljZTogRmllbGRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBwbGF0Zm9ybTogUGxhdGZvcm0sXHJcbiAgICBwcml2YXRlIGFsZXJ0U2VydmljZTogQWxlcnRTZXJ2aWNlXHJcblxyXG4gICkge1xyXG4gICAgc3VwZXIoZGlhbG9nKTtcclxuICB9XHJcblxyXG4gIC8vIGdldCBtb2RhbEdyb3VwKCkge1xyXG4gIC8vICAgcmV0dXJuIHRoaXMuZ3JvdXA7XHJcbiAgLy8gfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIFptb2RhbEhlbHBlci5vbkluaXRfTW9kYWxGb3JtKHRoaXMpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICBabW9kYWxIZWxwZXIub25EZXN0cm95X01vZGFsRm9ybSh0aGlzKTtcclxuICB9XHJcblxyXG4gIG9uQ2FuY2VsKGV2ZW50PzogWkNvbXBvbmVudE91dHB1dEV2ZW50KSB7XHJcbiAgICBabW9kYWxIZWxwZXIub25DYW5jZWwodGhpcywgZXZlbnQpO1xyXG4gICAgLy8gdGhpcy5kaWFsb2cuY2xvc2UoKTtcclxuICB9XHJcblxyXG4gIG9uQ29uZmlybShldmVudDogWkNvbXBvbmVudE91dHB1dEV2ZW50KSB7XHJcbiAgICBabW9kYWxIZWxwZXIub25Db25maXJtKHRoaXMsIGV2ZW50KTtcclxuICAgIC8vIGNvbnN0IGZnID0gdGhpcy5ncm91cC5mb3JtIGFzIEZvcm1Hcm91cDtcclxuICAgIC8vIGlmICghdGhpcy5ncm91cC5mb3JtKSB7XHJcbiAgICAvLyAgIHJldHVybjtcclxuICAgIC8vIH1cclxuXHJcbiAgICAvLyBpZiAoIWZnLmRpcnR5KSB7XHJcbiAgICAvLyAgIGNvbnNvbGUud2FybignRm9ybSBpcyBub3QgZGlydHkgaGVuY2UgbW9kYWxmb3JtIHJlY29yZCBpcyBub3Qgc2F2ZWQuJyk7XHJcbiAgICAvLyAgIHRoaXMub25DYW5jZWwoKTtcclxuICAgIC8vICAgcmV0dXJuO1xyXG4gICAgLy8gfVxyXG5cclxuICAgIC8vIGlmICghZmcudmFsaWQpIHtcclxuICAgIC8vICAgY29uc3QgZXJyb3JzID0gWkNvbXBvbmVudEhlbHBlci5nZXRGb3JtR3JvdXBFcnJvcnMoZmcsIHRoaXMuYWxlcnRTZXJ2aWNlKTtcclxuICAgIC8vICAgY29uc29sZS53YXJuKFwiRm9ybSBWYWxpZGF0aW9uIGdvdCBlcnJvcihzKTpcIiwgZXJyb3JzKTtcclxuICAgIC8vICAgcmV0dXJuO1xyXG4gICAgLy8gfVxyXG5cclxuICAgIC8vIE9iamVjdC5hc3NpZ24odGhpcy5ncm91cC56TW9kZWwsIGZnLnZhbHVlKTtcclxuICAgIC8vIHRoaXMubW9kYWxDdHJsLmRpc21pc3ModGhpcy5ncm91cC56TW9kZWwsIFwiY29uZmlybVwiKTtcclxuICAgIC8vIGlmIChaQ29tcG9uZW50SGVscGVyLmlzTW9iaWxlU2NyZWVuKCkpIHtcclxuICAgIC8vICAgdGhpcy5tb2RhbEN0cmwuZGlzbWlzcyhldmVudC5kYXRhLCBcImNvbmZpcm1cIik7XHJcbiAgICAvLyB9IGVsc2Uge1xyXG4gICAgLy8gdGhpcy5kaWFsb2cuY2xvc2UoZXZlbnQuZGF0YSk7XHJcbiAgICAvLyB9XHJcbiAgfVxyXG5cclxuICBvbkluaXRDbG9zZShldmVudD86IFpDb21wb25lbnRPdXRwdXRFdmVudCkge1xyXG4gICAgWm1vZGFsSGVscGVyLm9uSW5pdENsb3NlKHRoaXMsZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgaXNTSVRFbnZpcm9ubWVudCgpIHtcclxuICAgIHJldHVybiB0aGlzLnpjb3JlU2VydmljZS5pc0RlYnVnU2Vzc2lvbigpO1xyXG4gIH1cclxuXHJcblxyXG4gIC8vIHRvIHNlcnZlIGFjdGlvbkJ1dHRvbiBhdCBmb3JtSGVhZGVyXHJcbiAgc3ViamVjdEV2ZW50KGV2ZW50OiBaQ29tcG9uZW50T3V0cHV0RXZlbnQsIGdyb3VwOiBaR3JvdXAsIG1lOiBhbnkpIHtcclxuICAgIGlmICghZXZlbnQgfHwgIWV2ZW50LnRhcmdldCB8fCAhZXZlbnQudGFyZ2V0LnN0YXJ0c1dpdGgoJ21vZGFsR3JvdXAnKSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zb2xlLmxvZyhcIj4+IFN1YmplY3RFdmVudFwiLCBldmVudCk7XHJcbiAgICAvLyBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQucmVwbGFjZSgnbW9kYWxHcm91cC4nLCAnZ3JvdXAuJyk7XHJcbiAgICBjb25zdCBjYWxsRnVuYyA9IFpDb21wb25lbnRIZWxwZXIuZ2V0R3JvdXBFdmFsVmFsdWUuY2FsbCh0aGlzLCBldmVudC50YXJnZXQsIGdyb3VwKTtcclxuICAgIC8vIGNhbGxGdW5jKGV2ZW50KTtcclxuICAgIGlmICh0eXBlb2YgY2FsbEZ1bmMgPT09IFwiZnVuY3Rpb25cIikge1xyXG4gICAgICBjb25zdCBmZyA9IHRoaXMuZ3JvdXAuZm9ybSBhcyBGb3JtR3JvdXA7XHJcbiAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5ncm91cC56TW9kZWwsIGZnLnZhbHVlKTtcclxuICAgICAgZXZlbnQuZGF0YSA9IHRoaXMuZ3JvdXAuek1vZGVsO1xyXG4gICAgICBpZiAoZXZlbnQudGFyZ2V0LnN0YXJ0c1dpdGgoJ21vZGFsR3JvdXAubW9kYWxBbnN3ZXInKSB8fCBldmVudC50YXJnZXQuc3RhcnRzV2l0aCgnbW9kYWxHcm91cC5tb2RhbENsb3NlJykgfHwgZXZlbnQudGFyZ2V0LnN0YXJ0c1dpdGgoJ21vZGFsR3JvdXAubW9kYWxDYW5jZWwnKSkge1xyXG4gICAgICAgIGNvbnN0IG5ld0Z1bmMgPSBjYWxsRnVuYy5iaW5kKHRoaXMpO1xyXG4gICAgICAgIG5ld0Z1bmMoZXZlbnQpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnN0IG5ld0Z1bmMgPSBjYWxsRnVuYy5iaW5kKGdyb3VwLmN0cmxTY29wZSk7XHJcbiAgICAgICAgbmV3RnVuYyhldmVudCk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnNvbGUud2FybihcclxuICAgICAgICBcIkZ1bmN0aW9uIG5vdCBkZWZpbmVkIGluIGdyb3VwIGZvcjogXCIsXHJcbiAgICAgICAgY2FsbEZ1bmMsXHJcbiAgICAgICAgXCIsIEV2ZW50OiBcIixcclxuICAgICAgICBldmVudFxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0TW9kZWwkKGdyb3VwOiBhbnksIGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgcmVjSWQgPSBpZCB8fCBncm91cC5yZWZlcmVuY2VJZDtcclxuICAgIHJldHVybiB0aGlzLndlYkFwaVNlcnZpY2UuaHR0cEdldCQoZ3JvdXAucmVzb3VyY2VVUkwgKyBcIi9cIiArIHJlY0lkLCBudWxsKTtcclxuICB9XHJcblxyXG4gIGdldEdyaWRTdHlsZSgpIHtcclxuICAgIC8vIGRlYnVnZ2VyO1xyXG4gICAgaWYgKCF0aGlzLmlzTW9iaWxlU2NyZWVuKSB7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgXCJoZWlnaHQucHhcIjogNTAwLFxyXG4gICAgICAgIFwid2lkdGgucHhcIjogNzAwXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG5cclxuICBpc01vYmlsZVNjcmVlbigpIHtcclxuICAgIGNvbnN0IHYgPSBaQ29tcG9uZW50SGVscGVyLmlzTW9iaWxlU2NyZWVuKCk7XHJcbiAgICByZXR1cm4gdjtcclxuICB9XHJcbn1cclxuIl19
|