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,196 +0,0 @@
|
|
|
1
|
-
/********** Angular **********/
|
|
2
|
-
import { Component, Input, ViewChild } from '@angular/core';
|
|
3
|
-
/********** Ionic **********/
|
|
4
|
-
/********** Plugin **********/
|
|
5
|
-
import { map } from 'rxjs/operators';
|
|
6
|
-
import { QueryBuilderComponent } from 'angular2-query-builder';
|
|
7
|
-
/********** Component & Service **********/
|
|
8
|
-
import { FieldService, ZComponentHelper, ZComponentProperties, DefaultPageSettingParams, WebApiService, ResourceApiService } from 'mmhglobal-zcore';
|
|
9
|
-
export class ZquerybuilderComponent {
|
|
10
|
-
constructor(fieldService, resourceApiService, webApiService) {
|
|
11
|
-
this.fieldService = fieldService;
|
|
12
|
-
this.resourceApiService = resourceApiService;
|
|
13
|
-
this.webApiService = webApiService;
|
|
14
|
-
//qbItems: Array<any> = [];
|
|
15
|
-
this.qbItems = {};
|
|
16
|
-
this.componentProperties = new ZComponentProperties();
|
|
17
|
-
this.currentConfig = {
|
|
18
|
-
fields: {},
|
|
19
|
-
allowEmptyRulesets: true
|
|
20
|
-
};
|
|
21
|
-
this.allowRuleset = true;
|
|
22
|
-
this.allowCollapse = false;
|
|
23
|
-
this.persistValueOnFieldChange = false;
|
|
24
|
-
this.isDisabled = false;
|
|
25
|
-
this.bootstrapClassNames = {
|
|
26
|
-
arrowIcon: 'fa fa-chevron-right px-2',
|
|
27
|
-
button: 'btn',
|
|
28
|
-
buttonGroup: 'btn-group',
|
|
29
|
-
rightAlign: 'order-12 ml-auto',
|
|
30
|
-
switchRow: 'd-flex px-2',
|
|
31
|
-
switchGroup: 'd-flex align-items-center',
|
|
32
|
-
switchRadio: 'custom-control-input',
|
|
33
|
-
switchLabel: 'custom-control-label',
|
|
34
|
-
switchControl: 'custom-control custom-radio custom-control-inline',
|
|
35
|
-
row: 'row p-2 m-1',
|
|
36
|
-
rule: 'border',
|
|
37
|
-
ruleSet: 'border',
|
|
38
|
-
invalidRuleSet: 'alert alert-danger',
|
|
39
|
-
emptyWarning: 'text-danger mx-auto',
|
|
40
|
-
operatorControl: 'form-control',
|
|
41
|
-
operatorControlSize: 'col-auto pr-0',
|
|
42
|
-
fieldControl: 'form-control',
|
|
43
|
-
fieldControlSize: 'col-auto pr-0',
|
|
44
|
-
entityControl: 'form-control',
|
|
45
|
-
entityControlSize: 'col-auto pr-0',
|
|
46
|
-
inputControl: 'form-control',
|
|
47
|
-
inputControlSize: 'col-auto'
|
|
48
|
-
};
|
|
49
|
-
this.conditionList = [
|
|
50
|
-
"AND",
|
|
51
|
-
"OR"
|
|
52
|
-
];
|
|
53
|
-
}
|
|
54
|
-
ngOnInit() {
|
|
55
|
-
ZComponentHelper.setComponentProperties(this);
|
|
56
|
-
ZComponentHelper.registerComponent(this);
|
|
57
|
-
if (this.data['AllowCollapse'] === true) {
|
|
58
|
-
this.allowCollapse = this.data['AllowCollapse'];
|
|
59
|
-
}
|
|
60
|
-
if (this.data['AllowRuleset'] === false) {
|
|
61
|
-
this.allowRuleset = this.data['AllowRuleset'];
|
|
62
|
-
}
|
|
63
|
-
this.fields = this.fieldService.getFormFieldCode(this.data.Value, "FormField", null, null);
|
|
64
|
-
try {
|
|
65
|
-
this.fields.subscribe(data => {
|
|
66
|
-
data.forEach((field) => {
|
|
67
|
-
// Handle Options
|
|
68
|
-
let optionList = [];
|
|
69
|
-
if (field.Type == 'category' || field.Type == 'multiselect') {
|
|
70
|
-
if (field['ValueOptions']) {
|
|
71
|
-
field['ValueOptions'].forEach((valueOption) => {
|
|
72
|
-
optionList.push({
|
|
73
|
-
name: valueOption.Name,
|
|
74
|
-
value: valueOption.Value
|
|
75
|
-
});
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
else {
|
|
79
|
-
const selectOptions = field['SelectOptions'];
|
|
80
|
-
const param = Object.assign({}, DefaultPageSettingParams);
|
|
81
|
-
param.pageSize = selectOptions['PageSize'];
|
|
82
|
-
param.columns = selectOptions['Columns'];
|
|
83
|
-
param.filters += selectOptions['Filters'];
|
|
84
|
-
param.sortColumnName = selectOptions['SortColumnName'];
|
|
85
|
-
param.sortOrder = selectOptions['SortOrder'];
|
|
86
|
-
this.webApiService
|
|
87
|
-
.httpPost$(this.resourceApiService.getPageUrl(selectOptions['ResourceURL']), param)
|
|
88
|
-
.pipe(map((resp) => {
|
|
89
|
-
resp.dataSet.forEach((item) => {
|
|
90
|
-
optionList.push({
|
|
91
|
-
name: item[selectOptions['Name']],
|
|
92
|
-
value: item[selectOptions['Value']]
|
|
93
|
-
});
|
|
94
|
-
});
|
|
95
|
-
this.qbItems[field.Value]['options'] = optionList;
|
|
96
|
-
})).subscribe();
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
// Default rule to display
|
|
100
|
-
this.qbItems[field.Value] = {
|
|
101
|
-
name: field.Name,
|
|
102
|
-
value: field.Value,
|
|
103
|
-
type: field.Type,
|
|
104
|
-
operatorList: field['Operators'],
|
|
105
|
-
options: optionList,
|
|
106
|
-
nullable: field['IsNullable'],
|
|
107
|
-
defaultValue: field['DefaultValue'] ? field['DefaultValue'] : null
|
|
108
|
-
};
|
|
109
|
-
});
|
|
110
|
-
this.currentConfig = {
|
|
111
|
-
fields: this.qbItems,
|
|
112
|
-
allowEmptyRulesets: true
|
|
113
|
-
};
|
|
114
|
-
});
|
|
115
|
-
// append default query if any.
|
|
116
|
-
if (this.data['DefaultQuery']) {
|
|
117
|
-
let defaultQueryValueString = ZComponentHelper.getGroupEvalValue.call(this, this.data['DefaultQuery'], this.group);
|
|
118
|
-
if (defaultQueryValueString) {
|
|
119
|
-
this.setQueryValue(defaultQueryValueString);
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
catch (error) {
|
|
124
|
-
console.error("error: ", error);
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
completeRule(isUndo, queryValue) {
|
|
128
|
-
this.isDisabled = isUndo;
|
|
129
|
-
const qbResultValueName = this.data.Type + '_' + this.data.Value;
|
|
130
|
-
this.group[qbResultValueName] = this.queryBuilder.value;
|
|
131
|
-
if (queryValue) {
|
|
132
|
-
this.group[qbResultValueName] = queryValue;
|
|
133
|
-
}
|
|
134
|
-
if (!isUndo) {
|
|
135
|
-
this.group[qbResultValueName] = [];
|
|
136
|
-
}
|
|
137
|
-
if (this.group.zModel) {
|
|
138
|
-
ZComponentHelper.setModelValue(this.data.Value, this.group[qbResultValueName], this.group);
|
|
139
|
-
}
|
|
140
|
-
if (this.data['OnApplyClick'] && !queryValue) {
|
|
141
|
-
let callFunc = ZComponentHelper.getGroupEvalValue.call(this, this.data['OnApplyClick'], this.group);
|
|
142
|
-
const newFunc = callFunc.bind(this);
|
|
143
|
-
newFunc(this.group, this.group[qbResultValueName], this.fields);
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
getOperators(defaultOperatorList, rule) {
|
|
147
|
-
return this.qbItems[rule.field].operatorList ? this.qbItems[rule.field].operatorList : defaultOperatorList;
|
|
148
|
-
}
|
|
149
|
-
getOptionList(optionsList, rule) {
|
|
150
|
-
return this.qbItems[rule.field].options ? this.qbItems[rule.field].options : optionsList;
|
|
151
|
-
}
|
|
152
|
-
setQueryValue(queryValueString) {
|
|
153
|
-
if (queryValueString) {
|
|
154
|
-
const defaultQueryValueJson = toQueryRule(JSON.parse(queryValueString));
|
|
155
|
-
this.queryCtrl = defaultQueryValueJson;
|
|
156
|
-
// default lock the query builder if there default query
|
|
157
|
-
this.completeRule(true, defaultQueryValueJson);
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
ZquerybuilderComponent.decorators = [
|
|
162
|
-
{ type: Component, args: [{
|
|
163
|
-
selector: 'app-zquerybuilder',
|
|
164
|
-
template: "<ion-item *ngIf=\"(!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\">\r\n <ion-label [attr.for]=\"data.Value\"\r\n *ngIf=\"data.ShowLabel === undefined || data.ShowLabel\"\r\n [position]=\"data.LabelPosition ? data.LabelPosition : 'stacked'\">\r\n {{data.Label}}\r\n <ion-text *ngIf=\"(!!componentProperties.isRequiredField ? group[componentProperties.isRequiredField] : componentProperties.isRequired)\"\r\n color=\"danger\">*</ion-text>\r\n </ion-label>\r\n <div class=\"qbcontainer\">\r\n <query-builder [(ngModel)]='queryCtrl'\r\n [(config)]='currentConfig'\r\n [allowRuleset]='allowRuleset'\r\n [allowCollapse]='allowCollapse'\r\n [persistValueOnFieldChange]='persistValueOnFieldChange'>\r\n <!--AND OR Swtich-->\r\n <ng-container *querySwitchGroup=\"let ruleset; let onChange=onChange\">\r\n <kendo-dropdownlist [(ngModel)]=\"ruleset.condition\"\r\n (ngModelChange)=\"onChange($event, rule)\"\r\n [data]=\"conditionList\"\r\n [disabled]=\"isDisabled\"\r\n style=\"text-transform: uppercase;\">\r\n </kendo-dropdownlist>\r\n </ng-container>\r\n <!--Rule RuleSet Remove Rule Set Button-->\r\n <ng-container *queryButtonGroup=\"let ruleset; let addRule=addRule; let addRuleSet=addRuleSet; let removeRuleSet=removeRuleSet\">\r\n <!--Add Rule Button-->\r\n <ion-button fill=\"outline\"\r\n size=\"small\"\r\n strong=\"false\"\r\n (click)=\"addRule()\"\r\n [disabled]=\"isDisabled\"\r\n class=\"buttonadd\">\r\n <fa-icon [icon]=\"'plus'\" style=\"padding-right: 5px;\"></fa-icon>\r\n <span class=\"ion-text-capitalize\">Add</span>\r\n </ion-button>\r\n <!--Add RuleSet Button-->\r\n <ion-button *ngIf=\"addRuleSet\"\r\n fill=\"outline\"\r\n size=\"small\"\r\n strong=\"false\"\r\n (click)=\"addRuleSet()\"\r\n [disabled]=\"isDisabled\"\r\n class=\"buttonadd\">\r\n <fa-icon [icon]=\"'plus'\" style=\"padding-right: 5px;\"></fa-icon>\r\n <span class=\"ion-text-capitalize\">Add Rule Set</span>\r\n </ion-button>\r\n <!--Remove RuleSet Button-->\r\n <ion-button *ngIf=\"removeRuleSet\"\r\n fill=\"outline\"\r\n size=\"small\"\r\n strong=\"false\"\r\n (click)=\"removeRuleSet()\"\r\n [disabled]=\"isDisabled\"\r\n class=\"buttonremove\">\r\n <fa-icon [icon]=\"'times'\" style=\"padding-right: 5px;\"></fa-icon>\r\n <span class=\"ion-text-capitalize\">Remove Rule Set</span>\r\n </ion-button>\r\n </ng-container>\r\n <!--Remove Rule Button-->\r\n <ng-container *queryRemoveButton=\"let rule; let removeRule=removeRule\">\r\n <ion-button fill=\"outline\"\r\n size=\"small\"\r\n strong=\"false\"\r\n (click)=\"removeRule(rule)\"\r\n [disabled]=\"isDisabled\"\r\n class=\"buttonremove\">\r\n <fa-icon [icon]=\"'minus'\"\r\n style=\"padding-right: 5px;\"></fa-icon>\r\n <span class=\"ion-text-capitalize\">Remove Rule</span>\r\n </ion-button>\r\n </ng-container>\r\n <!--Name dropdown-->\r\n <ng-container *queryField=\"let rule; let fields=fields; let onChange=onChange; let getFields=getFields\">\r\n <kendo-dropdownlist [(ngModel)]=\"rule.field\"\r\n (ngModelChange)=\"onChange($event, rule)\"\r\n [data]=\"getFields(rule.entity)\"\r\n textField=\"name\"\r\n valueField=\"value\"\r\n [value]=\"value\"\r\n [valuePrimitive]=\"true\"\r\n [disabled]=\"isDisabled\"\r\n style=\"padding-right:10px;\">\r\n </kendo-dropdownlist>\r\n </ng-container>\r\n <!--Operator dropdown-->\r\n <ng-container *queryOperator=\"let rule; let operators=operators; let onChange=onChange\" style=\"padding:10px\">\r\n <kendo-dropdownlist [(ngModel)]=\"rule.operator\"\r\n (ngModelChange)=\"onChange($event, rule)\"\r\n [data]=\"getOperators(operators, rule)\"\r\n textField=\"name\"\r\n valueField=\"value\"\r\n [value]=\"value\"\r\n [valuePrimitive]=\"true\"\r\n [disabled]=\"isDisabled\"\r\n style=\"padding-right:10px;\">\r\n </kendo-dropdownlist>\r\n </ng-container>\r\n <!--Text Field-->\r\n <ng-container *queryInput=\"let rule; let field=field; type: 'string'; let onChange=onChange\">\r\n <kendo-textbox [(ngModel)]=\"rule.value\"\r\n (ngModelChange)=\"onChange()\"\r\n [clearButton]=\"true\"\r\n [disabled]=\"isDisabled\"\r\n class=\"customTextbox\">\r\n </kendo-textbox>\r\n </ng-container>\r\n <!--TextArea Field-->\r\n <ng-container *queryInput=\"let rule; type: 'textarea'; let onChange=onChange\">\r\n <kendo-textarea [(ngModel)]=\"rule.value\"\r\n (ngModelChange)=\"onChange()\"\r\n [rows]=\"5\"\r\n [cols]=\"40\"\r\n resizable=\"none\"\r\n [disabled]=\"isDisabled\">\r\n </kendo-textarea>\r\n </ng-container>\r\n <!--Number Field-->\r\n <ng-container *queryInput=\"let rule; let field=field; type: 'number'; let onChange=onChange\">\r\n <kendo-numerictextbox [(ngModel)]=\"rule.value\"\r\n (ngModelChange)=\"onChange()\"\r\n [value]=\"value\"\r\n [decimals]=\"0\"\r\n [disabled]=\"isDisabled\">\r\n </kendo-numerictextbox>\r\n </ng-container>\r\n <!--Date Field-->\r\n <ng-container *queryInput=\"let rule; type: 'date'; let onChange=onChange\">\r\n <kendo-datepicker [(ngModel)]=\"rule.value\"\r\n (ngModelChange)=\"onChange()\"\r\n calendarType=\"classic\"\r\n [value]=\"value\"\r\n [disabled]=\"isDisabled\">\r\n </kendo-datepicker>\r\n </ng-container>\r\n <!--Category Field-->\r\n <ng-container *queryInput=\"let rule; let options=options; type: 'category'; let onChange=onChange\">\r\n <kendo-dropdownlist [(ngModel)]=\"rule.value\"\r\n (ngModelChange)=\"onChange()\"\r\n [data]=\"getOptionList(options, rule)\"\r\n textField=\"name\"\r\n valueField=\"value\"\r\n [value]=\"value\"\r\n [valuePrimitive]=\"true\"\r\n [disabled]=\"isDisabled\">\r\n </kendo-dropdownlist>\r\n </ng-container>\r\n <!--DropDown MultiSelect Field-->\r\n <ng-container *queryInput=\"let rule; let options=options; type: 'multiselect'; let onChange=onChange\">\r\n <kendo-multiselect [(ngModel)]=\"rule.value\"\r\n (ngModelChange)=\"onChange()\"\r\n [data]=\"getOptionList(options, rule)\"\r\n textField=\"name\"\r\n valueField=\"value\"\r\n [value]=\"value\"\r\n [valuePrimitive]=\"true\"\r\n [autoClose]=\"false\"\r\n style=\"width:30%\"\r\n [disabled]=\"isDisabled\">\r\n </kendo-multiselect>\r\n </ng-container>\r\n <!--Boolean Field-->\r\n <ng-container *queryInput=\"let rule; type: 'boolean'; let onChange=onChange\">\r\n <input type=\"checkbox\"\r\n [(ngModel)]=\"rule.value\"\r\n (ngModelChange)=\"onChange()\"\r\n class=\"customCheckBox\"\r\n [disabled]=\"isDisabled\"\r\n kendoCheckBox />\r\n </ng-container>\r\n </query-builder>\r\n <br>\r\n <div *ngIf=\"data.ShowQueryResult\">\r\n <div>\r\n <label>Query Result</label>\r\n </div>\r\n <textarea class=\"output\"\r\n resizable=\"none\"\r\n [rows]=\"10\"\r\n [cols]=\"40\">{{queryCtrl | json}}</textarea>\r\n <br>\r\n </div>\r\n <div style=\"width:100%\" slot=\"end\">\r\n <ion-button *ngIf=\"!isDisabled\"\r\n strong=\"false\"\r\n (click)=\"completeRule(true, null)\"\r\n class=\"buttonapply\">\r\n <fa-icon [icon]=\"'save'\" style=\"padding-right: 5px;\"></fa-icon>\r\n <span class=\"ion-text-capitalize\">Apply</span>\r\n </ion-button>\r\n <ion-button *ngIf=\"isDisabled\"\r\n strong=\"false\"\r\n (click)=\"completeRule(false, null)\"\r\n class=\"buttonapply\">\r\n <fa-icon [icon]=\"'save'\" style=\"padding-right: 5px;\"></fa-icon>\r\n <span class=\"ion-text-capitalize\">Undo Apply</span>\r\n </ion-button>\r\n </div>\r\n </div>\r\n</ion-item>\r\n",
|
|
165
|
-
styles: [".qbcontainer{border-radius:5px;border:1px solid rgba(0,0,0,.08);padding:10px;margin:10px 0;width:100%}.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 query-builder .k-dropdown .k-dropdown-wrap,:host ::ng-deep query-builder .k-dropdowntree .k-dropdown-wrap{background-color:#fff}:host ::ng-deep query-builder .customTextbox{width:calc(100% - 440px);min-width:230px}:host ::ng-deep query-builder .customCheckBox{width:27px;height:27px}:host ::ng-deep query-builder .buttonadd{background-color:#479400;color:#fff;border-color:#479400}:host ::ng-deep query-builder .buttonremove{background-color:#f04141;color:#fff;border-color:#f04141;margin-top:0}.buttonapply{background-color:#5596e6;color:#fff;border-color:#5596e6}"]
|
|
166
|
-
},] }
|
|
167
|
-
];
|
|
168
|
-
ZquerybuilderComponent.ctorParameters = () => [
|
|
169
|
-
{ type: FieldService },
|
|
170
|
-
{ type: ResourceApiService },
|
|
171
|
-
{ type: WebApiService }
|
|
172
|
-
];
|
|
173
|
-
ZquerybuilderComponent.propDecorators = {
|
|
174
|
-
queryBuilder: [{ type: ViewChild, args: [QueryBuilderComponent, { static: false },] }],
|
|
175
|
-
classNames: [{ type: Input }],
|
|
176
|
-
data: [{ type: Input }],
|
|
177
|
-
group: [{ type: Input }],
|
|
178
|
-
form: [{ type: Input }]
|
|
179
|
-
};
|
|
180
|
-
export function toQueryRule(queryBuilderModel) {
|
|
181
|
-
let rule = {};
|
|
182
|
-
if (queryBuilderModel.condition) {
|
|
183
|
-
rule.condition = queryBuilderModel.condition;
|
|
184
|
-
rule.rules = queryBuilderModel.rules.map(q => toQueryRule(q));
|
|
185
|
-
}
|
|
186
|
-
else {
|
|
187
|
-
rule.field = queryBuilderModel.field;
|
|
188
|
-
rule.type = queryBuilderModel.type;
|
|
189
|
-
rule.operator = queryBuilderModel.operator;
|
|
190
|
-
rule.value = queryBuilderModel.value instanceof Array
|
|
191
|
-
? queryBuilderModel.type === 'date' ? new Date(queryBuilderModel.value) : queryBuilderModel.value
|
|
192
|
-
: [queryBuilderModel.type === 'date' ? new Date(queryBuilderModel.value) : queryBuilderModel.value];
|
|
193
|
-
}
|
|
194
|
-
return rule;
|
|
195
|
-
}
|
|
196
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoienF1ZXJ5YnVpbGRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tbWhnbG9iYWwtZHluYW1pY2Zvcm0vc3JjL2xpYi96cXVlcnlidWlsZGVyL3pxdWVyeWJ1aWxkZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtCQUErQjtBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHcEUsNkJBQTZCO0FBRTdCLDhCQUE4QjtBQUM5QixPQUFPLEVBQUUsR0FBRyxFQUFrQixNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBOEMscUJBQXFCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUUzRywyQ0FBMkM7QUFDM0MsT0FBTyxFQUNMLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxvQkFBb0IsRUFDaEMsd0JBQXdCLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUNoRixNQUFNLGlCQUFpQixDQUFDO0FBU3pCLE1BQU0sT0FBTyxzQkFBc0I7SUF3QmpDLFlBQ1UsWUFBMEIsRUFDMUIsa0JBQXNDLEVBQ3RDLGFBQTRCO1FBRjVCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFwQnRDLDJCQUEyQjtRQUMzQixZQUFPLEdBQUcsRUFBRSxDQUFDO1FBRU4sd0JBQW1CLEdBQUcsSUFBSSxvQkFBb0IsRUFBRSxDQUFDO1FBRWpELGtCQUFhLEdBQXVCO1lBQ3pDLE1BQU0sRUFBRSxFQUFFO1lBQ1Ysa0JBQWtCLEVBQUUsSUFBSTtTQUN6QixDQUFDO1FBQ0ssaUJBQVksR0FBWSxJQUFJLENBQUM7UUFDN0Isa0JBQWEsR0FBVyxLQUFLLENBQUM7UUFDOUIsOEJBQXlCLEdBQVksS0FBSyxDQUFDO1FBQzNDLGVBQVUsR0FB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Q0FBQyxRQUFRLENBQUM7UUFDM0MsSUFBSSxDQUFDLEtBQUssR0FBRyxpQkFBaUIsQ0FBQyxLQUFLLFlBQVksS0FBSztZQUNuRCxDQUFDLENBQUMsaUJBQWlCLENBQUMsSUFBSSxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLEtBQUs7WUFDakcsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsSUFBSSxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQ3ZHO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqKioqKioqKiogQW5ndWxhciAqKioqKioqKioqL1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuLyoqKioqKioqKiogSW9uaWMgKioqKioqKioqKi9cclxuXHJcbi8qKioqKioqKioqIFBsdWdpbiAqKioqKioqKioqL1xyXG5pbXBvcnQgeyBtYXAsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBRdWVyeUJ1aWxkZXJDb25maWcsIFF1ZXJ5QnVpbGRlckNsYXNzTmFtZXMsIFF1ZXJ5QnVpbGRlckNvbXBvbmVudCB9IGZyb20gJ2FuZ3VsYXIyLXF1ZXJ5LWJ1aWxkZXInO1xyXG5cclxuLyoqKioqKioqKiogQ29tcG9uZW50ICYgU2VydmljZSAqKioqKioqKioqL1xyXG5pbXBvcnQge1xyXG4gIEZpZWxkU2VydmljZSwgWkNvbXBvbmVudEhlbHBlciwgWkNvbXBvbmVudFByb3BlcnRpZXMsIFpGaWVsZCwgWkdyb3VwLFxyXG4gIEZvbnRBd2VTb21lU2VydmljZSwgRGVmYXVsdFBhZ2VTZXR0aW5nUGFyYW1zLCBXZWJBcGlTZXJ2aWNlLCBSZXNvdXJjZUFwaVNlcnZpY2VcclxufSBmcm9tICdtbWhnbG9iYWwtemNvcmUnO1xyXG5pbXBvcnQgeyBvZiB9IGZyb20gJ3J4anMnO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLXpxdWVyeWJ1aWxkZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi96cXVlcnlidWlsZGVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi96cXVlcnlidWlsZGVyLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBacXVlcnlidWlsZGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBAVmlld0NoaWxkKFF1ZXJ5QnVpbGRlckNvbXBvbmVudCwgeyBzdGF0aWM6IGZhbHNlIH0pIHF1ZXJ5QnVpbGRlcjogUXVlcnlCdWlsZGVyQ29tcG9uZW50O1xyXG4gIEBJbnB1dCgpIGNsYXNzTmFtZXM6IFF1ZXJ5QnVpbGRlckNsYXNzTmFtZXM7XHJcbiAgQElucHV0KCkgZGF0YTogWkZpZWxkO1xyXG4gIEBJbnB1dCgpIGdyb3VwOiBaR3JvdXA7XHJcbiAgQElucHV0KCkgZm9ybTogRm9ybUdyb3VwO1xyXG5cclxuICAvL3FiSXRlbXM6IEFycmF5PGFueT4gPSBbXTtcclxuICBxYkl0ZW1zID0ge307XHJcblxyXG4gIHB1YmxpYyBjb21wb25lbnRQcm9wZXJ0aWVzID0gbmV3IFpDb21wb25lbnRQcm9wZXJ0aWVzKCk7XHJcbiAgcHVibGljIHF1ZXJ5Q3RybDogYW55O1xyXG4gIHB1YmxpYyBjdXJyZW50Q29uZmlnOiBRdWVyeUJ1aWxkZXJDb25maWcgPSB7XHJcbiAgICBmaWVsZHM6IHt9LFxyXG4gICAgYWxsb3dFbXB0eVJ1bGVzZXRzOiB0cnVlXHJcbiAgfTtcclxuICBwdWJsaWMgYWxsb3dSdWxlc2V0OiBib29sZWFuID0gdHJ1ZTtcclxuICBwdWJsaWMgYWxsb3dDb2xsYXBzZTogYm9vbGVhbj0gZmFsc2U7XHJcbiAgcHVibGljIHBlcnNpc3RWYWx1ZU9uRmllbGRDaGFuZ2U6IGJvb2xlYW4gPSBmYWxzZTsgXHJcbiAgcHVibGljIGlzRGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgcnVsZTogYW55O1xyXG4gIHB1YmxpYyB2YWx1ZTogYW55O1xyXG4gIHByaXZhdGUgZmllbGRzOiBhbnk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBmaWVsZFNlcnZpY2U6IEZpZWxkU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVzb3VyY2VBcGlTZXJ2aWNlOiBSZXNvdXJjZUFwaVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHdlYkFwaVNlcnZpY2U6IFdlYkFwaVNlcnZpY2VcclxuICApIHtcclxuICB9XHJcbiAgICBcclxuICBuZ09uSW5pdCgpIHtcclxuICAgIFpDb21wb25lbnRIZWxwZXIuc2V0Q29tcG9uZW50UHJvcGVydGllcyh0aGlzKTtcclxuICAgIFpDb21wb25lbnRIZWxwZXIucmVnaXN0ZXJDb21wb25lbnQodGhpcyk7XHJcbiAgICAgXHJcbiAgICBpZiAodGhpcy5kYXRhWydBbGxvd0NvbGxhcHNlJ10gPT09IHRydWUpIHtcclxuICAgICAgdGhpcy5hbGxvd0NvbGxhcHNlID0gdGhpcy5kYXRhWydBbGxvd0NvbGxhcHNlJ107XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuZGF0YVsnQWxsb3dSdWxlc2V0J10gPT09IGZhbHNlKSB7XHJcbiAgICAgIHRoaXMuYWxsb3dSdWxlc2V0ID0gdGhpcy5kYXRhWydBbGxvd1J1bGVzZXQnXTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmZpZWxkcyA9IHRoaXMuZmllbGRTZXJ2aWNlLmdldEZvcm1GaWVsZENvZGUodGhpcy5kYXRhLlZhbHVlLCBcIkZvcm1GaWVsZFwiLCBudWxsLCBudWxsKTsgXHJcbiAgICAgXHJcbiAgICB0cnkge1xyXG4gICAgICB0aGlzLmZpZWxkcy5zdWJzY3JpYmUoZGF0YSA9PiB7IFxyXG4gICAgICAgIGRhdGEuZm9yRWFjaCgoZmllbGQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgLy8gSGFuZGxlIE9wdGlvbnNcclxuICAgICAgICAgIGxldCBvcHRpb25MaXN0ID0gW107XHJcblxyXG4gICAgICAgICAgaWYgKGZpZWxkLlR5cGUgPT0gJ2NhdGVnb3J5JyB8fCBmaWVsZC5UeXBlID09ICdtdWx0aXNlbGVjdCcpIHtcclxuICAgICAgICAgICAgaWYgKGZpZWxkWydWYWx1ZU9wdGlvbnMnXSkge1xyXG4gICAgICAgICAgICAgIGZpZWxkWydWYWx1ZU9wdGlvbnMnXS5mb3JFYWNoKCh2YWx1ZU9wdGlvbjogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBvcHRpb25MaXN0LnB1c2goe1xyXG4gICAgICAgICAgICAgICAgICBuYW1lOiB2YWx1ZU9wdGlvbi5OYW1lLFxyXG4gICAgICAgICAgICAgICAgICB2YWx1ZTogdmFsdWVPcHRpb24uVmFsdWVcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgIGNvbnN0IHNlbGVjdE9wdGlvbnMgPSBmaWVsZFsnU2VsZWN0T3B0aW9ucyddO1xyXG5cclxuICAgICAgICAgICAgICBjb25zdCBwYXJhbSA9IE9iamVjdC5hc3NpZ24oe30sIERlZmF1bHRQYWdlU2V0dGluZ1BhcmFtcyk7XHJcbiAgICAgICAgICAgICAgcGFyYW0ucGFnZVNpemUgPSBzZWxlY3RPcHRpb25zWydQYWdlU2l6ZSddO1xyXG4gICAgICAgICAgICAgIHBhcmFtLmNvbHVtbnMgPSBzZWxlY3RPcHRpb25zWydDb2x1bW5zJ107XHJcbiAgICAgICAgICAgICAgcGFyYW0uZmlsdGVycyArPSBzZWxlY3RPcHRpb25zWydGaWx0ZXJzJ107XHJcbiAgICAgICAgICAgICAgcGFyYW0uc29ydENvbHVtbk5hbWUgPSBzZWxlY3RPcHRpb25zWydTb3J0Q29sdW1uTmFtZSddO1xyXG4gICAgICAgICAgICAgIHBhcmFtLnNvcnRPcmRlciA9IHNlbGVjdE9wdGlvbnNbJ1NvcnRPcmRlciddO1xyXG5cclxuICAgICAgICAgICAgICB0aGlzLndlYkFwaVNlcnZpY2VcclxuICAgICAgICAgICAgICAgIC5odHRwUG9zdCQodGhpcy5yZXNvdXJjZUFwaVNlcnZpY2UuZ2V0UGFnZVVybChzZWxlY3RPcHRpb25zWydSZXNvdXJjZVVSTCddKSwgcGFyYW0pXHJcbiAgICAgICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgICAgbWFwKChyZXNwKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzcC5kYXRhU2V0LmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgb3B0aW9uTGlzdC5wdXNoKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogaXRlbVtzZWxlY3RPcHRpb25zWydOYW1lJ11dLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogaXRlbVtzZWxlY3RPcHRpb25zWydWYWx1ZSddXVxyXG4gICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSlcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5xYkl0ZW1zW2ZpZWxkLlZhbHVlXVsnb3B0aW9ucyddID0gb3B0aW9uTGlzdFxyXG4gICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgKS5zdWJzY3JpYmUoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIC8vIERlZmF1bHQgcnVsZSB0byBkaXNwbGF5XHJcbiAgICAgICAgICB0aGlzLnFiSXRlbXNbZmllbGQuVmFsdWVdID0ge1xyXG4gICAgICAgICAgICBuYW1lOiBmaWVsZC5OYW1lLFxyXG4gICAgICAgICAgICB2YWx1ZTogZmllbGQuVmFsdWUsXHJcbiAgICAgICAgICAgIHR5cGU6IGZpZWxkLlR5cGUsXHJcbiAgICAgICAgICAgIG9wZXJhdG9yTGlzdDogZmllbGRbJ09wZXJhdG9ycyddLFxyXG4gICAgICAgICAgICBvcHRpb25zOiBvcHRpb25MaXN0LFxyXG4gICAgICAgICAgICBudWxsYWJsZTogZmllbGRbJ0lzTnVsbGFibGUnXSxcclxuICAgICAgICAgICAgZGVmYXVsdFZhbHVlOiBmaWVsZFsnRGVmYXVsdFZhbHVlJ10gPyBmaWVsZFsnRGVmYXVsdFZhbHVlJ10gOiBudWxsXHJcbiAgICAgICAgICB9IFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgICBcclxuICAgICAgICB0aGlzLmN1cnJlbnRDb25maWcgPSB7XHJcbiAgICAgICAgICBmaWVsZHM6IHRoaXMucWJJdGVtcyxcclxuICAgICAgICAgIGFsbG93RW1wdHlSdWxlc2V0czogdHJ1ZVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgIFxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIC8vIGFwcGVuZCBkZWZhdWx0IHF1ZXJ5IGlmIGFueS5cclxuICAgICAgaWYgKHRoaXMuZGF0YVsnRGVmYXVsdFF1ZXJ5J10pIHtcclxuICAgICAgICBsZXQgZGVmYXVsdFF1ZXJ5VmFsdWVTdHJpbmcgPSBaQ29tcG9uZW50SGVscGVyLmdldEdyb3VwRXZhbFZhbHVlLmNhbGwoXHJcbiAgICAgICAgICB0aGlzLFxyXG4gICAgICAgICAgdGhpcy5kYXRhWydEZWZhdWx0UXVlcnknXSxcclxuICAgICAgICAgIHRoaXMuZ3JvdXBcclxuICAgICAgICApOyBcclxuXHJcbiAgICAgICAgaWYgKGRlZmF1bHRRdWVyeVZhbHVlU3RyaW5nKSB7XHJcbiAgICAgICAgICB0aGlzLnNldFF1ZXJ5VmFsdWUoZGVmYXVsdFF1ZXJ5VmFsdWVTdHJpbmcpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgY29uc29sZS5lcnJvcihcImVycm9yOiBcIiwgZXJyb3IpO1xyXG4gICAgfSBcclxuICB9XHJcbiAgICBcclxuICBwdWJsaWMgY29tcGxldGVSdWxlKGlzVW5kbzogYm9vbGVhbiwgcXVlcnlWYWx1ZTogYW55KSB7XHJcbiAgICB0aGlzLmlzRGlzYWJsZWQgPSBpc1VuZG87IFxyXG4gICAgY29uc3QgcWJSZXN1bHRWYWx1ZU5hbWUgPSB0aGlzLmRhdGEuVHlwZSArICdfJyArIHRoaXMuZGF0YS5WYWx1ZTtcclxuICAgIHRoaXMuZ3JvdXBbcWJSZXN1bHRWYWx1ZU5hbWVdID0gdGhpcy5xdWVyeUJ1aWxkZXIudmFsdWUgIFxyXG5cclxuICAgIGlmIChxdWVyeVZhbHVlKSB7XHJcbiAgICAgIHRoaXMuZ3JvdXBbcWJSZXN1bHRWYWx1ZU5hbWVdID0gcXVlcnlWYWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIWlzVW5kbykge1xyXG4gICAgICB0aGlzLmdyb3VwW3FiUmVzdWx0VmFsdWVOYW1lXSA9IFtdO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmdyb3VwLnpNb2RlbCkge1xyXG4gICAgICBaQ29tcG9uZW50SGVscGVyLnNldE1vZGVsVmFsdWUodGhpcy5kYXRhLlZhbHVlLCB0aGlzLmdyb3VwW3FiUmVzdWx0VmFsdWVOYW1lXSwgdGhpcy5ncm91cCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuZGF0YVsnT25BcHBseUNsaWNrJ10gJiYgIXF1ZXJ5VmFsdWUpIHtcclxuICAgICAgbGV0IGNhbGxGdW5jID0gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cEV2YWxWYWx1ZS5jYWxsKFxyXG4gICAgICAgIHRoaXMsXHJcbiAgICAgICAgdGhpcy5kYXRhWydPbkFwcGx5Q2xpY2snXSxcclxuICAgICAgICB0aGlzLmdyb3VwXHJcbiAgICAgICk7XHJcbiAgICAgIGNvbnN0IG5ld0Z1bmMgPSBjYWxsRnVuYy5iaW5kKHRoaXMpO1xyXG4gICAgICBuZXdGdW5jKHRoaXMuZ3JvdXAsIHRoaXMuZ3JvdXBbcWJSZXN1bHRWYWx1ZU5hbWVdLCB0aGlzLmZpZWxkcyk7XHJcbiAgICB9IFxyXG4gIH1cclxuICAgXHJcbiAgcHVibGljIGJvb3RzdHJhcENsYXNzTmFtZXM6IFF1ZXJ5QnVpbGRlckNsYXNzTmFtZXMgPSB7XHJcbiAgICBhcnJvd0ljb246ICdmYSBmYS1jaGV2cm9uLXJpZ2h0IHB4LTInLFxyXG4gICAgYnV0dG9uOiAnYnRuJyxcclxuICAgIGJ1dHRvbkdyb3VwOiAnYnRuLWdyb3VwJyxcclxuICAgIHJpZ2h0QWxpZ246ICdvcmRlci0xMiBtbC1hdXRvJyxcclxuICAgIHN3aXRjaFJvdzogJ2QtZmxleCBweC0yJyxcclxuICAgIHN3aXRjaEdyb3VwOiAnZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlcicsXHJcbiAgICBzd2l0Y2hSYWRpbzogJ2N1c3RvbS1jb250cm9sLWlucHV0JyxcclxuICAgIHN3aXRjaExhYmVsOiAnY3VzdG9tLWNvbnRyb2wtbGFiZWwnLFxyXG4gICAgc3dpdGNoQ29udHJvbDogJ2N1c3RvbS1jb250cm9sIGN1c3RvbS1yYWRpbyBjdXN0b20tY29udHJvbC1pbmxpbmUnLFxyXG4gICAgcm93OiAncm93IHAtMiBtLTEnLFxyXG4gICAgcnVsZTogJ2JvcmRlcicsXHJcbiAgICBydWxlU2V0OiAnYm9yZGVyJyxcclxuICAgIGludmFsaWRSdWxlU2V0OiAnYWxlcnQgYWxlcnQtZGFuZ2VyJyxcclxuICAgIGVtcHR5V2FybmluZzogJ3RleHQtZGFuZ2VyIG14LWF1dG8nLFxyXG4gICAgb3BlcmF0b3JDb250cm9sOiAnZm9ybS1jb250cm9sJyxcclxuICAgIG9wZXJhdG9yQ29udHJvbFNpemU6ICdjb2wtYXV0byBwci0wJyxcclxuICAgIGZpZWxkQ29udHJvbDogJ2Zvcm0tY29udHJvbCcsXHJcbiAgICBmaWVsZENvbnRyb2xTaXplOiAnY29sLWF1dG8gcHItMCcsXHJcbiAgICBlbnRpdHlDb250cm9sOiAnZm9ybS1jb250cm9sJyxcclxuICAgIGVudGl0eUNvbnRyb2xTaXplOiAnY29sLWF1dG8gcHItMCcsXHJcbiAgICBpbnB1dENvbnRyb2w6ICdmb3JtLWNvbnRyb2wnLFxyXG4gICAgaW5wdXRDb250cm9sU2l6ZTogJ2NvbC1hdXRvJ1xyXG4gIH07XHJcblxyXG4gIHB1YmxpYyBjb25kaXRpb25MaXN0OiBBcnJheTxzdHJpbmc+ID0gW1xyXG4gICAgXCJBTkRcIixcclxuICAgIFwiT1JcIlxyXG4gIF07XHJcblxyXG4gIHB1YmxpYyBnZXRPcGVyYXRvcnMoZGVmYXVsdE9wZXJhdG9yTGlzdDogYW55LCBydWxlOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLnFiSXRlbXNbcnVsZS5maWVsZF0ub3BlcmF0b3JMaXN0ID8gdGhpcy5xYkl0ZW1zW3J1bGUuZmllbGRdLm9wZXJhdG9yTGlzdCA6IGRlZmF1bHRPcGVyYXRvckxpc3Q7XHJcbiAgfVxyXG4gICBcclxuICBwdWJsaWMgZ2V0T3B0aW9uTGlzdChvcHRpb25zTGlzdDogYW55LCBydWxlOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLnFiSXRlbXNbcnVsZS5maWVsZF0ub3B0aW9ucyA/IHRoaXMucWJJdGVtc1tydWxlLmZpZWxkXS5vcHRpb25zIDogb3B0aW9uc0xpc3Q7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0UXVlcnlWYWx1ZShxdWVyeVZhbHVlU3RyaW5nOiBzdHJpbmcpIHtcclxuICAgIGlmIChxdWVyeVZhbHVlU3RyaW5nKSB7XHJcbiAgICAgIGNvbnN0IGRlZmF1bHRRdWVyeVZhbHVlSnNvbiA9IHRvUXVlcnlSdWxlKEpTT04ucGFyc2UocXVlcnlWYWx1ZVN0cmluZykpO1xyXG4gICAgICB0aGlzLnF1ZXJ5Q3RybCA9IGRlZmF1bHRRdWVyeVZhbHVlSnNvbjtcclxuXHJcbiAgICAgIC8vIGRlZmF1bHQgbG9jayB0aGUgcXVlcnkgYnVpbGRlciBpZiB0aGVyZSBkZWZhdWx0IHF1ZXJ5XHJcbiAgICAgIHRoaXMuY29tcGxldGVSdWxlKHRydWUsIGRlZmF1bHRRdWVyeVZhbHVlSnNvbik7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFF1ZXJ5UnVsZSB7XHJcbiAgY29uZGl0aW9uOiBzdHJpbmc7XHJcbiAgcnVsZXM6IFF1ZXJ5UnVsZVtdO1xyXG4gIGZpZWxkOiBzdHJpbmc7XHJcbiAgdHlwZTogc3RyaW5nO1xyXG4gIG9wZXJhdG9yOiBzdHJpbmc7XHJcbiAgdmFsdWU6IHN0cmluZ1tdO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gdG9RdWVyeVJ1bGUocXVlcnlCdWlsZGVyTW9kZWw6IGFueSk6IFF1ZXJ5UnVsZSB7XHJcbiAgbGV0IHJ1bGUgPSA8UXVlcnlSdWxlPnt9O1xyXG4gIGlmIChxdWVyeUJ1aWxkZXJNb2RlbC5jb25kaXRpb24pIHtcclxuICAgIHJ1bGUuY29uZGl0aW9uID0gcXVlcnlCdWlsZGVyTW9kZWwuY29uZGl0aW9uO1xyXG4gICAgcnVsZS5ydWxlcyA9IHF1ZXJ5QnVpbGRlck1vZGVsLnJ1bGVzLm1hcChxID0+IHRvUXVlcnlSdWxlKHEpKTtcclxuICB9IGVsc2Uge1xyXG4gICAgcnVsZS5maWVsZCA9IHF1ZXJ5QnVpbGRlck1vZGVsLmZpZWxkO1xyXG4gICAgcnVsZS50eXBlID0gcXVlcnlCdWlsZGVyTW9kZWwudHlwZTtcclxuICAgIHJ1bGUub3BlcmF0b3IgPSBxdWVyeUJ1aWxkZXJNb2RlbC5vcGVyYXRvcjtcclxuICAgIHJ1bGUudmFsdWUgPSBxdWVyeUJ1aWxkZXJNb2RlbC52YWx1ZSBpbnN0YW5jZW9mIEFycmF5XHJcbiAgICAgID8gcXVlcnlCdWlsZGVyTW9kZWwudHlwZSA9PT0gJ2RhdGUnID8gbmV3IERhdGUocXVlcnlCdWlsZGVyTW9kZWwudmFsdWUpIDogcXVlcnlCdWlsZGVyTW9kZWwudmFsdWVcclxuICAgICAgOiBbcXVlcnlCdWlsZGVyTW9kZWwudHlwZSA9PT0gJ2RhdGUnID8gbmV3IERhdGUocXVlcnlCdWlsZGVyTW9kZWwudmFsdWUpIDogcXVlcnlCdWlsZGVyTW9kZWwudmFsdWVdO1xyXG4gIH1cclxuICByZXR1cm4gcnVsZTtcclxufVxyXG4iXX0=
|
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
/********** Angular **********/
|
|
2
|
-
import { Component, ViewChild, Input, ViewEncapsulation } from "@angular/core";
|
|
3
|
-
/********** Component & Service **********/
|
|
4
|
-
import { ResourceApiService, ZComponentProperties, ZComponentHelper } from "mmhglobal-zcore";
|
|
5
|
-
export class ZreportComponent {
|
|
6
|
-
constructor(resourceApiService) {
|
|
7
|
-
this.resourceApiService = resourceApiService;
|
|
8
|
-
this.componentProperties = new ZComponentProperties();
|
|
9
|
-
this.title = "Report Viewer";
|
|
10
|
-
this.viewerContainerStyle = {
|
|
11
|
-
position: "relative",
|
|
12
|
-
width: "100%",
|
|
13
|
-
height: "800px",
|
|
14
|
-
["font-family"]: "ms sans serif"
|
|
15
|
-
};
|
|
16
|
-
this.resourceURL = null;
|
|
17
|
-
this.ReportSource = null;
|
|
18
|
-
this.isVisible = true;
|
|
19
|
-
this.paramToResizeReportViewer = false;
|
|
20
|
-
}
|
|
21
|
-
ngOnInit() {
|
|
22
|
-
ZComponentHelper.setComponentProperties(this);
|
|
23
|
-
ZComponentHelper.registerComponent(this);
|
|
24
|
-
this.resizeReportView = this.onPageReady.bind(this);
|
|
25
|
-
this.resourceURL = this.resourceApiService.getURL(this.data.ResourceURL);
|
|
26
|
-
if (!this.resourceURL) {
|
|
27
|
-
this.resourceURL = this.resourceApiService.getURL('e1wfs_wfm_workflowMasterReportURL');
|
|
28
|
-
//this.isVisible = false;
|
|
29
|
-
}
|
|
30
|
-
if (!!this.data.IsAutoGenerateReport) {
|
|
31
|
-
this.ReportSource = ZComponentHelper.getGroupEvalValue.call(this, this.data.ReportSource);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
generateReport() {
|
|
35
|
-
const rs = this.group["ReportSource"];
|
|
36
|
-
this.resourceURL = rs['url'];
|
|
37
|
-
this.viewer.setReportSource(rs);
|
|
38
|
-
this.viewer.refreshReport();
|
|
39
|
-
if (this.data['AutoResize']) {
|
|
40
|
-
this.paramToResizeReportViewer = true;
|
|
41
|
-
}
|
|
42
|
-
else {
|
|
43
|
-
this.paramToResizeReportViewer = false;
|
|
44
|
-
}
|
|
45
|
-
const thisComponent = this;
|
|
46
|
-
const exportButton = $("#trv-main-menu-export-command");
|
|
47
|
-
exportButton.on("mouseover", function () {
|
|
48
|
-
// trigger to hide list, sometime element not loaded yet.
|
|
49
|
-
setTimeout(function () {
|
|
50
|
-
// ExportOptions.instance.exportOption(thisComponent);
|
|
51
|
-
// ExportOptions.instance.hideUnwantedOptions();
|
|
52
|
-
}, 300);
|
|
53
|
-
});
|
|
54
|
-
}
|
|
55
|
-
ready(thisComponent) {
|
|
56
|
-
// console.log("ready");
|
|
57
|
-
// ExportOptions.init(thisComponent);
|
|
58
|
-
}
|
|
59
|
-
viewerToolTipOpening(args) {
|
|
60
|
-
// console.log("viewerToolTipOpening " + args.toolTip.text);
|
|
61
|
-
}
|
|
62
|
-
onRenderingEnd(e, args) {
|
|
63
|
-
// Occurs after rendering the report.
|
|
64
|
-
// ExportOptions.instance.update(e.target.reportSource().report);
|
|
65
|
-
}
|
|
66
|
-
exportBegin(args) {
|
|
67
|
-
}
|
|
68
|
-
exportEnd(args) {
|
|
69
|
-
}
|
|
70
|
-
onPageReady(e, args) {
|
|
71
|
-
if (this.paramToResizeReportViewer) {
|
|
72
|
-
var pageHeight = $(".trv-pages-area .trv-page-wrapper").height() + $(".trv-nav").outerHeight() + 20, // Calculate the report page height
|
|
73
|
-
viewer = $("#reportViewer1"), viewerHeight = viewer.height();
|
|
74
|
-
if (viewerHeight !== pageHeight) {
|
|
75
|
-
viewer.height(pageHeight);
|
|
76
|
-
var documentMapSplitter = $(".trv-document-map-splitter").data("kendoSplitter");
|
|
77
|
-
if (documentMapSplitter !== undefined) {
|
|
78
|
-
documentMapSplitter.resize(true);
|
|
79
|
-
}
|
|
80
|
-
var parameterSplitter = $(".trv-parameters-splitter").data("kendoSplitter");
|
|
81
|
-
if (parameterSplitter !== undefined) {
|
|
82
|
-
parameterSplitter.resize(true);
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
ZreportComponent.decorators = [
|
|
89
|
-
{ type: Component, args: [{
|
|
90
|
-
selector: "app-zreport",
|
|
91
|
-
template: "<div *ngIf=\"isVisible\" width=\"100%\" height=\"800px\">\r\n <tr-viewer #ReportViewer\r\n [containerStyle]=\"viewerContainerStyle\"\r\n [serviceUrl]=\"resourceURL\"\r\n [reportSource]=\"ReportSource\"\r\n [viewMode]=\"'INTERACTIVE'\"\r\n [scaleMode]=\"'SPECIFIC'\"\r\n [pageMode]=\"'SINGLE_PAGE'\"\r\n [scale]=\"1.0\"\r\n [ready]=\"ready(this)\"\r\n [exportBegin]=\"exportBegin(this)\"\r\n [exportEnd]=\"exportEnd(this)\"\r\n [viewerToolTipOpening]=\"viewerToolTipOpening\"\r\n [enableAccessibility]=\"false\"\r\n [pageReady] = \"resizeReportView()\"\r\n [renderingEnd]=\"onRenderingEnd\">\r\n </tr-viewer>\r\n</div>\r\n",
|
|
92
|
-
encapsulation: ViewEncapsulation.None,
|
|
93
|
-
styles: [""]
|
|
94
|
-
},] }
|
|
95
|
-
];
|
|
96
|
-
ZreportComponent.ctorParameters = () => [
|
|
97
|
-
{ type: ResourceApiService }
|
|
98
|
-
];
|
|
99
|
-
ZreportComponent.propDecorators = {
|
|
100
|
-
viewer: [{ type: ViewChild, args: ["ReportViewer",] }],
|
|
101
|
-
data: [{ type: Input }],
|
|
102
|
-
group: [{ type: Input }]
|
|
103
|
-
};
|
|
104
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoienJlcG9ydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tbWhnbG9iYWwtZHluYW1pY2Zvcm0vc3JjL2xpYi96cmVwb3J0L3pyZXBvcnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtCQUErQjtBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFVLFNBQVMsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFRdkYsMkNBQTJDO0FBQzNDLE9BQU8sRUFDTCxrQkFBa0IsRUFBa0Isb0JBQW9CLEVBQUUsZ0JBQWdCLEVBQzNFLE1BQU0saUJBQWlCLENBQUM7QUFZekIsTUFBTSxPQUFPLGdCQUFnQjtJQUMzQixZQUFvQixrQkFBc0M7UUFBdEMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQU8xRCx3QkFBbUIsR0FBRyxJQUFJLG9CQUFvQixFQUFFLENBQUM7UUFFakQsVUFBSyxHQUFHLGVBQWUsQ0FBQztRQUN4Qix5QkFBb0IsR0FBRztZQUNyQixRQUFRLEVBQUUsVUFBVTtZQUNwQixLQUFLLEVBQUUsTUFBTTtZQUNiLE1BQU0sRUFBRSxPQUFPO1lBQ2YsQ0FBQyxhQUFhLENBQUMsRUFBRSxlQUFlO1NBQ2pDLENBQUM7UUFFRixnQkFBVyxHQUFHLElBQUksQ0FBQztRQUNuQixpQkFBWSxHQUFHLElBQUksQ0FBQztRQUVwQixjQUFTLEdBQUcsSUFBSSxDQUFDO1FBRWpCLDhCQUF5QixHQUFHLEtBQUssQ0FBQztJQXRCNEIsQ0FBQztJQXlCL0QsUUFBUTtRQUNOLGdCQUFnQixDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzlDLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FB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QUFJLFNBQVMsRUFBRTtvQkFDbEMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUNoQzthQUNKO1NBQ0Y7SUFDSCxDQUFDOzs7WUE5R0YsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxhQUFhO2dCQUN2QixteUJBQXVDO2dCQUV2QyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTs7YUFDdEM7OztZQVpDLGtCQUFrQjs7O3FCQWdCakIsU0FBUyxTQUFDLGNBQWM7bUJBRXhCLEtBQUs7b0JBQ0wsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qKioqKioqKioqIEFuZ3VsYXIgKioqKioqKioqKi9cclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdDaGlsZCwgSW5wdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbi8qKioqKioqKioqIElvbmljICoqKioqKioqKiovXHJcblxyXG4vKioqKioqKioqKiBQbHVnaW4gKioqKioqKioqKi9cclxuaW1wb3J0IHsgRXhwb3J0T3B0aW9ucyB9IGZyb20gXCIuL3pyZXBvcnQuY29uZmlnXCI7XHJcbmltcG9ydCB7IFRlbGVyaWtSZXBvcnRWaWV3ZXJDb21wb25lbnQgfSBmcm9tIFwiQHByb2dyZXNzL3RlbGVyaWstYW5ndWxhci1yZXBvcnQtdmlld2VyXCI7XHJcblxyXG4vKioqKioqKioqKiBDb21wb25lbnQgJiBTZXJ2aWNlICoqKioqKioqKiovXHJcbmltcG9ydCB7XHJcbiAgUmVzb3VyY2VBcGlTZXJ2aWNlLCBaRmllbGQsIFpHcm91cCwgWkNvbXBvbmVudFByb3BlcnRpZXMsIFpDb21wb25lbnRIZWxwZXJcclxufSBmcm9tIFwibW1oZ2xvYmFsLXpjb3JlXCI7XHJcblxyXG5cclxuLy8gaW1wb3J0ICogYXMgJCBmcm9tICdqcXVlcnknO1xyXG5kZWNsYXJlIHZhciAkOiBhbnk7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJhcHAtenJlcG9ydFwiLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4venJlcG9ydC5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsczogW1wiLi96cmVwb3J0LmNvbXBvbmVudC5zY3NzXCJdLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIFpyZXBvcnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVzb3VyY2VBcGlTZXJ2aWNlOiBSZXNvdXJjZUFwaVNlcnZpY2UpIHsgfVxyXG5cclxuICBAVmlld0NoaWxkKFwiUmVwb3J0Vmlld2VyXCIpXHJcbiAgdmlld2VyOiBUZWxlcmlrUmVwb3J0Vmlld2VyQ29tcG9uZW50O1xyXG4gIEBJbnB1dCgpIGRhdGE6IFpGaWVsZDtcclxuICBASW5wdXQoKSBncm91cDogWkdyb3VwO1xyXG5cclxuICBjb21wb25lbnRQcm9wZXJ0aWVzID0gbmV3IFpDb21wb25lbnRQcm9wZXJ0aWVzKCk7XHJcblxyXG4gIHRpdGxlID0gXCJSZXBvcnQgVmlld2VyXCI7XHJcbiAgdmlld2VyQ29udGFpbmVyU3R5bGUgPSB7XHJcbiAgICBwb3NpdGlvbjogXCJyZWxhdGl2ZVwiLFxyXG4gICAgd2lkdGg6IFwiMTAwJVwiLFxyXG4gICAgaGVpZ2h0OiBcIjgwMHB4XCIsXHJcbiAgICBbXCJmb250LWZhbWlseVwiXTogXCJtcyBzYW5zIHNlcmlmXCJcclxuICB9O1xyXG5cclxuICByZXNvdXJjZVVSTCA9IG51bGw7XHJcbiAgUmVwb3J0U291cmNlID0gbnVsbDtcclxuXHJcbiAgaXNWaXNpYmxlID0gdHJ1ZTtcclxuXHJcbiAgcGFyYW1Ub1Jlc2l6ZVJlcG9ydFZpZXdlciA9IGZhbHNlO1xyXG4gIHB1YmxpYyByZXNpemVSZXBvcnRWaWV3OiBGdW5jdGlvbjtcclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBaQ29tcG9uZW50SGVscGVyLnNldENvbXBvbmVudFByb3BlcnRpZXModGhpcyk7XHJcbiAgICBaQ29tcG9uZW50SGVscGVyLnJlZ2lzdGVyQ29tcG9uZW50KHRoaXMpO1xyXG4gICAgdGhpcy5yZXNpemVSZXBvcnRWaWV3ID0gdGhpcy5vblBhZ2VSZWFkeS5iaW5kKHRoaXMpO1xyXG5cclxuICAgIHRoaXMucmVzb3VyY2VVUkwgPSB0aGlzLnJlc291cmNlQXBpU2VydmljZS5nZXRVUkwodGhpcy5kYXRhLlJlc291cmNlVVJMKTtcclxuXHJcbiAgICBpZiAoIXRoaXMucmVzb3VyY2VVUkwpIHtcclxuICAgICAgdGhpcy5yZXNvdXJjZVVSTCA9IHRoaXMucmVzb3VyY2VBcGlTZXJ2aWNlLmdldFVSTCgnZTF3ZnNfd2ZtX3dvcmtmbG93TWFzdGVyUmVwb3J0VVJMJyk7XHJcbiAgICAgIC8vdGhpcy5pc1Zpc2libGUgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoISF0aGlzLmRhdGEuSXNBdXRvR2VuZXJhdGVSZXBvcnQpIHtcclxuICAgICAgdGhpcy5SZXBvcnRTb3VyY2UgPSBaQ29tcG9uZW50SGVscGVyLmdldEdyb3VwRXZhbFZhbHVlLmNhbGwodGhpcywgdGhpcy5kYXRhLlJlcG9ydFNvdXJjZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2VuZXJhdGVSZXBvcnQoKSB7XHJcbiAgICBjb25zdCBycyA9IHRoaXMuZ3JvdXBbXCJSZXBvcnRTb3VyY2VcIl07XHJcbiAgICB0aGlzLnJlc291cmNlVVJMID0gcnNbJ3VybCddO1xyXG4gICAgdGhpcy52aWV3ZXIuc2V0UmVwb3J0U291cmNlKHJzKTtcclxuICAgIHRoaXMudmlld2VyLnJlZnJlc2hSZXBvcnQoKTtcclxuXHJcbiAgICBpZiAodGhpcy5kYXRhWydBdXRvUmVzaXplJ10pIHtcclxuICAgICAgdGhpcy5wYXJhbVRvUmVzaXplUmVwb3J0Vmlld2VyID0gdHJ1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMucGFyYW1Ub1Jlc2l6ZVJlcG9ydFZpZXdlciA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHRoaXNDb21wb25lbnQgPSB0aGlzO1xyXG4gICAgY29uc3QgZXhwb3J0QnV0dG9uID0gJChcIiN0cnYtbWFpbi1tZW51LWV4cG9ydC1jb21tYW5kXCIpO1xyXG4gICAgZXhwb3J0QnV0dG9uLm9uKFwibW91c2VvdmVyXCIsIGZ1bmN0aW9uICgpIHtcclxuICAgICAgLy8gdHJpZ2dlciB0byBoaWRlIGxpc3QsIHNvbWV0aW1lIGVsZW1lbnQgbm90IGxvYWRlZCB5ZXQuXHJcbiAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIC8vIEV4cG9ydE9wdGlvbnMuaW5zdGFuY2UuZXhwb3J0T3B0aW9uKHRoaXNDb21wb25lbnQpO1xyXG4gICAgICAgIC8vIEV4cG9ydE9wdGlvbnMuaW5zdGFuY2UuaGlkZVVud2FudGVkT3B0aW9ucygpO1xyXG4gICAgICB9LCAzMDApO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICByZWFkeSh0aGlzQ29tcG9uZW50OiBhbnkpIHtcclxuICAgIC8vIGNvbnNvbGUubG9nKFwicmVhZHlcIik7XHJcbiAgICAvLyBFeHBvcnRPcHRpb25zLmluaXQodGhpc0NvbXBvbmVudCk7XHJcbiAgfVxyXG5cclxuICB2aWV3ZXJUb29sVGlwT3BlbmluZyhhcmdzOiBhbnkpIHtcclxuICAgIC8vIGNvbnNvbGUubG9nKFwidmlld2VyVG9vbFRpcE9wZW5pbmcgXCIgKyBhcmdzLnRvb2xUaXAudGV4dCk7XHJcbiAgfVxyXG5cclxuICBvblJlbmRlcmluZ0VuZChlLCBhcmdzKTogdm9pZCB7XHJcbiAgICAvLyBPY2N1cnMgYWZ0ZXIgcmVuZGVyaW5nIHRoZSByZXBvcnQuXHJcbiAgICAvLyBFeHBvcnRPcHRpb25zLmluc3RhbmNlLnVwZGF0ZShlLnRhcmdldC5yZXBvcnRTb3VyY2UoKS5yZXBvcnQpO1xyXG4gIH1cclxuXHJcbiAgZXhwb3J0QmVnaW4oYXJnczogYW55KSB7XHJcbiAgfVxyXG5cclxuICBleHBvcnRFbmQoYXJnczogYW55KSB7XHJcbiAgfVxyXG5cclxuICBvblBhZ2VSZWFkeShlOiBhbnksIGFyZ3M6YW55KSB7XHJcbiAgICBpZiAodGhpcy5wYXJhbVRvUmVzaXplUmVwb3J0Vmlld2VyKSB7XHJcbiAgICAgIHZhciBwYWdlSGVpZ2h0ID0gJChcIi50cnYtcGFnZXMtYXJlYSAudHJ2LXBhZ2Utd3JhcHBlclwiKS5oZWlnaHQoKSArICQoXCIudHJ2LW5hdlwiKS5vdXRlckhlaWdodCgpICsgMjAsIC8vIENhbGN1bGF0ZSB0aGUgcmVwb3J0IHBhZ2UgaGVpZ2h0XHJcbiAgICAgICAgICB2aWV3ZXIgPSAkKFwiI3JlcG9ydFZpZXdlcjFcIiksXHJcbiAgICAgICAgICB2aWV3ZXJIZWlnaHQgPSB2aWV3ZXIuaGVpZ2h0KCk7XHJcblxyXG4gICAgICBpZiAodmlld2VySGVpZ2h0ICE9PSBwYWdlSGVpZ2h0ICkge1xyXG4gICAgICAgICAgdmlld2VyLmhlaWdodChwYWdlSGVpZ2h0KTtcclxuICAgICAgICAgIHZhciBkb2N1bWVudE1hcFNwbGl0dGVyID0gJChcIi50cnYtZG9jdW1lbnQtbWFwLXNwbGl0dGVyXCIpLmRhdGEoXCJrZW5kb1NwbGl0dGVyXCIpO1xyXG4gICAgICAgICAgaWYgKGRvY3VtZW50TWFwU3BsaXR0ZXIgIT09dW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIGRvY3VtZW50TWFwU3BsaXR0ZXIucmVzaXplKHRydWUpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdmFyIHBhcmFtZXRlclNwbGl0dGVyID0gJChcIi50cnYtcGFyYW1ldGVycy1zcGxpdHRlclwiKS5kYXRhKFwia2VuZG9TcGxpdHRlclwiKTtcclxuICAgICAgICAgIGlmIChwYXJhbWV0ZXJTcGxpdHRlciAhPT11bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgcGFyYW1ldGVyU3BsaXR0ZXIucmVzaXplKHRydWUpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
import { Component } from "@angular/core";
|
|
2
|
-
// @dynamic
|
|
3
|
-
export class ExportOptions {
|
|
4
|
-
constructor() {
|
|
5
|
-
this.viewerToolTipOpening = null;
|
|
6
|
-
this.resourceURL = null;
|
|
7
|
-
this.ReportSource = null;
|
|
8
|
-
this.ready = null;
|
|
9
|
-
this.exportBegin = null;
|
|
10
|
-
this.exportEnd = null;
|
|
11
|
-
this.onRenderingEnd = null;
|
|
12
|
-
this.viewerContainerStyle = null;
|
|
13
|
-
this.isVisible = null;
|
|
14
|
-
this.paramToResizeReportViewer = null;
|
|
15
|
-
this.resizeReportView = null;
|
|
16
|
-
// public static instance: ExportOptions;
|
|
17
|
-
// public static init(component: any) {
|
|
18
|
-
// if (!ExportOptions.instance) {
|
|
19
|
-
// ExportOptions.instance = new ExportOptions();
|
|
20
|
-
// }
|
|
21
|
-
// ExportOptions.instance.bindEvents(component);
|
|
22
|
-
// // Add the options when init. Sometime it will not init the class.
|
|
23
|
-
// ExportOptions.instance.hideOptions = ["PDF", "CSV", "XLS", "XLSX", "RTF", "IMAGE", "MHTML", "XPS"];
|
|
24
|
-
// }
|
|
25
|
-
this.largeMenuBound = false;
|
|
26
|
-
this.sideMenuBound = false;
|
|
27
|
-
this.reportSource = "";
|
|
28
|
-
this.hideOptions = [];
|
|
29
|
-
}
|
|
30
|
-
update(reportSource) {
|
|
31
|
-
this.reportSource = reportSource;
|
|
32
|
-
// show all extensions
|
|
33
|
-
//$('[data-command-parameter]').show();
|
|
34
|
-
// check to hide options
|
|
35
|
-
this.hideUnwantedOptions();
|
|
36
|
-
}
|
|
37
|
-
bindEvents(component) {
|
|
38
|
-
this.exportOption(component);
|
|
39
|
-
const sideMenu = $(".trv-side-menu").children("ul").data('kendoPanelBar');
|
|
40
|
-
const largeMenu = $(".trv-menu-large").data("kendoMenu");
|
|
41
|
-
const smallMenu = $(".trv-menu-small");
|
|
42
|
-
// hide export button if all option is not available
|
|
43
|
-
if (this.hideOptions.length == 8) {
|
|
44
|
-
const exportButton = $("[data-command*='telerik_ReportViewer_export']");
|
|
45
|
-
exportButton.hide();
|
|
46
|
-
}
|
|
47
|
-
// bind to the 'open' event of the main menu
|
|
48
|
-
if (!this.largeMenuBound && largeMenu) {
|
|
49
|
-
largeMenu.bind("open", () => {
|
|
50
|
-
this.hideUnwantedOptions();
|
|
51
|
-
});
|
|
52
|
-
this.largeMenuBound = true;
|
|
53
|
-
}
|
|
54
|
-
// bind to the 'expand' event of the side menu
|
|
55
|
-
if (!this.sideMenuBound && smallMenu) {
|
|
56
|
-
if (sideMenu) {
|
|
57
|
-
sideMenu.bind("expand", () => {
|
|
58
|
-
// recheck export options
|
|
59
|
-
//if (reloadHideOptions) {
|
|
60
|
-
// thisComponent.exportOption(thisComponent);
|
|
61
|
-
//}
|
|
62
|
-
this.hideUnwantedOptions();
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
this.sideMenuBound = true;
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
exportOption(component) {
|
|
69
|
-
const _data = component.data;
|
|
70
|
-
if (_data.EnableExportPDF) {
|
|
71
|
-
this.hideOptions = this.hideOptions.filter(item => item !== "PDF");
|
|
72
|
-
}
|
|
73
|
-
if (_data.EnableExportCSV) {
|
|
74
|
-
this.hideOptions = this.hideOptions.filter(item => item !== "CSV");
|
|
75
|
-
}
|
|
76
|
-
if (_data.EnableExportExcel) {
|
|
77
|
-
this.hideOptions = this.hideOptions.filter(item => item !== "XLS");
|
|
78
|
-
this.hideOptions = this.hideOptions.filter(item => item !== "XLSX");
|
|
79
|
-
}
|
|
80
|
-
if (_data.EnableExportRTF) {
|
|
81
|
-
this.hideOptions = this.hideOptions.filter(item => item !== "RTF");
|
|
82
|
-
}
|
|
83
|
-
if (_data.EnableExportTIFF) {
|
|
84
|
-
this.hideOptions = this.hideOptions.filter(item => item !== "IMAGE");
|
|
85
|
-
}
|
|
86
|
-
if (_data.EnableExportMHTML) {
|
|
87
|
-
this.hideOptions = this.hideOptions.filter(item => item !== "MHTML");
|
|
88
|
-
}
|
|
89
|
-
if (_data.EnableExportXPS) {
|
|
90
|
-
this.hideOptions = this.hideOptions.filter(item => item !== "XPS");
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
hideUnwantedOptions() {
|
|
94
|
-
// show all extensions
|
|
95
|
-
$('[data-command-parameter]').show();
|
|
96
|
-
// hide the specified extensions
|
|
97
|
-
$.each(this.hideOptions, function (index, item) {
|
|
98
|
-
var hiddenOption = $('[data-command-parameter="' + item + '"]');
|
|
99
|
-
if (hiddenOption && hiddenOption.length) {
|
|
100
|
-
hiddenOption.hide();
|
|
101
|
-
}
|
|
102
|
-
});
|
|
103
|
-
}
|
|
104
|
-
resizeViewer() {
|
|
105
|
-
return null;
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
ExportOptions.decorators = [
|
|
109
|
-
{ type: Component, args: [{
|
|
110
|
-
selector: "app-zreport",
|
|
111
|
-
template: "<div *ngIf=\"isVisible\" width=\"100%\" height=\"800px\">\r\n <tr-viewer #ReportViewer\r\n [containerStyle]=\"viewerContainerStyle\"\r\n [serviceUrl]=\"resourceURL\"\r\n [reportSource]=\"ReportSource\"\r\n [viewMode]=\"'INTERACTIVE'\"\r\n [scaleMode]=\"'SPECIFIC'\"\r\n [pageMode]=\"'SINGLE_PAGE'\"\r\n [scale]=\"1.0\"\r\n [ready]=\"ready(this)\"\r\n [exportBegin]=\"exportBegin(this)\"\r\n [exportEnd]=\"exportEnd(this)\"\r\n [viewerToolTipOpening]=\"viewerToolTipOpening\"\r\n [enableAccessibility]=\"false\"\r\n [pageReady] = \"resizeReportView()\"\r\n [renderingEnd]=\"onRenderingEnd\">\r\n </tr-viewer>\r\n</div>\r\n",
|
|
112
|
-
styles: [""]
|
|
113
|
-
},] }
|
|
114
|
-
];
|
|
115
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoienJlcG9ydC5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tbWhnbG9iYWwtZHluYW1pY2Zvcm0vc3JjL2xpYi96cmVwb3J0L3pyZXBvcnQuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsTUFBTSxlQUFlLENBQUM7QUFVdEQsV0FBVztBQUNYLE1BQU0sT0FBTyxhQUFhO0lBUDFCO1FBUUUseUJBQW9CLEdBQUcsSUFBSSxDQUFDO1FBQzVCLGdCQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ25CLGlCQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLFVBQUssR0FBRyxJQUFJLENBQUM7UUFDYixnQkFBVyxHQUFHLElBQUksQ0FBQztRQUNuQixjQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLG1CQUFjLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLHlCQUFvQixHQUFHLElBQUksQ0FBQztRQUM1QixjQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLDhCQUF5QixHQUFHLElBQUksQ0FBQztRQUNqQyxxQkFBZ0IsR0FBRyxJQUFJLENBQUM7UUFDeEIseUNBQXlDO1FBQ3pDLHVDQUF1QztRQUN2QyxtQ0FBbUM7UUFDbkMsb0RBQW9EO1FBQ3BELE1BQU07UUFDTixrREFBa0Q7UUFFbEQsdUVBQXVFO1FBQ3ZFLHdHQUF3RztRQUN4RyxJQUFJO1FBRUksbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFDdkIsa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFDdEIsaUJBQVksR0FBRyxFQUFFLENBQUM7UUFDbEIsZ0JBQVcsR0FBRyxFQUFFLENBQUM7SUEyRjNCLENBQUM7SUF6RlEsTUFBTSxDQUFDLFlBQW9CO1FBQ2hDLElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO1FBQ2pDLHNCQUFzQjtRQUN0Qix1Q0FBdUM7UUFFdkMsd0JBQXdCO1FBQ3hCLElBQUksQ0FBQyxtQkFBbUIsRUFB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QUFLLENBQUMsaUJBQWlCLEVBQUU7WUFDM0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxPQUFPLENBQUMsQ0FBQztTQUN0RTtRQUNELElBQUksS0FBSyxDQUFDLGVBQWUsRUFBRTtZQUN6QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLEtBQUssQ0FBQyxDQUFDO1NBQ3BFO0lBQ0gsQ0FBQztJQUVNLG1CQUFtQjtRQUN4QixzQkFBc0I7UUFDdEIsQ0FBQyxDQUFDLDBCQUEwQixDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFckMsZ0NBQWdDO1FBQ2hDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxVQUFVLEtBQUssRUFBRSxJQUFJO1lBQzVDLElBQUksWUFBWSxHQUFHLENBQUMsQ0FBQywyQkFBMkIsR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUM7WUFDaEUsSUFBSSxZQUFZLElBQUksWUFBWSxDQUFDLE1BQU0sRUFBRTtnQkFDdkMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO2FBQ3JCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sWUFBWTtRQUNqQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7OztZQTNIRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGFBQWE7Z0JBQ3ZCLG15QkFBdUM7O2FBRXhDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuLy8gaW1wb3J0ICogYXMgJCBmcm9tICdqcXVlcnknO1xyXG5kZWNsYXJlIHZhciAkOiBhbnk7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJhcHAtenJlcG9ydFwiLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4venJlcG9ydC5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsczogW1wiLi96cmVwb3J0LmNvbXBvbmVudC5zY3NzXCJdLFxyXG59KVxyXG5cclxuLy8gQGR5bmFtaWNcclxuZXhwb3J0IGNsYXNzIEV4cG9ydE9wdGlvbnMge1xyXG4gIHZpZXdlclRvb2xUaXBPcGVuaW5nID0gbnVsbDtcclxuICByZXNvdXJjZVVSTCA9IG51bGw7XHJcbiAgUmVwb3J0U291cmNlID0gbnVsbDtcclxuICByZWFkeSA9IG51bGw7XHJcbiAgZXhwb3J0QmVnaW4gPSBudWxsO1xyXG4gIGV4cG9ydEVuZCA9IG51bGw7XHJcbiAgb25SZW5kZXJpbmdFbmQgPSBudWxsO1xyXG4gIHZpZXdlckNvbnRhaW5lclN0eWxlID0gbnVsbDtcclxuICBpc1Zpc2libGUgPSBudWxsO1xyXG4gIHBhcmFtVG9SZXNpemVSZXBvcnRWaWV3ZXIgPSBudWxsO1xyXG4gIHJlc2l6ZVJlcG9ydFZpZXcgPSBudWxsO1xyXG4gIC8vIHB1YmxpYyBzdGF0aWMgaW5zdGFuY2U6IEV4cG9ydE9wdGlvbnM7XHJcbiAgLy8gcHVibGljIHN0YXRpYyBpbml0KGNvbXBvbmVudDogYW55KSB7XHJcbiAgLy8gICBpZiAoIUV4cG9ydE9wdGlvbnMuaW5zdGFuY2UpIHtcclxuICAvLyAgICAgRXhwb3J0T3B0aW9ucy5pbnN0YW5jZSA9IG5ldyBFeHBvcnRPcHRpb25zKCk7XHJcbiAgLy8gICB9XHJcbiAgLy8gICBFeHBvcnRPcHRpb25zLmluc3RhbmNlLmJpbmRFdmVudHMoY29tcG9uZW50KTtcclxuXHJcbiAgLy8gICAvLyBBZGQgdGhlIG9wdGlvbnMgd2hlbiBpbml0LiBTb21ldGltZSBpdCB3aWxsIG5vdCBpbml0IHRoZSBjbGFzcy5cclxuICAvLyAgIEV4cG9ydE9wdGlvbnMuaW5zdGFuY2UuaGlkZU9wdGlvbnMgPSBbXCJQREZcIiwgXCJDU1ZcIiwgXCJYTFNcIiwgXCJYTFNYXCIsIFwiUlRGXCIsIFwiSU1BR0VcIiwgXCJNSFRNTFwiLCBcIlhQU1wiXTtcclxuICAvLyB9XHJcblxyXG4gIHByaXZhdGUgbGFyZ2VNZW51Qm91bmQgPSBmYWxzZTtcclxuICBwcml2YXRlIHNpZGVNZW51Qm91bmQgPSBmYWxzZTtcclxuICBwcml2YXRlIHJlcG9ydFNvdXJjZSA9IFwiXCI7XHJcbiAgcHJpdmF0ZSBoaWRlT3B0aW9ucyA9IFtdO1xyXG5cclxuICBwdWJsaWMgdXBkYXRlKHJlcG9ydFNvdXJjZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnJlcG9ydFNvdXJjZSA9IHJlcG9ydFNvdXJjZTtcclxuICAgIC8vIHNob3cgYWxsIGV4dGVuc2lvbnNcclxuICAgIC8vJCgnW2RhdGEtY29tbWFuZC1wYXJhbWV0ZXJdJykuc2hvdygpO1xyXG5cclxuICAgIC8vIGNoZWNrIHRvIGhpZGUgb3B0aW9uc1xyXG4gICAgdGhpcy5oaWRlVW53YW50ZWRPcHRpb25zKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYmluZEV2ZW50cyhjb21wb25lbnQ6IGFueSkge1xyXG4gICAgdGhpcy5leHBvcnRPcHRpb24oY29tcG9uZW50KTtcclxuXHJcbiAgICBjb25zdCBzaWRlTWVudSA9ICQoXCIudHJ2LXNpZGUtbWVudVwiKS5jaGlsZHJlbihcInVsXCIpLmRhdGEoJ2tlbmRvUGFuZWxCYXInKTtcclxuICAgIGNvbnN0IGxhcmdlTWVudSA9ICQoXCIudHJ2LW1lbnUtbGFyZ2VcIikuZGF0YShcImtlbmRvTWVudVwiKTtcclxuICAgIGNvbnN0IHNtYWxsTWVudSA9ICQoXCIudHJ2LW1lbnUtc21hbGxcIik7XHJcblxyXG4gICAgLy8gaGlkZSBleHBvcnQgYnV0dG9uIGlmIGFsbCBvcHRpb24gaXMgbm90IGF2YWlsYWJsZVxyXG4gICAgaWYgKHRoaXMuaGlkZU9wdGlvbnMubGVuZ3RoID09IDgpIHtcclxuICAgICAgY29uc3QgZXhwb3J0QnV0dG9uID0gJChcIltkYXRhLWNvbW1hbmQqPSd0ZWxlcmlrX1JlcG9ydFZpZXdlcl9leHBvcnQnXVwiKVxyXG4gICAgICBleHBvcnRCdXR0b24uaGlkZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIGJpbmQgdG8gdGhlICdvcGVuJyBldmVudCBvZiB0aGUgbWFpbiBtZW51XHJcbiAgICBpZiAoIXRoaXMubGFyZ2VNZW51Qm91bmQgJiYgbGFyZ2VNZW51KSB7XHJcbiAgICAgIGxhcmdlTWVudS5iaW5kKFwib3BlblwiLCAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5oaWRlVW53YW50ZWRPcHRpb25zKCk7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgdGhpcy5sYXJnZU1lbnVCb3VuZCA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gYmluZCB0byB0aGUgJ2V4cGFuZCcgZXZlbnQgb2YgdGhlIHNpZGUgbWVudVxyXG4gICAgaWYgKCF0aGlzLnNpZGVNZW51Qm91bmQgJiYgc21hbGxNZW51KSB7XHJcbiAgICAgIGlmIChzaWRlTWVudSkge1xyXG4gICAgICAgIHNpZGVNZW51LmJpbmQoXCJleHBhbmRcIiwgKCkgPT4ge1xyXG4gICAgICAgICAgLy8gcmVjaGVjayBleHBvcnQgb3B0aW9uc1xyXG4gICAgICAgICAgLy9pZiAocmVsb2FkSGlkZU9wdGlvbnMpIHtcclxuICAgICAgICAgIC8vICB0aGlzQ29tcG9uZW50LmV4cG9ydE9wdGlvbih0aGlzQ29tcG9uZW50KTtcclxuICAgICAgICAgIC8vfVxyXG4gICAgICAgICAgdGhpcy5oaWRlVW53YW50ZWRPcHRpb25zKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuc2lkZU1lbnVCb3VuZCA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZXhwb3J0T3B0aW9uKGNvbXBvbmVudDogYW55KSB7XHJcbiAgICBjb25zdCBfZGF0YSA9IGNvbXBvbmVudC5kYXRhO1xyXG4gICAgaWYgKF9kYXRhLkVuYWJsZUV4cG9ydFBERikge1xyXG4gICAgICB0aGlzLmhpZGVPcHRpb25zID0gdGhpcy5oaWRlT3B0aW9ucy5maWx0ZXIoaXRlbSA9PiBpdGVtICE9PSBcIlBERlwiKTtcclxuICAgIH1cclxuICAgIGlmIChfZGF0YS5FbmFibGVFeHBvcnRDU1YpIHtcclxuICAgICAgdGhpcy5oaWRlT3B0aW9ucyA9IHRoaXMuaGlkZU9wdGlvbnMuZmlsdGVyKGl0ZW0gPT4gaXRlbSAhPT0gXCJDU1ZcIik7XHJcbiAgICB9XHJcbiAgICBpZiAoX2RhdGEuRW5hYmxlRXhwb3J0RXhjZWwpIHtcclxuICAgICAgdGhpcy5oaWRlT3B0aW9ucyA9IHRoaXMuaGlkZU9wdGlvbnMuZmlsdGVyKGl0ZW0gPT4gaXRlbSAhPT0gXCJYTFNcIik7XHJcbiAgICAgIHRoaXMuaGlkZU9wdGlvbnMgPSB0aGlzLmhpZGVPcHRpb25zLmZpbHRlcihpdGVtID0+IGl0ZW0gIT09IFwiWExTWFwiKTtcclxuICAgIH1cclxuICAgIGlmIChfZGF0YS5FbmFibGVFeHBvcnRSVEYpIHtcclxuICAgICAgdGhpcy5oaWRlT3B0aW9ucyA9IHRoaXMuaGlkZU9wdGlvbnMuZmlsdGVyKGl0ZW0gPT4gaXRlbSAhPT0gXCJSVEZcIik7XHJcbiAgICB9XHJcbiAgICBpZiAoX2RhdGEuRW5hYmxlRXhwb3J0VElGRikge1xyXG4gICAgICB0aGlzLmhpZGVPcHRpb25zID0gdGhpcy5oaWRlT3B0aW9ucy5maWx0ZXIoaXRlbSA9PiBpdGVtICE9PSBcIklNQUdFXCIpO1xyXG4gICAgfVxyXG4gICAgaWYgKF9kYXRhLkVuYWJsZUV4cG9ydE1IVE1MKSB7XHJcbiAgICAgIHRoaXMuaGlkZU9wdGlvbnMgPSB0aGlzLmhpZGVPcHRpb25zLmZpbHRlcihpdGVtID0+IGl0ZW0gIT09IFwiTUhUTUxcIik7XHJcbiAgICB9XHJcbiAgICBpZiAoX2RhdGEuRW5hYmxlRXhwb3J0WFBTKSB7XHJcbiAgICAgIHRoaXMuaGlkZU9wdGlvbnMgPSB0aGlzLmhpZGVPcHRpb25zLmZpbHRlcihpdGVtID0+IGl0ZW0gIT09IFwiWFBTXCIpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGhpZGVVbndhbnRlZE9wdGlvbnMoKSB7XHJcbiAgICAvLyBzaG93IGFsbCBleHRlbnNpb25zXHJcbiAgICAkKCdbZGF0YS1jb21tYW5kLXBhcmFtZXRlcl0nKS5zaG93KCk7XHJcblxyXG4gICAgLy8gaGlkZSB0aGUgc3BlY2lmaWVkIGV4dGVuc2lvbnNcclxuICAgICQuZWFjaCh0aGlzLmhpZGVPcHRpb25zLCBmdW5jdGlvbiAoaW5kZXgsIGl0ZW0pIHtcclxuICAgICAgdmFyIGhpZGRlbk9wdGlvbiA9ICQoJ1tkYXRhLWNvbW1hbmQtcGFyYW1ldGVyPVwiJyArIGl0ZW0gKyAnXCJdJyk7XHJcbiAgICAgIGlmIChoaWRkZW5PcHRpb24gJiYgaGlkZGVuT3B0aW9uLmxlbmd0aCkge1xyXG4gICAgICAgIGhpZGRlbk9wdGlvbi5oaWRlKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlc2l6ZVZpZXdlcigpIHtcclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxufVxyXG4iXX0=
|