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,167 +0,0 @@
|
|
|
1
|
-
/********** Angular **********/
|
|
2
|
-
import { Component, ViewChild } from "@angular/core";
|
|
3
|
-
/********** Component & Service **********/
|
|
4
|
-
import { InputFieldBase } from "../components/inputfieldbase.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 "@ionic/angular";
|
|
9
|
-
import * as i3 from "@progress/kendo-angular-inputs";
|
|
10
|
-
import * as i4 from "@angular/forms";
|
|
11
|
-
import * as i5 from "@angular/common";
|
|
12
|
-
import * as i6 from "@progress/kendo-angular-buttons";
|
|
13
|
-
export class ZtextComponent extends InputFieldBase {
|
|
14
|
-
constructor(componentService) {
|
|
15
|
-
super(componentService);
|
|
16
|
-
this.componentService = componentService;
|
|
17
|
-
this.isPasswordField = false;
|
|
18
|
-
}
|
|
19
|
-
ngOnInit() {
|
|
20
|
-
super.setupInnerField();
|
|
21
|
-
this.adornmentList = this.data.AdornmentList;
|
|
22
|
-
this.isPasswordField = this.data.Type === 'zpassword'; //ComponentType.zPassword;
|
|
23
|
-
if (this.data.OnClick && !this.data.ReadOnly) {
|
|
24
|
-
this.componentProperties.isReadOnly = true;
|
|
25
|
-
}
|
|
26
|
-
if (!this.componentProperties.isReadOnly) {
|
|
27
|
-
this.showClearButton = this.data.ClearButton;
|
|
28
|
-
}
|
|
29
|
-
this.setupClickableIconList();
|
|
30
|
-
super.focusOnDefault(this.focus.bind(this));
|
|
31
|
-
}
|
|
32
|
-
ngAfterViewInit() {
|
|
33
|
-
if (this.data.Type === 'zpassword') { //ComponentType.zPassword) {
|
|
34
|
-
this.textbox.input.nativeElement.type = 'password';
|
|
35
|
-
this.textbox.input.nativeElement.autocomplete = 'off';
|
|
36
|
-
}
|
|
37
|
-
this.componentService.decrementComponentCounterForField(this.data);
|
|
38
|
-
}
|
|
39
|
-
setupClickableIconList() {
|
|
40
|
-
this.iconList = this.data.ClickableIcons;
|
|
41
|
-
if (this.iconList) {
|
|
42
|
-
if (this.iconList.length > 0) {
|
|
43
|
-
this.iconList.forEach((i) => {
|
|
44
|
-
if (i.Tooltip === undefined) {
|
|
45
|
-
i.Tooltip = "";
|
|
46
|
-
}
|
|
47
|
-
else {
|
|
48
|
-
if (i.Tooltip.indexOf("group.") !== -1) {
|
|
49
|
-
i.Tooltip = ZComponentHelper.getGroupEvalValue.call(this, i.Tooltip);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
// Default position top. right | bottom | top | left
|
|
53
|
-
if (i.Position === undefined) {
|
|
54
|
-
i.Position = "top";
|
|
55
|
-
}
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
mapInputType(fieldType) {
|
|
61
|
-
switch (fieldType) {
|
|
62
|
-
case "date":
|
|
63
|
-
return "date";
|
|
64
|
-
case "ztext":
|
|
65
|
-
return "text";
|
|
66
|
-
case "number":
|
|
67
|
-
return "number";
|
|
68
|
-
case "currency":
|
|
69
|
-
return "number";
|
|
70
|
-
case "email":
|
|
71
|
-
return "email";
|
|
72
|
-
case "zpassword":
|
|
73
|
-
return "password";
|
|
74
|
-
case "search":
|
|
75
|
-
return "search";
|
|
76
|
-
case "tel":
|
|
77
|
-
return "tel";
|
|
78
|
-
case "text":
|
|
79
|
-
return "text";
|
|
80
|
-
case "time":
|
|
81
|
-
return "time";
|
|
82
|
-
case "url":
|
|
83
|
-
return "url";
|
|
84
|
-
default:
|
|
85
|
-
return "text";
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
mapInputMode(fieldType) {
|
|
89
|
-
switch (fieldType) {
|
|
90
|
-
case "date":
|
|
91
|
-
return "none";
|
|
92
|
-
case "ztext":
|
|
93
|
-
return "text";
|
|
94
|
-
case "number":
|
|
95
|
-
return "decimal";
|
|
96
|
-
case "currency":
|
|
97
|
-
return "decimal";
|
|
98
|
-
case "email":
|
|
99
|
-
return "email";
|
|
100
|
-
case "zpassword":
|
|
101
|
-
return "text";
|
|
102
|
-
case "search":
|
|
103
|
-
return "search";
|
|
104
|
-
case "tel":
|
|
105
|
-
return "tel";
|
|
106
|
-
case "text":
|
|
107
|
-
return "text";
|
|
108
|
-
case "time":
|
|
109
|
-
return "none";
|
|
110
|
-
case "url":
|
|
111
|
-
return "url";
|
|
112
|
-
default:
|
|
113
|
-
return "text";
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
/********** Adornment **********/
|
|
117
|
-
getAdornmentBackgroundColor(adornment) {
|
|
118
|
-
if (adornment.BackgroundColor) {
|
|
119
|
-
return adornment.BackgroundColor + "!important";
|
|
120
|
-
}
|
|
121
|
-
return "transparent !important";
|
|
122
|
-
}
|
|
123
|
-
adornmentLook(adornment) {
|
|
124
|
-
if (adornment.AdornmentLook) {
|
|
125
|
-
return adornment.AdornmentLook;
|
|
126
|
-
}
|
|
127
|
-
return 'clear';
|
|
128
|
-
}
|
|
129
|
-
onAdornmentClick(adornment) {
|
|
130
|
-
if (adornment.OnClick) {
|
|
131
|
-
this.group.subject.next({
|
|
132
|
-
type: 'ztext-adornment',
|
|
133
|
-
target: adornment.OnClick,
|
|
134
|
-
data: adornment
|
|
135
|
-
});
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
togglePasswordVisibility() {
|
|
139
|
-
const inputEl = this.textbox.input.nativeElement;
|
|
140
|
-
if (inputEl.type === "password") {
|
|
141
|
-
inputEl.type = "text";
|
|
142
|
-
}
|
|
143
|
-
else {
|
|
144
|
-
inputEl.type = "password";
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
readOnlyOnClear() {
|
|
148
|
-
ZComponentHelper.setModelValue(this.data.Value, null, this.group);
|
|
149
|
-
}
|
|
150
|
-
focus() {
|
|
151
|
-
if (this.textbox) {
|
|
152
|
-
this.textbox.focus();
|
|
153
|
-
return true;
|
|
154
|
-
}
|
|
155
|
-
return false;
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
ZtextComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: ZtextComponent, deps: [{ token: i1.ZComponentService }], target: i0.ɵɵFactoryTarget.Component });
|
|
159
|
-
ZtextComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.3", type: ZtextComponent, selector: "app-ztext", viewQueries: [{ propertyName: "textbox", first: true, predicate: ["textbox"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div [formGroup]=\"form\" class=\"ztext-container e1tag-style\" [style]=\"componentProperties.style.style\">\r\n <!-- Ion Input for Mobile Screen -->\r\n <ion-input *ngIf=\"isMobileScreen()\"\r\n class=\"e1tag-style1\"\r\n [attr.disabled]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n [formControlName]=\"data.Value\"\r\n [id]=\"data.Value\"\r\n [inputmode]=\"mapInputMode(data.Type)\"\r\n [maxlength]=\"data.MaxLength\"\r\n [minlength]=\"data.MinLength\"\r\n [placeholder]=\"data.PlaceHolder\"\r\n [style]=\"componentProperties.style.style1\"\r\n [type]=\"mapInputType(data.Type)\"\r\n clearOnEdit\r\n (click)=\"onClick($event)\"\r\n (ionChange)=\"onChange($event, $event.target.value)\">\r\n </ion-input>\r\n\r\n <!-- Kendo TextBox for Non-Mobile Screen -->\r\n <kendo-textbox *ngIf=\"!isMobileScreen()\"\r\n #textbox\r\n class=\"input-field e1tag-style1\"\r\n [class.disabled]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n [formControlName]=\"data.Value\"\r\n [id]=\"data.Value\"\r\n [maxlength]=\"data.MaxLength\"\r\n [minlength]=\"data.MinLength\"\r\n [placeholder]=\"data.PlaceHolder\"\r\n [readonly]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n [style]=\"componentProperties.style.style1\"\r\n [type]=\"mapInputType(data.Type)\"\r\n (click)=\"onClick($event, $event.target.value)\"\r\n (input)=\"onChange($event, $event.target.value)\"> \r\n <ng-template kendoTextBoxSuffixTemplate *ngIf=\"adornmentList\">\r\n <button kendoButton\r\n *ngIf=\"data.OnClick\"\r\n class=\"textbox-clearbutton e1tag-style2\"\r\n [style]=\"componentProperties.style.style2\"\r\n [look]=\"'clear'\"\r\n [icon]=\"'close-circle'\"\r\n (click)=\"readOnlyOnClear()\"></button>\r\n\r\n <!-- For Adornments feature -->\r\n <div *ngFor=\"let adornment of adornmentList\" class=\"e1tag-style3\" [style]=\"componentProperties.style.style3\">\r\n <kendo-textbox-separator *ngIf=\"!adornment.HideSeperator\" class=\"textbox-separator e1tag-style4\" [style]=\"componentProperties.style.style4\"></kendo-textbox-separator>\r\n <button kendoButton\r\n [look]=\"adornmentLook(adornment)\"\r\n [icon]=\"adornment.Icon\"\r\n (click)=\"onAdornmentClick(adornment)\"\r\n class=\"e1tag-style5\"\r\n [style]=\"componentProperties.style.style5\"\r\n [style.background-color]=\"getAdornmentBackgroundColor(adornment)\"></button>\r\n </div>\r\n </ng-template>\r\n <ng-template kendoTextBoxSuffixTemplate *ngIf=\"isPasswordField\">\r\n <button kendoButton\r\n [look]=\"'clear'\"\r\n [icon]=\"'eye'\"\r\n (click)=\"togglePasswordVisibility()\"></button> \r\n </ng-template>\r\n </kendo-textbox>\r\n</div>\r\n", styles: [".item.sc-ion-label-md-h,.item .sc-ion-label-md-h{font-weight:var(--z-label-weight);color:var(--z-label-color);text-shadow:var(--z-label-shadow)}.divtextbox{justify-content:space-between;width:99%}.k-textbox{color:var(--z-text-color)}.textbox-separator{margin-top:0}.textbox-clearbutton{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;outline:0;cursor:pointer;opacity:.5}.textbox-clearbutton:hover{opacity:100!important}.icon-button{text-align:center;padding-top:10px}.adornments-icon-mobile{margin-bottom:0;margin-left:5px;width:28px;height:28px}\n"], components: [{ type: i2.IonInput, selector: "ion-input", inputs: ["accept", "autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearOnEdit", "color", "debounce", "disabled", "enterkeyhint", "inputmode", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "size", "spellcheck", "step", "type", "value"] }, { type: i3.TextBoxComponent, selector: "kendo-textbox", inputs: ["focusableId", "title", "disabled", "readonly", "tabindex", "value", "selectOnFocus", "showSuccessIcon", "showErrorIcon", "clearButton", "successIcon", "errorIcon", "clearButtonIcon", "size", "rounded", "fillMode", "tabIndex", "placeholder", "maxlength"], outputs: ["valueChange", "inputFocus", "inputBlur", "focus", "blur"], exportAs: ["kendoTextBox"] }, { type: i3.InputSeparatorComponent, selector: "kendo-input-separator, kendo-textbox-separator" }], directives: [{ type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.TextValueAccessor, selector: "ion-input:not([type=number]),ion-textarea,ion-searchbar" }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i4.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { type: i4.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { type: i3.TextBoxSuffixTemplateDirective, selector: "[kendoTextBoxSuffixTemplate]" }, { type: i6.ButtonDirective, selector: "button[kendoButton], span[kendoButton]", inputs: ["toggleable", "togglable", "selected", "tabIndex", "icon", "iconClass", "imageUrl", "disabled", "size", "rounded", "fillMode", "themeColor", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
160
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: ZtextComponent, decorators: [{
|
|
161
|
-
type: Component,
|
|
162
|
-
args: [{ selector: "app-ztext", template: "<div [formGroup]=\"form\" class=\"ztext-container e1tag-style\" [style]=\"componentProperties.style.style\">\r\n <!-- Ion Input for Mobile Screen -->\r\n <ion-input *ngIf=\"isMobileScreen()\"\r\n class=\"e1tag-style1\"\r\n [attr.disabled]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n [formControlName]=\"data.Value\"\r\n [id]=\"data.Value\"\r\n [inputmode]=\"mapInputMode(data.Type)\"\r\n [maxlength]=\"data.MaxLength\"\r\n [minlength]=\"data.MinLength\"\r\n [placeholder]=\"data.PlaceHolder\"\r\n [style]=\"componentProperties.style.style1\"\r\n [type]=\"mapInputType(data.Type)\"\r\n clearOnEdit\r\n (click)=\"onClick($event)\"\r\n (ionChange)=\"onChange($event, $event.target.value)\">\r\n </ion-input>\r\n\r\n <!-- Kendo TextBox for Non-Mobile Screen -->\r\n <kendo-textbox *ngIf=\"!isMobileScreen()\"\r\n #textbox\r\n class=\"input-field e1tag-style1\"\r\n [class.disabled]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n [formControlName]=\"data.Value\"\r\n [id]=\"data.Value\"\r\n [maxlength]=\"data.MaxLength\"\r\n [minlength]=\"data.MinLength\"\r\n [placeholder]=\"data.PlaceHolder\"\r\n [readonly]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n [style]=\"componentProperties.style.style1\"\r\n [type]=\"mapInputType(data.Type)\"\r\n (click)=\"onClick($event, $event.target.value)\"\r\n (input)=\"onChange($event, $event.target.value)\"> \r\n <ng-template kendoTextBoxSuffixTemplate *ngIf=\"adornmentList\">\r\n <button kendoButton\r\n *ngIf=\"data.OnClick\"\r\n class=\"textbox-clearbutton e1tag-style2\"\r\n [style]=\"componentProperties.style.style2\"\r\n [look]=\"'clear'\"\r\n [icon]=\"'close-circle'\"\r\n (click)=\"readOnlyOnClear()\"></button>\r\n\r\n <!-- For Adornments feature -->\r\n <div *ngFor=\"let adornment of adornmentList\" class=\"e1tag-style3\" [style]=\"componentProperties.style.style3\">\r\n <kendo-textbox-separator *ngIf=\"!adornment.HideSeperator\" class=\"textbox-separator e1tag-style4\" [style]=\"componentProperties.style.style4\"></kendo-textbox-separator>\r\n <button kendoButton\r\n [look]=\"adornmentLook(adornment)\"\r\n [icon]=\"adornment.Icon\"\r\n (click)=\"onAdornmentClick(adornment)\"\r\n class=\"e1tag-style5\"\r\n [style]=\"componentProperties.style.style5\"\r\n [style.background-color]=\"getAdornmentBackgroundColor(adornment)\"></button>\r\n </div>\r\n </ng-template>\r\n <ng-template kendoTextBoxSuffixTemplate *ngIf=\"isPasswordField\">\r\n <button kendoButton\r\n [look]=\"'clear'\"\r\n [icon]=\"'eye'\"\r\n (click)=\"togglePasswordVisibility()\"></button> \r\n </ng-template>\r\n </kendo-textbox>\r\n</div>\r\n", styles: [".item.sc-ion-label-md-h,.item .sc-ion-label-md-h{font-weight:var(--z-label-weight);color:var(--z-label-color);text-shadow:var(--z-label-shadow)}.divtextbox{justify-content:space-between;width:99%}.k-textbox{color:var(--z-text-color)}.textbox-separator{margin-top:0}.textbox-clearbutton{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;outline:0;cursor:pointer;opacity:.5}.textbox-clearbutton:hover{opacity:100!important}.icon-button{text-align:center;padding-top:10px}.adornments-icon-mobile{margin-bottom:0;margin-left:5px;width:28px;height:28px}\n"] }]
|
|
163
|
-
}], ctorParameters: function () { return [{ type: i1.ZComponentService }]; }, propDecorators: { textbox: [{
|
|
164
|
-
type: ViewChild,
|
|
165
|
-
args: ["textbox"]
|
|
166
|
-
}] } });
|
|
167
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoienRleHQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvenRleHQvenRleHQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvenRleHQvenRleHQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0JBQStCO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBTzdELDJDQUEyQztBQUMzQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFFeEUsT0FBTyxFQUFjLGdCQUFnQixFQUE2RSxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7OztBQVMxSSxNQUFNLE9BQU8sY0FBZSxTQUFRLGNBQWM7SUFRaEQsWUFDUyxnQkFBbUM7UUFFMUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFGakIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFtQjtRQUhyQyxvQkFBZSxHQUFZLEtBQUssQ0FBQztJQU14QyxDQUFDO0lBRUQsUUFBUTtRQUNOLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBQzdDLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssV0FBVyxDQUFDLENBQUEsMEJBQTBCO1FBRWhGLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUM1QyxJQUFJLENBQUMsbUJBQW1CLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztTQUM1QztRQUVELElBQUksQ0FBQyxJ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QyxJQUFJLEdBQUcsTUFBTSxDQUFDO1NBQ3ZCO2FBQU07WUFDTCxPQUFPLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQztTQUMzQjtJQUNILENBQUM7SUFFTSxlQUFlO1FBQ3BCLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFTSxLQUFLO1FBQ1YsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2hCLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDckIsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs7MkdBdktVLGNBQWM7K0ZBQWQsY0FBYyw0S0NwQjNCLDgyR0E4REE7MkZEMUNhLGNBQWM7a0JBTjFCLFNBQVM7K0JBQ0UsV0FBVzt3R0FNQyxPQUFPO3NCQUE1QixTQUFTO3VCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyIvKioqKioqKioqKiBBbmd1bGFyICoqKioqKioqKiovXHJcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuLyoqKioqKioqKiogSW9uaWMgKioqKioqKioqKi9cclxuXHJcbi8qKioqKioqKioqIFBsdWdpbiAqKioqKioqKioqL1xyXG5pbXBvcnQgeyBUZXh0Qm94Q29tcG9uZW50IH0gZnJvbSBcIkBwcm9ncmVzcy9rZW5kby1hbmd1bGFyLWlucHV0c1wiO1xyXG5cclxuLyoqKioqKioqKiogQ29tcG9uZW50ICYgU2VydmljZSAqKioqKioqKioqL1xyXG5pbXBvcnQgeyBJbnB1dEZpZWxkQmFzZSB9IGZyb20gXCIuLi9jb21wb25lbnRzL2lucHV0ZmllbGRiYXNlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBaQ29tcG9uZW50U2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy96Y29tcG9uZW50LnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgWkNvbXBvbmVudCwgWkNvbXBvbmVudEhlbHBlciwgWkNvbXBvbmVudE91dHB1dEV2ZW50LCBDbGlja2FibGVJY29ucywgQWRvcm5tZW50UHJvcGVydGllcywgQ29tcG9uZW50VHlwZSB9IGZyb20gJ21taGdsb2JhbC16Y29yZSc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiYXBwLXp0ZXh0XCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi96dGV4dC5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsczogW1wiLi96dGV4dC5jb21wb25lbnQuc2Nzc1wiXVxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIFp0ZXh0Q29tcG9uZW50IGV4dGVuZHMgSW5wdXRGaWVsZEJhc2UgaW1wbGVtZW50cyBaQ29tcG9uZW50LCBPbkluaXQge1xyXG4gIEBWaWV3Q2hpbGQoXCJ0ZXh0Ym94XCIpIHRleHRib3g6IFRleHRCb3hDb21wb25lbnQ7XHJcblxyXG4gIHB1YmxpYyBpY29uTGlzdDogQ2xpY2thYmxlSWNvbnNbXTtcclxuICBwdWJsaWMgYWRvcm5tZW50TGlzdDogYW55W107XHJcbiAgcHVibGljIHNob3dDbGVhckJ1dHRvbjogYW55O1xyXG4gIHB1YmxpYyBpc1Bhc3N3b3JkRmllbGQ6IGJvb2xlYW4gPSBmYWxzZTsgXHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGNvbXBvbmVudFNlcnZpY2U6IFpDb21wb25lbnRTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcihjb21wb25lbnRTZXJ2aWNlKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgc3VwZXIuc2V0dXBJbm5lckZpZWxkKCk7XHJcbiAgICB0aGlzLmFkb3JubWVudExpc3QgPSB0aGlzLmRhdGEuQWRvcm5tZW50TGlzdDtcclxuICAgIHRoaXMuaXNQYXNzd29yZEZpZWxkID0gdGhpcy5kYXRhLlR5cGUgPT09ICd6cGFzc3dvcmQnOy8vQ29tcG9uZW50VHlwZS56UGFzc3dvcmQ7XHJcblxyXG4gICAgaWYgKHRoaXMuZGF0YS5PbkNsaWNrICYmICF0aGlzLmRhdGEuUmVhZE9ubHkpIHtcclxuICAgICAgdGhpcy5jb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVhZE9ubHkgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghdGhpcy5jb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVhZE9ubHkpIHtcclxuICAgICAgdGhpcy5zaG93Q2xlYXJCdXR0b24gPSB0aGlzLmRhdGEuQ2xlYXJCdXR0b247XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zZXR1cENsaWNrYWJsZUljb25MaXN0KCk7XHJcbiAgICBzdXBlci5mb2N1c09uRGVmYXVsdCh0aGlzLmZvY3VzLmJpbmQodGhpcykpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgaWYgKHRoaXMuZGF0YS5UeXBlID09PSAnenBhc3N3b3JkJykgeyAvL0NvbXBvbmVudFR5cGUuelBhc3N3b3JkKSB7XHJcbiAgICAgIHRoaXMudGV4dGJveC5pbnB1dC5uYXRpdmVFbGVtZW50LnR5cGUgPSAncGFzc3dvcmQnO1xyXG4gICAgICB0aGlzLnRleHRib3guaW5wdXQubmF0aXZlRWxlbWVudC5hdXRvY29tcGxldGUgPSAnb2ZmJztcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmNvbXBvbmVudFNlcnZpY2UuZGVjcmVtZW50Q29tcG9uZW50Q291bnRlckZvckZpZWxkKHRoaXMuZGF0YSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldHVwQ2xpY2thYmxlSWNvbkxpc3QoKSB7XHJcbiAgICB0aGlzLmljb25MaXN0ID0gdGhpcy5kYXRhLkNsaWNrYWJsZUljb25zO1xyXG4gICAgaWYgKHRoaXMuaWNvbkxpc3QpIHtcclxuICAgICAgaWYgKHRoaXMuaWNvbkxpc3QubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIHRoaXMuaWNvbkxpc3QuZm9yRWFjaCgoaTogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAoaS5Ub29sdGlwID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgaS5Ub29sdGlwID0gXCJcIjtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGlmIChpLlRvb2x0aXAuaW5kZXhPZihcImdyb3VwLlwiKSAhPT0gLTEpIHtcclxuICAgICAgICAgICAgICBpLlRvb2x0aXAgPSBaQ29tcG9uZW50SGVscGVyLmdldEdyb3VwRXZhbFZhbHVlLmNhbGwodGhpcywgaS5Ub29sdGlwKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgLy8gRGVmYXVsdCBwb3NpdGlvbiB0b3AuIHJpZ2h0IHwgYm90dG9tIHwgdG9wIHwgbGVmdFxyXG4gICAgICAgICAgaWYgKGkuUG9zaXRpb24gPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICBpLlBvc2l0aW9uID0gXCJ0b3BcIjtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbWFwSW5wdXRUeXBlKGZpZWxkVHlwZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHN3aXRjaCAoZmllbGRUeXBlKSB7XHJcbiAgICAgIGNhc2UgXCJkYXRlXCI6XHJcbiAgICAgICAgcmV0dXJuIFwiZGF0ZVwiO1xyXG4gICAgICBjYXNlIFwienRleHRcIjpcclxuICAgICAgICByZXR1cm4gXCJ0ZXh0XCI7XHJcbiAgICAgIGNhc2UgXCJudW1iZXJcIjpcclxuICAgICAgICByZXR1cm4gXCJudW1iZXJcIjtcclxuICAgICAgY2FzZSBcImN1cnJlbmN5XCI6XHJcbiAgICAgICAgcmV0dXJuIFwibnVtYmVyXCI7XHJcbiAgICAgIGNhc2UgXCJlbWFpbFwiOlxyXG4gICAgICAgIHJldHVybiBcImVtYWlsXCI7XHJcbiAgICAgIGNhc2UgXCJ6cGFzc3dvcmRcIjpcclxuICAgICAgICByZXR1cm4gXCJwYXNzd29yZFwiO1xyXG4gICAgICBjYXNlIFwic2VhcmNoXCI6XHJcbiAgICAgICAgcmV0dXJuIFwic2VhcmNoXCI7XHJcbiAgICAgIGNhc2UgXCJ0ZWxcIjpcclxuICAgICAgICByZXR1cm4gXCJ0ZWxcIjtcclxuICAgICAgY2FzZSBcInRleHRcIjpcclxuICAgICAgICByZXR1cm4gXCJ0ZXh0XCI7XHJcbiAgICAgIGNhc2UgXCJ0aW1lXCI6XHJcbiAgICAgICAgcmV0dXJuIFwidGltZVwiO1xyXG4gICAgICBjYXNlIFwidXJsXCI6XHJcbiAgICAgICAgcmV0dXJuIFwidXJsXCI7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuIFwidGV4dFwiO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbWFwSW5wdXRNb2RlKGZpZWxkVHlwZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHN3aXRjaCAoZmllbGRUeXBlKSB7XHJcbiAgICAgIGNhc2UgXCJkYXRlXCI6XHJcbiAgICAgICAgcmV0dXJuIFwibm9uZVwiO1xyXG4gICAgICBjYXNlIFwienRleHRcIjpcclxuICAgICAgICByZXR1cm4gXCJ0ZXh0XCI7XHJcbiAgICAgIGNhc2UgXCJudW1iZXJcIjpcclxuICAgICAgICByZXR1cm4gXCJkZWNpbWFsXCI7XHJcbiAgICAgIGNhc2UgXCJjdXJyZW5jeVwiOlxyXG4gICAgICAgIHJldHVybiBcImRlY2ltYWxcIjtcclxuICAgICAgY2FzZSBcImVtYWlsXCI6XHJcbiAgICAgICAgcmV0dXJuIFwiZW1haWxcIjtcclxuICAgICAgY2FzZSBcInpwYXNzd29yZFwiOlxyXG4gICAgICAgIHJldHVybiBcInRleHRcIjtcclxuICAgICAgY2FzZSBcInNlYXJjaFwiOlxyXG4gICAgICAgIHJldHVybiBcInNlYXJjaFwiO1xyXG4gICAgICBjYXNlIFwidGVsXCI6XHJcbiAgICAgICAgcmV0dXJuIFwidGVsXCI7XHJcbiAgICAgIGNhc2UgXCJ0ZXh0XCI6XHJcbiAgICAgICAgcmV0dXJuIFwidGV4dFwiO1xyXG4gICAgICBjYXNlIFwidGltZVwiOlxyXG4gICAgICAgIHJldHVybiBcIm5vbmVcIjtcclxuICAgICAgY2FzZSBcInVybFwiOlxyXG4gICAgICAgIHJldHVybiBcInVybFwiO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiBcInRleHRcIjtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICAvKioqKioqKioqKiBBZG9ybm1lbnQgKioqKioqKioqKi9cclxuICBwdWJsaWMgZ2V0QWRvcm5tZW50QmFja2dyb3VuZENvbG9yKGFkb3JubWVudDogQWRvcm5tZW50UHJvcGVydGllcykge1xyXG4gICAgaWYgKGFkb3JubWVudC5CYWNrZ3JvdW5kQ29sb3IpIHtcclxuICAgICAgcmV0dXJuIGFkb3JubWVudC5CYWNrZ3JvdW5kQ29sb3IgKyBcIiFpbXBvcnRhbnRcIjtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gXCJ0cmFuc3BhcmVudCAhaW1wb3J0YW50XCI7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYWRvcm5tZW50TG9vayhhZG9ybm1lbnQ6IEFkb3JubWVudFByb3BlcnRpZXMpIHtcclxuICAgIGlmIChhZG9ybm1lbnQuQWRvcm5tZW50TG9vaykge1xyXG4gICAgICByZXR1cm4gYWRvcm5tZW50LkFkb3JubWVudExvb2s7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuICdjbGVhcidcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkFkb3JubWVudENsaWNrKGFkb3JubWVudDogQWRvcm5tZW50UHJvcGVydGllcykge1xyXG4gICAgaWYgKGFkb3JubWVudC5PbkNsaWNrKSB7XHJcbiAgICAgIHRoaXMuZ3JvdXAuc3ViamVjdC5uZXh0KHtcclxuICAgICAgICB0eXBlOiAnenRleHQtYWRvcm5tZW50JyxcclxuICAgICAgICB0YXJnZXQ6IGFkb3JubWVudC5PbkNsaWNrLFxyXG4gICAgICAgIGRhdGE6IGFkb3JubWVudFxyXG4gICAgICB9IGFzIFpDb21wb25lbnRPdXRwdXRFdmVudCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdG9nZ2xlUGFzc3dvcmRWaXNpYmlsaXR5KCk6IHZvaWQge1xyXG4gICAgY29uc3QgaW5wdXRFbCA9IHRoaXMudGV4dGJveC5pbnB1dC5uYXRpdmVFbGVtZW50O1xyXG5cclxuICAgIGlmIChpbnB1dEVsLnR5cGUgPT09IFwicGFzc3dvcmRcIikge1xyXG4gICAgICBpbnB1dEVsLnR5cGUgPSBcInRleHRcIjsgXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpbnB1dEVsLnR5cGUgPSBcInBhc3N3b3JkXCI7IFxyXG4gICAgfSBcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZWFkT25seU9uQ2xlYXIoKSB7XHJcbiAgICBaQ29tcG9uZW50SGVscGVyLnNldE1vZGVsVmFsdWUodGhpcy5kYXRhLlZhbHVlLCBudWxsLCB0aGlzLmdyb3VwKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBmb2N1cygpIHtcclxuICAgIGlmICh0aGlzLnRleHRib3gpIHtcclxuICAgICAgdGhpcy50ZXh0Ym94LmZvY3VzKCk7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IFtmb3JtR3JvdXBdPVwiZm9ybVwiIGNsYXNzPVwienRleHQtY29udGFpbmVyIGUxdGFnLXN0eWxlXCIgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuc3R5bGUuc3R5bGVcIj5cclxuICA8IS0tIElvbiBJbnB1dCBmb3IgTW9iaWxlIFNjcmVlbiAtLT5cclxuICA8aW9uLWlucHV0ICpuZ0lmPVwiaXNNb2JpbGVTY3JlZW4oKVwiXHJcbiAgICAgICAgICAgICBjbGFzcz1cImUxdGFnLXN0eWxlMVwiXHJcbiAgICAgICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCIoISFjb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVhZE9ubHlGaWVsZCA/IGdyb3VwW2NvbXBvbmVudFByb3BlcnRpZXMuaXNSZWFkT25seUZpZWxkXSA6IGNvbXBvbmVudFByb3BlcnRpZXMuaXNSZWFkT25seSlcIlxyXG4gICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJkYXRhLlZhbHVlXCJcclxuICAgICAgICAgICAgIFtpZF09XCJkYXRhLlZhbHVlXCJcclxuICAgICAgICAgICAgIFtpbnB1dG1vZGVdPVwibWFwSW5wdXRNb2RlKGRhdGEuVHlwZSlcIlxyXG4gICAgICAgICAgICAgW21heGxlbmd0aF09XCJkYXRhLk1heExlbmd0aFwiXHJcbiAgICAgICAgICAgICBbbWlubGVuZ3RoXT1cImRhdGEuTWluTGVuZ3RoXCJcclxuICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJkYXRhLlBsYWNlSG9sZGVyXCJcclxuICAgICAgICAgICAgIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLnN0eWxlLnN0eWxlMVwiXHJcbiAgICAgICAgICAgICBbdHlwZV09XCJtYXBJbnB1dFR5cGUoZGF0YS5UeXBlKVwiXHJcbiAgICAgICAgICAgICBjbGVhck9uRWRpdFxyXG4gICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ2xpY2soJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAoaW9uQ2hhbmdlKT1cIm9uQ2hhbmdlKCRldmVudCwgJGV2ZW50LnRhcmdldC52YWx1ZSlcIj5cclxuICA8L2lvbi1pbnB1dD5cclxuXHJcbiAgPCEtLSBLZW5kbyBUZXh0Qm94IGZvciBOb24tTW9iaWxlIFNjcmVlbiAtLT5cclxuICA8a2VuZG8tdGV4dGJveCAqbmdJZj1cIiFpc01vYmlsZVNjcmVlbigpXCJcclxuICAgICAgICAgICAgICAgICAjdGV4dGJveFxyXG4gICAgICAgICAgICAgICAgIGNsYXNzPVwiaW5wdXQtZmllbGQgZTF0YWctc3R5bGUxXCJcclxuICAgICAgICAgICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiKCEhY29tcG9uZW50UHJvcGVydGllcy5pc1JlYWRPbmx5RmllbGQgPyBncm91cFtjb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVhZE9ubHlGaWVsZF0gOiBjb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVhZE9ubHkpXCJcclxuICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImRhdGEuVmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgIFtpZF09XCJkYXRhLlZhbHVlXCJcclxuICAgICAgICAgICAgICAgICBbbWF4bGVuZ3RoXT1cImRhdGEuTWF4TGVuZ3RoXCJcclxuICAgICAgICAgICAgICAgICBbbWlubGVuZ3RoXT1cImRhdGEuTWluTGVuZ3RoXCJcclxuICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiZGF0YS5QbGFjZUhvbGRlclwiXHJcbiAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cIighIWNvbXBvbmVudFByb3BlcnRpZXMuaXNSZWFkT25seUZpZWxkID8gZ3JvdXBbY29tcG9uZW50UHJvcGVydGllcy5pc1JlYWRPbmx5RmllbGRdIDogY29tcG9uZW50UHJvcGVydGllcy5pc1JlYWRPbmx5KVwiXHJcbiAgICAgICAgICAgICAgICAgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuc3R5bGUuc3R5bGUxXCJcclxuICAgICAgICAgICAgICAgICBbdHlwZV09XCJtYXBJbnB1dFR5cGUoZGF0YS5UeXBlKVwiXHJcbiAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ2xpY2soJGV2ZW50LCAkZXZlbnQudGFyZ2V0LnZhbHVlKVwiXHJcbiAgICAgICAgICAgICAgICAgKGlucHV0KT1cIm9uQ2hhbmdlKCRldmVudCwgJGV2ZW50LnRhcmdldC52YWx1ZSlcIj4gXHJcbiAgICA8bmctdGVtcGxhdGUga2VuZG9UZXh0Qm94U3VmZml4VGVtcGxhdGUgKm5nSWY9XCJhZG9ybm1lbnRMaXN0XCI+XHJcbiAgICAgIDxidXR0b24ga2VuZG9CdXR0b25cclxuICAgICAgICAgICAgICAqbmdJZj1cImRhdGEuT25DbGlja1wiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0Ym94LWNsZWFyYnV0dG9uIGUxdGFnLXN0eWxlMlwiXHJcbiAgICAgICAgICAgICAgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuc3R5bGUuc3R5bGUyXCJcclxuICAgICAgICAgICAgICBbbG9va109XCInY2xlYXInXCJcclxuICAgICAgICAgICAgICBbaWNvbl09XCInY2xvc2UtY2lyY2xlJ1wiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInJlYWRPbmx5T25DbGVhcigpXCI+PC9idXR0b24+XHJcblxyXG4gICAgICA8IS0tIEZvciBBZG9ybm1lbnRzIGZlYXR1cmUgLS0+XHJcbiAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGFkb3JubWVudCBvZiBhZG9ybm1lbnRMaXN0XCIgY2xhc3M9XCJlMXRhZy1zdHlsZTNcIiBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5zdHlsZS5zdHlsZTNcIj5cclxuICAgICAgICA8a2VuZG8tdGV4dGJveC1zZXBhcmF0b3IgKm5nSWY9XCIhYWRvcm5tZW50LkhpZGVTZXBlcmF0b3JcIiBjbGFzcz1cInRleHRib3gtc2VwYXJhdG9yIGUxdGFnLXN0eWxlNFwiIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLnN0eWxlLnN0eWxlNFwiPjwva2VuZG8tdGV4dGJveC1zZXBhcmF0b3I+XHJcbiAgICAgICAgPGJ1dHRvbiBrZW5kb0J1dHRvblxyXG4gICAgICAgICAgICAgICAgW2xvb2tdPVwiYWRvcm5tZW50TG9vayhhZG9ybm1lbnQpXCJcclxuICAgICAgICAgICAgICAgIFtpY29uXT1cImFkb3JubWVudC5JY29uXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkFkb3JubWVudENsaWNrKGFkb3JubWVudClcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJlMXRhZy1zdHlsZTVcIlxyXG4gICAgICAgICAgICAgICAgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuc3R5bGUuc3R5bGU1XCJcclxuICAgICAgICAgICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cImdldEFkb3JubWVudEJhY2tncm91bmRDb2xvcihhZG9ybm1lbnQpXCI+PC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDxuZy10ZW1wbGF0ZSBrZW5kb1RleHRCb3hTdWZmaXhUZW1wbGF0ZSAqbmdJZj1cImlzUGFzc3dvcmRGaWVsZFwiPlxyXG4gICAgICA8YnV0dG9uIGtlbmRvQnV0dG9uXHJcbiAgICAgICAgICAgICAgW2xvb2tdPVwiJ2NsZWFyJ1wiXHJcbiAgICAgICAgICAgICAgW2ljb25dPVwiJ2V5ZSdcIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVQYXNzd29yZFZpc2liaWxpdHkoKVwiPjwvYnV0dG9uPiBcclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgPC9rZW5kby10ZXh0Ym94PlxyXG48L2Rpdj5cclxuIl19
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
/********** Angular **********/
|
|
2
|
-
import { Component, ViewChild } from '@angular/core';
|
|
3
|
-
/********** Component & Service **********/
|
|
4
|
-
import { InputFieldBase } from '../components/inputfieldbase.component';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "../services/zcomponent.service";
|
|
7
|
-
import * as i2 from "@ionic/angular";
|
|
8
|
-
import * as i3 from "@progress/kendo-angular-inputs";
|
|
9
|
-
import * as i4 from "@angular/forms";
|
|
10
|
-
import * as i5 from "@angular/common";
|
|
11
|
-
export class ZtextareaComponent extends InputFieldBase {
|
|
12
|
-
constructor(componentService) {
|
|
13
|
-
super(componentService);
|
|
14
|
-
}
|
|
15
|
-
ngOnInit() {
|
|
16
|
-
super.setupInnerField();
|
|
17
|
-
this.setCharCounterDisplayStr();
|
|
18
|
-
this.subscribeToValueChange();
|
|
19
|
-
super.focusOnDefault(this.focus.bind(this));
|
|
20
|
-
}
|
|
21
|
-
ngAfterViewInit() {
|
|
22
|
-
this.componentService.decrementComponentCounterForField(this.data);
|
|
23
|
-
}
|
|
24
|
-
setCharCounterDisplayStr() {
|
|
25
|
-
let characterCount = 0;
|
|
26
|
-
if (this.group.zModel && this.group.zModel[this.data.Value]) {
|
|
27
|
-
characterCount = this.group.zModel[this.data.Value].length;
|
|
28
|
-
}
|
|
29
|
-
this.charCounterDisplayStr = `${characterCount} ${this.data.MaxLength ? (' / ' + this.data.MaxLength) : ''}`;
|
|
30
|
-
}
|
|
31
|
-
onChange(event, fieldValue) {
|
|
32
|
-
super.onChange(event, fieldValue);
|
|
33
|
-
}
|
|
34
|
-
subscribeToValueChange() {
|
|
35
|
-
if (this.data.IsShowCharacterCount) {
|
|
36
|
-
const formcontrol = this.form.get(this.data.Value);
|
|
37
|
-
if (formcontrol) {
|
|
38
|
-
this.valueChangeSubscription = formcontrol.valueChanges.subscribe(value => {
|
|
39
|
-
this.setCharCounterDisplayStr();
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
focus() {
|
|
45
|
-
if (this.textarea) {
|
|
46
|
-
this.textarea.focus();
|
|
47
|
-
return true;
|
|
48
|
-
}
|
|
49
|
-
return false;
|
|
50
|
-
}
|
|
51
|
-
ngOnDestroy() {
|
|
52
|
-
if (this.valueChangeSubscription) {
|
|
53
|
-
this.valueChangeSubscription.unsubscribe();
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
ZtextareaComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: ZtextareaComponent, deps: [{ token: i1.ZComponentService }], target: i0.ɵɵFactoryTarget.Component });
|
|
58
|
-
ZtextareaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.3", type: ZtextareaComponent, selector: "app-ztextarea", viewQueries: [{ propertyName: "textarea", first: true, predicate: ["textarea"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div [formGroup]=\"form\" class=\"ztextarea-container e1tag-style\" [style]=\"componentProperties.style.style\">\r\n <!-- Ion Textarea for Mobile Screen -->\r\n <ion-textarea *ngIf=\"isMobileScreen()\"\r\n class=\"e1tag-style1\"\r\n [attr.disabled]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n [formControlName]=\"data.Value\"\r\n [id]=\"data.Value\"\r\n [maxlength]=\"data.MaxLength\"\r\n [minlength]=\"data.MinLength\"\r\n [placeholder]=\"data.PlaceHolder\"\r\n [rows]=\"data.textAreaRows\"\r\n [style]=\"componentProperties.style.style1\">\r\n </ion-textarea>\r\n\r\n <!-- Kendo Textarea for Non-Mobile Screen -->\r\n <kendo-textarea *ngIf=\"!isMobileScreen()\"\r\n #textarea\r\n class=\"input-field e1tag-style1\"\r\n [autoSize]=\"!data.textAreaRows\"\r\n [formControlName]=\"data.Value\"\r\n [id]=\"data.Value\"\r\n [maxlength]=\"data.MaxLength\"\r\n [minlength]=\"data.MinLength\"\r\n [placeholder]=\"data.PlaceHolder\"\r\n [readonly]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n [class.textarea-readonly]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n [resizable]=\"data.Resizable || 'none'\"\r\n [rows]=\"data.textAreaRows\"\r\n [style.height]=\"data.Height ? data.Height : 'auto'\"\r\n [style]=\"componentProperties.style.style1\"\r\n (click)=\"onItemClick($event)\"\r\n (valueChange)=\"onChange($event, $event)\">\r\n\r\n <kendo-textarea-suffix *ngIf=\"data.IsShowCharacterCount\"\r\n class=\"character-counter-container e1tag-style2\"\r\n [style]=\"componentProperties.style.style2\">\r\n <span class=\"character-counter e1tag-style3\"\r\n [style]=\"componentProperties.style.style3\">{{charCounterDisplayStr}}</span>\r\n </kendo-textarea-suffix>\r\n </kendo-textarea>\r\n</div>\r\n", styles: [".gridInlineEdit{--background: transparent}.item.sc-ion-label-md-h,.item .sc-ion-label-md-h{font-weight:var(--z-label-weight);color:var(--z-label-color);text-shadow:var(--z-label-shadow)}.character-counter-container{display:flex;justify-content:flex-end;padding:2px 5px;border-top-width:1px;border-top-style:solid;border-color:inherit;font-size:calc(var(--content-font-size) - 1px);color:var(--z-placeholder-color);background:#f0f0f0}kendo-textarea.textarea-readonly{background-color:#f2f2f2!important;color:#666!important}\n"], components: [{ type: i2.IonTextarea, selector: "ion-textarea", inputs: ["autoGrow", "autocapitalize", "autofocus", "clearOnEdit", "color", "cols", "debounce", "disabled", "enterkeyhint", "inputmode", "maxlength", "minlength", "mode", "name", "placeholder", "readonly", "required", "rows", "spellcheck", "value", "wrap"] }, { type: i3.TextAreaComponent, selector: "kendo-textarea", inputs: ["focusableId", "flow", "rows", "cols", "maxlength", "tabindex", "tabIndex", "resizable", "size", "rounded", "fillMode"], outputs: ["focus", "blur", "valueChange"], exportAs: ["kendoTextArea"] }, { type: i3.TextAreaSuffixComponent, selector: "kendo-textarea-suffix", exportAs: ["kendoTextAreaSuffix"] }], directives: [{ type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.TextValueAccessor, selector: "ion-input:not([type=number]),ion-textarea,ion-searchbar" }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i4.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { type: i4.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }] });
|
|
59
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: ZtextareaComponent, decorators: [{
|
|
60
|
-
type: Component,
|
|
61
|
-
args: [{ selector: 'app-ztextarea', template: "<div [formGroup]=\"form\" class=\"ztextarea-container e1tag-style\" [style]=\"componentProperties.style.style\">\r\n <!-- Ion Textarea for Mobile Screen -->\r\n <ion-textarea *ngIf=\"isMobileScreen()\"\r\n class=\"e1tag-style1\"\r\n [attr.disabled]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n [formControlName]=\"data.Value\"\r\n [id]=\"data.Value\"\r\n [maxlength]=\"data.MaxLength\"\r\n [minlength]=\"data.MinLength\"\r\n [placeholder]=\"data.PlaceHolder\"\r\n [rows]=\"data.textAreaRows\"\r\n [style]=\"componentProperties.style.style1\">\r\n </ion-textarea>\r\n\r\n <!-- Kendo Textarea for Non-Mobile Screen -->\r\n <kendo-textarea *ngIf=\"!isMobileScreen()\"\r\n #textarea\r\n class=\"input-field e1tag-style1\"\r\n [autoSize]=\"!data.textAreaRows\"\r\n [formControlName]=\"data.Value\"\r\n [id]=\"data.Value\"\r\n [maxlength]=\"data.MaxLength\"\r\n [minlength]=\"data.MinLength\"\r\n [placeholder]=\"data.PlaceHolder\"\r\n [readonly]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n [class.textarea-readonly]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n [resizable]=\"data.Resizable || 'none'\"\r\n [rows]=\"data.textAreaRows\"\r\n [style.height]=\"data.Height ? data.Height : 'auto'\"\r\n [style]=\"componentProperties.style.style1\"\r\n (click)=\"onItemClick($event)\"\r\n (valueChange)=\"onChange($event, $event)\">\r\n\r\n <kendo-textarea-suffix *ngIf=\"data.IsShowCharacterCount\"\r\n class=\"character-counter-container e1tag-style2\"\r\n [style]=\"componentProperties.style.style2\">\r\n <span class=\"character-counter e1tag-style3\"\r\n [style]=\"componentProperties.style.style3\">{{charCounterDisplayStr}}</span>\r\n </kendo-textarea-suffix>\r\n </kendo-textarea>\r\n</div>\r\n", styles: [".gridInlineEdit{--background: transparent}.item.sc-ion-label-md-h,.item .sc-ion-label-md-h{font-weight:var(--z-label-weight);color:var(--z-label-color);text-shadow:var(--z-label-shadow)}.character-counter-container{display:flex;justify-content:flex-end;padding:2px 5px;border-top-width:1px;border-top-style:solid;border-color:inherit;font-size:calc(var(--content-font-size) - 1px);color:var(--z-placeholder-color);background:#f0f0f0}kendo-textarea.textarea-readonly{background-color:#f2f2f2!important;color:#666!important}\n"] }]
|
|
62
|
-
}], ctorParameters: function () { return [{ type: i1.ZComponentService }]; }, propDecorators: { textarea: [{
|
|
63
|
-
type: ViewChild,
|
|
64
|
-
args: ["textarea"]
|
|
65
|
-
}] } });
|
|
66
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoienRleHRhcmVhLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21taGdsb2JhbC1keW5hbWljZm9ybS9zcmMvbGliL3p0ZXh0YXJlYS96dGV4dGFyZWEuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvenRleHRhcmVhL3p0ZXh0YXJlYS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQkFBK0I7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBcUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBT3hFLDJDQUEyQztBQUMzQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7Ozs7Ozs7QUFZeEUsTUFBTSxPQUFPLGtCQUFtQixTQUFRLGNBQWM7SUFJcEQsWUFDRSxnQkFBbUM7UUFFbkMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUE7SUFDekIsQ0FBQztJQUlELFFBQVE7UUFDTixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7UUFDaEMsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFDOUIsS0FBSyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGlDQUFpQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRU8sd0JBQXdCO1FBQzlCLElBQUksY0FBYyxHQUFHLENBQUMsQ0FBQztRQUN2QixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDM0QsY0FBYyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDO1NBQzVEO1FBQ0QsSUFBSSxDQUFDLHFCQUFxQixHQUFHLEdBQUcsY0FBYyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztJQUMvRyxDQUFDO0lBRWUsUUFBUSxDQUFDLEtBQVUsRUFBRSxVQUFnQjtRQUNuRCxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRU8sc0JBQXNCO1FBQzVCLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRTtZQUNsQyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ25ELElBQUksV0FBVyxFQUFFO2dCQUNmLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxXQUFXLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtvQkFDeEUsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7Z0JBQ2xDLENBQUMsQ0FBQyxDQUFDO2FBQ0o7U0FDRjtJQUNILENBQUM7SUFFTSxLQUFLO1FBQ1YsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2pCLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDdEIsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyx1QkFBdUIsRUFBRTtZQUNoQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDNUM7SUFDSCxDQUFDOzsrR0ExRFUsa0JBQWtCO21HQUFsQixrQkFBa0Isa0xDckIvQix1M0VBeUNBOzJGRHBCYSxrQkFBa0I7a0JBTjlCLFNBQVM7K0JBQ0UsZUFBZTt3R0FNRixRQUFRO3NCQUE5QixTQUFTO3VCQUFDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyIvKioqKioqKioqKiBBbmd1bGFyICoqKioqKioqKiovXHJcbmltcG9ydCB7IENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuLyoqKioqKioqKiogSW9uaWMgKioqKioqKioqKi9cclxuXHJcbi8qKioqKioqKioqIFBsdWdpbiAqKioqKioqKioqL1xyXG5pbXBvcnQgeyBUZXh0QXJlYUNvbXBvbmVudCB9IGZyb20gJ0Bwcm9ncmVzcy9rZW5kby1hbmd1bGFyLWlucHV0cyc7XHJcblxyXG4vKioqKioqKioqKiBDb21wb25lbnQgJiBTZXJ2aWNlICoqKioqKioqKiovXHJcbmltcG9ydCB7IElucHV0RmllbGRCYXNlIH0gZnJvbSAnLi4vY29tcG9uZW50cy9pbnB1dGZpZWxkYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBaQ29tcG9uZW50U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3pjb21wb25lbnQuc2VydmljZSc7XHJcbmltcG9ydCB7IFpDb21wb25lbnQsIFpDb21wb25lbnRIZWxwZXIgfSBmcm9tICdtbWhnbG9iYWwtemNvcmUnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC16dGV4dGFyZWEnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi96dGV4dGFyZWEuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3p0ZXh0YXJlYS5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIFp0ZXh0YXJlYUNvbXBvbmVudCBleHRlbmRzIElucHV0RmllbGRCYXNlIGltcGxlbWVudHMgWkNvbXBvbmVudCwgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIEBWaWV3Q2hpbGQoXCJ0ZXh0YXJlYVwiKSB0ZXh0YXJlYTogVGV4dEFyZWFDb21wb25lbnQ7XHJcbiAgcHJpdmF0ZSB2YWx1ZUNoYW5nZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIGNvbXBvbmVudFNlcnZpY2U6IFpDb21wb25lbnRTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcihjb21wb25lbnRTZXJ2aWNlKVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGNoYXJDb3VudGVyRGlzcGxheVN0cjogc3RyaW5nO1xyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHN1cGVyLnNldHVwSW5uZXJGaWVsZCgpO1xyXG4gICAgdGhpcy5zZXRDaGFyQ291bnRlckRpc3BsYXlTdHIoKTtcclxuICAgIHRoaXMuc3Vic2NyaWJlVG9WYWx1ZUNoYW5nZSgpO1xyXG4gICAgc3VwZXIuZm9jdXNPbkRlZmF1bHQodGhpcy5mb2N1cy5iaW5kKHRoaXMpKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuY29tcG9uZW50U2VydmljZS5kZWNyZW1lbnRDb21wb25lbnRDb3VudGVyRm9yRmllbGQodGhpcy5kYXRhKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0Q2hhckNvdW50ZXJEaXNwbGF5U3RyKCkge1xyXG4gICAgbGV0IGNoYXJhY3RlckNvdW50ID0gMDtcclxuICAgIGlmICh0aGlzLmdyb3VwLnpNb2RlbCAmJiB0aGlzLmdyb3VwLnpNb2RlbFt0aGlzLmRhdGEuVmFsdWVdKSB7XHJcbiAgICAgIGNoYXJhY3RlckNvdW50ID0gdGhpcy5ncm91cC56TW9kZWxbdGhpcy5kYXRhLlZhbHVlXS5sZW5ndGg7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNoYXJDb3VudGVyRGlzcGxheVN0ciA9IGAke2NoYXJhY3RlckNvdW50fSAke3RoaXMuZGF0YS5NYXhMZW5ndGggPyAoJyAvICcgKyB0aGlzLmRhdGEuTWF4TGVuZ3RoKSA6ICcnfWA7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb3ZlcnJpZGUgb25DaGFuZ2UoZXZlbnQ6IGFueSwgZmllbGRWYWx1ZT86IGFueSkge1xyXG4gICAgc3VwZXIub25DaGFuZ2UoZXZlbnQsIGZpZWxkVmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzdWJzY3JpYmVUb1ZhbHVlQ2hhbmdlKCkge1xyXG4gICAgaWYgKHRoaXMuZGF0YS5Jc1Nob3dDaGFyYWN0ZXJDb3VudCkge1xyXG4gICAgICBjb25zdCBmb3JtY29udHJvbCA9IHRoaXMuZm9ybS5nZXQodGhpcy5kYXRhLlZhbHVlKTtcclxuICAgICAgaWYgKGZvcm1jb250cm9sKSB7XHJcbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZVN1YnNjcmlwdGlvbiA9IGZvcm1jb250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodmFsdWUgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zZXRDaGFyQ291bnRlckRpc3BsYXlTdHIoKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGZvY3VzKCkge1xyXG4gICAgaWYgKHRoaXMudGV4dGFyZWEpIHtcclxuICAgICAgdGhpcy50ZXh0YXJlYS5mb2N1cygpO1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgaWYgKHRoaXMudmFsdWVDaGFuZ2VTdWJzY3JpcHRpb24pIHtcclxuICAgICAgdGhpcy52YWx1ZUNoYW5nZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2IFtmb3JtR3JvdXBdPVwiZm9ybVwiIGNsYXNzPVwienRleHRhcmVhLWNvbnRhaW5lciBlMXRhZy1zdHlsZVwiIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLnN0eWxlLnN0eWxlXCI+XHJcbiAgPCEtLSBJb24gVGV4dGFyZWEgZm9yIE1vYmlsZSBTY3JlZW4gLS0+XHJcbiAgPGlvbi10ZXh0YXJlYSAqbmdJZj1cImlzTW9iaWxlU2NyZWVuKClcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJlMXRhZy1zdHlsZTFcIlxyXG4gICAgICAgICAgICAgICAgW2F0dHIuZGlzYWJsZWRdPVwiKCEhY29tcG9uZW50UHJvcGVydGllcy5pc1JlYWRPbmx5RmllbGQgPyBncm91cFtjb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVhZE9ubHlGaWVsZF0gOiBjb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVhZE9ubHkpXCJcclxuICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiZGF0YS5WYWx1ZVwiXHJcbiAgICAgICAgICAgICAgICBbaWRdPVwiZGF0YS5WYWx1ZVwiXHJcbiAgICAgICAgICAgICAgICBbbWF4bGVuZ3RoXT1cImRhdGEuTWF4TGVuZ3RoXCJcclxuICAgICAgICAgICAgICAgIFttaW5sZW5ndGhdPVwiZGF0YS5NaW5MZW5ndGhcIlxyXG4gICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImRhdGEuUGxhY2VIb2xkZXJcIlxyXG4gICAgICAgICAgICAgICAgW3Jvd3NdPVwiZGF0YS50ZXh0QXJlYVJvd3NcIlxyXG4gICAgICAgICAgICAgICAgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuc3R5bGUuc3R5bGUxXCI+XHJcbiAgPC9pb24tdGV4dGFyZWE+XHJcblxyXG4gIDwhLS0gS2VuZG8gVGV4dGFyZWEgZm9yIE5vbi1Nb2JpbGUgU2NyZWVuIC0tPlxyXG4gIDxrZW5kby10ZXh0YXJlYSAqbmdJZj1cIiFpc01vYmlsZVNjcmVlbigpXCJcclxuICAgICAgICAgICAgICAgICAgI3RleHRhcmVhXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaW5wdXQtZmllbGQgZTF0YWctc3R5bGUxXCJcclxuICAgICAgICAgICAgICAgICAgW2F1dG9TaXplXT1cIiFkYXRhLnRleHRBcmVhUm93c1wiXHJcbiAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiZGF0YS5WYWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgIFtpZF09XCJkYXRhLlZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgW21heGxlbmd0aF09XCJkYXRhLk1heExlbmd0aFwiXHJcbiAgICAgICAgICAgICAgICAgIFttaW5sZW5ndGhdPVwiZGF0YS5NaW5MZW5ndGhcIlxyXG4gICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiZGF0YS5QbGFjZUhvbGRlclwiXHJcbiAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCIoISFjb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVhZE9ubHlGaWVsZCA/IGdyb3VwW2NvbXBvbmVudFByb3BlcnRpZXMuaXNSZWFkT25seUZpZWxkXSA6IGNvbXBvbmVudFByb3BlcnRpZXMuaXNSZWFkT25seSlcIlxyXG4gICAgICAgICAgICAgICAgICBbY2xhc3MudGV4dGFyZWEtcmVhZG9ubHldPVwiKCEhY29tcG9uZW50UHJvcGVydGllcy5pc1JlYWRPbmx5RmllbGQgPyBncm91cFtjb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVhZE9ubHlGaWVsZF0gOiBjb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVhZE9ubHkpXCJcclxuICAgICAgICAgICAgICAgICAgW3Jlc2l6YWJsZV09XCJkYXRhLlJlc2l6YWJsZSB8fCAnbm9uZSdcIlxyXG4gICAgICAgICAgICAgICAgICBbcm93c109XCJkYXRhLnRleHRBcmVhUm93c1wiXHJcbiAgICAgICAgICAgICAgICAgIFtzdHlsZS5oZWlnaHRdPVwiZGF0YS5IZWlnaHQgPyBkYXRhLkhlaWdodCA6ICdhdXRvJ1wiXHJcbiAgICAgICAgICAgICAgICAgIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLnN0eWxlLnN0eWxlMVwiXHJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkl0ZW1DbGljaygkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cIm9uQ2hhbmdlKCRldmVudCwgJGV2ZW50KVwiPlxyXG5cclxuICAgIDxrZW5kby10ZXh0YXJlYS1zdWZmaXggKm5nSWY9XCJkYXRhLklzU2hvd0NoYXJhY3RlckNvdW50XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjaGFyYWN0ZXItY291bnRlci1jb250YWluZXIgZTF0YWctc3R5bGUyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuc3R5bGUuc3R5bGUyXCI+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwiY2hhcmFjdGVyLWNvdW50ZXIgZTF0YWctc3R5bGUzXCJcclxuICAgICAgICAgICAgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuc3R5bGUuc3R5bGUzXCI+e3tjaGFyQ291bnRlckRpc3BsYXlTdHJ9fTwvc3Bhbj5cclxuICAgIDwva2VuZG8tdGV4dGFyZWEtc3VmZml4PlxyXG4gIDwva2VuZG8tdGV4dGFyZWE+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
/********** Angular **********/
|
|
2
|
-
import { Component, ViewChild } from '@angular/core';
|
|
3
|
-
/********** Component & Service **********/
|
|
4
|
-
import { InputFieldBase } from '../components/inputfieldbase.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 "mmhglobal-zcore";
|
|
9
|
-
import * as i3 from "@progress/kendo-angular-dialog";
|
|
10
|
-
import * as i4 from "@ionic/angular";
|
|
11
|
-
import * as i5 from "@fortawesome/angular-fontawesome";
|
|
12
|
-
import * as i6 from "@progress/kendo-angular-editor";
|
|
13
|
-
import * as i7 from "@progress/kendo-angular-toolbar";
|
|
14
|
-
import * as i8 from "@angular/forms";
|
|
15
|
-
import * as i9 from "@angular/common";
|
|
16
|
-
import * as i10 from "@angular/flex-layout/extended";
|
|
17
|
-
export class ZtexteditorComponent extends InputFieldBase {
|
|
18
|
-
constructor(componentService, fontAweSomeService, dialogService) {
|
|
19
|
-
super(componentService);
|
|
20
|
-
this.componentService = componentService;
|
|
21
|
-
this.fontAweSomeService = fontAweSomeService;
|
|
22
|
-
this.dialogService = dialogService;
|
|
23
|
-
this.pasteCleanupSettings = {
|
|
24
|
-
removeMsClasses: true,
|
|
25
|
-
removeMsStyles: true,
|
|
26
|
-
removeInvalidHTML: true,
|
|
27
|
-
};
|
|
28
|
-
this.componentSettings = {
|
|
29
|
-
iframe: true,
|
|
30
|
-
};
|
|
31
|
-
this.CloseEnlargeBtn = false;
|
|
32
|
-
this.style = "";
|
|
33
|
-
}
|
|
34
|
-
ngOnInit() {
|
|
35
|
-
super.setupInnerField();
|
|
36
|
-
this.data.ToolBarUploadImageMethod = this.data.ToolBarUploadImageMethod || 'explorer'; // || 'default';
|
|
37
|
-
this.setupPasteCleanupSettings();
|
|
38
|
-
super.setupComponentSettings(this.componentSettings);
|
|
39
|
-
super.focusOnDefault(this.focus.bind(this));
|
|
40
|
-
}
|
|
41
|
-
ngAfterViewInit() {
|
|
42
|
-
this.componentService.decrementComponentCounterForField(this.data);
|
|
43
|
-
}
|
|
44
|
-
onChange(value) {
|
|
45
|
-
ZComponentHelper.setToZModel(this.data.Value, value, this.group, this.data);
|
|
46
|
-
this.triggerEvent("inputfield-onChange", this.data.OnChange, value);
|
|
47
|
-
}
|
|
48
|
-
focus() {
|
|
49
|
-
if (this.editor) {
|
|
50
|
-
this.editor.focus();
|
|
51
|
-
return true;
|
|
52
|
-
}
|
|
53
|
-
return false;
|
|
54
|
-
}
|
|
55
|
-
getFontAwesome(iconName, fontAwesomeService) {
|
|
56
|
-
const iconNameValue = ZComponentHelper.getGroupValue(iconName, this.group);
|
|
57
|
-
if (iconNameValue) {
|
|
58
|
-
return ZComponentHelper.getFontAwesome(iconNameValue, fontAwesomeService);
|
|
59
|
-
}
|
|
60
|
-
return iconName;
|
|
61
|
-
}
|
|
62
|
-
setupPasteCleanupSettings() {
|
|
63
|
-
if (this.data.Options) {
|
|
64
|
-
if (typeof this.data.Options == 'string') {
|
|
65
|
-
const option = ZComponentHelper.getGroupValue(this.data.Options, this.group);
|
|
66
|
-
Object.assign(this.pasteCleanupSettings, option);
|
|
67
|
-
}
|
|
68
|
-
else if (typeof this.data.Options == 'object') {
|
|
69
|
-
Object.assign(this.pasteCleanupSettings, this.data.Options);
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
// #region Custom Image Upload
|
|
74
|
-
openFileExplorer() {
|
|
75
|
-
const input = document.getElementById(`${this.data.Value}-upload-file`);
|
|
76
|
-
if (input) {
|
|
77
|
-
input.click();
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
openPopup() {
|
|
81
|
-
if (this.editor) {
|
|
82
|
-
// Open the popup
|
|
83
|
-
this.dialogRef = this.dialogService.open({
|
|
84
|
-
content: ZtexteditorComponent,
|
|
85
|
-
width: '98%',
|
|
86
|
-
height: '97%'
|
|
87
|
-
});
|
|
88
|
-
const texteditor = this.dialogRef.content.instance;
|
|
89
|
-
texteditor.data = this.data;
|
|
90
|
-
texteditor.data.AllowEnlarge = false;
|
|
91
|
-
texteditor.dialogRef = this.dialogRef;
|
|
92
|
-
texteditor.CloseEnlargeBtn = true;
|
|
93
|
-
texteditor.componentProperties = this.componentProperties;
|
|
94
|
-
this.style = this.componentProperties.style.style1;
|
|
95
|
-
texteditor.componentProperties.style.style1 += "height:" + (window.innerHeight * 0.8).toString() + "px";
|
|
96
|
-
texteditor.group = this.group;
|
|
97
|
-
texteditor.componentSettings = this.componentSettings;
|
|
98
|
-
texteditor.form = this.form;
|
|
99
|
-
//To set the html back into the target ztext editor.
|
|
100
|
-
this.dialogRef.result.subscribe(() => {
|
|
101
|
-
this.data.AllowEnlarge = true;
|
|
102
|
-
this.componentProperties.style.style1 = this.style;
|
|
103
|
-
this.editor.value = this.group.zModel[this.data.Value];
|
|
104
|
-
this.onChange(this.group.zModel[this.data.Value]);
|
|
105
|
-
this.focus();
|
|
106
|
-
});
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
onPopupClose() {
|
|
110
|
-
this.dialogRef.close();
|
|
111
|
-
}
|
|
112
|
-
uploadImage(fileInput) {
|
|
113
|
-
const uploadedImage = fileInput.target.files[0];
|
|
114
|
-
if (uploadedImage) {
|
|
115
|
-
this.insertImageIntoEditor(uploadedImage);
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
insertImageIntoEditor(file) {
|
|
119
|
-
var reader = new FileReader();
|
|
120
|
-
reader.readAsDataURL(file);
|
|
121
|
-
reader.onload = function () {
|
|
122
|
-
this.editor.exec("insertImage", { src: reader.result });
|
|
123
|
-
}.bind(this, reader);
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
ZtexteditorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: ZtexteditorComponent, deps: [{ token: i1.ZComponentService }, { token: i2.FontAweSomeService }, { token: i3.DialogService }], target: i0.ɵɵFactoryTarget.Component });
|
|
127
|
-
ZtexteditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.3", type: ZtexteditorComponent, selector: "app-ztexteditor", viewQueries: [{ propertyName: "editor", first: true, predicate: ["editor"], descendants: true }], usesInheritance: true, ngImport: i0, template: "\r\n\r\n<div [formGroup]=\"form\" class=\"ztexteditor-container e1tag-style\" [style]=\"componentProperties.style.style\" [ngClass]=\"data.Class\">\r\n <div class=\"col-lg-12 expand-btn-container\">\r\n <ion-button class=\"ion-activatable ripple-parent\" [style]=\"componentProperties.style.style4\" *ngIf=\"data.AllowEnlarge\" (click)=\"openPopup()\" [id]=\"data.Value +'-popup-button'\">\r\n <fa-icon class=\"btn-icon\" [icon]=\"getFontAwesome('faExpandAlt', fontAweSomeService)\"></fa-icon>\r\n </ion-button>\r\n <ion-button class=\"ion-activatable ripple-parent\" [style]=\"componentProperties.style.style4\" *ngIf=\"CloseEnlargeBtn\" (click)=\"onPopupClose()\" [id]=\"data.Value +'-popup-button'\">\r\n <fa-icon class=\"btn-icon\" [icon]=\"getFontAwesome('faCompressAlt', fontAweSomeService)\"></fa-icon>\r\n </ion-button>\r\n</div>\r\n <kendo-editor #editor\r\n [id]=\"data.Value\"\r\n [formControlName]=\"data.Value\"\r\n class=\"e1tag-style1\"\r\n [style]=\"componentProperties.style.style1\"\r\n [readonly]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n (valueChange)=\"onChange($event)\"\r\n [resizable]=\"data.Resizable || false\"\r\n [pasteCleanupSettings]=\"pasteCleanupSettings\"\r\n [iframe]=\"componentSettings.iframe\">\r\n <kendo-toolbar [style.display]=\"data.ToolBarStyle === 'basic' ? 'inherit' : 'none'\" class=\"e1tag-style2\"\r\n [style]=\"componentProperties.style.style2\">\r\n <kendo-toolbar-buttongroup>\r\n <kendo-toolbar-button kendoEditorUndoButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorRedoButton></kendo-toolbar-button>\r\n </kendo-toolbar-buttongroup>\r\n <kendo-toolbar-buttongroup>\r\n <kendo-toolbar-button kendoEditorBoldButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorItalicButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorUnderlineButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorStrikethroughButton></kendo-toolbar-button>\r\n </kendo-toolbar-buttongroup>\r\n <kendo-toolbar-buttongroup>\r\n <kendo-toolbar-button kendoEditorSubscriptButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorSuperscriptButton></kendo-toolbar-button>\r\n </kendo-toolbar-buttongroup>\r\n <kendo-toolbar-buttongroup>\r\n <kendo-toolbar-button kendoEditorAlignLeftButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorAlignCenterButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorAlignRightButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorAlignJustifyButton></kendo-toolbar-button>\r\n </kendo-toolbar-buttongroup>\r\n <kendo-toolbar-dropdownlist kendoEditorFormat></kendo-toolbar-dropdownlist>\r\n <kendo-toolbar-dropdownlist kendoEditorFontSize></kendo-toolbar-dropdownlist>\r\n <kendo-toolbar-dropdownlist kendoEditorFontFamily></kendo-toolbar-dropdownlist>\r\n <kendo-toolbar-colorpicker kendoEditorForeColor></kendo-toolbar-colorpicker>\r\n <kendo-toolbar-colorpicker kendoEditorBackColor></kendo-toolbar-colorpicker>\r\n <kendo-toolbar-buttongroup>\r\n <kendo-toolbar-button kendoEditorInsertUnorderedListButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorInsertOrderedListButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorIndentButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorOutdentButton></kendo-toolbar-button>\r\n </kendo-toolbar-buttongroup>\r\n <kendo-toolbar-buttongroup>\r\n <kendo-toolbar-button kendoEditorCreateLinkButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorUnlinkButton></kendo-toolbar-button>\r\n </kendo-toolbar-buttongroup>\r\n <kendo-editor-insert-table-button></kendo-editor-insert-table-button>\r\n <kendo-toolbar-buttongroup>\r\n <kendo-toolbar-button kendoEditorAddColumnBeforeButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorAddColumnAfterButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorAddRowBeforeButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorAddRowAfterButton></kendo-toolbar-button>\r\n </kendo-toolbar-buttongroup>\r\n <kendo-toolbar-buttongroup>\r\n <kendo-toolbar-button kendoEditorDeleteColumnButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorDeleteRowButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorDeleteTableButton></kendo-toolbar-button>\r\n </kendo-toolbar-buttongroup>\r\n <kendo-toolbar-button kendoEditorInsertFileButton></kendo-toolbar-button>\r\n <kendo-toolbar-button *ngIf=\"data.ToolBarUploadImageMethod == 'default'\" kendoEditorInsertImageButton></kendo-toolbar-button>\r\n <kendo-toolbar-button *ngIf=\"data.ToolBarUploadImageMethod == 'explorer'\" icon=\"k-i-image k-i-photo\" (click)=\"openFileExplorer()\"></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorViewSourceButton></kendo-toolbar-button>\r\n </kendo-toolbar>\r\n <kendo-toolbar [style.display]=\"data.ToolBarStyle === 'full' ? 'inherit' : 'none'\" class=\"e1tag-style2\" [style]=\"componentProperties.style.style2\">\r\n <kendo-toolbar-buttongroup>\r\n <kendo-toolbar-button kendoEditorUndoButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorRedoButton></kendo-toolbar-button>\r\n </kendo-toolbar-buttongroup>\r\n <kendo-toolbar-buttongroup>\r\n <kendo-toolbar-button kendoEditorBoldButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorItalicButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorUnderlineButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorStrikethroughButton></kendo-toolbar-button>\r\n </kendo-toolbar-buttongroup>\r\n <kendo-toolbar-buttongroup>\r\n <kendo-toolbar-button kendoEditorSubscriptButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorSuperscriptButton></kendo-toolbar-button>\r\n </kendo-toolbar-buttongroup>\r\n <kendo-toolbar-buttongroup>\r\n <kendo-toolbar-button kendoEditorAlignLeftButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorAlignCenterButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorAlignRightButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorAlignJustifyButton></kendo-toolbar-button>\r\n </kendo-toolbar-buttongroup>\r\n <kendo-toolbar-dropdownlist kendoEditorFontSize></kendo-toolbar-dropdownlist>\r\n <kendo-toolbar-dropdownlist kendoEditorFontFamily></kendo-toolbar-dropdownlist>\r\n <kendo-toolbar-colorpicker kendoEditorForeColor view=\"gradient\"></kendo-toolbar-colorpicker>\r\n <kendo-toolbar-colorpicker kendoEditorBackColor view=\"gradient\"></kendo-toolbar-colorpicker>\r\n <kendo-toolbar-buttongroup>\r\n <kendo-toolbar-button kendoEditorInsertUnorderedListButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorInsertOrderedListButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorIndentButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorOutdentButton></kendo-toolbar-button>\r\n </kendo-toolbar-buttongroup>\r\n <kendo-toolbar-buttongroup>\r\n <kendo-toolbar-button kendoEditorCreateLinkButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorUnlinkButton></kendo-toolbar-button>\r\n </kendo-toolbar-buttongroup>\r\n <kendo-toolbar-button *ngIf=\"data.ToolBarUploadImageMethod == 'default'\" kendoEditorInsertImageButton></kendo-toolbar-button>\r\n <kendo-toolbar-button *ngIf=\"data.ToolBarUploadImageMethod == 'explorer'\" icon=\"k-i-image k-i-photo\" (click)=\"openFileExplorer()\"></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorViewSourceButton></kendo-toolbar-button>\r\n <kendo-editor-insert-table-button></kendo-editor-insert-table-button>\r\n <kendo-toolbar-buttongroup>\r\n <kendo-toolbar-button kendoEditorAddColumnBeforeButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorAddColumnAfterButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorAddRowBeforeButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorAddRowAfterButton></kendo-toolbar-button>\r\n </kendo-toolbar-buttongroup>\r\n <kendo-toolbar-buttongroup>\r\n <kendo-toolbar-button kendoEditorDeleteColumnButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorDeleteRowButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorDeleteTableButton></kendo-toolbar-button>\r\n </kendo-toolbar-buttongroup>\r\n <kendo-toolbar-buttongroup>\r\n <kendo-toolbar-button kendoEditorMergeCellsButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorSplitCellButton></kendo-toolbar-button>\r\n </kendo-toolbar-buttongroup>\r\n </kendo-toolbar>\r\n </kendo-editor>\r\n <input style=\"display:none;\" type=\"file\" [id]=\"data.Value +'-upload-file'\" [name]=\"data.Value +'-upload-file'\" accept=\"image/*\" ngf-max-size=\"5MB\" (change)=\"uploadImage($event)\">\r\n</div>\r\n", styles: [".title{margin:20px 10px 5px;font-size:18px;font-weight:700}.expand-btn-container{text-align:right}.expand-btn-container ion-button{--background: rgba(var(--ion-color-primary-rgb),10%);--color:black;font-size:12px}\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: i5.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }, { type: i6.EditorComponent, selector: "kendo-editor", inputs: ["value", "disabled", "readonly", "iframe", "applyToWord", "schema", "plugins", "placeholder", "preserveWhitespace", "pasteCleanupSettings", "resizable"], outputs: ["valueChange", "focus", "paste", "blur"] }, { type: i7.ToolBarComponent, selector: "kendo-toolbar", inputs: ["overflow", "resizable", "popupSettings", "tabindex", "tabIndex"], outputs: ["open", "close"], exportAs: ["kendoToolBar"] }, { type: i7.ToolBarButtonGroupComponent, selector: "kendo-toolbar-buttongroup", inputs: ["disabled", "selection", "width", "look"], exportAs: ["kendoToolBarButtonGroup"] }, { type: i7.ToolBarButtonComponent, selector: "kendo-toolbar-button", inputs: ["showText", "showIcon", "text", "style", "className", "title", "disabled", "toggleable", "look", "togglable", "selected", "fillMode", "themeColor", "icon", "iconClass", "imageUrl"], outputs: ["click", "pointerdown", "selectedChange"], exportAs: ["kendoToolBarButton"] }, { type: i6.EditorFormatComponent, selector: "kendo-toolbar-dropdownlist[kendoEditorFormat]", inputs: ["data"], outputs: ["valueChange"] }, { type: i6.EditorFontSizeComponent, selector: "kendo-toolbar-dropdownlist[kendoEditorFontSize]", inputs: ["data"], outputs: ["valueChange"] }, { type: i6.EditorFontFamilyComponent, selector: "kendo-toolbar-dropdownlist[kendoEditorFontFamily]", inputs: ["data"], outputs: ["valueChange"] }, { type: i6.EditorColorPickerComponent, selector: "kendo-toolbar-colorpicker", inputs: ["value", "icon", "paletteSettings", "editorCommand", "disabled", "views", "view"] }, { type: i6.EditorInsertTableButtonComponent, selector: "kendo-editor-insert-table-button" }], directives: [{ type: i8.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i8.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i9.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i10.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: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i8.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i6.EditorUndoButtonDirective, selector: "kendo-toolbar-button[kendoEditorUndoButton]" }, { type: i6.EditorRedoButtonDirective, selector: "kendo-toolbar-button[kendoEditorRedoButton]" }, { type: i6.EditorBoldButtonDirective, selector: "kendo-toolbar-button[kendoEditorBoldButton]" }, { type: i6.EditorItalicButtonDirective, selector: "kendo-toolbar-button[kendoEditorItalicButton]" }, { type: i6.EditorUnderlineButtonDirective, selector: "kendo-toolbar-button[kendoEditorUnderlineButton]" }, { type: i6.EditorStrikethroughButtonDirective, selector: "kendo-toolbar-button[kendoEditorStrikethroughButton]" }, { type: i6.EditorSubscriptButtonDirective, selector: "kendo-toolbar-button[kendoEditorSubscriptButton]" }, { type: i6.EditorSuperscriptButtonDirective, selector: "kendo-toolbar-button[kendoEditorSuperscriptButton]" }, { type: i6.EditorAlignLeftButtonDirective, selector: "kendo-toolbar-button[kendoEditorAlignLeftButton]" }, { type: i6.EditorAlignCenterButtonDirective, selector: "kendo-toolbar-button[kendoEditorAlignCenterButton]" }, { type: i6.EditorAlignRightButtonDirective, selector: "kendo-toolbar-button[kendoEditorAlignRightButton]" }, { type: i6.EditorAlignJustifyButtonDirective, selector: "kendo-toolbar-button[kendoEditorAlignJustifyButton]" }, { type: i6.EditorForeColorDirective, selector: "[kendoEditorForeColor]" }, { type: i6.EditorBackColorDirective, selector: "[kendoEditorBackColor]" }, { type: i6.EditorInsertUnorderedListButtonDirective, selector: "kendo-toolbar-button[kendoEditorInsertUnorderedListButton]" }, { type: i6.EditorInsertOrderedListButtonDirective, selector: "kendo-toolbar-button[kendoEditorInsertOrderedListButton]" }, { type: i6.EditorIndentButtonDirective, selector: "kendo-toolbar-button[kendoEditorIndentButton]" }, { type: i6.EditorOutdentButtonDirective, selector: "kendo-toolbar-button[kendoEditorOutdentButton]" }, { type: i6.EditorCreateLinkButtonDirective, selector: "kendo-toolbar-button[kendoEditorCreateLinkButton]" }, { type: i6.EditorUnlinkButtonDirective, selector: "kendo-toolbar-button[kendoEditorUnlinkButton]" }, { type: i6.EditorAddColumnBeforeButtonDirective, selector: "kendo-toolbar-button[kendoEditorAddColumnBeforeButton]" }, { type: i6.EditorAddColumnAfterButtonDirective, selector: "kendo-toolbar-button[kendoEditorAddColumnAfterButton]" }, { type: i6.EditorAddRowBeforeButtonDirective, selector: "kendo-toolbar-button[kendoEditorAddRowBeforeButton]" }, { type: i6.EditorAddRowAfterButtonDirective, selector: "kendo-toolbar-button[kendoEditorAddRowAfterButton]" }, { type: i6.EditorDeleteColumnButtonDirective, selector: "kendo-toolbar-button[kendoEditorDeleteColumnButton]" }, { type: i6.EditorDeleteRowButtonDirective, selector: "kendo-toolbar-button[kendoEditorDeleteRowButton]" }, { type: i6.EditorDeleteTableButtonDirective, selector: "kendo-toolbar-button[kendoEditorDeleteTableButton]" }, { type: i6.EditorInsertFileButtonDirective, selector: "kendo-toolbar-button[kendoEditorInsertFileButton]" }, { type: i6.EditorInsertImageButtonDirective, selector: "kendo-toolbar-button[kendoEditorInsertImageButton]" }, { type: i6.EditorViewSourceButtonDirective, selector: "kendo-toolbar-button[kendoEditorViewSourceButton]" }, { type: i6.EditorMergeCellsButtonDirective, selector: "kendo-toolbar-button[kendoEditorMergeCellsButton]" }, { type: i6.EditorSplitCellButtonDirective, selector: "kendo-toolbar-button[kendoEditorSplitCellButton]" }] });
|
|
128
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: ZtexteditorComponent, decorators: [{
|
|
129
|
-
type: Component,
|
|
130
|
-
args: [{ selector: 'app-ztexteditor', template: "\r\n\r\n<div [formGroup]=\"form\" class=\"ztexteditor-container e1tag-style\" [style]=\"componentProperties.style.style\" [ngClass]=\"data.Class\">\r\n <div class=\"col-lg-12 expand-btn-container\">\r\n <ion-button class=\"ion-activatable ripple-parent\" [style]=\"componentProperties.style.style4\" *ngIf=\"data.AllowEnlarge\" (click)=\"openPopup()\" [id]=\"data.Value +'-popup-button'\">\r\n <fa-icon class=\"btn-icon\" [icon]=\"getFontAwesome('faExpandAlt', fontAweSomeService)\"></fa-icon>\r\n </ion-button>\r\n <ion-button class=\"ion-activatable ripple-parent\" [style]=\"componentProperties.style.style4\" *ngIf=\"CloseEnlargeBtn\" (click)=\"onPopupClose()\" [id]=\"data.Value +'-popup-button'\">\r\n <fa-icon class=\"btn-icon\" [icon]=\"getFontAwesome('faCompressAlt', fontAweSomeService)\"></fa-icon>\r\n </ion-button>\r\n</div>\r\n <kendo-editor #editor\r\n [id]=\"data.Value\"\r\n [formControlName]=\"data.Value\"\r\n class=\"e1tag-style1\"\r\n [style]=\"componentProperties.style.style1\"\r\n [readonly]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n (valueChange)=\"onChange($event)\"\r\n [resizable]=\"data.Resizable || false\"\r\n [pasteCleanupSettings]=\"pasteCleanupSettings\"\r\n [iframe]=\"componentSettings.iframe\">\r\n <kendo-toolbar [style.display]=\"data.ToolBarStyle === 'basic' ? 'inherit' : 'none'\" class=\"e1tag-style2\"\r\n [style]=\"componentProperties.style.style2\">\r\n <kendo-toolbar-buttongroup>\r\n <kendo-toolbar-button kendoEditorUndoButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorRedoButton></kendo-toolbar-button>\r\n </kendo-toolbar-buttongroup>\r\n <kendo-toolbar-buttongroup>\r\n <kendo-toolbar-button kendoEditorBoldButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorItalicButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorUnderlineButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorStrikethroughButton></kendo-toolbar-button>\r\n </kendo-toolbar-buttongroup>\r\n <kendo-toolbar-buttongroup>\r\n <kendo-toolbar-button kendoEditorSubscriptButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorSuperscriptButton></kendo-toolbar-button>\r\n </kendo-toolbar-buttongroup>\r\n <kendo-toolbar-buttongroup>\r\n <kendo-toolbar-button kendoEditorAlignLeftButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorAlignCenterButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorAlignRightButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorAlignJustifyButton></kendo-toolbar-button>\r\n </kendo-toolbar-buttongroup>\r\n <kendo-toolbar-dropdownlist kendoEditorFormat></kendo-toolbar-dropdownlist>\r\n <kendo-toolbar-dropdownlist kendoEditorFontSize></kendo-toolbar-dropdownlist>\r\n <kendo-toolbar-dropdownlist kendoEditorFontFamily></kendo-toolbar-dropdownlist>\r\n <kendo-toolbar-colorpicker kendoEditorForeColor></kendo-toolbar-colorpicker>\r\n <kendo-toolbar-colorpicker kendoEditorBackColor></kendo-toolbar-colorpicker>\r\n <kendo-toolbar-buttongroup>\r\n <kendo-toolbar-button kendoEditorInsertUnorderedListButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorInsertOrderedListButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorIndentButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorOutdentButton></kendo-toolbar-button>\r\n </kendo-toolbar-buttongroup>\r\n <kendo-toolbar-buttongroup>\r\n <kendo-toolbar-button kendoEditorCreateLinkButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorUnlinkButton></kendo-toolbar-button>\r\n </kendo-toolbar-buttongroup>\r\n <kendo-editor-insert-table-button></kendo-editor-insert-table-button>\r\n <kendo-toolbar-buttongroup>\r\n <kendo-toolbar-button kendoEditorAddColumnBeforeButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorAddColumnAfterButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorAddRowBeforeButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorAddRowAfterButton></kendo-toolbar-button>\r\n </kendo-toolbar-buttongroup>\r\n <kendo-toolbar-buttongroup>\r\n <kendo-toolbar-button kendoEditorDeleteColumnButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorDeleteRowButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorDeleteTableButton></kendo-toolbar-button>\r\n </kendo-toolbar-buttongroup>\r\n <kendo-toolbar-button kendoEditorInsertFileButton></kendo-toolbar-button>\r\n <kendo-toolbar-button *ngIf=\"data.ToolBarUploadImageMethod == 'default'\" kendoEditorInsertImageButton></kendo-toolbar-button>\r\n <kendo-toolbar-button *ngIf=\"data.ToolBarUploadImageMethod == 'explorer'\" icon=\"k-i-image k-i-photo\" (click)=\"openFileExplorer()\"></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorViewSourceButton></kendo-toolbar-button>\r\n </kendo-toolbar>\r\n <kendo-toolbar [style.display]=\"data.ToolBarStyle === 'full' ? 'inherit' : 'none'\" class=\"e1tag-style2\" [style]=\"componentProperties.style.style2\">\r\n <kendo-toolbar-buttongroup>\r\n <kendo-toolbar-button kendoEditorUndoButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorRedoButton></kendo-toolbar-button>\r\n </kendo-toolbar-buttongroup>\r\n <kendo-toolbar-buttongroup>\r\n <kendo-toolbar-button kendoEditorBoldButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorItalicButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorUnderlineButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorStrikethroughButton></kendo-toolbar-button>\r\n </kendo-toolbar-buttongroup>\r\n <kendo-toolbar-buttongroup>\r\n <kendo-toolbar-button kendoEditorSubscriptButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorSuperscriptButton></kendo-toolbar-button>\r\n </kendo-toolbar-buttongroup>\r\n <kendo-toolbar-buttongroup>\r\n <kendo-toolbar-button kendoEditorAlignLeftButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorAlignCenterButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorAlignRightButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorAlignJustifyButton></kendo-toolbar-button>\r\n </kendo-toolbar-buttongroup>\r\n <kendo-toolbar-dropdownlist kendoEditorFontSize></kendo-toolbar-dropdownlist>\r\n <kendo-toolbar-dropdownlist kendoEditorFontFamily></kendo-toolbar-dropdownlist>\r\n <kendo-toolbar-colorpicker kendoEditorForeColor view=\"gradient\"></kendo-toolbar-colorpicker>\r\n <kendo-toolbar-colorpicker kendoEditorBackColor view=\"gradient\"></kendo-toolbar-colorpicker>\r\n <kendo-toolbar-buttongroup>\r\n <kendo-toolbar-button kendoEditorInsertUnorderedListButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorInsertOrderedListButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorIndentButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorOutdentButton></kendo-toolbar-button>\r\n </kendo-toolbar-buttongroup>\r\n <kendo-toolbar-buttongroup>\r\n <kendo-toolbar-button kendoEditorCreateLinkButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorUnlinkButton></kendo-toolbar-button>\r\n </kendo-toolbar-buttongroup>\r\n <kendo-toolbar-button *ngIf=\"data.ToolBarUploadImageMethod == 'default'\" kendoEditorInsertImageButton></kendo-toolbar-button>\r\n <kendo-toolbar-button *ngIf=\"data.ToolBarUploadImageMethod == 'explorer'\" icon=\"k-i-image k-i-photo\" (click)=\"openFileExplorer()\"></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorViewSourceButton></kendo-toolbar-button>\r\n <kendo-editor-insert-table-button></kendo-editor-insert-table-button>\r\n <kendo-toolbar-buttongroup>\r\n <kendo-toolbar-button kendoEditorAddColumnBeforeButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorAddColumnAfterButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorAddRowBeforeButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorAddRowAfterButton></kendo-toolbar-button>\r\n </kendo-toolbar-buttongroup>\r\n <kendo-toolbar-buttongroup>\r\n <kendo-toolbar-button kendoEditorDeleteColumnButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorDeleteRowButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorDeleteTableButton></kendo-toolbar-button>\r\n </kendo-toolbar-buttongroup>\r\n <kendo-toolbar-buttongroup>\r\n <kendo-toolbar-button kendoEditorMergeCellsButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorSplitCellButton></kendo-toolbar-button>\r\n </kendo-toolbar-buttongroup>\r\n </kendo-toolbar>\r\n </kendo-editor>\r\n <input style=\"display:none;\" type=\"file\" [id]=\"data.Value +'-upload-file'\" [name]=\"data.Value +'-upload-file'\" accept=\"image/*\" ngf-max-size=\"5MB\" (change)=\"uploadImage($event)\">\r\n</div>\r\n", styles: [".title{margin:20px 10px 5px;font-size:18px;font-weight:700}.expand-btn-container{text-align:right}.expand-btn-container ion-button{--background: rgba(var(--ion-color-primary-rgb),10%);--color:black;font-size:12px}\n"] }]
|
|
131
|
-
}], ctorParameters: function () { return [{ type: i1.ZComponentService }, { type: i2.FontAweSomeService }, { type: i3.DialogService }]; }, propDecorators: { editor: [{
|
|
132
|
-
type: ViewChild,
|
|
133
|
-
args: ['editor']
|
|
134
|
-
}] } });
|
|
135
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoienRleHRlZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvenRleHRlZGl0b3IvenRleHRlZGl0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvenRleHRlZGl0b3IvenRleHRlZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0JBQStCO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQVcsU0FBUyxFQUFHLE1BQU0sZUFBZSxDQUFDO0FBTy9ELDJDQUEyQztBQUMzQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFFeEUsT0FBTyxFQUFjLGdCQUFnQixFQUFxQixNQUFNLGlCQUFpQixDQUFDOzs7Ozs7Ozs7Ozs7QUFRbEYsTUFBTSxPQUFPLG9CQUFxQixTQUFRLGNBQWM7SUFhdEQsWUFDUyxnQkFBbUMsRUFDbkMsa0JBQXNDLEVBQ3RDLGFBQTRCO1FBRW5DLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBSmpCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBbUI7UUFDbkMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUN0QyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQWQ5Qix5QkFBb0IsR0FBRztZQUM1QixlQUFlLEVBQUUsSUFBSTtZQUNyQixjQUFjLEVBQUUsSUFBSTtZQUNwQixpQkFBaUIsRUFBRSxJQUFJO1NBQ3hCLENBQUM7UUFDSyxzQkFBaUIsR0FBRztZQUN6QixNQUFNLEVBQUUsSUFBSTtTQUNiLENBQUM7UUFDSyxvQkFBZSxHQUFXLEtBQUssQ0FBQztRQUMvQixVQUFLLEdBQUcsRUFBRSxDQUFDO0lBUW5CLENBQUM7SUFFRCxRQUFRO1FBQ04sS0FBSyxDQUFDLGVBQWUsRUFB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QUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO2dCQUNsRCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDaEIsQ0FBQyxDQUFDLENBQUM7U0FDTjtJQUNILENBQUM7SUFDTSxZQUFZO1FBQ2pCLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVNLFdBQVcsQ0FBQyxTQUFjO1FBQy9CLE1BQU0sYUFBYSxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2hELElBQUksYUFBYSxFQUFFO1lBQ2pCLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxhQUFhLENBQUMsQ0FBQztTQUMzQztJQUNILENBQUM7SUFFTyxxQkFBcUIsQ0FBQyxJQUFJO1FBQ2hDLElBQUksTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7UUFDOUIsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzQixNQUFNLENBQUMsTUFBTSxHQUFHO1lBQ2QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUUsR0FBRyxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQzFELENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7O2lIQXRIVSxvQkFBb0I7cUdBQXBCLG9CQUFvQixnTENuQmpDLDQ1U0FxSUE7MkZEbEhhLG9CQUFvQjtrQkFOaEMsU0FBUzsrQkFDRSxpQkFBaUI7cUtBTUMsTUFBTTtzQkFBakMsU0FBUzt1QkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiLyoqKioqKioqKiogQW5ndWxhciAqKioqKioqKioqL1xyXG5pbXBvcnQgeyBDb21wb25lbnQsICBPbkluaXQsIFZpZXdDaGlsZCAgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbi8qKioqKioqKioqIElvbmljICoqKioqKioqKiovXHJcblxyXG4vKioqKioqKioqKiBQbHVnaW4gKioqKioqKioqKi9cclxuaW1wb3J0IHsgRWRpdG9yQ29tcG9uZW50IH0gZnJvbSAnQHByb2dyZXNzL2tlbmRvLWFuZ3VsYXItZWRpdG9yJztcclxuXHJcbi8qKioqKioqKioqIENvbXBvbmVudCAmIFNlcnZpY2UgKioqKioqKioqKi9cclxuaW1wb3J0IHsgSW5wdXRGaWVsZEJhc2UgfSBmcm9tICcuLi9jb21wb25lbnRzL2lucHV0ZmllbGRiYXNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFpDb21wb25lbnRTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvemNvbXBvbmVudC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgWkNvbXBvbmVudCwgWkNvbXBvbmVudEhlbHBlciAsRm9udEF3ZVNvbWVTZXJ2aWNlfSBmcm9tICdtbWhnbG9iYWwtemNvcmUnO1xyXG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlLERpYWxvZ1JlZiB9IGZyb20gXCJAcHJvZ3Jlc3Mva2VuZG8tYW5ndWxhci1kaWFsb2dcIjtcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtenRleHRlZGl0b3InLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi96dGV4dGVkaXRvci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4venRleHRlZGl0b3IuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBadGV4dGVkaXRvckNvbXBvbmVudCBleHRlbmRzIElucHV0RmllbGRCYXNlIGltcGxlbWVudHMgWkNvbXBvbmVudCwgT25Jbml0IHtcclxuICBAVmlld0NoaWxkKCdlZGl0b3InKSBwdWJsaWMgZWRpdG9yOiBFZGl0b3JDb21wb25lbnQ7XHJcbiAgcHVibGljIHBhc3RlQ2xlYW51cFNldHRpbmdzID0ge1xyXG4gICAgcmVtb3ZlTXNDbGFzc2VzOiB0cnVlLFxyXG4gICAgcmVtb3ZlTXNTdHlsZXM6IHRydWUsXHJcbiAgICByZW1vdmVJbnZhbGlkSFRNTDogdHJ1ZSxcclxuICB9O1xyXG4gIHB1YmxpYyBjb21wb25lbnRTZXR0aW5ncyA9IHtcclxuICAgIGlmcmFtZTogdHJ1ZSxcclxuICB9O1xyXG4gIHB1YmxpYyBDbG9zZUVubGFyZ2VCdG46Ym9vbGVhbiA9IGZhbHNlO1xyXG4gIHByaXZhdGUgc3R5bGUgPSBcIlwiO1xyXG4gIHB1YmxpYyBkaWFsb2dSZWY6RGlhbG9nUmVmO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGNvbXBvbmVudFNlcnZpY2U6IFpDb21wb25lbnRTZXJ2aWNlLFxyXG4gICAgcHVibGljIGZvbnRBd2VTb21lU2VydmljZTogRm9udEF3ZVNvbWVTZXJ2aWNlLFxyXG4gICAgcHVibGljIGRpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2VcclxuICApIHtcclxuICAgIHN1cGVyKGNvbXBvbmVudFNlcnZpY2UpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBzdXBlci5zZXR1cElubmVyRmllbGQoKTtcclxuICAgIHRoaXMuZGF0YS5Ub29sQmFyVXBsb2FkSW1hZ2VNZXRob2QgPSB0aGlzLmRhdGEuVG9vbEJhclVwbG9hZEltYWdlTWV0aG9kIHx8ICdleHBsb3Jlcic7IC8vICB8fCAnZGVmYXVsdCc7XHJcbiAgICB0aGlzLnNldHVwUGFzdGVDbGVhbnVwU2V0dGluZ3MoKTtcclxuICAgIHN1cGVyLnNldHVwQ29tcG9uZW50U2V0dGluZ3ModGhpcy5jb21wb25lbnRTZXR0aW5ncyk7XHJcbiAgICBzdXBlci5mb2N1c09uRGVmYXVsdCh0aGlzLmZvY3VzLmJpbmQodGhpcykpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5jb21wb25lbnRTZXJ2aWNlLmRlY3JlbWVudENvbXBvbmVudENvdW50ZXJGb3JGaWVsZCh0aGlzLmRhdGEpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uQ2hhbmdlKHZhbHVlOiBhbnkpIHtcclxuICAgIFpDb21wb25lbnRIZWxwZXIuc2V0VG9aTW9kZWwodGhpcy5kYXRhLlZhbHVlLCB2YWx1ZSwgdGhpcy5ncm91cCwgdGhpcy5kYXRhKTtcclxuICAgIHRoaXMudHJpZ2dlckV2ZW50KFwiaW5wdXRmaWVsZC1vbkNoYW5nZVwiLCB0aGlzLmRhdGEuT25DaGFuZ2UsIHZhbHVlKTtcclxuICAgIFxyXG4gIH1cclxuXHJcbiAgcHVibGljIGZvY3VzKCkge1xyXG4gICAgaWYgKHRoaXMuZWRpdG9yKSB7XHJcbiAgICAgIHRoaXMuZWRpdG9yLmZvY3VzKCk7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuIHB1YmxpYyBnZXRGb250QXdlc29tZShpY29uTmFtZTogYW55LCBmb250QXdlc29tZVNlcnZpY2U6IEZvbnRBd2VTb21lU2VydmljZSkge1xyXG4gICAgY29uc3QgaWNvbk5hbWVWYWx1ZSA9IFpDb21wb25lbnRIZWxwZXIuZ2V0R3JvdXBWYWx1ZShpY29uTmFtZSwgdGhpcy5ncm91cCk7XHJcbiAgICBpZiAoaWNvbk5hbWVWYWx1ZSkge1xyXG4gICAgICByZXR1cm4gWkNvbXBvbmVudEhlbHBlci5nZXRGb250QXdlc29tZShpY29uTmFtZVZhbHVlLCBmb250QXdlc29tZVNlcnZpY2UpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGljb25OYW1lO1xyXG4gIH1cclxuICBwcml2YXRlIHNldHVwUGFzdGVDbGVhbnVwU2V0dGluZ3MoKSB7XHJcbiAgICBpZiAodGhpcy5kYXRhLk9wdGlvbnMpIHtcclxuICAgICAgaWYgKHR5cGVvZiB0aGlzLmRhdGEuT3B0aW9ucyA9PSAnc3RyaW5nJykge1xyXG4gICAgICAgIGNvbnN0IG9wdGlvbiA9IFpDb21wb25lbnRIZWxwZXIuZ2V0R3JvdXBWYWx1ZSh0aGlzLmRhdGEuT3B0aW9ucywgdGhpcy5ncm91cCk7XHJcbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLnBhc3RlQ2xlYW51cFNldHRpbmdzLCBvcHRpb24pO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgaWYgKHR5cGVvZiB0aGlzLmRhdGEuT3B0aW9ucyA9PSAnb2JqZWN0Jykge1xyXG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5wYXN0ZUNsZWFudXBTZXR0aW5ncywgdGhpcy5kYXRhLk9wdGlvbnMpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8vICNyZWdpb24gQ3VzdG9tIEltYWdlIFVwbG9hZFxyXG4gIHB1YmxpYyBvcGVuRmlsZUV4cGxvcmVyKCkge1xyXG4gICAgY29uc3QgaW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChgJHt0aGlzLmRhdGEuVmFsdWV9LXVwbG9hZC1maWxlYCk7XHJcbiAgICBpZiAoaW5wdXQpIHtcclxuICAgICAgaW5wdXQuY2xpY2soKTtcclxuICAgIH1cclxuICB9XHJcbiAgcHVibGljIG9wZW5Qb3B1cCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmVkaXRvcikge1xyXG4gICAgICAgIC8vIE9wZW4gdGhlIHBvcHVwXHJcbiAgICAgICBcclxuICAgICAgICB0aGlzLmRpYWxvZ1JlZj0gIHRoaXMuZGlhbG9nU2VydmljZS5vcGVuKHtcclxuICAgICAgICAgIGNvbnRlbnQ6IFp0ZXh0ZWRpdG9yQ29tcG9uZW50LFxyXG4gICAgICAgICAgd2lkdGg6ICc5OCUnLFxyXG4gICAgICAgICAgaGVpZ2h0OiAgJzk3JSdcclxuICAgICAgICB9KTtcclxuICAgICAgICBjb25zdCB0ZXh0ZWRpdG9yID0gIHRoaXMuZGlhbG9nUmVmLmNvbnRlbnQuaW5zdGFuY2UgYXMgWnRleHRlZGl0b3JDb21wb25lbnQ7XHJcbiAgICAgICAgdGV4dGVkaXRvci5kYXRhID0gdGhpcy5kYXRhO1xyXG4gICAgICAgIHRleHRlZGl0b3IuZGF0YS5BbGxvd0VubGFyZ2UgID0gZmFsc2U7XHJcbiAgICAgICAgdGV4dGVkaXRvci5kaWFsb2dSZWYgPSB0aGlzLmRpYWxvZ1JlZjtcclxuICAgICAgICB0ZXh0ZWRpdG9yLkNsb3NlRW5sYXJnZUJ0biA9IHRydWU7XHJcbiAgICAgICAgdGV4dGVkaXRvci5jb21wb25lbnRQcm9wZXJ0aWVzID0gdGhpcy5jb21wb25lbnRQcm9wZXJ0aWVzO1xyXG4gICAgICAgIHRoaXMuc3R5bGUgPSB0aGlzLmNvbXBvbmVudFByb3BlcnRpZXMuc3R5bGUuc3R5bGUxO1xyXG4gICAgICAgIHRleHRlZGl0b3IuY29tcG9uZW50UHJvcGVydGllcy5zdHlsZS5zdHlsZTEgKz0gXCJoZWlnaHQ6XCIgKyAod2luZG93LmlubmVySGVpZ2h0ICogMC44KS50b1N0cmluZygpICsgXCJweFwiO1xyXG4gICAgICAgIHRleHRlZGl0b3IuZ3JvdXAgPSB0aGlzLmdyb3VwO1xyXG4gICAgICAgIHRleHRlZGl0b3IuY29tcG9uZW50U2V0dGluZ3MgPSB0aGlzLmNvbXBvbmVudFNldHRpbmdzO1xyXG4gICAgICAgIHRleHRlZGl0b3IuZm9ybSA9IHRoaXMuZm9ybTtcclxuICAgICAgICAvL1RvIHNldCB0aGUgaHRtbCBiYWNrIGludG8gdGhlIHRhcmdldCB6dGV4dCBlZGl0b3IuXHJcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYucmVzdWx0LnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmRhdGEuQWxsb3dFbmxhcmdlICA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLmNvbXBvbmVudFByb3BlcnRpZXMuc3R5bGUuc3R5bGUxID0gdGhpcy5zdHlsZTtcclxuICAgICAgICAgdGhpcy5lZGl0b3IudmFsdWUgPSB0aGlzLmdyb3VwLnpNb2RlbFt0aGlzLmRhdGEuVmFsdWVdO1xyXG4gICAgICAgICAgIHRoaXMub25DaGFuZ2UodGhpcy5ncm91cC56TW9kZWxbdGhpcy5kYXRhLlZhbHVlXSk7XHJcbiAgICAgICAgICAgdGhpcy5mb2N1cygpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuICBwdWJsaWMgb25Qb3B1cENsb3NlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB1cGxvYWRJbWFnZShmaWxlSW5wdXQ6IGFueSkge1xyXG4gICAgY29uc3QgdXBsb2FkZWRJbWFnZSA9IGZpbGVJbnB1dC50YXJnZXQuZmlsZXNbMF07XHJcbiAgICBpZiAodXBsb2FkZWRJbWFnZSkge1xyXG4gICAgICB0aGlzLmluc2VydEltYWdlSW50b0VkaXRvcih1cGxvYWRlZEltYWdlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgaW5zZXJ0SW1hZ2VJbnRvRWRpdG9yKGZpbGUpIHtcclxuICAgIHZhciByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xyXG4gICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7XHJcbiAgICByZWFkZXIub25sb2FkID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICB0aGlzLmVkaXRvci5leGVjKFwiaW5zZXJ0SW1hZ2VcIiwgeyBzcmM6IHJlYWRlci5yZXN1bHQgfSk7XHJcbiAgICB9LmJpbmQodGhpcywgcmVhZGVyKTtcclxuICB9XHJcbiAgLy8jZW5kcmVnaW9uXHJcbn1cclxuIiwiXHJcblxyXG48ZGl2IFtmb3JtR3JvdXBdPVwiZm9ybVwiIGNsYXNzPVwienRleHRlZGl0b3ItY29udGFpbmVyIGUxdGFnLXN0eWxlXCIgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuc3R5bGUuc3R5bGVcIiBbbmdDbGFzc109XCJkYXRhLkNsYXNzXCI+XHJcbiAgPGRpdiBjbGFzcz1cImNvbC1sZy0xMiBleHBhbmQtYnRuLWNvbnRhaW5lclwiPlxyXG4gIDxpb24tYnV0dG9uICAgY2xhc3M9XCJpb24tYWN0aXZhdGFibGUgcmlwcGxlLXBhcmVudFwiIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLnN0eWxlLnN0eWxlNFwiICpuZ0lmPVwiZGF0YS5BbGxvd0VubGFyZ2VcIiAoY2xpY2spPVwib3BlblBvcHVwKClcIiAgW2lkXT1cImRhdGEuVmFsdWUgKyctcG9wdXAtYnV0dG9uJ1wiPlxyXG4gICAgPGZhLWljb24gY2xhc3M9XCJidG4taWNvblwiIFtpY29uXT1cImdldEZvbnRBd2Vzb21lKCdmYUV4cGFuZEFsdCcsIGZvbnRBd2VTb21lU2VydmljZSlcIj48L2ZhLWljb24+XHJcbiAgPC9pb24tYnV0dG9uPlxyXG4gIDxpb24tYnV0dG9uICBjbGFzcz1cImlvbi1hY3RpdmF0YWJsZSByaXBwbGUtcGFyZW50XCIgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuc3R5bGUuc3R5bGU0XCIgKm5nSWY9XCJDbG9zZUVubGFyZ2VCdG5cIiAoY2xpY2spPVwib25Qb3B1cENsb3NlKClcIiAgW2lkXT1cImRhdGEuVmFsdWUgKyctcG9wdXAtYnV0dG9uJ1wiPlxyXG4gICAgPGZhLWljb24gY2xhc3M9XCJidG4taWNvblwiICBbaWNvbl09XCJnZXRGb250QXdlc29tZSgnZmFDb21wcmVzc0FsdCcsIGZvbnRBd2VTb21lU2VydmljZSlcIj48L2ZhLWljb24+XHJcbiAgPC9pb24tYnV0dG9uPlxyXG48L2Rpdj5cclxuICA8a2VuZG8tZWRpdG9yICNlZGl0b3JcclxuICAgICAgICAgICAgICAgIFtpZF09XCJkYXRhLlZhbHVlXCJcclxuICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiZGF0YS5WYWx1ZVwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImUxdGFnLXN0eWxlMVwiXHJcbiAgICAgICAgICAgICAgICBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5zdHlsZS5zdHlsZTFcIlxyXG4gICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cIighIWNvbXBvbmVudFByb3BlcnRpZXMuaXNSZWFkT25seUZpZWxkID8gZ3JvdXBbY29tcG9uZW50UHJvcGVydGllcy5pc1JlYWRPbmx5RmllbGRdIDogY29tcG9uZW50UHJvcGVydGllcy5pc1JlYWRPbmx5KVwiXHJcbiAgICAgICAgICAgICAgICAodmFsdWVDaGFuZ2UpPVwib25DaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICBbcmVzaXphYmxlXT1cImRhdGEuUmVzaXphYmxlIHx8IGZhbHNlXCJcclxuICAgICAgICAgICAgICAgIFtwYXN0ZUNsZWFudXBTZXR0aW5nc109XCJwYXN0ZUNsZWFudXBTZXR0aW5nc1wiXHJcbiAgICAgICAgICAgICAgICBbaWZyYW1lXT1cImNvbXBvbmVudFNldHRpbmdzLmlmcmFtZVwiPlxyXG4gICAgPGtlbmRvLXRvb2xiYXIgW3N0eWxlLmRpc3BsYXldPVwiZGF0YS5Ub29sQmFyU3R5bGUgPT09ICdiYXNpYycgPyAnaW5oZXJpdCcgOiAnbm9uZSdcIiBjbGFzcz1cImUxdGFnLXN0eWxlMlwiXHJcbiAgICAgICAgICAgICAgICAgICBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5zdHlsZS5zdHlsZTJcIj5cclxuICAgICAgPGtlbmRvLXRvb2xiYXItYnV0dG9uZ3JvdXA+XHJcbiAgICAgICAgPGtlbmRvLXRvb2xiYXItYnV0dG9uIGtlbmRvRWRpdG9yVW5kb0J1dHRvbj48L2tlbmRvLXRvb2xiYXItYnV0dG9uPlxyXG4gICAgICAgIDxrZW5kby10b29sYmFyLWJ1dHRvbiBrZW5kb0VkaXRvclJlZG9CdXR0b24+PC9rZW5kby10b29sYmFyLWJ1dHRvbj5cclxuICAgICAgPC9rZW5kby10b29sYmFyLWJ1dHRvbmdyb3VwPlxyXG4gICAgICA8a2VuZG8tdG9vbGJhci1idXR0b25ncm91cD5cclxuICAgICAgICA8a2VuZG8tdG9vbGJhci1idXR0b24ga2VuZG9FZGl0b3JCb2xkQnV0dG9uPjwva2VuZG8tdG9vbGJhci1idXR0b24+XHJcbiAgICAgICAgPGtlbmRvLXRvb2xiYXItYnV0dG9uIGtlbmRvRWRpdG9ySXRhbGljQnV0dG9uPjwva2VuZG8tdG9vbGJhci1idXR0b24+XHJcbiAgICAgICAgPGtlbmRvLXRvb2xiYXItYnV0dG9uIGtlbmRvRWRpdG9yVW5kZXJsaW5lQnV0dG9uPjwva2VuZG8tdG9vbGJhci1idXR0b24+XHJcbiAgICAgICAgPGtlbmRvLXRvb2xiYXItYnV0dG9uIGtlbmRvRWRpdG9yU3RyaWtldGhyb3VnaEJ1dHRvbj48L2tlbmRvLXRvb2xiYXItYnV0dG9uPlxyXG4gICAgICA8L2tlbmRvLXRvb2xiYXItYnV0dG9uZ3JvdXA+XHJcbiAgICAgIDxrZW5kby10b29sYmFyLWJ1dHRvbmdyb3VwPlxyXG4gICAgICAgIDxrZW5kby10b29sYmFyLWJ1dHRvbiBrZW5kb0VkaXRvclN1YnNjcmlwdEJ1dHRvbj48L2tlbmRvLXRvb2xiYXItYnV0dG9uPlxyXG4gICAgICAgIDxrZW5kby10b29sYmFyLWJ1dHRvbiBrZW5kb0VkaXRvclN1cGVyc2NyaXB0QnV0dG9uPjwva2VuZG8tdG9vbGJhci1idXR0b24+XHJcbiAgICAgIDwva2VuZG8tdG9vbGJhci1idXR0b25ncm91cD5cclxuICAgICAgPGtlbmRvLXRvb2xiYXItYnV0dG9uZ3JvdXA+XHJcbiAgICAgICAgPGtlbmRvLXRvb2xiYXItYnV0dG9uIGtlbmRvRWRpdG9yQWxpZ25MZWZ0QnV0dG9uPjwva2VuZG8tdG9vbGJhci1idXR0b24+XHJcbiAgICAgICAgPGtlbmRvLXRvb2xiYXItYnV0dG9uIGtlbmRvRWRpdG9yQWxpZ25DZW50ZXJCdXR0b24+PC9rZW5kby10b29sYmFyLWJ1dHRvbj5cclxuICAgICAgICA8a2VuZG8tdG9vbGJhci1idXR0b24ga2VuZG9FZGl0b3JBbGlnblJpZ2h0QnV0dG9uPjwva2VuZG8tdG9vbGJhci1idXR0b24+XHJcbiAgICAgICAgPGtlbmRvLXRvb2xiYXItYnV0dG9uIGtlbmRvRWRpdG9yQWxpZ25KdXN0aWZ5QnV0dG9uPjwva2VuZG8tdG9vbGJhci1idXR0b24+XHJcbiAgICAgIDwva2VuZG8tdG9vbGJhci1idXR0b25ncm91cD5cclxuICAgICAgPGtlbmRvLXRvb2xiYXItZHJvcGRvd25saXN0IGtlbmRvRWRpdG9yRm9ybWF0Pjwva2VuZG8tdG9vbGJhci1kcm9wZG93bmxpc3Q+XHJcbiAgICAgIDxrZW5kby10b29sYmFyLWRyb3Bkb3dubGlzdCBrZW5kb0VkaXRvckZvbnRTaXplPjwva2VuZG8tdG9vbGJhci1kcm9wZG93bmxpc3Q+XHJcbiAgICAgIDxrZW5kby10b29sYmFyLWRyb3Bkb3dubGlzdCBrZW5kb0VkaXRvckZvbnRGYW1pbHk+PC9rZW5kby10b29sYmFyLWRyb3Bkb3dubGlzdD5cclxuICAgICAgPGtlbmRvLXRvb2xiYXItY29sb3JwaWNrZXIga2VuZG9FZGl0b3JGb3JlQ29sb3I+PC9rZW5kby10b29sYmFyLWNvbG9ycGlja2VyPlxyXG4gICAgICA8a2VuZG8tdG9vbGJhci1jb2xvcnBpY2tlciBrZW5kb0VkaXRvckJhY2tDb2xvcj48L2tlbmRvLXRvb2xiYXItY29sb3JwaWNrZXI+XHJcbiAgICAgIDxrZW5kby10b29sYmFyLWJ1dHRvbmdyb3VwPlxyXG4gICAgICAgIDxrZW5kby10b29sYmFyLWJ1dHRvbiBrZW5kb0VkaXRvckluc2VydFVub3JkZXJlZExpc3RCdXR0b24+PC9rZW5kby10b29sYmFyLWJ1dHRvbj5cclxuICAgICAgICA8a2VuZG8tdG9vbGJhci1idXR0b24ga2VuZG9FZGl0b3JJbnNlcnRPcmRlcmVkTGlzdEJ1dHRvbj48L2tlbmRvLXRvb2xiYXItYnV0dG9uPlxyXG4gICAgICAgIDxrZW5kby10b29sYmFyLWJ1dHRvbiBrZW5kb0VkaXRvckluZGVudEJ1dHRvbj48L2tlbmRvLXRvb2xiYXItYnV0dG9uPlxyXG4gICAgICAgIDxrZW5kby10b29sYmFyLWJ1dHRvbiBrZW5kb0VkaXRvck91dGRlbnRCdXR0b24+PC9rZW5kby10b29sYmFyLWJ1dHRvbj5cclxuICAgICAgPC9rZW5kby10b29sYmFyLWJ1dHRvbmdyb3VwPlxyXG4gICAgICA8a2VuZG8tdG9vbGJhci1idXR0b25ncm91cD5cclxuICAgICAgICA8a2VuZG8tdG9vbGJhci1idXR0b24ga2VuZG9FZGl0b3JDcmVhdGVMaW5rQnV0dG9uPjwva2VuZG8tdG9vbGJhci1idXR0b24+XHJcbiAgICAgICAgPGtlbmRvLXRvb2xiYXItYnV0dG9uIGtlbmRvRWRpdG9yVW5saW5rQnV0dG9uPjwva2VuZG8tdG9vbGJhci1idXR0b24+XHJcbiAgICAgIDwva2VuZG8tdG9vbGJhci1idXR0b25ncm91cD5cclxuICAgICAgPGtlbmRvLWVkaXRvci1pbnNlcnQtdGFibGUtYnV0dG9uPjwva2VuZG8tZWRpdG9yLWluc2VydC10YWJsZS1idXR0b24+XHJcbiAgICAgIDxrZW5kby10b29sYmFyLWJ1dHRvbmdyb3VwPlxyXG4gICAgICAgIDxrZW5kby10b29sYmFyLWJ1dHRvbiBrZW5kb0VkaXRvckFkZENvbHVtbkJlZm9yZUJ1dHRvbj48L2tlbmRvLXRvb2xiYXItYnV0dG9uPlxyXG4gICAgICAgIDxrZW5kby10b29sYmFyLWJ1dHRvbiBrZW5kb0VkaXRvckFkZENvbHVtbkFmdGVyQnV0dG9uPjwva2VuZG8tdG9vbGJhci1idXR0b24+XHJcbiAgICAgICAgPGtlbmRvLXRvb2xiYXItYnV0dG9uIGtlbmRvRWRpdG9yQWRkUm93QmVmb3JlQnV0dG9uPjwva2VuZG8tdG9vbGJhci1idXR0b24+XHJcbiAgICAgICAgPGtlbmRvLXRvb2xiYXItYnV0dG9uIGtlbmRvRWRpdG9yQWRkUm93QWZ0ZXJCdXR0b24+PC9rZW5kby10b29sYmFyLWJ1dHRvbj5cclxuICAgICAgPC9rZW5kby10b29sYmFyLWJ1dHRvbmdyb3VwPlxyXG4gICAgICA8a2VuZG8tdG9vbGJhci1idXR0b25ncm91cD5cclxuICAgICAgICA8a2VuZG8tdG9vbGJhci1idXR0b24ga2VuZG9FZGl0b3JEZWxldGVDb2x1bW5CdXR0b24+PC9rZW5kby10b29sYmFyLWJ1dHRvbj5cclxuICAgICAgICA8a2VuZG8tdG9vbGJhci1idXR0b24ga2VuZG9FZGl0b3JEZWxldGVSb3dCdXR0b24+PC9rZW5kby10b29sYmFyLWJ1dHRvbj5cclxuICAgICAgICA8a2VuZG8tdG9vbGJhci1idXR0b24ga2VuZG9FZGl0b3JEZWxldGVUYWJsZUJ1dHRvbj48L2tlbmRvLXRvb2xiYXItYnV0dG9uPlxyXG4gICAgICA8L2tlbmRvLXRvb2xiYXItYnV0dG9uZ3JvdXA+XHJcbiAgICAgIDxrZW5kby10b29sYmFyLWJ1dHRvbiBrZW5kb0VkaXRvckluc2VydEZpbGVCdXR0b24+PC9rZW5kby10b29sYmFyLWJ1dHRvbj5cclxuICAgICAgPGtlbmRvLXRvb2xiYXItYnV0dG9uICpuZ0lmPVwiZGF0YS5Ub29sQmFyVXBsb2FkSW1hZ2VNZXRob2QgPT0gJ2RlZmF1bHQnXCIga2VuZG9FZGl0b3JJbnNlcnRJbWFnZUJ1dHRvbj48L2tlbmRvLXRvb2xiYXItYnV0dG9uPlxyXG4gICAgICA8a2VuZG8tdG9vbGJhci1idXR0b24gKm5nSWY9XCJkYXRhLlRvb2xCYXJVcGxvYWRJbWFnZU1ldGhvZCA9PSAnZXhwbG9yZXInXCIgaWNvbj1cImstaS1pbWFnZSBrLWktcGhvdG9cIiAoY2xpY2spPVwib3BlbkZpbGVFeHBsb3JlcigpXCI+PC9rZW5kby10b29sYmFyLWJ1dHRvbj5cclxuICAgICAgPGtlbmRvLXRvb2xiYXItYnV0dG9uIGtlbmRvRWRpdG9yVmlld1NvdXJjZUJ1dHRvbj48L2tlbmRvLXRvb2xiYXItYnV0dG9uPlxyXG4gICAgPC9rZW5kby10b29sYmFyPlxyXG4gICAgPGtlbmRvLXRvb2xiYXIgW3N0eWxlLmRpc3BsYXldPVwiZGF0YS5Ub29sQmFyU3R5bGUgPT09ICdmdWxsJyA/ICdpbmhlcml0JyA6ICdub25lJ1wiIGNsYXNzPVwiZTF0YWctc3R5bGUyXCIgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuc3R5bGUuc3R5bGUyXCI+XHJcbiAgICAgIDxrZW5kby10b29sYmFyLWJ1dHRvbmdyb3VwPlxyXG4gICAgICAgIDxrZW5kby10b29sYmFyLWJ1dHRvbiBrZW5kb0VkaXRvclVuZG9CdXR0b24+PC9rZW5kby10b29sYmFyLWJ1dHRvbj5cclxuICAgICAgICA8a2VuZG8tdG9vbGJhci1idXR0b24ga2VuZG9FZGl0b3JSZWRvQnV0dG9uPjwva2VuZG8tdG9vbGJhci1idXR0b24+XHJcbiAgICAgIDwva2VuZG8tdG9vbGJhci1idXR0b25ncm91cD5cclxuICAgICAgPGtlbmRvLXRvb2xiYXItYnV0dG9uZ3JvdXA+XHJcbiAgICAgICAgPGtlbmRvLXRvb2xiYXItYnV0dG9uIGtlbmRvRWRpdG9yQm9sZEJ1dHRvbj48L2tlbmRvLXRvb2xiYXItYnV0dG9uPlxyXG4gICAgICAgIDxrZW5kby10b29sYmFyLWJ1dHRvbiBrZW5kb0VkaXRvckl0YWxpY0J1dHRvbj48L2tlbmRvLXRvb2xiYXItYnV0dG9uPlxyXG4gICAgICAgIDxrZW5kby10b29sYmFyLWJ1dHRvbiBrZW5kb0VkaXRvclVuZGVybGluZUJ1dHRvbj48L2tlbmRvLXRvb2xiYXItYnV0dG9uPlxyXG4gICAgICAgIDxrZW5kby10b29sYmFyLWJ1dHRvbiBrZW5kb0VkaXRvclN0cmlrZXRocm91Z2hCdXR0b24+PC9rZW5kby10b29sYmFyLWJ1dHRvbj5cclxuICAgICAgPC9rZW5kby10b29sYmFyLWJ1dHRvbmdyb3VwPlxyXG4gICAgICA8a2VuZG8tdG9vbGJhci1idXR0b25ncm91cD5cclxuICAgICAgICA8a2VuZG8tdG9vbGJhci1idXR0b24ga2VuZG9FZGl0b3JTdWJzY3JpcHRCdXR0b24+PC9rZW5kby10b29sYmFyLWJ1dHRvbj5cclxuICAgICAgICA8a2VuZG8tdG9vbGJhci1idXR0b24ga2VuZG9FZGl0b3JTdXBlcnNjcmlwdEJ1dHRvbj48L2tlbmRvLXRvb2xiYXItYnV0dG9uPlxyXG4gICAgICA8L2tlbmRvLXRvb2xiYXItYnV0dG9uZ3JvdXA+XHJcbiAgICAgIDxrZW5kby10b29sYmFyLWJ1dHRvbmdyb3VwPlxyXG4gICAgICAgIDxrZW5kby10b29sYmFyLWJ1dHRvbiBrZW5kb0VkaXRvckFsaWduTGVmdEJ1dHRvbj48L2tlbmRvLXRvb2xiYXItYnV0dG9uPlxyXG4gICAgICAgIDxrZW5kby10b29sYmFyLWJ1dHRvbiBrZW5kb0VkaXRvckFsaWduQ2VudGVyQnV0dG9uPjwva2VuZG8tdG9vbGJhci1idXR0b24+XHJcbiAgICAgICAgPGtlbmRvLXRvb2xiYXItYnV0dG9uIGtlbmRvRWRpdG9yQWxpZ25SaWdodEJ1dHRvbj48L2tlbmRvLXRvb2xiYXItYnV0dG9uPlxyXG4gICAgICAgIDxrZW5kby10b29sYmFyLWJ1dHRvbiBrZW5kb0VkaXRvckFsaWduSnVzdGlmeUJ1dHRvbj48L2tlbmRvLXRvb2xiYXItYnV0dG9uPlxyXG4gICAgICA8L2tlbmRvLXRvb2xiYXItYnV0dG9uZ3JvdXA+XHJcbiAgICAgIDxrZW5kby10b29sYmFyLWRyb3Bkb3dubGlzdCBrZW5kb0VkaXRvckZvbnRTaXplPjwva2VuZG8tdG9vbGJhci1kcm9wZG93bmxpc3Q+XHJcbiAgICAgIDxrZW5kby10b29sYmFyLWRyb3Bkb3dubGlzdCBrZW5kb0VkaXRvckZvbnRGYW1pbHk+PC9rZW5kby10b29sYmFyLWRyb3Bkb3dubGlzdD5cclxuICAgICAgPGtlbmRvLXRvb2xiYXItY29sb3JwaWNrZXIga2VuZG9FZGl0b3JGb3JlQ29sb3Igdmlldz1cImdyYWRpZW50XCI+PC9rZW5kby10b29sYmFyLWNvbG9ycGlja2VyPlxyXG4gICAgICA8a2VuZG8tdG9vbGJhci1jb2xvcnBpY2tlciBrZW5kb0VkaXRvckJhY2tDb2xvciB2aWV3PVwiZ3JhZGllbnRcIj48L2tlbmRvLXRvb2xiYXItY29sb3JwaWNrZXI+XHJcbiAgICAgIDxrZW5kby10b29sYmFyLWJ1dHRvbmdyb3VwPlxyXG4gICAgICAgIDxrZW5kby10b29sYmFyLWJ1dHRvbiBrZW5kb0VkaXRvckluc2VydFVub3JkZXJlZExpc3RCdXR0b24+PC9rZW5kby10b29sYmFyLWJ1dHRvbj5cclxuICAgICAgICA8a2VuZG8tdG9vbGJhci1idXR0b24ga2VuZG9FZGl0b3JJbnNlcnRPcmRlcmVkTGlzdEJ1dHRvbj48L2tlbmRvLXRvb2xiYXItYnV0dG9uPlxyXG4gICAgICAgIDxrZW5kby10b29sYmFyLWJ1dHRvbiBrZW5kb0VkaXRvckluZGVudEJ1dHRvbj48L2tlbmRvLXRvb2xiYXItYnV0dG9uPlxyXG4gICAgICAgIDxrZW5kby10b29sYmFyLWJ1dHRvbiBrZW5kb0VkaXRvck91dGRlbnRCdXR0b24+PC9rZW5kby10b29sYmFyLWJ1dHRvbj5cclxuICAgICAgPC9rZW5kby10b29sYmFyLWJ1dHRvbmdyb3VwPlxyXG4gICAgICA8a2VuZG8tdG9vbGJhci1idXR0b25ncm91cD5cclxuICAgICAgICA8a2VuZG8tdG9vbGJhci1idXR0b24ga2VuZG9FZGl0b3JDcmVhdGVMaW5rQnV0dG9uPjwva2VuZG8tdG9vbGJhci1idXR0b24+XHJcbiAgICAgICAgPGtlbmRvLXRvb2xiYXItYnV0dG9uIGtlbmRvRWRpdG9yVW5saW5rQnV0dG9uPjwva2VuZG8tdG9vbGJhci1idXR0b24+XHJcbiAgICAgIDwva2VuZG8tdG9vbGJhci1idXR0b25ncm91cD5cclxuICAgICAgPGtlbmRvLXRvb2xiYXItYnV0dG9uICpuZ0lmPVwiZGF0YS5Ub29sQmFyVXBsb2FkSW1hZ2VNZXRob2QgPT0gJ2RlZmF1bHQnXCIga2VuZG9FZGl0b3JJbnNlcnRJbWFnZUJ1dHRvbj48L2tlbmRvLXRvb2xiYXItYnV0dG9uPlxyXG4gICAgICA8a2VuZG8tdG9vbGJhci1idXR0b24gKm5nSWY9XCJkYXRhLlRvb2xCYXJVcGxvYWRJbWFnZU1ldGhvZCA9PSAnZXhwbG9yZXInXCIgaWNvbj1cImstaS1pbWFnZSBrLWktcGhvdG9cIiAoY2xpY2spPVwib3BlbkZpbGVFeHBsb3JlcigpXCI+PC9rZW5kby10b29sYmFyLWJ1dHRvbj5cclxuICAgICAgPGtlbmRvLXRvb2xiYXItYnV0dG9uIGtlbmRvRWRpdG9yVmlld1NvdXJjZUJ1dHRvbj48L2tlbmRvLXRvb2xiYXItYnV0dG9uPlxyXG4gICAgICA8a2VuZG8tZWRpdG9yLWluc2VydC10YWJsZS1idXR0b24+PC9rZW5kby1lZGl0b3ItaW5zZXJ0LXRhYmxlLWJ1dHRvbj5cclxuICAgICAgPGtlbmRvLXRvb2xiYXItYnV0dG9uZ3JvdXA+XHJcbiAgICAgICAgPGtlbmRvLXRvb2xiYXItYnV0dG9uIGtlbmRvRWRpdG9yQWRkQ29sdW1uQmVmb3JlQnV0dG9uPjwva2VuZG8tdG9vbGJhci1idXR0b24+XHJcbiAgICAgICAgPGtlbmRvLXRvb2xiYXItYnV0dG9uIGtlbmRvRWRpdG9yQWRkQ29sdW1uQWZ0ZXJCdXR0b24+PC9rZW5kby10b29sYmFyLWJ1dHRvbj5cclxuICAgICAgICA8a2VuZG8tdG9vbGJhci1idXR0b24ga2VuZG9FZGl0b3JBZGRSb3dCZWZvcmVCdXR0b24+PC9rZW5kby10b29sYmFyLWJ1dHRvbj5cclxuICAgICAgICA8a2VuZG8tdG9vbGJhci1idXR0b24ga2VuZG9FZGl0b3JBZGRSb3dBZnRlckJ1dHRvbj48L2tlbmRvLXRvb2xiYXItYnV0dG9uPlxyXG4gICAgICA8L2tlbmRvLXRvb2xiYXItYnV0dG9uZ3JvdXA+XHJcbiAgICAgIDxrZW5kby10b29sYmFyLWJ1dHRvbmdyb3VwPlxyXG4gICAgICAgIDxrZW5kby10b29sYmFyLWJ1dHRvbiBrZW5kb0VkaXRvckRlbGV0ZUNvbHVtbkJ1dHRvbj48L2tlbmRvLXRvb2xiYXItYnV0dG9uPlxyXG4gICAgICAgIDxrZW5kby10b29sYmFyLWJ1dHRvbiBrZW5kb0VkaXRvckRlbGV0ZVJvd0J1dHRvbj48L2tlbmRvLXRvb2xiYXItYnV0dG9uPlxyXG4gICAgICAgIDxrZW5kby10b29sYmFyLWJ1dHRvbiBrZW5kb0VkaXRvckRlbGV0ZVRhYmxlQnV0dG9uPjwva2VuZG8tdG9vbGJhci1idXR0b24+XHJcbiAgICAgIDwva2VuZG8tdG9vbGJhci1idXR0b25ncm91cD5cclxuICAgICAgPGtlbmRvLXRvb2xiYXItYnV0dG9uZ3JvdXA+XHJcbiAgICAgICAgPGtlbmRvLXRvb2xiYXItYnV0dG9uIGtlbmRvRWRpdG9yTWVyZ2VDZWxsc0J1dHRvbj48L2tlbmRvLXRvb2xiYXItYnV0dG9uPlxyXG4gICAgICAgIDxrZW5kby10b29sYmFyLWJ1dHRvbiBrZW5kb0VkaXRvclNwbGl0Q2VsbEJ1dHRvbj48L2tlbmRvLXRvb2xiYXItYnV0dG9uPlxyXG4gICAgICA8L2tlbmRvLXRvb2xiYXItYnV0dG9uZ3JvdXA+XHJcbiAgICA8L2tlbmRvLXRvb2xiYXI+XHJcbiAgPC9rZW5kby1lZGl0b3I+XHJcbiAgPGlucHV0IHN0eWxlPVwiZGlzcGxheTpub25lO1wiIHR5cGU9XCJmaWxlXCIgW2lkXT1cImRhdGEuVmFsdWUgKyctdXBsb2FkLWZpbGUnXCIgW25hbWVdPVwiZGF0YS5WYWx1ZSArJy11cGxvYWQtZmlsZSdcIiBhY2NlcHQ9XCJpbWFnZS8qXCIgbmdmLW1heC1zaXplPVwiNU1CXCIgKGNoYW5nZSk9XCJ1cGxvYWRJbWFnZSgkZXZlbnQpXCI+XHJcbjwvZGl2PlxyXG4iXX0=
|