mmhglobal-dynamicform 2.40.0 → 3.0.0-beta
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 +0 -11
- package/fesm2022/mmhglobal-dynamicform.mjs +15336 -0
- package/fesm2022/mmhglobal-dynamicform.mjs.map +1 -0
- package/{mmhglobal-dynamicform.d.ts → index.d.ts} +5 -5
- package/lib/animations/component-animations.d.ts +3 -3
- package/lib/components/{buttonfieldbase.component.d.ts → base/buttonfieldbase.component.d.ts} +18 -26
- package/lib/components/{containerfieldbase.component.d.ts → base/containerfieldbase.component.d.ts} +20 -25
- package/lib/components/{datalistingfieldbase.component.d.ts → base/datalistingfieldbase.component.d.ts} +45 -51
- package/lib/components/{fieldbase.component.d.ts → base/fieldbase.component.d.ts} +49 -49
- package/lib/components/{inputfieldbase.component.d.ts → base/inputfieldbase.component.d.ts} +23 -27
- package/lib/{dropdown_buttons → components/button/dropdown_buttons}/dropdown_buttons.component.d.ts +15 -21
- package/lib/components/button/zbuttons/zbuttons.component.d.ts +19 -0
- package/lib/{zchip → components/button/zchip}/zchip.component.d.ts +22 -26
- package/lib/{zmfb → components/button/zmfb}/zmfb.component.d.ts +38 -43
- package/lib/components/button/zworkflowbuttons/zworkflowbuttons.component.d.ts +29 -0
- package/lib/{zchart → components/chart/zchart}/zchart.component.d.ts +73 -71
- package/lib/{zganttchart → components/chart/zganttchart}/zganttchart.component.d.ts +40 -40
- package/lib/{zgauge → components/chart/zgauge}/zgauge.component.d.ts +67 -63
- package/lib/{zprogressbar → components/chart/zprogressbar}/zprogressbar.component.d.ts +29 -30
- package/lib/{zreport → components/chart/zreport}/zreport.component.d.ts +47 -53
- package/lib/{zscheduler → components/chart/zscheduler}/zscheduler.component.d.ts +53 -52
- package/lib/{zscheduler → components/chart/zscheduler}/zscheduler.toolbar.component.d.ts +20 -20
- package/lib/{ztrendcard → components/chart/ztrendcard}/ztrendcard.component.d.ts +40 -36
- package/lib/components/container/kcard/kcard.component.d.ts +21 -0
- package/lib/{kscrollview → components/container/kscrollview}/kscrollview.component.d.ts +19 -20
- package/lib/{ksplitter → components/container/ksplitter}/ksplitter.component.d.ts +18 -19
- package/lib/{zcard → components/container/zcard}/zcard.component.d.ts +12 -17
- package/lib/components/container/zdiv/zdiv.component.d.ts +12 -0
- package/lib/{zdiv → components/container/zdiv}/zdiv.pipe.d.ts +7 -7
- package/lib/{zloop → components/container/zloop}/zloop.component.d.ts +21 -24
- package/lib/{ztab → components/container/ztab}/ztab.component.d.ts +34 -38
- package/lib/{ztab → components/container/ztab}/ztab.pipe.d.ts +7 -7
- package/lib/{zudf → components/container/zudf}/zudf.component.d.ts +208 -212
- package/lib/{virtual-scroll → components/data-listing/virtual-scroll}/virtual-scroll.component.d.ts +40 -45
- package/lib/{zgrid → components/data-listing/zgrid}/container/zgrid-container.component.d.ts +27 -31
- package/lib/{zgrid → components/data-listing/zgrid}/date-range-cell-filter.component.d.ts +20 -19
- package/lib/{zgrid → components/data-listing/zgrid}/zgrid.binding.directive.d.ts +174 -168
- package/lib/{zgrid → components/data-listing/zgrid}/zgrid.component.d.ts +187 -186
- package/lib/{zgrid → components/data-listing/zgrid}/zgrid.popup.anchor-target.directive.d.ts +8 -8
- package/lib/{zgrid → components/data-listing/zgrid}/zgrid.service.d.ts +27 -27
- package/lib/{ztree → components/data-listing/ztree}/ztree.component.d.ts +77 -78
- package/lib/{ztreelist → components/data-listing/ztreelist}/ztreelist.component.d.ts +100 -107
- package/lib/{sfdatetimepicker → components/input/sfdatetimepicker}/sfdatetimepicker.component.d.ts +26 -31
- package/lib/{sfquerybuilder → components/input/sfquerybuilder}/sfquerybuilder.component.d.ts +71 -73
- package/lib/{zcheckbox → components/input/zcheckbox}/zcheckbox.component.d.ts +18 -20
- package/lib/components/input/zcodeeditor/zcodeeditor.component.d.ts +43 -0
- package/lib/components/input/zcodeeditor/zcodeeditor.service.d.ts +32 -0
- package/lib/{zcolorpicker → components/input/zcolorpicker}/zcolorpicker.component.d.ts +19 -25
- package/lib/{zdatetime → components/input/zdatetime}/dateIonicFormatParser.pipe.d.ts +10 -10
- package/lib/{zdatetime → components/input/zdatetime}/dateIonicMinMaxDate.pipe.d.ts +7 -7
- package/lib/{zdatetime → components/input/zdatetime}/dateKendoFormatParser.pipe.d.ts +10 -10
- package/lib/{zdatetime → components/input/zdatetime}/dateParser.pipe.d.ts +11 -11
- package/lib/{zdatetime → components/input/zdatetime}/zdatetime.component.d.ts +32 -32
- package/lib/{zimg → components/input/zimg}/zimg.component.d.ts +16 -20
- package/lib/{zinput-container → components/input/zinput-container}/zinput-container.component.d.ts +31 -38
- package/lib/{zinput-container → components/input/zinput-container}/zinput-container.pipe.d.ts +25 -25
- package/lib/{zlabel → components/input/zlabel}/zlabel.component.d.ts +20 -26
- package/lib/{znumeric → components/input/znumeric}/znumeric.component.d.ts +29 -31
- package/lib/{znumeric → components/input/znumeric}/znumeric.component.pipe.d.ts +10 -10
- package/lib/{zpostselectinput → components/input/zpostselectinput}/zpostselectinput.component.d.ts +48 -65
- package/lib/{zselectmultiple → components/input/zselectmultiple}/zselectmultiple.component.d.ts +105 -123
- package/lib/{zselectmultiple → components/input/zselectmultiple}/zselectmultiple.directive.d.ts +12 -12
- package/lib/{zselectmultiple → components/input/zselectmultiple}/zselectmultiple.pipe.d.ts +11 -11
- package/lib/{ztext → components/input/ztext}/ztext.component.d.ts +33 -33
- package/lib/{ztextarea → components/input/ztextarea}/ztextarea.component.d.ts +21 -25
- package/lib/{ztexteditor → components/input/ztexteditor}/ztexteditor.component.d.ts +44 -42
- package/lib/{zupload → components/input/zupload}/zupload.component.d.ts +45 -50
- package/lib/{embed-components → components/menu}/context-menu/context-menu.component.d.ts +24 -28
- package/lib/{kmenu → components/menu/kmenu}/kmenu.component.d.ts +13 -14
- package/lib/components/others/zform/zform.component.d.ts +30 -0
- package/lib/components/others/zformcontrol/zformcontrol.component.d.ts +21 -0
- package/lib/components/others/zformcontrol/zformcontrol.service.d.ts +12 -0
- package/lib/components/others/zmodal/zmodal-component-helper.service.d.ts +15 -0
- package/lib/components/others/zmodal/zmodal.component.d.ts +24 -0
- package/lib/components/others/zmodal/zmodal.service.d.ts +25 -0
- package/lib/components/others/zunknown/zunknown.component.d.ts +10 -0
- package/lib/components/utility/e1-root/e1-root.component.d.ts +20 -0
- package/lib/components/utility/input-error-message/input-error-message.component.d.ts +14 -0
- package/lib/{embed-components → components/utility}/input-field-addons/input-field-addons.component.d.ts +18 -23
- package/lib/{embed-components → components/utility}/page-loader/page-loader.component.d.ts +8 -8
- package/lib/{embed-components → components/utility}/processing-record-loader/processing-record-loader.component.d.ts +8 -8
- package/lib/{embed-components → components/utility}/spinner/spinner.component.d.ts +12 -14
- package/lib/components/utility/uiappmenucontent/uiappmenucontent.component.d.ts +17 -0
- package/lib/{uibulletin → components/utility/uibulletin}/uibulletin.component.d.ts +31 -36
- package/lib/{uicontainer → components/utility/uicontainer}/uicontainer.component.d.ts +16 -19
- package/lib/components/utility/uicontent/uicontent.component.d.ts +21 -0
- package/lib/components/utility/uiheader/uiheader.component.d.ts +40 -0
- package/lib/{uipage → components/utility/uipage}/uipage.component.d.ts +18 -23
- package/lib/constants/constant.d.ts +3 -3
- package/lib/directives/elementcontainer.directive.d.ts +8 -8
- package/lib/interfaces/modal.interface.d.ts +4 -0
- package/lib/pipe/htmlSanitize.pipe.d.ts +10 -10
- package/lib/pipe/panel-area.pipe.d.ts +7 -7
- package/lib/services/main.service.d.ts +136 -142
- package/lib/services/zcomponent.debug.service.d.ts +289 -68
- package/lib/services/zcomponent.service.d.ts +31 -44
- package/package.json +6 -13
- package/public-api.d.ts +93 -100
- package/styles/all.scss +643 -0
- package/styles/component.scss +0 -0
- package/styles/notificationkit.scss +53 -0
- package/esm2020/lib/animations/component-animations.mjs +0 -39
- package/esm2020/lib/components/buttonfieldbase.component.mjs +0 -80
- package/esm2020/lib/components/containerfieldbase.component.mjs +0 -50
- package/esm2020/lib/components/datalistingfieldbase.component.mjs +0 -277
- package/esm2020/lib/components/fieldbase.component.mjs +0 -178
- package/esm2020/lib/components/inputfieldbase.component.mjs +0 -202
- package/esm2020/lib/constants/constant.mjs +0 -4
- package/esm2020/lib/directives/elementcontainer.directive.mjs +0 -16
- package/esm2020/lib/directives/fieldelement.directive.mjs +0 -16
- package/esm2020/lib/directives/scrollbar.theme.directive.mjs +0 -45
- package/esm2020/lib/dropdown_buttons/dropdown_buttons.component.mjs +0 -109
- package/esm2020/lib/embed-components/context-menu/context-menu.component.mjs +0 -113
- package/esm2020/lib/embed-components/input-field-addons/input-field-addons.component.mjs +0 -93
- package/esm2020/lib/embed-components/page-loader/page-loader.component.mjs +0 -14
- package/esm2020/lib/embed-components/processing-record-loader/processing-record-loader.component.mjs +0 -14
- package/esm2020/lib/embed-components/spinner/spinner.component.mjs +0 -27
- package/esm2020/lib/ficon/ficon.component.mjs +0 -53
- package/esm2020/lib/input-error-message/input-error-message.component.mjs +0 -53
- package/esm2020/lib/kcard/kcard.component.mjs +0 -90
- package/esm2020/lib/kmenu/kmenu.component.mjs +0 -46
- package/esm2020/lib/kscrollview/kscrollview.component.mjs +0 -77
- package/esm2020/lib/ksplitter/ksplitter.component.mjs +0 -67
- package/esm2020/lib/mmhglobal-dynamicform.module.mjs +0 -657
- package/esm2020/lib/pipe/htmlSanitize.pipe.mjs +0 -18
- package/esm2020/lib/pipe/panel-area.pipe.mjs +0 -28
- package/esm2020/lib/services/main.service.mjs +0 -1307
- package/esm2020/lib/services/zcomponent.debug.service.mjs +0 -742
- package/esm2020/lib/services/zcomponent.service.mjs +0 -300
- package/esm2020/lib/sfdatetimepicker/sfdatetimepicker.component.mjs +0 -108
- package/esm2020/lib/sfquerybuilder/sfquerybuilder.component.mjs +0 -501
- package/esm2020/lib/uiactionbutton/uiactionbutton.component.mjs +0 -229
- package/esm2020/lib/uiappmenucontent/uiappmenucontent.component.mjs +0 -55
- package/esm2020/lib/uibulletin/uibulletin.component.mjs +0 -96
- package/esm2020/lib/uicontainer/uicontainer.component.mjs +0 -41
- package/esm2020/lib/uicontent/uicontent.component.mjs +0 -63
- package/esm2020/lib/uiheader/uiheader.component.mjs +0 -116
- package/esm2020/lib/uiheader/uiheader.service.mjs +0 -27
- package/esm2020/lib/uimenubutton/uimenubutton.component.mjs +0 -36
- package/esm2020/lib/uimenucontent/uimenucontent.component.mjs +0 -38
- package/esm2020/lib/uipage/uipage.component.mjs +0 -160
- package/esm2020/lib/uivalidationmessage/uivalidationmessage.component.mjs +0 -40
- package/esm2020/lib/virtual-scroll/virtual-scroll.component.mjs +0 -249
- package/esm2020/lib/zbullet/zbullet.component.mjs +0 -77
- package/esm2020/lib/zbuttons/zbuttons.component.mjs +0 -151
- package/esm2020/lib/zcard/zcard.component.mjs +0 -36
- package/esm2020/lib/zchart/zchart.component.mjs +0 -222
- package/esm2020/lib/zcheckbox/zcheckbox.component.mjs +0 -42
- package/esm2020/lib/zchip/zchip.component.mjs +0 -119
- package/esm2020/lib/zcodeeditor/zcodeeditor.component.mjs +0 -169
- package/esm2020/lib/zcodeeditor/zcodeeditor.pipe.mjs +0 -60
- package/esm2020/lib/zcolorpicker/zcolorpicker.component.mjs +0 -47
- package/esm2020/lib/zdaterange/zdaterange.component.mjs +0 -72
- package/esm2020/lib/zdatetime/dateIonicFormatParser.pipe.mjs +0 -40
- package/esm2020/lib/zdatetime/dateIonicMinMaxDate.pipe.mjs +0 -22
- package/esm2020/lib/zdatetime/dateKendoFormatParser.pipe.mjs +0 -41
- package/esm2020/lib/zdatetime/dateParser.pipe.mjs +0 -36
- package/esm2020/lib/zdatetime/zdatetime.component.mjs +0 -134
- package/esm2020/lib/zdiv/zdiv.component.mjs +0 -79
- package/esm2020/lib/zdiv/zdiv.pipe.mjs +0 -31
- package/esm2020/lib/zform/zform.component.mjs +0 -188
- package/esm2020/lib/zformcontrol/zformcontrol.component.mjs +0 -51
- package/esm2020/lib/zganttchart/zganttchart.component.mjs +0 -160
- package/esm2020/lib/zgauge/zgauge.component.mjs +0 -122
- package/esm2020/lib/zgrid/container/zgrid-container.component.mjs +0 -107
- package/esm2020/lib/zgrid/date-range-cell-filter.component.mjs +0 -146
- package/esm2020/lib/zgrid/zgrid.binding.directive.mjs +0 -881
- package/esm2020/lib/zgrid/zgrid.component.mjs +0 -1131
- package/esm2020/lib/zgrid/zgrid.popup.anchor-target.directive.mjs +0 -17
- package/esm2020/lib/zgrid/zgrid.service.mjs +0 -113
- package/esm2020/lib/zimg/zimg.component.mjs +0 -61
- package/esm2020/lib/zinput-container/zinput-container.component.mjs +0 -91
- package/esm2020/lib/zinput-container/zinput-container.pipe.mjs +0 -132
- package/esm2020/lib/zlabel/zlabel.component.mjs +0 -52
- package/esm2020/lib/zloop/zloop.component.mjs +0 -123
- package/esm2020/lib/zmfb/zmfb.component.mjs +0 -217
- package/esm2020/lib/zmodal/zmodal-mobile.component.mjs +0 -124
- package/esm2020/lib/zmodal/zmodal.component.mjs +0 -129
- package/esm2020/lib/znumeric/znumeric.component.mjs +0 -110
- package/esm2020/lib/znumeric/znumeric.component.pipe.mjs +0 -19
- package/esm2020/lib/zpostselectinput/zpostselectinput.component.mjs +0 -315
- package/esm2020/lib/zprogressbar/zprogressbar.component.mjs +0 -61
- package/esm2020/lib/zradiobutton/zradiobutton.component.mjs +0 -106
- package/esm2020/lib/zreport/zreport.component.mjs +0 -184
- package/esm2020/lib/zscheduler/zscheduler.component.mjs +0 -271
- package/esm2020/lib/zscheduler/zscheduler.toolbar.component.mjs +0 -150
- package/esm2020/lib/zselectmultiple/zselectmultiple.component.mjs +0 -689
- package/esm2020/lib/zselectmultiple/zselectmultiple.directive.mjs +0 -35
- package/esm2020/lib/zselectmultiple/zselectmultiple.pipe.mjs +0 -29
- package/esm2020/lib/ztab/ztab.component.mjs +0 -211
- package/esm2020/lib/ztab/ztab.pipe.mjs +0 -28
- package/esm2020/lib/ztext/ztext.component.mjs +0 -167
- package/esm2020/lib/ztextarea/ztextarea.component.mjs +0 -66
- package/esm2020/lib/ztexteditor/ztexteditor.component.mjs +0 -135
- package/esm2020/lib/ztree/ztree.component.mjs +0 -539
- package/esm2020/lib/ztreelist/ztreelist.component.mjs +0 -546
- package/esm2020/lib/ztrendcard/ztrendcard.component.mjs +0 -106
- package/esm2020/lib/zudf/zudf.component.mjs +0 -1016
- package/esm2020/lib/zunknown/zunknown.component.mjs +0 -20
- package/esm2020/lib/zupload/zupload.component.mjs +0 -403
- package/esm2020/lib/zworkflowbuttons/zworkflowbuttons.component.mjs +0 -244
- package/esm2020/mmhglobal-dynamicform.mjs +0 -5
- package/esm2020/public-api.mjs +0 -107
- package/fesm2015/mmhglobal-dynamicform.mjs +0 -16119
- package/fesm2015/mmhglobal-dynamicform.mjs.map +0 -1
- package/fesm2020/mmhglobal-dynamicform.mjs +0 -16079
- package/fesm2020/mmhglobal-dynamicform.mjs.map +0 -1
- package/lib/directives/fieldelement.directive.d.ts +0 -8
- package/lib/directives/scrollbar.theme.directive.d.ts +0 -10
- package/lib/ficon/ficon.component.d.ts +0 -34
- package/lib/input-error-message/input-error-message.component.d.ts +0 -19
- package/lib/kcard/kcard.component.d.ts +0 -25
- package/lib/mmhglobal-dynamicform.module.d.ts +0 -133
- package/lib/uiactionbutton/uiactionbutton.component.d.ts +0 -39
- package/lib/uiappmenucontent/uiappmenucontent.component.d.ts +0 -27
- package/lib/uicontent/uicontent.component.d.ts +0 -29
- package/lib/uiheader/uiheader.component.d.ts +0 -39
- package/lib/uiheader/uiheader.service.d.ts +0 -11
- package/lib/uimenubutton/uimenubutton.component.d.ts +0 -20
- package/lib/uimenucontent/uimenucontent.component.d.ts +0 -24
- package/lib/uivalidationmessage/uivalidationmessage.component.d.ts +0 -21
- package/lib/zbullet/zbullet.component.d.ts +0 -27
- package/lib/zbuttons/zbuttons.component.d.ts +0 -25
- package/lib/zcodeeditor/zcodeeditor.component.d.ts +0 -43
- package/lib/zcodeeditor/zcodeeditor.pipe.d.ts +0 -12
- package/lib/zdaterange/zdaterange.component.d.ts +0 -29
- package/lib/zdiv/zdiv.component.d.ts +0 -22
- package/lib/zform/zform.component.d.ts +0 -38
- package/lib/zformcontrol/zformcontrol.component.d.ts +0 -25
- package/lib/zmodal/zmodal-mobile.component.d.ts +0 -38
- package/lib/zmodal/zmodal.component.d.ts +0 -44
- package/lib/zradiobutton/zradiobutton.component.d.ts +0 -34
- package/lib/zunknown/zunknown.component.d.ts +0 -17
- package/lib/zworkflowbuttons/zworkflowbuttons.component.d.ts +0 -32
|
@@ -1,222 +0,0 @@
|
|
|
1
|
-
/********** Angular **********/
|
|
2
|
-
import { Component } from "@angular/core";
|
|
3
|
-
/********** Ionic **********/
|
|
4
|
-
/********** Plugin **********/
|
|
5
|
-
// import { groupBy, GroupResult } from '@progress/kendo-data-query';
|
|
6
|
-
/********** Component & Service **********/
|
|
7
|
-
import { DataListingFieldBase } from "../components/datalistingfieldbase.component";
|
|
8
|
-
import { ZComponentHelper } from 'mmhglobal-zcore';
|
|
9
|
-
import * as i0 from "@angular/core";
|
|
10
|
-
import * as i1 from "../services/zcomponent.service";
|
|
11
|
-
import * as i2 from "@progress/kendo-angular-charts";
|
|
12
|
-
import * as i3 from "@angular/common";
|
|
13
|
-
import * as i4 from "../pipe/htmlSanitize.pipe";
|
|
14
|
-
export class ZchartComponent extends DataListingFieldBase {
|
|
15
|
-
// fieldElement01 = [{
|
|
16
|
-
// Name: 'chart01',
|
|
17
|
-
// Type: 'zchart',
|
|
18
|
-
// Options: 'group.chart01Options',
|
|
19
|
-
// DivClass: "col-md-12 col-md-6",
|
|
20
|
-
// Visible: true
|
|
21
|
-
// }];
|
|
22
|
-
// fieldElement02 = [{
|
|
23
|
-
// Name: 'chart01',
|
|
24
|
-
// Type: 'zchart',
|
|
25
|
-
// Title: 'Chart01 Title',
|
|
26
|
-
// RenderAs: 'svg',
|
|
27
|
-
// Pannable: true,
|
|
28
|
-
// Zoomable: true,
|
|
29
|
-
// Categories: 'group.chart01Categories',
|
|
30
|
-
// Max: 10,
|
|
31
|
-
// MaxDivisions: null,
|
|
32
|
-
// Rotation: 'auto',
|
|
33
|
-
// Series: 'group.chart01Series',
|
|
34
|
-
// DataType: 'bar',
|
|
35
|
-
// DataStyle: 'smooth',
|
|
36
|
-
// LegendPosition: 'bottom',
|
|
37
|
-
// LegendOrientation: 'horizonal',
|
|
38
|
-
// TooltipFormat: '{0}',
|
|
39
|
-
// AggregateType: 'sum',
|
|
40
|
-
// DataField: null,
|
|
41
|
-
// CategoryField: null,
|
|
42
|
-
// DivClass: "col-md-12 col-md-6",
|
|
43
|
-
// Visible: true
|
|
44
|
-
// }];
|
|
45
|
-
constructor(componentService) {
|
|
46
|
-
super(componentService);
|
|
47
|
-
this.componentService = componentService;
|
|
48
|
-
this.series = [];
|
|
49
|
-
// = [{
|
|
50
|
-
// type: '',
|
|
51
|
-
// style: 'smooth',
|
|
52
|
-
// name: 'India',
|
|
53
|
-
// data: [3.907, 7.943, 7.848, 9.284, 9.263, 9.801, 3.890, 8.238, 9.552, 6.855]
|
|
54
|
-
// }, {
|
|
55
|
-
// type: '',
|
|
56
|
-
// style: 'smooth',
|
|
57
|
-
// name: 'Russian Federation',
|
|
58
|
-
// data: [4.743, 7.295, 7.175, 6.376, 8.153, 8.535, 5.247, -7.832, 4.3, 4.3]
|
|
59
|
-
// }, {
|
|
60
|
-
// type: 'bar',
|
|
61
|
-
// style: 'smooth',
|
|
62
|
-
// name: 'Germany',
|
|
63
|
-
// data: [0.010, -0.375, 1.161, 0.684, 3.7, 3.269, 1.083, -5.127, 3.690, 2.995]
|
|
64
|
-
// }, {
|
|
65
|
-
// type: 'area',
|
|
66
|
-
// style: 'smooth',
|
|
67
|
-
// name: 'World',
|
|
68
|
-
// data: [1.988, 2.733, 3.994, 3.464, 4.001, 3.939, 1.333, -2.245, 4.339, 2.727]
|
|
69
|
-
// }];
|
|
70
|
-
this.categories = [];
|
|
71
|
-
// [2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011];
|
|
72
|
-
// Default values
|
|
73
|
-
this.options = {
|
|
74
|
-
title: '',
|
|
75
|
-
renderAs: 'canvas',
|
|
76
|
-
pannable: false,
|
|
77
|
-
zoomable: false,
|
|
78
|
-
categoryAxis: {
|
|
79
|
-
categories: this.categories,
|
|
80
|
-
max: 10,
|
|
81
|
-
maxDivisions: null,
|
|
82
|
-
labels: { rotation: 'auto' }
|
|
83
|
-
},
|
|
84
|
-
labels: {
|
|
85
|
-
visible: false,
|
|
86
|
-
background: "transparent"
|
|
87
|
-
},
|
|
88
|
-
series: this.series,
|
|
89
|
-
dataType: 'bar',
|
|
90
|
-
dataStyle: 'smooth',
|
|
91
|
-
legendPosition: 'bottom',
|
|
92
|
-
legendOrientation: 'horizontal',
|
|
93
|
-
tooltipFormat: '{0}%',
|
|
94
|
-
aggregateType: 'sum',
|
|
95
|
-
dataField: null,
|
|
96
|
-
categoryField: null,
|
|
97
|
-
color: '#05A2FE',
|
|
98
|
-
onRender: '',
|
|
99
|
-
onAxisLabelClick: '',
|
|
100
|
-
onLegendItemClick: '',
|
|
101
|
-
onLegendItemHover: '',
|
|
102
|
-
onPlotAreaClick: '',
|
|
103
|
-
onPlotAreaHover: '',
|
|
104
|
-
onSeriesClick: '',
|
|
105
|
-
onSeriesHover: '',
|
|
106
|
-
customTooltipFunc: '',
|
|
107
|
-
customTooltipOptions: { background: '#05A2FE' }
|
|
108
|
-
};
|
|
109
|
-
this.setData = (gData) => {
|
|
110
|
-
this.getFieldDeclarationForSetup(this.data);
|
|
111
|
-
};
|
|
112
|
-
}
|
|
113
|
-
ngOnInit() {
|
|
114
|
-
super.initComponent().subscribe(() => {
|
|
115
|
-
if (this.data.Options) {
|
|
116
|
-
const optionType = typeof (this.data.Options);
|
|
117
|
-
if (optionType === 'object') {
|
|
118
|
-
Object.assign(this.options, this.data.Options);
|
|
119
|
-
}
|
|
120
|
-
else if (optionType === 'string') {
|
|
121
|
-
const optionValue = ZComponentHelper.getGroupEvalValue.call(this, this.data.Options);
|
|
122
|
-
if (typeof (optionValue) === 'object') {
|
|
123
|
-
Object.assign(this.options, optionValue);
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
if (this.data.Options && this.data.Options.categoryAxis && this.data.Options.categoryAxis.categories && typeof (this.data.Options.categoryAxis.categories) === 'string') {
|
|
128
|
-
this.options.categoryAxis.categories =
|
|
129
|
-
ZComponentHelper.getGroupEvalValue.call(this, this.data.Options.categoryAxis.categories);
|
|
130
|
-
}
|
|
131
|
-
if (this.data.Options && this.data.Options.series && typeof (this.data.Options.series) === 'string') {
|
|
132
|
-
this.options.series =
|
|
133
|
-
ZComponentHelper.getGroupEvalValue.call(this, this.data.Options.series);
|
|
134
|
-
}
|
|
135
|
-
this.getFieldDeclarationForSetup(this.data);
|
|
136
|
-
this.isLoading = false;
|
|
137
|
-
});
|
|
138
|
-
}
|
|
139
|
-
ngAfterViewInit() {
|
|
140
|
-
this.componentService.decrementComponentCounterForField(this.data);
|
|
141
|
-
}
|
|
142
|
-
getFieldDeclarationForSetup(field) {
|
|
143
|
-
this.options.title = field.Title || this.options.title;
|
|
144
|
-
this.options.renderAs = field.RenderAs || this.options.renderAs;
|
|
145
|
-
this.options.pannable = field.Pannable || this.options.pannable;
|
|
146
|
-
this.options.zoomable = field.Zoomable || this.options.zoomable;
|
|
147
|
-
this.options.categoryAxis.categories = ZComponentHelper.getGroupEvalValue.call(this, field.Categories) || [];
|
|
148
|
-
this.options.categoryAxis.max = field.Max || this.options.categoryAxis.max;
|
|
149
|
-
this.options.categoryAxis.maxDivisions = field.MaxDivisions || this.options.categoryAxis.maxDivisions;
|
|
150
|
-
this.options.categoryAxis.labels.rotation = field.Rotation || this.options.categoryAxis.labels.rotation;
|
|
151
|
-
this.options.series = ZComponentHelper.getGroupEvalValue.call(this, field.Series) || [];
|
|
152
|
-
this.options.dataType = field.DataType || this.options.dataType;
|
|
153
|
-
this.options.dataStyle = field.DataStyle || this.options.dataStyle;
|
|
154
|
-
this.options.legendPosition = field.LegendPosition || this.options.legendPosition;
|
|
155
|
-
this.options.legendOrientation = field.LegendOrientation || this.options.legendOrientation;
|
|
156
|
-
this.options.tooltipFormat = field.TooltipFormat || this.options.tooltipFormat;
|
|
157
|
-
this.options.aggregateType = field.AggregateType || this.options.aggregateType;
|
|
158
|
-
this.options.dataField = field.DataField || this.options.dataField;
|
|
159
|
-
this.options.categoryField = field.CategoryField || this.options.categoryField;
|
|
160
|
-
this.options.customTooltipFunc = field[`CustomTooltipFunc`] || this.options.customTooltipFunc;
|
|
161
|
-
}
|
|
162
|
-
//#region Component Events
|
|
163
|
-
onRender(e) {
|
|
164
|
-
// console.log('render');
|
|
165
|
-
this.callComponentEvent(e, this.options.onRender);
|
|
166
|
-
}
|
|
167
|
-
onAxisLabelClick(e) {
|
|
168
|
-
// console.log('axisLabelClick', e);
|
|
169
|
-
this.callComponentEvent(e, this.options.onAxisLabelClick);
|
|
170
|
-
}
|
|
171
|
-
onLegendItemClick(e) {
|
|
172
|
-
// console.log('legendItemClick', e);
|
|
173
|
-
this.callComponentEvent(e, this.options.onLegendItemClick);
|
|
174
|
-
}
|
|
175
|
-
onLegendItemHover(e) {
|
|
176
|
-
// console.log('legendItemHover', e);
|
|
177
|
-
this.callComponentEvent(e, this.options.onLegendItemHover);
|
|
178
|
-
}
|
|
179
|
-
onPlotAreaClick(e) {
|
|
180
|
-
// console.log('plotAreaClick', e);
|
|
181
|
-
this.callComponentEvent(e, this.options.onPlotAreaClick);
|
|
182
|
-
}
|
|
183
|
-
onPlotAreaHover(e) {
|
|
184
|
-
// console.log('plotAreaHover', e);
|
|
185
|
-
this.callComponentEvent(e, this.options.onPlotAreaHover);
|
|
186
|
-
}
|
|
187
|
-
onSeriesClick(e) {
|
|
188
|
-
console.log('seriesClick', e);
|
|
189
|
-
const f = ZComponentHelper.getGroupEvalValue.call(this, this.data.OnItemClick);
|
|
190
|
-
if (typeof f === 'function') {
|
|
191
|
-
const callFunc = f.bind(this.group.ctrlScope);
|
|
192
|
-
return callFunc(e);
|
|
193
|
-
}
|
|
194
|
-
return;
|
|
195
|
-
}
|
|
196
|
-
onSeriesHover(e) {
|
|
197
|
-
this.callComponentEvent(e, this.options.onSeriesHover);
|
|
198
|
-
// console.log('seriesHover', e);
|
|
199
|
-
}
|
|
200
|
-
callComponentEvent(e, event) {
|
|
201
|
-
if (typeof event === 'function') {
|
|
202
|
-
const callFunc = event.bind(this.group.ctrlScope);
|
|
203
|
-
return callFunc(e);
|
|
204
|
-
}
|
|
205
|
-
const f = ZComponentHelper.getGroupEvalValue.call(this, event);
|
|
206
|
-
if (typeof f === 'function') {
|
|
207
|
-
const callFunc = f.bind(this.group.ctrlScope);
|
|
208
|
-
return callFunc(e);
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
//#endregion
|
|
212
|
-
getToolTip(value, category) {
|
|
213
|
-
return this.callComponentEvent({ value, category }, this.options.customTooltipFunc);
|
|
214
|
-
}
|
|
215
|
-
}
|
|
216
|
-
ZchartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: ZchartComponent, deps: [{ token: i1.ZComponentService }], target: i0.ɵɵFactoryTarget.Component });
|
|
217
|
-
ZchartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.3", type: ZchartComponent, selector: "app-zchart", usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"!isLoading && (!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\"\r\n class=\"e1tag-style\" [style]=\"componentProperties.style.style\">\r\n <kendo-chart [renderAs]=\"options.renderAs\" [pannable]=\"options.pannable\" [zoomable]=\"options.zoomable\"\r\n [categoryAxis]=\"options.categoryAxis\"\r\n (render)=\"onRender($event)\"\r\n (axisLabelClick)=\"onAxisLabelClick($event)\"\r\n (legendItemClick)=\"onLegendItemClick($event)\"\r\n (legendItemHover)=\"onLegendItemHover($event)\"\r\n (plotAreaClick)=\"onPlotAreaClick($event)\"\r\n (plotAreaHover)=\"onPlotAreaHover($event)\"\r\n (seriesClick)=\"onSeriesClick($event)\"\r\n (seriesHover)=\"onSeriesHover($event)\"\r\n class=\"e1tag-style1\" [style]=\"componentProperties.style.style1\">\r\n <kendo-chart-title *ngIf=\"options.title\" [text]=\"options.title\" class=\"e1tag-style2\" [style]=\"componentProperties.style.style2\"></kendo-chart-title>\r\n <kendo-chart-legend [position]=\"options.legendPosition\" [orientation]=\"options.legendOrientation\" class=\"e1tag-style3\" [style]=\"componentProperties.style.style3\"></kendo-chart-legend>\r\n <kendo-chart-tooltip [format]=\"options.tooltipFormat\" class=\"e1tag-style4\" [style]=\"componentProperties.style.style4\"></kendo-chart-tooltip>\r\n <kendo-chart-series class=\"e1tag-style5\" [style]=\"componentProperties.style.style5\">\r\n <kendo-chart-series-item *ngFor=\"let item of options.series\"\r\n [aggregate]=\"options.aggregateType\"\r\n [type]=\"item.type || options.dataType\" [style]=\"item.style || options.dataStyle\"\r\n [color]=\"item.color || options.color\"\r\n [labels]=\"item.labels || options.labels\"\r\n [field]=\"options.dataField\" [categoryField]=\"options.categoryField\"\r\n [data]=\"item.data\" [name]=\"item.name\">\r\n <kendo-chart-series-item-tooltip kendoChartSeriesTooltipTemplate *ngIf=\"options.customTooltipFunc\" [background]=\"options.customTooltipOptions.background\">\r\n <ng-template let-value=\"value\" let-category=\"category\">\r\n <div [innerHTML]=\"getToolTip(value, category) | htmlSanitize\" class=\"e1tag-style6\" [style]=\"componentProperties.style.style6\"></div>\r\n </ng-template>\r\n </kendo-chart-series-item-tooltip>\r\n </kendo-chart-series-item>\r\n </kendo-chart-series>\r\n </kendo-chart>\r\n</div>\r\n", styles: [""], components: [{ type: i2.ChartComponent, selector: "kendo-chart", inputs: ["pannable", "renderAs", "seriesColors", "subtitle", "title", "transitions", "zoomable", "axisDefaults", "categoryAxis", "chartArea", "legend", "panes", "paneDefaults", "plotArea", "series", "seriesDefaults", "tooltip", "valueAxis", "xAxis", "yAxis", "resizeRateLimit", "popupSettings"], outputs: ["axisLabelClick", "drag", "dragEnd", "dragStart", "legendItemHover", "legendItemLeave", "noteClick", "noteHover", "noteLeave", "paneRender", "plotAreaClick", "plotAreaHover", "plotAreaLeave", "render", "select", "selectEnd", "selectStart", "seriesClick", "seriesHover", "seriesOver", "seriesLeave", "zoom", "zoomEnd", "zoomStart", "legendItemClick"], exportAs: ["kendoChart"] }, { type: i2.TitleComponent, selector: "kendo-chart-title", inputs: ["align", "background", "border", "color", "font", "margin", "padding", "position", "text", "visible"] }, { type: i2.LegendComponent, selector: "kendo-chart-legend", inputs: ["align", "background", "border", "height", "labels", "margin", "offsetX", "offsetY", "orientation", "padding", "position", "reverse", "visible", "width", "markers", "spacing", "inactiveItems", "item", "title"] }, { type: i2.TooltipComponent, selector: "kendo-chart-tooltip", inputs: ["background", "border", "color", "font", "format", "opacity", "padding", "shared", "visible"] }, { type: i2.SeriesComponent, selector: "kendo-chart-series" }, { type: i2.SeriesItemComponent, selector: "kendo-chart-series-item", inputs: ["aggregate", "autoFit", "axis", "border", "categoryAxis", "categoryField", "closeField", "color", "colorField", "connectors", "currentField", "dashType", "data", "downColor", "downColorField", "dynamicHeight", "dynamicSlope", "errorHighField", "errorLowField", "explodeField", "field", "fromField", "gap", "highField", "holeSize", "line", "lowField", "lowerField", "margin", "maxSize", "mean", "meanField", "median", "medianField", "minSize", "missingValues", "name", "neckRatio", "negativeColor", "negativeValues", "noteTextField", "opacity", "openField", "outliersField", "overlay", "padding", "q1Field", "q3Field", "segmentSpacing", "size", "sizeField", "spacing", "stack", "startAngle", "style", "summaryField", "target", "toField", "type", "upperField", "visible", "visibleInLegend", "visibleInLegendField", "visual", "width", "whiskers", "xAxis", "xErrorHighField", "xErrorLowField", "xField", "yAxis", "yErrorHighField", "yErrorLowField", "yField", "zIndex", "errorBars", "extremes", "highlight", "labels", "markers", "notes", "outliers", "tooltip"] }, { type: i2.SeriesTooltipComponent, selector: "kendo-chart-series-item-tooltip", inputs: ["background", "border", "color", "font", "format", "padding", "visible"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.SeriesTooltipTemplateDirective, selector: "[kendoChartSeriesTooltipTemplate]" }], pipes: { "htmlSanitize": i4.HtmlSanitizePipe } });
|
|
218
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: ZchartComponent, decorators: [{
|
|
219
|
-
type: Component,
|
|
220
|
-
args: [{ selector: 'app-zchart', template: "<div *ngIf=\"!isLoading && (!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\"\r\n class=\"e1tag-style\" [style]=\"componentProperties.style.style\">\r\n <kendo-chart [renderAs]=\"options.renderAs\" [pannable]=\"options.pannable\" [zoomable]=\"options.zoomable\"\r\n [categoryAxis]=\"options.categoryAxis\"\r\n (render)=\"onRender($event)\"\r\n (axisLabelClick)=\"onAxisLabelClick($event)\"\r\n (legendItemClick)=\"onLegendItemClick($event)\"\r\n (legendItemHover)=\"onLegendItemHover($event)\"\r\n (plotAreaClick)=\"onPlotAreaClick($event)\"\r\n (plotAreaHover)=\"onPlotAreaHover($event)\"\r\n (seriesClick)=\"onSeriesClick($event)\"\r\n (seriesHover)=\"onSeriesHover($event)\"\r\n class=\"e1tag-style1\" [style]=\"componentProperties.style.style1\">\r\n <kendo-chart-title *ngIf=\"options.title\" [text]=\"options.title\" class=\"e1tag-style2\" [style]=\"componentProperties.style.style2\"></kendo-chart-title>\r\n <kendo-chart-legend [position]=\"options.legendPosition\" [orientation]=\"options.legendOrientation\" class=\"e1tag-style3\" [style]=\"componentProperties.style.style3\"></kendo-chart-legend>\r\n <kendo-chart-tooltip [format]=\"options.tooltipFormat\" class=\"e1tag-style4\" [style]=\"componentProperties.style.style4\"></kendo-chart-tooltip>\r\n <kendo-chart-series class=\"e1tag-style5\" [style]=\"componentProperties.style.style5\">\r\n <kendo-chart-series-item *ngFor=\"let item of options.series\"\r\n [aggregate]=\"options.aggregateType\"\r\n [type]=\"item.type || options.dataType\" [style]=\"item.style || options.dataStyle\"\r\n [color]=\"item.color || options.color\"\r\n [labels]=\"item.labels || options.labels\"\r\n [field]=\"options.dataField\" [categoryField]=\"options.categoryField\"\r\n [data]=\"item.data\" [name]=\"item.name\">\r\n <kendo-chart-series-item-tooltip kendoChartSeriesTooltipTemplate *ngIf=\"options.customTooltipFunc\" [background]=\"options.customTooltipOptions.background\">\r\n <ng-template let-value=\"value\" let-category=\"category\">\r\n <div [innerHTML]=\"getToolTip(value, category) | htmlSanitize\" class=\"e1tag-style6\" [style]=\"componentProperties.style.style6\"></div>\r\n </ng-template>\r\n </kendo-chart-series-item-tooltip>\r\n </kendo-chart-series-item>\r\n </kendo-chart-series>\r\n </kendo-chart>\r\n</div>\r\n", styles: [""] }]
|
|
221
|
-
}], ctorParameters: function () { return [{ type: i1.ZComponentService }]; } });
|
|
222
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiemNoYXJ0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21taGdsb2JhbC1keW5hbWljZm9ybS9zcmMvbGliL3pjaGFydC96Y2hhcnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvemNoYXJ0L3pjaGFydC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQkFBK0I7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUVsRCw2QkFBNkI7QUFFN0IsOEJBQThCO0FBQzlCLHFFQUFxRTtBQUVyRSwyQ0FBMkM7QUFDM0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFFcEYsT0FBTyxFQUFjLGdCQUFnQixFQUFVLE1BQU0saUJBQWlCLENBQUM7Ozs7OztBQVN2RSxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxvQkFBb0I7SUFpRXZELHNCQUFzQjtJQUN0QixxQkFBcUI7SUFDckIsb0JBQW9CO0lBQ3BCLHFDQUFxQztJQUNyQyxvQ0FBb0M7SUFDcEMsa0JBQWtCO0lBQ2xCLE1BQU07SUFFTixzQkFBc0I7SUFDdEIscUJBQXFCO0lBQ3JCLG9CQUFvQjtJQUNwQiw0QkFBNEI7SUFDNUIscUJBQXFCO0lBQ3JCLG9CQUFvQjtJQUNwQixvQkFBb0I7SUFDcEIsMkNBQTJDO0lBQzNDLGFBQWE7SUFDYix3QkFBd0I7SUFDeEIsc0JBQXNCO0lBQ3RCLG1DQUFtQztJQUNuQyxxQkFBcUI7SUFDckIseUJBQXlCO0lBQ3pCLDhCQUE4QjtJQUM5QixvQ0FBb0M7SUFDcEMsMEJBQTBCO0lBQzFCLDBCQUEwQjtJQUMxQixxQkFBcUI7SUFDckIseUJBQXlCO0lBQ3pCLG9DQUFvQztJQUNwQyxrQkFBa0I7SUFDbEIsTUFBTTtJQUVOLFlBQ1MsZ0JBQW1DO1FBRTFD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L1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG4vKioqKioqKioqKiBJb25pYyAqKioqKioqKioqL1xyXG5cclxuLyoqKioqKioqKiogUGx1Z2luICoqKioqKioqKiovXHJcbi8vIGltcG9ydCB7IGdyb3VwQnksIEdyb3VwUmVzdWx0IH0gZnJvbSAnQHByb2dyZXNzL2tlbmRvLWRhdGEtcXVlcnknO1xyXG5cclxuLyoqKioqKioqKiogQ29tcG9uZW50ICYgU2VydmljZSAqKioqKioqKioqL1xyXG5pbXBvcnQgeyBEYXRhTGlzdGluZ0ZpZWxkQmFzZSB9IGZyb20gXCIuLi9jb21wb25lbnRzL2RhdGFsaXN0aW5nZmllbGRiYXNlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBaQ29tcG9uZW50U2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy96Y29tcG9uZW50LnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgWkNvbXBvbmVudCwgWkNvbXBvbmVudEhlbHBlciwgWkZpZWxkIH0gZnJvbSAnbW1oZ2xvYmFsLXpjb3JlJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC16Y2hhcnQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi96Y2hhcnQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3pjaGFydC5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIFpjaGFydENvbXBvbmVudCBleHRlbmRzIERhdGFMaXN0aW5nRmllbGRCYXNlIGltcGxlbWVudHMgWkNvbXBvbmVudCwgT25Jbml0IHtcclxuICBwcml2YXRlIHNlcmllczogYW55W10gPSBbXTtcclxuICAvLyAgPSBbe1xyXG4gIC8vICAgdHlwZTogJycsXHJcbiAgLy8gICBzdHlsZTogJ3Ntb290aCcsXHJcbiAgLy8gICBuYW1lOiAnSW5kaWEnLFxyXG4gIC8vICAgZGF0YTogWzMuOTA3LCA3Ljk0MywgNy44NDgsIDkuMjg0LCA5LjI2MywgOS44MDEsIDMuODkwLCA4LjIzOCwgOS41NTIsIDYuODU1XVxyXG4gIC8vIH0sIHtcclxuICAvLyAgIHR5cGU6ICcnLFxyXG4gIC8vICAgc3R5bGU6ICdzbW9vdGgnLFxyXG4gIC8vICAgbmFtZTogJ1J1c3NpYW4gRmVkZXJhdGlvbicsXHJcbiAgLy8gICBkYXRhOiBbNC43NDMsIDcuMjk1LCA3LjE3NSwgNi4zNzYsIDguMTUzLCA4LjUzNSwgNS4yNDcsIC03LjgzMiwgNC4zLCA0LjNdXHJcbiAgLy8gfSwge1xyXG4gIC8vICAgdHlwZTogJ2JhcicsXHJcbiAgLy8gICBzdHlsZTogJ3Ntb290aCcsXHJcbiAgLy8gICBuYW1lOiAnR2VybWFueScsXHJcbiAgLy8gICBkYXRhOiBbMC4wMTAsIC0wLjM3NSwgMS4xNjEsIDAuNjg0LCAzLjcsIDMuMjY5LCAxLjA4MywgLTUuMTI3LCAzLjY5MCwgMi45OTVdXHJcbiAgLy8gfSwge1xyXG4gIC8vICAgdHlwZTogJ2FyZWEnLFxyXG4gIC8vICAgc3R5bGU6ICdzbW9vdGgnLFxyXG4gIC8vICAgbmFtZTogJ1dvcmxkJyxcclxuICAvLyAgIGRhdGE6IFsxLjk4OCwgMi43MzMsIDMuOTk0LCAzLjQ2NCwgNC4wMDEsIDMuOTM5LCAxLjMzMywgLTIuMjQ1LCA0LjMzOSwgMi43MjddXHJcbiAgLy8gfV07XHJcblxyXG4gIHByaXZhdGUgY2F0ZWdvcmllcyA9IFtdO1xyXG4gIC8vIFsyMDAyLCAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwLCAyMDExXTtcclxuXHJcbiAgLy8gRGVmYXVsdCB2YWx1ZXNcclxuICBwdWJsaWMgb3B0aW9ucyA9IHtcclxuICAgIHRpdGxlOiAnJyxcclxuICAgIHJlbmRlckFzOiAnY2FudmFzJywgIC8vIHN2Z1xyXG4gICAgcGFubmFibGU6IGZhbHNlLFxyXG4gICAgem9vbWFibGU6IGZhbHNlLFxyXG4gICAgY2F0ZWdvcnlBeGlzOiB7XHJcbiAgICAgIGNhdGVnb3JpZXM6IHRoaXMuY2F0ZWdvcmllcyxcclxuICAgICAgbWF4OiAxMCxcclxuICAgICAgbWF4RGl2aXNpb25zOiBudWxsLFxyXG4gICAgICBsYWJlbHM6IHsgcm90YXRpb246ICdhdXRvJyB9XHJcbiAgICB9LFxyXG4gICAgbGFiZWxzOiB7XHJcbiAgICAgIHZpc2libGU6IGZhbHNlLFxyXG4gICAgICBiYWNrZ3JvdW5kOiBcInRyYW5zcGFyZW50XCJcclxuICAgIH0sXHJcbiAgICBzZXJpZXM6IHRoaXMuc2VyaWVzLFxyXG4gICAgZGF0YVR5cGU6ICdiYXInLFxyXG4gICAgZGF0YVN0eWxlOiAnc21vb3RoJyxcclxuICAgIGxlZ2VuZFBvc2l0aW9uOiAnYm90dG9tJyxcclxuICAgIGxlZ2VuZE9yaWVudGF0aW9uOiAnaG9yaXpvbnRhbCcsXHJcbiAgICB0b29sdGlwRm9ybWF0OiAnezB9JScsXHJcbiAgICBhZ2dyZWdhdGVUeXBlOiAnc3VtJyxcclxuICAgIGRhdGFGaWVsZDogbnVsbCxcclxuICAgIGNhdGVnb3J5RmllbGQ6IG51bGwsXHJcbiAgICBjb2xvcjogJyMwNUEyRkUnLFxyXG4gICAgb25SZW5kZXI6ICcnLFxyXG4gICAgb25BeGlzTGFiZWxDbGljazogJycsXHJcbiAgICBvbkxlZ2VuZEl0ZW1DbGljazogJycsXHJcbiAgICBvbkxlZ2VuZEl0ZW1Ib3ZlcjogJycsXHJcbiAgICBvblBsb3RBcmVhQ2xpY2s6ICcnLFxyXG4gICAgb25QbG90QXJlYUhvdmVyOiAnJyxcclxuICAgIG9uU2VyaWVzQ2xpY2s6ICcnLFxyXG4gICAgb25TZXJpZXNIb3ZlcjogJycsXHJcbiAgICBjdXN0b21Ub29sdGlwRnVuYzogJycsXHJcbiAgICBjdXN0b21Ub29sdGlwT3B0aW9uczogeyBiYWNrZ3JvdW5kOiAnIzA1QTJGRScgfVxyXG4gIH07XHJcblxyXG4gIC8vIGZpZWxkRWxlbWVudDAxID0gW3tcclxuICAvLyAgIE5hbWU6ICdjaGFydDAxJyxcclxuICAvLyAgIFR5cGU6ICd6Y2hhcnQnLFxyXG4gIC8vICAgT3B0aW9uczogJ2dyb3VwLmNoYXJ0MDFPcHRpb25zJyxcclxuICAvLyAgIERpdkNsYXNzOiBcImNvbC1tZC0xMiBjb2wtbWQtNlwiLFxyXG4gIC8vICAgVmlzaWJsZTogdHJ1ZVxyXG4gIC8vIH1dO1xyXG5cclxuICAvLyBmaWVsZEVsZW1lbnQwMiA9IFt7XHJcbiAgLy8gICBOYW1lOiAnY2hhcnQwMScsXHJcbiAgLy8gICBUeXBlOiAnemNoYXJ0JyxcclxuICAvLyAgIFRpdGxlOiAnQ2hhcnQwMSBUaXRsZScsXHJcbiAgLy8gICBSZW5kZXJBczogJ3N2ZycsXHJcbiAgLy8gICBQYW5uYWJsZTogdHJ1ZSxcclxuICAvLyAgIFpvb21hYmxlOiB0cnVlLFxyXG4gIC8vICAgQ2F0ZWdvcmllczogJ2dyb3VwLmNoYXJ0MDFDYXRlZ29yaWVzJyxcclxuICAvLyAgIE1heDogMTAsXHJcbiAgLy8gICBNYXhEaXZpc2lvbnM6IG51bGwsXHJcbiAgLy8gICBSb3RhdGlvbjogJ2F1dG8nLFxyXG4gIC8vICAgU2VyaWVzOiAnZ3JvdXAuY2hhcnQwMVNlcmllcycsXHJcbiAgLy8gICBEYXRhVHlwZTogJ2JhcicsXHJcbiAgLy8gICBEYXRhU3R5bGU6ICdzbW9vdGgnLFxyXG4gIC8vICAgTGVnZW5kUG9zaXRpb246ICdib3R0b20nLFxyXG4gIC8vICAgTGVnZW5kT3JpZW50YXRpb246ICdob3Jpem9uYWwnLFxyXG4gIC8vICAgVG9vbHRpcEZvcm1hdDogJ3swfScsXHJcbiAgLy8gICBBZ2dyZWdhdGVUeXBlOiAnc3VtJyxcclxuICAvLyAgIERhdGFGaWVsZDogbnVsbCxcclxuICAvLyAgIENhdGVnb3J5RmllbGQ6IG51bGwsXHJcbiAgLy8gICBEaXZDbGFzczogXCJjb2wtbWQtMTIgY29sLW1kLTZcIixcclxuICAvLyAgIFZpc2libGU6IHRydWVcclxuICAvLyB9XTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgY29tcG9uZW50U2VydmljZTogWkNvbXBvbmVudFNlcnZpY2VcclxuICApIHtcclxuICAgIHN1cGVyKGNvbXBvbmVudFNlcnZpY2UpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBzdXBlci5pbml0Q29tcG9uZW50KCkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgaWYgKHRoaXMuZGF0YS5PcHRpb25zKSB7XHJcbiAgICAgICAgY29uc3Qgb3B0aW9uVHlwZSA9IHR5cGVvZiAodGhpcy5kYXRhLk9wdGlvbnMpO1xyXG4gICAgICAgIGlmIChvcHRpb25UeXBlID09PSAnb2JqZWN0Jykge1xyXG4gICAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLm9wdGlvbnMsIHRoaXMuZGF0YS5PcHRpb25zKTtcclxuICAgICAgICB9IGVsc2UgaWYgKG9wdGlvblR5cGUgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgICBjb25zdCBvcHRpb25WYWx1ZSA9IFpDb21wb25lbnRIZWxwZXIuZ2V0R3JvdXBFdmFsVmFsdWUuY2FsbCh0aGlzLCB0aGlzLmRhdGEuT3B0aW9ucyk7XHJcbiAgICAgICAgICBpZiAodHlwZW9mIChvcHRpb25WYWx1ZSkgPT09ICdvYmplY3QnKSB7XHJcbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5vcHRpb25zLCBvcHRpb25WYWx1ZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAodGhpcy5kYXRhLk9wdGlvbnMgJiYgdGhpcy5kYXRhLk9wdGlvbnMuY2F0ZWdvcnlBeGlzICYmIHRoaXMuZGF0YS5PcHRpb25zLmNhdGVnb3J5QXhpcy5jYXRlZ29yaWVzICYmIHR5cGVvZiAodGhpcy5kYXRhLk9wdGlvbnMuY2F0ZWdvcnlBeGlzLmNhdGVnb3JpZXMpID09PSAnc3RyaW5nJykge1xyXG4gICAgICAgIHRoaXMub3B0aW9ucy5jYXRlZ29yeUF4aXMuY2F0ZWdvcmllcyA9XHJcbiAgICAgICAgICBaQ29tcG9uZW50SGVscGVyLmdldEdyb3VwRXZhbFZhbHVlLmNhbGwodGhpcywgdGhpcy5kYXRhLk9wdGlvbnMuY2F0ZWdvcnlBeGlzLmNhdGVnb3JpZXMpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAodGhpcy5kYXRhLk9wdGlvbnMgJiYgdGhpcy5kYXRhLk9wdGlvbnMuc2VyaWVzICYmIHR5cGVvZiAodGhpcy5kYXRhLk9wdGlvbnMuc2VyaWVzKSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICB0aGlzLm9wdGlvbnMuc2VyaWVzID1cclxuICAgICAgICAgIFpDb21wb25lbnRIZWxwZXIuZ2V0R3JvdXBFdmFsVmFsdWUuY2FsbCh0aGlzLCB0aGlzLmRhdGEuT3B0aW9ucy5zZXJpZXMpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLmdldEZpZWxkRGVjbGFyYXRpb25Gb3JTZXR1cCh0aGlzLmRhdGEpO1xyXG4gICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLmNvbXBvbmVudFNlcnZpY2UuZGVjcmVtZW50Q29tcG9uZW50Q291bnRlckZvckZpZWxkKHRoaXMuZGF0YSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEZpZWxkRGVjbGFyYXRpb25Gb3JTZXR1cChmaWVsZDogWkZpZWxkKSB7XHJcbiAgICB0aGlzLm9wdGlvbnMudGl0bGUgPSBmaWVsZC5UaXRsZSB8fCB0aGlzLm9wdGlvbnMudGl0bGU7XHJcbiAgICB0aGlzLm9wdGlvbnMucmVuZGVyQXMgPSBmaWVsZC5SZW5kZXJBcyB8fCB0aGlzLm9wdGlvbnMucmVuZGVyQXM7XHJcbiAgICB0aGlzLm9wdGlvbnMucGFubmFibGUgPSBmaWVsZC5QYW5uYWJsZSB8fCB0aGlzLm9wdGlvbnMucGFubmFibGU7XHJcbiAgICB0aGlzLm9wdGlvbnMuem9vbWFibGUgPSBmaWVsZC5ab29tYWJsZSB8fCB0aGlzLm9wdGlvbnMuem9vbWFibGU7XHJcbiAgICB0aGlzLm9wdGlvbnMuY2F0ZWdvcnlBeGlzLmNhdGVnb3JpZXMgPSBaQ29tcG9uZW50SGVscGVyLmdldEdyb3VwRXZhbFZhbHVlLmNhbGwodGhpcywgZmllbGQuQ2F0ZWdvcmllcykgfHwgW107XHJcbiAgICB0aGlzLm9wdGlvbnMuY2F0ZWdvcnlBeGlzLm1heCA9IGZpZWxkLk1heCB8fCB0aGlzLm9wdGlvbnMuY2F0ZWdvcnlBeGlzLm1heDtcclxuICAgIHRoaXMub3B0aW9ucy5jYXRlZ29yeUF4aXMubWF4RGl2aXNpb25zID0gZmllbGQuTWF4RGl2aXNpb25zIHx8IHRoaXMub3B0aW9ucy5jYXRlZ29yeUF4aXMubWF4RGl2aXNpb25zO1xyXG4gICAgdGhpcy5vcHRpb25zLmNhdGVnb3J5QXhpcy5sYWJlbHMucm90YXRpb24gPSBmaWVsZC5Sb3RhdGlvbiB8fCB0aGlzLm9wdGlvbnMuY2F0ZWdvcnlBeGlzLmxhYmVscy5yb3RhdGlvbjtcclxuICAgIHRoaXMub3B0aW9ucy5zZXJpZXMgPSBaQ29tcG9uZW50SGVscGVyLmdldEdyb3VwRXZhbFZhbHVlLmNhbGwodGhpcywgZmllbGQuU2VyaWVzKSB8fCBbXTtcclxuICAgIHRoaXMub3B0aW9ucy5kYXRhVHlwZSA9IGZpZWxkLkRhdGFUeXBlIHx8IHRoaXMub3B0aW9ucy5kYXRhVHlwZTtcclxuICAgIHRoaXMub3B0aW9ucy5kYXRhU3R5bGUgPSBmaWVsZC5EYXRhU3R5bGUgfHwgdGhpcy5vcHRpb25zLmRhdGFTdHlsZTtcclxuICAgIHRoaXMub3B0aW9ucy5sZWdlbmRQb3NpdGlvbiA9IGZpZWxkLkxlZ2VuZFBvc2l0aW9uIHx8IHRoaXMub3B0aW9ucy5sZWdlbmRQb3NpdGlvbjtcclxuICAgIHRoaXMub3B0aW9ucy5sZWdlbmRPcmllbnRhdGlvbiA9IGZpZWxkLkxlZ2VuZE9yaWVudGF0aW9uIHx8IHRoaXMub3B0aW9ucy5sZWdlbmRPcmllbnRhdGlvbjtcclxuICAgIHRoaXMub3B0aW9ucy50b29sdGlwRm9ybWF0ID0gZmllbGQuVG9vbHRpcEZvcm1hdCB8fCB0aGlzLm9wdGlvbnMudG9vbHRpcEZvcm1hdDtcclxuICAgIHRoaXMub3B0aW9ucy5hZ2dyZWdhdGVUeXBlID0gZmllbGQuQWdncmVnYXRlVHlwZSB8fCB0aGlzLm9wdGlvbnMuYWdncmVnYXRlVHlwZTtcclxuICAgIHRoaXMub3B0aW9ucy5kYXRhRmllbGQgPSBmaWVsZC5EYXRhRmllbGQgfHwgdGhpcy5vcHRpb25zLmRhdGFGaWVsZDtcclxuICAgIHRoaXMub3B0aW9ucy5jYXRlZ29yeUZpZWxkID0gZmllbGQuQ2F0ZWdvcnlGaWVsZCB8fCB0aGlzLm9wdGlvbnMuY2F0ZWdvcnlGaWVsZDtcclxuICAgIHRoaXMub3B0aW9ucy5jdXN0b21Ub29sdGlwRnVuYyA9IGZpZWxkW2BDdXN0b21Ub29sdGlwRnVuY2BdIHx8IHRoaXMub3B0aW9ucy5jdXN0b21Ub29sdGlwRnVuYztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXREYXRhID0gKGdEYXRhOiBhbnkpID0+IHtcclxuICAgIHRoaXMuZ2V0RmllbGREZWNsYXJhdGlvbkZvclNldHVwKHRoaXMuZGF0YSk7XHJcbiAgfVxyXG5cclxuICAvLyNyZWdpb24gQ29tcG9uZW50IEV2ZW50c1xyXG4gIHB1YmxpYyBvblJlbmRlcihlKTogdm9pZCB7XHJcbiAgICAvLyBjb25zb2xlLmxvZygncmVuZGVyJyk7XHJcbiAgICB0aGlzLmNhbGxDb21wb25lbnRFdmVudChlLCB0aGlzLm9wdGlvbnMub25SZW5kZXIpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uQXhpc0xhYmVsQ2xpY2soZSk6IHZvaWQge1xyXG4gICAgLy8gY29uc29sZS5sb2coJ2F4aXNMYWJlbENsaWNrJywgZSk7XHJcbiAgICB0aGlzLmNhbGxDb21wb25lbnRFdmVudChlLCB0aGlzLm9wdGlvbnMub25BeGlzTGFiZWxDbGljayk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25MZWdlbmRJdGVtQ2xpY2soZSk6IHZvaWQge1xyXG4gICAgLy8gY29uc29sZS5sb2coJ2xlZ2VuZEl0ZW1DbGljaycsIGUpO1xyXG4gICAgdGhpcy5jYWxsQ29tcG9uZW50RXZlbnQoZSwgdGhpcy5vcHRpb25zLm9uTGVnZW5kSXRlbUNsaWNrKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkxlZ2VuZEl0ZW1Ib3ZlcihlKTogdm9pZCB7XHJcbiAgICAvLyBjb25zb2xlLmxvZygnbGVnZW5kSXRlbUhvdmVyJywgZSk7XHJcbiAgICB0aGlzLmNhbGxDb21wb25lbnRFdmVudChlLCB0aGlzLm9wdGlvbnMub25MZWdlbmRJdGVtSG92ZXIpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uUGxvdEFyZWFDbGljayhlKTogdm9pZCB7XHJcbiAgICAvLyBjb25zb2xlLmxvZygncGxvdEFyZWFDbGljaycsIGUpO1xyXG4gICAgdGhpcy5jYWxsQ29tcG9uZW50RXZlbnQoZSwgdGhpcy5vcHRpb25zLm9uUGxvdEFyZWFDbGljayk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25QbG90QXJlYUhvdmVyKGUpOiB2b2lkIHtcclxuICAgIC8vIGNvbnNvbGUubG9nKCdwbG90QXJlYUhvdmVyJywgZSk7XHJcbiAgICB0aGlzLmNhbGxDb21wb25lbnRFdmVudChlLCB0aGlzLm9wdGlvbnMub25QbG90QXJlYUhvdmVyKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvblNlcmllc0NsaWNrKGUpOiB2b2lkIHtcclxuICAgIGNvbnNvbGUubG9nKCdzZXJpZXNDbGljaycsIGUpO1xyXG4gICAgY29uc3QgZiA9IFpDb21wb25lbnRIZWxwZXIuZ2V0R3JvdXBFdmFsVmFsdWUuY2FsbCh0aGlzLCB0aGlzLmRhdGEuT25JdGVtQ2xpY2spO1xyXG4gICAgaWYgKHR5cGVvZiBmID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgIGNvbnN0IGNhbGxGdW5jID0gZi5iaW5kKHRoaXMuZ3JvdXAuY3RybFNjb3BlKTtcclxuICAgICAgcmV0dXJuIGNhbGxGdW5jKGUpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uU2VyaWVzSG92ZXIoZSk6IHZvaWQge1xyXG4gICAgdGhpcy5jYWxsQ29tcG9uZW50RXZlbnQoZSwgdGhpcy5vcHRpb25zLm9uU2VyaWVzSG92ZXIpO1xyXG4gICAgLy8gY29uc29sZS5sb2coJ3Nlcmllc0hvdmVyJywgZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNhbGxDb21wb25lbnRFdmVudChlLCBldmVudDogYW55KTogYW55IHtcclxuICAgIGlmICh0eXBlb2YgZXZlbnQgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgY29uc3QgY2FsbEZ1bmMgPSBldmVudC5iaW5kKHRoaXMuZ3JvdXAuY3RybFNjb3BlKTtcclxuICAgICAgcmV0dXJuIGNhbGxGdW5jKGUpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGYgPSBaQ29tcG9uZW50SGVscGVyLmdldEdyb3VwRXZhbFZhbHVlLmNhbGwodGhpcywgZXZlbnQpO1xyXG4gICAgaWYgKHR5cGVvZiBmID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgIGNvbnN0IGNhbGxGdW5jID0gZi5iaW5kKHRoaXMuZ3JvdXAuY3RybFNjb3BlKTtcclxuICAgICAgcmV0dXJuIGNhbGxGdW5jKGUpO1xyXG4gICAgfVxyXG4gIH1cclxuICAvLyNlbmRyZWdpb25cclxuXHJcbiAgcHVibGljIGdldFRvb2xUaXAodmFsdWUsIGNhdGVnb3J5KTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmNhbGxDb21wb25lbnRFdmVudCh7IHZhbHVlLCBjYXRlZ29yeSB9LCB0aGlzLm9wdGlvbnMuY3VzdG9tVG9vbHRpcEZ1bmMpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2ICpuZ0lmPVwiIWlzTG9hZGluZyAmJiAoISFjb21wb25lbnRQcm9wZXJ0aWVzLmlzVmlzaWJsZUZpZWxkID8gZ3JvdXBbY29tcG9uZW50UHJvcGVydGllcy5pc1Zpc2libGVGaWVsZF0gOiBjb21wb25lbnRQcm9wZXJ0aWVzLmlzVmlzaWJsZSlcIlxyXG4gICAgIGNsYXNzPVwiZTF0YWctc3R5bGVcIiBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5zdHlsZS5zdHlsZVwiPlxyXG4gIDxrZW5kby1jaGFydCBbcmVuZGVyQXNdPVwib3B0aW9ucy5yZW5kZXJBc1wiIFtwYW5uYWJsZV09XCJvcHRpb25zLnBhbm5hYmxlXCIgW3pvb21hYmxlXT1cIm9wdGlvbnMuem9vbWFibGVcIlxyXG4gICAgICAgICAgICAgICBbY2F0ZWdvcnlBeGlzXT1cIm9wdGlvbnMuY2F0ZWdvcnlBeGlzXCJcclxuICAgICAgICAgICAgICAgKHJlbmRlcik9XCJvblJlbmRlcigkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgKGF4aXNMYWJlbENsaWNrKT1cIm9uQXhpc0xhYmVsQ2xpY2soJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgIChsZWdlbmRJdGVtQ2xpY2spPVwib25MZWdlbmRJdGVtQ2xpY2soJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgIChsZWdlbmRJdGVtSG92ZXIpPVwib25MZWdlbmRJdGVtSG92ZXIoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgIChwbG90QXJlYUNsaWNrKT1cIm9uUGxvdEFyZWFDbGljaygkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgKHBsb3RBcmVhSG92ZXIpPVwib25QbG90QXJlYUhvdmVyKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAoc2VyaWVzQ2xpY2spPVwib25TZXJpZXNDbGljaygkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgKHNlcmllc0hvdmVyKT1cIm9uU2VyaWVzSG92ZXIoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgIGNsYXNzPVwiZTF0YWctc3R5bGUxXCIgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuc3R5bGUuc3R5bGUxXCI+XHJcbiAgICA8a2VuZG8tY2hhcnQtdGl0bGUgKm5nSWY9XCJvcHRpb25zLnRpdGxlXCIgW3RleHRdPVwib3B0aW9ucy50aXRsZVwiIGNsYXNzPVwiZTF0YWctc3R5bGUyXCIgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuc3R5bGUuc3R5bGUyXCI+PC9rZW5kby1jaGFydC10aXRsZT5cclxuICAgIDxrZW5kby1jaGFydC1sZWdlbmQgW3Bvc2l0aW9uXT1cIm9wdGlvbnMubGVnZW5kUG9zaXRpb25cIiBbb3JpZW50YXRpb25dPVwib3B0aW9ucy5sZWdlbmRPcmllbnRhdGlvblwiIGNsYXNzPVwiZTF0YWctc3R5bGUzXCIgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuc3R5bGUuc3R5bGUzXCI+PC9rZW5kby1jaGFydC1sZWdlbmQ+XHJcbiAgICA8a2VuZG8tY2hhcnQtdG9vbHRpcCBbZm9ybWF0XT1cIm9wdGlvbnMudG9vbHRpcEZvcm1hdFwiIGNsYXNzPVwiZTF0YWctc3R5bGU0XCIgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuc3R5bGUuc3R5bGU0XCI+PC9rZW5kby1jaGFydC10b29sdGlwPlxyXG4gICAgPGtlbmRvLWNoYXJ0LXNlcmllcyBjbGFzcz1cImUxdGFnLXN0eWxlNVwiIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLnN0eWxlLnN0eWxlNVwiPlxyXG4gICAgICA8a2VuZG8tY2hhcnQtc2VyaWVzLWl0ZW0gKm5nRm9yPVwibGV0IGl0ZW0gb2Ygb3B0aW9ucy5zZXJpZXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FnZ3JlZ2F0ZV09XCJvcHRpb25zLmFnZ3JlZ2F0ZVR5cGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3R5cGVdPVwiaXRlbS50eXBlIHx8IG9wdGlvbnMuZGF0YVR5cGVcIiBbc3R5bGVdPVwiaXRlbS5zdHlsZSB8fCBvcHRpb25zLmRhdGFTdHlsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29sb3JdPVwiaXRlbS5jb2xvciB8fCBvcHRpb25zLmNvbG9yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbHNdPVwiaXRlbS5sYWJlbHMgfHwgb3B0aW9ucy5sYWJlbHNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZpZWxkXT1cIm9wdGlvbnMuZGF0YUZpZWxkXCIgW2NhdGVnb3J5RmllbGRdPVwib3B0aW9ucy5jYXRlZ29yeUZpZWxkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkYXRhXT1cIml0ZW0uZGF0YVwiIFtuYW1lXT1cIml0ZW0ubmFtZVwiPlxyXG4gICAgICAgIDxrZW5kby1jaGFydC1zZXJpZXMtaXRlbS10b29sdGlwIGtlbmRvQ2hhcnRTZXJpZXNUb29sdGlwVGVtcGxhdGUgKm5nSWY9XCJvcHRpb25zLmN1c3RvbVRvb2x0aXBGdW5jXCIgW2JhY2tncm91bmRdPVwib3B0aW9ucy5jdXN0b21Ub29sdGlwT3B0aW9ucy5iYWNrZ3JvdW5kXCI+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXZhbHVlPVwidmFsdWVcIiBsZXQtY2F0ZWdvcnk9XCJjYXRlZ29yeVwiPlxyXG4gICAgICAgICAgICA8ZGl2IFtpbm5lckhUTUxdPVwiZ2V0VG9vbFRpcCh2YWx1ZSwgY2F0ZWdvcnkpIHwgaHRtbFNhbml0aXplXCIgY2xhc3M9XCJlMXRhZy1zdHlsZTZcIiBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5zdHlsZS5zdHlsZTZcIj48L2Rpdj5cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9rZW5kby1jaGFydC1zZXJpZXMtaXRlbS10b29sdGlwPlxyXG4gICAgICA8L2tlbmRvLWNoYXJ0LXNlcmllcy1pdGVtPlxyXG4gICAgPC9rZW5kby1jaGFydC1zZXJpZXM+XHJcbiAgPC9rZW5kby1jaGFydD5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
/********** Angular **********/
|
|
2
|
-
import { Component, ViewChild } from "@angular/core";
|
|
3
|
-
/********** Ionic **********/
|
|
4
|
-
/********** Plugin **********/
|
|
5
|
-
/********** Component & Service **********/
|
|
6
|
-
import { InputFieldBase } from "../components/inputfieldbase.component";
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "../services/zcomponent.service";
|
|
9
|
-
import * as i2 from "@ionic/angular";
|
|
10
|
-
import * as i3 from "@progress/kendo-angular-inputs";
|
|
11
|
-
import * as i4 from "@angular/forms";
|
|
12
|
-
import * as i5 from "@angular/common";
|
|
13
|
-
export class ZcheckboxComponent extends InputFieldBase {
|
|
14
|
-
constructor(componentService) {
|
|
15
|
-
super(componentService);
|
|
16
|
-
this.componentService = componentService;
|
|
17
|
-
}
|
|
18
|
-
ngOnInit() {
|
|
19
|
-
super.setupInnerField();
|
|
20
|
-
super.focusOnDefault(this.focus.bind(this));
|
|
21
|
-
}
|
|
22
|
-
ngAfterViewInit() {
|
|
23
|
-
this.componentService.decrementComponentCounterForField(this.data);
|
|
24
|
-
}
|
|
25
|
-
focus() {
|
|
26
|
-
if (this.checkbox) {
|
|
27
|
-
this.checkbox.focus();
|
|
28
|
-
return true;
|
|
29
|
-
}
|
|
30
|
-
return false;
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
ZcheckboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: ZcheckboxComponent, deps: [{ token: i1.ZComponentService }], target: i0.ɵɵFactoryTarget.Component });
|
|
34
|
-
ZcheckboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.3", type: ZcheckboxComponent, selector: "app-zcheckbox", viewQueries: [{ propertyName: "checkbox", first: true, predicate: ["checkbox"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div [formGroup]=\"form\" class=\"zcheckbox-container e1tag-style\" [style]=\"componentProperties.style.style\">\r\n <ion-checkbox *ngIf=\"!data.UseKendoSwitch && isMobileScreen()\" [id]=\"data.Name\" [formControlName]=\"data.Value\"\r\n color=\"primary\"\r\n [attr.disabled]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n (ionChange)=\"onChange($event, $event.detail.checked)\" [style]=\"componentProperties.style.style1\"\r\n class=\"e1tag-style1\"></ion-checkbox>\r\n <!--Need to upgrade to latest kendo lib for the checkbox disabled to work-->\r\n <div class=\"temp-for-k-checkbox\" *ngIf=\"!data.UseKendoSwitch && !isMobileScreen()\">\r\n <input *ngIf=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n type=\"checkbox\" kendoCheckBox [id]=\"data.Name\" [formControlName]=\"data.Value\" disabled\r\n (change)=\"onChange(null, $event.target.checked)\" [style]=\"componentProperties.style.style1\"\r\n class=\"e1tag-style1\" />\r\n <input *ngIf=\"!(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n type=\"checkbox\" kendoCheckBox [id]=\"data.Name\" [formControlName]=\"data.Value\"\r\n (change)=\"onChange(null, $event.target.checked)\" [style]=\"componentProperties.style.style1\"\r\n class=\"e1tag-style1\" />\r\n </div>\r\n <kendo-switch *ngIf=\"data.UseKendoSwitch \" [id]=\"data.Name\" [formControlName]=\"data.Value\"\r\n [size]=\"data.Size ? data.Size : 'small'\"\r\n [readonly]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n (valueChange)=\"onChange(null, $event)\" [style]=\"componentProperties.style.style1\" class=\"e1tag-style1\" #checkbox>\r\n </kendo-switch>\r\n</div>\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)}.temp-for-k-checkbox{margin-top:4px}: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:var(--ion-color-primary);border:0px;outline:0}:host ::ng-deep ion-item .divcheckbox{justify-content:space-between;order:1}:host ::ng-deep kendo-switch.k-switch-on .k-switch-container{background-color:var(--ion-color-primary)}:host ::ng-deep kendo-switch.k-switch-on .k-switch-container:hover,:host ::ng-deep kendo-switch.k-switch-on .k-switch-container.k-hover :host ::ng-deep kendo-switch.k-switch-on .k-switch-container.k-state-hover{background-color:var(--ion-color-primary-shade)}\n"], components: [{ type: i2.IonCheckbox, selector: "ion-checkbox", inputs: ["checked", "color", "disabled", "indeterminate", "mode", "name", "value"] }, { type: i3.SwitchComponent, selector: "kendo-switch", inputs: ["focusableId", "onLabel", "offLabel", "checked", "disabled", "readonly", "tabindex", "size", "thumbRounded", "trackRounded", "tabIndex"], outputs: ["focus", "blur", "valueChange"], exportAs: ["kendoSwitch"] }], directives: [{ type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.BooleanValueAccessor, selector: "ion-checkbox,ion-toggle" }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i4.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { type: i3.CheckBoxDirective, selector: "input[kendoCheckBox]", inputs: ["size", "rounded"] }] });
|
|
35
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: ZcheckboxComponent, decorators: [{
|
|
36
|
-
type: Component,
|
|
37
|
-
args: [{ selector: "app-zcheckbox", template: "<div [formGroup]=\"form\" class=\"zcheckbox-container e1tag-style\" [style]=\"componentProperties.style.style\">\r\n <ion-checkbox *ngIf=\"!data.UseKendoSwitch && isMobileScreen()\" [id]=\"data.Name\" [formControlName]=\"data.Value\"\r\n color=\"primary\"\r\n [attr.disabled]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n (ionChange)=\"onChange($event, $event.detail.checked)\" [style]=\"componentProperties.style.style1\"\r\n class=\"e1tag-style1\"></ion-checkbox>\r\n <!--Need to upgrade to latest kendo lib for the checkbox disabled to work-->\r\n <div class=\"temp-for-k-checkbox\" *ngIf=\"!data.UseKendoSwitch && !isMobileScreen()\">\r\n <input *ngIf=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n type=\"checkbox\" kendoCheckBox [id]=\"data.Name\" [formControlName]=\"data.Value\" disabled\r\n (change)=\"onChange(null, $event.target.checked)\" [style]=\"componentProperties.style.style1\"\r\n class=\"e1tag-style1\" />\r\n <input *ngIf=\"!(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n type=\"checkbox\" kendoCheckBox [id]=\"data.Name\" [formControlName]=\"data.Value\"\r\n (change)=\"onChange(null, $event.target.checked)\" [style]=\"componentProperties.style.style1\"\r\n class=\"e1tag-style1\" />\r\n </div>\r\n <kendo-switch *ngIf=\"data.UseKendoSwitch \" [id]=\"data.Name\" [formControlName]=\"data.Value\"\r\n [size]=\"data.Size ? data.Size : 'small'\"\r\n [readonly]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n (valueChange)=\"onChange(null, $event)\" [style]=\"componentProperties.style.style1\" class=\"e1tag-style1\" #checkbox>\r\n </kendo-switch>\r\n</div>\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)}.temp-for-k-checkbox{margin-top:4px}: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:var(--ion-color-primary);border:0px;outline:0}:host ::ng-deep ion-item .divcheckbox{justify-content:space-between;order:1}:host ::ng-deep kendo-switch.k-switch-on .k-switch-container{background-color:var(--ion-color-primary)}:host ::ng-deep kendo-switch.k-switch-on .k-switch-container:hover,:host ::ng-deep kendo-switch.k-switch-on .k-switch-container.k-hover :host ::ng-deep kendo-switch.k-switch-on .k-switch-container.k-state-hover{background-color:var(--ion-color-primary-shade)}\n"] }]
|
|
38
|
-
}], ctorParameters: function () { return [{ type: i1.ZComponentService }]; }, propDecorators: { checkbox: [{
|
|
39
|
-
type: ViewChild,
|
|
40
|
-
args: ["checkbox"]
|
|
41
|
-
}] } });
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiemNoZWNrYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21taGdsb2JhbC1keW5hbWljZm9ybS9zcmMvbGliL3pjaGVja2JveC96Y2hlY2tib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvemNoZWNrYm94L3pjaGVja2JveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQkFBK0I7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHN0QsNkJBQTZCO0FBRTdCLDhCQUE4QjtBQUU5QiwyQ0FBMkM7QUFDM0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdDQUF3QyxDQUFDOzs7Ozs7O0FBV3hFLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxjQUFjO0lBR3BELFlBQ1MsZ0JBQW1DO1FBRTFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBRmpCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBbUI7SUFHNUMsQ0FBQztJQUVELFFBQVE7UUFDTixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsS0FBSyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGlDQUFpQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRU0sS0FBSztRQUNWLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNqQixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3RCLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7OytHQXhCVSxrQkFBa0I7bUdBQWxCLGtCQUFrQixrTENwQi9CLDJoRUF1QkE7MkZESGEsa0JBQWtCO2tCQU45QixTQUFTOytCQUNFLGVBQWU7d0dBTUYsUUFBUTtzQkFBOUIsU0FBUzt1QkFBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiLyoqKioqKioqKiogQW5ndWxhciAqKioqKioqKioqL1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgU3dpdGNoQ29tcG9uZW50IH0gZnJvbSBcIkBwcm9ncmVzcy9rZW5kby1hbmd1bGFyLWlucHV0c1wiO1xyXG5cclxuLyoqKioqKioqKiogSW9uaWMgKioqKioqKioqKi9cclxuXHJcbi8qKioqKioqKioqIFBsdWdpbiAqKioqKioqKioqLyBcclxuXHJcbi8qKioqKioqKioqIENvbXBvbmVudCAmIFNlcnZpY2UgKioqKioqKioqKi9cclxuaW1wb3J0IHsgSW5wdXRGaWVsZEJhc2UgfSBmcm9tIFwiLi4vY29tcG9uZW50cy9pbnB1dGZpZWxkYmFzZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgWkNvbXBvbmVudFNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvemNvbXBvbmVudC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFpDb21wb25lbnQgfSBmcm9tIFwibW1oZ2xvYmFsLXpjb3JlXCI7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiYXBwLXpjaGVja2JveFwiLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vemNoZWNrYm94LmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmxzOiBbXCIuL3pjaGVja2JveC5jb21wb25lbnQuc2Nzc1wiXSxcclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBaY2hlY2tib3hDb21wb25lbnQgZXh0ZW5kcyBJbnB1dEZpZWxkQmFzZSBpbXBsZW1lbnRzIFpDb21wb25lbnQsIE9uSW5pdCB7XHJcbiAgQFZpZXdDaGlsZChcImNoZWNrYm94XCIpIGNoZWNrYm94OiBTd2l0Y2hDb21wb25lbnQ7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGNvbXBvbmVudFNlcnZpY2U6IFpDb21wb25lbnRTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcihjb21wb25lbnRTZXJ2aWNlKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgc3VwZXIuc2V0dXBJbm5lckZpZWxkKCk7XHJcbiAgICBzdXBlci5mb2N1c09uRGVmYXVsdCh0aGlzLmZvY3VzLmJpbmQodGhpcykpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5jb21wb25lbnRTZXJ2aWNlLmRlY3JlbWVudENvbXBvbmVudENvdW50ZXJGb3JGaWVsZCh0aGlzLmRhdGEpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGZvY3VzKCkge1xyXG4gICAgaWYgKHRoaXMuY2hlY2tib3gpIHtcclxuICAgICAgdGhpcy5jaGVja2JveC5mb2N1cygpO1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBbZm9ybUdyb3VwXT1cImZvcm1cIiBjbGFzcz1cInpjaGVja2JveC1jb250YWluZXIgZTF0YWctc3R5bGVcIiBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5zdHlsZS5zdHlsZVwiPlxyXG4gIDxpb24tY2hlY2tib3ggKm5nSWY9XCIhZGF0YS5Vc2VLZW5kb1N3aXRjaCAmJiBpc01vYmlsZVNjcmVlbigpXCIgW2lkXT1cImRhdGEuTmFtZVwiIFtmb3JtQ29udHJvbE5hbWVdPVwiZGF0YS5WYWx1ZVwiXHJcbiAgICAgICAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxyXG4gICAgICAgICAgICAgICAgW2F0dHIuZGlzYWJsZWRdPVwiKCEhY29tcG9uZW50UHJvcGVydGllcy5pc1JlYWRPbmx5RmllbGQgPyBncm91cFtjb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVhZE9ubHlGaWVsZF0gOiBjb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVhZE9ubHkpXCJcclxuICAgICAgICAgICAgICAgIChpb25DaGFuZ2UpPVwib25DaGFuZ2UoJGV2ZW50LCAkZXZlbnQuZGV0YWlsLmNoZWNrZWQpXCIgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuc3R5bGUuc3R5bGUxXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZTF0YWctc3R5bGUxXCI+PC9pb24tY2hlY2tib3g+XHJcbiAgPCEtLU5lZWQgdG8gdXBncmFkZSB0byBsYXRlc3Qga2VuZG8gbGliIGZvciB0aGUgY2hlY2tib3ggZGlzYWJsZWQgdG8gd29yay0tPlxyXG4gIDxkaXYgY2xhc3M9XCJ0ZW1wLWZvci1rLWNoZWNrYm94XCIgKm5nSWY9XCIhZGF0YS5Vc2VLZW5kb1N3aXRjaCAmJiAhaXNNb2JpbGVTY3JlZW4oKVwiPlxyXG4gICAgPGlucHV0ICpuZ0lmPVwiKCEhY29tcG9uZW50UHJvcGVydGllcy5pc1JlYWRPbmx5RmllbGQgPyBncm91cFtjb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVhZE9ubHlGaWVsZF0gOiBjb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVhZE9ubHkpXCJcclxuICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIiBrZW5kb0NoZWNrQm94IFtpZF09XCJkYXRhLk5hbWVcIiBbZm9ybUNvbnRyb2xOYW1lXT1cImRhdGEuVmFsdWVcIiBkaXNhYmxlZFxyXG4gICAgICAgICAgIChjaGFuZ2UpPVwib25DaGFuZ2UobnVsbCwgJGV2ZW50LnRhcmdldC5jaGVja2VkKVwiIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLnN0eWxlLnN0eWxlMVwiXHJcbiAgICAgICAgICAgY2xhc3M9XCJlMXRhZy1zdHlsZTFcIiAvPlxyXG4gICAgPGlucHV0ICpuZ0lmPVwiISghIWNvbXBvbmVudFByb3BlcnRpZXMuaXNSZWFkT25seUZpZWxkID8gZ3JvdXBbY29tcG9uZW50UHJvcGVydGllcy5pc1JlYWRPbmx5RmllbGRdIDogY29tcG9uZW50UHJvcGVydGllcy5pc1JlYWRPbmx5KVwiXHJcbiAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCIga2VuZG9DaGVja0JveCBbaWRdPVwiZGF0YS5OYW1lXCIgW2Zvcm1Db250cm9sTmFtZV09XCJkYXRhLlZhbHVlXCJcclxuICAgICAgICAgICAoY2hhbmdlKT1cIm9uQ2hhbmdlKG51bGwsICRldmVudC50YXJnZXQuY2hlY2tlZClcIiBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5zdHlsZS5zdHlsZTFcIlxyXG4gICAgICAgICAgIGNsYXNzPVwiZTF0YWctc3R5bGUxXCIgLz5cclxuICA8L2Rpdj5cclxuICA8a2VuZG8tc3dpdGNoICpuZ0lmPVwiZGF0YS5Vc2VLZW5kb1N3aXRjaCBcIiBbaWRdPVwiZGF0YS5OYW1lXCIgW2Zvcm1Db250cm9sTmFtZV09XCJkYXRhLlZhbHVlXCJcclxuICAgICAgICAgICAgICAgIFtzaXplXT1cImRhdGEuU2l6ZSA/IGRhdGEuU2l6ZSA6ICdzbWFsbCdcIlxyXG4gICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cIighIWNvbXBvbmVudFByb3BlcnRpZXMuaXNSZWFkT25seUZpZWxkID8gZ3JvdXBbY29tcG9uZW50UHJvcGVydGllcy5pc1JlYWRPbmx5RmllbGRdIDogY29tcG9uZW50UHJvcGVydGllcy5pc1JlYWRPbmx5KVwiXHJcbiAgICAgICAgICAgICAgICAodmFsdWVDaGFuZ2UpPVwib25DaGFuZ2UobnVsbCwgJGV2ZW50KVwiIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLnN0eWxlLnN0eWxlMVwiIGNsYXNzPVwiZTF0YWctc3R5bGUxXCIgI2NoZWNrYm94PlxyXG4gIDwva2VuZG8tc3dpdGNoPlxyXG48L2Rpdj5cclxuIl19
|
|
@@ -1,119 +0,0 @@
|
|
|
1
|
-
/********** Angular **********/
|
|
2
|
-
import { Component, ViewChild } from "@angular/core";
|
|
3
|
-
/********** Ionic **********/
|
|
4
|
-
/********** Plugin **********/
|
|
5
|
-
import { tap } from "rxjs/operators";
|
|
6
|
-
/********** Component & Service **********/
|
|
7
|
-
import { InputFieldBase } from "../components/inputfieldbase.component";
|
|
8
|
-
import { ZComponentHelper } from 'mmhglobal-zcore';
|
|
9
|
-
import { ChipListComponent } from "@progress/kendo-angular-buttons";
|
|
10
|
-
import * as i0 from "@angular/core";
|
|
11
|
-
import * as i1 from "../services/zcomponent.service";
|
|
12
|
-
import * as i2 from "mmhglobal-zcore";
|
|
13
|
-
import * as i3 from "@progress/kendo-angular-buttons";
|
|
14
|
-
import * as i4 from "@fortawesome/angular-fontawesome";
|
|
15
|
-
import * as i5 from "@angular/common";
|
|
16
|
-
import * as i6 from "@angular/forms";
|
|
17
|
-
import * as i7 from "@angular/flex-layout/extended";
|
|
18
|
-
import * as i8 from "@progress/kendo-angular-tooltip";
|
|
19
|
-
import * as i9 from "../pipe/htmlSanitize.pipe";
|
|
20
|
-
export class ZChipComponent extends InputFieldBase {
|
|
21
|
-
constructor(componentService, fontAweSomeService) {
|
|
22
|
-
super(componentService);
|
|
23
|
-
this.componentService = componentService;
|
|
24
|
-
this.fontAweSomeService = fontAweSomeService;
|
|
25
|
-
}
|
|
26
|
-
ngOnInit() {
|
|
27
|
-
super.initComponent().pipe(tap(() => {
|
|
28
|
-
this.setupDataSource();
|
|
29
|
-
if (this.dataSource && this.dataSource.length > 0) {
|
|
30
|
-
this.setupDataSourceByzModel();
|
|
31
|
-
}
|
|
32
|
-
})).subscribe();
|
|
33
|
-
}
|
|
34
|
-
ngAfterViewInit() {
|
|
35
|
-
this.componentService.decrementComponentCounterForField(this.data);
|
|
36
|
-
}
|
|
37
|
-
setupDataSource() {
|
|
38
|
-
if (!this.data.DataSource) {
|
|
39
|
-
console.error("No data source found for zchip");
|
|
40
|
-
return;
|
|
41
|
-
}
|
|
42
|
-
this.dataSource = this.data.DataSource;
|
|
43
|
-
if (typeof this.data.DataSource == 'string' && this.data.DataSource.startsWith('group.')) {
|
|
44
|
-
this.dataSource = ZComponentHelper.getGroupValue(this.data.DataSource, this.group);
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
setupDataSourceByzModel() {
|
|
48
|
-
const modelData = this.group.zModel[this.data.Value];
|
|
49
|
-
if (!ZComponentHelper.isNullUndefinedEmpty(modelData)) {
|
|
50
|
-
const modelValueKeyList = modelData.map(x => x.Label);
|
|
51
|
-
for (const item of this.dataSource) {
|
|
52
|
-
item.Selected = modelValueKeyList.includes(item.Label);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
else {
|
|
56
|
-
this.dataSource.forEach(x => x.Selected = false);
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
setData(data) {
|
|
60
|
-
this.setupDataSourceByzModel();
|
|
61
|
-
this.dataSource = [...this.dataSource];
|
|
62
|
-
// Need to set in this way as the chips are QueryList
|
|
63
|
-
if (this.chipList && this.chipList.chips && this.chipList.chips.length > 0) {
|
|
64
|
-
let index = 0;
|
|
65
|
-
for (const chip of this.chipList.chips) {
|
|
66
|
-
chip.selected = !!this.dataSource[index]?.Selected || false;
|
|
67
|
-
index++;
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
this.setupDataSourceForIconChange();
|
|
71
|
-
}
|
|
72
|
-
setupDataSourceForIconChange() {
|
|
73
|
-
if (this.data['ChangeIconUponSelected']) {
|
|
74
|
-
if (Array.isArray(this.dataSource)) {
|
|
75
|
-
for (const x of this.dataSource) {
|
|
76
|
-
x._Icon = x.Icon;
|
|
77
|
-
x.Icon = !!x.Selected ? x.SelectedIcon : x._Icon;
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
//#region Events
|
|
83
|
-
chipListChangeSelection(selectedChipIndexes) {
|
|
84
|
-
const selectedChips = this.dataSource.filter((x, i) => selectedChipIndexes.includes(i));
|
|
85
|
-
if (this.data['ChangeIconUponSelected']) {
|
|
86
|
-
for (const chip of selectedChips) {
|
|
87
|
-
chip.Icon = chip.SelectedIcon;
|
|
88
|
-
}
|
|
89
|
-
const notSelectedChips = this.dataSource.filter((x, i) => !selectedChipIndexes.includes(i));
|
|
90
|
-
for (const chip of notSelectedChips) {
|
|
91
|
-
chip.Icon = this.dataSource.find(x => x.Label === chip.Label)._Icon;
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
super.onChange(null, selectedChips);
|
|
95
|
-
}
|
|
96
|
-
mouseover(event, chip) {
|
|
97
|
-
if (this.data.OnHover) {
|
|
98
|
-
this.group.subject.next({
|
|
99
|
-
type: "onHover",
|
|
100
|
-
target: this.data.OnHover,
|
|
101
|
-
data: { value: this.dataSource, selectedItem: chip, field: this.data }
|
|
102
|
-
});
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
onRemove(chip) {
|
|
106
|
-
const index = this.dataSource.findIndex((c) => c.Label === chip.Label);
|
|
107
|
-
this.dataSource.splice(index, 1);
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
ZChipComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: ZChipComponent, deps: [{ token: i1.ZComponentService }, { token: i2.FontAweSomeService }], target: i0.ɵɵFactoryTarget.Component });
|
|
111
|
-
ZChipComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.3", type: ZChipComponent, selector: "app-zchip", viewQueries: [{ propertyName: "chipList", first: true, predicate: ChipListComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div [formGroup]=\"form\" class=\"e1tag-style\"\r\n *ngIf=\"(!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\"\r\n [ngClass]=\"getClass(form, data)\" [style]=\"componentProperties.style.style\">\r\n <div kendoTooltip class=\"e1tag-style1\" [style]=\"componentProperties.style.style1\">\r\n <kendo-chip-list [selection]=\"data.Multiple ? 'multiple' : 'single'\"\r\n (selectedChange)=\"chipListChangeSelection($event)\" [style]=\"componentProperties.style.style2\"\r\n class=\"e1tag-style2\">\r\n <kendo-chip *ngFor=\"let chip of dataSource\" [selected]=\"chip.Selected\" [ngClass]=\"chip.Class\"\r\n [removable]=\"chip.Removable\" (remove)=\"onRemove(chip)\"\r\n (mouseover)=\"mouseover($event, chip)\" (contentClick)=\"onItemClick($event, chip)\"\r\n [style]=\"componentProperties.style.style3\" class=\"e1tag-style3\">\r\n <div class=\"e1-chip-content-container e1tag-style4\" [style]=\"componentProperties.style.style4\">\r\n <div *ngIf=\"chip.Label\" [innerHTML]=\"chip.Label | htmlSanitize\" [style]=\"componentProperties.style.style5\"\r\n class=\"e1tag-style5\"></div>\r\n <!-- <div *ngIf=\"chip.Label\" [style]=\"componentProperties.style.style5\" class=\"e1tag-style5\">{{chip.Label}}</div> -->\r\n <fa-icon *ngIf=\"chip.Icon\" [icon]=\"getFontAwesome(chip.Icon, fontAweSomeService)\"\r\n [style]=\"componentProperties.style.style6\" class=\"e1tag-style6\"></fa-icon>\r\n </div>\r\n </kendo-chip>\r\n </kendo-chip-list>\r\n </div>\r\n</div>\r\n", styles: [":host ::ng-deep kendo-chip-list .k-chip-filled,:host ::ng-deep kendo-chip-list .k-chip{background:white;border:1px solid #d1d1d1}:host ::ng-deep kendo-chip-list .k-chip-filled.k-selected,:host ::ng-deep kendo-chip-list .k-chip.k-selected{background:rgba(var(--ion-color-primary-rgb),.2);color:#000;box-shadow:0 0 1px 1px rgba(var(--ion-color-primary-rgb),1)}.e1-chip-content-container{display:flex;gap:5px;margin:2px 4px}\n"], components: [{ type: i3.ChipListComponent, selector: "kendo-chiplist, kendo-chip-list", inputs: ["selection", "size"], outputs: ["selectedChange", "remove"] }, { type: i3.ChipComponent, selector: "kendo-chip", inputs: ["label", "icon", "iconClass", "avatarClass", "selected", "removable", "removeIcon", "disabled", "size", "rounded", "fillMode", "themeColor"], outputs: ["remove", "contentClick"] }, { type: i4.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i6.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i7.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { type: i8.TooltipDirective, selector: "[kendoTooltip]", inputs: ["filter", "position", "titleTemplate", "showOn", "showAfter", "callout", "closable", "offset", "tooltipWidth", "tooltipHeight", "tooltipClass", "collision", "closeTitle", "tooltipTemplate"], exportAs: ["kendoTooltip"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "htmlSanitize": i9.HtmlSanitizePipe } });
|
|
112
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: ZChipComponent, decorators: [{
|
|
113
|
-
type: Component,
|
|
114
|
-
args: [{ selector: 'app-zchip', template: "<div [formGroup]=\"form\" class=\"e1tag-style\"\r\n *ngIf=\"(!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\"\r\n [ngClass]=\"getClass(form, data)\" [style]=\"componentProperties.style.style\">\r\n <div kendoTooltip class=\"e1tag-style1\" [style]=\"componentProperties.style.style1\">\r\n <kendo-chip-list [selection]=\"data.Multiple ? 'multiple' : 'single'\"\r\n (selectedChange)=\"chipListChangeSelection($event)\" [style]=\"componentProperties.style.style2\"\r\n class=\"e1tag-style2\">\r\n <kendo-chip *ngFor=\"let chip of dataSource\" [selected]=\"chip.Selected\" [ngClass]=\"chip.Class\"\r\n [removable]=\"chip.Removable\" (remove)=\"onRemove(chip)\"\r\n (mouseover)=\"mouseover($event, chip)\" (contentClick)=\"onItemClick($event, chip)\"\r\n [style]=\"componentProperties.style.style3\" class=\"e1tag-style3\">\r\n <div class=\"e1-chip-content-container e1tag-style4\" [style]=\"componentProperties.style.style4\">\r\n <div *ngIf=\"chip.Label\" [innerHTML]=\"chip.Label | htmlSanitize\" [style]=\"componentProperties.style.style5\"\r\n class=\"e1tag-style5\"></div>\r\n <!-- <div *ngIf=\"chip.Label\" [style]=\"componentProperties.style.style5\" class=\"e1tag-style5\">{{chip.Label}}</div> -->\r\n <fa-icon *ngIf=\"chip.Icon\" [icon]=\"getFontAwesome(chip.Icon, fontAweSomeService)\"\r\n [style]=\"componentProperties.style.style6\" class=\"e1tag-style6\"></fa-icon>\r\n </div>\r\n </kendo-chip>\r\n </kendo-chip-list>\r\n </div>\r\n</div>\r\n", styles: [":host ::ng-deep kendo-chip-list .k-chip-filled,:host ::ng-deep kendo-chip-list .k-chip{background:white;border:1px solid #d1d1d1}:host ::ng-deep kendo-chip-list .k-chip-filled.k-selected,:host ::ng-deep kendo-chip-list .k-chip.k-selected{background:rgba(var(--ion-color-primary-rgb),.2);color:#000;box-shadow:0 0 1px 1px rgba(var(--ion-color-primary-rgb),1)}.e1-chip-content-container{display:flex;gap:5px;margin:2px 4px}\n"] }]
|
|
115
|
-
}], ctorParameters: function () { return [{ type: i1.ZComponentService }, { type: i2.FontAweSomeService }]; }, propDecorators: { chipList: [{
|
|
116
|
-
type: ViewChild,
|
|
117
|
-
args: [ChipListComponent]
|
|
118
|
-
}] } });
|
|
119
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiemNoaXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvemNoaXAvemNoaXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvemNoaXAvemNoaXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0JBQStCO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTdELDZCQUE2QjtBQUU3Qiw4QkFBOEI7QUFDOUIsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJDLDJDQUEyQztBQUMzQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFFeEUsT0FBTyxFQUFjLGdCQUFnQixFQUE2QyxNQUFNLGlCQUFpQixDQUFDO0FBQzFHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7Ozs7Ozs7OztBQVNwRSxNQUFNLE9BQU8sY0FBZSxTQUFRLGNBQWM7SUFJaEQsWUFDUyxnQkFBbUMsRUFDbkMsa0JBQXNDO1FBRTdDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBSGpCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBbUI7UUFDbkMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtJQUcvQyxDQUFDO0lBRUQsUUFBUTtRQUNOLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQyxJQUFJLENBQ3hCLEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDUCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDdkIsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDakQsSUFBSSxD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RSxTQUFTO2dCQUNmLE1BQU0sRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU87Z0JBQ3pCLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUU7YUFDOUMsQ0FBQyxDQUFDO1NBQzdCO0lBQ0gsQ0FBQztJQUVNLFFBQVEsQ0FBQyxJQUFTO1FBQ3ZCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2RSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDbkMsQ0FBQzs7MkdBN0dVLGNBQWM7K0ZBQWQsY0FBYywyRkFDZCxpQkFBaUIsdUVDdEI5QixrbURBc0JBOzJGRERhLGNBQWM7a0JBTjFCLFNBQVM7K0JBQ0UsV0FBVzt5SUFNZ0IsUUFBUTtzQkFBNUMsU0FBUzt1QkFBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKioqKioqKioqKiBBbmd1bGFyICoqKioqKioqKiovXHJcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuLyoqKioqKioqKiogSW9uaWMgKioqKioqKioqKi9cclxuXHJcbi8qKioqKioqKioqIFBsdWdpbiAqKioqKioqKioqL1xyXG5pbXBvcnQgeyB0YXAgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuXHJcbi8qKioqKioqKioqIENvbXBvbmVudCAmIFNlcnZpY2UgKioqKioqKioqKi9cclxuaW1wb3J0IHsgSW5wdXRGaWVsZEJhc2UgfSBmcm9tIFwiLi4vY29tcG9uZW50cy9pbnB1dGZpZWxkYmFzZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgWkNvbXBvbmVudFNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvemNvbXBvbmVudC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFpDb21wb25lbnQsIFpDb21wb25lbnRIZWxwZXIsIFpDb21wb25lbnRPdXRwdXRFdmVudCwgRm9udEF3ZVNvbWVTZXJ2aWNlIH0gZnJvbSAnbW1oZ2xvYmFsLXpjb3JlJztcclxuaW1wb3J0IHsgQ2hpcExpc3RDb21wb25lbnQgfSBmcm9tIFwiQHByb2dyZXNzL2tlbmRvLWFuZ3VsYXItYnV0dG9uc1wiO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLXpjaGlwJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vemNoaXAuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3pjaGlwLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgWkNoaXBDb21wb25lbnQgZXh0ZW5kcyBJbnB1dEZpZWxkQmFzZSBpbXBsZW1lbnRzIFpDb21wb25lbnQsIE9uSW5pdCB7XHJcbiAgQFZpZXdDaGlsZChDaGlwTGlzdENvbXBvbmVudCkgcHVibGljIGNoaXBMaXN0OiBDaGlwTGlzdENvbXBvbmVudDtcclxuICBwdWJsaWMgZGF0YVNvdXJjZTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgY29tcG9uZW50U2VydmljZTogWkNvbXBvbmVudFNlcnZpY2UsXHJcbiAgICBwdWJsaWMgZm9udEF3ZVNvbWVTZXJ2aWNlOiBGb250QXdlU29tZVNlcnZpY2VcclxuICApIHtcclxuICAgIHN1cGVyKGNvbXBvbmVudFNlcnZpY2UpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBzdXBlci5pbml0Q29tcG9uZW50KCkucGlwZShcclxuICAgICAgdGFwKCgpID0+IHtcclxuICAgICAgICB0aGlzLnNldHVwRGF0YVNvdXJjZSgpO1xyXG4gICAgICAgIGlmICh0aGlzLmRhdGFTb3VyY2UgJiYgdGhpcy5kYXRhU291cmNlLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgIHRoaXMuc2V0dXBEYXRhU291cmNlQnl6TW9kZWwoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICApLnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5jb21wb25lbnRTZXJ2aWNlLmRlY3JlbWVudENvbXBvbmVudENvdW50ZXJGb3JGaWVsZCh0aGlzLmRhdGEpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldHVwRGF0YVNvdXJjZSgpIHtcclxuICAgIGlmICghdGhpcy5kYXRhLkRhdGFTb3VyY2UpIHtcclxuICAgICAgY29uc29sZS5lcnJvcihcIk5vIGRhdGEgc291cmNlIGZvdW5kIGZvciB6Y2hpcFwiKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZGF0YVNvdXJjZSA9IHRoaXMuZGF0YS5EYXRhU291cmNlO1xyXG4gICAgaWYgKHR5cGVvZiB0aGlzLmRhdGEuRGF0YVNvdXJjZSA9PSAnc3RyaW5nJyAmJiB0aGlzLmRhdGEuRGF0YVNvdXJjZS5zdGFydHNXaXRoKCdncm91cC4nKSkge1xyXG4gICAgICB0aGlzLmRhdGFTb3VyY2UgPSBaQ29tcG9uZW50SGVscGVyLmdldEdyb3VwVmFsdWUodGhpcy5kYXRhLkRhdGFTb3VyY2UsIHRoaXMuZ3JvdXApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXR1cERhdGFTb3VyY2VCeXpNb2RlbCgpIHtcclxuICAgIGNvbnN0IG1vZGVsRGF0YSA9IHRoaXMuZ3JvdXAuek1vZGVsW3RoaXMuZGF0YS5WYWx1ZV07XHJcbiAgICBpZiAoIVpDb21wb25lbnRIZWxwZXIuaXNOdWxsVW5kZWZpbmVkRW1wdHkobW9kZWxEYXRhKSkge1xyXG4gICAgICBjb25zdCBtb2RlbFZhbHVlS2V5TGlzdCA9IG1vZGVsRGF0YS5tYXAoeCA9PiB4LkxhYmVsKTtcclxuXHJcbiAgICAgIGZvciAoY29uc3QgaXRlbSBvZiB0aGlzLmRhdGFTb3VyY2UpIHtcclxuICAgICAgICBpdGVtLlNlbGVjdGVkID0gbW9kZWxWYWx1ZUtleUxpc3QuaW5jbHVkZXMoaXRlbS5MYWJlbCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLmRhdGFTb3VyY2UuZm9yRWFjaCh4ID0+IHguU2VsZWN0ZWQgPSBmYWxzZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0RGF0YShkYXRhOiBhbnkpIHtcclxuICAgIHRoaXMuc2V0dXBEYXRhU291cmNlQnl6TW9kZWwoKTtcclxuICAgIHRoaXMuZGF0YVNvdXJjZSA9IFsuLi50aGlzLmRhdGFTb3VyY2VdO1xyXG5cclxuICAgIC8vIE5lZWQgdG8gc2V0IGluIHRoaXMgd2F5IGFzIHRoZSBjaGlwcyBhcmUgUXVlcnlMaXN0XHJcbiAgICBpZiAodGhpcy5jaGlwTGlzdCAmJiB0aGlzLmNoaXBMaXN0LmNoaXBzICYmIHRoaXMuY2hpcExpc3QuY2hpcHMubGVuZ3RoID4gMCkge1xyXG4gICAgICBsZXQgaW5kZXggPSAwO1xyXG4gICAgICBmb3IgKGNvbnN0IGNoaXAgb2YgdGhpcy5jaGlwTGlzdC5jaGlwcykge1xyXG4gICAgICAgIGNoaXAuc2VsZWN0ZWQgPSAhIXRoaXMuZGF0YVNvdXJjZVtpbmRleF0/LlNlbGVjdGVkIHx8IGZhbHNlO1xyXG4gICAgICAgIGluZGV4Kys7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnNldHVwRGF0YVNvdXJjZUZvckljb25DaGFuZ2UoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0dXBEYXRhU291cmNlRm9ySWNvbkNoYW5nZSgpIHtcclxuICAgIGlmICh0aGlzLmRhdGFbJ0NoYW5nZUljb25VcG9uU2VsZWN0ZWQnXSkge1xyXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLmRhdGFTb3VyY2UpKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCB4IG9mIHRoaXMuZGF0YVNvdXJjZSkge1xyXG4gICAgICAgICAgeC5fSWNvbiA9IHguSWNvbjtcclxuICAgICAgICAgIHguSWNvbiA9ICEheC5TZWxlY3RlZCA/IHguU2VsZWN0ZWRJY29uIDogeC5fSWNvbjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vI3JlZ2lvbiBFdmVudHNcclxuICBwdWJsaWMgY2hpcExpc3RDaGFuZ2VTZWxlY3Rpb24oc2VsZWN0ZWRDaGlwSW5kZXhlczogYW55KTogdm9pZCB7XHJcbiAgICBjb25zdCBzZWxlY3RlZENoaXBzID0gdGhpcy5kYXRhU291cmNlLmZpbHRlcigoeCwgaSkgPT4gc2VsZWN0ZWRDaGlwSW5kZXhlcy5pbmNsdWRlcyhpKSk7XHJcbiAgICBpZiAodGhpcy5kYXRhWydDaGFuZ2VJY29uVXBvblNlbGVjdGVkJ10pIHtcclxuICAgICAgZm9yIChjb25zdCBjaGlwIG9mIHNlbGVjdGVkQ2hpcHMpIHtcclxuICAgICAgICBjaGlwLkljb24gPSBjaGlwLlNlbGVjdGVkSWNvbjtcclxuICAgICAgfVxyXG5cclxuICAgICAgY29uc3Qgbm90U2VsZWN0ZWRDaGlwcyA9IHRoaXMuZGF0YVNvdXJjZS5maWx0ZXIoKHgsIGkpID0+ICFzZWxlY3RlZENoaXBJbmRleGVzLmluY2x1ZGVzKGkpKTtcclxuICAgICAgZm9yIChjb25zdCBjaGlwIG9mIG5vdFNlbGVjdGVkQ2hpcHMpIHtcclxuICAgICAgICBjaGlwLkljb24gPSB0aGlzLmRhdGFTb3VyY2UuZmluZCh4ID0+IHguTGFiZWwgPT09IGNoaXAuTGFiZWwpLl9JY29uO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgc3VwZXIub25DaGFuZ2UobnVsbCwgc2VsZWN0ZWRDaGlwcyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbW91c2VvdmVyKGV2ZW50OiBhbnksIGNoaXA6IGFueSkge1xyXG4gICAgaWYgKHRoaXMuZGF0YS5PbkhvdmVyKSB7XHJcbiAgICAgIHRoaXMuZ3JvdXAuc3ViamVjdC5uZXh0KHtcclxuICAgICAgICB0eXBlOiBcIm9uSG92ZXJcIixcclxuICAgICAgICB0YXJnZXQ6IHRoaXMuZGF0YS5PbkhvdmVyLFxyXG4gICAgICAgIGRhdGE6IHsgdmFsdWU6IHRoaXMuZGF0YVNvdXJjZSwgc2VsZWN0ZWRJdGVtOiBjaGlwLCBmaWVsZDogdGhpcy5kYXRhIH1cclxuICAgICAgfSBhcyBaQ29tcG9uZW50T3V0cHV0RXZlbnQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uUmVtb3ZlKGNoaXA6IGFueSk6IHZvaWQge1xyXG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmRhdGFTb3VyY2UuZmluZEluZGV4KChjKSA9PiBjLkxhYmVsID09PSBjaGlwLkxhYmVsKTtcclxuICAgIHRoaXMuZGF0YVNvdXJjZS5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gIH1cclxuICAvLyNlbmRyZWdpb25cclxufVxyXG4iLCI8ZGl2IFtmb3JtR3JvdXBdPVwiZm9ybVwiIGNsYXNzPVwiZTF0YWctc3R5bGVcIlxyXG4gICpuZ0lmPVwiKCEhY29tcG9uZW50UHJvcGVydGllcy5pc1Zpc2libGVGaWVsZCA/IGdyb3VwW2NvbXBvbmVudFByb3BlcnRpZXMuaXNWaXNpYmxlRmllbGRdIDogY29tcG9uZW50UHJvcGVydGllcy5pc1Zpc2libGUpXCJcclxuICBbbmdDbGFzc109XCJnZXRDbGFzcyhmb3JtLCBkYXRhKVwiIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLnN0eWxlLnN0eWxlXCI+XHJcbiAgPGRpdiBrZW5kb1Rvb2x0aXAgY2xhc3M9XCJlMXRhZy1zdHlsZTFcIiBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5zdHlsZS5zdHlsZTFcIj5cclxuICAgIDxrZW5kby1jaGlwLWxpc3QgW3NlbGVjdGlvbl09XCJkYXRhLk11bHRpcGxlID8gJ211bHRpcGxlJyA6ICdzaW5nbGUnXCJcclxuICAgICAgKHNlbGVjdGVkQ2hhbmdlKT1cImNoaXBMaXN0Q2hhbmdlU2VsZWN0aW9uKCRldmVudClcIiBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5zdHlsZS5zdHlsZTJcIlxyXG4gICAgICBjbGFzcz1cImUxdGFnLXN0eWxlMlwiPlxyXG4gICAgICA8a2VuZG8tY2hpcCAqbmdGb3I9XCJsZXQgY2hpcCBvZiBkYXRhU291cmNlXCIgW3NlbGVjdGVkXT1cImNoaXAuU2VsZWN0ZWRcIiBbbmdDbGFzc109XCJjaGlwLkNsYXNzXCJcclxuICAgICAgICBbcmVtb3ZhYmxlXT1cImNoaXAuUmVtb3ZhYmxlXCIgKHJlbW92ZSk9XCJvblJlbW92ZShjaGlwKVwiXHJcbiAgICAgICAgKG1vdXNlb3Zlcik9XCJtb3VzZW92ZXIoJGV2ZW50LCBjaGlwKVwiIChjb250ZW50Q2xpY2spPVwib25JdGVtQ2xpY2soJGV2ZW50LCBjaGlwKVwiXHJcbiAgICAgICAgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuc3R5bGUuc3R5bGUzXCIgY2xhc3M9XCJlMXRhZy1zdHlsZTNcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZTEtY2hpcC1jb250ZW50LWNvbnRhaW5lciBlMXRhZy1zdHlsZTRcIiBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5zdHlsZS5zdHlsZTRcIj5cclxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJjaGlwLkxhYmVsXCIgW2lubmVySFRNTF09XCJjaGlwLkxhYmVsIHwgaHRtbFNhbml0aXplXCIgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuc3R5bGUuc3R5bGU1XCJcclxuICAgICAgICAgICAgY2xhc3M9XCJlMXRhZy1zdHlsZTVcIj48L2Rpdj5cclxuICAgICAgICAgIDwhLS0gPGRpdiAqbmdJZj1cImNoaXAuTGFiZWxcIiBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5zdHlsZS5zdHlsZTVcIiBjbGFzcz1cImUxdGFnLXN0eWxlNVwiPnt7Y2hpcC5MYWJlbH19PC9kaXY+IC0tPlxyXG4gICAgICAgICAgPGZhLWljb24gKm5nSWY9XCJjaGlwLkljb25cIiBbaWNvbl09XCJnZXRGb250QXdlc29tZShjaGlwLkljb24sIGZvbnRBd2VTb21lU2VydmljZSlcIlxyXG4gICAgICAgICAgICBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5zdHlsZS5zdHlsZTZcIiBjbGFzcz1cImUxdGFnLXN0eWxlNlwiPjwvZmEtaWNvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9rZW5kby1jaGlwPlxyXG4gICAgPC9rZW5kby1jaGlwLWxpc3Q+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
|