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,229 +0,0 @@
|
|
|
1
|
-
/********** Angular **********/
|
|
2
|
-
import { Component } from '@angular/core';
|
|
3
|
-
/********** Plugin **********/
|
|
4
|
-
import { map } from 'rxjs/operators';
|
|
5
|
-
/********** Component & Service **********/
|
|
6
|
-
import { ButtonFieldBase } from '../components/buttonfieldbase.component';
|
|
7
|
-
import { ZComponentHelper, FormType, ComponentType } from 'mmhglobal-zcore';
|
|
8
|
-
import * as i0 from "@angular/core";
|
|
9
|
-
import * as i1 from "../services/zcomponent.service";
|
|
10
|
-
import * as i2 from "mmhglobal-zcore";
|
|
11
|
-
import * as i3 from "@ionic/angular";
|
|
12
|
-
import * as i4 from "@fortawesome/angular-fontawesome";
|
|
13
|
-
import * as i5 from "@angular/common";
|
|
14
|
-
export class UiactionbuttonComponent extends ButtonFieldBase {
|
|
15
|
-
constructor(componentService, fieldService, webApiService, resourceApiService, workflowService, actionSheetCtrl) {
|
|
16
|
-
super(componentService);
|
|
17
|
-
this.componentService = componentService;
|
|
18
|
-
this.fieldService = fieldService;
|
|
19
|
-
this.webApiService = webApiService;
|
|
20
|
-
this.resourceApiService = resourceApiService;
|
|
21
|
-
this.workflowService = workflowService;
|
|
22
|
-
this.actionSheetCtrl = actionSheetCtrl;
|
|
23
|
-
this.topRightActionButton = [];
|
|
24
|
-
this.isWorkflowButton = false;
|
|
25
|
-
/******************** zWorkflowButton ********************/
|
|
26
|
-
// URL required
|
|
27
|
-
// eslint-disable-next-line @typescript-eslint/naming-convention,no-underscore-dangle,id-blacklist,id-match
|
|
28
|
-
this.e1wfs_wfcGetWorkflowButtonURL = this.resourceApiService.getURL("e1wfs_wfcGetWorkflowButtonURL");
|
|
29
|
-
// eslint-disable-next-line @typescript-eslint/naming-convention,no-underscore-dangle,id-blacklist,id-match
|
|
30
|
-
this.e1wfs_wfc_getWorkflowInitialStatusURL = this.resourceApiService.getURL("e1wfs_wfc_getWorkflowInitialStatusURL");
|
|
31
|
-
// eslint-disable-next-line @typescript-eslint/naming-convention, no-underscore-dangle, id-blacklist, id-match
|
|
32
|
-
this.e1wfs_wfc_getDocumentStatusURL = this.resourceApiService.getURL("e1wfs_wfc_getDocumentStatusURL");
|
|
33
|
-
}
|
|
34
|
-
/******************** Common function ********************/
|
|
35
|
-
ngOnInit() {
|
|
36
|
-
this.data = this.getFirstzButton(this.group.fields);
|
|
37
|
-
// this.visible = ZComponentHelper.isVisible(buttonData);
|
|
38
|
-
if (this.data) {
|
|
39
|
-
super.initComponent().subscribe(() => {
|
|
40
|
-
this.loadButton();
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
ngAfterViewInit() {
|
|
45
|
-
this.componentService.decrementComponentCounterForField(this.data);
|
|
46
|
-
}
|
|
47
|
-
loadButton() {
|
|
48
|
-
if (!ZComponentHelper.isNullUndefinedEmpty(this.data.WorkflowCode)) {
|
|
49
|
-
// handle as zWorkflowButton
|
|
50
|
-
this.isWorkflowButton = true;
|
|
51
|
-
this.loadWorkflowButton();
|
|
52
|
-
}
|
|
53
|
-
else {
|
|
54
|
-
// handle as zButton
|
|
55
|
-
const field$ = this.fieldService.getFormFieldCode(this.data.Value, FormType.formField, null, null);
|
|
56
|
-
field$.subscribe((data) => {
|
|
57
|
-
this.actionBtnList = data;
|
|
58
|
-
this.reloadButtonList();
|
|
59
|
-
});
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
/******************** zButton ********************/
|
|
63
|
-
getFirstzButton(data) {
|
|
64
|
-
// data.forEach(d => {
|
|
65
|
-
for (let i = 0; i < data.length - 1; i++) {
|
|
66
|
-
if (data[i].Type === ComponentType.button || data[i].Type === ComponentType.workflowbutton) {
|
|
67
|
-
return data[i];
|
|
68
|
-
}
|
|
69
|
-
else {
|
|
70
|
-
if (Array.isArray(data[i].Value)) {
|
|
71
|
-
this.getFirstzButton(data[i].Value);
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
return null;
|
|
76
|
-
}
|
|
77
|
-
onAction() {
|
|
78
|
-
if (this.isWorkflowButton) {
|
|
79
|
-
//this.loadWorkflowButton();
|
|
80
|
-
this.actionSheetCtrl
|
|
81
|
-
.create({
|
|
82
|
-
header: "Choose an Action",
|
|
83
|
-
buttons: this.topRightActionButton
|
|
84
|
-
})
|
|
85
|
-
.then(actionSheetEl => {
|
|
86
|
-
actionSheetEl.present();
|
|
87
|
-
});
|
|
88
|
-
}
|
|
89
|
-
else {
|
|
90
|
-
//this.reloadButtonList();
|
|
91
|
-
this.actionSheetCtrl
|
|
92
|
-
.create({
|
|
93
|
-
header: "Choose an Action",
|
|
94
|
-
buttons: this.topRightActionButton
|
|
95
|
-
})
|
|
96
|
-
.then(actionSheetEl => {
|
|
97
|
-
actionSheetEl.present();
|
|
98
|
-
});
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
reloadButtonList() {
|
|
102
|
-
this.topRightActionButton = [];
|
|
103
|
-
this.actionBtnList.forEach((button) => {
|
|
104
|
-
const visible = ZComponentHelper.getGroupEvalValue.call(this, button.Visible, this.group);
|
|
105
|
-
if (visible !== false) {
|
|
106
|
-
const label = this.getButtonLabel(button);
|
|
107
|
-
const buttonRole = this.getButtonRole(button, label);
|
|
108
|
-
this.topRightActionButton.push({
|
|
109
|
-
text: label,
|
|
110
|
-
handler: () => {
|
|
111
|
-
this.buttonClick(button);
|
|
112
|
-
},
|
|
113
|
-
role: buttonRole
|
|
114
|
-
});
|
|
115
|
-
}
|
|
116
|
-
});
|
|
117
|
-
}
|
|
118
|
-
buttonClick(button) {
|
|
119
|
-
// debugger;
|
|
120
|
-
this.group['DismissType'] = button.DismissType;
|
|
121
|
-
super.buttonClick(button);
|
|
122
|
-
}
|
|
123
|
-
getButtonRole(button, label) {
|
|
124
|
-
// console.log("getButtonRole: ", label, button.ClickEvent);
|
|
125
|
-
const lowerCaseLabel = label.toLowerCase();
|
|
126
|
-
if (lowerCaseLabel.indexOf("cancel") !== -1 ||
|
|
127
|
-
lowerCaseLabel.indexOf("close") !== -1) {
|
|
128
|
-
return "cancel";
|
|
129
|
-
}
|
|
130
|
-
return null;
|
|
131
|
-
}
|
|
132
|
-
loadWorkflowButton() {
|
|
133
|
-
// actionBtnList: Array<ZField>;
|
|
134
|
-
this.topRightActionButton = [];
|
|
135
|
-
// Get WFS_DocumentId if any.
|
|
136
|
-
let documentId = null;
|
|
137
|
-
if (this.group.zModel) {
|
|
138
|
-
documentId = this.group.zModel['WFS_DocumentId'];
|
|
139
|
-
}
|
|
140
|
-
// Set the documentId to the service
|
|
141
|
-
this.workflowService.appendWFS_DocumentsInfo(this.data.WorkflowCode, documentId);
|
|
142
|
-
try {
|
|
143
|
-
// Set param for field
|
|
144
|
-
const field$ = this.workflowService.getWorkflowButtonsField(this.data.WorkflowCode, this.e1wfs_wfcGetWorkflowButtonURL, String(false));
|
|
145
|
-
field$.subscribe(data => {
|
|
146
|
-
data.forEach((button) => {
|
|
147
|
-
const label = this.getButtonLabel(button);
|
|
148
|
-
const attributes = JSON.parse(button.Attributes);
|
|
149
|
-
const buttonLabel = label || attributes.Label;
|
|
150
|
-
const _isVisible = this.isBtnVisible(button.Visible);
|
|
151
|
-
if (_isVisible) {
|
|
152
|
-
this.topRightActionButton.push({
|
|
153
|
-
text: buttonLabel,
|
|
154
|
-
fieldAttribute: button,
|
|
155
|
-
iconName: attributes.Icon,
|
|
156
|
-
handler: (y) => {
|
|
157
|
-
this.workflowButtonClick(button);
|
|
158
|
-
}
|
|
159
|
-
});
|
|
160
|
-
}
|
|
161
|
-
//ZComponentHelper.collectWorkflowButton(this.group, this.data.WorkflowCode, buttonLabel, button, attributes, mappedInfo);
|
|
162
|
-
});
|
|
163
|
-
});
|
|
164
|
-
if (!this.data.DisableSyncWorkflowStatus) {
|
|
165
|
-
// Set default status
|
|
166
|
-
// eslint-disable-next-line @typescript-eslint/dot-notation
|
|
167
|
-
if (!this.group.zModel["WFS_StatusName"]) {
|
|
168
|
-
const params = {
|
|
169
|
-
"WorkflowMasterCode": this.data.WorkflowCode
|
|
170
|
-
};
|
|
171
|
-
return this.webApiService.httpPost$(this.e1wfs_wfc_getWorkflowInitialStatusURL, params).pipe(map(res => {
|
|
172
|
-
if (res.Data) {
|
|
173
|
-
ZComponentHelper.presetModelValue("WFS_StatusId", res.Data["Id"], this.group);
|
|
174
|
-
ZComponentHelper.presetModelValue("WFS_StatusName", res.Data["Name"], this.group);
|
|
175
|
-
ZComponentHelper.presetModelValue("WFS_StatusCode", res.Data["Code"], this.group);
|
|
176
|
-
this.workflowService.setCurrentDocumentStatus(res.Data);
|
|
177
|
-
}
|
|
178
|
-
})).subscribe();
|
|
179
|
-
}
|
|
180
|
-
else {
|
|
181
|
-
// When loading also to get current Status Information if any.
|
|
182
|
-
const docInfoParam = {
|
|
183
|
-
"WorkflowMasterCode": this.data.WorkflowCode,
|
|
184
|
-
"DocumentId": documentId,
|
|
185
|
-
};
|
|
186
|
-
this.webApiService.httpPost$(this.e1wfs_wfc_getDocumentStatusURL, docInfoParam).pipe(map(res => {
|
|
187
|
-
this.workflowService.setCurrentDocumentStatus(res);
|
|
188
|
-
if (res.Data) {
|
|
189
|
-
this.workflowService.setCurrentDocumentStatus(res.Data);
|
|
190
|
-
}
|
|
191
|
-
})).subscribe();
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
catch (error) {
|
|
196
|
-
console.error("error: ", error);
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
workflowButtonClick(button) {
|
|
200
|
-
// Type 1 == functional;
|
|
201
|
-
// Type 2 == GOTO;
|
|
202
|
-
const attributes = JSON.parse(button.Attributes);
|
|
203
|
-
switch (button.TypeCode.toUpperCase()) {
|
|
204
|
-
case "FUNCTION":
|
|
205
|
-
console.log("Functional Button: ", button.Name);
|
|
206
|
-
this.workflowService.functionalButton_OnClick(attributes, this.group);
|
|
207
|
-
break;
|
|
208
|
-
case "GOTO":
|
|
209
|
-
console.log("GOTO Button: ", button.Name);
|
|
210
|
-
this.workflowService.gotoButton_Onclick(button, this.data, attributes, this.group, false).subscribe(res => {
|
|
211
|
-
this.loadWorkflowButton();
|
|
212
|
-
if (res) {
|
|
213
|
-
this.workflowService.triggerSendEmail(this.group).subscribe();
|
|
214
|
-
}
|
|
215
|
-
});
|
|
216
|
-
break;
|
|
217
|
-
default:
|
|
218
|
-
console.log("Invalid Button Type. ", button.Name);
|
|
219
|
-
break;
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
UiactionbuttonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: UiactionbuttonComponent, deps: [{ token: i1.ZComponentService }, { token: i2.FieldService }, { token: i2.WebApiService }, { token: i2.ResourceApiService }, { token: i2.WorkflowService }, { token: i3.ActionSheetController }], target: i0.ɵɵFactoryTarget.Component });
|
|
224
|
-
UiactionbuttonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.3", type: UiactionbuttonComponent, selector: "app-uiactionbutton", usesInheritance: true, ngImport: i0, template: "<ion-button (click)=\"onAction()\" [disabled]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n *ngIf=\"isMobileScreen() && (!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\"\r\n class=\"ion-activatable ripple-parent\">\r\n <!-- <ion-icon name=\"more\" slot=\"icon-only\"></ion-icon> -->\r\n <fa-icon [icon]=\"'ellipsis-v'\"></fa-icon>\r\n <ion-ripple-effect type=\"unbounded\"></ion-ripple-effect>\r\n</ion-button>\r\n", styles: [":host ion-button{width:48px;height:48px;justify-content:center;margin-right:4px;cursor:pointer}:host ion-button fa-icon{text-align:center;justify-content:center;text-overflow:ellipsis;text-transform:none;white-space:nowrap;font-kerning:none;text-decoration:none;font-size:21px}:host ion-button:hover{color:#fff;background-color:#0006;border-radius:20px}\n"], components: [{ type: i3.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { type: i4.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }, { type: i3.IonRippleEffect, selector: "ion-ripple-effect", inputs: ["type"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
225
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: UiactionbuttonComponent, decorators: [{
|
|
226
|
-
type: Component,
|
|
227
|
-
args: [{ selector: 'app-uiactionbutton', template: "<ion-button (click)=\"onAction()\" [disabled]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n *ngIf=\"isMobileScreen() && (!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\"\r\n class=\"ion-activatable ripple-parent\">\r\n <!-- <ion-icon name=\"more\" slot=\"icon-only\"></ion-icon> -->\r\n <fa-icon [icon]=\"'ellipsis-v'\"></fa-icon>\r\n <ion-ripple-effect type=\"unbounded\"></ion-ripple-effect>\r\n</ion-button>\r\n", styles: [":host ion-button{width:48px;height:48px;justify-content:center;margin-right:4px;cursor:pointer}:host ion-button fa-icon{text-align:center;justify-content:center;text-overflow:ellipsis;text-transform:none;white-space:nowrap;font-kerning:none;text-decoration:none;font-size:21px}:host ion-button:hover{color:#fff;background-color:#0006;border-radius:20px}\n"] }]
|
|
228
|
-
}], ctorParameters: function () { return [{ type: i1.ZComponentService }, { type: i2.FieldService }, { type: i2.WebApiService }, { type: i2.ResourceApiService }, { type: i2.WorkflowService }, { type: i3.ActionSheetController }]; } });
|
|
229
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWlhY3Rpb25idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvdWlhY3Rpb25idXR0b24vdWlhY3Rpb25idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvdWlhY3Rpb25idXR0b24vdWlhY3Rpb25idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0JBQStCO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFLbEQsOEJBQThCO0FBQzlCLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQywyQ0FBMkM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBRTFFLE9BQU8sRUFFRyxnQkFBZ0IsRUFBYyxRQUFRLEVBQUUsYUFBYSxFQUM5RCxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7O0FBU3pCLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxlQUFlO0lBSzFELFlBQ1MsZ0JBQW1DLEVBQ2xDLFlBQTBCLEVBQzFCLGFBQTRCLEVBQzVCLGtCQUFzQyxFQUN0QyxlQUFnQyxFQUNoQyxlQUFzQztRQUU5QyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQVBqQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQW1CO1FBQ2xDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLG9CQUFlLEdBQWYsZUFBZSxDQUF1QjtRQVZoRCx5QkFBb0IsR0FBVSxFQUFFLENBQUM7UUFFakMscUJBQWdCLEdB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QUF1Qjt3R0FBdkIsdUJBQXVCLGlGQ3hCcEMsNGtCQU9BOzJGRGlCYSx1QkFBdUI7a0JBTm5DLFNBQVM7K0JBQ0Usb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiLyoqKioqKioqKiogQW5ndWxhciAqKioqKioqKioqL1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuLyoqKioqKioqKiogSW9uaWMgKioqKioqKioqKi9cclxuaW1wb3J0IHsgQWN0aW9uU2hlZXRDb250cm9sbGVyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xyXG5cclxuLyoqKioqKioqKiogUGx1Z2luICoqKioqKioqKiovXHJcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbi8qKioqKioqKioqIENvbXBvbmVudCAmIFNlcnZpY2UgKioqKioqKioqKi9cclxuaW1wb3J0IHsgQnV0dG9uRmllbGRCYXNlIH0gZnJvbSAnLi4vY29tcG9uZW50cy9idXR0b25maWVsZGJhc2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgWkNvbXBvbmVudFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy96Y29tcG9uZW50LnNlcnZpY2UnO1xyXG5pbXBvcnQge1xyXG4gIEZpZWxkU2VydmljZSwgV2ViQXBpU2VydmljZSwgUmVzb3VyY2VBcGlTZXJ2aWNlLCBXb3JrZmxvd1NlcnZpY2UsXHJcbiAgWkZpZWxkLCBaQ29tcG9uZW50SGVscGVyLCBaQ29tcG9uZW50LCBGb3JtVHlwZSwgQ29tcG9uZW50VHlwZVxyXG59IGZyb20gJ21taGdsb2JhbC16Y29yZSc7ICBcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC11aWFjdGlvbmJ1dHRvbicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3VpYWN0aW9uYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi91aWFjdGlvbmJ1dHRvbi5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIFVpYWN0aW9uYnV0dG9uQ29tcG9uZW50IGV4dGVuZHMgQnV0dG9uRmllbGRCYXNlIGltcGxlbWVudHMgWkNvbXBvbmVudCwgT25Jbml0IHtcclxuICB0b3BSaWdodEFjdGlvbkJ1dHRvbjogYW55W10gPSBbXTtcclxuICBhY3Rpb25CdG5MaXN0OiBBcnJheTxaRmllbGQ+O1xyXG4gIGlzV29ya2Zsb3dCdXR0b246IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgY29tcG9uZW50U2VydmljZTogWkNvbXBvbmVudFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGZpZWxkU2VydmljZTogRmllbGRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB3ZWJBcGlTZXJ2aWNlOiBXZWJBcGlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZXNvdXJjZUFwaVNlcnZpY2U6IFJlc291cmNlQXBpU2VydmljZSxcclxuICAgIHByaXZhdGUgd29ya2Zsb3dTZXJ2aWNlOiBXb3JrZmxvd1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIGFjdGlvblNoZWV0Q3RybDogQWN0aW9uU2hlZXRDb250cm9sbGVyXHJcbiAgKSB7XHJcbiAgICBzdXBlcihjb21wb25lbnRTZXJ2aWNlKTtcclxuICB9XHJcblxyXG4gIC8qKioqKioqKioqKioqKioqKioqKiBDb21tb24gZnVuY3Rpb24gKioqKioqKioqKioqKioqKioqKiovXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmRhdGEgPSB0aGlzLmdldEZpcnN0ekJ1dHRvbih0aGlzLmdyb3VwLmZpZWxkcyk7XHJcbiAgICAvLyB0aGlzLnZpc2libGUgPSBaQ29tcG9uZW50SGVscGVyLmlzVmlzaWJsZShidXR0b25EYXRhKTtcclxuXHJcbiAgICBpZiAodGhpcy5kYXRhKSB7XHJcbiAgICAgIHN1cGVyLmluaXRDb21wb25lbnQoKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMubG9hZEJ1dHRvbigpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuY29tcG9uZW50U2VydmljZS5kZWNyZW1lbnRDb21wb25lbnRDb3VudGVyRm9yRmllbGQodGhpcy5kYXRhKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgbG9hZEJ1dHRvbigpIHtcclxuICAgIGlmICghWkNvbXBvbmVudEhlbHBlci5pc051bGxVbmRlZmluZWRFbXB0eSh0aGlzLmRhdGEuV29ya2Zsb3dDb2RlKSkge1xyXG4gICAgICAvLyBoYW5kbGUgYXMgeldvcmtmbG93QnV0dG9uXHJcbiAgICAgIHRoaXMuaXNXb3JrZmxvd0J1dHRvbiA9IHRydWU7XHJcbiAgICAgIHRoaXMubG9hZFdvcmtmbG93QnV0dG9uKCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgLy8gaGFuZGxlIGFzIHpCdXR0b25cclxuICAgICAgY29uc3QgZmllbGQkID0gdGhpcy5maWVsZFNlcnZpY2UuZ2V0Rm9ybUZpZWxkQ29kZShcclxuICAgICAgICB0aGlzLmRhdGEuVmFsdWUsXHJcbiAgICAgICAgRm9ybVR5cGUuZm9ybUZpZWxkLFxyXG4gICAgICAgIG51bGwsXHJcbiAgICAgICAgbnVsbFxyXG4gICAgICApO1xyXG4gICAgICBmaWVsZCQuc3Vic2NyaWJlKChkYXRhOiBBcnJheTxaRmllbGQ+KSA9PiB7XHJcbiAgICAgICAgdGhpcy5hY3Rpb25CdG5MaXN0ID0gZGF0YTtcclxuICAgICAgICB0aGlzLnJlbG9hZEJ1dHRvbkxpc3QoKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKioqKioqKioqKioqKioqKioqKiogekJ1dHRvbiAqKioqKioqKioqKioqKioqKioqKi9cclxuICBnZXRGaXJzdHpCdXR0b24oZGF0YTogYW55W10pIHtcclxuICAgIC8vIGRhdGEuZm9yRWFjaChkID0+IHtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZGF0YS5sZW5ndGggLSAxOyBpKyspIHtcclxuICAgICAgaWYgKGRhdGFbaV0uVHlwZSA9PT0gQ29tcG9uZW50VHlwZS5idXR0b24gfHwgZGF0YVtpXS5UeXBlID09PSBDb21wb25lbnRUeXBlLndvcmtmbG93YnV0dG9uKSB7XHJcbiAgICAgICAgcmV0dXJuIGRhdGFbaV07XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZGF0YVtpXS5WYWx1ZSkpIHtcclxuICAgICAgICAgIHRoaXMuZ2V0Rmlyc3R6QnV0dG9uKGRhdGFbaV0uVmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICBvbkFjdGlvbigpIHtcclxuICAgIGlmICh0aGlzLmlzV29ya2Zsb3dCdXR0b24pIHtcclxuICAgICAgLy90aGlzLmxvYWRXb3JrZmxvd0J1dHRvbigpO1xyXG4gICAgICB0aGlzLmFjdGlvblNoZWV0Q3RybFxyXG4gICAgICAgIC5jcmVhdGUoe1xyXG4gICAgICAgICAgaGVhZGVyOiBcIkNob29zZSBhbiBBY3Rpb25cIixcclxuICAgICAgICAgIGJ1dHRvbnM6IHRoaXMudG9wUmlnaHRBY3Rpb25CdXR0b25cclxuICAgICAgICB9KVxyXG4gICAgICAgIC50aGVuKGFjdGlvblNoZWV0RWwgPT4ge1xyXG4gICAgICAgICAgYWN0aW9uU2hlZXRFbC5wcmVzZW50KCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgLy90aGlzLnJlbG9hZEJ1dHRvbkxpc3QoKTtcclxuICAgICAgdGhpcy5hY3Rpb25TaGVldEN0cmxcclxuICAgICAgICAuY3JlYXRlKHtcclxuICAgICAgICAgIGhlYWRlcjogXCJDaG9vc2UgYW4gQWN0aW9uXCIsXHJcbiAgICAgICAgICBidXR0b25zOiB0aGlzLnRvcFJpZ2h0QWN0aW9uQnV0dG9uXHJcbiAgICAgICAgfSlcclxuICAgICAgICAudGhlbihhY3Rpb25TaGVldEVsID0+IHtcclxuICAgICAgICAgIGFjdGlvblNoZWV0RWwucHJlc2VudCgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZWxvYWRCdXR0b25MaXN0KCkge1xyXG4gICAgdGhpcy50b3BSaWdodEFjdGlvbkJ1dHRvbiA9IFtdO1xyXG4gICAgdGhpcy5hY3Rpb25CdG5MaXN0LmZvckVhY2goKGJ1dHRvbjogWkZpZWxkKSA9PiB7XHJcbiAgICAgIGNvbnN0IHZpc2libGUgPSBaQ29tcG9uZW50SGVscGVyLmdldEdyb3VwRXZhbFZhbHVlLmNhbGwoXHJcbiAgICAgICAgdGhpcyxcclxuICAgICAgICBidXR0b24uVmlzaWJsZSxcclxuICAgICAgICB0aGlzLmdyb3VwXHJcbiAgICAgICk7XHJcbiAgICAgIGlmICh2aXNpYmxlICE9PSBmYWxzZSkge1xyXG4gICAgICAgIGNvbnN0IGxhYmVsID0gdGhpcy5nZXRCdXR0b25MYWJlbChidXR0b24pO1xyXG4gICAgICAgIGNvbnN0IGJ1dHRvblJvbGUgPSB0aGlzLmdldEJ1dHRvblJvbGUoYnV0dG9uLCBsYWJlbCk7XHJcbiAgICAgICAgdGhpcy50b3BSaWdodEFjdGlvbkJ1dHRvbi5wdXNoKHtcclxuICAgICAgICAgIHRleHQ6IGxhYmVsLFxyXG4gICAgICAgICAgaGFuZGxlcjogKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmJ1dHRvbkNsaWNrKGJ1dHRvbik7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgcm9sZTogYnV0dG9uUm9sZVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBidXR0b25DbGljayhidXR0b246IGFueSkge1xyXG4gICAgLy8gZGVidWdnZXI7XHJcbiAgICB0aGlzLmdyb3VwWydEaXNtaXNzVHlwZSddID0gYnV0dG9uLkRpc21pc3NUeXBlO1xyXG4gICAgc3VwZXIuYnV0dG9uQ2xpY2soYnV0dG9uKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0QnV0dG9uUm9sZShidXR0b246IGFueSwgbGFiZWw6IHN0cmluZykge1xyXG4gICAgLy8gY29uc29sZS5sb2coXCJnZXRCdXR0b25Sb2xlOiBcIiwgbGFiZWwsIGJ1dHRvbi5DbGlja0V2ZW50KTtcclxuICAgIGNvbnN0IGxvd2VyQ2FzZUxhYmVsID0gbGFiZWwudG9Mb3dlckNhc2UoKTtcclxuICAgIGlmIChcclxuICAgICAgbG93ZXJDYXNlTGFiZWwuaW5kZXhPZihcImNhbmNlbFwiKSAhPT0gLTEgfHxcclxuICAgICAgbG93ZXJDYXNlTGFiZWwuaW5kZXhPZihcImNsb3NlXCIpICE9PSAtMVxyXG4gICAgKSB7XHJcbiAgICAgIHJldHVybiBcImNhbmNlbFwiO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICAvKioqKioqKioqKioqKioqKioqKiogeldvcmtmbG93QnV0dG9uICoqKioqKioqKioqKioqKioqKioqL1xyXG4gIC8vIFVSTCByZXF1aXJlZFxyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb24sbm8tdW5kZXJzY29yZS1kYW5nbGUsaWQtYmxhY2tsaXN0LGlkLW1hdGNoXHJcbiAgZTF3ZnNfd2ZjR2V0V29ya2Zsb3dCdXR0b25VUkwgPSB0aGlzLnJlc291cmNlQXBpU2VydmljZS5nZXRVUkwoXCJlMXdmc193ZmNHZXRXb3JrZmxvd0J1dHRvblVSTFwiKTtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uLG5vLXVuZGVyc2NvcmUtZGFuZ2xlLGlkLWJsYWNrbGlzdCxpZC1tYXRjaFxyXG4gIGUxd2ZzX3dmY19nZXRXb3JrZmxvd0luaXRpYWxTdGF0dXNVUkwgPSB0aGlzLnJlc291cmNlQXBpU2VydmljZS5nZXRVUkwoXCJlMXdmc193ZmNfZ2V0V29ya2Zsb3dJbml0aWFsU3RhdHVzVVJMXCIpO1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb24sIG5vLXVuZGVyc2NvcmUtZGFuZ2xlLCBpZC1ibGFja2xpc3QsIGlkLW1hdGNoXHJcbiAgZTF3ZnNfd2ZjX2dldERvY3VtZW50U3RhdHVzVVJMID0gdGhpcy5yZXNvdXJjZUFwaVNlcnZpY2UuZ2V0VVJMKFwiZTF3ZnNfd2ZjX2dldERvY3VtZW50U3RhdHVzVVJMXCIpO1xyXG5cclxuXHJcbiAgcHJpdmF0ZSBsb2FkV29ya2Zsb3dCdXR0b24oKSB7XHJcbiAgICAvLyAgYWN0aW9uQnRuTGlzdDogQXJyYXk8WkZpZWxkPjtcclxuICAgIHRoaXMudG9wUmlnaHRBY3Rpb25CdXR0b24gPSBbXTtcclxuXHJcbiAgICAvLyBHZXQgV0ZTX0RvY3VtZW50SWQgaWYgYW55LlxyXG4gICAgbGV0IGRvY3VtZW50SWQgPSBudWxsO1xyXG4gICAgaWYgKHRoaXMuZ3JvdXAuek1vZGVsKSB7XHJcbiAgICAgIGRvY3VtZW50SWQgPSB0aGlzLmdyb3VwLnpNb2RlbFsnV0ZTX0RvY3VtZW50SWQnXTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBTZXQgdGhlIGRvY3VtZW50SWQgdG8gdGhlIHNlcnZpY2VcclxuICAgIHRoaXMud29ya2Zsb3dTZXJ2aWNlLmFwcGVuZFdGU19Eb2N1bWVudHNJbmZvKHRoaXMuZGF0YS5Xb3JrZmxvd0NvZGUsIGRvY3VtZW50SWQpO1xyXG5cclxuICAgIHRyeSB7XHJcbiAgICAgIC8vIFNldCBwYXJhbSBmb3IgZmllbGRcclxuICAgICAgY29uc3QgZmllbGQkID0gdGhpcy53b3JrZmxvd1NlcnZpY2UuZ2V0V29ya2Zsb3dCdXR0b25zRmllbGQoXHJcbiAgICAgICAgdGhpcy5kYXRhLldvcmtmbG93Q29kZSxcclxuICAgICAgICB0aGlzLmUxd2ZzX3dmY0dldFdvcmtmbG93QnV0dG9uVVJMLFxyXG4gICAgICAgIFN0cmluZyhmYWxzZSlcclxuICAgICAgKTtcclxuXHJcbiAgICAgIGZpZWxkJC5zdWJzY3JpYmUoZGF0YSA9PiB7XHJcbiAgICAgICAgZGF0YS5mb3JFYWNoKChidXR0b246IGFueSkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgbGFiZWwgPSB0aGlzLmdldEJ1dHRvbkxhYmVsKGJ1dHRvbik7XHJcbiAgICAgICAgICBjb25zdCBhdHRyaWJ1dGVzID0gSlNPTi5wYXJzZShidXR0b24uQXR0cmlidXRlcyk7XHJcbiAgICAgICAgICBjb25zdCBidXR0b25MYWJlbCA9IGxhYmVsIHx8IGF0dHJpYnV0ZXMuTGFiZWw7XHJcbiAgICAgICAgICBjb25zdCBfaXNWaXNpYmxlID0gdGhpcy5pc0J0blZpc2libGUoYnV0dG9uLlZpc2libGUpO1xyXG5cclxuICAgICAgICAgIGlmIChfaXNWaXNpYmxlKSB7XHJcbiAgICAgICAgICAgIHRoaXMudG9wUmlnaHRBY3Rpb25CdXR0b24ucHVzaCh7XHJcbiAgICAgICAgICAgICAgdGV4dDogYnV0dG9uTGFiZWwsXHJcbiAgICAgICAgICAgICAgZmllbGRBdHRyaWJ1dGU6IGJ1dHRvbixcclxuICAgICAgICAgICAgICBpY29uTmFtZTogYXR0cmlidXRlcy5JY29uLFxyXG4gICAgICAgICAgICAgIGhhbmRsZXI6ICh5KSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLndvcmtmbG93QnV0dG9uQ2xpY2soYnV0dG9uKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgLy9aQ29tcG9uZW50SGVscGVyLmNvbGxlY3RXb3JrZmxvd0J1dHRvbih0aGlzLmdyb3VwLCB0aGlzLmRhdGEuV29ya2Zsb3dDb2RlLCBidXR0b25MYWJlbCwgYnV0dG9uLCBhdHRyaWJ1dGVzLCBtYXBwZWRJbmZvKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgICBpZiAoIXRoaXMuZGF0YS5EaXNhYmxlU3luY1dvcmtmbG93U3RhdHVzKSB7XHJcbiAgICAgICAgLy8gU2V0IGRlZmF1bHQgc3RhdHVzXHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9kb3Qtbm90YXRpb25cclxuICAgICAgICBpZiAoIXRoaXMuZ3JvdXAuek1vZGVsW1wiV0ZTX1N0YXR1c05hbWVcIl0pIHtcclxuICAgICAgICAgIGNvbnN0IHBhcmFtcyA9IHtcclxuICAgICAgICAgICAgXCJXb3JrZmxvd01hc3RlckNvZGVcIjogdGhpcy5kYXRhLldvcmtmbG93Q29kZVxyXG4gICAgICAgICAgfTtcclxuXHJcbiAgICAgICAgICByZXR1cm4gdGhpcy53ZWJBcGlTZXJ2aWNlLmh0dHBQb3N0JCh0aGlzLmUxd2ZzX3dmY19nZXRXb3JrZmxvd0luaXRpYWxTdGF0dXNVUkwsIHBhcmFtcykucGlwZShcclxuICAgICAgICAgICAgbWFwKHJlcyA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKHJlcy5EYXRhKSB7XHJcbiAgICAgICAgICAgICAgICBaQ29tcG9uZW50SGVscGVyLnByZXNldE1vZGVsVmFsdWUoXCJXRlNfU3RhdHVzSWRcIiwgcmVzLkRhdGFbXCJJZFwiXSwgdGhpcy5ncm91cCk7XHJcbiAgICAgICAgICAgICAgICBaQ29tcG9uZW50SGVscGVyLnByZXNldE1vZGVsVmFsdWUoXCJXRlNfU3RhdHVzTmFtZVwiLCByZXMuRGF0YVtcIk5hbWVcIl0sIHRoaXMuZ3JvdXApO1xyXG4gICAgICAgICAgICAgICAgWkNvbXBvbmVudEhlbHBlci5wcmVzZXRNb2RlbFZhbHVlKFwiV0ZTX1N0YXR1c0NvZGVcIiwgcmVzLkRhdGFbXCJDb2RlXCJdLCB0aGlzLmdyb3VwKTtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLndvcmtmbG93U2VydmljZS5zZXRDdXJyZW50RG9jdW1lbnRTdGF0dXMocmVzLkRhdGEpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICkuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIC8vIFdoZW4gbG9hZGluZyBhbHNvIHRvIGdldCBjdXJyZW50IFN0YXR1cyBJbmZvcm1hdGlvbiBpZiBhbnkuXHJcbiAgICAgICAgICBjb25zdCBkb2NJbmZvUGFyYW0gPSB7XHJcbiAgICAgICAgICAgIFwiV29ya2Zsb3dNYXN0ZXJDb2RlXCI6IHRoaXMuZGF0YS5Xb3JrZmxvd0NvZGUsXHJcbiAgICAgICAgICAgIFwiRG9jdW1lbnRJZFwiOiBkb2N1bWVudElkLFxyXG4gICAgICAgICAgfTtcclxuXHJcbiAgICAgICAgICB0aGlzLndlYkFwaVNlcnZpY2UuaHR0cFBvc3QkKHRoaXMuZTF3ZnNfd2ZjX2dldERvY3VtZW50U3RhdHVzVVJMLCBkb2NJbmZvUGFyYW0pLnBpcGUoXHJcbiAgICAgICAgICAgIG1hcChyZXMgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMud29ya2Zsb3dTZXJ2aWNlLnNldEN1cnJlbnREb2N1bWVudFN0YXR1cyhyZXMpO1xyXG4gICAgICAgICAgICAgIGlmIChyZXMuRGF0YSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy53b3JrZmxvd1NlcnZpY2Uuc2V0Q3VycmVudERvY3VtZW50U3RhdHVzKHJlcy5EYXRhKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICApLnN1YnNjcmliZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoXCJlcnJvcjogXCIsIGVycm9yKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHdvcmtmbG93QnV0dG9uQ2xpY2soYnV0dG9uOiBhbnkpIHtcclxuICAgIC8vIFR5cGUgMSA9PSBmdW5jdGlvbmFsO1xyXG4gICAgLy8gVHlwZSAyID09IEdPVE87XHJcbiAgICBjb25zdCBhdHRyaWJ1dGVzID0gSlNPTi5wYXJzZShidXR0b24uQXR0cmlidXRlcyk7XHJcbiAgICBzd2l0Y2ggKGJ1dHRvbi5UeXBlQ29kZS50b1VwcGVyQ2FzZSgpKSB7XHJcbiAgICAgIGNhc2UgXCJGVU5DVElPTlwiOlxyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiRnVuY3Rpb25hbCBCdXR0b246IFwiLCBidXR0b24uTmFtZSk7XHJcbiAgICAgICAgdGhpcy53b3JrZmxvd1NlcnZpY2UuZnVuY3Rpb25hbEJ1dHRvbl9PbkNsaWNrKGF0dHJpYnV0ZXMsIHRoaXMuZ3JvdXApO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFwiR09UT1wiOlxyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiR09UTyBCdXR0b246IFwiLCBidXR0b24uTmFtZSk7XHJcbiAgICAgICAgdGhpcy53b3JrZmxvd1NlcnZpY2UuZ290b0J1dHRvbl9PbmNsaWNrKGJ1dHRvbiwgdGhpcy5kYXRhLCBhdHRyaWJ1dGVzLCB0aGlzLmdyb3VwLCBmYWxzZSkuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgICAgICB0aGlzLmxvYWRXb3JrZmxvd0J1dHRvbigpO1xyXG4gICAgICAgICAgaWYgKHJlcykge1xyXG4gICAgICAgICAgICB0aGlzLndvcmtmbG93U2VydmljZS50cmlnZ2VyU2VuZEVtYWlsKHRoaXMuZ3JvdXApLnN1YnNjcmliZSgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiSW52YWxpZCBCdXR0b24gVHlwZS4gXCIsIGJ1dHRvbi5OYW1lKTtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGlvbi1idXR0b24gKGNsaWNrKT1cIm9uQWN0aW9uKClcIiBbZGlzYWJsZWRdPVwiKCEhY29tcG9uZW50UHJvcGVydGllcy5pc1JlYWRPbmx5RmllbGQgPyBncm91cFtjb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVhZE9ubHlGaWVsZF0gOiBjb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVhZE9ubHkpXCJcclxuICAgICAgICAgICAgKm5nSWY9XCJpc01vYmlsZVNjcmVlbigpICYmICghIWNvbXBvbmVudFByb3BlcnRpZXMuaXNWaXNpYmxlRmllbGQgPyBncm91cFtjb21wb25lbnRQcm9wZXJ0aWVzLmlzVmlzaWJsZUZpZWxkXSA6IGNvbXBvbmVudFByb3BlcnRpZXMuaXNWaXNpYmxlKVwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiaW9uLWFjdGl2YXRhYmxlIHJpcHBsZS1wYXJlbnRcIj5cclxuICA8IS0tIDxpb24taWNvbiBuYW1lPVwibW9yZVwiIHNsb3Q9XCJpY29uLW9ubHlcIj48L2lvbi1pY29uPiAtLT5cclxuICA8ZmEtaWNvbiBbaWNvbl09XCInZWxsaXBzaXMtdidcIj48L2ZhLWljb24+XHJcbiAgPGlvbi1yaXBwbGUtZWZmZWN0IHR5cGU9XCJ1bmJvdW5kZWRcIj48L2lvbi1yaXBwbGUtZWZmZWN0PlxyXG48L2lvbi1idXR0b24+XHJcbiJdfQ==
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
/********** Angular **********/
|
|
2
|
-
import { Component, Input } from '@angular/core';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@angular/router";
|
|
5
|
-
import * as i2 from "mmhglobal-zcore";
|
|
6
|
-
import * as i3 from "../services/main.service";
|
|
7
|
-
import * as i4 from "@ionic/angular";
|
|
8
|
-
import * as i5 from "@fortawesome/angular-fontawesome";
|
|
9
|
-
import * as i6 from "@progress/kendo-angular-layout";
|
|
10
|
-
import * as i7 from "@angular/common";
|
|
11
|
-
import * as i8 from "@angular/flex-layout/extended";
|
|
12
|
-
export class UiappmenucontentComponent {
|
|
13
|
-
constructor(router, menuService, authService, zcoreService, mainService) {
|
|
14
|
-
this.router = router;
|
|
15
|
-
this.menuService = menuService;
|
|
16
|
-
this.authService = authService;
|
|
17
|
-
this.zcoreService = zcoreService;
|
|
18
|
-
this.mainService = mainService;
|
|
19
|
-
this.MENU_TYPE_DROPDOWN_SUBMENU = 'dropdown-submenu';
|
|
20
|
-
}
|
|
21
|
-
ngOnInit() {
|
|
22
|
-
}
|
|
23
|
-
getDivClass(item) {
|
|
24
|
-
if (!item || !item.Type)
|
|
25
|
-
return 'col-xs-4 col-sm-4 col-md-3 col-xl-2 menu-col';
|
|
26
|
-
return (item.Type === this.MENU_TYPE_DROPDOWN_SUBMENU ? 'flex-show' : 'col-xs-4 col-sm-4 col-md-3 col-xl-2') + ' menu-col';
|
|
27
|
-
}
|
|
28
|
-
getMenuList(item) {
|
|
29
|
-
if (!item || item.Type !== this.MENU_TYPE_DROPDOWN_SUBMENU)
|
|
30
|
-
return null;
|
|
31
|
-
return this.menuService.getMenuFolder(item.URL);
|
|
32
|
-
}
|
|
33
|
-
trackByFn(index, item) {
|
|
34
|
-
return item.URL || index.toString(); // Unique identifier or fallback to index
|
|
35
|
-
}
|
|
36
|
-
menuOnClick(item) {
|
|
37
|
-
return this.mainService.menuOnClick(item);
|
|
38
|
-
}
|
|
39
|
-
setMapInput(key, value) {
|
|
40
|
-
const mapInput = document.createElement('input');
|
|
41
|
-
mapInput.type = 'hidden';
|
|
42
|
-
mapInput.name = key;
|
|
43
|
-
mapInput.setAttribute('value', value);
|
|
44
|
-
return mapInput;
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
UiappmenucontentComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: UiappmenucontentComponent, deps: [{ token: i1.Router }, { token: i2.MenuService }, { token: i2.AuthService }, { token: i2.ZCoreService }, { token: i3.MainService }], target: i0.ɵɵFactoryTarget.Component });
|
|
48
|
-
UiappmenucontentComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.3", type: UiappmenucontentComponent, selector: "app-uiappmenucontent", inputs: { items: "items" }, ngImport: i0, template: "<ion-grid>\r\n <ion-row>\r\n <ion-col\r\n [ngClass]=\"getDivClass(item)\"\r\n *ngFor=\"let item of items; index as i; trackBy: trackByFn\"\r\n >\r\n\r\n <!-- Regular Menu Item (non-submenu) -->\r\n <div\r\n *ngIf=\"item.Type !== MENU_TYPE_DROPDOWN_SUBMENU\"\r\n class=\"menu-btn ion-activatable ripple-parent\"\r\n (click)=\"menuOnClick(item)\">\r\n <ion-label class=\"menu-btn-label menu-btn-icon\">\r\n <fa-icon\r\n class=\"menu-icon\"\r\n [icon]=\"['fas', item.Icon]\"\r\n [inverse]=\"true\"\r\n ></fa-icon>\r\n\r\n <!-- 1) Spinner if loading -->\r\n <ion-badge \r\n class=\"pending-counter\"\r\n *ngIf=\"item.counterLoading\">\r\n <ion-spinner name=\"bubbles\"></ion-spinner>\r\n </ion-badge>\r\n\r\n <!-- 2) Numeric badge if loaded & > 0 -->\r\n <ion-badge\r\n class=\"pending-counter\"\r\n *ngIf=\"!item.counterLoading && item.PendingCounter && item.PendingCounter > 0\">\r\n {{ item.PendingCounter }}\r\n </ion-badge>\r\n </ion-label>\r\n\r\n <ion-label class=\"menu-btn-label-text\">\r\n {{ item.Label }}\r\n </ion-label>\r\n\r\n <ion-label\r\n *ngIf=\"item.Description\"\r\n class=\"menu-btn-label-text menu-btn-label-text-desc\"\r\n >\r\n {{ item.Description }}\r\n </ion-label>\r\n <ion-ripple-effect></ion-ripple-effect>\r\n </div>\r\n\r\n <!-- Dropdown Submenu -->\r\n <kendo-card *ngIf=\"item.Type === MENU_TYPE_DROPDOWN_SUBMENU\">\r\n <kendo-card-header class=\"k-hstack\">\r\n <ion-label class=\"card-title\" kendoCardTitle>\r\n {{ item.Label }}\r\n </ion-label>\r\n </kendo-card-header>\r\n <kendo-card-body>\r\n <div>\r\n <app-uiappmenucontent [items]=\"getMenuList(item) || []\"></app-uiappmenucontent>\r\n </div>\r\n </kendo-card-body>\r\n </kendo-card>\r\n </ion-col>\r\n </ion-row>\r\n</ion-grid>\r\n", styles: ["ion-grid{max-width:2000px;margin-top:10px}:host ::ng-deep kendo-card{width:95%!important;margin:auto auto 10px;border-radius:var(--ion-container-border-radius);border-left:5px solid var(--ion-color-primary)}:host ::ng-deep kendo-card .k-card-body{padding-top:0}.menu-col{padding:10px}.menu-btn{margin:0;padding:0;border:0px;display:flex;flex-flow:column;align-items:stretch;background-color:#fff;cursor:pointer;border-radius:5px;box-shadow:1px 1px 4px #797979;min-width:180px;max-width:250px;min-height:123px;max-height:123px;color:#fff;background:var(--ion-color-primary)}.menu-btn:hover{box-shadow:0 0 2px 2px var(--ion-color-secondary)}.menu-btn:hover .menu-btn-label-text-desc{bottom:0;transition:.5s ease bottom;width:100%}.menu-btn-label-text{text-align:center;font-size:16px;font-weight:600;padding:10px 5px}.menu-btn-label-text-desc{bottom:-100%;transition:.5s ease bottom;display:block;position:absolute;color:#000;font-size:16px;background-color:#fff;padding:8px 10px;border:1px solid #797979;border-radius:5px;text-shadow:0px 0px black;width:100%;text-align:left;font-size:14px;font-weight:500}.ripple-parent{position:relative;overflow:hidden}.menu-btn-label{text-align:center;font-size:15px}.menu-icon{zoom:3;position:relative;top:2px}.menu-btn-icon{position:relative;background-size:100%;text-align:center;font-size:15px;top:.4em}.pending-counter{position:absolute;top:.4em;right:.4em;background-color:#ff243a;color:#fff;border-radius:1em;min-width:2.5em;max-width:6em;height:1.5em;display:inline-flex;align-items:center;justify-content:center;text-align:center;padding:0 .5em;box-sizing:border-box;font-size:1.2rem;line-height:1.1}\n"], components: [{ type: i4.IonGrid, selector: "ion-grid", inputs: ["fixed"] }, { type: i4.IonRow, selector: "ion-row" }, { type: i4.IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { type: i4.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { 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: i4.IonBadge, selector: "ion-badge", inputs: ["color", "mode"] }, { type: i4.IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { type: i4.IonRippleEffect, selector: "ion-ripple-effect", inputs: ["type"] }, { type: i6.CardComponent, selector: "kendo-card", inputs: ["orientation", "width"] }, { type: i6.CardHeaderComponent, selector: "kendo-card-header" }, { type: i6.CardBodyComponent, selector: "kendo-card-body" }, { type: UiappmenucontentComponent, selector: "app-uiappmenucontent", inputs: ["items"] }], directives: [{ type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i8.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.CardTitleDirective, selector: "[kendoCardTitle]" }] });
|
|
49
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: UiappmenucontentComponent, decorators: [{
|
|
50
|
-
type: Component,
|
|
51
|
-
args: [{ selector: 'app-uiappmenucontent', template: "<ion-grid>\r\n <ion-row>\r\n <ion-col\r\n [ngClass]=\"getDivClass(item)\"\r\n *ngFor=\"let item of items; index as i; trackBy: trackByFn\"\r\n >\r\n\r\n <!-- Regular Menu Item (non-submenu) -->\r\n <div\r\n *ngIf=\"item.Type !== MENU_TYPE_DROPDOWN_SUBMENU\"\r\n class=\"menu-btn ion-activatable ripple-parent\"\r\n (click)=\"menuOnClick(item)\">\r\n <ion-label class=\"menu-btn-label menu-btn-icon\">\r\n <fa-icon\r\n class=\"menu-icon\"\r\n [icon]=\"['fas', item.Icon]\"\r\n [inverse]=\"true\"\r\n ></fa-icon>\r\n\r\n <!-- 1) Spinner if loading -->\r\n <ion-badge \r\n class=\"pending-counter\"\r\n *ngIf=\"item.counterLoading\">\r\n <ion-spinner name=\"bubbles\"></ion-spinner>\r\n </ion-badge>\r\n\r\n <!-- 2) Numeric badge if loaded & > 0 -->\r\n <ion-badge\r\n class=\"pending-counter\"\r\n *ngIf=\"!item.counterLoading && item.PendingCounter && item.PendingCounter > 0\">\r\n {{ item.PendingCounter }}\r\n </ion-badge>\r\n </ion-label>\r\n\r\n <ion-label class=\"menu-btn-label-text\">\r\n {{ item.Label }}\r\n </ion-label>\r\n\r\n <ion-label\r\n *ngIf=\"item.Description\"\r\n class=\"menu-btn-label-text menu-btn-label-text-desc\"\r\n >\r\n {{ item.Description }}\r\n </ion-label>\r\n <ion-ripple-effect></ion-ripple-effect>\r\n </div>\r\n\r\n <!-- Dropdown Submenu -->\r\n <kendo-card *ngIf=\"item.Type === MENU_TYPE_DROPDOWN_SUBMENU\">\r\n <kendo-card-header class=\"k-hstack\">\r\n <ion-label class=\"card-title\" kendoCardTitle>\r\n {{ item.Label }}\r\n </ion-label>\r\n </kendo-card-header>\r\n <kendo-card-body>\r\n <div>\r\n <app-uiappmenucontent [items]=\"getMenuList(item) || []\"></app-uiappmenucontent>\r\n </div>\r\n </kendo-card-body>\r\n </kendo-card>\r\n </ion-col>\r\n </ion-row>\r\n</ion-grid>\r\n", styles: ["ion-grid{max-width:2000px;margin-top:10px}:host ::ng-deep kendo-card{width:95%!important;margin:auto auto 10px;border-radius:var(--ion-container-border-radius);border-left:5px solid var(--ion-color-primary)}:host ::ng-deep kendo-card .k-card-body{padding-top:0}.menu-col{padding:10px}.menu-btn{margin:0;padding:0;border:0px;display:flex;flex-flow:column;align-items:stretch;background-color:#fff;cursor:pointer;border-radius:5px;box-shadow:1px 1px 4px #797979;min-width:180px;max-width:250px;min-height:123px;max-height:123px;color:#fff;background:var(--ion-color-primary)}.menu-btn:hover{box-shadow:0 0 2px 2px var(--ion-color-secondary)}.menu-btn:hover .menu-btn-label-text-desc{bottom:0;transition:.5s ease bottom;width:100%}.menu-btn-label-text{text-align:center;font-size:16px;font-weight:600;padding:10px 5px}.menu-btn-label-text-desc{bottom:-100%;transition:.5s ease bottom;display:block;position:absolute;color:#000;font-size:16px;background-color:#fff;padding:8px 10px;border:1px solid #797979;border-radius:5px;text-shadow:0px 0px black;width:100%;text-align:left;font-size:14px;font-weight:500}.ripple-parent{position:relative;overflow:hidden}.menu-btn-label{text-align:center;font-size:15px}.menu-icon{zoom:3;position:relative;top:2px}.menu-btn-icon{position:relative;background-size:100%;text-align:center;font-size:15px;top:.4em}.pending-counter{position:absolute;top:.4em;right:.4em;background-color:#ff243a;color:#fff;border-radius:1em;min-width:2.5em;max-width:6em;height:1.5em;display:inline-flex;align-items:center;justify-content:center;text-align:center;padding:0 .5em;box-sizing:border-box;font-size:1.2rem;line-height:1.1}\n"] }]
|
|
52
|
-
}], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.MenuService }, { type: i2.AuthService }, { type: i2.ZCoreService }, { type: i3.MainService }]; }, propDecorators: { items: [{
|
|
53
|
-
type: Input
|
|
54
|
-
}] } });
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWlhcHBtZW51Y29udGVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tbWhnbG9iYWwtZHluYW1pY2Zvcm0vc3JjL2xpYi91aWFwcG1lbnVjb250ZW50L3VpYXBwbWVudWNvbnRlbnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvdWlhcHBtZW51Y29udGVudC91aWFwcG1lbnVjb250ZW50LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtCQUErQjtBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7OztBQWtCekQsTUFBTSxPQUFPLHlCQUF5QjtJQUlwQyxZQUNVLE1BQWMsRUFDZCxXQUF3QixFQUN4QixXQUF3QixFQUN4QixZQUEwQixFQUMxQixXQUF3QjtRQUp4QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFQM0IsK0JBQTBCLEdBQUcsa0JBQWtCLENBQUM7SUFRbkQsQ0FBQztJQUVMLFFBQVE7SUFDUixDQUFDO0lBRU0sV0FBVyxDQUFDLElBQVM7UUFDMUIsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJO1lBQUUsT0FBTyw4Q0FBOEMsQ0FBQztRQUMvRSxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsMEJBQTBCLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMscUNBQXFDLENBQUMsR0FBRyxXQUFXLENBQUM7SUFDN0gsQ0FBQztJQUVNLFdBQVcsQ0FBQyxJQUFTO1FBQzFCLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsMEJBQTBCO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDeEUsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVNLFNBQVMsQ0FBQyxLQUFhLEVBQUUsSUFBbUI7UUFDakQsT0FBTyxJQUFJLENBQUMsR0FBRyxJQUFJLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLHlDQUF5QztJQUNoRixDQUFDO0lBRU0sV0FBVyxDQUFDLElBQW1CO1FBQ25DLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVPLFdBQVcsQ0FBQyxHQUFXLEVBQUUsS0FBYTtRQUM1QyxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pELFFBQVEsQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLFFBQVEsQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDO1FBQ3BCLFFBQVEsQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRXRDLE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7O3NIQXhDVSx5QkFBeUI7MEdBQXpCLHlCQUF5Qix3RkNuQnRDLGltRUErREEsNnlGRDVDYSx5QkFBeUI7MkZBQXpCLHlCQUF5QjtrQkFOckMsU0FBUzsrQkFDRSxzQkFBc0I7c01BTXZCLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qKioqKioqKioqIEFuZ3VsYXIgKioqKioqKioqKi9cclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcblxyXG4vKioqKioqKioqKiBJb25pYyAqKioqKioqKioqL1xyXG5cclxuLyoqKioqKioqKiogUGx1Z2luICoqKioqKioqKiovXHJcblxyXG4vKioqKioqKioqKiBDb21wb25lbnQgJiBTZXJ2aWNlICoqKioqKioqKiovXHJcbmltcG9ydCB7IE1haW5TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvbWFpbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgT0F1dGhNZW51SXRlbSwgTWVudVNlcnZpY2UsIEF1dGhTZXJ2aWNlLCBaQ29tcG9uZW50SGVscGVyLCBaQ29yZVNlcnZpY2UgfSBmcm9tICdtbWhnbG9iYWwtemNvcmUnO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLXVpYXBwbWVudWNvbnRlbnQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi91aWFwcG1lbnVjb250ZW50LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi91aWFwcG1lbnVjb250ZW50LmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgVWlhcHBtZW51Y29udGVudENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KCkgaXRlbXM6IEFycmF5PE9BdXRoTWVudUl0ZW0+O1xyXG4gIHB1YmxpYyBNRU5VX1RZUEVfRFJPUERPV05fU1VCTUVOVSA9ICdkcm9wZG93bi1zdWJtZW51JztcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgcHJpdmF0ZSBtZW51U2VydmljZTogTWVudVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSxcclxuICAgIHByaXZhdGUgemNvcmVTZXJ2aWNlOiBaQ29yZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIG1haW5TZXJ2aWNlOiBNYWluU2VydmljZVxyXG4gICkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldERpdkNsYXNzKGl0ZW06IGFueSk6IHN0cmluZyB7XHJcbiAgICBpZiAoIWl0ZW0gfHwgIWl0ZW0uVHlwZSkgcmV0dXJuICdjb2wteHMtNCBjb2wtc20tNCBjb2wtbWQtMyBjb2wteGwtMiBtZW51LWNvbCc7XHJcbiAgICByZXR1cm4gKGl0ZW0uVHlwZSA9PT0gdGhpcy5NRU5VX1RZUEVfRFJPUERPV05fU1VCTUVOVSA/ICdmbGV4LXNob3cnIDogJ2NvbC14cy00IGNvbC1zbS00IGNvbC1tZC0zIGNvbC14bC0yJykgKyAnIG1lbnUtY29sJztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRNZW51TGlzdChpdGVtOiBhbnkpOiBhbnkgfCBudWxsIHtcclxuICAgIGlmICghaXRlbSB8fCBpdGVtLlR5cGUgIT09IHRoaXMuTUVOVV9UWVBFX0RST1BET1dOX1NVQk1FTlUpIHJldHVybiBudWxsO1xyXG4gICAgcmV0dXJuIHRoaXMubWVudVNlcnZpY2UuZ2V0TWVudUZvbGRlcihpdGVtLlVSTCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdHJhY2tCeUZuKGluZGV4OiBudW1iZXIsIGl0ZW06IE9BdXRoTWVudUl0ZW0pOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGl0ZW0uVVJMIHx8IGluZGV4LnRvU3RyaW5nKCk7IC8vIFVuaXF1ZSBpZGVudGlmaWVyIG9yIGZhbGxiYWNrIHRvIGluZGV4XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbWVudU9uQ2xpY2soaXRlbTogT0F1dGhNZW51SXRlbSk6IGJvb2xlYW4ge1xyXG4gICAgIHJldHVybiB0aGlzLm1haW5TZXJ2aWNlLm1lbnVPbkNsaWNrKGl0ZW0pO1xyXG4gIH1cclxuICAgXHJcbiAgcHJpdmF0ZSBzZXRNYXBJbnB1dChrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZykge1xyXG4gICAgY29uc3QgbWFwSW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpO1xyXG4gICAgbWFwSW5wdXQudHlwZSA9ICdoaWRkZW4nO1xyXG4gICAgbWFwSW5wdXQubmFtZSA9IGtleTtcclxuICAgIG1hcElucHV0LnNldEF0dHJpYnV0ZSgndmFsdWUnLCB2YWx1ZSk7XHJcblxyXG4gICAgcmV0dXJuIG1hcElucHV0O1xyXG4gIH1cclxufVxyXG4iLCI8aW9uLWdyaWQ+XHJcbiAgPGlvbi1yb3c+XHJcbiAgICA8aW9uLWNvbFxyXG4gICAgICBbbmdDbGFzc109XCJnZXREaXZDbGFzcyhpdGVtKVwiXHJcbiAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIGl0ZW1zOyBpbmRleCBhcyBpOyB0cmFja0J5OiB0cmFja0J5Rm5cIlxyXG4gICAgPlxyXG5cclxuICAgICAgPCEtLSBSZWd1bGFyIE1lbnUgSXRlbSAobm9uLXN1Ym1lbnUpIC0tPlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgKm5nSWY9XCJpdGVtLlR5cGUgIT09IE1FTlVfVFlQRV9EUk9QRE9XTl9TVUJNRU5VXCJcclxuICAgICAgICBjbGFzcz1cIm1lbnUtYnRuIGlvbi1hY3RpdmF0YWJsZSByaXBwbGUtcGFyZW50XCJcclxuICAgICAgICAoY2xpY2spPVwibWVudU9uQ2xpY2soaXRlbSlcIj5cclxuICAgICAgICA8aW9uLWxhYmVsIGNsYXNzPVwibWVudS1idG4tbGFiZWwgbWVudS1idG4taWNvblwiPlxyXG4gICAgICAgICAgPGZhLWljb25cclxuICAgICAgICAgICAgY2xhc3M9XCJtZW51LWljb25cIlxyXG4gICAgICAgICAgICBbaWNvbl09XCJbJ2ZhcycsIGl0ZW0uSWNvbl1cIlxyXG4gICAgICAgICAgICBbaW52ZXJzZV09XCJ0cnVlXCJcclxuICAgICAgICAgID48L2ZhLWljb24+XHJcblxyXG4gICAgICAgICAgPCEtLSAxKSBTcGlubmVyIGlmIGxvYWRpbmcgLS0+XHJcbiAgICAgICAgICA8aW9uLWJhZGdlIFxyXG4gICAgICAgICAgICBjbGFzcz1cInBlbmRpbmctY291bnRlclwiXHJcbiAgICAgICAgICAgICpuZ0lmPVwiaXRlbS5jb3VudGVyTG9hZGluZ1wiPlxyXG4gICAgICAgICAgICA8aW9uLXNwaW5uZXIgbmFtZT1cImJ1YmJsZXNcIj48L2lvbi1zcGlubmVyPlxyXG4gICAgICAgICAgPC9pb24tYmFkZ2U+XHJcblxyXG4gICAgICAgICAgPCEtLSAyKSBOdW1lcmljIGJhZGdlIGlmIGxvYWRlZCAmID4gMCAtLT5cclxuICAgICAgICAgIDxpb24tYmFkZ2VcclxuICAgICAgICAgICAgY2xhc3M9XCJwZW5kaW5nLWNvdW50ZXJcIlxyXG4gICAgICAgICAgICAqbmdJZj1cIiFpdGVtLmNvdW50ZXJMb2FkaW5nICYmIGl0ZW0uUGVuZGluZ0NvdW50ZXIgJiYgaXRlbS5QZW5kaW5nQ291bnRlciA+IDBcIj5cclxuICAgICAgICAgICAge3sgaXRlbS5QZW5kaW5nQ291bnRlciB9fVxyXG4gICAgICAgICAgPC9pb24tYmFkZ2U+XHJcbiAgICAgICAgPC9pb24tbGFiZWw+XHJcblxyXG4gICAgICAgIDxpb24tbGFiZWwgY2xhc3M9XCJtZW51LWJ0bi1sYWJlbC10ZXh0XCI+XHJcbiAgICAgICAgICB7eyBpdGVtLkxhYmVsIH19XHJcbiAgICAgICAgPC9pb24tbGFiZWw+XHJcblxyXG4gICAgICAgIDxpb24tbGFiZWxcclxuICAgICAgICAgICpuZ0lmPVwiaXRlbS5EZXNjcmlwdGlvblwiXHJcbiAgICAgICAgICBjbGFzcz1cIm1lbnUtYnRuLWxhYmVsLXRleHQgbWVudS1idG4tbGFiZWwtdGV4dC1kZXNjXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICB7eyBpdGVtLkRlc2NyaXB0aW9uIH19XHJcbiAgICAgICAgPC9pb24tbGFiZWw+XHJcbiAgICAgICAgPGlvbi1yaXBwbGUtZWZmZWN0PjwvaW9uLXJpcHBsZS1lZmZlY3Q+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPCEtLSBEcm9wZG93biBTdWJtZW51IC0tPlxyXG4gICAgICA8a2VuZG8tY2FyZCAqbmdJZj1cIml0ZW0uVHlwZSA9PT0gTUVOVV9UWVBFX0RST1BET1dOX1NVQk1FTlVcIj5cclxuICAgICAgICA8a2VuZG8tY2FyZC1oZWFkZXIgY2xhc3M9XCJrLWhzdGFja1wiPlxyXG4gICAgICAgICAgPGlvbi1sYWJlbCBjbGFzcz1cImNhcmQtdGl0bGVcIiBrZW5kb0NhcmRUaXRsZT5cclxuICAgICAgICAgICAge3sgaXRlbS5MYWJlbCB9fVxyXG4gICAgICAgICAgPC9pb24tbGFiZWw+XHJcbiAgICAgICAgPC9rZW5kby1jYXJkLWhlYWRlcj5cclxuICAgICAgICA8a2VuZG8tY2FyZC1ib2R5PlxyXG4gICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgPGFwcC11aWFwcG1lbnVjb250ZW50IFtpdGVtc109XCJnZXRNZW51TGlzdChpdGVtKSB8fCBbXVwiPjwvYXBwLXVpYXBwbWVudWNvbnRlbnQ+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2tlbmRvLWNhcmQtYm9keT5cclxuICAgICAgPC9rZW5kby1jYXJkPlxyXG4gICAgPC9pb24tY29sPlxyXG4gIDwvaW9uLXJvdz5cclxuPC9pb24tZ3JpZD5cclxuIl19
|
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
/********** Angular **********/
|
|
2
|
-
import { Component, Input, TemplateRef, ViewChild, ViewContainerRef } from '@angular/core';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "mmhglobal-zcore";
|
|
5
|
-
import * as i2 from "../services/main.service";
|
|
6
|
-
import * as i3 from "@progress/kendo-angular-notification";
|
|
7
|
-
import * as i4 from "@ionic/angular";
|
|
8
|
-
import * as i5 from "@fortawesome/angular-fontawesome";
|
|
9
|
-
import * as i6 from "@angular/common";
|
|
10
|
-
export class UibulletinComponent {
|
|
11
|
-
constructor(zcoreService, webApiService, resourceApiService, mainService, signalrService, notificationService) {
|
|
12
|
-
this.zcoreService = zcoreService;
|
|
13
|
-
this.webApiService = webApiService;
|
|
14
|
-
this.resourceApiService = resourceApiService;
|
|
15
|
-
this.mainService = mainService;
|
|
16
|
-
this.signalrService = signalrService;
|
|
17
|
-
this.notificationService = notificationService;
|
|
18
|
-
// backNavigate = null;
|
|
19
|
-
this.bulletinMessages = [];
|
|
20
|
-
this.hideBulletinTemplate = true;
|
|
21
|
-
this.title = "";
|
|
22
|
-
this.showBulletinIcon = false;
|
|
23
|
-
this.defaultMessage = 'There are no message today.';
|
|
24
|
-
this.environment = this.zcoreService.getEnvironment();
|
|
25
|
-
this.showBulletinIcon = this.environment.bulletinUrl ? true : false;
|
|
26
|
-
}
|
|
27
|
-
ngOnInit() {
|
|
28
|
-
this.mainService.getResourceServerData().subscribe(() => {
|
|
29
|
-
this.webApiService.httpGet$(this.resourceApiService.getURL(this.environment.bulletinUrl), '').subscribe(resp => {
|
|
30
|
-
if (resp) {
|
|
31
|
-
const msg = [];
|
|
32
|
-
if (Array.isArray(resp) && resp.length > 0) {
|
|
33
|
-
resp.forEach((item) => {
|
|
34
|
-
if (item.Description) {
|
|
35
|
-
msg.push(item.Description);
|
|
36
|
-
}
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
this.setBulletinMessages(msg);
|
|
40
|
-
}
|
|
41
|
-
});
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
ngAfterViewInit() {
|
|
45
|
-
if (this.signalrService.signalREnabled()) {
|
|
46
|
-
this.getSignalrBulletinMessage();
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
setBulletinMessages(data) {
|
|
50
|
-
this.bulletinMessages = []; // Initialize or clear the bulletin messages array
|
|
51
|
-
if (Array.isArray(data) && data.length > 0) {
|
|
52
|
-
data.forEach((item) => {
|
|
53
|
-
if (item.Description) {
|
|
54
|
-
this.bulletinMessages.push(item.Description);
|
|
55
|
-
}
|
|
56
|
-
});
|
|
57
|
-
this.title = `${this.bulletinMessages.length} messages. Click to view messages.`;
|
|
58
|
-
}
|
|
59
|
-
else {
|
|
60
|
-
this.title = "No message";
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
getSignalrBulletinMessage() {
|
|
64
|
-
this.group.signalRCallbackHandler['headerBulletinHandling'] = this.headerBulletinHandling.bind(this);
|
|
65
|
-
return this.signalrService.subscribeToEvent(this.group, `Bulletin`, `group.signalRCallbackHandler.headerBulletinHandling`);
|
|
66
|
-
}
|
|
67
|
-
headerBulletinHandling(group, resp, eventName) {
|
|
68
|
-
this.setBulletinMessages(resp);
|
|
69
|
-
}
|
|
70
|
-
showBulletinMessage() {
|
|
71
|
-
// if closable property is set to true, hideAfter property is ignored.
|
|
72
|
-
this.notificationService.show({
|
|
73
|
-
content: this.bulletinTemplate,
|
|
74
|
-
position: { horizontal: "center", vertical: "top" },
|
|
75
|
-
animation: { type: "slide", duration: 500 },
|
|
76
|
-
type: { style: "none", icon: false },
|
|
77
|
-
closable: this.bulletinMessages.length > 0 ? true : false,
|
|
78
|
-
hideAfter: 1000,
|
|
79
|
-
});
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
UibulletinComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: UibulletinComponent, deps: [{ token: i1.ZCoreService }, { token: i1.WebApiService }, { token: i1.ResourceApiService }, { token: i2.MainService }, { token: i1.SignalrService }, { token: i3.NotificationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
83
|
-
UibulletinComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.3", type: UibulletinComponent, selector: "app-uibulletin", inputs: { group: "group" }, viewQueries: [{ propertyName: "appendTo", first: true, predicate: ["appendTo"], descendants: true, read: ViewContainerRef }, { propertyName: "bulletinTemplate", first: true, predicate: ["bulletinTemplate"], descendants: true, read: TemplateRef }], ngImport: i0, template: "<ion-button (click)=\"showBulletinMessage()\" fill=\"none\" size=\"small\" *ngIf=\"showBulletinIcon\">\r\n\r\n <ion-label [title]=\"title\">\r\n <ion-badge color=\"danger\" class=\"pending-counter\"\r\n *ngIf=\"bulletinMessages.length > 0\">\r\n </ion-badge>\r\n <ion-label><fa-icon [icon]=\"['fas', 'bell']\" size=\"lg\" style=\"margin-right: 5px;\"></fa-icon> Notification</ion-label>\r\n <ion-ripple-effect></ion-ripple-effect>\r\n </ion-label>\r\n\r\n <!--<fa-icon [icon]=\"['fas', 'bell']\" style=\"margin-right: 5px;\"></fa-icon> Bulletin-->\r\n</ion-button>\r\n<ng-template #bulletinTemplate>\r\n <div *ngIf=\"bulletinMessages.length > 0\">\r\n <!--<h6>Bulletin</h6>-->\r\n <ul>\r\n <li *ngFor=\"let msg of bulletinMessages\">{{ msg }}</li>\r\n </ul>\r\n </div>\r\n <div *ngIf=\"bulletinMessages.length <= 0\">\r\n {{ defaultMessage }}\r\n </div>\r\n</ng-template>\r\n", styles: [".ripple-parent{position:relative;overflow:hidden}.pending-counterX{background-color:#ff243a;border-radius:1em;box-sizing:border-box;color:#fff;height:1.5em;line-height:1;max-width:5em;min-width:1.5em;overflow:hidden;padding:.25em;right:2px;text-overflow:ellipsis;top:2px;transform:scale(.25);transform-origin:top left;display:inline-block;position:absolute;text-align:center;font-size:2.2em}.pending-counter{background-color:#ff243a;border-radius:1em;box-sizing:border-box;color:#fff;height:1.5em;line-height:1;max-width:5em;min-width:1.5em;overflow:hidden;padding:.25em;text-overflow:ellipsis;left:8px;top:7px;transform:scale(.25);transform-origin:top left;display:inline-block;position:absolute;text-align:center;font-size:1.5em}\n"], components: [{ type: i4.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { type: i4.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { type: i4.IonBadge, selector: "ion-badge", inputs: ["color", "mode"] }, { 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: i4.IonRippleEffect, selector: "ion-ripple-effect", inputs: ["type"] }], directives: [{ type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
84
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: UibulletinComponent, decorators: [{
|
|
85
|
-
type: Component,
|
|
86
|
-
args: [{ selector: 'app-uibulletin', template: "<ion-button (click)=\"showBulletinMessage()\" fill=\"none\" size=\"small\" *ngIf=\"showBulletinIcon\">\r\n\r\n <ion-label [title]=\"title\">\r\n <ion-badge color=\"danger\" class=\"pending-counter\"\r\n *ngIf=\"bulletinMessages.length > 0\">\r\n </ion-badge>\r\n <ion-label><fa-icon [icon]=\"['fas', 'bell']\" size=\"lg\" style=\"margin-right: 5px;\"></fa-icon> Notification</ion-label>\r\n <ion-ripple-effect></ion-ripple-effect>\r\n </ion-label>\r\n\r\n <!--<fa-icon [icon]=\"['fas', 'bell']\" style=\"margin-right: 5px;\"></fa-icon> Bulletin-->\r\n</ion-button>\r\n<ng-template #bulletinTemplate>\r\n <div *ngIf=\"bulletinMessages.length > 0\">\r\n <!--<h6>Bulletin</h6>-->\r\n <ul>\r\n <li *ngFor=\"let msg of bulletinMessages\">{{ msg }}</li>\r\n </ul>\r\n </div>\r\n <div *ngIf=\"bulletinMessages.length <= 0\">\r\n {{ defaultMessage }}\r\n </div>\r\n</ng-template>\r\n", styles: [".ripple-parent{position:relative;overflow:hidden}.pending-counterX{background-color:#ff243a;border-radius:1em;box-sizing:border-box;color:#fff;height:1.5em;line-height:1;max-width:5em;min-width:1.5em;overflow:hidden;padding:.25em;right:2px;text-overflow:ellipsis;top:2px;transform:scale(.25);transform-origin:top left;display:inline-block;position:absolute;text-align:center;font-size:2.2em}.pending-counter{background-color:#ff243a;border-radius:1em;box-sizing:border-box;color:#fff;height:1.5em;line-height:1;max-width:5em;min-width:1.5em;overflow:hidden;padding:.25em;text-overflow:ellipsis;left:8px;top:7px;transform:scale(.25);transform-origin:top left;display:inline-block;position:absolute;text-align:center;font-size:1.5em}\n"] }]
|
|
87
|
-
}], ctorParameters: function () { return [{ type: i1.ZCoreService }, { type: i1.WebApiService }, { type: i1.ResourceApiService }, { type: i2.MainService }, { type: i1.SignalrService }, { type: i3.NotificationService }]; }, propDecorators: { appendTo: [{
|
|
88
|
-
type: ViewChild,
|
|
89
|
-
args: ['appendTo', { read: ViewContainerRef }]
|
|
90
|
-
}], bulletinTemplate: [{
|
|
91
|
-
type: ViewChild,
|
|
92
|
-
args: ['bulletinTemplate', { read: TemplateRef }]
|
|
93
|
-
}], group: [{
|
|
94
|
-
type: Input
|
|
95
|
-
}] } });
|
|
96
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWlidWxsZXRpbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tbWhnbG9iYWwtZHluYW1pY2Zvcm0vc3JjL2xpYi91aWJ1bGxldGluL3VpYnVsbGV0aW4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvdWlidWxsZXRpbi91aWJ1bGxldGluLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtCQUErQjtBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7OztBQXFCbkcsTUFBTSxPQUFPLG1CQUFtQjtJQWE5QixZQUNVLFlBQTBCLEVBQzFCLGFBQTRCLEVBQzVCLGtCQUFzQyxFQUN0QyxXQUF3QixFQUN4QixjQUE4QixFQUM5QixtQkFBd0M7UUFMeEMsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUN0QyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQWZsRCx1QkFBdUI7UUFDaEIscUJBQWdCLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLHlCQUFvQixHQUFHLElBQUksQ0FBQztRQUM1QixVQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ1gscUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLG1CQUFjLEdBQUcsNkJBQTZCLENBQUM7UUFZcEQsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3RELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJ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QUUsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUU7WUFDcEMsUUFBUSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUs7WUFDekQsU0FBUyxFQUFFLElBQUk7U0FDaEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7Z0hBdkZVLG1CQUFtQjtvR0FBbkIsbUJBQW1CLG1LQUNDLGdCQUFnQiwrR0FDUixXQUFXLDZCQ3hCcEQsKzVCQXVCQTsyRkREYSxtQkFBbUI7a0JBTi9CLFNBQVM7K0JBQ0UsZ0JBQWdCO3lQQU1nQyxRQUFRO3NCQUFqRSxTQUFTO3VCQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRTtnQkFDSyxnQkFBZ0I7c0JBQXJFLFNBQVM7dUJBQUMsa0JBQWtCLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO2dCQUMzQyxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKioqKioqKioqKiBBbmd1bGFyICoqKioqKioqKiovXHJcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuLyoqKioqKioqKiogSW9uaWMgKioqKioqKioqKi9cclxuXHJcbi8qKioqKioqKioqIFBsdWdpbiAqKioqKioqKioqL1xyXG5pbXBvcnQgeyBOb3RpZmljYXRpb25TZXJ2aWNlIH0gZnJvbSAnQHByb2dyZXNzL2tlbmRvLWFuZ3VsYXItbm90aWZpY2F0aW9uJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZmlsdGVyLCBtYXAsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuLyoqKioqKioqKiogQ29tcG9uZW50ICYgU2VydmljZSAqKioqKioqKioqL1xyXG4vLyBpbXBvcnQgeyBaQ29tcG9uZW50RGVidWdTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvemNvbXBvbmVudC5kZWJ1Zy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgWkdyb3VwLCBaQ29yZVNlcnZpY2UsIFdlYkFwaVNlcnZpY2UsIFJlc291cmNlQXBpU2VydmljZSwgU2lnbmFsclNlcnZpY2UgfSBmcm9tICdtbWhnbG9iYWwtemNvcmUnO1xyXG5pbXBvcnQgeyBNYWluU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL21haW4uc2VydmljZSc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtdWlidWxsZXRpbicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3VpYnVsbGV0aW4uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3VpYnVsbGV0aW4uY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBVaWJ1bGxldGluQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBAVmlld0NoaWxkKCdhcHBlbmRUbycsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiB9KSBwdWJsaWMgYXBwZW5kVG86IFZpZXdDb250YWluZXJSZWY7XHJcbiAgQFZpZXdDaGlsZCgnYnVsbGV0aW5UZW1wbGF0ZScsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSkgYnVsbGV0aW5UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuICBASW5wdXQoKSBncm91cDogWkdyb3VwO1xyXG4gIC8vIGJhY2tOYXZpZ2F0ZSA9IG51bGw7XHJcbiAgcHVibGljIGJ1bGxldGluTWVzc2FnZXMgPSBbXTtcclxuICBwdWJsaWMgaGlkZUJ1bGxldGluVGVtcGxhdGUgPSB0cnVlO1xyXG4gIHB1YmxpYyB0aXRsZSA9IFwiXCI7XHJcbiAgcHVibGljIHNob3dCdWxsZXRpbkljb24gPSBmYWxzZTtcclxuICBwdWJsaWMgZGVmYXVsdE1lc3NhZ2UgPSAnVGhlcmUgYXJlIG5vIG1lc3NhZ2UgdG9kYXkuJztcclxuICBwdWJsaWMgZW52aXJvbm1lbnQ6IGFueTtcclxuICBwdWJsaWMgZmlyc3RJbml0QnVsbGV0aW5VUkw6IHN0cmluZztcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHpjb3JlU2VydmljZTogWkNvcmVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB3ZWJBcGlTZXJ2aWNlOiBXZWJBcGlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZXNvdXJjZUFwaVNlcnZpY2U6IFJlc291cmNlQXBpU2VydmljZSxcclxuICAgIHByaXZhdGUgbWFpblNlcnZpY2U6IE1haW5TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBzaWduYWxyU2VydmljZTogU2lnbmFsclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIG5vdGlmaWNhdGlvblNlcnZpY2U6IE5vdGlmaWNhdGlvblNlcnZpY2VcclxuICApIHtcclxuICAgIHRoaXMuZW52aXJvbm1lbnQgPSB0aGlzLnpjb3JlU2VydmljZS5nZXRFbnZpcm9ubWVudCgpO1xyXG4gICAgdGhpcy5zaG93QnVsbGV0aW5JY29uID0gdGhpcy5lbnZpcm9ubWVudC5idWxsZXRpblVybCA/IHRydWUgOiBmYWxzZTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5tYWluU2VydmljZS5nZXRSZXNvdXJjZVNlcnZlckRhdGEoKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLndlYkFwaVNlcnZpY2UuaHR0cEdldCQodGhpcy5yZXNvdXJjZUFwaVNlcnZpY2UuZ2V0VVJMKHRoaXMuZW52aXJvbm1lbnQuYnVsbGV0aW5VcmwpLCAnJykuc3Vic2NyaWJlKHJlc3AgPT4ge1xyXG4gICAgICAgIGlmIChyZXNwKSB7XHJcbiAgICAgICAgICBjb25zdCBtc2c6IHN0cmluZ1tdID0gW107XHJcblxyXG4gICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkocmVzcCkgJiYgcmVzcC5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIHJlc3AuZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKGl0ZW0uRGVzY3JpcHRpb24pIHtcclxuICAgICAgICAgICAgICAgIG1zZy5wdXNoKGl0ZW0uRGVzY3JpcHRpb24pO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgdGhpcy5zZXRCdWxsZXRpbk1lc3NhZ2VzKG1zZyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICBpZiAodGhpcy5zaWduYWxyU2VydmljZS5zaWduYWxSRW5hYmxlZCgpKSB7XHJcbiAgICAgIHRoaXMuZ2V0U2lnbmFsckJ1bGxldGluTWVzc2FnZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldEJ1bGxldGluTWVzc2FnZXMoZGF0YTogYW55W10pIHtcclxuICAgIHRoaXMuYnVsbGV0aW5NZXNzYWdlcyA9IFtdOyAvLyBJbml0aWFsaXplIG9yIGNsZWFyIHRoZSBidWxsZXRpbiBtZXNzYWdlcyBhcnJheVxyXG5cclxuICAgIGlmIChBcnJheS5pc0FycmF5KGRhdGEpICYmIGRhdGEubGVuZ3RoID4gMCkge1xyXG4gICAgICBkYXRhLmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChpdGVtLkRlc2NyaXB0aW9uKSB7XHJcbiAgICAgICAgICB0aGlzLmJ1bGxldGluTWVzc2FnZXMucHVzaChpdGVtLkRlc2NyaXB0aW9uKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgdGhpcy50aXRsZSA9IGAke3RoaXMuYnVsbGV0aW5NZXNzYWdlcy5sZW5ndGh9IG1lc3NhZ2VzLiBDbGljayB0byB2aWV3IG1lc3NhZ2VzLmA7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnRpdGxlID0gXCJObyBtZXNzYWdlXCI7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFNpZ25hbHJCdWxsZXRpbk1lc3NhZ2UoKSB7XHJcbiAgICB0aGlzLmdyb3VwLnNpZ25hbFJDYWxsYmFja0hhbmRsZXJbJ2hlYWRlckJ1bGxldGluSGFuZGxpbmcnXSA9IHRoaXMuaGVhZGVyQnVsbGV0aW5IYW5kbGluZy5iaW5kKHRoaXMpO1xyXG5cclxuICAgIHJldHVybiB0aGlzLnNpZ25hbHJTZXJ2aWNlLnN1YnNjcmliZVRvRXZlbnQodGhpcy5ncm91cCwgYEJ1bGxldGluYCwgYGdyb3VwLnNpZ25hbFJDYWxsYmFja0hhbmRsZXIuaGVhZGVyQnVsbGV0aW5IYW5kbGluZ2ApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoZWFkZXJCdWxsZXRpbkhhbmRsaW5nKGdyb3VwOiBaR3JvdXAsIHJlc3A6IGFueSwgZXZlbnROYW1lOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuc2V0QnVsbGV0aW5NZXNzYWdlcyhyZXNwKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzaG93QnVsbGV0aW5NZXNzYWdlKCk6IHZvaWQge1xyXG4gICAgLy8gaWYgY2xvc2FibGUgcHJvcGVydHkgaXMgc2V0IHRvIHRydWUsIGhpZGVBZnRlciBwcm9wZXJ0eSBpcyBpZ25vcmVkLlxyXG4gICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLnNob3coe1xyXG4gICAgICBjb250ZW50OiB0aGlzLmJ1bGxldGluVGVtcGxhdGUsXHJcbiAgICAgIHBvc2l0aW9uOiB7IGhvcml6b250YWw6IFwiY2VudGVyXCIsIHZlcnRpY2FsOiBcInRvcFwiIH0sXHJcbiAgICAgIGFuaW1hdGlvbjogeyB0eXBlOiBcInNsaWRlXCIsIGR1cmF0aW9uOiA1MDAgfSxcclxuICAgICAgdHlwZTogeyBzdHlsZTogXCJub25lXCIsIGljb246IGZhbHNlIH0sXHJcbiAgICAgIGNsb3NhYmxlOiB0aGlzLmJ1bGxldGluTWVzc2FnZXMubGVuZ3RoID4gMCA/IHRydWUgOiBmYWxzZSxcclxuICAgICAgaGlkZUFmdGVyOiAxMDAwLFxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxpb24tYnV0dG9uIChjbGljayk9XCJzaG93QnVsbGV0aW5NZXNzYWdlKClcIiBmaWxsPVwibm9uZVwiIHNpemU9XCJzbWFsbFwiICpuZ0lmPVwic2hvd0J1bGxldGluSWNvblwiPlxyXG5cclxuICA8aW9uLWxhYmVsIFt0aXRsZV09XCJ0aXRsZVwiPlxyXG4gICAgPGlvbi1iYWRnZSBjb2xvcj1cImRhbmdlclwiIGNsYXNzPVwicGVuZGluZy1jb3VudGVyXCJcclxuICAgICAgICAgICAgICAgKm5nSWY9XCJidWxsZXRpbk1lc3NhZ2VzLmxlbmd0aCA+IDBcIj5cclxuICAgIDwvaW9uLWJhZGdlPlxyXG4gICAgPGlvbi1sYWJlbD48ZmEtaWNvbiBbaWNvbl09XCJbJ2ZhcycsICdiZWxsJ11cIiBzaXplPVwibGdcIiBzdHlsZT1cIm1hcmdpbi1yaWdodDogNXB4O1wiPjwvZmEtaWNvbj4gTm90aWZpY2F0aW9uPC9pb24tbGFiZWw+XHJcbiAgICA8aW9uLXJpcHBsZS1lZmZlY3Q+PC9pb24tcmlwcGxlLWVmZmVjdD5cclxuICA8L2lvbi1sYWJlbD5cclxuXHJcbiAgPCEtLTxmYS1pY29uIFtpY29uXT1cIlsnZmFzJywgJ2JlbGwnXVwiIHN0eWxlPVwibWFyZ2luLXJpZ2h0OiA1cHg7XCI+PC9mYS1pY29uPiBCdWxsZXRpbi0tPlxyXG48L2lvbi1idXR0b24+XHJcbjxuZy10ZW1wbGF0ZSAjYnVsbGV0aW5UZW1wbGF0ZT5cclxuICA8ZGl2ICpuZ0lmPVwiYnVsbGV0aW5NZXNzYWdlcy5sZW5ndGggPiAwXCI+XHJcbiAgICA8IS0tPGg2PkJ1bGxldGluPC9oNj4tLT5cclxuICAgIDx1bD5cclxuICAgICAgPGxpICpuZ0Zvcj1cImxldCBtc2cgb2YgYnVsbGV0aW5NZXNzYWdlc1wiPnt7IG1zZyB9fTwvbGk+XHJcbiAgICA8L3VsPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgKm5nSWY9XCJidWxsZXRpbk1lc3NhZ2VzLmxlbmd0aCA8PSAwXCI+XHJcbiAgICB7eyBkZWZhdWx0TWVzc2FnZSB9fVxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
/********** Angular **********/
|
|
2
|
-
import { Component, Input } from '@angular/core';
|
|
3
|
-
/********** Ionic **********/
|
|
4
|
-
/********** Plugin **********/
|
|
5
|
-
/********** Component & Service **********/
|
|
6
|
-
import { SignalType } from 'mmhglobal-zcore';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "mmhglobal-zcore";
|
|
9
|
-
import * as i2 from "../embed-components/processing-record-loader/processing-record-loader.component";
|
|
10
|
-
import * as i3 from "../uiheader/uiheader.component";
|
|
11
|
-
import * as i4 from "@ionic/angular";
|
|
12
|
-
import * as i5 from "../uicontent/uicontent.component";
|
|
13
|
-
import * as i6 from "@angular/common";
|
|
14
|
-
export class UicontainerComponent {
|
|
15
|
-
constructor(uiSignalService) {
|
|
16
|
-
this.uiSignalService = uiSignalService;
|
|
17
|
-
this.scrollX = true;
|
|
18
|
-
this.scrollY = true;
|
|
19
|
-
this.isEmbeddedPage = false;
|
|
20
|
-
}
|
|
21
|
-
ngOnInit() {
|
|
22
|
-
this.isEmbeddedPage = !!this.group["isEmbeddedPage"];
|
|
23
|
-
}
|
|
24
|
-
handleScrollStart(event) {
|
|
25
|
-
// console.log('handleScrollStart');
|
|
26
|
-
this.uiSignalService.broadCastEvent(SignalType.PageScrollStart, event);
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
UicontainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: UicontainerComponent, deps: [{ token: i1.UISignalService }], target: i0.ɵɵFactoryTarget.Component });
|
|
30
|
-
UicontainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.3", type: UicontainerComponent, selector: "app-uicontainer", inputs: { group: "group", scrollX: "scrollX", scrollY: "scrollY" }, ngImport: i0, template: "<ng-template #mainPage>\r\n <div id=\"mainPage\">\r\n <div class=\"loadingPage\" *ngIf=\"group.isTriggered\">\r\n <processing-record-loader></processing-record-loader>\r\n </div>\r\n <div class=\"recordpage\">\r\n <app-uiheader [group]=\"group\"></app-uiheader>\r\n\r\n <ion-content class=\"app-contain\" id=\"ion-content-main-page\" [scrollEvents]=\"true\"\r\n (ionScrollStart)=\"handleScrollStart($event)\" [scrollX]=\"scrollX\" [scrollY]=\"scrollY\">\r\n <app-uicontent [group]=\"group\"></app-uicontent>\r\n </ion-content>\r\n </div>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #embeddedPage>\r\n <app-uicontent id=\"ion-content-form-page\" [group]=\"group\"></app-uicontent>\r\n</ng-template>\r\n\r\n<ng-container *ngTemplateOutlet=\"isEmbeddedPage ? embeddedPage : mainPage\"></ng-container>\r\n", styles: ["#ion-content-main-page{height:calc(100vh - var(--ion-header-height))}\n"], components: [{ type: i2.ProcessingRecordLoaderComponent, selector: "processing-record-loader" }, { type: i3.UiheaderComponent, selector: "app-uiheader", inputs: ["group", "topFormHeader"] }, { type: i4.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { type: i5.UicontentComponent, selector: "app-uicontent", inputs: ["group", "cssClass"] }], directives: [{ type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
|
|
31
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: UicontainerComponent, decorators: [{
|
|
32
|
-
type: Component,
|
|
33
|
-
args: [{ selector: 'app-uicontainer', template: "<ng-template #mainPage>\r\n <div id=\"mainPage\">\r\n <div class=\"loadingPage\" *ngIf=\"group.isTriggered\">\r\n <processing-record-loader></processing-record-loader>\r\n </div>\r\n <div class=\"recordpage\">\r\n <app-uiheader [group]=\"group\"></app-uiheader>\r\n\r\n <ion-content class=\"app-contain\" id=\"ion-content-main-page\" [scrollEvents]=\"true\"\r\n (ionScrollStart)=\"handleScrollStart($event)\" [scrollX]=\"scrollX\" [scrollY]=\"scrollY\">\r\n <app-uicontent [group]=\"group\"></app-uicontent>\r\n </ion-content>\r\n </div>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #embeddedPage>\r\n <app-uicontent id=\"ion-content-form-page\" [group]=\"group\"></app-uicontent>\r\n</ng-template>\r\n\r\n<ng-container *ngTemplateOutlet=\"isEmbeddedPage ? embeddedPage : mainPage\"></ng-container>\r\n", styles: ["#ion-content-main-page{height:calc(100vh - var(--ion-header-height))}\n"] }]
|
|
34
|
-
}], ctorParameters: function () { return [{ type: i1.UISignalService }]; }, propDecorators: { group: [{
|
|
35
|
-
type: Input
|
|
36
|
-
}], scrollX: [{
|
|
37
|
-
type: Input
|
|
38
|
-
}], scrollY: [{
|
|
39
|
-
type: Input
|
|
40
|
-
}] } });
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWljb250YWluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvdWljb250YWluZXIvdWljb250YWluZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvdWljb250YWluZXIvdWljb250YWluZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0JBQStCO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpELDZCQUE2QjtBQUU3Qiw4QkFBOEI7QUFFOUIsMkNBQTJDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQTJCLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7O0FBUXRFLE1BQU0sT0FBTyxvQkFBb0I7SUFNL0IsWUFBb0IsZUFBZ0M7UUFBaEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBSnBDLFlBQU8sR0FBWSxJQUFJLENBQUM7UUFDeEIsWUFBTyxHQUFZLElBQUksQ0FBQztRQUN4QyxtQkFBYyxHQUFZLEtBQUssQ0FBQztJQUV3QixDQUFDO0lBRXpELFFBQVE7UUFDTixJQUFJLENBQUMsY0FBYyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVNLGlCQUFpQixDQUFDLEtBQUs7UUFDNUIsb0NBQW9DO1FBQ3BDLElBQUksQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDekUsQ0FBQzs7aUhBZlUsb0JBQW9CO3FHQUFwQixvQkFBb0IsMkhDaEJqQyx5MUJBcUJBOzJGRExhLG9CQUFvQjtrQkFOaEMsU0FBUzsrQkFDRSxpQkFBaUI7c0dBTWxCLEtBQUs7c0JBQWIsS0FBSztnQkFDVSxPQUFPO3NCQUF0QixLQUFLO2dCQUNVLE9BQU87c0JBQXRCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKioqKioqKioqKiBBbmd1bGFyICoqKioqKioqKiovXHJcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuLyoqKioqKioqKiogSW9uaWMgKioqKioqKioqKi9cclxuXHJcbi8qKioqKioqKioqIFBsdWdpbiAqKioqKioqKioqL1xyXG5cclxuLyoqKioqKioqKiogQ29tcG9uZW50ICYgU2VydmljZSAqKioqKioqKioqL1xyXG5pbXBvcnQgeyBTaWduYWxUeXBlLCBVSVNpZ25hbFNlcnZpY2UsIFpHcm91cCB9IGZyb20gJ21taGdsb2JhbC16Y29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC11aWNvbnRhaW5lcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3VpY29udGFpbmVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi91aWNvbnRhaW5lci5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIFVpY29udGFpbmVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBASW5wdXQoKSBncm91cDogWkdyb3VwO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBzY3JvbGxYOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSBwdWJsaWMgc2Nyb2xsWTogYm9vbGVhbiA9IHRydWU7XHJcbiAgaXNFbWJlZGRlZFBhZ2U6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSB1aVNpZ25hbFNlcnZpY2U6IFVJU2lnbmFsU2VydmljZSkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5pc0VtYmVkZGVkUGFnZSA9ICEhdGhpcy5ncm91cFtcImlzRW1iZWRkZWRQYWdlXCJdO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZVNjcm9sbFN0YXJ0KGV2ZW50KSB7XHJcbiAgICAvLyBjb25zb2xlLmxvZygnaGFuZGxlU2Nyb2xsU3RhcnQnKTtcclxuICAgIHRoaXMudWlTaWduYWxTZXJ2aWNlLmJyb2FkQ2FzdEV2ZW50KFNpZ25hbFR5cGUuUGFnZVNjcm9sbFN0YXJ0LCBldmVudCk7XHJcbiAgfVxyXG59XHJcbiIsIjxuZy10ZW1wbGF0ZSAjbWFpblBhZ2U+XHJcbiAgPGRpdiBpZD1cIm1haW5QYWdlXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwibG9hZGluZ1BhZ2VcIiAqbmdJZj1cImdyb3VwLmlzVHJpZ2dlcmVkXCI+XHJcbiAgICAgIDxwcm9jZXNzaW5nLXJlY29yZC1sb2FkZXI+PC9wcm9jZXNzaW5nLXJlY29yZC1sb2FkZXI+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJyZWNvcmRwYWdlXCI+XHJcbiAgICAgIDxhcHAtdWloZWFkZXIgW2dyb3VwXT1cImdyb3VwXCI+PC9hcHAtdWloZWFkZXI+XHJcblxyXG4gICAgICA8aW9uLWNvbnRlbnQgY2xhc3M9XCJhcHAtY29udGFpblwiIGlkPVwiaW9uLWNvbnRlbnQtbWFpbi1wYWdlXCIgW3Njcm9sbEV2ZW50c109XCJ0cnVlXCJcclxuICAgICAgICAoaW9uU2Nyb2xsU3RhcnQpPVwiaGFuZGxlU2Nyb2xsU3RhcnQoJGV2ZW50KVwiIFtzY3JvbGxYXT1cInNjcm9sbFhcIiBbc2Nyb2xsWV09XCJzY3JvbGxZXCI+XHJcbiAgICAgICAgPGFwcC11aWNvbnRlbnQgW2dyb3VwXT1cImdyb3VwXCI+PC9hcHAtdWljb250ZW50PlxyXG4gICAgICA8L2lvbi1jb250ZW50PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2VtYmVkZGVkUGFnZT5cclxuICA8YXBwLXVpY29udGVudCBpZD1cImlvbi1jb250ZW50LWZvcm0tcGFnZVwiIFtncm91cF09XCJncm91cFwiPjwvYXBwLXVpY29udGVudD5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpc0VtYmVkZGVkUGFnZSA/IGVtYmVkZGVkUGFnZSA6IG1haW5QYWdlXCI+PC9uZy1jb250YWluZXI+XHJcbiJdfQ==
|