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,51 +0,0 @@
|
|
|
1
|
-
/********** Angular **********/
|
|
2
|
-
import { Component, Input, ViewChild } from "@angular/core";
|
|
3
|
-
/********** Ionic **********/
|
|
4
|
-
/********** Plugin **********/
|
|
5
|
-
/********** Component & Service **********/
|
|
6
|
-
import { FieldElementDirective } from "../directives/fieldelement.directive";
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "../services/zcomponent.service";
|
|
9
|
-
import * as i2 from "../directives/fieldelement.directive";
|
|
10
|
-
export class ZformcontrolComponent {
|
|
11
|
-
constructor(componentFactoryResolver, componentService
|
|
12
|
-
// private appRef: ApplicationRef,
|
|
13
|
-
// private injector: Injector,
|
|
14
|
-
) {
|
|
15
|
-
this.componentFactoryResolver = componentFactoryResolver;
|
|
16
|
-
this.componentService = componentService;
|
|
17
|
-
}
|
|
18
|
-
ngOnInit() {
|
|
19
|
-
this.componentService.loadComponent(this.componentFactoryResolver, this.fieldElement, this.field, this.group, this.form, this.containerField);
|
|
20
|
-
// this.componentRef = ZComponentHelper.appendComponentToDynamicForm(
|
|
21
|
-
// this.componentFactoryResolver,
|
|
22
|
-
// this.injector,
|
|
23
|
-
// this.appRef,
|
|
24
|
-
// this.field,
|
|
25
|
-
// this.group,
|
|
26
|
-
// this.containerid
|
|
27
|
-
// );
|
|
28
|
-
}
|
|
29
|
-
ngOnDestroy() {
|
|
30
|
-
// this.appRef.detachView(this.componentRef.hostView);
|
|
31
|
-
// this.componentRef.destroy();
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
ZformcontrolComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: ZformcontrolComponent, deps: [{ token: i0.ComponentFactoryResolver }, { token: i1.ZComponentService }], target: i0.ɵɵFactoryTarget.Component });
|
|
35
|
-
ZformcontrolComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.3", type: ZformcontrolComponent, selector: "app-zformcontrol", inputs: { field: "field", group: "group", form: "form", containerField: "containerField" }, viewQueries: [{ propertyName: "fieldElement", first: true, predicate: FieldElementDirective, descendants: true, static: true }], ngImport: i0, template: "<!-- <ion-col size=12 sizeSm=\"12\" sizeMd=\"6\" sizeLg=\"4\" sizeXl=\"3\" fieldelement></ion-col> -->\r\n<span fieldelement></span>", styles: [""], directives: [{ type: i2.FieldElementDirective, selector: "[fieldelement]" }] });
|
|
36
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: ZformcontrolComponent, decorators: [{
|
|
37
|
-
type: Component,
|
|
38
|
-
args: [{ selector: "app-zformcontrol", template: "<!-- <ion-col size=12 sizeSm=\"12\" sizeMd=\"6\" sizeLg=\"4\" sizeXl=\"3\" fieldelement></ion-col> -->\r\n<span fieldelement></span>", styles: [""] }]
|
|
39
|
-
}], ctorParameters: function () { return [{ type: i0.ComponentFactoryResolver }, { type: i1.ZComponentService }]; }, propDecorators: { field: [{
|
|
40
|
-
type: Input
|
|
41
|
-
}], group: [{
|
|
42
|
-
type: Input
|
|
43
|
-
}], form: [{
|
|
44
|
-
type: Input
|
|
45
|
-
}], containerField: [{
|
|
46
|
-
type: Input
|
|
47
|
-
}], fieldElement: [{
|
|
48
|
-
type: ViewChild,
|
|
49
|
-
args: [FieldElementDirective, { static: true }]
|
|
50
|
-
}] } });
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiemZvcm1jb250cm9sLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21taGdsb2JhbC1keW5hbWljZm9ybS9zcmMvbGliL3pmb3JtY29udHJvbC96Zm9ybWNvbnRyb2wuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvemZvcm1jb250cm9sL3pmb3JtY29udHJvbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQkFBK0I7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBcUIsS0FBSyxFQUFFLFNBQVMsRUFBNEIsTUFBTSxlQUFlLENBQUM7QUFHekcsNkJBQTZCO0FBRTdCLDhCQUE4QjtBQUU5QiwyQ0FBMkM7QUFDM0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7Ozs7QUFXN0UsTUFBTSxPQUFPLHFCQUFxQjtJQVVoQyxZQUNVLHdCQUFrRCxFQUNuRCxnQkFBbUM7SUFDMUMsa0NBQWtDO0lBQ2xDLDhCQUE4Qjs7UUFIdEIsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQUNuRCxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQW1CO0lBR3hDLENBQUM7SUFFTCxRQUFRO1FBQ04sSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsd0JBQXdCLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDOUkscUVBQXFFO1FBQ3JFLG1DQUFtQztRQUNuQyxtQkFBbUI7UUFDbkIsaUJBQWlCO1FBQ2pCLGdCQUFnQjtRQUNoQixnQkFBZ0I7UUFDaEIscUJBQXFCO1FBQ3JCLEtBQUs7SUFDUCxDQUFDO0lBRUQsV0FBVztRQUNULHNEQUFzRDtRQUN0RCwrQkFBK0I7SUFDakMsQ0FBQzs7a0hBaENVLHFCQUFxQjtzR0FBckIscUJBQXFCLGtNQU1yQixxQkFBcUIsOERDMUJsQyxzSUFDMEI7MkZEbUJiLHFCQUFxQjtrQkFOakMsU0FBUzsrQkFDRSxrQkFBa0I7K0lBTW5CLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBRThDLFlBQVk7c0JBQS9ELFNBQVM7dUJBQUMscUJBQXFCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiLyoqKioqKioqKiogQW5ndWxhciAqKioqKioqKioqL1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgT25EZXN0cm95LCBJbnB1dCwgVmlld0NoaWxkLCBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG4vKioqKioqKioqKiBJb25pYyAqKioqKioqKioqL1xyXG5cclxuLyoqKioqKioqKiogUGx1Z2luICoqKioqKioqKiovXHJcblxyXG4vKioqKioqKioqKiBDb21wb25lbnQgJiBTZXJ2aWNlICoqKioqKioqKiovXHJcbmltcG9ydCB7IEZpZWxkRWxlbWVudERpcmVjdGl2ZSB9IGZyb20gXCIuLi9kaXJlY3RpdmVzL2ZpZWxkZWxlbWVudC5kaXJlY3RpdmVcIjtcclxuaW1wb3J0IHsgWkNvbXBvbmVudFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy96Y29tcG9uZW50LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBaRmllbGQsIFpHcm91cCB9IGZyb20gXCJtbWhnbG9iYWwtemNvcmVcIjtcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJhcHAtemZvcm1jb250cm9sXCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi96Zm9ybWNvbnRyb2wuY29tcG9uZW50Lmh0bWxcIixcclxuICBzdHlsZVVybHM6IFtcIi4vemZvcm1jb250cm9sLmNvbXBvbmVudC5zY3NzXCJdXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgWmZvcm1jb250cm9sQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIEBJbnB1dCgpIGZpZWxkOiBaRmllbGQ7XHJcbiAgQElucHV0KCkgZ3JvdXA6IFpHcm91cDtcclxuICBASW5wdXQoKSBmb3JtOiBGb3JtR3JvdXA7XHJcbiAgQElucHV0KCkgY29udGFpbmVyRmllbGQ6IFpGaWVsZDtcclxuICAvLyBASW5wdXQoKSBjb250YWluZXJpZDogc3RyaW5nO1xyXG4gIEBWaWV3Q2hpbGQoRmllbGRFbGVtZW50RGlyZWN0aXZlLCB7IHN0YXRpYzogdHJ1ZSB9KSBmaWVsZEVsZW1lbnQ6IEZpZWxkRWxlbWVudERpcmVjdGl2ZTtcclxuXHJcbiAgcHVibGljIGNvbXBvbmVudFJlZjogYW55O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXHJcbiAgICBwdWJsaWMgY29tcG9uZW50U2VydmljZTogWkNvbXBvbmVudFNlcnZpY2VcclxuICAgIC8vIHByaXZhdGUgYXBwUmVmOiBBcHBsaWNhdGlvblJlZixcclxuICAgIC8vIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5jb21wb25lbnRTZXJ2aWNlLmxvYWRDb21wb25lbnQodGhpcy5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIHRoaXMuZmllbGRFbGVtZW50LCB0aGlzLmZpZWxkLCB0aGlzLmdyb3VwLCB0aGlzLmZvcm0sIHRoaXMuY29udGFpbmVyRmllbGQpO1xyXG4gICAgLy8gdGhpcy5jb21wb25lbnRSZWYgPSBaQ29tcG9uZW50SGVscGVyLmFwcGVuZENvbXBvbmVudFRvRHluYW1pY0Zvcm0oXHJcbiAgICAvLyAgIHRoaXMuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxyXG4gICAgLy8gICB0aGlzLmluamVjdG9yLFxyXG4gICAgLy8gICB0aGlzLmFwcFJlZixcclxuICAgIC8vICAgdGhpcy5maWVsZCxcclxuICAgIC8vICAgdGhpcy5ncm91cCxcclxuICAgIC8vICAgdGhpcy5jb250YWluZXJpZFxyXG4gICAgLy8gKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgLy8gdGhpcy5hcHBSZWYuZGV0YWNoVmlldyh0aGlzLmNvbXBvbmVudFJlZi5ob3N0Vmlldyk7XHJcbiAgICAvLyB0aGlzLmNvbXBvbmVudFJlZi5kZXN0cm95KCk7XHJcbiAgfVxyXG59XHJcbiIsIjwhLS0gPGlvbi1jb2wgc2l6ZT0xMiBzaXplU209XCIxMlwiIHNpemVNZD1cIjZcIiBzaXplTGc9XCI0XCIgc2l6ZVhsPVwiM1wiIGZpZWxkZWxlbWVudD48L2lvbi1jb2w+IC0tPlxyXG48c3BhbiBmaWVsZGVsZW1lbnQ+PC9zcGFuPiJdfQ==
|
|
@@ -1,160 +0,0 @@
|
|
|
1
|
-
/********** Angular **********/
|
|
2
|
-
import { Component } from "@angular/core";
|
|
3
|
-
/********** Component & Service **********/
|
|
4
|
-
import { DataListingFieldBase } from "../components/datalistingfieldbase.component";
|
|
5
|
-
import { ZComponentHelper } from "mmhglobal-zcore";
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "../services/zcomponent.service";
|
|
8
|
-
import * as i2 from "@progress/kendo-angular-gantt";
|
|
9
|
-
import * as i3 from "@angular/common";
|
|
10
|
-
export class ZganttchartComponent extends DataListingFieldBase {
|
|
11
|
-
constructor(componentService) {
|
|
12
|
-
super(componentService);
|
|
13
|
-
this.componentService = componentService;
|
|
14
|
-
this.activeView = "day";
|
|
15
|
-
this.views = ["day", "week", "month", "year"];
|
|
16
|
-
this.collapsible = false;
|
|
17
|
-
this.collapsed = false;
|
|
18
|
-
this.timelineSize = '70%';
|
|
19
|
-
this.columns = []; // Initialize columns array
|
|
20
|
-
this.selectable = false;
|
|
21
|
-
this.totalCount = 0;
|
|
22
|
-
this.selectionState = new Set();
|
|
23
|
-
this.isSelected = (dataItem) => {
|
|
24
|
-
return this.selectionState.has(dataItem[this.data.UniqueKey ?? "Id"]);
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
ngOnInit() {
|
|
28
|
-
this.collapsible = this.data.AllowCollapse ?? false;
|
|
29
|
-
this.collapsed = this.data.DefaultCollapse ?? false;
|
|
30
|
-
this.timelineSize = this.data.TimelineSize ?? '70%';
|
|
31
|
-
this.selectable = this.data.Selectable ?? false;
|
|
32
|
-
this.initViews();
|
|
33
|
-
this.setActiveView();
|
|
34
|
-
this.generateGridColumns();
|
|
35
|
-
ZComponentHelper.registerComponent(this);
|
|
36
|
-
}
|
|
37
|
-
ngAfterViewInit() {
|
|
38
|
-
this.componentService.decrementComponentCounterForField(this.data);
|
|
39
|
-
}
|
|
40
|
-
ngOnDestroy() {
|
|
41
|
-
}
|
|
42
|
-
initViews() {
|
|
43
|
-
if (this.data.TimelineViewType && Array.isArray(this.data.TimelineViewType)) {
|
|
44
|
-
this.views = this.data.TimelineViewType
|
|
45
|
-
.map(view => view.toLowerCase())
|
|
46
|
-
.filter(view => this.isValidTimelineView(view));
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
setActiveView() {
|
|
50
|
-
if (this.data.TimelimeDefault) {
|
|
51
|
-
const defaultView = this.data.TimelimeDefault.toLowerCase();
|
|
52
|
-
if (this.isValidTimelineView(defaultView)) {
|
|
53
|
-
this.activeView = defaultView;
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
isValidTimelineView(view) {
|
|
58
|
-
return ['day', 'week', 'month', 'year'].includes(view);
|
|
59
|
-
}
|
|
60
|
-
generateGridColumns() {
|
|
61
|
-
if (!Array.isArray(this.data.ColumnFields) || this.data.ColumnFields.length === 0) {
|
|
62
|
-
console.warn(`Invalid/Empty gantt chart column fields: '${this.data.Name}'`);
|
|
63
|
-
return;
|
|
64
|
-
}
|
|
65
|
-
this.columns = this.data.ColumnFields.map(field => ({
|
|
66
|
-
name: field.Name,
|
|
67
|
-
field: field.Value,
|
|
68
|
-
title: field.Name,
|
|
69
|
-
width: field.width || 80,
|
|
70
|
-
format: field.Format
|
|
71
|
-
}));
|
|
72
|
-
}
|
|
73
|
-
setData(ganttData) {
|
|
74
|
-
if (ganttData) {
|
|
75
|
-
this.ganttData = ganttData.map(task => ({
|
|
76
|
-
...task,
|
|
77
|
-
start: this.ensureDate(task.start),
|
|
78
|
-
end: this.ensureDate(task.end)
|
|
79
|
-
})).filter(task => task.start && task.end); // Only include tasks with valid start and end dates
|
|
80
|
-
if (this.data.Max) {
|
|
81
|
-
this.ganttData = this.ganttData.slice(0, this.data.Max);
|
|
82
|
-
}
|
|
83
|
-
this.updateValueVariable();
|
|
84
|
-
this.totalCount = this.ganttData.length;
|
|
85
|
-
}
|
|
86
|
-
else {
|
|
87
|
-
console.warn('No data provided to setData; received a null or undefined parameter.');
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
updateValueVariable() {
|
|
91
|
-
// Extract and trim the value from this.data.value if it exists
|
|
92
|
-
const fieldName = this.data.Value.split('.').pop(); // Gets the last part after the last dot
|
|
93
|
-
if (!fieldName) {
|
|
94
|
-
console.warn(`Gantt Chart ${this.data.Name} Value could not be determined.`);
|
|
95
|
-
return;
|
|
96
|
-
}
|
|
97
|
-
// Determine the target object
|
|
98
|
-
if (this.data.Value.includes('group.') && this.group) {
|
|
99
|
-
this.group[fieldName] = this.ganttData;
|
|
100
|
-
}
|
|
101
|
-
else {
|
|
102
|
-
if (this.hasOwnProperty(fieldName)) {
|
|
103
|
-
this[fieldName] = this.ganttData;
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
ensureDate(date) {
|
|
108
|
-
// Check if the date is already a Date object
|
|
109
|
-
if (date instanceof Date) {
|
|
110
|
-
return date;
|
|
111
|
-
}
|
|
112
|
-
// If the date is a string, convert it to a Date object
|
|
113
|
-
const parsedDate = new Date(date);
|
|
114
|
-
if (!isNaN(parsedDate.getTime())) {
|
|
115
|
-
return parsedDate;
|
|
116
|
-
}
|
|
117
|
-
else {
|
|
118
|
-
// Log a warning if the date string is invalid and return a default date or null
|
|
119
|
-
// console.warn(`Invalid date format: ${date}`);
|
|
120
|
-
return null; // or return null if you prefer to handle invalid dates differently
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
get selectedKeys() {
|
|
124
|
-
return Array.from(this.selectionState);
|
|
125
|
-
}
|
|
126
|
-
toggleSelection({ dataItem, sender, originalEvent, }) {
|
|
127
|
-
// Prevents context menu opening
|
|
128
|
-
originalEvent.preventDefault();
|
|
129
|
-
const uniqueKey = this.data.UniqueKey ?? "Id";
|
|
130
|
-
// For future toggling multi select
|
|
131
|
-
// if (this.isSelected(dataItem)) {
|
|
132
|
-
// this.selectionState.delete(dataItem[uniqueKey]);
|
|
133
|
-
// }
|
|
134
|
-
// else {
|
|
135
|
-
// this.selectionState.add(dataItem[uniqueKey]);
|
|
136
|
-
// }
|
|
137
|
-
this.selectionState = new Set;
|
|
138
|
-
this.selectionState.add(dataItem[uniqueKey]);
|
|
139
|
-
// Manually trigger the Gantt to re-evaluate the isSelected callback for each task
|
|
140
|
-
sender.updateView();
|
|
141
|
-
if (this.data.OnItemClick) {
|
|
142
|
-
const func = ZComponentHelper.getGroupEvalValue.call(this, this.data.OnItemClick);
|
|
143
|
-
if (typeof func === 'function') {
|
|
144
|
-
const callFunc = func.bind(this.group.ctrlScope);
|
|
145
|
-
callFunc(dataItem);
|
|
146
|
-
}
|
|
147
|
-
return;
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
clearSelection() {
|
|
151
|
-
this.selectionState = new Set;
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
ZganttchartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: ZganttchartComponent, deps: [{ token: i1.ZComponentService }], target: i0.ɵɵFactoryTarget.Component });
|
|
155
|
-
ZganttchartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.3", type: ZganttchartComponent, selector: "app-zganttchart", usesInheritance: true, ngImport: i0, template: "<kendo-gantt [style.height.px]=\"500\"\r\n [data]=\"ganttData\"\r\n kendoGanttExpandable\r\n [initiallyExpanded]=\"true\"\r\n [toolbarSettings]=\"{ position: 'both', addTaskTool: 'none' }\"\r\n [activeView]=\"activeView\"\r\n [sortable]=\"true\"\r\n [selectable]=\"selectable\"\r\n [isSelected]=\"isSelected\"\r\n (cellClick)=\"toggleSelection($event)\"\r\n (taskClick)=\"toggleSelection($event)\"\r\n [timelinePaneOptions]=\"{ collapsed: collapsed,\r\n collapsible: collapsible,\r\n size: timelineSize\r\n }\">\r\n <kendo-gantt-column *ngFor=\"let col of columns;\"\r\n [field]=\"col.field\"\r\n [title]=\"col.title\"\r\n [width]=\"col.width\"\r\n [format]=\"col.format\">\r\n </kendo-gantt-column>\r\n <ng-template kendoGanttToolbarTemplate\r\n position=\"both\"\r\n let-position=\"position\">\r\n <div *ngIf=\"position === 'top'\" class=\"toolbar-top\">\r\n <span>{{data.Title}}</span>\r\n <kendo-gantt-view-selector [views]=\"views\"\r\n [(activeView)]=\"activeView\"></kendo-gantt-view-selector>\r\n </div>\r\n <div *ngIf=\"position === 'bottom'\" class=\"toolbar-bottom\">\r\n <span>Total {{totalCount}} records</span>\r\n </div>\r\n </ng-template>\r\n <kendo-gantt-timeline-day-view></kendo-gantt-timeline-day-view>\r\n <kendo-gantt-timeline-week-view></kendo-gantt-timeline-week-view>\r\n <kendo-gantt-timeline-month-view></kendo-gantt-timeline-month-view>\r\n <kendo-gantt-timeline-year-view></kendo-gantt-timeline-year-view>\r\n</kendo-gantt>\r\n", styles: ["label.k-radio-label{display:inline-block;margin-right:10px}.toolbar-top{display:flex;width:100%;justify-content:space-between;align-items:center}.toolbar-bottom{display:flex;width:100%;align-items:end}\n"], components: [{ type: i2.GanttComponent, selector: "kendo-gantt", inputs: ["aria-roledescription", "role", "taskModelFields", "dependencyModelFields", "activeView", "data", "isSelected", "validateNewDependency", "selectable", "toolbarSettings", "fetchChildren", "hasChildren", "dependencies", "sortable", "sort", "filterable", "filter", "workDayStart", "workDayEnd", "workWeekStart", "workWeekEnd", "navigable", "timelinePaneOptions", "treeListPaneOptions", "taskClass", "rowClass", "isExpanded", "columnsAutoSize", "columnMenu", "columnsReorderable", "columnsResizable", "dragScrollSettings"], outputs: ["selectionChange", "rowExpand", "taskDblClick", "cellDblClick", "cellClose", "taskDelete", "rowCollapse", "remove", "cancel", "save", "taskAdd", "dependencyAdd", "sortChange", "filterChange", "dataStateChange", "treeListPaneCollapsedChange", "timelinePaneCollapsedChange", "timelinePaneSizeChange", "activeViewChange", "columnResize", "columnReorder", "columnVisibilityChange", "columnLockedChange", "cellClick", "taskClick"], exportAs: ["kendoGantt"] }, { type: i2.GanttColumnComponent, selector: "kendo-gantt-column", inputs: ["format", "filter", "filterable", "editor", "editable", "locked", "lockable", "hidden", "media", "style", "headerStyle", "footerStyle", "class", "headerClass", "footerClass"] }, { type: i2.ViewSelectorComponent, selector: "kendo-gantt-view-selector", inputs: ["views", "activeView"], outputs: ["activeViewChange"] }, { type: i2.TimelineDayViewComponent, selector: "kendo-gantt-timeline-day-view" }, { type: i2.TimelineWeekViewComponent, selector: "kendo-gantt-timeline-week-view" }, { type: i2.TimelineMonthViewComponent, selector: "kendo-gantt-timeline-month-view" }, { type: i2.TimelineYearViewComponent, selector: "kendo-gantt-timeline-year-view" }], directives: [{ type: i2.GanttExpandableDirective, selector: "[kendoGanttExpandable]", inputs: ["expandBy"], exportAs: ["kendoGanttExpandable"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.ToolbarTemplateDirective, selector: "[kendoGanttToolbarTemplate]", inputs: ["position"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
156
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: ZganttchartComponent, decorators: [{
|
|
157
|
-
type: Component,
|
|
158
|
-
args: [{ selector: 'app-zganttchart', template: "<kendo-gantt [style.height.px]=\"500\"\r\n [data]=\"ganttData\"\r\n kendoGanttExpandable\r\n [initiallyExpanded]=\"true\"\r\n [toolbarSettings]=\"{ position: 'both', addTaskTool: 'none' }\"\r\n [activeView]=\"activeView\"\r\n [sortable]=\"true\"\r\n [selectable]=\"selectable\"\r\n [isSelected]=\"isSelected\"\r\n (cellClick)=\"toggleSelection($event)\"\r\n (taskClick)=\"toggleSelection($event)\"\r\n [timelinePaneOptions]=\"{ collapsed: collapsed,\r\n collapsible: collapsible,\r\n size: timelineSize\r\n }\">\r\n <kendo-gantt-column *ngFor=\"let col of columns;\"\r\n [field]=\"col.field\"\r\n [title]=\"col.title\"\r\n [width]=\"col.width\"\r\n [format]=\"col.format\">\r\n </kendo-gantt-column>\r\n <ng-template kendoGanttToolbarTemplate\r\n position=\"both\"\r\n let-position=\"position\">\r\n <div *ngIf=\"position === 'top'\" class=\"toolbar-top\">\r\n <span>{{data.Title}}</span>\r\n <kendo-gantt-view-selector [views]=\"views\"\r\n [(activeView)]=\"activeView\"></kendo-gantt-view-selector>\r\n </div>\r\n <div *ngIf=\"position === 'bottom'\" class=\"toolbar-bottom\">\r\n <span>Total {{totalCount}} records</span>\r\n </div>\r\n </ng-template>\r\n <kendo-gantt-timeline-day-view></kendo-gantt-timeline-day-view>\r\n <kendo-gantt-timeline-week-view></kendo-gantt-timeline-week-view>\r\n <kendo-gantt-timeline-month-view></kendo-gantt-timeline-month-view>\r\n <kendo-gantt-timeline-year-view></kendo-gantt-timeline-year-view>\r\n</kendo-gantt>\r\n", styles: ["label.k-radio-label{display:inline-block;margin-right:10px}.toolbar-top{display:flex;width:100%;justify-content:space-between;align-items:center}.toolbar-bottom{display:flex;width:100%;align-items:end}\n"] }]
|
|
159
|
-
}], ctorParameters: function () { return [{ type: i1.ZComponentService }]; } });
|
|
160
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiemdhbnR0Y2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvemdhbnR0Y2hhcnQvemdhbnR0Y2hhcnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvemdhbnR0Y2hhcnQvemdhbnR0Y2hhcnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0JBQStCO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBTzdELDJDQUEyQztBQUMzQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUVwRixPQUFPLEVBRUwsZ0JBQWdCLEVBQ2pCLE1BQU0saUJBQWlCLENBQUM7Ozs7O0FBT3pCLE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxvQkFBb0I7SUFVNUQsWUFDUyxnQkFBbUM7UUFFMUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFGakIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFtQjtRQVZyQyxlQUFVLEdBQXFCLEtBQUssQ0FBQztRQUNyQyxVQUFLLEdBQXVCLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDN0QsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFDcEIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUNyQixZQUFPLEdBQVUsRUFBRSxDQUFDLENBQUMsMkJBQTJCO1FBQ2hELGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDbkIsZUFBVSxHQUFXLENBQUMsQ0FBQztRQStIdkIsbUJBQWMsR0FBYSxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBRXJDLGVBQVUsR0FBRyxDQUFDLFFBQWEsRUFBVyxF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QUNuQyxxREFBcUQ7UUFDckQsSUFBSTtRQUNKLFNBQVM7UUFDVCxrREFBa0Q7UUFDbEQsSUFBSTtRQUVKLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxHQUFHLENBQUM7UUFDOUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFFN0Msa0ZBQWtGO1FBQ2xGLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUVwQixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3pCLE1BQU0sSUFBSSxHQUFHLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUNsRixJQUFJLE9BQU8sSUFBSSxLQUFLLFVBQVUsRUFBRTtnQkFDOUIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUNqRCxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDcEI7WUFDRCxPQUFPO1NBQ1I7SUFDSCxDQUFDO0lBRU0sY0FBYztRQUNuQixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksR0FBRyxDQUFDO0lBQ2hDLENBQUM7O2lIQWpMVSxvQkFBb0I7cUdBQXBCLG9CQUFvQiw4RUNyQmpDLHMxREFzQ0E7MkZEakJhLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDRSxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKioqKioqKioqKiBBbmd1bGFyICoqKioqKioqKiovXHJcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBPbkRlc3Ryb3kgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuLyoqKioqKioqKiogSW9uaWMgKioqKioqKioqKi9cclxuXHJcbi8qKioqKioqKioqIFBsdWdpbiAqKioqKioqKioqL1xyXG5pbXBvcnQgeyBDZWxsQ2xpY2tFdmVudCwgVGFza0NsaWNrRXZlbnQsIFRpbWVsaW5lVmlld1R5cGUgfSBmcm9tIFwiQHByb2dyZXNzL2tlbmRvLWFuZ3VsYXItZ2FudHRcIjtcclxuXHJcbi8qKioqKioqKioqIENvbXBvbmVudCAmIFNlcnZpY2UgKioqKioqKioqKi9cclxuaW1wb3J0IHsgRGF0YUxpc3RpbmdGaWVsZEJhc2UgfSBmcm9tIFwiLi4vY29tcG9uZW50cy9kYXRhbGlzdGluZ2ZpZWxkYmFzZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgWkNvbXBvbmVudFNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvemNvbXBvbmVudC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7XHJcbiAgWkNvbXBvbmVudCxcclxuICBaQ29tcG9uZW50SGVscGVyXHJcbn0gZnJvbSBcIm1taGdsb2JhbC16Y29yZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtemdhbnR0Y2hhcnQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi96Z2FudHRjaGFydC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vemdhbnR0Y2hhcnQuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFpnYW50dGNoYXJ0Q29tcG9uZW50IGV4dGVuZHMgRGF0YUxpc3RpbmdGaWVsZEJhc2UgaW1wbGVtZW50cyBaQ29tcG9uZW50LCBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgcHVibGljIGFjdGl2ZVZpZXc6IFRpbWVsaW5lVmlld1R5cGUgPSBcImRheVwiO1xyXG4gIHB1YmxpYyB2aWV3czogVGltZWxpbmVWaWV3VHlwZVtdID0gW1wiZGF5XCIsIFwid2Vla1wiLCBcIm1vbnRoXCIsIFwieWVhclwiXTtcclxuICBwdWJsaWMgY29sbGFwc2libGUgPSBmYWxzZTtcclxuICBwdWJsaWMgY29sbGFwc2VkID0gZmFsc2U7XHJcbiAgcHVibGljIHRpbWVsaW5lU2l6ZSA9ICc3MCUnO1xyXG4gIHB1YmxpYyBjb2x1bW5zOiBhbnlbXSA9IFtdOyAvLyBJbml0aWFsaXplIGNvbHVtbnMgYXJyYXlcclxuICBwdWJsaWMgc2VsZWN0YWJsZSA9IGZhbHNlO1xyXG4gIHB1YmxpYyB0b3RhbENvdW50OiBudW1iZXIgPSAwO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBjb21wb25lbnRTZXJ2aWNlOiBaQ29tcG9uZW50U2VydmljZVxyXG4gICkge1xyXG4gICAgc3VwZXIoY29tcG9uZW50U2VydmljZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2FudHREYXRhOiBhbnk7XHJcblxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuY29sbGFwc2libGUgPSB0aGlzLmRhdGEuQWxsb3dDb2xsYXBzZSA/PyBmYWxzZTtcclxuICAgIHRoaXMuY29sbGFwc2VkID0gdGhpcy5kYXRhLkRlZmF1bHRDb2xsYXBzZSA/PyBmYWxzZTtcclxuICAgIHRoaXMudGltZWxpbmVTaXplID0gdGhpcy5kYXRhLlRpbWVsaW5lU2l6ZSA/PyAnNzAlJztcclxuICAgIHRoaXMuc2VsZWN0YWJsZSA9IHRoaXMuZGF0YS5TZWxlY3RhYmxlID8/IGZhbHNlO1xyXG4gICAgdGhpcy5pbml0Vmlld3MoKTtcclxuICAgIHRoaXMuc2V0QWN0aXZlVmlldygpO1xyXG4gICAgdGhpcy5nZW5lcmF0ZUdyaWRDb2x1bW5zKCk7XHJcbiAgICBaQ29tcG9uZW50SGVscGVyLnJlZ2lzdGVyQ29tcG9uZW50KHRoaXMpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5jb21wb25lbnRTZXJ2aWNlLmRlY3JlbWVudENvbXBvbmVudENvdW50ZXJGb3JGaWVsZCh0aGlzLmRhdGEpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGluaXRWaWV3cygpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmRhdGEuVGltZWxpbmVWaWV3VHlwZSAmJiBBcnJheS5pc0FycmF5KHRoaXMuZGF0YS5UaW1lbGluZVZpZXdUeXBlKSkge1xyXG4gICAgICB0aGlzLnZpZXdzID0gdGhpcy5kYXRhLlRpbWVsaW5lVmlld1R5cGVcclxuICAgICAgICAubWFwKHZpZXcgPT4gdmlldy50b0xvd2VyQ2FzZSgpKVxyXG4gICAgICAgIC5maWx0ZXIodmlldyA9PiB0aGlzLmlzVmFsaWRUaW1lbGluZVZpZXcodmlldykpIGFzIFRpbWVsaW5lVmlld1R5cGVbXTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0QWN0aXZlVmlldygpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmRhdGEuVGltZWxpbWVEZWZhdWx0KSB7XHJcbiAgICAgIGNvbnN0IGRlZmF1bHRWaWV3ID0gdGhpcy5kYXRhLlRpbWVsaW1lRGVmYXVsdC50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICBpZiAodGhpcy5pc1ZhbGlkVGltZWxpbmVWaWV3KGRlZmF1bHRWaWV3KSkge1xyXG4gICAgICAgIHRoaXMuYWN0aXZlVmlldyA9IGRlZmF1bHRWaWV3IGFzIFRpbWVsaW5lVmlld1R5cGU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNWYWxpZFRpbWVsaW5lVmlldyh2aWV3OiBzdHJpbmcpOiB2aWV3IGlzIFRpbWVsaW5lVmlld1R5cGUge1xyXG4gICAgcmV0dXJuIFsnZGF5JywgJ3dlZWsnLCAnbW9udGgnLCAneWVhciddLmluY2x1ZGVzKHZpZXcpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZW5lcmF0ZUdyaWRDb2x1bW5zKCk6IHZvaWQge1xyXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHRoaXMuZGF0YS5Db2x1bW5GaWVsZHMpIHx8IHRoaXMuZGF0YS5Db2x1bW5GaWVsZHMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIGNvbnNvbGUud2FybihgSW52YWxpZC9FbXB0eSBnYW50dCBjaGFydCBjb2x1bW4gZmllbGRzOiAnJHt0aGlzLmRhdGEuTmFtZX0nYCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmNvbHVtbnMgPSB0aGlzLmRhdGEuQ29sdW1uRmllbGRzLm1hcChmaWVsZCA9PiAoe1xyXG4gICAgICBuYW1lOiBmaWVsZC5OYW1lLFxyXG4gICAgICBmaWVsZDogZmllbGQuVmFsdWUsXHJcbiAgICAgIHRpdGxlOiBmaWVsZC5OYW1lLFxyXG4gICAgICB3aWR0aDogZmllbGQud2lkdGggfHwgODAsXHJcbiAgICAgIGZvcm1hdDogZmllbGQuRm9ybWF0XHJcbiAgICB9KSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0RGF0YShnYW50dERhdGE6IGFueVtdKTogdm9pZCB7XHJcbiAgICBpZiAoZ2FudHREYXRhKSB7XHJcbiAgICAgIHRoaXMuZ2FudHREYXRhID0gZ2FudHREYXRhLm1hcCh0YXNrID0+ICh7XHJcbiAgICAgICAgLi4udGFzayxcclxuICAgICAgICBzdGFydDogdGhpcy5lbnN1cmVEYXRlKHRhc2suc3RhcnQpLFxyXG4gICAgICAgIGVuZDogdGhpcy5lbnN1cmVEYXRlKHRhc2suZW5kKVxyXG4gICAgICB9KSkuZmlsdGVyKHRhc2sgPT4gdGFzay5zdGFydCAmJiB0YXNrLmVuZCk7IC8vIE9ubHkgaW5jbHVkZSB0YXNrcyB3aXRoIHZhbGlkIHN0YXJ0IGFuZCBlbmQgZGF0ZXNcclxuXHJcbiAgICAgIGlmICh0aGlzLmRhdGEuTWF4KSB7XHJcbiAgICAgICAgdGhpcy5nYW50dERhdGEgPSB0aGlzLmdhbnR0RGF0YS5zbGljZSgwLCB0aGlzLmRhdGEuTWF4KTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy51cGRhdGVWYWx1ZVZhcmlhYmxlKCk7XHJcblxyXG4gICAgICB0aGlzLnRvdGFsQ291bnQgPSB0aGlzLmdhbnR0RGF0YS5sZW5ndGg7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgY29uc29sZS53YXJuKCdObyBkYXRhIHByb3ZpZGVkIHRvIHNldERhdGE7IHJlY2VpdmVkIGEgbnVsbCBvciB1bmRlZmluZWQgcGFyYW1ldGVyLicpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB1cGRhdGVWYWx1ZVZhcmlhYmxlKCkge1xyXG4gICAgLy8gRXh0cmFjdCBhbmQgdHJpbSB0aGUgdmFsdWUgZnJvbSB0aGlzLmRhdGEudmFsdWUgaWYgaXQgZXhpc3RzXHJcbiAgICBjb25zdCBmaWVsZE5hbWUgPSB0aGlzLmRhdGEuVmFsdWUuc3BsaXQoJy4nKS5wb3AoKTsgLy8gR2V0cyB0aGUgbGFzdCBwYXJ0IGFmdGVyIHRoZSBsYXN0IGRvdFxyXG5cclxuICAgIGlmICghZmllbGROYW1lKSB7XHJcbiAgICAgIGNvbnNvbGUud2FybihgR2FudHQgQ2hhcnQgJHt0aGlzLmRhdGEuTmFtZX0gVmFsdWUgY291bGQgbm90IGJlIGRldGVybWluZWQuYCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICAvLyBEZXRlcm1pbmUgdGhlIHRhcmdldCBvYmplY3QgXHJcbiAgICBpZiAodGhpcy5kYXRhLlZhbHVlLmluY2x1ZGVzKCdncm91cC4nKSAmJiB0aGlzLmdyb3VwKSB7XHJcbiAgICAgIHRoaXMuZ3JvdXBbZmllbGROYW1lXSA9IHRoaXMuZ2FudHREYXRhO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIGlmICh0aGlzLmhhc093blByb3BlcnR5KGZpZWxkTmFtZSkpIHtcclxuICAgICAgICB0aGlzW2ZpZWxkTmFtZV0gPSB0aGlzLmdhbnR0RGF0YTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBlbnN1cmVEYXRlKGRhdGU6IHN0cmluZyB8IERhdGUpOiBEYXRlIHwgbnVsbCB7XHJcbiAgICAvLyBDaGVjayBpZiB0aGUgZGF0ZSBpcyBhbHJlYWR5IGEgRGF0ZSBvYmplY3RcclxuICAgIGlmIChkYXRlIGluc3RhbmNlb2YgRGF0ZSkge1xyXG4gICAgICByZXR1cm4gZGF0ZTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBJZiB0aGUgZGF0ZSBpcyBhIHN0cmluZywgY29udmVydCBpdCB0byBhIERhdGUgb2JqZWN0XHJcbiAgICBjb25zdCBwYXJzZWREYXRlID0gbmV3IERhdGUoZGF0ZSk7XHJcbiAgICBpZiAoIWlzTmFOKHBhcnNlZERhdGUuZ2V0VGltZSgpKSkge1xyXG4gICAgICByZXR1cm4gcGFyc2VkRGF0ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIC8vIExvZyBhIHdhcm5pbmcgaWYgdGhlIGRhdGUgc3RyaW5nIGlzIGludmFsaWQgYW5kIHJldHVybiBhIGRlZmF1bHQgZGF0ZSBvciBudWxsXHJcbiAgICAgIC8vIGNvbnNvbGUud2FybihgSW52YWxpZCBkYXRlIGZvcm1hdDogJHtkYXRlfWApO1xyXG4gICAgICByZXR1cm4gbnVsbDsgLy8gb3IgcmV0dXJuIG51bGwgaWYgeW91IHByZWZlciB0byBoYW5kbGUgaW52YWxpZCBkYXRlcyBkaWZmZXJlbnRseVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBzZWxlY3RlZEtleXMoKTogbnVtYmVyW10ge1xyXG4gICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5zZWxlY3Rpb25TdGF0ZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2VsZWN0aW9uU3RhdGU6IFNldDxhbnk+ID0gbmV3IFNldCgpO1xyXG5cclxuICBwdWJsaWMgaXNTZWxlY3RlZCA9IChkYXRhSXRlbTogYW55KTogYm9vbGVhbiA9PiB7XHJcbiAgICByZXR1cm4gdGhpcy5zZWxlY3Rpb25TdGF0ZS5oYXMoZGF0YUl0ZW1bdGhpcy5kYXRhLlVuaXF1ZUtleSA/PyBcIklkXCJdKTtcclxuICB9O1xyXG5cclxuICBwdWJsaWMgdG9nZ2xlU2VsZWN0aW9uKHtcclxuICAgIGRhdGFJdGVtLFxyXG4gICAgc2VuZGVyLFxyXG4gICAgb3JpZ2luYWxFdmVudCxcclxuICB9OiBDZWxsQ2xpY2tFdmVudCB8IFRhc2tDbGlja0V2ZW50KTogdm9pZCB7XHJcbiAgICAvLyBQcmV2ZW50cyBjb250ZXh0IG1lbnUgb3BlbmluZ1xyXG4gICAgb3JpZ2luYWxFdmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG5cclxuICAgIGNvbnN0IHVuaXF1ZUtleSA9IHRoaXMuZGF0YS5VbmlxdWVLZXkgPz8gXCJJZFwiO1xyXG5cclxuICAgIC8vIEZvciBmdXR1cmUgdG9nZ2xpbmcgbXVsdGkgc2VsZWN0IFxyXG4gICAgLy8gaWYgKHRoaXMuaXNTZWxlY3RlZChkYXRhSXRlbSkpIHtcclxuICAgIC8vICAgdGhpcy5zZWxlY3Rpb25TdGF0ZS5kZWxldGUoZGF0YUl0ZW1bdW5pcXVlS2V5XSk7XHJcbiAgICAvLyB9XHJcbiAgICAvLyBlbHNlIHtcclxuICAgIC8vICAgdGhpcy5zZWxlY3Rpb25TdGF0ZS5hZGQoZGF0YUl0ZW1bdW5pcXVlS2V5XSk7XHJcbiAgICAvLyB9XHJcblxyXG4gICAgdGhpcy5zZWxlY3Rpb25TdGF0ZSA9IG5ldyBTZXQ7XHJcbiAgICB0aGlzLnNlbGVjdGlvblN0YXRlLmFkZChkYXRhSXRlbVt1bmlxdWVLZXldKTtcclxuXHJcbiAgICAvLyBNYW51YWxseSB0cmlnZ2VyIHRoZSBHYW50dCB0byByZS1ldmFsdWF0ZSB0aGUgaXNTZWxlY3RlZCBjYWxsYmFjayBmb3IgZWFjaCB0YXNrXHJcbiAgICBzZW5kZXIudXBkYXRlVmlldygpO1xyXG5cclxuICAgIGlmICh0aGlzLmRhdGEuT25JdGVtQ2xpY2spIHtcclxuICAgICAgY29uc3QgZnVuYyA9IFpDb21wb25lbnRIZWxwZXIuZ2V0R3JvdXBFdmFsVmFsdWUuY2FsbCh0aGlzLCB0aGlzLmRhdGEuT25JdGVtQ2xpY2spO1xyXG4gICAgICBpZiAodHlwZW9mIGZ1bmMgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICBjb25zdCBjYWxsRnVuYyA9IGZ1bmMuYmluZCh0aGlzLmdyb3VwLmN0cmxTY29wZSk7XHJcbiAgICAgICAgY2FsbEZ1bmMoZGF0YUl0ZW0pO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBjbGVhclNlbGVjdGlvbigpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VsZWN0aW9uU3RhdGUgPSBuZXcgU2V0O1xyXG4gIH1cclxufVxyXG4iLCI8a2VuZG8tZ2FudHQgW3N0eWxlLmhlaWdodC5weF09XCI1MDBcIlxyXG4gICAgICAgICAgICAgW2RhdGFdPVwiZ2FudHREYXRhXCJcclxuICAgICAgICAgICAgIGtlbmRvR2FudHRFeHBhbmRhYmxlXHJcbiAgICAgICAgICAgICBbaW5pdGlhbGx5RXhwYW5kZWRdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICBbdG9vbGJhclNldHRpbmdzXT1cInsgcG9zaXRpb246ICdib3RoJywgYWRkVGFza1Rvb2w6ICdub25lJyB9XCJcclxuICAgICAgICAgICAgIFthY3RpdmVWaWV3XT1cImFjdGl2ZVZpZXdcIlxyXG4gICAgICAgICAgICAgW3NvcnRhYmxlXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgW3NlbGVjdGFibGVdPVwic2VsZWN0YWJsZVwiXHJcbiAgICAgICAgICAgICBbaXNTZWxlY3RlZF09XCJpc1NlbGVjdGVkXCJcclxuICAgICAgICAgICAgIChjZWxsQ2xpY2spPVwidG9nZ2xlU2VsZWN0aW9uKCRldmVudClcIlxyXG4gICAgICAgICAgICAgKHRhc2tDbGljayk9XCJ0b2dnbGVTZWxlY3Rpb24oJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICBbdGltZWxpbmVQYW5lT3B0aW9uc109XCJ7IGNvbGxhcHNlZDogY29sbGFwc2VkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbGxhcHNpYmxlOiBjb2xsYXBzaWJsZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplOiB0aW1lbGluZVNpemVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVwiPlxyXG4gIDxrZW5kby1nYW50dC1jb2x1bW4gKm5nRm9yPVwibGV0IGNvbCBvZiBjb2x1bW5zO1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbZmllbGRdPVwiY29sLmZpZWxkXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCJjb2wudGl0bGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW3dpZHRoXT1cImNvbC53aWR0aFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbZm9ybWF0XT1cImNvbC5mb3JtYXRcIj5cclxuICA8L2tlbmRvLWdhbnR0LWNvbHVtbj5cclxuICA8bmctdGVtcGxhdGUga2VuZG9HYW50dFRvb2xiYXJUZW1wbGF0ZVxyXG4gICAgICAgICAgICAgICBwb3NpdGlvbj1cImJvdGhcIlxyXG4gICAgICAgICAgICAgICBsZXQtcG9zaXRpb249XCJwb3NpdGlvblwiPlxyXG4gICAgPGRpdiAqbmdJZj1cInBvc2l0aW9uID09PSAndG9wJ1wiIGNsYXNzPVwidG9vbGJhci10b3BcIj5cclxuICAgICAgPHNwYW4+e3tkYXRhLlRpdGxlfX08L3NwYW4+XHJcbiAgICAgIDxrZW5kby1nYW50dC12aWV3LXNlbGVjdG9yIFt2aWV3c109XCJ2aWV3c1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsoYWN0aXZlVmlldyldPVwiYWN0aXZlVmlld1wiPjwva2VuZG8tZ2FudHQtdmlldy1zZWxlY3Rvcj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiAqbmdJZj1cInBvc2l0aW9uID09PSAnYm90dG9tJ1wiIGNsYXNzPVwidG9vbGJhci1ib3R0b21cIj5cclxuICAgICAgPHNwYW4+VG90YWwge3t0b3RhbENvdW50fX0gcmVjb3Jkczwvc3Bhbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbiAgPGtlbmRvLWdhbnR0LXRpbWVsaW5lLWRheS12aWV3Pjwva2VuZG8tZ2FudHQtdGltZWxpbmUtZGF5LXZpZXc+XHJcbiAgPGtlbmRvLWdhbnR0LXRpbWVsaW5lLXdlZWstdmlldz48L2tlbmRvLWdhbnR0LXRpbWVsaW5lLXdlZWstdmlldz5cclxuICA8a2VuZG8tZ2FudHQtdGltZWxpbmUtbW9udGgtdmlldz48L2tlbmRvLWdhbnR0LXRpbWVsaW5lLW1vbnRoLXZpZXc+XHJcbiAgPGtlbmRvLWdhbnR0LXRpbWVsaW5lLXllYXItdmlldz48L2tlbmRvLWdhbnR0LXRpbWVsaW5lLXllYXItdmlldz5cclxuPC9rZW5kby1nYW50dD5cclxuIl19
|
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
/********** Angular **********/
|
|
2
|
-
import { Component } from "@angular/core";
|
|
3
|
-
/********** Ionic **********/
|
|
4
|
-
/********** Plugin **********/
|
|
5
|
-
/********** Component & Service **********/
|
|
6
|
-
import { FieldBase } from "../components/fieldbase.component";
|
|
7
|
-
import { ZComponentHelper } from 'mmhglobal-zcore';
|
|
8
|
-
import * as i0 from "@angular/core";
|
|
9
|
-
import * as i1 from "../services/zcomponent.service";
|
|
10
|
-
import * as i2 from "@progress/kendo-angular-gauges";
|
|
11
|
-
import * as i3 from "@angular/common";
|
|
12
|
-
import * as i4 from "@angular/flex-layout/extended";
|
|
13
|
-
export class ZgaugeComponent extends FieldBase {
|
|
14
|
-
constructor(componentService) {
|
|
15
|
-
super(componentService);
|
|
16
|
-
this.componentService = componentService;
|
|
17
|
-
this.isLoading = true;
|
|
18
|
-
this.value = 0;
|
|
19
|
-
this.title = "";
|
|
20
|
-
this.color = [];
|
|
21
|
-
this.majorTicks = { visible: true, color: '#0000ff' };
|
|
22
|
-
this.minorTicks = { visible: true, color: '#0000ff' };
|
|
23
|
-
this.startAngle = 0;
|
|
24
|
-
this.endAngle = 180;
|
|
25
|
-
this.minValue = 0;
|
|
26
|
-
this.maxValue = 200;
|
|
27
|
-
this.options = {
|
|
28
|
-
value: this.value,
|
|
29
|
-
title: this.title,
|
|
30
|
-
chartInnerText1: '',
|
|
31
|
-
chartInnerText2: '',
|
|
32
|
-
scaleMax: 50,
|
|
33
|
-
colors: this.color,
|
|
34
|
-
transitions: false,
|
|
35
|
-
majorTicks: this.majorTicks,
|
|
36
|
-
minorTicks: this.minorTicks,
|
|
37
|
-
minValue: this.minValue,
|
|
38
|
-
maxValue: this.maxValue,
|
|
39
|
-
reverse: false,
|
|
40
|
-
startAngle: this.startAngle,
|
|
41
|
-
endAngle: this.endAngle,
|
|
42
|
-
rangePlaceholderColor: '#e6e5e5',
|
|
43
|
-
labelsColor: '#0000ff',
|
|
44
|
-
rangeFrom: 0,
|
|
45
|
-
rangeTo: 100,
|
|
46
|
-
rangeColor: '#ff6358',
|
|
47
|
-
rangeLineCap: 'round',
|
|
48
|
-
showLabels: true,
|
|
49
|
-
rangeSize: 10,
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
ngOnInit() {
|
|
53
|
-
this.isLoading = true;
|
|
54
|
-
this.initComponent();
|
|
55
|
-
if (this.data.Options) {
|
|
56
|
-
const optionType = typeof (this.data.Options);
|
|
57
|
-
if (optionType === 'object') {
|
|
58
|
-
Object.assign(this.options, this.data.Options);
|
|
59
|
-
}
|
|
60
|
-
else if (optionType === 'string') {
|
|
61
|
-
const optionValue = ZComponentHelper.getGroupEvalValue.call(this, this.data.Options);
|
|
62
|
-
if (typeof (optionValue) === 'object') {
|
|
63
|
-
Object.assign(this.options, optionValue);
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
this.getFieldDeclarationForSetup(this.data, this.options);
|
|
68
|
-
this.isLoading = false;
|
|
69
|
-
}
|
|
70
|
-
ngAfterViewInit() {
|
|
71
|
-
this.componentService.decrementComponentCounterForField(this.data);
|
|
72
|
-
}
|
|
73
|
-
getGaugeStyle() {
|
|
74
|
-
return this.componentProperties.style.style3 ? this.componentService.convertStyleStringToObject(this.componentProperties.style.style3) : { 'white-space': 'initial' };
|
|
75
|
-
}
|
|
76
|
-
getFieldDeclarationForSetup(field, options) {
|
|
77
|
-
if (field.Value.startsWith('group.')) {
|
|
78
|
-
options.value = ZComponentHelper.getGroupEvalValue.call(this, field.Value) || options.value;
|
|
79
|
-
}
|
|
80
|
-
else {
|
|
81
|
-
options.value = this.group.zModel[field.Value] || options.value;
|
|
82
|
-
options.value = parseInt(options.value);
|
|
83
|
-
}
|
|
84
|
-
options.title = ZComponentHelper.getGroupEvalValue.call(this, field.Title) || options.title;
|
|
85
|
-
options.scaleMax = field.Max || options.scaleMax; // not using
|
|
86
|
-
options.minValue = ZComponentHelper.getGroupEvalValue.call(this, field.MinValue) || options.minValue || 0;
|
|
87
|
-
options.maxValue = ZComponentHelper.getGroupEvalValue.call(this, field.MaxValue) || options.maxValue || 100;
|
|
88
|
-
options.colors = ZComponentHelper.getGroupEvalValue.call(this, field.Color) || options.colors || { color: "#0175c7" };
|
|
89
|
-
options.transitions = field.Transitions || options.transitions;
|
|
90
|
-
options.majorTicks = ZComponentHelper.getGroupEvalValue.call(this, field.MajorTicks) || options.majorTicks || { visible: true, color: '#0000ff' };
|
|
91
|
-
options.minorTicks = ZComponentHelper.getGroupEvalValue.call(this, field.MinorTicks) || options.minorTicks || { visible: true, color: '#0000ff' };
|
|
92
|
-
options.showLabels = field.ShowLabels != undefined ? field.ShowLabels : options.showLabels;
|
|
93
|
-
options.style = field.Style || options.style;
|
|
94
|
-
options.reverse = field.Reverse || options.reverse;
|
|
95
|
-
options.startAngle = ZComponentHelper.getGroupEvalValue.call(this, field.StartAngle) || options.startAngle || 0;
|
|
96
|
-
options.endAngle = ZComponentHelper.getGroupEvalValue.call(this, field.EndAngle) || options.endAngle || 180;
|
|
97
|
-
options.rangePlaceholderColor = field.RangePlaceholderColor || options.rangePlaceholderColor;
|
|
98
|
-
options.rangeFrom = ZComponentHelper.getGroupEvalValue.call(this, field.RangeFrom) || options.rangeFrom;
|
|
99
|
-
options.rangeTo = ZComponentHelper.getGroupEvalValue.call(this, field.RangeTo) || options.rangeTo;
|
|
100
|
-
options.rangeColor = field.RangeColor || options.rangeColor;
|
|
101
|
-
options.rangeLineCap = field.RangeLineCap || options.rangeLineCap;
|
|
102
|
-
options.rangeSize = field.RangeSize || options.rangeSize;
|
|
103
|
-
options.GaugeAlignment = ZComponentHelper.getGroupEvalValue.call(this, field.GaugeAlignment) || options.GaugeAlignment;
|
|
104
|
-
options.paddingValue = options.value.toString() === 'NaN' ? options.GaugeAlignment : '0%';
|
|
105
|
-
}
|
|
106
|
-
alignment() {
|
|
107
|
-
const alignmentStyle = {
|
|
108
|
-
"padding-right": this.options["paddingValue"]
|
|
109
|
-
};
|
|
110
|
-
return alignmentStyle;
|
|
111
|
-
}
|
|
112
|
-
setData(gData) {
|
|
113
|
-
this.getFieldDeclarationForSetup(this.data, this.options);
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
ZgaugeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: ZgaugeComponent, deps: [{ token: i1.ZComponentService }], target: i0.ɵɵFactoryTarget.Component });
|
|
117
|
-
ZgaugeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.3", type: ZgaugeComponent, selector: "app-zgauge", usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"!isLoading && (!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\" style=\"text-align: center;\">\r\n <div id=\"marketShareContainer\" class=\"ion-row\" class=\"col-xs-12 stats-graph\" *ngIf=\"options.title\">\r\n <h6 style=\"color: gray;\">{{ options.title }}</h6>\r\n </div>\r\n <div [ngStyle]='alignment()'>\r\n <kendo-arcgauge [value]=\"options.value\" [transitions]=\"options.transitions\" [colors]=\"options.colors\" style=\"margin-top:50px;width:90% ;height:100%; min-width: 330px;\">\r\n <kendo-arcgauge-scale [majorTicks]=\"options.majorTicks\"\r\n [minorTicks]=\"options.minorTicks\"\r\n [reverse]=\"options.reverse\"\r\n [startAngle]=\"options.startAngle\"\r\n [endAngle]=\"options.endAngle\"\r\n [min]=\"options.minValue\"\r\n [max]=\"options.maxValue\"\r\n [rangePlaceholderColor]=\"options.rangePlaceholderColor\"\r\n [rangeSize]=\"options.rangeSize\"\r\n [rangeLineCap]=\"options.rangeLineCap\">\r\n <kendo-arcgauge-scale-labels format=\"l\" [color]=\"options.labelsColor\" [visible]=\"options.showLabels\">\r\n </kendo-arcgauge-scale-labels>\r\n </kendo-arcgauge-scale>\r\n <ng-template kendoArcGaugeCenterTemplate let-value=\"value\" let-color=\"color\">\r\n <span [style.color]=\"color\">{{ value }}</span>\r\n </ng-template>\r\n </kendo-arcgauge>\r\n </div>\r\n</div>\r\n\r\n<!--<div *ngIf=\"!isLoading && (!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\"\r\n [style]=\"componentProperties.style.style\" class=\"e1tag-style\">\r\n <div class=\"chart-top-title e1tag-style1\" [style]=\"componentProperties.style.style1\" *ngIf=\"options.title\">\r\n {{options.title}}\r\n </div>\r\n <div [style]=\"componentProperties.style.style2\" class=\"e1tag-style2\">\r\n <kendo-arcgauge [value]=\"options.value\" [transitions]=\"options.transitions\" [colors]=\"options.colors\"\r\n [style]=\"getGaugeStyle()\" class=\"e1tag-style3\">\r\n <kendo-arcgauge-scale [majorTicks]=\"options.majorTicks\"\r\n [minorTicks]=\"options.minorTicks\"\r\n [reverse]=\"options.reverse\"\r\n [startAngle]=\"options.startAngle\"\r\n [endAngle]=\"options.endAngle\"\r\n [min]=\"options.minValue\"\r\n [max]=\"options.maxValue\"\r\n [rangePlaceholderColor]=\"options.rangePlaceholderColor\"\r\n [rangeSize]=\"options.rangeSize\"\r\n [rangeLineCap]=\"options.rangeLineCap\">\r\n <kendo-arcgauge-scale-labels format=\"l\" [color]=\"options.labelsColor\" [visible]=\"options.showLabels\">\r\n </kendo-arcgauge-scale-labels>\r\n </kendo-arcgauge-scale>\r\n <ng-template kendoArcGaugeCenterTemplate let-value=\"value\" let-color=\"color\">\r\n <div *ngIf=\"options.chartInnerText1\" [style]=\"componentProperties.style.style4\" class=\"e1tag-style4\">{{ options.chartInnerText1 }}</div>\r\n <div *ngIf=\"options.chartInnerText2\" [style]=\"componentProperties.style.style5\" class=\"e1tag-style5\">{{ options.chartInnerText2 }}</div>\r\n </ng-template>\r\n </kendo-arcgauge>\r\n </div>\r\n</div>-->\r\n\r\n", styles: [""], components: [{ type: i2.ArcGaugeComponent, selector: "kendo-arcgauge", inputs: ["value", "color", "colors", "opacity", "scale"], exportAs: ["kendoArcGauge"] }, { type: i2.ArcScaleComponent, selector: "kendo-arcgauge-scale", inputs: ["labels", "rangeDistance", "rangeLineCap", "startAngle", "endAngle"] }, { type: i2.ArcLabelsComponent, selector: "kendo-arcgauge-scale-labels" }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i4.DefaultStyleDirective, selector: " [ngStyle], [ngStyle.xs], [ngStyle.sm], [ngStyle.md], [ngStyle.lg], [ngStyle.xl], [ngStyle.lt-sm], [ngStyle.lt-md], [ngStyle.lt-lg], [ngStyle.lt-xl], [ngStyle.gt-xs], [ngStyle.gt-sm], [ngStyle.gt-md], [ngStyle.gt-lg]", inputs: ["ngStyle", "ngStyle.xs", "ngStyle.sm", "ngStyle.md", "ngStyle.lg", "ngStyle.xl", "ngStyle.lt-sm", "ngStyle.lt-md", "ngStyle.lt-lg", "ngStyle.lt-xl", "ngStyle.gt-xs", "ngStyle.gt-sm", "ngStyle.gt-md", "ngStyle.gt-lg"] }, { type: i2.ArcCenterTemplateDirective, selector: "[kendoArcGaugeCenterTemplate]" }] });
|
|
118
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: ZgaugeComponent, decorators: [{
|
|
119
|
-
type: Component,
|
|
120
|
-
args: [{ selector: 'app-zgauge', template: "<div *ngIf=\"!isLoading && (!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\" style=\"text-align: center;\">\r\n <div id=\"marketShareContainer\" class=\"ion-row\" class=\"col-xs-12 stats-graph\" *ngIf=\"options.title\">\r\n <h6 style=\"color: gray;\">{{ options.title }}</h6>\r\n </div>\r\n <div [ngStyle]='alignment()'>\r\n <kendo-arcgauge [value]=\"options.value\" [transitions]=\"options.transitions\" [colors]=\"options.colors\" style=\"margin-top:50px;width:90% ;height:100%; min-width: 330px;\">\r\n <kendo-arcgauge-scale [majorTicks]=\"options.majorTicks\"\r\n [minorTicks]=\"options.minorTicks\"\r\n [reverse]=\"options.reverse\"\r\n [startAngle]=\"options.startAngle\"\r\n [endAngle]=\"options.endAngle\"\r\n [min]=\"options.minValue\"\r\n [max]=\"options.maxValue\"\r\n [rangePlaceholderColor]=\"options.rangePlaceholderColor\"\r\n [rangeSize]=\"options.rangeSize\"\r\n [rangeLineCap]=\"options.rangeLineCap\">\r\n <kendo-arcgauge-scale-labels format=\"l\" [color]=\"options.labelsColor\" [visible]=\"options.showLabels\">\r\n </kendo-arcgauge-scale-labels>\r\n </kendo-arcgauge-scale>\r\n <ng-template kendoArcGaugeCenterTemplate let-value=\"value\" let-color=\"color\">\r\n <span [style.color]=\"color\">{{ value }}</span>\r\n </ng-template>\r\n </kendo-arcgauge>\r\n </div>\r\n</div>\r\n\r\n<!--<div *ngIf=\"!isLoading && (!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\"\r\n [style]=\"componentProperties.style.style\" class=\"e1tag-style\">\r\n <div class=\"chart-top-title e1tag-style1\" [style]=\"componentProperties.style.style1\" *ngIf=\"options.title\">\r\n {{options.title}}\r\n </div>\r\n <div [style]=\"componentProperties.style.style2\" class=\"e1tag-style2\">\r\n <kendo-arcgauge [value]=\"options.value\" [transitions]=\"options.transitions\" [colors]=\"options.colors\"\r\n [style]=\"getGaugeStyle()\" class=\"e1tag-style3\">\r\n <kendo-arcgauge-scale [majorTicks]=\"options.majorTicks\"\r\n [minorTicks]=\"options.minorTicks\"\r\n [reverse]=\"options.reverse\"\r\n [startAngle]=\"options.startAngle\"\r\n [endAngle]=\"options.endAngle\"\r\n [min]=\"options.minValue\"\r\n [max]=\"options.maxValue\"\r\n [rangePlaceholderColor]=\"options.rangePlaceholderColor\"\r\n [rangeSize]=\"options.rangeSize\"\r\n [rangeLineCap]=\"options.rangeLineCap\">\r\n <kendo-arcgauge-scale-labels format=\"l\" [color]=\"options.labelsColor\" [visible]=\"options.showLabels\">\r\n </kendo-arcgauge-scale-labels>\r\n </kendo-arcgauge-scale>\r\n <ng-template kendoArcGaugeCenterTemplate let-value=\"value\" let-color=\"color\">\r\n <div *ngIf=\"options.chartInnerText1\" [style]=\"componentProperties.style.style4\" class=\"e1tag-style4\">{{ options.chartInnerText1 }}</div>\r\n <div *ngIf=\"options.chartInnerText2\" [style]=\"componentProperties.style.style5\" class=\"e1tag-style5\">{{ options.chartInnerText2 }}</div>\r\n </ng-template>\r\n </kendo-arcgauge>\r\n </div>\r\n</div>-->\r\n\r\n", styles: [""] }]
|
|
121
|
-
}], ctorParameters: function () { return [{ type: i1.ZComponentService }]; } });
|
|
122
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiemdhdWdlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21taGdsb2JhbC1keW5hbWljZm9ybS9zcmMvbGliL3pnYXVnZS96Z2F1Z2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvemdhdWdlL3pnYXVnZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQkFBK0I7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUVsRCw2QkFBNkI7QUFFN0IsOEJBQThCO0FBRTlCLDJDQUEyQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFOUQsT0FBTyxFQUFjLGdCQUFnQixFQUFVLE1BQU0saUJBQWlCLENBQUM7Ozs7OztBQVN2RSxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxTQUFTO0lBcUM1QyxZQUNTLGdCQUFtQztRQUUxQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUZqQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQW1CO1FBckM1QyxjQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ1QsVUFBSyxHQUFHLENBQUMsQ0FBQztRQUNWLFVBQUssR0FBRyxFQUFFLENBQUM7UUFDWCxVQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ1gsZUFBVSxHQUFHLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLENBQUM7UUFDakQsZUFBVSxHQUFHLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLENBQUM7UUFDakQsZUFBVSxHQUFHLENBQUMsQ0FBQztRQUNmLGFBQVEsR0FBRyxHQUFHLENBQUM7UUFDZixhQUFRLEdBQUcsQ0FBQyxDQUFDO1FBQ2IsYUFBUSxHQUFHLEdBQUcsQ0FBQztRQUV2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KioqKi9cclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuLyoqKioqKioqKiogSW9uaWMgKioqKioqKioqKi9cclxuXHJcbi8qKioqKioqKioqIFBsdWdpbiAqKioqKioqKioqL1xyXG5cclxuLyoqKioqKioqKiogQ29tcG9uZW50ICYgU2VydmljZSAqKioqKioqKioqL1xyXG5pbXBvcnQgeyBGaWVsZEJhc2UgfSBmcm9tIFwiLi4vY29tcG9uZW50cy9maWVsZGJhc2UuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFpDb21wb25lbnRTZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL3pjb21wb25lbnQuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBaQ29tcG9uZW50LCBaQ29tcG9uZW50SGVscGVyLCBaRmllbGQgfSBmcm9tICdtbWhnbG9iYWwtemNvcmUnO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLXpnYXVnZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3pnYXVnZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vemdhdWdlLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgWmdhdWdlQ29tcG9uZW50IGV4dGVuZHMgRmllbGRCYXNlIGltcGxlbWVudHMgWkNvbXBvbmVudCwgT25Jbml0IHtcclxuICBpc0xvYWRpbmcgPSB0cnVlO1xyXG4gIHByaXZhdGUgdmFsdWUgPSAwO1xyXG4gIHByaXZhdGUgdGl0bGUgPSBcIlwiO1xyXG4gIHByaXZhdGUgY29sb3IgPSBbXTtcclxuICBwcml2YXRlIG1ham9yVGlja3MgPSB7IHZpc2libGU6IHRydWUsIGNvbG9yOiAnIzAwMDBmZicgfTtcclxuICBwcml2YXRlIG1pbm9yVGlja3MgPSB7IHZpc2libGU6IHRydWUsIGNvbG9yOiAnIzAwMDBmZicgfTtcclxuICBwcml2YXRlIHN0YXJ0QW5nbGUgPSAwO1xyXG4gIHByaXZhdGUgZW5kQW5nbGUgPSAxODA7XHJcbiAgcHJpdmF0ZSBtaW5WYWx1ZSA9IDA7XHJcbiAgcHJpdmF0ZSBtYXhWYWx1ZSA9IDIwMDtcclxuXHJcbiAgb3B0aW9ucyA9IHtcclxuICAgIHZhbHVlOiB0aGlzLnZhbHVlLFxyXG4gICAgdGl0bGU6IHRoaXMudGl0bGUsXHJcbiAgICBjaGFydElubmVyVGV4dDE6ICcnLFxyXG4gICAgY2hhcnRJbm5lclRleHQyOiAnJyxcclxuICAgIHNjYWxlTWF4OiA1MCxcclxuICAgIGNvbG9yczogdGhpcy5jb2xvcixcclxuICAgIHRyYW5zaXRpb25zOiBmYWxzZSxcclxuICAgIG1ham9yVGlja3M6IHRoaXMubWFqb3JUaWNrcyxcclxuICAgIG1pbm9yVGlja3M6IHRoaXMubWlub3JUaWNrcyxcclxuICAgIG1pblZhbHVlOiB0aGlzLm1pblZhbHVlLFxyXG4gICAgbWF4VmFsdWU6IHRoaXMubWF4VmFsdWUsXHJcbiAgICByZXZlcnNlOiBmYWxzZSxcclxuICAgIHN0YXJ0QW5nbGU6IHRoaXMuc3RhcnRBbmdsZSxcclxuICAgIGVuZEFuZ2xlOiB0aGlzLmVuZEFuZ2xlLFxyXG4gICAgcmFuZ2VQbGFjZWhvbGRlckNvbG9yOiAnI2U2ZTVlNScsXHJcbiAgICBsYWJlbHNDb2xvcjogJyMwMDAwZmYnLFxyXG4gICAgcmFuZ2VGcm9tOiAwLFxyXG4gICAgcmFuZ2VUbzogMTAwLFxyXG4gICAgcmFuZ2VDb2xvcjogJyNmZjYzNTgnLFxyXG4gICAgcmFuZ2VMaW5lQ2FwOiAncm91bmQnLFxyXG4gICAgc2hvd0xhYmVsczogdHJ1ZSxcclxuICAgIHJhbmdlU2l6ZTogMTAsXHJcbiAgfTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgY29tcG9uZW50U2VydmljZTogWkNvbXBvbmVudFNlcnZpY2VcclxuICApIHtcclxuICAgIHN1cGVyKGNvbXBvbmVudFNlcnZpY2UpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLmluaXRDb21wb25lbnQoKTtcclxuXHJcbiAgICBpZiAodGhpcy5kYXRhLk9wdGlvbnMpIHtcclxuICAgICAgY29uc3Qgb3B0aW9uVHlwZSA9IHR5cGVvZiAodGhpcy5kYXRhLk9wdGlvbnMpO1xyXG4gICAgICBpZiAob3B0aW9uVHlwZSA9PT0gJ29iamVjdCcpIHtcclxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMub3B0aW9ucywgdGhpcy5kYXRhLk9wdGlvbnMpO1xyXG4gICAgICB9IGVsc2UgaWYgKG9wdGlvblR5cGUgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgY29uc3Qgb3B0aW9uVmFsdWUgPSBaQ29tcG9uZW50SGVscGVyLmdldEdyb3VwRXZhbFZhbHVlLmNhbGwodGhpcywgdGhpcy5kYXRhLk9wdGlvbnMpO1xyXG4gICAgICAgIGlmICh0eXBlb2YgKG9wdGlvblZhbHVlKSA9PT0gJ29iamVjdCcpIHtcclxuICAgICAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5vcHRpb25zLCBvcHRpb25WYWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5nZXRGaWVsZERlY2xhcmF0aW9uRm9yU2V0dXAodGhpcy5kYXRhLCB0aGlzLm9wdGlvbnMpO1xyXG4gICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuY29tcG9uZW50U2VydmljZS5kZWNyZW1lbnRDb21wb25lbnRDb3VudGVyRm9yRmllbGQodGhpcy5kYXRhKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRHYXVnZVN0eWxlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuY29tcG9uZW50UHJvcGVydGllcy5zdHlsZS5zdHlsZTMgPyB0aGlzLmNvbXBvbmVudFNlcnZpY2UuY29udmVydFN0eWxlU3RyaW5nVG9PYmplY3QodGhpcy5jb21wb25lbnRQcm9wZXJ0aWVzLnN0eWxlLnN0eWxlMykgOiB7ICd3aGl0ZS1zcGFjZSc6ICdpbml0aWFsJyB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEZpZWxkRGVjbGFyYXRpb25Gb3JTZXR1cChmaWVsZDogWkZpZWxkLCBvcHRpb25zOiBhbnkpIHtcclxuICAgIGlmIChmaWVsZC5WYWx1ZS5zdGFydHNXaXRoKCdncm91cC4nKSkge1xyXG4gICAgICBvcHRpb25zLnZhbHVlID0gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cEV2YWxWYWx1ZS5jYWxsKHRoaXMsIGZpZWxkLlZhbHVlKSB8fCBvcHRpb25zLnZhbHVlO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIG9wdGlvbnMudmFsdWUgPSB0aGlzLmdyb3VwLnpNb2RlbFtmaWVsZC5WYWx1ZV0gfHwgb3B0aW9ucy52YWx1ZTtcclxuICAgICAgb3B0aW9ucy52YWx1ZSA9IHBhcnNlSW50KG9wdGlvbnMudmFsdWUpO1xyXG4gICAgfVxyXG4gICAgb3B0aW9ucy50aXRsZSA9IFpDb21wb25lbnRIZWxwZXIuZ2V0R3JvdXBFdmFsVmFsdWUuY2FsbCh0aGlzLCBmaWVsZC5UaXRsZSkgfHwgb3B0aW9ucy50aXRsZTtcclxuICAgIG9wdGlvbnMuc2NhbGVNYXggPSBmaWVsZC5NYXggfHwgb3B0aW9ucy5zY2FsZU1heDsgLy8gbm90IHVzaW5nXHJcbiAgICBvcHRpb25zLm1pblZhbHVlID0gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cEV2YWxWYWx1ZS5jYWxsKHRoaXMsIGZpZWxkLk1pblZhbHVlKSB8fCBvcHRpb25zLm1pblZhbHVlIHx8IDA7XHJcbiAgICBvcHRpb25zLm1heFZhbHVlID0gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cEV2YWxWYWx1ZS5jYWxsKHRoaXMsIGZpZWxkLk1heFZhbHVlKSB8fCBvcHRpb25zLm1heFZhbHVlIHx8IDEwMDtcclxuICAgIG9wdGlvbnMuY29sb3JzID0gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cEV2YWxWYWx1ZS5jYWxsKHRoaXMsIGZpZWxkLkNvbG9yKSB8fCBvcHRpb25zLmNvbG9ycyB8fCB7IGNvbG9yOiBcIiMwMTc1YzdcIiB9O1xyXG4gICAgb3B0aW9ucy50cmFuc2l0aW9ucyA9IGZpZWxkLlRyYW5zaXRpb25zIHx8IG9wdGlvbnMudHJhbnNpdGlvbnM7XHJcbiAgICBvcHRpb25zLm1ham9yVGlja3MgPSBaQ29tcG9uZW50SGVscGVyLmdldEdyb3VwRXZhbFZhbHVlLmNhbGwodGhpcywgZmllbGQuTWFqb3JUaWNrcykgfHwgb3B0aW9ucy5tYWpvclRpY2tzIHx8IHsgdmlzaWJsZTogdHJ1ZSwgY29sb3I6ICcjMDAwMGZmJyB9O1xyXG4gICAgb3B0aW9ucy5taW5vclRpY2tzID0gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cEV2YWxWYWx1ZS5jYWxsKHRoaXMsIGZpZWxkLk1pbm9yVGlja3MpIHx8IG9wdGlvbnMubWlub3JUaWNrcyB8fCB7IHZpc2libGU6IHRydWUsIGNvbG9yOiAnIzAwMDBmZicgfTtcclxuICAgIG9wdGlvbnMuc2hvd0xhYmVscyA9IGZpZWxkLlNob3dMYWJlbHMgIT0gdW5kZWZpbmVkID8gZmllbGQuU2hvd0xhYmVscyA6IG9wdGlvbnMuc2hvd0xhYmVscztcclxuICAgIG9wdGlvbnMuc3R5bGUgPSBmaWVsZC5TdHlsZSB8fCBvcHRpb25zLnN0eWxlO1xyXG4gICAgb3B0aW9ucy5yZXZlcnNlID0gZmllbGQuUmV2ZXJzZSB8fCBvcHRpb25zLnJldmVyc2U7XHJcbiAgICBvcHRpb25zLnN0YXJ0QW5nbGUgPSBaQ29tcG9uZW50SGVscGVyLmdldEdyb3VwRXZhbFZhbHVlLmNhbGwodGhpcywgZmllbGQuU3RhcnRBbmdsZSkgfHwgb3B0aW9ucy5zdGFydEFuZ2xlIHx8IDA7XHJcbiAgICBvcHRpb25zLmVuZEFuZ2xlID0gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cEV2YWxWYWx1ZS5jYWxsKHRoaXMsIGZpZWxkLkVuZEFuZ2xlKSB8fCBvcHRpb25zLmVuZEFuZ2xlIHx8IDE4MDtcclxuICAgIG9wdGlvbnMucmFuZ2VQbGFjZWhvbGRlckNvbG9yID0gZmllbGQuUmFuZ2VQbGFjZWhvbGRlckNvbG9yIHx8IG9wdGlvbnMucmFuZ2VQbGFjZWhvbGRlckNvbG9yO1xyXG4gICAgb3B0aW9ucy5yYW5nZUZyb20gPSBaQ29tcG9uZW50SGVscGVyLmdldEdyb3VwRXZhbFZhbHVlLmNhbGwodGhpcywgZmllbGQuUmFuZ2VGcm9tKSB8fCBvcHRpb25zLnJhbmdlRnJvbTtcclxuICAgIG9wdGlvbnMucmFuZ2VUbyA9IFpDb21wb25lbnRIZWxwZXIuZ2V0R3JvdXBFdmFsVmFsdWUuY2FsbCh0aGlzLCBmaWVsZC5SYW5nZVRvKSB8fCBvcHRpb25zLnJhbmdlVG87XHJcbiAgICBvcHRpb25zLnJhbmdlQ29sb3IgPSBmaWVsZC5SYW5nZUNvbG9yIHx8IG9wdGlvbnMucmFuZ2VDb2xvcjtcclxuICAgIG9wdGlvbnMucmFuZ2VMaW5lQ2FwID0gZmllbGQuUmFuZ2VMaW5lQ2FwIHx8IG9wdGlvbnMucmFuZ2VMaW5lQ2FwO1xyXG4gICAgb3B0aW9ucy5yYW5nZVNpemUgPSBmaWVsZC5SYW5nZVNpemUgfHwgb3B0aW9ucy5yYW5nZVNpemU7XHJcbiAgICBvcHRpb25zLkdhdWdlQWxpZ25tZW50ID0gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cEV2YWxWYWx1ZS5jYWxsKHRoaXMsIGZpZWxkLkdhdWdlQWxpZ25tZW50KSB8fCBvcHRpb25zLkdhdWdlQWxpZ25tZW50O1xyXG4gICAgb3B0aW9ucy5wYWRkaW5nVmFsdWUgPSBvcHRpb25zLnZhbHVlLnRvU3RyaW5nKCkgPT09ICdOYU4nID8gb3B0aW9ucy5HYXVnZUFsaWdubWVudCA6ICcwJSc7XHJcbiAgfVxyXG5cclxuICBhbGlnbm1lbnQoKSB7XHJcbiAgICBjb25zdCBhbGlnbm1lbnRTdHlsZSA9IHtcclxuICAgICAgXCJwYWRkaW5nLXJpZ2h0XCI6IHRoaXMub3B0aW9uc1tcInBhZGRpbmdWYWx1ZVwiXVxyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gYWxpZ25tZW50U3R5bGU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0RGF0YShnRGF0YTogYW55KSB7XHJcbiAgICB0aGlzLmdldEZpZWxkRGVjbGFyYXRpb25Gb3JTZXR1cCh0aGlzLmRhdGEsIHRoaXMub3B0aW9ucyk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgKm5nSWY9XCIhaXNMb2FkaW5nICYmICghIWNvbXBvbmVudFByb3BlcnRpZXMuaXNWaXNpYmxlRmllbGQgPyBncm91cFtjb21wb25lbnRQcm9wZXJ0aWVzLmlzVmlzaWJsZUZpZWxkXSA6IGNvbXBvbmVudFByb3BlcnRpZXMuaXNWaXNpYmxlKVwiIHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyO1wiPlxyXG4gIDxkaXYgaWQ9XCJtYXJrZXRTaGFyZUNvbnRhaW5lclwiIGNsYXNzPVwiaW9uLXJvd1wiIGNsYXNzPVwiY29sLXhzLTEyIHN0YXRzLWdyYXBoXCIgKm5nSWY9XCJvcHRpb25zLnRpdGxlXCI+XHJcbiAgICA8aDYgc3R5bGU9XCJjb2xvcjogZ3JheTtcIj57eyBvcHRpb25zLnRpdGxlIH19PC9oNj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IFtuZ1N0eWxlXT0nYWxpZ25tZW50KCknPlxyXG4gICAgPGtlbmRvLWFyY2dhdWdlIFt2YWx1ZV09XCJvcHRpb25zLnZhbHVlXCIgW3RyYW5zaXRpb25zXT1cIm9wdGlvbnMudHJhbnNpdGlvbnNcIiBbY29sb3JzXT1cIm9wdGlvbnMuY29sb3JzXCIgc3R5bGU9XCJtYXJnaW4tdG9wOjUwcHg7d2lkdGg6OTAlIDtoZWlnaHQ6MTAwJTsgbWluLXdpZHRoOiAzMzBweDtcIj5cclxuICAgICAgPGtlbmRvLWFyY2dhdWdlLXNjYWxlIFttYWpvclRpY2tzXT1cIm9wdGlvbnMubWFqb3JUaWNrc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWlub3JUaWNrc109XCJvcHRpb25zLm1pbm9yVGlja3NcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JldmVyc2VdPVwib3B0aW9ucy5yZXZlcnNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdGFydEFuZ2xlXT1cIm9wdGlvbnMuc3RhcnRBbmdsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZW5kQW5nbGVdPVwib3B0aW9ucy5lbmRBbmdsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWluXT1cIm9wdGlvbnMubWluVmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW21heF09XCJvcHRpb25zLm1heFZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyYW5nZVBsYWNlaG9sZGVyQ29sb3JdPVwib3B0aW9ucy5yYW5nZVBsYWNlaG9sZGVyQ29sb3JcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JhbmdlU2l6ZV09XCJvcHRpb25zLnJhbmdlU2l6ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmFuZ2VMaW5lQ2FwXT1cIm9wdGlvbnMucmFuZ2VMaW5lQ2FwXCI+XHJcbiAgICAgICAgPGtlbmRvLWFyY2dhdWdlLXNjYWxlLWxhYmVscyBmb3JtYXQ9XCJsXCIgW2NvbG9yXT1cIm9wdGlvbnMubGFiZWxzQ29sb3JcIiBbdmlzaWJsZV09XCJvcHRpb25zLnNob3dMYWJlbHNcIj5cclxuICAgICAgICA8L2tlbmRvLWFyY2dhdWdlLXNjYWxlLWxhYmVscz5cclxuICAgICAgPC9rZW5kby1hcmNnYXVnZS1zY2FsZT5cclxuICAgICAgPG5nLXRlbXBsYXRlIGtlbmRvQXJjR2F1Z2VDZW50ZXJUZW1wbGF0ZSBsZXQtdmFsdWU9XCJ2YWx1ZVwiIGxldC1jb2xvcj1cImNvbG9yXCI+XHJcbiAgICAgICAgPHNwYW4gW3N0eWxlLmNvbG9yXT1cImNvbG9yXCI+e3sgdmFsdWUgfX08L3NwYW4+XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L2tlbmRvLWFyY2dhdWdlPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjwhLS08ZGl2ICpuZ0lmPVwiIWlzTG9hZGluZyAmJiAoISFjb21wb25lbnRQcm9wZXJ0aWVzLmlzVmlzaWJsZUZpZWxkID8gZ3JvdXBbY29tcG9uZW50UHJvcGVydGllcy5pc1Zpc2libGVGaWVsZF0gOiBjb21wb25lbnRQcm9wZXJ0aWVzLmlzVmlzaWJsZSlcIlxyXG4gICAgIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLnN0eWxlLnN0eWxlXCIgY2xhc3M9XCJlMXRhZy1zdHlsZVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJjaGFydC10b3AtdGl0bGUgZTF0YWctc3R5bGUxXCIgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuc3R5bGUuc3R5bGUxXCIgKm5nSWY9XCJvcHRpb25zLnRpdGxlXCI+XHJcbiAgICB7e29wdGlvbnMudGl0bGV9fVxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuc3R5bGUuc3R5bGUyXCIgY2xhc3M9XCJlMXRhZy1zdHlsZTJcIj5cclxuICAgIDxrZW5kby1hcmNnYXVnZSBbdmFsdWVdPVwib3B0aW9ucy52YWx1ZVwiIFt0cmFuc2l0aW9uc109XCJvcHRpb25zLnRyYW5zaXRpb25zXCIgW2NvbG9yc109XCJvcHRpb25zLmNvbG9yc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW3N0eWxlXT1cImdldEdhdWdlU3R5bGUoKVwiIGNsYXNzPVwiZTF0YWctc3R5bGUzXCI+XHJcbiAgICAgIDxrZW5kby1hcmNnYXVnZS1zY2FsZSBbbWFqb3JUaWNrc109XCJvcHRpb25zLm1ham9yVGlja3NcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW21pbm9yVGlja3NdPVwib3B0aW9ucy5taW5vclRpY2tzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZXZlcnNlXT1cIm9wdGlvbnMucmV2ZXJzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3RhcnRBbmdsZV09XCJvcHRpb25zLnN0YXJ0QW5nbGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2VuZEFuZ2xlXT1cIm9wdGlvbnMuZW5kQW5nbGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW21pbl09XCJvcHRpb25zLm1pblZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttYXhdPVwib3B0aW9ucy5tYXhWYWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmFuZ2VQbGFjZWhvbGRlckNvbG9yXT1cIm9wdGlvbnMucmFuZ2VQbGFjZWhvbGRlckNvbG9yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyYW5nZVNpemVdPVwib3B0aW9ucy5yYW5nZVNpemVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JhbmdlTGluZUNhcF09XCJvcHRpb25zLnJhbmdlTGluZUNhcFwiPlxyXG4gICAgICAgIDxrZW5kby1hcmNnYXVnZS1zY2FsZS1sYWJlbHMgZm9ybWF0PVwibFwiIFtjb2xvcl09XCJvcHRpb25zLmxhYmVsc0NvbG9yXCIgW3Zpc2libGVdPVwib3B0aW9ucy5zaG93TGFiZWxzXCI+XHJcbiAgICAgICAgPC9rZW5kby1hcmNnYXVnZS1zY2FsZS1sYWJlbHM+XHJcbiAgICAgIDwva2VuZG8tYXJjZ2F1Z2Utc2NhbGU+XHJcbiAgICAgIDxuZy10ZW1wbGF0ZSBrZW5kb0FyY0dhdWdlQ2VudGVyVGVtcGxhdGUgbGV0LXZhbHVlPVwidmFsdWVcIiBsZXQtY29sb3I9XCJjb2xvclwiPlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJvcHRpb25zLmNoYXJ0SW5uZXJUZXh0MVwiIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLnN0eWxlLnN0eWxlNFwiIGNsYXNzPVwiZTF0YWctc3R5bGU0XCI+e3sgb3B0aW9ucy5jaGFydElubmVyVGV4dDEgfX08L2Rpdj5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwib3B0aW9ucy5jaGFydElubmVyVGV4dDJcIiBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5zdHlsZS5zdHlsZTVcIiBjbGFzcz1cImUxdGFnLXN0eWxlNVwiPnt7IG9wdGlvbnMuY2hhcnRJbm5lclRleHQyIH19PC9kaXY+XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L2tlbmRvLWFyY2dhdWdlPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj4tLT5cclxuXHJcbiJdfQ==
|
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
/********** Angular **********/
|
|
2
|
-
import { Component, ViewChild, ViewContainerRef, HostListener } from '@angular/core';
|
|
3
|
-
/********** Ionic **********/
|
|
4
|
-
/********** Plugin **********/
|
|
5
|
-
import { filter, interval, tap, first } from 'rxjs';
|
|
6
|
-
import { DrawerComponent } from '@progress/kendo-angular-layout';
|
|
7
|
-
/********** Component & Service **********/
|
|
8
|
-
import { FieldBase } from '../../components/fieldbase.component';
|
|
9
|
-
import { ZComponentHelper } from 'mmhglobal-zcore';
|
|
10
|
-
import * as i0 from "@angular/core";
|
|
11
|
-
import * as i1 from "../../services/zcomponent.service";
|
|
12
|
-
import * as i2 from "../../services/main.service";
|
|
13
|
-
import * as i3 from "@progress/kendo-angular-layout";
|
|
14
|
-
import * as i4 from "@ionic/angular";
|
|
15
|
-
import * as i5 from "@fortawesome/angular-fontawesome";
|
|
16
|
-
import * as i6 from "../zgrid.component";
|
|
17
|
-
import * as i7 from "../../embed-components/page-loader/page-loader.component";
|
|
18
|
-
import * as i8 from "@angular/common";
|
|
19
|
-
export class ZgridContainerComponent extends FieldBase {
|
|
20
|
-
constructor(componentService, mainService) {
|
|
21
|
-
super(componentService);
|
|
22
|
-
this.componentService = componentService;
|
|
23
|
-
this.mainService = mainService;
|
|
24
|
-
this.isShowFormPage = false;
|
|
25
|
-
}
|
|
26
|
-
ngOnInit() {
|
|
27
|
-
if (this.data.ComponentStyleType === `style${2}`) {
|
|
28
|
-
this.setupStyle2();
|
|
29
|
-
}
|
|
30
|
-
else if (this.data.ComponentStyleType === `style${3}`) {
|
|
31
|
-
this.setupStyle3();
|
|
32
|
-
}
|
|
33
|
-
super.initComponent().subscribe();
|
|
34
|
-
}
|
|
35
|
-
ngAfterViewInit() {
|
|
36
|
-
this.componentService.decrementComponentCounterForField(this.data);
|
|
37
|
-
}
|
|
38
|
-
ngOnDestroy() {
|
|
39
|
-
}
|
|
40
|
-
//#region Helper Functions
|
|
41
|
-
displayFormPage() {
|
|
42
|
-
const pageElement = ZComponentHelper.getGroupValue(this.data['ContainerForm'], this.group);
|
|
43
|
-
this.mainService.loadContainerView({ viewContainerRef: this.formPage }, pageElement, this.data, this.group);
|
|
44
|
-
}
|
|
45
|
-
//#endregion
|
|
46
|
-
//#region Style 3: DEC
|
|
47
|
-
setupStyle3() {
|
|
48
|
-
this.group[`e1CloseGridContainer`] = this.toggleFormPage.bind(this, false);
|
|
49
|
-
}
|
|
50
|
-
toggleFormPage(isShow) {
|
|
51
|
-
this.isShowFormPage = isShow;
|
|
52
|
-
if (isShow) {
|
|
53
|
-
this.displayFormPage();
|
|
54
|
-
this.mainService.scrollToEmbbedComponentPage();
|
|
55
|
-
}
|
|
56
|
-
else {
|
|
57
|
-
if (this.data.ContainerFormAutoScroll) {
|
|
58
|
-
this.mainService.scrollToTopOfPage();
|
|
59
|
-
}
|
|
60
|
-
this.formPage.clear();
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
//#region Stlye 2: Drawer
|
|
64
|
-
onResize(event) {
|
|
65
|
-
this.setDrawerWidth();
|
|
66
|
-
}
|
|
67
|
-
setupStyle2() {
|
|
68
|
-
this.setDrawerWidth();
|
|
69
|
-
this.group[`e1CloseGridContainer`] = this.toggleDrawer.bind(this, false);
|
|
70
|
-
}
|
|
71
|
-
toggleDrawer() {
|
|
72
|
-
this.drawer.toggle();
|
|
73
|
-
}
|
|
74
|
-
onExpandChange(isExpanded) {
|
|
75
|
-
this.isShowFormPage = isExpanded;
|
|
76
|
-
if (isExpanded) {
|
|
77
|
-
this.setupDrawerContent();
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
setupDrawerContent() {
|
|
81
|
-
// Need to wait for form page to render in DOM
|
|
82
|
-
if (this.data['ContainerForm']) {
|
|
83
|
-
interval(500).pipe(filter(x => this.formPage), first(), tap(() => {
|
|
84
|
-
this.displayFormPage();
|
|
85
|
-
})).subscribe();
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
setDrawerWidth() {
|
|
89
|
-
this.innerWidth = (window.innerWidth * 0.8);
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
ZgridContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: ZgridContainerComponent, deps: [{ token: i1.ZComponentService }, { token: i2.MainService }], target: i0.ɵɵFactoryTarget.Component });
|
|
93
|
-
ZgridContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.3", type: ZgridContainerComponent, selector: "app-zgrid-container", host: { listeners: { "window:resize": "onResize($event)" } }, viewQueries: [{ propertyName: "formPage", first: true, predicate: ["formPage"], descendants: true, read: ViewContainerRef }, { propertyName: "drawer", first: true, predicate: DrawerComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"grid-container\" *ngIf=\"data.ComponentStyleType === 'style2'\">\r\n <kendo-drawer-container [style]=\"componentProperties.containerStyle.style\" class=\"e1tag-container-style\">\r\n <kendo-drawer #drawer mode=\"overlay\" [position]=\"'end'\" [mini]=\"false\" [animation]=\"{duration: 800}\" [expanded]=\"isShowFormPage\"\r\n [style]=\"componentProperties.containerStyle.style1\" class=\"e1tag-container-style1\" [width]=\"innerWidth\"\r\n (expandedChange)=\"onExpandChange($event)\">\r\n <ng-template kendoDrawerTemplate>\r\n <div [style]=\"componentProperties.containerStyle.style2\" class=\"e1tag-container-style2\">\r\n <div class=\"formHeader\">\r\n <label class=\"formHeader-title\">Employee Profile</label>\r\n <ion-button size=\"small\" fill=\"clear\" color=\"medium\" (click)=\"drawer.toggle()\">\r\n <fa-icon class=\"close-btn-icon\" icon=\"times\"></fa-icon>\r\n </ion-button>\r\n </div>\r\n <ng-container #formPage></ng-container>\r\n </div>\r\n </ng-template>\r\n </kendo-drawer>\r\n\r\n <kendo-drawer-content [style]=\"componentProperties.containerStyle.style3\" class=\"e1tag-container-style3\">\r\n <app-zgrid [style]=\"componentProperties.containerStyle.style4\" class=\"e1tag-container-style4\" [data]=\"data\"\r\n [group]=\"group\" [form]=\"form\" [containerField]=\"containerField\" [componentProperties]=\"componentProperties\"\r\n (showFormPage)=\"drawer.toggle($event)\">\r\n </app-zgrid>\r\n </kendo-drawer-content>\r\n </kendo-drawer-container>\r\n</div>\r\n\r\n\r\n<div class=\"grid-container\" *ngIf=\"data.ComponentStyleType !== 'style2'\">\r\n <app-zgrid [style]=\"componentProperties.containerStyle.style4\" class=\"e1tag-container-style4\" [data]=\"data\"\r\n [group]=\"group\" [form]=\"form\" [containerField]=\"containerField\" [componentProperties]=\"componentProperties\"\r\n (showFormPage)=\"toggleFormPage($event)\">\r\n </app-zgrid>\r\n <div>\r\n <div *ngIf=\"!group.isLoading\" [class.embeddedFormPage]=\"isShowFormPage\">\r\n <ng-container #formPage></ng-container>\r\n </div>\r\n <div *ngIf=\"group.isLoading\" class=\"spinner-container\">\r\n <app-page-loader></app-page-loader>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [":host ::ng-deep kendo-drawer{box-shadow:-1px 0 11px 1px var(--ion-color-primary);background:#f1f9ff}:host ::ng-deep kendo-drawer .k-drawer-wrapper{padding:10px;padding-top:calc(var(--ion-header-height) + 10px)}:host ::ng-deep kendo-drawer .formHeader{display:flex}:host ::ng-deep kendo-drawer .formHeader>.formHeader-title{margin:10px 0 0 20px;font-size:calc(var(--page-title-font-size) + 2px);font-weight:600;flex-grow:1}:host ::ng-deep kendo-drawer .formHeader .close-btn-icon{font-size:calc(var(--page-title-font-size) + 4px)}.embeddedFormPage{min-height:1200px;padding:8px 10px 20px;background:#ffffff;border-radius:5px;box-shadow:0 -3px 9px 4px #0167ae;margin:30px 15px 15px}\n"], components: [{ type: i3.DrawerContainerComponent, selector: "kendo-drawer-container" }, { type: i3.DrawerComponent, selector: "kendo-drawer", inputs: ["mode", "position", "mini", "expanded", "width", "miniWidth", "autoCollapse", "items", "isItemExpanded", "animation"], outputs: ["expand", "collapse", "select", "expandedChange"], exportAs: ["kendoDrawer"] }, { type: i4.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { type: i5.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }, { type: i3.DrawerContentComponent, selector: "kendo-drawer-content" }, { type: i6.ZgridComponent, selector: "app-zgrid" }, { type: i7.PageLoaderComponent, selector: "app-page-loader" }], directives: [{ type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.DrawerTemplateDirective, selector: "[kendoDrawerTemplate]" }] });
|
|
94
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: ZgridContainerComponent, decorators: [{
|
|
95
|
-
type: Component,
|
|
96
|
-
args: [{ selector: 'app-zgrid-container', template: "<div class=\"grid-container\" *ngIf=\"data.ComponentStyleType === 'style2'\">\r\n <kendo-drawer-container [style]=\"componentProperties.containerStyle.style\" class=\"e1tag-container-style\">\r\n <kendo-drawer #drawer mode=\"overlay\" [position]=\"'end'\" [mini]=\"false\" [animation]=\"{duration: 800}\" [expanded]=\"isShowFormPage\"\r\n [style]=\"componentProperties.containerStyle.style1\" class=\"e1tag-container-style1\" [width]=\"innerWidth\"\r\n (expandedChange)=\"onExpandChange($event)\">\r\n <ng-template kendoDrawerTemplate>\r\n <div [style]=\"componentProperties.containerStyle.style2\" class=\"e1tag-container-style2\">\r\n <div class=\"formHeader\">\r\n <label class=\"formHeader-title\">Employee Profile</label>\r\n <ion-button size=\"small\" fill=\"clear\" color=\"medium\" (click)=\"drawer.toggle()\">\r\n <fa-icon class=\"close-btn-icon\" icon=\"times\"></fa-icon>\r\n </ion-button>\r\n </div>\r\n <ng-container #formPage></ng-container>\r\n </div>\r\n </ng-template>\r\n </kendo-drawer>\r\n\r\n <kendo-drawer-content [style]=\"componentProperties.containerStyle.style3\" class=\"e1tag-container-style3\">\r\n <app-zgrid [style]=\"componentProperties.containerStyle.style4\" class=\"e1tag-container-style4\" [data]=\"data\"\r\n [group]=\"group\" [form]=\"form\" [containerField]=\"containerField\" [componentProperties]=\"componentProperties\"\r\n (showFormPage)=\"drawer.toggle($event)\">\r\n </app-zgrid>\r\n </kendo-drawer-content>\r\n </kendo-drawer-container>\r\n</div>\r\n\r\n\r\n<div class=\"grid-container\" *ngIf=\"data.ComponentStyleType !== 'style2'\">\r\n <app-zgrid [style]=\"componentProperties.containerStyle.style4\" class=\"e1tag-container-style4\" [data]=\"data\"\r\n [group]=\"group\" [form]=\"form\" [containerField]=\"containerField\" [componentProperties]=\"componentProperties\"\r\n (showFormPage)=\"toggleFormPage($event)\">\r\n </app-zgrid>\r\n <div>\r\n <div *ngIf=\"!group.isLoading\" [class.embeddedFormPage]=\"isShowFormPage\">\r\n <ng-container #formPage></ng-container>\r\n </div>\r\n <div *ngIf=\"group.isLoading\" class=\"spinner-container\">\r\n <app-page-loader></app-page-loader>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [":host ::ng-deep kendo-drawer{box-shadow:-1px 0 11px 1px var(--ion-color-primary);background:#f1f9ff}:host ::ng-deep kendo-drawer .k-drawer-wrapper{padding:10px;padding-top:calc(var(--ion-header-height) + 10px)}:host ::ng-deep kendo-drawer .formHeader{display:flex}:host ::ng-deep kendo-drawer .formHeader>.formHeader-title{margin:10px 0 0 20px;font-size:calc(var(--page-title-font-size) + 2px);font-weight:600;flex-grow:1}:host ::ng-deep kendo-drawer .formHeader .close-btn-icon{font-size:calc(var(--page-title-font-size) + 4px)}.embeddedFormPage{min-height:1200px;padding:8px 10px 20px;background:#ffffff;border-radius:5px;box-shadow:0 -3px 9px 4px #0167ae;margin:30px 15px 15px}\n"] }]
|
|
97
|
-
}], ctorParameters: function () { return [{ type: i1.ZComponentService }, { type: i2.MainService }]; }, propDecorators: { formPage: [{
|
|
98
|
-
type: ViewChild,
|
|
99
|
-
args: ['formPage', { read: ViewContainerRef }]
|
|
100
|
-
}], drawer: [{
|
|
101
|
-
type: ViewChild,
|
|
102
|
-
args: [DrawerComponent]
|
|
103
|
-
}], onResize: [{
|
|
104
|
-
type: HostListener,
|
|
105
|
-
args: ['window:resize', ['$event']]
|
|
106
|
-
}] } });
|
|
107
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiemdyaWQtY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21taGdsb2JhbC1keW5hbWljZm9ybS9zcmMvbGliL3pncmlkL2NvbnRhaW5lci96Z3JpZC1jb250YWluZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvemdyaWQvY29udGFpbmVyL3pncmlkLWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQkFBK0I7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBcUIsU0FBUyxFQUFFLGdCQUFnQixFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV4Ryw2QkFBNkI7QUFFN0IsOEJBQThCO0FBQzlCLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRWpFLDJDQUEyQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFHakUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7Ozs7QUFTbkQsTUFBTSxPQUFPLHVCQUF3QixTQUFRLFNBQVM7SUFPcEQsWUFDUyxnQkFBbUMsRUFDbEMsV0FBd0I7UUFFaEMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFIakIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFtQjtRQUNsQyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUozQixtQkFBYyxHQUFHLEtBQUssQ0FBQztJQU85QixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsS0FBSyxRQUFRLENB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LENBQUMsQ0FBQztJQUM5QyxDQUFDOztvSEFoR1UsdUJBQXVCO3dHQUF2Qix1QkFBdUIsME1BQ0gsZ0JBQWdCLHNEQUNwQyxlQUFlLHVFQ3hCNUIsNHlFQTBDQTsyRkRwQmEsdUJBQXVCO2tCQU5uQyxTQUFTOytCQUNFLHFCQUFxQjtrSUFNb0IsUUFBUTtzQkFBMUQsU0FBUzt1QkFBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQ2QsTUFBTTtzQkFBeEMsU0FBUzt1QkFBQyxlQUFlO2dCQXlEMUIsUUFBUTtzQkFEUCxZQUFZO3VCQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKioqKioqKioqIEFuZ3VsYXIgKioqKioqKioqKi9cclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIE9uRGVzdHJveSwgVmlld0NoaWxkLCBWaWV3Q29udGFpbmVyUmVmLCBIb3N0TGlzdGVuZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbi8qKioqKioqKioqIElvbmljICoqKioqKioqKiovXHJcblxyXG4vKioqKioqKioqKiBQbHVnaW4gKioqKioqKioqKi9cclxuaW1wb3J0IHsgZmlsdGVyLCBpbnRlcnZhbCwgdGFwLCBmaXJzdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBEcmF3ZXJDb21wb25lbnQgfSBmcm9tICdAcHJvZ3Jlc3Mva2VuZG8tYW5ndWxhci1sYXlvdXQnO1xyXG5cclxuLyoqKioqKioqKiogQ29tcG9uZW50ICYgU2VydmljZSAqKioqKioqKioqL1xyXG5pbXBvcnQgeyBGaWVsZEJhc2UgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2ZpZWxkYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBaQ29tcG9uZW50U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3pjb21wb25lbnQuc2VydmljZSc7XHJcbmltcG9ydCB7IE1haW5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbWFpbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgWkNvbXBvbmVudEhlbHBlciB9IGZyb20gJ21taGdsb2JhbC16Y29yZSc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtemdyaWQtY29udGFpbmVyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vemdyaWQtY29udGFpbmVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi96Z3JpZC1jb250YWluZXIuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBaZ3JpZENvbnRhaW5lckNvbXBvbmVudCBleHRlbmRzIEZpZWxkQmFzZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBAVmlld0NoaWxkKCdmb3JtUGFnZScsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiB9KSBmb3JtUGFnZTtcclxuICBAVmlld0NoaWxkKERyYXdlckNvbXBvbmVudCkgcHVibGljIGRyYXdlcjogRHJhd2VyQ29tcG9uZW50O1xyXG5cclxuICBwdWJsaWMgaW5uZXJXaWR0aDogYW55O1xyXG4gIHB1YmxpYyBpc1Nob3dGb3JtUGFnZSA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBjb21wb25lbnRTZXJ2aWNlOiBaQ29tcG9uZW50U2VydmljZSxcclxuICAgIHByaXZhdGUgbWFpblNlcnZpY2U6IE1haW5TZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcihjb21wb25lbnRTZXJ2aWNlKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgaWYgKHRoaXMuZGF0YS5Db21wb25lbnRTdHlsZVR5cGUgPT09IGBzdHlsZSR7Mn1gKSB7XHJcbiAgICAgIHRoaXMuc2V0dXBTdHlsZTIoKTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHRoaXMuZGF0YS5Db21wb25lbnRTdHlsZVR5cGUgPT09IGBzdHlsZSR7M31gKSB7XHJcbiAgICAgIHRoaXMuc2V0dXBTdHlsZTMoKTtcclxuICAgIH1cclxuICAgIHN1cGVyLmluaXRDb21wb25lbnQoKS5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuY29tcG9uZW50U2VydmljZS5kZWNyZW1lbnRDb21wb25lbnRDb3VudGVyRm9yRmllbGQodGhpcy5kYXRhKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gIH1cclxuXHJcbiAgLy8jcmVnaW9uIEhlbHBlciBGdW5jdGlvbnNcclxuICBwcml2YXRlIGRpc3BsYXlGb3JtUGFnZSgpIHtcclxuICAgIGNvbnN0IHBhZ2VFbGVtZW50ID0gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cFZhbHVlKHRoaXMuZGF0YVsnQ29udGFpbmVyRm9ybSddLCB0aGlzLmdyb3VwKTtcclxuICAgIHRoaXMubWFpblNlcnZpY2UubG9hZENvbnRhaW5lclZpZXcoeyB2aWV3Q29udGFpbmVyUmVmOiB0aGlzLmZvcm1QYWdlIH0sIHBhZ2VFbGVtZW50LCB0aGlzLmRhdGEsIHRoaXMuZ3JvdXApO1xyXG4gIH1cclxuICAvLyNlbmRyZWdpb25cclxuXHJcbiAgLy8jcmVnaW9uIFN0eWxlIDM6IERFQ1xyXG4gIHByaXZhdGUgc2V0dXBTdHlsZTMoKSB7XHJcbiAgICB0aGlzLmdyb3VwW2BlMUNsb3NlR3JpZENvbnRhaW5lcmBdID0gdGhpcy50b2dnbGVGb3JtUGFnZS5iaW5kKHRoaXMsIGZhbHNlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB0b2dnbGVGb3JtUGFnZShpc1Nob3c/OiBib29sZWFuKSB7XHJcbiAgICB0aGlzLmlzU2hvd0Zvcm1QYWdlID0gaXNTaG93O1xyXG4gICAgaWYgKGlzU2hvdykge1xyXG4gICAgICB0aGlzLmRpc3BsYXlGb3JtUGFnZSgpO1xyXG4gICAgICB0aGlzLm1haW5TZXJ2aWNlLnNjcm9sbFRvRW1iYmVkQ29tcG9uZW50UGFnZSgpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIGlmICh0aGlzLmRhdGEuQ29udGFpbmVyRm9ybUF1dG9TY3JvbGwpIHtcclxuICAgICAgICB0aGlzLm1haW5TZXJ2aWNlLnNjcm9sbFRvVG9wT2ZQYWdlKCk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5mb3JtUGFnZS5jbGVhcigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8jcmVnaW9uIFN0bHllIDI6IERyYXdlclxyXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnLCBbJyRldmVudCddKVxyXG4gIG9uUmVzaXplKGV2ZW50KSB7XHJcbiAgICB0aGlzLnNldERyYXdlcldpZHRoKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldHVwU3R5bGUyKCkge1xyXG4gICAgdGhpcy5zZXREcmF3ZXJXaWR0aCgpO1xyXG4gICAgdGhpcy5ncm91cFtgZTFDbG9zZUdyaWRDb250YWluZXJgXSA9IHRoaXMudG9nZ2xlRHJhd2VyLmJpbmQodGhpcywgZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB0b2dnbGVEcmF3ZXIoKSB7XHJcbiAgICB0aGlzLmRyYXdlci50b2dnbGUoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkV4cGFuZENoYW5nZShpc0V4cGFuZGVkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLmlzU2hvd0Zvcm1QYWdlID0gaXNFeHBhbmRlZDtcclxuICAgIGlmIChpc0V4cGFuZGVkKSB7XHJcbiAgICAgIHRoaXMuc2V0dXBEcmF3ZXJDb250ZW50KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldHVwRHJhd2VyQ29udGVudCgpIHtcclxuICAgIC8vIE5lZWQgdG8gd2FpdCBmb3IgZm9ybSBwYWdlIHRvIHJlbmRlciBpbiBET01cclxuICAgIGlmICh0aGlzLmRhdGFbJ0NvbnRhaW5lckZvcm0nXSkge1xyXG4gICAgICBpbnRlcnZhbCg1MDApLnBpcGUoXHJcbiAgICAgICAgZmlsdGVyKHggPT5cclxuICAgICAgICAgIHRoaXMuZm9ybVBhZ2VcclxuICAgICAgICApLFxyXG4gICAgICAgIGZpcnN0KCksXHJcbiAgICAgICAgdGFwKCgpID0+IHtcclxuICAgICAgICAgIHRoaXMuZGlzcGxheUZvcm1QYWdlKCk7XHJcbiAgICAgICAgfSlcclxuICAgICAgKS5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0RHJhd2VyV2lkdGgoKSB7XHJcbiAgICB0aGlzLmlubmVyV2lkdGggPSAod2luZG93LmlubmVyV2lkdGggKiAwLjgpO1xyXG4gIH1cclxuICAvLyNlbmRyZWdpb25cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiZ3JpZC1jb250YWluZXJcIiAqbmdJZj1cImRhdGEuQ29tcG9uZW50U3R5bGVUeXBlID09PSAnc3R5bGUyJ1wiPlxyXG4gIDxrZW5kby1kcmF3ZXItY29udGFpbmVyIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLmNvbnRhaW5lclN0eWxlLnN0eWxlXCIgY2xhc3M9XCJlMXRhZy1jb250YWluZXItc3R5bGVcIj5cclxuICAgIDxrZW5kby1kcmF3ZXIgI2RyYXdlciBtb2RlPVwib3ZlcmxheVwiIFtwb3NpdGlvbl09XCInZW5kJ1wiIFttaW5pXT1cImZhbHNlXCIgW2FuaW1hdGlvbl09XCJ7ZHVyYXRpb246IDgwMH1cIiBbZXhwYW5kZWRdPVwiaXNTaG93Rm9ybVBhZ2VcIlxyXG4gICAgICBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5jb250YWluZXJTdHlsZS5zdHlsZTFcIiBjbGFzcz1cImUxdGFnLWNvbnRhaW5lci1zdHlsZTFcIiBbd2lkdGhdPVwiaW5uZXJXaWR0aFwiXHJcbiAgICAgIChleHBhbmRlZENoYW5nZSk9XCJvbkV4cGFuZENoYW5nZSgkZXZlbnQpXCI+XHJcbiAgICAgIDxuZy10ZW1wbGF0ZSBrZW5kb0RyYXdlclRlbXBsYXRlPlxyXG4gICAgICAgIDxkaXYgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuY29udGFpbmVyU3R5bGUuc3R5bGUyXCIgY2xhc3M9XCJlMXRhZy1jb250YWluZXItc3R5bGUyXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybUhlYWRlclwiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtSGVhZGVyLXRpdGxlXCI+RW1wbG95ZWUgUHJvZmlsZTwvbGFiZWw+XHJcbiAgICAgICAgICAgIDxpb24tYnV0dG9uIHNpemU9XCJzbWFsbFwiIGZpbGw9XCJjbGVhclwiIGNvbG9yPVwibWVkaXVtXCIgKGNsaWNrKT1cImRyYXdlci50b2dnbGUoKVwiPlxyXG4gICAgICAgICAgICAgIDxmYS1pY29uIGNsYXNzPVwiY2xvc2UtYnRuLWljb25cIiBpY29uPVwidGltZXNcIj48L2ZhLWljb24+XHJcbiAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAjZm9ybVBhZ2U+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L2tlbmRvLWRyYXdlcj5cclxuXHJcbiAgICA8a2VuZG8tZHJhd2VyLWNvbnRlbnQgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuY29udGFpbmVyU3R5bGUuc3R5bGUzXCIgY2xhc3M9XCJlMXRhZy1jb250YWluZXItc3R5bGUzXCI+XHJcbiAgICAgIDxhcHAtemdyaWQgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuY29udGFpbmVyU3R5bGUuc3R5bGU0XCIgY2xhc3M9XCJlMXRhZy1jb250YWluZXItc3R5bGU0XCIgW2RhdGFdPVwiZGF0YVwiXHJcbiAgICAgICAgW2dyb3VwXT1cImdyb3VwXCIgW2Zvcm1dPVwiZm9ybVwiIFtjb250YWluZXJGaWVsZF09XCJjb250YWluZXJGaWVsZFwiIFtjb21wb25lbnRQcm9wZXJ0aWVzXT1cImNvbXBvbmVudFByb3BlcnRpZXNcIlxyXG4gICAgICAgIChzaG93Rm9ybVBhZ2UpPVwiZHJhd2VyLnRvZ2dsZSgkZXZlbnQpXCI+XHJcbiAgICAgIDwvYXBwLXpncmlkPlxyXG4gICAgPC9rZW5kby1kcmF3ZXItY29udGVudD5cclxuICA8L2tlbmRvLWRyYXdlci1jb250YWluZXI+XHJcbjwvZGl2PlxyXG5cclxuXHJcbjxkaXYgY2xhc3M9XCJncmlkLWNvbnRhaW5lclwiICpuZ0lmPVwiZGF0YS5Db21wb25lbnRTdHlsZVR5cGUgIT09ICdzdHlsZTInXCI+XHJcbiAgPGFwcC16Z3JpZCBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5jb250YWluZXJTdHlsZS5zdHlsZTRcIiBjbGFzcz1cImUxdGFnLWNvbnRhaW5lci1zdHlsZTRcIiBbZGF0YV09XCJkYXRhXCJcclxuICAgIFtncm91cF09XCJncm91cFwiIFtmb3JtXT1cImZvcm1cIiBbY29udGFpbmVyRmllbGRdPVwiY29udGFpbmVyRmllbGRcIiBbY29tcG9uZW50UHJvcGVydGllc109XCJjb21wb25lbnRQcm9wZXJ0aWVzXCJcclxuICAgIChzaG93Rm9ybVBhZ2UpPVwidG9nZ2xlRm9ybVBhZ2UoJGV2ZW50KVwiPlxyXG4gIDwvYXBwLXpncmlkPlxyXG4gIDxkaXY+XHJcbiAgICA8ZGl2ICpuZ0lmPVwiIWdyb3VwLmlzTG9hZGluZ1wiIFtjbGFzcy5lbWJlZGRlZEZvcm1QYWdlXT1cImlzU2hvd0Zvcm1QYWdlXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgI2Zvcm1QYWdlPjwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2ICpuZ0lmPVwiZ3JvdXAuaXNMb2FkaW5nXCIgY2xhc3M9XCJzcGlubmVyLWNvbnRhaW5lclwiPlxyXG4gICAgICA8YXBwLXBhZ2UtbG9hZGVyPjwvYXBwLXBhZ2UtbG9hZGVyPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
|