mmhglobal-dynamicform 1.2.3 → 1.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -2
- package/esm2020/lib/directives/fieldelement.directive.mjs +16 -0
- package/esm2020/lib/directives/scrollbar.theme.directive.mjs +43 -0
- package/esm2020/lib/mmhglobal-dynamicform.module.mjs +464 -0
- package/esm2020/lib/services/main.service.mjs +752 -0
- package/esm2020/lib/services/zcomponent.debug.service.mjs +621 -0
- package/esm2020/lib/services/zcomponent.service.mjs +81 -0
- package/esm2020/lib/uiactionbutton/uiactionbutton.component.mjs +265 -0
- package/esm2020/lib/uiappmenucontent/uiappmenucontent.component.mjs +67 -0
- package/esm2020/lib/uicontent/uicontent.component.mjs +41 -0
- package/esm2020/lib/uiheader/uiheader.component.mjs +66 -0
- package/esm2020/lib/uimenubutton/uimenubutton.component.mjs +35 -0
- package/esm2020/lib/uimenucontent/uimenucontent.component.mjs +37 -0
- package/{esm2015/lib/uipage/uipage.component.js → esm2020/lib/uipage/uipage.component.mjs} +12 -13
- package/esm2020/lib/uivalidationmessage/uivalidationmessage.component.mjs +41 -0
- package/esm2020/lib/zbullet/zbullet.component.mjs +74 -0
- package/esm2020/lib/zbuttons/zbuttons.component.mjs +171 -0
- package/esm2020/lib/zcard/zcard.component.mjs +72 -0
- package/esm2020/lib/zchart/zchart.component.mjs +201 -0
- package/esm2020/lib/zcheckbox/zcheckbox.component.mjs +166 -0
- package/esm2020/lib/zchip/zchip.component.mjs +121 -0
- package/esm2020/lib/zcodeeditor/zcodeeditor.component.mjs +169 -0
- package/esm2020/lib/zcodeeditor/zcodeeditor.pipe.mjs +60 -0
- package/esm2020/lib/zdaterange/zdaterange.component.mjs +70 -0
- package/esm2020/lib/zdatetime/dateParser.pipe.mjs +30 -0
- package/esm2020/lib/zdatetime/zdatetime.component.mjs +285 -0
- package/esm2020/lib/zdiv/zdiv.component.mjs +50 -0
- package/esm2020/lib/zdiv/zdiv.pipe.mjs +31 -0
- package/esm2020/lib/zform/zform.component.mjs +147 -0
- package/esm2020/lib/zformcontrol/zformcontrol.component.mjs +49 -0
- package/esm2020/lib/zgauge/zgauge.component.mjs +148 -0
- package/esm2020/lib/zgrid/date-range-cell-filter.component.mjs +135 -0
- package/esm2020/lib/zgrid/zgrid.binding.directive.mjs +490 -0
- package/esm2020/lib/zgrid/zgrid.component.mjs +847 -0
- package/esm2020/lib/zgrid/zgrid.popup.anchor-target.directive.mjs +17 -0
- package/esm2020/lib/zimg/zimg.component.mjs +121 -0
- package/esm2020/lib/zkcard/zkcard.component.mjs +367 -0
- package/esm2020/lib/zlabel/zlabel.component.mjs +62 -0
- package/esm2020/lib/zmfb/zmfb.component.mjs +215 -0
- package/esm2020/lib/zmodal/zmodal-mobile.component.mjs +120 -0
- package/esm2020/lib/zmodal/zmodal.component.mjs +125 -0
- package/esm2020/lib/znumeric/znumeric.component.mjs +119 -0
- package/esm2020/lib/zpostselectinput/zpostselectinput.component.mjs +352 -0
- package/esm2020/lib/zquerybuilder/zquerybuilder.component.mjs +204 -0
- package/esm2020/lib/zreport/zreport.component.mjs +105 -0
- package/esm2020/lib/zreport/zreport.config.mjs +117 -0
- package/esm2020/lib/zscheduler/zscheduler.component.mjs +267 -0
- package/{esm2015/lib/zscheduler/zscheduler.toolbar.component.js → esm2020/lib/zscheduler/zscheduler.toolbar.component.mjs} +55 -19
- package/esm2020/lib/zselectmultiple/zselectmultiple.component.mjs +577 -0
- package/esm2020/lib/zselectmultiple/zselectmultiple.directive.mjs +35 -0
- package/esm2020/lib/ztab/ztab.component.mjs +187 -0
- package/esm2020/lib/ztab/ztab.pipe.mjs +26 -0
- package/esm2020/lib/ztext/ztext.component.mjs +297 -0
- package/esm2020/lib/ztextarea/ztextarea.component.mjs +109 -0
- package/esm2020/lib/ztexteditor/ztexteditor.component.mjs +57 -0
- package/esm2020/lib/ztree/ztree.component.mjs +380 -0
- package/esm2020/lib/ztreelist/ztreelist.component.mjs +544 -0
- package/esm2020/lib/ztrendcard/ztrendcard.component.mjs +92 -0
- package/esm2020/lib/zudf/zudf.component.mjs +205 -0
- package/esm2020/lib/zunknown/zunknown.component.mjs +20 -0
- package/esm2020/lib/zupload/zupload.component.mjs +359 -0
- package/esm2020/lib/zworkflowbuttons/zworkflowbuttons.component.mjs +216 -0
- package/esm2020/mmhglobal-dynamicform.mjs +5 -0
- package/{esm2015/public-api.js → esm2020/public-api.mjs} +0 -0
- package/fesm2015/mmhglobal-dynamicform.mjs +10790 -0
- package/fesm2015/mmhglobal-dynamicform.mjs.map +1 -0
- package/fesm2020/mmhglobal-dynamicform.mjs +10779 -0
- package/fesm2020/mmhglobal-dynamicform.mjs.map +1 -0
- package/lib/directives/fieldelement.directive.d.ts +3 -0
- package/lib/directives/scrollbar.theme.directive.d.ts +3 -0
- package/lib/mmhglobal-dynamicform.module.d.ts +92 -0
- package/lib/services/main.service.d.ts +3 -0
- package/lib/services/zcomponent.debug.service.d.ts +8 -5
- package/lib/services/zcomponent.service.d.ts +7 -2
- package/lib/uiactionbutton/uiactionbutton.component.d.ts +3 -0
- package/lib/uiappmenucontent/uiappmenucontent.component.d.ts +3 -0
- package/lib/uicontent/uicontent.component.d.ts +3 -0
- package/lib/uiheader/uiheader.component.d.ts +3 -0
- package/lib/uimenubutton/uimenubutton.component.d.ts +3 -0
- package/lib/uimenucontent/uimenucontent.component.d.ts +3 -0
- package/lib/uipage/uipage.component.d.ts +3 -0
- package/lib/uivalidationmessage/uivalidationmessage.component.d.ts +3 -0
- package/lib/zbullet/zbullet.component.d.ts +3 -0
- package/lib/zbuttons/zbuttons.component.d.ts +3 -0
- package/lib/zcard/zcard.component.d.ts +3 -0
- package/lib/zchart/zchart.component.d.ts +3 -0
- package/lib/zcheckbox/zcheckbox.component.d.ts +3 -0
- package/lib/zchip/zchip.component.d.ts +3 -0
- package/lib/zcodeeditor/zcodeeditor.component.d.ts +3 -0
- package/lib/zcodeeditor/zcodeeditor.pipe.d.ts +3 -0
- package/lib/zdaterange/zdaterange.component.d.ts +3 -0
- package/lib/zdatetime/dateParser.pipe.d.ts +3 -0
- package/lib/zdatetime/zdatetime.component.d.ts +3 -0
- package/lib/zdiv/zdiv.component.d.ts +3 -0
- package/lib/zdiv/zdiv.pipe.d.ts +3 -0
- package/lib/zform/zform.component.d.ts +3 -0
- package/lib/zformcontrol/zformcontrol.component.d.ts +3 -0
- package/lib/zgauge/zgauge.component.d.ts +3 -0
- package/lib/zgrid/date-range-cell-filter.component.d.ts +3 -0
- package/lib/zgrid/zgrid.binding.directive.d.ts +3 -0
- package/lib/zgrid/zgrid.component.d.ts +4 -1
- package/lib/zgrid/zgrid.popup.anchor-target.directive.d.ts +3 -0
- package/lib/zimg/zimg.component.d.ts +3 -0
- package/lib/zkcard/zkcard.component.d.ts +3 -0
- package/lib/zlabel/zlabel.component.d.ts +3 -0
- package/lib/zmfb/zmfb.component.d.ts +3 -0
- package/lib/zmodal/zmodal-mobile.component.d.ts +3 -0
- package/lib/zmodal/zmodal.component.d.ts +3 -0
- package/lib/znumeric/znumeric.component.d.ts +3 -0
- package/lib/zpostselectinput/zpostselectinput.component.d.ts +3 -0
- package/lib/zquerybuilder/zquerybuilder.component.d.ts +3 -0
- package/lib/zreport/zreport.component.d.ts +3 -0
- package/lib/zreport/zreport.config.d.ts +3 -0
- package/lib/zscheduler/zscheduler.component.d.ts +3 -0
- package/lib/zscheduler/zscheduler.toolbar.component.d.ts +3 -0
- package/lib/zselectmultiple/zselectmultiple.component.d.ts +3 -0
- package/lib/zselectmultiple/zselectmultiple.directive.d.ts +3 -0
- package/lib/ztab/ztab.component.d.ts +3 -0
- package/lib/ztab/ztab.pipe.d.ts +3 -0
- package/lib/ztext/ztext.component.d.ts +3 -0
- package/lib/ztextarea/ztextarea.component.d.ts +3 -0
- package/lib/ztexteditor/ztexteditor.component.d.ts +3 -0
- package/lib/ztree/ztree.component.d.ts +3 -0
- package/lib/ztreelist/ztreelist.component.d.ts +3 -0
- package/lib/ztrendcard/ztrendcard.component.d.ts +3 -0
- package/lib/zudf/zudf.component.d.ts +3 -0
- package/lib/zunknown/zunknown.component.d.ts +3 -0
- package/lib/zupload/zupload.component.d.ts +3 -0
- package/lib/zworkflowbuttons/zworkflowbuttons.component.d.ts +3 -0
- package/mmhglobal-dynamicform.d.ts +1 -2
- package/package.json +20 -11
- package/bundles/mmhglobal-dynamicform.umd.js +0 -11360
- package/bundles/mmhglobal-dynamicform.umd.js.map +0 -1
- package/bundles/mmhglobal-dynamicform.umd.min.js +0 -16
- package/bundles/mmhglobal-dynamicform.umd.min.js.map +0 -1
- package/esm2015/lib/directives/fieldelement.directive.js +0 -15
- package/esm2015/lib/directives/scrollbar.theme.directive.js +0 -42
- package/esm2015/lib/mmhglobal-dynamicform.module.js +0 -314
- package/esm2015/lib/services/main.service.js +0 -766
- package/esm2015/lib/services/zcomponent.debug.service.js +0 -626
- package/esm2015/lib/services/zcomponent.service.js +0 -167
- package/esm2015/lib/uiactionbutton/uiactionbutton.component.js +0 -271
- package/esm2015/lib/uiappmenucontent/uiappmenucontent.component.js +0 -69
- package/esm2015/lib/uicontent/uicontent.component.js +0 -41
- package/esm2015/lib/uiheader/uiheader.component.js +0 -65
- package/esm2015/lib/uimenubutton/uimenubutton.component.js +0 -40
- package/esm2015/lib/uimenucontent/uimenucontent.component.js +0 -34
- package/esm2015/lib/uivalidationmessage/uivalidationmessage.component.js +0 -39
- package/esm2015/lib/zbullet/zbullet.component.js +0 -71
- package/esm2015/lib/zbuttons/zbuttons.component.js +0 -168
- package/esm2015/lib/zcard/zcard.component.js +0 -68
- package/esm2015/lib/zchart/zchart.component.js +0 -199
- package/esm2015/lib/zcheckbox/zcheckbox.component.js +0 -158
- package/esm2015/lib/zchip/zchip.component.js +0 -117
- package/esm2015/lib/zcodeeditor/zcodeeditor.component.js +0 -163
- package/esm2015/lib/zcodeeditor/zcodeeditor.pipe.js +0 -56
- package/esm2015/lib/zdaterange/zdaterange.component.js +0 -63
- package/esm2015/lib/zdatetime/dateParser.pipe.js +0 -26
- package/esm2015/lib/zdatetime/zdatetime.component.js +0 -279
- package/esm2015/lib/zdiv/zdiv.component.js +0 -48
- package/esm2015/lib/zdiv/zdiv.pipe.js +0 -27
- package/esm2015/lib/zform/zform.component.js +0 -148
- package/esm2015/lib/zformcontrol/zformcontrol.component.js +0 -49
- package/esm2015/lib/zgauge/zgauge.component.js +0 -146
- package/esm2015/lib/zgrid/date-range-cell-filter.component.js +0 -102
- package/esm2015/lib/zgrid/zgrid.binding.directive.js +0 -493
- package/esm2015/lib/zgrid/zgrid.component.js +0 -834
- package/esm2015/lib/zgrid/zgrid.popup.anchor-target.directive.js +0 -16
- package/esm2015/lib/zimg/zimg.component.js +0 -123
- package/esm2015/lib/zkcard/zkcard.component.js +0 -372
- package/esm2015/lib/zlabel/zlabel.component.js +0 -59
- package/esm2015/lib/zmfb/zmfb.component.js +0 -215
- package/esm2015/lib/zmodal/zmodal-mobile.component.js +0 -119
- package/esm2015/lib/zmodal/zmodal.component.js +0 -130
- package/esm2015/lib/znumeric/znumeric.component.js +0 -114
- package/esm2015/lib/zpostselectinput/zpostselectinput.component.js +0 -345
- package/esm2015/lib/zquerybuilder/zquerybuilder.component.js +0 -196
- package/esm2015/lib/zreport/zreport.component.js +0 -104
- package/esm2015/lib/zreport/zreport.config.js +0 -115
- package/esm2015/lib/zscheduler/zscheduler.component.js +0 -268
- package/esm2015/lib/zselectmultiple/zselectmultiple.component.js +0 -565
- package/esm2015/lib/zselectmultiple/zselectmultiple.directive.js +0 -28
- package/esm2015/lib/ztab/ztab.component.js +0 -180
- package/esm2015/lib/ztab/ztab.pipe.js +0 -22
- package/esm2015/lib/ztext/ztext.component.js +0 -286
- package/esm2015/lib/ztextarea/ztextarea.component.js +0 -104
- package/esm2015/lib/ztexteditor/ztexteditor.component.js +0 -52
- package/esm2015/lib/ztree/ztree.component.js +0 -374
- package/esm2015/lib/ztreelist/ztreelist.component.js +0 -539
- package/esm2015/lib/ztrendcard/ztrendcard.component.js +0 -89
- package/esm2015/lib/zudf/zudf.component.js +0 -206
- package/esm2015/lib/zunknown/zunknown.component.js +0 -20
- package/esm2015/lib/zupload/zupload.component.js +0 -358
- package/esm2015/lib/zworkflowbuttons/zworkflowbuttons.component.js +0 -215
- package/esm2015/mmhglobal-dynamicform.js +0 -7
- package/fesm2015/mmhglobal-dynamicform.js +0 -10729
- package/fesm2015/mmhglobal-dynamicform.js.map +0 -1
- package/mmhglobal-dynamicform.metadata.json +0 -1
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
/********** Angular **********/
|
|
2
|
+
import { Component, Input } from "@angular/core";
|
|
3
|
+
import { Validators } from "@angular/forms";
|
|
4
|
+
/********** Ionic **********/
|
|
5
|
+
/********** Plugin **********/
|
|
6
|
+
/********** Component & Service **********/
|
|
7
|
+
import { ZComponentProperties, ZComponentHelper, } from "mmhglobal-zcore";
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "@ionic/angular";
|
|
10
|
+
import * as i2 from "@fortawesome/angular-fontawesome";
|
|
11
|
+
import * as i3 from "@progress/kendo-angular-inputs";
|
|
12
|
+
import * as i4 from "@progress/kendo-angular-label";
|
|
13
|
+
import * as i5 from "../uivalidationmessage/uivalidationmessage.component";
|
|
14
|
+
import * as i6 from "@angular/common";
|
|
15
|
+
import * as i7 from "@angular/forms";
|
|
16
|
+
import * as i8 from "@progress/kendo-angular-tooltip";
|
|
17
|
+
export class ZcheckboxComponent {
|
|
18
|
+
constructor() {
|
|
19
|
+
this.componentProperties = new ZComponentProperties();
|
|
20
|
+
this.showTooltipsInfoIcon = false;
|
|
21
|
+
this.showTooltipsInfoBySide = false;
|
|
22
|
+
this.tooltipsInfo = null;
|
|
23
|
+
this.tooltipsDisplayText = null;
|
|
24
|
+
this.useKendoSwitch = false;
|
|
25
|
+
this.setEnable = (status) => {
|
|
26
|
+
const fc = this.group.form.controls[this.data.Value];
|
|
27
|
+
status ? fc.enable() : fc.disable();
|
|
28
|
+
this.componentProperties.isReadOnly = !status;
|
|
29
|
+
};
|
|
30
|
+
this.setVisible = (status) => {
|
|
31
|
+
this.componentProperties.isVisible = status;
|
|
32
|
+
this.data.Visible = status;
|
|
33
|
+
};
|
|
34
|
+
this.setRequire = (status) => {
|
|
35
|
+
this.componentProperties.isRequired = status;
|
|
36
|
+
ZComponentHelper.changeValidator(status, this.group, this.data.Value, this.componentProperties, Validators.required);
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
ngOnInit() {
|
|
40
|
+
ZComponentHelper.setComponentProperties(this);
|
|
41
|
+
ZComponentHelper.registerComponent(this);
|
|
42
|
+
this.tooltipsInfo = this.data['TooltipsInfo'];
|
|
43
|
+
if (this.tooltipsInfo) {
|
|
44
|
+
if ((this.tooltipsInfo['Icon'] != null || this.tooltipsInfo['Icon'] != undefined) && !this.isMobileScreen()) {
|
|
45
|
+
this.showTooltipsInfoIcon = true;
|
|
46
|
+
this.setTooltipsInfoIcon();
|
|
47
|
+
}
|
|
48
|
+
if (this.tooltipsInfo['SideBySide']) {
|
|
49
|
+
this.showTooltipsInfoBySide = true;
|
|
50
|
+
}
|
|
51
|
+
this.setTooltipsDisplayText();
|
|
52
|
+
}
|
|
53
|
+
this.useKendoSwitch = this.data.UseKendoSwitch ? this.data.UseKendoSwitch : false;
|
|
54
|
+
}
|
|
55
|
+
isMobileScreen() {
|
|
56
|
+
const v = ZComponentHelper.isMobileScreen();
|
|
57
|
+
return v;
|
|
58
|
+
}
|
|
59
|
+
onSwitchChange(event) {
|
|
60
|
+
ZComponentHelper.setModelValue(this.data.Value, event, this.group);
|
|
61
|
+
this.group.subject.next({
|
|
62
|
+
type: "onChange",
|
|
63
|
+
target: this.data.OnChange,
|
|
64
|
+
data: { value: event, field: this.data },
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
onChange(event) {
|
|
68
|
+
if (this.data.OnChange) {
|
|
69
|
+
const callFunc = ZComponentHelper.getGroupEvalValue.call(this, this.data.OnChange);
|
|
70
|
+
if (typeof callFunc === "function") {
|
|
71
|
+
const newFunc = callFunc.bind(this.group.ctrlScope);
|
|
72
|
+
newFunc(event);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
getLabelStyle() {
|
|
77
|
+
return {
|
|
78
|
+
order: this.data.LabelOrder &&
|
|
79
|
+
this.data.LabelOrder === "end" &&
|
|
80
|
+
this.data.LabelPosition !== "stacked"
|
|
81
|
+
? 2
|
|
82
|
+
: 0,
|
|
83
|
+
"white-space": "normal",
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
getCheckboxClass() {
|
|
87
|
+
const classList = [];
|
|
88
|
+
if (this.data.LabelDivClass) {
|
|
89
|
+
this.data.LabelDivClass.split(" ").forEach((x) => {
|
|
90
|
+
if (x.indexOf("col") !== -1) {
|
|
91
|
+
const divClassSegment = x.split("-");
|
|
92
|
+
divClassSegment[divClassSegment.length - 1] = (12 - parseInt(divClassSegment[divClassSegment.length - 1])).toString();
|
|
93
|
+
classList.push(divClassSegment.join("-"));
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
classList.push(x);
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
return classList.join(" ");
|
|
101
|
+
}
|
|
102
|
+
getClass(form, data) {
|
|
103
|
+
return `ionItem ${this.data.Class}`;
|
|
104
|
+
}
|
|
105
|
+
/********** TooltipsInfo **********/
|
|
106
|
+
setTooltipsInfoColor() {
|
|
107
|
+
if (this.tooltipsInfo) {
|
|
108
|
+
if (this.tooltipsInfo['TextColor']) {
|
|
109
|
+
return this.tooltipsInfo['TextColor'];
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
return "#acacac"; // default grey
|
|
113
|
+
}
|
|
114
|
+
setTooltipsInfoIcon(displayIcon) {
|
|
115
|
+
if (this.showTooltipsInfoIcon) {
|
|
116
|
+
if (this.tooltipsInfo.Icon != '') {
|
|
117
|
+
if (displayIcon) {
|
|
118
|
+
this.tooltipsDisplayIcon = displayIcon;
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
this.tooltipsDisplayIcon = this.tooltipsInfo.Icon;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
this.tooltipsDisplayIcon = 'question-circle';
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
setTooltipsDisplayText(displayText) {
|
|
130
|
+
if (this.tooltipsInfo) {
|
|
131
|
+
if (displayText) {
|
|
132
|
+
this.tooltipsDisplayText = displayText;
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
this.tooltipsDisplayText = this.tooltipsInfo.DisplayText;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
else {
|
|
139
|
+
this.tooltipsDisplayText = '<Display text error>';
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
setTooltipsInfoSideBySide() {
|
|
143
|
+
if (this.tooltipsInfo) {
|
|
144
|
+
if (this.tooltipsInfo['SideBySide'] && !this.showTooltipsInfoIcon) {
|
|
145
|
+
return 'tooltipsinfo-right';
|
|
146
|
+
}
|
|
147
|
+
else {
|
|
148
|
+
return '';
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
return 'notooltipsinfo-adjustment';
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
ZcheckboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.4", ngImport: i0, type: ZcheckboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
155
|
+
ZcheckboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.4", type: ZcheckboxComponent, selector: "app-zcheckbox", inputs: { data: "data", group: "group", form: "form" }, ngImport: i0, template: "<ion-item [ngClass]=\"getClass(form, data)\" [formGroup]=\"form\" *ngIf=\"(!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\">\r\n <ion-label *ngIf=\"data.ShowLabel === undefined || data.ShowLabel\"\r\n [attr.for]=\"data.Value\"\r\n [position]=\"data.LabelPosition ? data.LabelPosition : 'stacked'\"\r\n [ngStyle]=\"getLabelStyle()\"\r\n [ngClass]=\"data.LabelDivClass\">\r\n {{data.Label}}\r\n <ion-text *ngIf=\"(!!componentProperties.isRequiredField ? group[componentProperties.isRequiredField] : componentProperties.isRequired)\"\r\n color=\"danger\">\r\n *\r\n </ion-text>\r\n <span kendoTooltip\r\n *ngIf=\"!isMobileScreen() && tooltipsInfo && showTooltipsInfoIcon\"\r\n [title]=\"tooltipsDisplayText\">\r\n <fa-icon [icon]=\"tooltipsDisplayIcon\"\r\n class=\"tooltipsinfo-icon\">\r\n </fa-icon>\r\n </span>\r\n </ion-label>\r\n <div class=\"ion-row divcheckbox\" [ngClass]=\"getCheckboxClass()\">\r\n <div *ngIf=\"useKendoSwitch\">\r\n <span>\r\n <kendo-switch [id]=\"data.Value\"\r\n [formControlName]=\"data.Value\"\r\n [readonly]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n (valueChange)=\"onSwitchChange($event)\"\r\n style=\"margin: 7px 0 0 0; width: 100%\"></kendo-switch>\r\n </span>\r\n </div>\r\n <div *ngIf=\"!useKendoSwitch\" [class]=\"setTooltipsInfoSideBySide()\">\r\n <!--<input kendoCheckBox\r\n type=\"checkbox\"\r\n [id]=\"data.Value\"\r\n [formControlName]=\"data.Value\"\r\n [disabled]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n (valueChange)=\"onChange($event)\" />-->\r\n <ion-checkbox style=\"margin: 8px 0;\"\r\n [id]=\"data.Value\"\r\n [formControlName]=\"data.Value\"\r\n color=\"primary\"\r\n [attr.disabled]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n (ionChange)=\"onChange($event)\"></ion-checkbox>\r\n <kendo-label *ngIf=\"tooltipsInfo && !showTooltipsInfoIcon\"\r\n [text]=\"tooltipsDisplayText\"\r\n class=\"tooltipsinfo-text\"\r\n [style.color]=\"setTooltipsInfoColor()\">\r\n </kendo-label>\r\n <app-uivalidationmessage [group]=\"group\" [data]=\"data\" [form]=\"form\"></app-uivalidationmessage>\r\n </div>\r\n </div>\r\n</ion-item>\r\n", styles: [".ionItem{display:flex;flex-flow:row wrap}.gridInlineEdit{--background: transparent}.item.sc-ion-label-md-h,.item .sc-ion-label-md-h{font-weight:var(--z-label-weight);color:var(--z-label-color);text-shadow:var(--z-label-shadow)}:host ::ng-deep ion-item .k-checkbox{margin:6px 0 0 1.5px;height:22px;width:22px}:host ::ng-deep ion-item .k-checkbox:checked,:host ::ng-deep ion-item .k-checkbox.k-checked{margin:6px 0 0 1.5px;height:22px;width:22px;background-color:#3880ff;border:0px;outline:0}:host ::ng-deep ion-item .divcheckbox{justify-content:space-between;order:1}:host ::ng-deep ion-item .notooltipsinfo-adjustment{display:grid;grid-template-columns:.1fr;grid-gap:0px;padding-top:1px}:host ::ng-deep ion-item .tooltipsinfo-text{text-align:justify;text-justify:inter-word;word-wrap:break-word;font-size:10px;margin:6px 0;float:right}:host ::ng-deep ion-item .tooltipsinfo-right{display:grid;grid-template-columns:.1fr .9fr;grid-gap:5px}:host ::ng-deep ion-item .tooltipsinfo-icon{padding-left:10px;color:#3880ff}\n"], components: [{ type: i1.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { type: i1.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { type: i1.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { type: i2.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }, { type: i3.SwitchComponent, selector: "kendo-switch", inputs: ["focusableId", "disabled", "readonly", "tabindex", "checked", "size", "thumbRounded", "trackRounded", "tabIndex", "onLabel", "offLabel"], outputs: ["focus", "blur", "valueChange"], exportAs: ["kendoSwitch"] }, { type: i1.IonCheckbox, selector: "ion-checkbox", inputs: ["checked", "color", "disabled", "indeterminate", "mode", "name", "value"] }, { type: i4.LabelComponent, selector: "kendo-label", inputs: ["text", "for", "optional"], exportAs: ["kendoLabel"] }, { type: i5.UivalidationmessageComponent, selector: "app-uivalidationmessage", inputs: ["group", "data", "form"] }], directives: [{ type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i7.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i6.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i8.TooltipDirective, selector: "[kendoTooltip]", inputs: ["filter", "position", "showAfter", "callout", "closable", "offset", "tooltipTemplate", "showOn", "titleTemplate", "tooltipWidth", "tooltipHeight", "tooltipClass", "collision", "closeTitle"], exportAs: ["kendoTooltip"] }, { type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i7.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i1.BooleanValueAccessor, selector: "ion-checkbox,ion-toggle" }] });
|
|
156
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.4", ngImport: i0, type: ZcheckboxComponent, decorators: [{
|
|
157
|
+
type: Component,
|
|
158
|
+
args: [{ selector: "app-zcheckbox", template: "<ion-item [ngClass]=\"getClass(form, data)\" [formGroup]=\"form\" *ngIf=\"(!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\">\r\n <ion-label *ngIf=\"data.ShowLabel === undefined || data.ShowLabel\"\r\n [attr.for]=\"data.Value\"\r\n [position]=\"data.LabelPosition ? data.LabelPosition : 'stacked'\"\r\n [ngStyle]=\"getLabelStyle()\"\r\n [ngClass]=\"data.LabelDivClass\">\r\n {{data.Label}}\r\n <ion-text *ngIf=\"(!!componentProperties.isRequiredField ? group[componentProperties.isRequiredField] : componentProperties.isRequired)\"\r\n color=\"danger\">\r\n *\r\n </ion-text>\r\n <span kendoTooltip\r\n *ngIf=\"!isMobileScreen() && tooltipsInfo && showTooltipsInfoIcon\"\r\n [title]=\"tooltipsDisplayText\">\r\n <fa-icon [icon]=\"tooltipsDisplayIcon\"\r\n class=\"tooltipsinfo-icon\">\r\n </fa-icon>\r\n </span>\r\n </ion-label>\r\n <div class=\"ion-row divcheckbox\" [ngClass]=\"getCheckboxClass()\">\r\n <div *ngIf=\"useKendoSwitch\">\r\n <span>\r\n <kendo-switch [id]=\"data.Value\"\r\n [formControlName]=\"data.Value\"\r\n [readonly]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n (valueChange)=\"onSwitchChange($event)\"\r\n style=\"margin: 7px 0 0 0; width: 100%\"></kendo-switch>\r\n </span>\r\n </div>\r\n <div *ngIf=\"!useKendoSwitch\" [class]=\"setTooltipsInfoSideBySide()\">\r\n <!--<input kendoCheckBox\r\n type=\"checkbox\"\r\n [id]=\"data.Value\"\r\n [formControlName]=\"data.Value\"\r\n [disabled]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n (valueChange)=\"onChange($event)\" />-->\r\n <ion-checkbox style=\"margin: 8px 0;\"\r\n [id]=\"data.Value\"\r\n [formControlName]=\"data.Value\"\r\n color=\"primary\"\r\n [attr.disabled]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n (ionChange)=\"onChange($event)\"></ion-checkbox>\r\n <kendo-label *ngIf=\"tooltipsInfo && !showTooltipsInfoIcon\"\r\n [text]=\"tooltipsDisplayText\"\r\n class=\"tooltipsinfo-text\"\r\n [style.color]=\"setTooltipsInfoColor()\">\r\n </kendo-label>\r\n <app-uivalidationmessage [group]=\"group\" [data]=\"data\" [form]=\"form\"></app-uivalidationmessage>\r\n </div>\r\n </div>\r\n</ion-item>\r\n", styles: [".ionItem{display:flex;flex-flow:row wrap}.gridInlineEdit{--background: transparent}.item.sc-ion-label-md-h,.item .sc-ion-label-md-h{font-weight:var(--z-label-weight);color:var(--z-label-color);text-shadow:var(--z-label-shadow)}:host ::ng-deep ion-item .k-checkbox{margin:6px 0 0 1.5px;height:22px;width:22px}:host ::ng-deep ion-item .k-checkbox:checked,:host ::ng-deep ion-item .k-checkbox.k-checked{margin:6px 0 0 1.5px;height:22px;width:22px;background-color:#3880ff;border:0px;outline:0}:host ::ng-deep ion-item .divcheckbox{justify-content:space-between;order:1}:host ::ng-deep ion-item .notooltipsinfo-adjustment{display:grid;grid-template-columns:.1fr;grid-gap:0px;padding-top:1px}:host ::ng-deep ion-item .tooltipsinfo-text{text-align:justify;text-justify:inter-word;word-wrap:break-word;font-size:10px;margin:6px 0;float:right}:host ::ng-deep ion-item .tooltipsinfo-right{display:grid;grid-template-columns:.1fr .9fr;grid-gap:5px}:host ::ng-deep ion-item .tooltipsinfo-icon{padding-left:10px;color:#3880ff}\n"] }]
|
|
159
|
+
}], ctorParameters: function () { return []; }, propDecorators: { data: [{
|
|
160
|
+
type: Input
|
|
161
|
+
}], group: [{
|
|
162
|
+
type: Input
|
|
163
|
+
}], form: [{
|
|
164
|
+
type: Input
|
|
165
|
+
}] } });
|
|
166
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiemNoZWNrYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21taGdsb2JhbC1keW5hbWljZm9ybS9zcmMvbGliL3pjaGVja2JveC96Y2hlY2tib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvemNoZWNrYm94L3pjaGVja2JveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQkFBK0I7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFhLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXZELDZCQUE2QjtBQUU3Qiw4QkFBOEI7QUFFOUIsMkNBQTJDO0FBQzNDLE9BQU8sRUFDVyxvQkFBb0IsRUFDeEIsZ0JBQWdCLEdBQzdCLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7Ozs7QUFRekIsTUFBTSxPQUFPLGtCQUFrQjtJQWE3QjtRQVJBLHdCQUFtQixHQUFHLElBQUksb0JBQW9CLEVBQUUsQ0FBQztRQUMxQyx5QkFBb0IsR0FBWSxLQUFLLENBQUM7UUFDdEMsMkJBQXNCLEdBQVksS0FBSyxDQUFDO1FBQ3hDLGlCQUFZLEdBQVEsSUFBSSxDQUFDO1FBQ3pCLHdCQUFtQixHQUFXLElBQUksQ0FBQztRQUVuQyxtQkFBYyxHQUFZLEtBQUssQ0FBQztRQW1EaEMsY0FBUyxHQUFHLENBQUMsTUFBZSxFQUFFLEVBQUU7WUFDckMsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDckQsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxP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Q0FBQztTQUNuRDtJQUNILENBQUM7SUFFTSx5QkFBeUI7UUFDOUIsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFHO1lBQ3RCLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBRSxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRTtnQkFDbEUsT0FBTyxvQkFBb0IsQ0FBQzthQUM3QjtpQkFDSTtnQkFDSCxPQUFPLEVBQUUsQ0FBQzthQUNYO1NBQ0Y7UUFDRCxPQUFPLDJCQUEyQixDQUFDO0lBQ3JDLENBQUM7OytHQTFLVSxrQkFBa0I7bUdBQWxCLGtCQUFrQiw2R0NwQi9CLGl6RkFtREE7MkZEL0JhLGtCQUFrQjtrQkFMOUIsU0FBUzsrQkFDRSxlQUFlOzBFQUtoQixJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qKioqKioqKioqIEFuZ3VsYXIgKioqKioqKioqKi9cclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcblxyXG4vKioqKioqKioqKiBJb25pYyAqKioqKioqKioqL1xyXG5cclxuLyoqKioqKioqKiogUGx1Z2luICoqKioqKioqKiovXHJcblxyXG4vKioqKioqKioqKiBDb21wb25lbnQgJiBTZXJ2aWNlICoqKioqKioqKiovXHJcbmltcG9ydCB7IFxyXG4gIFpHcm91cCwgWkZpZWxkLCBaQ29tcG9uZW50UHJvcGVydGllcyxcclxuICBaQ29tcG9uZW50LCBaQ29tcG9uZW50SGVscGVyLCBaQ29tcG9uZW50T3V0cHV0RXZlbnQsXHJcbn0gZnJvbSBcIm1taGdsb2JhbC16Y29yZVwiO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImFwcC16Y2hlY2tib3hcIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL3pjaGVja2JveC5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsczogW1wiLi96Y2hlY2tib3guY29tcG9uZW50LnNjc3NcIl0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBaY2hlY2tib3hDb21wb25lbnQgaW1wbGVtZW50cyBaQ29tcG9uZW50LCBPbkluaXQge1xyXG4gIEBJbnB1dCgpIGRhdGE6IFpGaWVsZDtcclxuICBASW5wdXQoKSBncm91cDogWkdyb3VwO1xyXG4gIEBJbnB1dCgpIGZvcm06IEZvcm1Hcm91cDtcclxuXHJcbiAgY29tcG9uZW50UHJvcGVydGllcyA9IG5ldyBaQ29tcG9uZW50UHJvcGVydGllcygpO1xyXG4gIHB1YmxpYyBzaG93VG9vbHRpcHNJbmZvSWNvbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBzaG93VG9vbHRpcHNJbmZvQnlTaWRlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHRvb2x0aXBzSW5mbzogYW55ID0gbnVsbDtcclxuICBwdWJsaWMgdG9vbHRpcHNEaXNwbGF5VGV4dDogc3RyaW5nID0gbnVsbDtcclxuICBwdWJsaWMgdG9vbHRpcHNEaXNwbGF5SWNvbjogYW55O1xyXG4gIHB1YmxpYyB1c2VLZW5kb1N3aXRjaDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIFpDb21wb25lbnRIZWxwZXIuc2V0Q29tcG9uZW50UHJvcGVydGllcyh0aGlzKTtcclxuICAgIFpDb21wb25lbnRIZWxwZXIucmVnaXN0ZXJDb21wb25lbnQodGhpcyk7XHJcblxyXG4gICAgdGhpcy50b29sdGlwc0luZm8gPSB0aGlzLmRhdGFbJ1Rvb2x0aXBzSW5mbyddO1xyXG4gICAgaWYgKHRoaXMudG9vbHRpcHNJbmZvKSB7XHJcbiAgICAgIGlmICgodGhpcy50b29sdGlwc0luZm9bJ0ljb24nXSAhPSBudWxsIHx8IHRoaXMudG9vbHRpcHNJbmZvWydJY29uJ10gIT0gdW5kZWZpbmVkKSAmJiAhdGhpcy5pc01vYmlsZVNjcmVlbigpKSB7XHJcbiAgICAgICAgdGhpcy5zaG93VG9vbHRpcHNJbmZvSWNvbiA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5zZXRUb29sdGlwc0luZm9JY29uKCk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMudG9vbHRpcHNJbmZvWydTaWRlQnlTaWRlJ10pIHtcclxuICAgICAgICB0aGlzLnNob3dUb29sdGlwc0luZm9CeVNpZGUgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICAgICBcclxuICAgICAgdGhpcy5zZXRUb29sdGlwc0Rpc3BsYXlUZXh0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy51c2VLZW5kb1N3aXRjaCA9IHRoaXMuZGF0YS5Vc2VLZW5kb1N3aXRjaCA/IHRoaXMuZGF0YS5Vc2VLZW5kb1N3aXRjaCA6IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgaXNNb2JpbGVTY3JlZW4oKSB7XHJcbiAgICBjb25zdCB2ID0gWkNvbXBvbmVudEhlbHBlci5pc01vYmlsZVNjcmVlbigpO1xyXG4gICAgcmV0dXJuIHY7XHJcbiAgfVxyXG5cclxuICBvblN3aXRjaENoYW5nZShldmVudDogYW55KSB7XHJcbiAgICBaQ29tcG9uZW50SGVscGVyLnNldE1vZGVsVmFsdWUodGhpcy5kYXRhLlZhbHVlLCBldmVudCwgdGhpcy5ncm91cCk7XHJcbiAgICB0aGlzLmdyb3VwLnN1YmplY3QubmV4dCh7XHJcbiAgICAgIHR5cGU6IFwib25DaGFuZ2VcIixcclxuICAgICAgdGFyZ2V0OiB0aGlzLmRhdGEuT25DaGFuZ2UsXHJcbiAgICAgIGRhdGE6IHsgdmFsdWU6IGV2ZW50LCBmaWVsZDogdGhpcy5kYXRhIH0sXHJcbiAgICB9IGFzIFpDb21wb25lbnRPdXRwdXRFdmVudCk7XHJcbiAgfVxyXG5cclxuICBvbkNoYW5nZShldmVudDogYW55KSB7XHJcbiAgICBpZiAodGhpcy5kYXRhLk9uQ2hhbmdlKSB7XHJcbiAgICAgIGNvbnN0IGNhbGxGdW5jID0gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cEV2YWxWYWx1ZS5jYWxsKFxyXG4gICAgICAgIHRoaXMsXHJcbiAgICAgICAgdGhpcy5kYXRhLk9uQ2hhbmdlXHJcbiAgICAgICk7XHJcbiAgICAgIGlmICh0eXBlb2YgY2FsbEZ1bmMgPT09IFwiZnVuY3Rpb25cIikge1xyXG4gICAgICAgIGNvbnN0IG5ld0Z1bmMgPSBjYWxsRnVuYy5iaW5kKHRoaXMuZ3JvdXAuY3RybFNjb3BlKTtcclxuICAgICAgICBuZXdGdW5jKGV2ZW50KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldEVuYWJsZSA9IChzdGF0dXM6IGJvb2xlYW4pID0+IHtcclxuICAgIGNvbnN0IGZjID0gdGhpcy5ncm91cC5mb3JtLmNvbnRyb2xzW3RoaXMuZGF0YS5WYWx1ZV07XHJcbiAgICBzdGF0dXMgPyBmYy5lbmFibGUoKSA6IGZjLmRpc2FibGUoKTtcclxuICAgIHRoaXMuY29tcG9uZW50UHJvcGVydGllcy5pc1JlYWRPbmx5ID0gIXN0YXR1cztcclxuICB9O1xyXG5cclxuICBwdWJsaWMgc2V0VmlzaWJsZSA9IChzdGF0dXM6IGJvb2xlYW4pID0+IHtcclxuICAgIHRoaXMuY29tcG9uZW50UHJvcGVydGllcy5pc1Zpc2libGUgPSBzdGF0dXM7XHJcbiAgICB0aGlzLmRhdGEuVmlzaWJsZSA9IHN0YXR1cztcclxuICB9O1xyXG5cclxuICBwdWJsaWMgc2V0UmVxdWlyZSA9IChzdGF0dXM6IGJvb2xlYW4pID0+IHtcclxuICAgIHRoaXMuY29tcG9uZW50UHJvcGVydGllcy5pc1JlcXVpcmVkID0gc3RhdHVzO1xyXG4gICAgWkNvbXBvbmVudEhlbHBlci5jaGFuZ2VWYWxpZGF0b3IoXHJcbiAgICAgIHN0YXR1cyxcclxuICAgICAgdGhpcy5ncm91cCxcclxuICAgICAgdGhpcy5kYXRhLlZhbHVlLFxyXG4gICAgICB0aGlzLmNvbXBvbmVudFByb3BlcnRpZXMsXHJcbiAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWRcclxuICAgICk7XHJcbiAgfTtcclxuXHJcbiAgcHVibGljIGdldExhYmVsU3R5bGUoKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBvcmRlcjpcclxuICAgICAgICB0aGlzLmRhdGEuTGFiZWxPcmRlciAmJlxyXG4gICAgICAgICAgdGhpcy5kYXRhLkxhYmVsT3JkZXIgPT09IFwiZW5kXCIgJiZcclxuICAgICAgICAgIHRoaXMuZGF0YS5MYWJlbFBvc2l0aW9uICE9PSBcInN0YWNrZWRcIlxyXG4gICAgICAgICAgPyAyXHJcbiAgICAgICAgICA6IDAsXHJcbiAgICAgIFwid2hpdGUtc3BhY2VcIjogXCJub3JtYWxcIixcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0Q2hlY2tib3hDbGFzcygpIHtcclxuICAgIGNvbnN0IGNsYXNzTGlzdCA9IFtdO1xyXG4gICAgaWYgKHRoaXMuZGF0YS5MYWJlbERpdkNsYXNzKSB7XHJcbiAgICAgIHRoaXMuZGF0YS5MYWJlbERpdkNsYXNzLnNwbGl0KFwiIFwiKS5mb3JFYWNoKCh4KSA9PiB7XHJcbiAgICAgICAgaWYgKHguaW5kZXhPZihcImNvbFwiKSAhPT0gLTEpIHtcclxuICAgICAgICAgIGNvbnN0IGRpdkNsYXNzU2VnbWVudCA9IHguc3BsaXQoXCItXCIpO1xyXG4gICAgICAgICAgZGl2Q2xhc3NTZWdtZW50W2RpdkNsYXNzU2VnbWVudC5sZW5ndGggLSAxXSA9IChcclxuICAgICAgICAgICAgMTIgLSBwYXJzZUludChkaXZDbGFzc1NlZ21lbnRbZGl2Q2xhc3NTZWdtZW50Lmxlbmd0aCAtIDFdKVxyXG4gICAgICAgICAgKS50b1N0cmluZygpO1xyXG4gICAgICAgICAgY2xhc3NMaXN0LnB1c2goZGl2Q2xhc3NTZWdtZW50LmpvaW4oXCItXCIpKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY2xhc3NMaXN0LnB1c2goeCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gY2xhc3NMaXN0LmpvaW4oXCIgXCIpO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q2xhc3MoZm9ybTogRm9ybUdyb3VwLCBkYXRhOiBaRmllbGQpIHtcclxuICAgIHJldHVybiBgaW9uSXRlbSAke3RoaXMuZGF0YS5DbGFzc31gO1xyXG4gIH1cclxuXHJcbiAgLyoqKioqKioqKiogVG9vbHRpcHNJbmZvICoqKioqKioqKiovXHJcbiAgcHVibGljIHNldFRvb2x0aXBzSW5mb0NvbG9yKCkge1xyXG4gICAgaWYgKHRoaXMudG9vbHRpcHNJbmZvKSB7XHJcbiAgICAgIGlmICh0aGlzLnRvb2x0aXBzSW5mb1snVGV4dENvbG9yJ10pIHtcclxuICAgICAgICByZXR1cm4gdGhpcy50b29sdGlwc0luZm9bJ1RleHRDb2xvciddO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIFwiI2FjYWNhY1wiOyAvLyBkZWZhdWx0IGdyZXlcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRUb29sdGlwc0luZm9JY29uKGRpc3BsYXlJY29uPzogc3RyaW5nKSB7XHJcbiAgICBpZiAodGhpcy5zaG93VG9vbHRpcHNJbmZvSWNvbikge1xyXG4gICAgICBpZiAodGhpcy50b29sdGlwc0luZm8uSWNvbiAhPSAnJykge1xyXG4gICAgICAgIGlmIChkaXNwbGF5SWNvbikge1xyXG4gICAgICAgICAgdGhpcy50b29sdGlwc0Rpc3BsYXlJY29uID0gZGlzcGxheUljb247XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy50b29sdGlwc0Rpc3BsYXlJY29uID0gdGhpcy50b29sdGlwc0luZm8uSWNvbjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgdGhpcy50b29sdGlwc0Rpc3BsYXlJY29uID0gJ3F1ZXN0aW9uLWNpcmNsZSdcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldFRvb2x0aXBzRGlzcGxheVRleHQoZGlzcGxheVRleHQ/OiBzdHJpbmcpIHtcclxuICAgIGlmICh0aGlzLnRvb2x0aXBzSW5mbykge1xyXG4gICAgICBpZiAoZGlzcGxheVRleHQpIHtcclxuICAgICAgICB0aGlzLnRvb2x0aXBzRGlzcGxheVRleHQgPSBkaXNwbGF5VGV4dDtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICB0aGlzLnRvb2x0aXBzRGlzcGxheVRleHQgPSB0aGlzLnRvb2x0aXBzSW5mby5EaXNwbGF5VGV4dDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMudG9vbHRpcHNEaXNwbGF5VGV4dCA9ICc8RGlzcGxheSB0ZXh0IGVycm9yPic7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0VG9vbHRpcHNJbmZvU2lkZUJ5U2lkZSgpIHsgXHJcbiAgICBpZiAodGhpcy50b29sdGlwc0luZm8gKSB7XHJcbiAgICAgIGlmICh0aGlzLnRvb2x0aXBzSW5mbyBbJ1NpZGVCeVNpZGUnXSAmJiAhdGhpcy5zaG93VG9vbHRpcHNJbmZvSWNvbikge1xyXG4gICAgICAgIHJldHVybiAndG9vbHRpcHNpbmZvLXJpZ2h0JztcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICByZXR1cm4gJyc7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiAnbm90b29sdGlwc2luZm8tYWRqdXN0bWVudCc7XHJcbiAgfVxyXG5cclxuXHJcbn1cclxuIiwiPGlvbi1pdGVtIFtuZ0NsYXNzXT1cImdldENsYXNzKGZvcm0sIGRhdGEpXCIgW2Zvcm1Hcm91cF09XCJmb3JtXCIgKm5nSWY9XCIoISFjb21wb25lbnRQcm9wZXJ0aWVzLmlzVmlzaWJsZUZpZWxkID8gZ3JvdXBbY29tcG9uZW50UHJvcGVydGllcy5pc1Zpc2libGVGaWVsZF0gOiBjb21wb25lbnRQcm9wZXJ0aWVzLmlzVmlzaWJsZSlcIj5cclxuICA8aW9uLWxhYmVsICpuZ0lmPVwiZGF0YS5TaG93TGFiZWwgPT09IHVuZGVmaW5lZCB8fCBkYXRhLlNob3dMYWJlbFwiXHJcbiAgICAgICAgICAgICBbYXR0ci5mb3JdPVwiZGF0YS5WYWx1ZVwiXHJcbiAgICAgICAgICAgICBbcG9zaXRpb25dPVwiZGF0YS5MYWJlbFBvc2l0aW9uID8gZGF0YS5MYWJlbFBvc2l0aW9uIDogJ3N0YWNrZWQnXCJcclxuICAgICAgICAgICAgIFtuZ1N0eWxlXT1cImdldExhYmVsU3R5bGUoKVwiXHJcbiAgICAgICAgICAgICBbbmdDbGFzc109XCJkYXRhLkxhYmVsRGl2Q2xhc3NcIj5cclxuICAgIHt7ZGF0YS5MYWJlbH19XHJcbiAgICA8aW9uLXRleHQgKm5nSWY9XCIoISFjb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVxdWlyZWRGaWVsZCA/IGdyb3VwW2NvbXBvbmVudFByb3BlcnRpZXMuaXNSZXF1aXJlZEZpZWxkXSA6IGNvbXBvbmVudFByb3BlcnRpZXMuaXNSZXF1aXJlZClcIlxyXG4gICAgICAgICAgICAgIGNvbG9yPVwiZGFuZ2VyXCI+XHJcbiAgICAgICpcclxuICAgIDwvaW9uLXRleHQ+XHJcbiAgICA8c3BhbiBrZW5kb1Rvb2x0aXBcclxuICAgICAgICAgICpuZ0lmPVwiIWlzTW9iaWxlU2NyZWVuKCkgJiYgdG9vbHRpcHNJbmZvICYmIHNob3dUb29sdGlwc0luZm9JY29uXCJcclxuICAgICAgICAgIFt0aXRsZV09XCJ0b29sdGlwc0Rpc3BsYXlUZXh0XCI+XHJcbiAgICAgIDxmYS1pY29uIFtpY29uXT1cInRvb2x0aXBzRGlzcGxheUljb25cIlxyXG4gICAgICAgICAgICAgICBjbGFzcz1cInRvb2x0aXBzaW5mby1pY29uXCI+XHJcbiAgICAgIDwvZmEtaWNvbj5cclxuICAgIDwvc3Bhbj5cclxuICA8L2lvbi1sYWJlbD5cclxuICA8ZGl2IGNsYXNzPVwiaW9uLXJvdyBkaXZjaGVja2JveFwiIFtuZ0NsYXNzXT1cImdldENoZWNrYm94Q2xhc3MoKVwiPlxyXG4gICAgPGRpdiAqbmdJZj1cInVzZUtlbmRvU3dpdGNoXCI+XHJcbiAgICAgIDxzcGFuPlxyXG4gICAgICAgIDxrZW5kby1zd2l0Y2ggW2lkXT1cImRhdGEuVmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJkYXRhLlZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCIoISFjb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVhZE9ubHlGaWVsZCA/IGdyb3VwW2NvbXBvbmVudFByb3BlcnRpZXMuaXNSZWFkT25seUZpZWxkXSA6IGNvbXBvbmVudFByb3BlcnRpZXMuaXNSZWFkT25seSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cIm9uU3dpdGNoQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJtYXJnaW46IDdweCAwIDAgMDsgd2lkdGg6IDEwMCVcIj48L2tlbmRvLXN3aXRjaD5cclxuICAgICAgPC9zcGFuPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2ICpuZ0lmPVwiIXVzZUtlbmRvU3dpdGNoXCIgW2NsYXNzXT1cInNldFRvb2x0aXBzSW5mb1NpZGVCeVNpZGUoKVwiPlxyXG4gICAgICA8IS0tPGlucHV0IGtlbmRvQ2hlY2tCb3hcclxuICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICBbaWRdPVwiZGF0YS5WYWx1ZVwiXHJcbiAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImRhdGEuVmFsdWVcIlxyXG4gICAgICAgICAgICAgW2Rpc2FibGVkXT1cIighIWNvbXBvbmVudFByb3BlcnRpZXMuaXNSZWFkT25seUZpZWxkID8gZ3JvdXBbY29tcG9uZW50UHJvcGVydGllcy5pc1JlYWRPbmx5RmllbGRdIDogY29tcG9uZW50UHJvcGVydGllcy5pc1JlYWRPbmx5KVwiXHJcbiAgICAgICAgICAgICAodmFsdWVDaGFuZ2UpPVwib25DaGFuZ2UoJGV2ZW50KVwiIC8+LS0+XHJcbiAgICAgIDxpb24tY2hlY2tib3ggc3R5bGU9XCJtYXJnaW46IDhweCAwO1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW2lkXT1cImRhdGEuVmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiZGF0YS5WYWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcclxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCIoISFjb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVhZE9ubHlGaWVsZCA/IGdyb3VwW2NvbXBvbmVudFByb3BlcnRpZXMuaXNSZWFkT25seUZpZWxkXSA6IGNvbXBvbmVudFByb3BlcnRpZXMuaXNSZWFkT25seSlcIlxyXG4gICAgICAgICAgICAgICAgICAgIChpb25DaGFuZ2UpPVwib25DaGFuZ2UoJGV2ZW50KVwiPjwvaW9uLWNoZWNrYm94PlxyXG4gICAgICA8a2VuZG8tbGFiZWwgKm5nSWY9XCJ0b29sdGlwc0luZm8gJiYgIXNob3dUb29sdGlwc0luZm9JY29uXCJcclxuICAgICAgICAgICAgICAgICAgIFt0ZXh0XT1cInRvb2x0aXBzRGlzcGxheVRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0b29sdGlwc2luZm8tdGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICBbc3R5bGUuY29sb3JdPVwic2V0VG9vbHRpcHNJbmZvQ29sb3IoKVwiPlxyXG4gICAgICA8L2tlbmRvLWxhYmVsPlxyXG4gICAgICA8YXBwLXVpdmFsaWRhdGlvbm1lc3NhZ2UgW2dyb3VwXT1cImdyb3VwXCIgW2RhdGFdPVwiZGF0YVwiIFtmb3JtXT1cImZvcm1cIj48L2FwcC11aXZhbGlkYXRpb25tZXNzYWdlPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvaW9uLWl0ZW0+XHJcbiJdfQ==
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
/********** Angular **********/
|
|
2
|
+
import { Component, Input, ViewChild } from "@angular/core";
|
|
3
|
+
import { Validators } from '@angular/forms';
|
|
4
|
+
/********** Ionic **********/
|
|
5
|
+
/********** Plugin **********/
|
|
6
|
+
import { TooltipDirective } from '@progress/kendo-angular-tooltip';
|
|
7
|
+
/********** Component & Service **********/
|
|
8
|
+
import { ZComponentHelper, ZComponentProperties } from 'mmhglobal-zcore';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
import * as i1 from "mmhglobal-zcore";
|
|
11
|
+
import * as i2 from "@progress/kendo-angular-buttons";
|
|
12
|
+
import * as i3 from "@angular/common";
|
|
13
|
+
import * as i4 from "@progress/kendo-angular-tooltip";
|
|
14
|
+
export class ZChipComponent {
|
|
15
|
+
constructor(authService) {
|
|
16
|
+
this.authService = authService;
|
|
17
|
+
this.icon = "k-icon k-i-cancel";
|
|
18
|
+
this.selectedIcon = "k-icon k-i-check-circle";
|
|
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
|
+
}
|
|
32
|
+
ngOnInit() {
|
|
33
|
+
this.setupDataSource();
|
|
34
|
+
ZComponentHelper.setComponentProperties(this);
|
|
35
|
+
ZComponentHelper.registerComponent(this);
|
|
36
|
+
}
|
|
37
|
+
setupDataSource() {
|
|
38
|
+
if (!this.data.DataSource) {
|
|
39
|
+
console.error("No data source found for zhip");
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
if (this.data.DataSource.indexOf("group.") !== -1) {
|
|
43
|
+
this.dataSource = ZComponentHelper.getGroupValue(this.data.DataSource, this.group);
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
this.dataSource = this.data.DataSource;
|
|
47
|
+
}
|
|
48
|
+
if (Array.isArray(this.dataSource)) {
|
|
49
|
+
this.dataSource.forEach(x => {
|
|
50
|
+
x.Label = x.Label ? x.Label : x.Value,
|
|
51
|
+
x.Icon = !!x.Selected ? null : (x.Icon ? x.Icon : this.icon),
|
|
52
|
+
x.SelectedIcon = x.SelectedIcon ? x.SelectedIcon : this.selectedIcon,
|
|
53
|
+
x._Icon = x.Icon ? x.Icon : this.icon;
|
|
54
|
+
x._Selected = x.Selected;
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
getClass() {
|
|
59
|
+
return this.data.DivClass;
|
|
60
|
+
}
|
|
61
|
+
getChipClass(chip) {
|
|
62
|
+
return chip.Class ? chip.Class : "";
|
|
63
|
+
}
|
|
64
|
+
chipListChangeSelection(selectedChipIndexes) {
|
|
65
|
+
let ind = 0;
|
|
66
|
+
for (let chip of this.dataSource) {
|
|
67
|
+
if (selectedChipIndexes.includes(ind)) {
|
|
68
|
+
chip.Icon = null;
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
chip.Icon = this.dataSource.find(x => x.Value === chip.Value)._Icon;
|
|
72
|
+
}
|
|
73
|
+
ind++;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
chipChangeSelection(chip) {
|
|
77
|
+
this.dataSource.find(x => x.Value === chip.Value)._Selected = !chip._Selected;
|
|
78
|
+
if (this.data.OnChange) {
|
|
79
|
+
this.group.subject.next({
|
|
80
|
+
type: "onChange",
|
|
81
|
+
target: this.data.OnChange,
|
|
82
|
+
data: { value: this.dataSource, selectedItem: chip, field: this.data }
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
getDataValue() {
|
|
87
|
+
return this.dataSource;
|
|
88
|
+
}
|
|
89
|
+
mouseover(event, chip) {
|
|
90
|
+
if (this.data.OnHover) {
|
|
91
|
+
this.group.subject.next({
|
|
92
|
+
type: "onHover",
|
|
93
|
+
target: this.data.OnHover,
|
|
94
|
+
data: { value: this.dataSource, selectedItem: chip, field: this.data }
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
if (!!this.data['IsShowToolTip']) {
|
|
98
|
+
this.showTooltip(event);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
showTooltip(e) {
|
|
102
|
+
const element = e.target;
|
|
103
|
+
this.tooltipDir.toggle(element);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
ZChipComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.4", ngImport: i0, type: ZChipComponent, deps: [{ token: i1.AuthService }], target: i0.ɵɵFactoryTarget.Component });
|
|
107
|
+
ZChipComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.4", type: ZChipComponent, selector: "app-zchip", inputs: { data: "data", group: "group", form: "form" }, viewQueries: [{ propertyName: "tooltipDir", first: true, predicate: TooltipDirective, descendants: true }], ngImport: i0, template: "<div\r\n *ngIf=\"(!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\"\r\n style=\"margin: 10px 0 6px 0;\" [ngClass]=\"getClass()\">\r\n <ng-template #template let-anchor>\r\n <span>{{ anchor.nativeElement.innerText }}</span>\r\n </ng-template>\r\n <div kendoTooltip [tooltipTemplate]=\"template\">\r\n <kendo-chip-list [selection]=\"data.Multiple ? 'multiple' : 'single'\"\r\n (selectedChange)=\"chipListChangeSelection($event)\">\r\n <kendo-chip *ngFor=\"let chip of dataSource\" [label]=\"chip.Label\" [selected]=\"chip.Selected\"\r\n (mouseover)=\"mouseover($event, chip)\" [ngClass]=\"getChipClass(chip)\" [icon]=\"chip.Icon\"\r\n [selectedIcon]=\"chip.SelectedIcon\" (click)=\"chipChangeSelection(chip)\" >\r\n </kendo-chip>\r\n </kendo-chip-list>\r\n </div>\r\n</div>\r\n", styles: [".medium kendo-chip{padding:20px;margin:5px;font-size:15px;min-height:50px;height:55px;max-height:60px;min-width:280px;max-width:320px}.mediumHeight kendo-chip-list{max-height:400px;border:1px solid black;padding:5px 15px;overflow-x:auto;border-radius:10px}.vertical kendo-chip-list{display:flex;flex-direction:column}.customColor .k-chip-filled.k-chip-selected{background-color:#bafff6;color:#000;font-weight:600}.customColor .k-chip-filled.k-chip-selected:hover{background-color:#9afcf0}.customColor .k-chip-filled.k-chip-has-icon:hover{background-color:#b5b5b5;color:#000}.customColor .chip-pointing{border:3px solid #1a63d9!important}\n"], components: [{ type: i2.ChipListComponent, selector: "kendo-chiplist, kendo-chip-list", inputs: ["selection", "size"], outputs: ["selectedChange", "remove"] }, { type: i2.ChipComponent, selector: "kendo-chip", inputs: ["selected", "removable", "disabled", "size", "rounded", "fillMode", "themeColor", "label", "icon", "iconClass", "avatarClass", "removeIcon"], outputs: ["remove", "contentClick"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4.TooltipDirective, selector: "[kendoTooltip]", inputs: ["filter", "position", "showAfter", "callout", "closable", "offset", "tooltipTemplate", "showOn", "titleTemplate", "tooltipWidth", "tooltipHeight", "tooltipClass", "collision", "closeTitle"], exportAs: ["kendoTooltip"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
108
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.4", ngImport: i0, type: ZChipComponent, decorators: [{
|
|
109
|
+
type: Component,
|
|
110
|
+
args: [{ selector: 'app-zchip', template: "<div\r\n *ngIf=\"(!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\"\r\n style=\"margin: 10px 0 6px 0;\" [ngClass]=\"getClass()\">\r\n <ng-template #template let-anchor>\r\n <span>{{ anchor.nativeElement.innerText }}</span>\r\n </ng-template>\r\n <div kendoTooltip [tooltipTemplate]=\"template\">\r\n <kendo-chip-list [selection]=\"data.Multiple ? 'multiple' : 'single'\"\r\n (selectedChange)=\"chipListChangeSelection($event)\">\r\n <kendo-chip *ngFor=\"let chip of dataSource\" [label]=\"chip.Label\" [selected]=\"chip.Selected\"\r\n (mouseover)=\"mouseover($event, chip)\" [ngClass]=\"getChipClass(chip)\" [icon]=\"chip.Icon\"\r\n [selectedIcon]=\"chip.SelectedIcon\" (click)=\"chipChangeSelection(chip)\" >\r\n </kendo-chip>\r\n </kendo-chip-list>\r\n </div>\r\n</div>\r\n", styles: [".medium kendo-chip{padding:20px;margin:5px;font-size:15px;min-height:50px;height:55px;max-height:60px;min-width:280px;max-width:320px}.mediumHeight kendo-chip-list{max-height:400px;border:1px solid black;padding:5px 15px;overflow-x:auto;border-radius:10px}.vertical kendo-chip-list{display:flex;flex-direction:column}.customColor .k-chip-filled.k-chip-selected{background-color:#bafff6;color:#000;font-weight:600}.customColor .k-chip-filled.k-chip-selected:hover{background-color:#9afcf0}.customColor .k-chip-filled.k-chip-has-icon:hover{background-color:#b5b5b5;color:#000}.customColor .chip-pointing{border:3px solid #1a63d9!important}\n"] }]
|
|
111
|
+
}], ctorParameters: function () { return [{ type: i1.AuthService }]; }, propDecorators: { data: [{
|
|
112
|
+
type: Input
|
|
113
|
+
}], group: [{
|
|
114
|
+
type: Input
|
|
115
|
+
}], form: [{
|
|
116
|
+
type: Input
|
|
117
|
+
}], tooltipDir: [{
|
|
118
|
+
type: ViewChild,
|
|
119
|
+
args: [TooltipDirective, { static: false }]
|
|
120
|
+
}] } });
|
|
121
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiemNoaXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvemNoaXAvemNoaXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvemNoaXAvemNoaXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0JBQStCO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLEVBQWEsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdkQsNkJBQTZCO0FBRTdCLDhCQUE4QjtBQUM5QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUVuRSwyQ0FBMkM7QUFDM0MsT0FBTyxFQUNPLGdCQUFnQixFQUNaLG9CQUFvQixFQUNyQyxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7QUFRekIsTUFBTSxPQUFPLGNBQWM7SUFXekIsWUFDVSxXQUF3QjtRQUF4QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQVAxQixTQUFJLEdBQUcsbUJBQW1CLENBQUM7UUFDM0IsaUJBQVksR0FBRyx5QkFBeUIsQ0FBQztRQUMxQyx3QkFBbUIsR0FBRyxJQUFJLG9CQUFvQixFQUFFLENBQUM7UUFrRGpELGNBQVMsR0FBRyxDQUFDLE1BQWUsRUFBRSxFQUFFO1lBQ3JDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLEdBQUcsQ0FBQyxNQUFNLENBQUM7UUFDaEQsQ0FBQyxDQUFBO1FBRU0sZUFBVSxHQUFHLENBQUMsTUFBZSxFQUFFLEVBQUU7WUFDdEMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUM7WUFDNUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFP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RSxLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFO2FBQzlDLENBQUMsQ0FBQztTQUM3QjtRQUVELElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUU7WUFDaEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN6QjtJQUNILENBQUM7SUFFTSxXQUFXLENBQUMsQ0FBYTtRQUM5QixNQUFNLE9BQU8sR0FBRyxDQUFDLENBQUMsTUFBcUIsQ0FBQztRQUN4QyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNsQyxDQUFDOzsyR0FySFUsY0FBYzsrRkFBZCxjQUFjLHFKQVNkLGdCQUFnQixnREM5QjdCLHUzQkFnQkE7MkZES2EsY0FBYztrQkFMMUIsU0FBUzsrQkFDRSxXQUFXO2tHQUtaLElBQUk7c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQU1pRCxVQUFVO3NCQUFoRSxTQUFTO3VCQUFDLGdCQUFnQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbIi8qKioqKioqKioqIEFuZ3VsYXIgKioqKioqKioqKi9cclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBWaWV3Q2hpbGQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG4vKioqKioqKioqKiBJb25pYyAqKioqKioqKioqL1xyXG5cclxuLyoqKioqKioqKiogUGx1Z2luICoqKioqKioqKiovXHJcbmltcG9ydCB7IFRvb2x0aXBEaXJlY3RpdmUgfSBmcm9tICdAcHJvZ3Jlc3Mva2VuZG8tYW5ndWxhci10b29sdGlwJztcclxuXHJcbi8qKioqKioqKioqIENvbXBvbmVudCAmIFNlcnZpY2UgKioqKioqKioqKi9cclxuaW1wb3J0IHsgXHJcbiAgWkNvbXBvbmVudCwgWkNvbXBvbmVudEhlbHBlciwgWkNvbXBvbmVudE91dHB1dEV2ZW50LFxyXG4gIFpHcm91cCwgWkZpZWxkLCBaQ29tcG9uZW50UHJvcGVydGllcywgQXV0aFNlcnZpY2UgXHJcbn0gZnJvbSAnbW1oZ2xvYmFsLXpjb3JlJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC16Y2hpcCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3pjaGlwLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi96Y2hpcC5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgWkNoaXBDb21wb25lbnQgaW1wbGVtZW50cyBaQ29tcG9uZW50LCBPbkluaXQge1xyXG4gIEBJbnB1dCgpIGRhdGE6IFpGaWVsZDtcclxuICBASW5wdXQoKSBncm91cDogWkdyb3VwO1xyXG4gIEBJbnB1dCgpIGZvcm06IEZvcm1Hcm91cDtcclxuXHJcbiAgcHJpdmF0ZSBpY29uID0gXCJrLWljb24gay1pLWNhbmNlbFwiO1xyXG4gIHByaXZhdGUgc2VsZWN0ZWRJY29uID0gXCJrLWljb24gay1pLWNoZWNrLWNpcmNsZVwiO1xyXG4gIHB1YmxpYyBjb21wb25lbnRQcm9wZXJ0aWVzID0gbmV3IFpDb21wb25lbnRQcm9wZXJ0aWVzKCk7XHJcbiAgcHVibGljIGRhdGFTb3VyY2U7XHJcbiAgQFZpZXdDaGlsZChUb29sdGlwRGlyZWN0aXZlLCB7IHN0YXRpYzogZmFsc2UgfSkgcHVibGljIHRvb2x0aXBEaXI6IFRvb2x0aXBEaXJlY3RpdmU7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2VcclxuICApIHtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5zZXR1cERhdGFTb3VyY2UoKTtcclxuICAgIFpDb21wb25lbnRIZWxwZXIuc2V0Q29tcG9uZW50UHJvcGVydGllcyh0aGlzKTtcclxuICAgIFpDb21wb25lbnRIZWxwZXIucmVnaXN0ZXJDb21wb25lbnQodGhpcyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldHVwRGF0YVNvdXJjZSgpIHtcclxuICAgIGlmICghdGhpcy5kYXRhLkRhdGFTb3VyY2UpIHtcclxuICAgICAgY29uc29sZS5lcnJvcihcIk5vIGRhdGEgc291cmNlIGZvdW5kIGZvciB6aGlwXCIpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuZGF0YS5EYXRhU291cmNlLmluZGV4T2YoXCJncm91cC5cIikgIT09IC0xKSB7XHJcbiAgICAgIHRoaXMuZGF0YVNvdXJjZSA9IFpDb21wb25lbnRIZWxwZXIuZ2V0R3JvdXBWYWx1ZShcclxuICAgICAgICB0aGlzLmRhdGEuRGF0YVNvdXJjZSxcclxuICAgICAgICB0aGlzLmdyb3VwXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5kYXRhU291cmNlID0gdGhpcy5kYXRhLkRhdGFTb3VyY2U7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5kYXRhU291cmNlKSkge1xyXG4gICAgICB0aGlzLmRhdGFTb3VyY2UuZm9yRWFjaCh4ID0+IHtcclxuICAgICAgICB4LkxhYmVsID0geC5MYWJlbCA/IHguTGFiZWwgOiB4LlZhbHVlLFxyXG4gICAgICAgICAgeC5JY29uID0gISF4LlNlbGVjdGVkID8gbnVsbCA6ICh4Lkljb24gPyB4Lkljb24gOiB0aGlzLmljb24pLFxyXG4gICAgICAgICAgeC5TZWxlY3RlZEljb24gPSB4LlNlbGVjdGVkSWNvbiA/IHguU2VsZWN0ZWRJY29uIDogdGhpcy5zZWxlY3RlZEljb24sXHJcbiAgICAgICAgICB4Ll9JY29uID0geC5JY29uID8geC5JY29uIDogdGhpcy5pY29uO1xyXG4gICAgICAgIHguX1NlbGVjdGVkID0geC5TZWxlY3RlZDtcclxuICAgICAgfSlcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRDbGFzcygpIHtcclxuICAgIHJldHVybiB0aGlzLmRhdGEuRGl2Q2xhc3M7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0Q2hpcENsYXNzKGNoaXApIHtcclxuICAgIHJldHVybiBjaGlwLkNsYXNzID8gY2hpcC5DbGFzcyA6IFwiXCI7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0RW5hYmxlID0gKHN0YXR1czogYm9vbGVhbikgPT4ge1xyXG4gICAgdGhpcy5jb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVhZE9ubHkgPSAhc3RhdHVzO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldFZpc2libGUgPSAoc3RhdHVzOiBib29sZWFuKSA9PiB7XHJcbiAgICB0aGlzLmNvbXBvbmVudFByb3BlcnRpZXMuaXNWaXNpYmxlID0gc3RhdHVzO1xyXG4gICAgdGhpcy5kYXRhLlZpc2libGUgPSBzdGF0dXM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0UmVxdWlyZSA9IChzdGF0dXM6IGJvb2xlYW4pID0+IHtcclxuICAgIHRoaXMuY29tcG9uZW50UHJvcGVydGllcy5pc1JlcXVpcmVkID0gc3RhdHVzO1xyXG4gICAgWkNvbXBvbmVudEhlbHBlci5jaGFuZ2VWYWxpZGF0b3Ioc3RhdHVzLCB0aGlzLmdyb3VwLCB0aGlzLmRhdGEuVmFsdWUsIHRoaXMuY29tcG9uZW50UHJvcGVydGllcywgVmFsaWRhdG9ycy5yZXF1aXJlZCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2hpcExpc3RDaGFuZ2VTZWxlY3Rpb24oc2VsZWN0ZWRDaGlwSW5kZXhlczogYW55KTogdm9pZCB7XHJcbiAgICBsZXQgaW5kID0gMDtcclxuICAgIGZvciAobGV0IGNoaXAgb2YgdGhpcy5kYXRhU291cmNlKSB7XHJcbiAgICAgIGlmIChzZWxlY3RlZENoaXBJbmRleGVzLmluY2x1ZGVzKGluZCkpIHtcclxuICAgICAgICBjaGlwLkljb24gPSBudWxsXHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgY2hpcC5JY29uID0gdGhpcy5kYXRhU291cmNlLmZpbmQoeCA9PiB4LlZhbHVlID09PSBjaGlwLlZhbHVlKS5fSWNvbjtcclxuICAgICAgfVxyXG4gICAgICBpbmQrKztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBjaGlwQ2hhbmdlU2VsZWN0aW9uKGNoaXA6IGFueSkge1xyXG4gICAgdGhpcy5kYXRhU291cmNlLmZpbmQoeCA9PiB4LlZhbHVlID09PSBjaGlwLlZhbHVlKS5fU2VsZWN0ZWQgPSAhY2hpcC5fU2VsZWN0ZWQ7XHJcblxyXG4gICAgaWYgKHRoaXMuZGF0YS5PbkNoYW5nZSkge1xyXG4gICAgICB0aGlzLmdyb3VwLnN1YmplY3QubmV4dCh7XHJcbiAgICAgICAgdHlwZTogXCJvbkNoYW5nZVwiLFxyXG4gICAgICAgIHRhcmdldDogdGhpcy5kYXRhLk9uQ2hhbmdlLFxyXG4gICAgICAgIGRhdGE6IHsgdmFsdWU6IHRoaXMuZGF0YVNvdXJjZSwgc2VsZWN0ZWRJdGVtOiBjaGlwLCBmaWVsZDogdGhpcy5kYXRhIH1cclxuICAgICAgfSBhcyBaQ29tcG9uZW50T3V0cHV0RXZlbnQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldERhdGFWYWx1ZSgpOiBhbnkge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0YVNvdXJjZSBhcyBhbnk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbW91c2VvdmVyKGV2ZW50OiBhbnksIGNoaXA6IGFueSkge1xyXG4gICAgaWYgKHRoaXMuZGF0YS5PbkhvdmVyKSB7XHJcbiAgICAgIHRoaXMuZ3JvdXAuc3ViamVjdC5uZXh0KHtcclxuICAgICAgICB0eXBlOiBcIm9uSG92ZXJcIixcclxuICAgICAgICB0YXJnZXQ6IHRoaXMuZGF0YS5PbkhvdmVyLFxyXG4gICAgICAgIGRhdGE6IHsgdmFsdWU6IHRoaXMuZGF0YVNvdXJjZSwgc2VsZWN0ZWRJdGVtOiBjaGlwLCBmaWVsZDogdGhpcy5kYXRhIH1cclxuICAgICAgfSBhcyBaQ29tcG9uZW50T3V0cHV0RXZlbnQpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghIXRoaXMuZGF0YVsnSXNTaG93VG9vbFRpcCddKSB7XHJcbiAgICAgIHRoaXMuc2hvd1Rvb2x0aXAoZXZlbnQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHNob3dUb29sdGlwKGU6IE1vdXNlRXZlbnQpOiB2b2lkIHtcclxuICAgIGNvbnN0IGVsZW1lbnQgPSBlLnRhcmdldCBhcyBIVE1MRWxlbWVudDtcclxuICAgIHRoaXMudG9vbHRpcERpci50b2dnbGUoZWxlbWVudCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXZcclxuICAqbmdJZj1cIighIWNvbXBvbmVudFByb3BlcnRpZXMuaXNWaXNpYmxlRmllbGQgPyBncm91cFtjb21wb25lbnRQcm9wZXJ0aWVzLmlzVmlzaWJsZUZpZWxkXSA6IGNvbXBvbmVudFByb3BlcnRpZXMuaXNWaXNpYmxlKVwiXHJcbiAgc3R5bGU9XCJtYXJnaW46IDEwcHggMCA2cHggMDtcIiBbbmdDbGFzc109XCJnZXRDbGFzcygpXCI+XHJcbiAgPG5nLXRlbXBsYXRlICN0ZW1wbGF0ZSBsZXQtYW5jaG9yPlxyXG4gICAgPHNwYW4+e3sgYW5jaG9yLm5hdGl2ZUVsZW1lbnQuaW5uZXJUZXh0IH19PC9zcGFuPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbiAgPGRpdiBrZW5kb1Rvb2x0aXAgW3Rvb2x0aXBUZW1wbGF0ZV09XCJ0ZW1wbGF0ZVwiPlxyXG4gICAgPGtlbmRvLWNoaXAtbGlzdCBbc2VsZWN0aW9uXT1cImRhdGEuTXVsdGlwbGUgPyAnbXVsdGlwbGUnIDogJ3NpbmdsZSdcIlxyXG4gICAgICAoc2VsZWN0ZWRDaGFuZ2UpPVwiY2hpcExpc3RDaGFuZ2VTZWxlY3Rpb24oJGV2ZW50KVwiPlxyXG4gICAgICA8a2VuZG8tY2hpcCAqbmdGb3I9XCJsZXQgY2hpcCBvZiBkYXRhU291cmNlXCIgW2xhYmVsXT1cImNoaXAuTGFiZWxcIiBbc2VsZWN0ZWRdPVwiY2hpcC5TZWxlY3RlZFwiXHJcbiAgICAgICAgKG1vdXNlb3Zlcik9XCJtb3VzZW92ZXIoJGV2ZW50LCBjaGlwKVwiIFtuZ0NsYXNzXT1cImdldENoaXBDbGFzcyhjaGlwKVwiIFtpY29uXT1cImNoaXAuSWNvblwiXHJcbiAgICAgICAgW3NlbGVjdGVkSWNvbl09XCJjaGlwLlNlbGVjdGVkSWNvblwiIChjbGljayk9XCJjaGlwQ2hhbmdlU2VsZWN0aW9uKGNoaXApXCIgPlxyXG4gICAgICA8L2tlbmRvLWNoaXA+XHJcbiAgICA8L2tlbmRvLWNoaXAtbGlzdD5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
/********** Angular **********/
|
|
2
|
+
import { Component, Input, ViewChild } from "@angular/core";
|
|
3
|
+
import { Validators } from "@angular/forms";
|
|
4
|
+
/********** Ionic **********/
|
|
5
|
+
/********** Plugin **********/
|
|
6
|
+
import { of } from "rxjs";
|
|
7
|
+
import { delay } from "rxjs/operators";
|
|
8
|
+
import "brace";
|
|
9
|
+
import "brace/theme/eclipse";
|
|
10
|
+
import "brace/mode/json";
|
|
11
|
+
import "brace/mode/javascript";
|
|
12
|
+
import "brace/mode/html";
|
|
13
|
+
/********** Component & Service **********/
|
|
14
|
+
import { ZComponentHelper, ZComponentProperties } from "mmhglobal-zcore";
|
|
15
|
+
import * as i0 from "@angular/core";
|
|
16
|
+
import * as i1 from "@ionic/angular";
|
|
17
|
+
import * as i2 from "ng2-ace-editor";
|
|
18
|
+
import * as i3 from "@angular/common";
|
|
19
|
+
import * as i4 from "./zcodeeditor.pipe";
|
|
20
|
+
// import { EditorComponent } from 'ngx-monaco-editor';
|
|
21
|
+
// import { EditorOptions } from "ngx-monaco-editor";
|
|
22
|
+
export class ZcodeeditorComponent {
|
|
23
|
+
constructor() {
|
|
24
|
+
this.code = "";
|
|
25
|
+
this.theme = "eclipse";
|
|
26
|
+
this.mode = "javascript";
|
|
27
|
+
this.componentProperties = new ZComponentProperties();
|
|
28
|
+
this.setEnable = (status) => {
|
|
29
|
+
this.componentProperties.isReadOnly = !status;
|
|
30
|
+
};
|
|
31
|
+
this.setVisible = (status) => {
|
|
32
|
+
this.componentProperties.isVisible = status;
|
|
33
|
+
this.data.Visible = status;
|
|
34
|
+
};
|
|
35
|
+
this.setRequire = (status) => {
|
|
36
|
+
this.componentProperties.isRequired = status;
|
|
37
|
+
ZComponentHelper.changeValidator(status, this.group, this.data.Value, this.componentProperties, Validators.required);
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
ngOnInit() {
|
|
41
|
+
ZComponentHelper.setComponentProperties(this);
|
|
42
|
+
ZComponentHelper.registerComponent(this);
|
|
43
|
+
this.widthReduce = this.data.WidthReduce || 60;
|
|
44
|
+
this.heightReduce = this.data.HeightReduce || 560;
|
|
45
|
+
// const codeValue = this.getValue();
|
|
46
|
+
// if (codeValue) {
|
|
47
|
+
// this.code = codeValue;
|
|
48
|
+
// }
|
|
49
|
+
if (this.data.Type === "textareajson") {
|
|
50
|
+
this.mode = "json";
|
|
51
|
+
}
|
|
52
|
+
else if (this.data.Type === "textareahtml") {
|
|
53
|
+
this.mode = "html";
|
|
54
|
+
}
|
|
55
|
+
console.log("zcodeeditor OnInit");
|
|
56
|
+
}
|
|
57
|
+
ngOnDestroy() {
|
|
58
|
+
if (this.subscription) {
|
|
59
|
+
this.subscription.unsubscribe();
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
// https://github.com/fxmontigny/ng2-ace-editor/blob/master/sample/src/app/app.component.ts
|
|
63
|
+
// ngAfterViewInit() {
|
|
64
|
+
// const Range = ace.require('ace/range')['Range'];
|
|
65
|
+
// this.editor
|
|
66
|
+
// .getEditor()
|
|
67
|
+
// .session.addMarker(new Range(0, 0, 2, 1), 'myMarker', 'fullLine');
|
|
68
|
+
// this.editor.getEditor().session.setOption('useWorker', true);
|
|
69
|
+
// }
|
|
70
|
+
getValue() {
|
|
71
|
+
let v;
|
|
72
|
+
if (this.data.Value.indexOf('.') !== -1) {
|
|
73
|
+
v = this.data.Value;
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
v = "group.zModel." + this.data.Value;
|
|
77
|
+
}
|
|
78
|
+
const evalValue = ZComponentHelper.getEvalValue.call(this, v);
|
|
79
|
+
if (typeof evalValue === 'function') {
|
|
80
|
+
const nextValue = evalValue();
|
|
81
|
+
if (nextValue) {
|
|
82
|
+
try {
|
|
83
|
+
const evalNextValue = ZComponentHelper.getEvalValue.call(this, nextValue, true);
|
|
84
|
+
if (typeof evalNextValue === 'boolean') {
|
|
85
|
+
return evalNextValue.toString();
|
|
86
|
+
}
|
|
87
|
+
if (evalNextValue === undefined) {
|
|
88
|
+
return 'undefined';
|
|
89
|
+
}
|
|
90
|
+
if (evalNextValue === null) {
|
|
91
|
+
return 'null';
|
|
92
|
+
}
|
|
93
|
+
return evalNextValue;
|
|
94
|
+
}
|
|
95
|
+
catch {
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
return evalValue;
|
|
105
|
+
}
|
|
106
|
+
// if (this.data.Type === "textareajson") {
|
|
107
|
+
// if (typeof evalValue === "string") {
|
|
108
|
+
// const jsonValue = JSON.parse(evalValue);
|
|
109
|
+
// return JSON.stringify(jsonValue, null, 2);
|
|
110
|
+
// }
|
|
111
|
+
// if (typeof evalValue === "object" || Array.isArray(evalValue)) {
|
|
112
|
+
// return JSON.stringify(evalValue, null, 2);
|
|
113
|
+
// }
|
|
114
|
+
// }
|
|
115
|
+
// if (typeof evalValue === 'string') {
|
|
116
|
+
// return evalValue;
|
|
117
|
+
// }
|
|
118
|
+
// // debugger;
|
|
119
|
+
// console.warn(
|
|
120
|
+
// "zcodeeditor - Invalid field.Value (" + this.data.Value + ") setting ",
|
|
121
|
+
// evalValue
|
|
122
|
+
// );
|
|
123
|
+
// return "";
|
|
124
|
+
}
|
|
125
|
+
getEditorStyle() {
|
|
126
|
+
// debugger;
|
|
127
|
+
// return { "height.px": 500, "width.px": window.innerWidth - 60 }; // "width.px": this.innerWidth - 25
|
|
128
|
+
return {
|
|
129
|
+
"height.px": this.getEditorHeight(),
|
|
130
|
+
"width.px": window.innerWidth - this.widthReduce
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
getEditorHeight() {
|
|
134
|
+
const h = window.innerHeight - this.heightReduce;
|
|
135
|
+
return (h < 180) ? 180 : h;
|
|
136
|
+
}
|
|
137
|
+
onTextChange(newValue) {
|
|
138
|
+
if (this.subscription) {
|
|
139
|
+
this.subscription.unsubscribe();
|
|
140
|
+
}
|
|
141
|
+
// console.log('onTextChange: ', newValue);
|
|
142
|
+
this.subscription = of([])
|
|
143
|
+
.pipe(delay(500))
|
|
144
|
+
.subscribe(() => {
|
|
145
|
+
ZComponentHelper.setModelValue(this.data.Value, newValue, this.group, true);
|
|
146
|
+
this.group.subject.next({
|
|
147
|
+
type: "zcodeeditor-TextChanged",
|
|
148
|
+
target: this.data.OnChange,
|
|
149
|
+
data: newValue
|
|
150
|
+
});
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
ZcodeeditorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.4", ngImport: i0, type: ZcodeeditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
155
|
+
ZcodeeditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.4", type: ZcodeeditorComponent, selector: "app-zcodeeditor", inputs: { data: "data", group: "group", form: "form" }, viewQueries: [{ propertyName: "editor", first: true, predicate: ["editor"], descendants: true }], ngImport: i0, template: "<div *ngIf=\"(!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\">\r\n <ion-label *ngIf=\"data.ShowLabel\" position=\"stacked\" style=\"margin-bottom: 10px;\">\r\n {{data.Label}} <ion-text *ngIf=\"(!!componentProperties.isRequiredField ? group[componentProperties.isRequiredField] : componentProperties.isRequired)\" color=\"danger\">*</ion-text>\r\n </ion-label>\r\n <div>\r\n <!-- <div ace-editor\r\n [(text)]=\"text\"\r\n ></div> -->\r\n <ace-editor [readOnly]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\" #editor [ngStyle]=\"getEditorStyle()\" (textChanged)=\"onTextChange($event)\" [text]=\"getValue() | editorfilter\" [theme]=\"theme\" [mode]=\"mode\"></ace-editor>\r\n\r\n <!-- <ngx-monaco-editor #editor [options]=\"editorOptions\" [(ngModel)]=\"code\" (onInit)=\"onInit($event)\"></ngx-monaco-editor> -->\r\n </div>\r\n\r\n</div>", styles: [""], components: [{ type: i1.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { type: i1.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { type: i2.AceEditorComponent, selector: "ace-editor", inputs: ["style", "options", "readOnly", "theme", "mode", "value", "text", "autoUpdateContent", "durationBeforeCallback"], outputs: ["textChanged", "textChange"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], pipes: { "editorfilter": i4.EditorFilter } });
|
|
156
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.4", ngImport: i0, type: ZcodeeditorComponent, decorators: [{
|
|
157
|
+
type: Component,
|
|
158
|
+
args: [{ selector: "app-zcodeeditor", template: "<div *ngIf=\"(!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\">\r\n <ion-label *ngIf=\"data.ShowLabel\" position=\"stacked\" style=\"margin-bottom: 10px;\">\r\n {{data.Label}} <ion-text *ngIf=\"(!!componentProperties.isRequiredField ? group[componentProperties.isRequiredField] : componentProperties.isRequired)\" color=\"danger\">*</ion-text>\r\n </ion-label>\r\n <div>\r\n <!-- <div ace-editor\r\n [(text)]=\"text\"\r\n ></div> -->\r\n <ace-editor [readOnly]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\" #editor [ngStyle]=\"getEditorStyle()\" (textChanged)=\"onTextChange($event)\" [text]=\"getValue() | editorfilter\" [theme]=\"theme\" [mode]=\"mode\"></ace-editor>\r\n\r\n <!-- <ngx-monaco-editor #editor [options]=\"editorOptions\" [(ngModel)]=\"code\" (onInit)=\"onInit($event)\"></ngx-monaco-editor> -->\r\n </div>\r\n\r\n</div>", styles: [""] }]
|
|
159
|
+
}], ctorParameters: function () { return []; }, propDecorators: { data: [{
|
|
160
|
+
type: Input
|
|
161
|
+
}], group: [{
|
|
162
|
+
type: Input
|
|
163
|
+
}], form: [{
|
|
164
|
+
type: Input
|
|
165
|
+
}], editor: [{
|
|
166
|
+
type: ViewChild,
|
|
167
|
+
args: ["editor"]
|
|
168
|
+
}] } });
|
|
169
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiemNvZGVlZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvemNvZGVlZGl0b3IvemNvZGVlZGl0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvemNvZGVlZGl0b3IvemNvZGVlZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0JBQStCO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLFNBQVMsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQWEsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdkQsNkJBQTZCO0FBRTdCLDhCQUE4QjtBQUM5QixPQUFPLEVBQUUsRUFBRSxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUN4QyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdkMsT0FBTyxPQUFPLENBQUM7QUFDZixPQUFPLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8saUJBQWlCLENBQUM7QUFDekIsT0FBTyx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLGlCQUFpQixDQUFDO0FBRXpCLDJDQUEyQztBQUMzQyxPQUFPLEVBQ08sZ0JBQWdCLEVBQ1osb0JBQW9CLEVBQ3JDLE1BQU0saUJBQWlCLENBQUM7Ozs7OztBQUt6Qix1REFBdUQ7QUFDdkQscURBQXFEO0FBT3JELE1BQU0sT0FBTyxvQkFBb0I7SUFlL0I7UUFYQSxTQUFJLEdBQXNCLEVBQUUsQ0FBQztRQUM3QixVQUFLLEdBQUcsU0FBUyxDQUFDO1FBQ2xCLFNBQUksR0FBRyxZQUFZLENBQUM7UUFFcEIsd0JBQW1CLEdBQUcsSUFBSSxvQkFBb0IsRUFBRSxDQUFDO1FBK0gxQyxjQUFTLEdBQUcsQ0FBQyxNQUFl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QUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDaEIsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNkLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztZQUM1RSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7Z0JBQ3RCLElBQUksRUFBRSx5QkFBeUI7Z0JBQy9CLE1BQU0sRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVE7Z0JBQzFCLElBQUksRUFBRSxRQUFRO2FBQ1UsQ0FBQyxDQUFDO1FBQzlCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7aUhBcklVLG9CQUFvQjtxR0FBcEIsb0JBQW9CLGlOQ2pDakMsNitCQWFNOzJGRG9CTyxvQkFBb0I7a0JBTGhDLFNBQVM7K0JBQ0UsaUJBQWlCOzBFQUtsQixJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFVZSxNQUFNO3NCQUExQixTQUFTO3VCQUFDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyIvKioqKioqKioqKiBBbmd1bGFyICoqKioqKioqKiovXHJcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgVmlld0NoaWxkLCBPbkRlc3Ryb3kgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuXHJcbi8qKioqKioqKioqIElvbmljICoqKioqKioqKiovXHJcblxyXG4vKioqKioqKioqKiBQbHVnaW4gKioqKioqKioqKi9cclxuaW1wb3J0IHsgb2YsIFN1YnNjcmlwdGlvbiB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IGRlbGF5IH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XHJcbmltcG9ydCB7IEFjZUVkaXRvckNvbXBvbmVudCB9IGZyb20gXCJuZzItYWNlLWVkaXRvclwiO1xyXG5pbXBvcnQgXCJicmFjZVwiO1xyXG5pbXBvcnQgXCJicmFjZS90aGVtZS9lY2xpcHNlXCI7XHJcbmltcG9ydCBcImJyYWNlL21vZGUvanNvblwiO1xyXG5pbXBvcnQgXCJicmFjZS9tb2RlL2phdmFzY3JpcHRcIjtcclxuaW1wb3J0IFwiYnJhY2UvbW9kZS9odG1sXCI7XHJcblxyXG4vKioqKioqKioqKiBDb21wb25lbnQgJiBTZXJ2aWNlICoqKioqKioqKiovXHJcbmltcG9ydCB7XHJcbiAgWkNvbXBvbmVudCwgWkNvbXBvbmVudEhlbHBlciwgWkNvbXBvbmVudE91dHB1dEV2ZW50LFxyXG4gIFpGaWVsZCwgWkdyb3VwLCBaQ29tcG9uZW50UHJvcGVydGllc1xyXG59IGZyb20gXCJtbWhnbG9iYWwtemNvcmVcIjtcclxuXHJcblxyXG5kZWNsYXJlIGxldCBhY2U6IGFueTtcclxuXHJcbi8vIGltcG9ydCB7IEVkaXRvckNvbXBvbmVudCB9IGZyb20gJ25neC1tb25hY28tZWRpdG9yJztcclxuLy8gaW1wb3J0IHsgRWRpdG9yT3B0aW9ucyB9IGZyb20gXCJuZ3gtbW9uYWNvLWVkaXRvclwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiYXBwLXpjb2RlZWRpdG9yXCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi96Y29kZWVkaXRvci5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsczogW1wiLi96Y29kZWVkaXRvci5jb21wb25lbnQuc2Nzc1wiXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgWmNvZGVlZGl0b3JDb21wb25lbnQgaW1wbGVtZW50cyBaQ29tcG9uZW50LCBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgQElucHV0KCkgZGF0YTogWkZpZWxkO1xyXG4gIEBJbnB1dCgpIGdyb3VwOiBaR3JvdXA7XHJcbiAgQElucHV0KCkgZm9ybTogRm9ybUdyb3VwO1xyXG4gIGNvZGU6IHN0cmluZyB8IHN0cmluZ1tdID0gXCJcIjtcclxuICB0aGVtZSA9IFwiZWNsaXBzZVwiO1xyXG4gIG1vZGUgPSBcImphdmFzY3JpcHRcIjtcclxuICBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuICBjb21wb25lbnRQcm9wZXJ0aWVzID0gbmV3IFpDb21wb25lbnRQcm9wZXJ0aWVzKCk7XHJcbiAgXHJcbiAgcHJpdmF0ZSB3aWR0aFJlZHVjZTogbnVtYmVyO1xyXG4gIHByaXZhdGUgaGVpZ2h0UmVkdWNlOiBudW1iZXI7XHJcblxyXG4gIEBWaWV3Q2hpbGQoXCJlZGl0b3JcIikgZWRpdG9yOiBBY2VFZGl0b3JDb21wb25lbnQ7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge31cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBaQ29tcG9uZW50SGVscGVyLnNldENvbXBvbmVudFByb3BlcnRpZXModGhpcyk7XHJcbiAgICBaQ29tcG9uZW50SGVscGVyLnJlZ2lzdGVyQ29tcG9uZW50KHRoaXMpO1xyXG5cclxuICAgIHRoaXMud2lkdGhSZWR1Y2UgPSB0aGlzLmRhdGEuV2lkdGhSZWR1Y2UgfHwgNjA7XHJcbiAgICB0aGlzLmhlaWdodFJlZHVjZSA9IHRoaXMuZGF0YS5IZWlnaHRSZWR1Y2UgfHwgNTYwO1xyXG5cclxuICAgIC8vIGNvbnN0IGNvZGVWYWx1ZSA9IHRoaXMuZ2V0VmFsdWUoKTtcclxuICAgIC8vIGlmIChjb2RlVmFsdWUpIHtcclxuICAgIC8vICAgdGhpcy5jb2RlID0gY29kZVZhbHVlO1xyXG4gICAgLy8gfVxyXG4gICAgaWYgKHRoaXMuZGF0YS5UeXBlID09PSBcInRleHRhcmVhanNvblwiKSB7XHJcbiAgICAgIHRoaXMubW9kZSA9IFwianNvblwiO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmRhdGEuVHlwZSA9PT0gXCJ0ZXh0YXJlYWh0bWxcIikge1xyXG4gICAgICB0aGlzLm1vZGUgPSBcImh0bWxcIjtcclxuICAgIH1cclxuICAgIGNvbnNvbGUubG9nKFwiemNvZGVlZGl0b3IgT25Jbml0XCIpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICBpZiAodGhpcy5zdWJzY3JpcHRpb24pIHtcclxuICAgICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9meG1vbnRpZ255L25nMi1hY2UtZWRpdG9yL2Jsb2IvbWFzdGVyL3NhbXBsZS9zcmMvYXBwL2FwcC5jb21wb25lbnQudHNcclxuICAvLyBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgLy8gICBjb25zdCBSYW5nZSA9IGFjZS5yZXF1aXJlKCdhY2UvcmFuZ2UnKVsnUmFuZ2UnXTtcclxuICAvLyAgIHRoaXMuZWRpdG9yXHJcbiAgLy8gICAgIC5nZXRFZGl0b3IoKVxyXG4gIC8vICAgICAuc2Vzc2lvbi5hZGRNYXJrZXIobmV3IFJhbmdlKDAsIDAsIDIsIDEpLCAnbXlNYXJrZXInLCAnZnVsbExpbmUnKTtcclxuXHJcbiAgLy8gICB0aGlzLmVkaXRvci5nZXRFZGl0b3IoKS5zZXNzaW9uLnNldE9wdGlvbigndXNlV29ya2VyJywgdHJ1ZSk7XHJcbiAgLy8gfVxyXG5cclxuICBnZXRWYWx1ZSgpIHtcclxuICAgIGxldCB2O1xyXG4gICAgaWYgKHRoaXMuZGF0YS5WYWx1ZS5pbmRleE9mKCcuJykgIT09IC0xKSB7XHJcbiAgICAgIHYgPSB0aGlzLmRhdGEuVmFsdWU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB2ID0gXCJncm91cC56TW9kZWwuXCIgKyB0aGlzLmRhdGEuVmFsdWU7XHJcbiAgICB9XHJcbiAgICBjb25zdCBldmFsVmFsdWUgPSBaQ29tcG9uZW50SGVscGVyLmdldEV2YWxWYWx1ZS5jYWxsKHRoaXMsIHYpO1xyXG4gICAgaWYgKHR5cGVvZiBldmFsVmFsdWUgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgY29uc3QgbmV4dFZhbHVlID0gZXZhbFZhbHVlKCk7XHJcbiAgICAgIGlmIChuZXh0VmFsdWUpIHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgY29uc3QgZXZhbE5leHRWYWx1ZSA9IFpDb21wb25lbnRIZWxwZXIuZ2V0RXZhbFZhbHVlLmNhbGwodGhpcywgbmV4dFZhbHVlLCB0cnVlKTtcclxuICAgICAgICAgIGlmICh0eXBlb2YgZXZhbE5leHRWYWx1ZSA9PT0gJ2Jvb2xlYW4nKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBldmFsTmV4dFZhbHVlLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoZXZhbE5leHRWYWx1ZSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIHJldHVybiAndW5kZWZpbmVkJztcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChldmFsTmV4dFZhbHVlID09PSBudWxsKSB7XHJcbiAgICAgICAgICAgIHJldHVybiAnbnVsbCc7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICByZXR1cm4gZXZhbE5leHRWYWx1ZTtcclxuICAgICAgICB9IGNhdGNoIHtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gZXZhbFZhbHVlO1xyXG4gICAgfVxyXG4gICAgLy8gaWYgKHRoaXMuZGF0YS5UeXBlID09PSBcInRleHRhcmVhanNvblwiKSB7XHJcbiAgICAvLyAgIGlmICh0eXBlb2YgZXZhbFZhbHVlID09PSBcInN0cmluZ1wiKSB7XHJcbiAgICAvLyAgICAgY29uc3QganNvblZhbHVlID0gSlNPTi5wYXJzZShldmFsVmFsdWUpO1xyXG4gICAgLy8gICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShqc29uVmFsdWUsIG51bGwsIDIpO1xyXG4gICAgLy8gICB9XHJcbiAgICAvLyAgIGlmICh0eXBlb2YgZXZhbFZhbHVlID09PSBcIm9iamVjdFwiIHx8IEFycmF5LmlzQXJyYXkoZXZhbFZhbHVlKSkge1xyXG4gICAgLy8gICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShldmFsVmFsdWUsIG51bGwsIDIpO1xyXG4gICAgLy8gICB9XHJcbiAgICAvLyB9XHJcbiAgICAvLyBpZiAodHlwZW9mIGV2YWxWYWx1ZSA9PT0gJ3N0cmluZycpIHtcclxuICAgIC8vICAgcmV0dXJuIGV2YWxWYWx1ZTtcclxuICAgIC8vIH1cclxuICAgIC8vIC8vIGRlYnVnZ2VyO1xyXG4gICAgLy8gY29uc29sZS53YXJuKFxyXG4gICAgLy8gICBcInpjb2RlZWRpdG9yIC0gSW52YWxpZCBmaWVsZC5WYWx1ZSAoXCIgKyB0aGlzLmRhdGEuVmFsdWUgKyBcIikgc2V0dGluZyBcIixcclxuICAgIC8vICAgZXZhbFZhbHVlXHJcbiAgICAvLyApO1xyXG4gICAgLy8gcmV0dXJuIFwiXCI7XHJcbiAgfVxyXG5cclxuICBnZXRFZGl0b3JTdHlsZSgpIHtcclxuICAgIC8vIGRlYnVnZ2VyO1xyXG4gICAgLy8gcmV0dXJuIHsgXCJoZWlnaHQucHhcIjogNTAwLCBcIndpZHRoLnB4XCI6IHdpbmRvdy5pbm5lcldpZHRoIC0gNjAgfTsgLy8gXCJ3aWR0aC5weFwiOiB0aGlzLmlubmVyV2lkdGggLSAyNVxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgXCJoZWlnaHQucHhcIjogdGhpcy5nZXRFZGl0b3JIZWlnaHQoKSxcclxuICAgICBcIndpZHRoLnB4XCI6IHdpbmRvdy5pbm5lcldpZHRoIC0gdGhpcy53aWR0aFJlZHVjZVxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0RWRpdG9ySGVpZ2h0KCkge1xyXG4gICAgY29uc3QgaCA9IHdpbmRvdy5pbm5lckhlaWdodCAtIHRoaXMuaGVpZ2h0UmVkdWNlO1xyXG4gICAgcmV0dXJuIChoIDwgMTgwKSA/IDE4MCA6IGg7XHJcbiAgfVxyXG5cclxuICBvblRleHRDaGFuZ2UobmV3VmFsdWU6IGFueSkge1xyXG4gICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9uKSB7XHJcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgICAvLyBjb25zb2xlLmxvZygnb25UZXh0Q2hhbmdlOiAnLCBuZXdWYWx1ZSk7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IG9mKFtdKVxyXG4gICAgICAucGlwZShkZWxheSg1MDApKVxyXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICBaQ29tcG9uZW50SGVscGVyLnNldE1vZGVsVmFsdWUodGhpcy5kYXRhLlZhbHVlLCBuZXdWYWx1ZSwgdGhpcy5ncm91cCwgdHJ1ZSk7XHJcbiAgICAgICAgdGhpcy5ncm91cC5zdWJqZWN0Lm5leHQoe1xyXG4gICAgICAgICAgdHlwZTogXCJ6Y29kZWVkaXRvci1UZXh0Q2hhbmdlZFwiLFxyXG4gICAgICAgICAgdGFyZ2V0OiB0aGlzLmRhdGEuT25DaGFuZ2UsXHJcbiAgICAgICAgICBkYXRhOiBuZXdWYWx1ZVxyXG4gICAgICAgIH0gYXMgWkNvbXBvbmVudE91dHB1dEV2ZW50KTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0RW5hYmxlID0gKHN0YXR1czogYm9vbGVhbikgPT4ge1xyXG4gICAgdGhpcy5jb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVhZE9ubHkgPSAhc3RhdHVzO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldFZpc2libGUgPSAoc3RhdHVzOiBib29sZWFuKSA9PiB7XHJcbiAgICB0aGlzLmNvbXBvbmVudFByb3BlcnRpZXMuaXNWaXNpYmxlID0gc3RhdHVzO1xyXG4gICAgdGhpcy5kYXRhLlZpc2libGUgPSBzdGF0dXM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0UmVxdWlyZSA9IChzdGF0dXM6IGJvb2xlYW4pID0+IHtcclxuICAgIHRoaXMuY29tcG9uZW50UHJvcGVydGllcy5pc1JlcXVpcmVkID0gc3RhdHVzO1xyXG4gICAgWkNvbXBvbmVudEhlbHBlci5jaGFuZ2VWYWxpZGF0b3Ioc3RhdHVzLCB0aGlzLmdyb3VwLCB0aGlzLmRhdGEuVmFsdWUsIHRoaXMuY29tcG9uZW50UHJvcGVydGllcywgVmFsaWRhdG9ycy5yZXF1aXJlZCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgKm5nSWY9XCIoISFjb21wb25lbnRQcm9wZXJ0aWVzLmlzVmlzaWJsZUZpZWxkID8gZ3JvdXBbY29tcG9uZW50UHJvcGVydGllcy5pc1Zpc2libGVGaWVsZF0gOiBjb21wb25lbnRQcm9wZXJ0aWVzLmlzVmlzaWJsZSlcIj5cclxuICA8aW9uLWxhYmVsICpuZ0lmPVwiZGF0YS5TaG93TGFiZWxcIiBwb3NpdGlvbj1cInN0YWNrZWRcIiBzdHlsZT1cIm1hcmdpbi1ib3R0b206IDEwcHg7XCI+XHJcbiAgICB7e2RhdGEuTGFiZWx9fSA8aW9uLXRleHQgKm5nSWY9XCIoISFjb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVxdWlyZWRGaWVsZCA/IGdyb3VwW2NvbXBvbmVudFByb3BlcnRpZXMuaXNSZXF1aXJlZEZpZWxkXSA6IGNvbXBvbmVudFByb3BlcnRpZXMuaXNSZXF1aXJlZClcIiBjb2xvcj1cImRhbmdlclwiPio8L2lvbi10ZXh0PlxyXG4gIDwvaW9uLWxhYmVsPlxyXG4gIDxkaXY+XHJcbiAgPCEtLSA8ZGl2IGFjZS1lZGl0b3JcclxuICAgICAgIFsodGV4dCldPVwidGV4dFwiXHJcbiAgICAgICA+PC9kaXY+IC0tPlxyXG4gIDxhY2UtZWRpdG9yIFtyZWFkT25seV09XCIoISFjb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVhZE9ubHlGaWVsZCA/IGdyb3VwW2NvbXBvbmVudFByb3BlcnRpZXMuaXNSZWFkT25seUZpZWxkXSA6IGNvbXBvbmVudFByb3BlcnRpZXMuaXNSZWFkT25seSlcIiAjZWRpdG9yIFtuZ1N0eWxlXT1cImdldEVkaXRvclN0eWxlKClcIiAodGV4dENoYW5nZWQpPVwib25UZXh0Q2hhbmdlKCRldmVudClcIiBbdGV4dF09XCJnZXRWYWx1ZSgpIHwgZWRpdG9yZmlsdGVyXCIgW3RoZW1lXT1cInRoZW1lXCIgW21vZGVdPVwibW9kZVwiPjwvYWNlLWVkaXRvcj5cclxuXHJcbiAgICA8IS0tIDxuZ3gtbW9uYWNvLWVkaXRvciAjZWRpdG9yIFtvcHRpb25zXT1cImVkaXRvck9wdGlvbnNcIiBbKG5nTW9kZWwpXT1cImNvZGVcIiAob25Jbml0KT1cIm9uSW5pdCgkZXZlbnQpXCI+PC9uZ3gtbW9uYWNvLWVkaXRvcj4gLS0+XHJcbiAgPC9kaXY+XHJcblxyXG48L2Rpdj4iXX0=
|