mmhglobal-dynamicform 1.2.3 → 1.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (198) hide show
  1. package/README.md +14 -2
  2. package/esm2020/lib/directives/fieldelement.directive.mjs +16 -0
  3. package/esm2020/lib/directives/scrollbar.theme.directive.mjs +43 -0
  4. package/esm2020/lib/mmhglobal-dynamicform.module.mjs +464 -0
  5. package/esm2020/lib/services/main.service.mjs +752 -0
  6. package/esm2020/lib/services/zcomponent.debug.service.mjs +621 -0
  7. package/esm2020/lib/services/zcomponent.service.mjs +81 -0
  8. package/esm2020/lib/uiactionbutton/uiactionbutton.component.mjs +265 -0
  9. package/esm2020/lib/uiappmenucontent/uiappmenucontent.component.mjs +67 -0
  10. package/esm2020/lib/uicontent/uicontent.component.mjs +41 -0
  11. package/esm2020/lib/uiheader/uiheader.component.mjs +66 -0
  12. package/esm2020/lib/uimenubutton/uimenubutton.component.mjs +35 -0
  13. package/esm2020/lib/uimenucontent/uimenucontent.component.mjs +37 -0
  14. package/{esm2015/lib/uipage/uipage.component.js → esm2020/lib/uipage/uipage.component.mjs} +12 -13
  15. package/esm2020/lib/uivalidationmessage/uivalidationmessage.component.mjs +41 -0
  16. package/esm2020/lib/zbullet/zbullet.component.mjs +74 -0
  17. package/esm2020/lib/zbuttons/zbuttons.component.mjs +171 -0
  18. package/esm2020/lib/zcard/zcard.component.mjs +72 -0
  19. package/esm2020/lib/zchart/zchart.component.mjs +201 -0
  20. package/esm2020/lib/zcheckbox/zcheckbox.component.mjs +166 -0
  21. package/esm2020/lib/zchip/zchip.component.mjs +121 -0
  22. package/esm2020/lib/zcodeeditor/zcodeeditor.component.mjs +169 -0
  23. package/esm2020/lib/zcodeeditor/zcodeeditor.pipe.mjs +60 -0
  24. package/esm2020/lib/zdaterange/zdaterange.component.mjs +70 -0
  25. package/esm2020/lib/zdatetime/dateParser.pipe.mjs +30 -0
  26. package/esm2020/lib/zdatetime/zdatetime.component.mjs +285 -0
  27. package/esm2020/lib/zdiv/zdiv.component.mjs +50 -0
  28. package/esm2020/lib/zdiv/zdiv.pipe.mjs +31 -0
  29. package/esm2020/lib/zform/zform.component.mjs +147 -0
  30. package/esm2020/lib/zformcontrol/zformcontrol.component.mjs +49 -0
  31. package/esm2020/lib/zgauge/zgauge.component.mjs +148 -0
  32. package/esm2020/lib/zgrid/date-range-cell-filter.component.mjs +135 -0
  33. package/esm2020/lib/zgrid/zgrid.binding.directive.mjs +490 -0
  34. package/esm2020/lib/zgrid/zgrid.component.mjs +847 -0
  35. package/esm2020/lib/zgrid/zgrid.popup.anchor-target.directive.mjs +17 -0
  36. package/esm2020/lib/zimg/zimg.component.mjs +121 -0
  37. package/esm2020/lib/zkcard/zkcard.component.mjs +367 -0
  38. package/esm2020/lib/zlabel/zlabel.component.mjs +62 -0
  39. package/esm2020/lib/zmfb/zmfb.component.mjs +215 -0
  40. package/esm2020/lib/zmodal/zmodal-mobile.component.mjs +120 -0
  41. package/esm2020/lib/zmodal/zmodal.component.mjs +125 -0
  42. package/esm2020/lib/znumeric/znumeric.component.mjs +119 -0
  43. package/esm2020/lib/zpostselectinput/zpostselectinput.component.mjs +352 -0
  44. package/esm2020/lib/zquerybuilder/zquerybuilder.component.mjs +204 -0
  45. package/esm2020/lib/zreport/zreport.component.mjs +105 -0
  46. package/esm2020/lib/zreport/zreport.config.mjs +117 -0
  47. package/esm2020/lib/zscheduler/zscheduler.component.mjs +267 -0
  48. package/{esm2015/lib/zscheduler/zscheduler.toolbar.component.js → esm2020/lib/zscheduler/zscheduler.toolbar.component.mjs} +55 -19
  49. package/esm2020/lib/zselectmultiple/zselectmultiple.component.mjs +577 -0
  50. package/esm2020/lib/zselectmultiple/zselectmultiple.directive.mjs +35 -0
  51. package/esm2020/lib/ztab/ztab.component.mjs +187 -0
  52. package/esm2020/lib/ztab/ztab.pipe.mjs +26 -0
  53. package/esm2020/lib/ztext/ztext.component.mjs +297 -0
  54. package/esm2020/lib/ztextarea/ztextarea.component.mjs +109 -0
  55. package/esm2020/lib/ztexteditor/ztexteditor.component.mjs +57 -0
  56. package/esm2020/lib/ztree/ztree.component.mjs +380 -0
  57. package/esm2020/lib/ztreelist/ztreelist.component.mjs +544 -0
  58. package/esm2020/lib/ztrendcard/ztrendcard.component.mjs +92 -0
  59. package/esm2020/lib/zudf/zudf.component.mjs +205 -0
  60. package/esm2020/lib/zunknown/zunknown.component.mjs +20 -0
  61. package/esm2020/lib/zupload/zupload.component.mjs +359 -0
  62. package/esm2020/lib/zworkflowbuttons/zworkflowbuttons.component.mjs +216 -0
  63. package/esm2020/mmhglobal-dynamicform.mjs +5 -0
  64. package/{esm2015/public-api.js → esm2020/public-api.mjs} +0 -0
  65. package/fesm2015/mmhglobal-dynamicform.mjs +10790 -0
  66. package/fesm2015/mmhglobal-dynamicform.mjs.map +1 -0
  67. package/fesm2020/mmhglobal-dynamicform.mjs +10779 -0
  68. package/fesm2020/mmhglobal-dynamicform.mjs.map +1 -0
  69. package/lib/directives/fieldelement.directive.d.ts +3 -0
  70. package/lib/directives/scrollbar.theme.directive.d.ts +3 -0
  71. package/lib/mmhglobal-dynamicform.module.d.ts +92 -0
  72. package/lib/services/main.service.d.ts +3 -0
  73. package/lib/services/zcomponent.debug.service.d.ts +8 -5
  74. package/lib/services/zcomponent.service.d.ts +7 -2
  75. package/lib/uiactionbutton/uiactionbutton.component.d.ts +3 -0
  76. package/lib/uiappmenucontent/uiappmenucontent.component.d.ts +3 -0
  77. package/lib/uicontent/uicontent.component.d.ts +3 -0
  78. package/lib/uiheader/uiheader.component.d.ts +3 -0
  79. package/lib/uimenubutton/uimenubutton.component.d.ts +3 -0
  80. package/lib/uimenucontent/uimenucontent.component.d.ts +3 -0
  81. package/lib/uipage/uipage.component.d.ts +3 -0
  82. package/lib/uivalidationmessage/uivalidationmessage.component.d.ts +3 -0
  83. package/lib/zbullet/zbullet.component.d.ts +3 -0
  84. package/lib/zbuttons/zbuttons.component.d.ts +3 -0
  85. package/lib/zcard/zcard.component.d.ts +3 -0
  86. package/lib/zchart/zchart.component.d.ts +3 -0
  87. package/lib/zcheckbox/zcheckbox.component.d.ts +3 -0
  88. package/lib/zchip/zchip.component.d.ts +3 -0
  89. package/lib/zcodeeditor/zcodeeditor.component.d.ts +3 -0
  90. package/lib/zcodeeditor/zcodeeditor.pipe.d.ts +3 -0
  91. package/lib/zdaterange/zdaterange.component.d.ts +3 -0
  92. package/lib/zdatetime/dateParser.pipe.d.ts +3 -0
  93. package/lib/zdatetime/zdatetime.component.d.ts +3 -0
  94. package/lib/zdiv/zdiv.component.d.ts +3 -0
  95. package/lib/zdiv/zdiv.pipe.d.ts +3 -0
  96. package/lib/zform/zform.component.d.ts +3 -0
  97. package/lib/zformcontrol/zformcontrol.component.d.ts +3 -0
  98. package/lib/zgauge/zgauge.component.d.ts +3 -0
  99. package/lib/zgrid/date-range-cell-filter.component.d.ts +3 -0
  100. package/lib/zgrid/zgrid.binding.directive.d.ts +3 -0
  101. package/lib/zgrid/zgrid.component.d.ts +4 -1
  102. package/lib/zgrid/zgrid.popup.anchor-target.directive.d.ts +3 -0
  103. package/lib/zimg/zimg.component.d.ts +3 -0
  104. package/lib/zkcard/zkcard.component.d.ts +3 -0
  105. package/lib/zlabel/zlabel.component.d.ts +3 -0
  106. package/lib/zmfb/zmfb.component.d.ts +3 -0
  107. package/lib/zmodal/zmodal-mobile.component.d.ts +3 -0
  108. package/lib/zmodal/zmodal.component.d.ts +3 -0
  109. package/lib/znumeric/znumeric.component.d.ts +3 -0
  110. package/lib/zpostselectinput/zpostselectinput.component.d.ts +3 -0
  111. package/lib/zquerybuilder/zquerybuilder.component.d.ts +3 -0
  112. package/lib/zreport/zreport.component.d.ts +3 -0
  113. package/lib/zreport/zreport.config.d.ts +3 -0
  114. package/lib/zscheduler/zscheduler.component.d.ts +3 -0
  115. package/lib/zscheduler/zscheduler.toolbar.component.d.ts +3 -0
  116. package/lib/zselectmultiple/zselectmultiple.component.d.ts +3 -0
  117. package/lib/zselectmultiple/zselectmultiple.directive.d.ts +3 -0
  118. package/lib/ztab/ztab.component.d.ts +3 -0
  119. package/lib/ztab/ztab.pipe.d.ts +3 -0
  120. package/lib/ztext/ztext.component.d.ts +3 -0
  121. package/lib/ztextarea/ztextarea.component.d.ts +3 -0
  122. package/lib/ztexteditor/ztexteditor.component.d.ts +3 -0
  123. package/lib/ztree/ztree.component.d.ts +3 -0
  124. package/lib/ztreelist/ztreelist.component.d.ts +3 -0
  125. package/lib/ztrendcard/ztrendcard.component.d.ts +3 -0
  126. package/lib/zudf/zudf.component.d.ts +3 -0
  127. package/lib/zunknown/zunknown.component.d.ts +3 -0
  128. package/lib/zupload/zupload.component.d.ts +3 -0
  129. package/lib/zworkflowbuttons/zworkflowbuttons.component.d.ts +3 -0
  130. package/mmhglobal-dynamicform.d.ts +1 -2
  131. package/package.json +20 -11
  132. package/bundles/mmhglobal-dynamicform.umd.js +0 -11360
  133. package/bundles/mmhglobal-dynamicform.umd.js.map +0 -1
  134. package/bundles/mmhglobal-dynamicform.umd.min.js +0 -16
  135. package/bundles/mmhglobal-dynamicform.umd.min.js.map +0 -1
  136. package/esm2015/lib/directives/fieldelement.directive.js +0 -15
  137. package/esm2015/lib/directives/scrollbar.theme.directive.js +0 -42
  138. package/esm2015/lib/mmhglobal-dynamicform.module.js +0 -314
  139. package/esm2015/lib/services/main.service.js +0 -766
  140. package/esm2015/lib/services/zcomponent.debug.service.js +0 -626
  141. package/esm2015/lib/services/zcomponent.service.js +0 -167
  142. package/esm2015/lib/uiactionbutton/uiactionbutton.component.js +0 -271
  143. package/esm2015/lib/uiappmenucontent/uiappmenucontent.component.js +0 -69
  144. package/esm2015/lib/uicontent/uicontent.component.js +0 -41
  145. package/esm2015/lib/uiheader/uiheader.component.js +0 -65
  146. package/esm2015/lib/uimenubutton/uimenubutton.component.js +0 -40
  147. package/esm2015/lib/uimenucontent/uimenucontent.component.js +0 -34
  148. package/esm2015/lib/uivalidationmessage/uivalidationmessage.component.js +0 -39
  149. package/esm2015/lib/zbullet/zbullet.component.js +0 -71
  150. package/esm2015/lib/zbuttons/zbuttons.component.js +0 -168
  151. package/esm2015/lib/zcard/zcard.component.js +0 -68
  152. package/esm2015/lib/zchart/zchart.component.js +0 -199
  153. package/esm2015/lib/zcheckbox/zcheckbox.component.js +0 -158
  154. package/esm2015/lib/zchip/zchip.component.js +0 -117
  155. package/esm2015/lib/zcodeeditor/zcodeeditor.component.js +0 -163
  156. package/esm2015/lib/zcodeeditor/zcodeeditor.pipe.js +0 -56
  157. package/esm2015/lib/zdaterange/zdaterange.component.js +0 -63
  158. package/esm2015/lib/zdatetime/dateParser.pipe.js +0 -26
  159. package/esm2015/lib/zdatetime/zdatetime.component.js +0 -279
  160. package/esm2015/lib/zdiv/zdiv.component.js +0 -48
  161. package/esm2015/lib/zdiv/zdiv.pipe.js +0 -27
  162. package/esm2015/lib/zform/zform.component.js +0 -148
  163. package/esm2015/lib/zformcontrol/zformcontrol.component.js +0 -49
  164. package/esm2015/lib/zgauge/zgauge.component.js +0 -146
  165. package/esm2015/lib/zgrid/date-range-cell-filter.component.js +0 -102
  166. package/esm2015/lib/zgrid/zgrid.binding.directive.js +0 -493
  167. package/esm2015/lib/zgrid/zgrid.component.js +0 -834
  168. package/esm2015/lib/zgrid/zgrid.popup.anchor-target.directive.js +0 -16
  169. package/esm2015/lib/zimg/zimg.component.js +0 -123
  170. package/esm2015/lib/zkcard/zkcard.component.js +0 -372
  171. package/esm2015/lib/zlabel/zlabel.component.js +0 -59
  172. package/esm2015/lib/zmfb/zmfb.component.js +0 -215
  173. package/esm2015/lib/zmodal/zmodal-mobile.component.js +0 -119
  174. package/esm2015/lib/zmodal/zmodal.component.js +0 -130
  175. package/esm2015/lib/znumeric/znumeric.component.js +0 -114
  176. package/esm2015/lib/zpostselectinput/zpostselectinput.component.js +0 -345
  177. package/esm2015/lib/zquerybuilder/zquerybuilder.component.js +0 -196
  178. package/esm2015/lib/zreport/zreport.component.js +0 -104
  179. package/esm2015/lib/zreport/zreport.config.js +0 -115
  180. package/esm2015/lib/zscheduler/zscheduler.component.js +0 -268
  181. package/esm2015/lib/zselectmultiple/zselectmultiple.component.js +0 -565
  182. package/esm2015/lib/zselectmultiple/zselectmultiple.directive.js +0 -28
  183. package/esm2015/lib/ztab/ztab.component.js +0 -180
  184. package/esm2015/lib/ztab/ztab.pipe.js +0 -22
  185. package/esm2015/lib/ztext/ztext.component.js +0 -286
  186. package/esm2015/lib/ztextarea/ztextarea.component.js +0 -104
  187. package/esm2015/lib/ztexteditor/ztexteditor.component.js +0 -52
  188. package/esm2015/lib/ztree/ztree.component.js +0 -374
  189. package/esm2015/lib/ztreelist/ztreelist.component.js +0 -539
  190. package/esm2015/lib/ztrendcard/ztrendcard.component.js +0 -89
  191. package/esm2015/lib/zudf/zudf.component.js +0 -206
  192. package/esm2015/lib/zunknown/zunknown.component.js +0 -20
  193. package/esm2015/lib/zupload/zupload.component.js +0 -358
  194. package/esm2015/lib/zworkflowbuttons/zworkflowbuttons.component.js +0 -215
  195. package/esm2015/mmhglobal-dynamicform.js +0 -7
  196. package/fesm2015/mmhglobal-dynamicform.js +0 -10729
  197. package/fesm2015/mmhglobal-dynamicform.js.map +0 -1
  198. package/mmhglobal-dynamicform.metadata.json +0 -1
@@ -0,0 +1,216 @@
1
+ /********** Angular **********/
2
+ import { Component, Input } from '@angular/core';
3
+ import { Validators } from '@angular/forms';
4
+ /********** Ionic **********/
5
+ /********** Plugin **********/
6
+ import { of } from 'rxjs';
7
+ import { concatMap, map, tap } from 'rxjs/operators';
8
+ import { ZComponentProperties, ZComponentHelper } from 'mmhglobal-zcore';
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "mmhglobal-zcore";
11
+ import * as i2 from "@progress/kendo-angular-buttons";
12
+ import * as i3 from "@ionic/angular";
13
+ import * as i4 from "@fortawesome/angular-fontawesome";
14
+ import * as i5 from "@angular/common";
15
+ export class ZworkflowbuttonsComponent {
16
+ constructor(webApiService, resourceApiService, workflowService) {
17
+ this.webApiService = webApiService;
18
+ this.resourceApiService = resourceApiService;
19
+ this.workflowService = workflowService;
20
+ this.componentProperties = new ZComponentProperties();
21
+ // URL required
22
+ // eslint-disable-next-line @typescript-eslint/naming-convention,no-underscore-dangle,id-blacklist,id-match
23
+ this.e1wfs_wfcGetWorkflowButtonURL = this.resourceApiService.getURL("e1wfs_wfcGetWorkflowButtonURL");
24
+ // eslint-disable-next-line @typescript-eslint/naming-convention,no-underscore-dangle,id-blacklist,id-match
25
+ this.e1wfs_wfc_getWorkflowInitialStatusURL = this.resourceApiService.getURL("e1wfs_wfc_getWorkflowInitialStatusURL");
26
+ // eslint-disable-next-line @typescript-eslint/naming-convention, no-underscore-dangle, id-blacklist, id-match
27
+ this.e1wfs_wfc_getDocumentStatusURL = this.resourceApiService.getURL("e1wfs_wfc_getDocumentStatusURL");
28
+ //domainURL = "https://localhost:44300/";
29
+ //e1wfs_wfcGetWorkflowButtonURL = this.domainURL + "/api/WorkflowClients/GetWorkflowClientButtons/";
30
+ //e1wfs_wfc_getWorkflowInitialStatusURL = this.domainURL + "/api/WorkflowClients/GetWorkflowInitialStatus/";
31
+ //e1wfs_wfc_getDocumentStatusURL = this.domainURL + "/api/WorkflowClients/GetDocumentStatus/";
32
+ this.items = [];
33
+ this.dataFormFields = {};
34
+ this.FirstZbtn = false;
35
+ this.isLoading = true;
36
+ this.isLocalHostAPI = false;
37
+ this.setEnable = (status) => {
38
+ this.componentProperties.isReadOnly = !status;
39
+ };
40
+ this.setVisible = (status) => {
41
+ this.componentProperties.isVisible = status;
42
+ this.data.Visible = status;
43
+ };
44
+ this.setRequire = (status) => {
45
+ this.componentProperties.isRequired = status;
46
+ ZComponentHelper.changeValidator(status, this.group, this.data.Value, this.componentProperties, Validators.required);
47
+ };
48
+ }
49
+ ngOnInit() {
50
+ ZComponentHelper.setComponentProperties(this);
51
+ ZComponentHelper.registerComponent(this);
52
+ // Check project resourceURL is it localhost
53
+ if (this.group.resourceURL) {
54
+ this.isLocalHostAPI = this.group.resourceURL.toLowerCase().includes("localhost") ? true : false;
55
+ }
56
+ this.loadButton();
57
+ }
58
+ loadButton() {
59
+ this.items = [];
60
+ // Get WFS_DocumentId if any.
61
+ let documentId = null;
62
+ if (this.group.zModel) {
63
+ documentId = this.group.zModel['WFS_DocumentId'];
64
+ }
65
+ // Set the documentId to the service
66
+ this.workflowService.appendWFS_DocumentsInfo(this.data.WorkflowCode, documentId);
67
+ // button count
68
+ this.group.zButtonsCount++;
69
+ if (this.group.zButtonsCount === 1) {
70
+ this.FirstZbtn = true;
71
+ }
72
+ try {
73
+ of(true)
74
+ .pipe(concatMap(() => {
75
+ // retrieve the workflow button
76
+ return this.workflowService.getWorkflowButtonsField(this.data.WorkflowCode, this.e1wfs_wfcGetWorkflowButtonURL, String(this.isLocalHostAPI));
77
+ }), tap(resultData => {
78
+ if (resultData) {
79
+ resultData.forEach((button) => {
80
+ const label = this.getButtonLabel(button);
81
+ const attributes = JSON.parse(button.Attributes);
82
+ const buttonLabel = attributes.Label || label;
83
+ this.items.push({
84
+ text: buttonLabel,
85
+ icon: ZComponentHelper.getIcon(attributes.Icon),
86
+ visible: attributes.Visible,
87
+ fieldAttribute: button,
88
+ iconName: attributes.Icon,
89
+ click: (y) => {
90
+ this.buttonClick(button);
91
+ }
92
+ });
93
+ const mappedInfo = {
94
+ 'role': [],
95
+ 'status': [],
96
+ 'parentStatus': []
97
+ };
98
+ //ZComponentHelper.collectWorkflowButton(this.group, this.data.WorkflowCode, buttonLabel, button, attributes, mappedInfo);
99
+ });
100
+ }
101
+ else {
102
+ console.warn('unable to get workflow button. data returned null.');
103
+ }
104
+ }), map(() => {
105
+ if (!this.data.DisableSyncWorkflowStatus) {
106
+ // Set default status
107
+ // eslint-disable-next-line @typescript-eslint/dot-notation
108
+ if (!this.group.zModel["WFS_StatusName"]) {
109
+ const params = {
110
+ "WorkflowMasterCode": this.data.WorkflowCode
111
+ };
112
+ return this.webApiService.httpPost$(this.e1wfs_wfc_getWorkflowInitialStatusURL, params).pipe(map(res => {
113
+ if (res.Data) {
114
+ ZComponentHelper.presetModelValue("WFS_StatusId", res.Data["Id"], this.group);
115
+ ZComponentHelper.presetModelValue("WFS_StatusName", res.Data["Name"], this.group);
116
+ ZComponentHelper.presetModelValue("WFS_StatusCode", res.Data["Code"], this.group);
117
+ this.workflowService.setCurrentDocumentStatus(res.Data);
118
+ }
119
+ }));
120
+ }
121
+ else {
122
+ // When loading also to get current Status Information if any.
123
+ const docInfoParam = {
124
+ "WorkflowMasterCode": this.data.WorkflowCode,
125
+ "DocumentId": documentId,
126
+ };
127
+ this.webApiService.httpPost$(this.e1wfs_wfc_getDocumentStatusURL, docInfoParam).pipe(map(res => {
128
+ this.workflowService.setCurrentDocumentStatus(res);
129
+ if (res.Data) {
130
+ this.workflowService.setCurrentDocumentStatus(res.Data);
131
+ }
132
+ }));
133
+ }
134
+ }
135
+ })).subscribe();
136
+ }
137
+ catch (error) {
138
+ console.error("error: ", error);
139
+ }
140
+ }
141
+ buttonClick(button) {
142
+ // Type 1 == functional;
143
+ // Type 2 == GOTO;
144
+ const attributes = JSON.parse(button.Attributes);
145
+ switch (button.TypeCode.toUpperCase()) {
146
+ case "FUNCTION":
147
+ this.group.isTriggered = true;
148
+ const me = this.group;
149
+ if (!attributes['DisableTriggerTimer']) {
150
+ setTimeout(function () {
151
+ me['isTriggered'] = false;
152
+ }, 500);
153
+ }
154
+ console.log("Functional Button: ", button.Name);
155
+ this.workflowService.functionalButton_OnClick(attributes, this.group);
156
+ break;
157
+ case "GOTO":
158
+ this.group.isTriggered = true;
159
+ console.log("GOTO Button: ", button.Name);
160
+ this.workflowService.gotoButton_Onclick(button, this.data, attributes, this.group, this.isLocalHostAPI).subscribe(res => {
161
+ this.loadButton();
162
+ this.group.isTriggered = false;
163
+ if (res) {
164
+ this.workflowService.triggerSendEmail(this.group).subscribe();
165
+ }
166
+ });
167
+ break;
168
+ default:
169
+ console.log("Invalid Button Type. ", button.Name);
170
+ break;
171
+ }
172
+ }
173
+ /******************** Button Config ********************/
174
+ getButtonLabel(button) {
175
+ let labelExpr = button.Name.match(/^{{.*}}$/gi);
176
+ if (labelExpr) {
177
+ labelExpr = labelExpr[0].slice(2, -2);
178
+ const label = ZComponentHelper.getGroupValue(labelExpr, this.group);
179
+ return label;
180
+ }
181
+ else {
182
+ return button.Name;
183
+ }
184
+ }
185
+ /******************** Common ********************/
186
+ isMobileScreen() {
187
+ const v = ZComponentHelper.isMobileScreen();
188
+ return v;
189
+ }
190
+ isBtnVisible(fieldExpr) {
191
+ if (fieldExpr !== false && !fieldExpr) {
192
+ return true;
193
+ }
194
+ const v = ZComponentHelper.getGroupEvalValue.call(this, fieldExpr);
195
+ return v;
196
+ }
197
+ getFontAwesome(iconName) {
198
+ if (iconName == "") {
199
+ iconName = "help";
200
+ }
201
+ return ZComponentHelper.getFontAwesome(iconName);
202
+ }
203
+ }
204
+ ZworkflowbuttonsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.4", ngImport: i0, type: ZworkflowbuttonsComponent, deps: [{ token: i1.WebApiService }, { token: i1.ResourceApiService }, { token: i1.WorkflowService }], target: i0.ɵɵFactoryTarget.Component });
205
+ ZworkflowbuttonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.4", type: ZworkflowbuttonsComponent, selector: "app-zworkflowbuttons", inputs: { data: "data", group: "group", form: "form" }, ngImport: i0, template: "<div *ngIf=\"!group.isLoading && (!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible) && items.length > 0\">\r\n\r\n <div class=\"ion-margin-vertical\" *ngIf=\"isMobileScreen() && items.length > 1 && FirstZbtn === false\">\r\n <kendo-dropdownbutton [data]=\"items\" size=\"large\" [look]=\"'outline'\" class=\"ion-activatable ripple-parent\">\r\n Actions\r\n <ion-ripple-effect></ion-ripple-effect>\r\n </kendo-dropdownbutton>\r\n </div>\r\n\r\n <div *ngIf=\"!isMobileScreen() || items.length === 1 \" style=\"padding: 10px 0px;\" [class]=\"data.DivClass\">\r\n <!-- <button *ngFor=\"let item of items; let i = index\" (click)=\"buttonClick(item.fieldAttribute)\"\r\n kendoButton [togglable]=\"true\" [icon]=\"item.icon\" [hidden]=\"!isBtnVisible(item.visible)\"\r\n style=\"margin-right: 5px;\">\r\n {{item.text}}\r\n </button> -->\r\n <ion-button fill=\"outline\"\r\n color=\"dark\"\r\n size=\"small\"\r\n strong=\"false\"\r\n *ngFor=\"let item of items; let i = index\"\r\n class=\"button-container\"\r\n (click)=\"buttonClick(item.fieldAttribute)\"\r\n [hidden]=\"!isBtnVisible(item.visible)\"\r\n [disabled]=\"group.isTriggered\">\r\n <fa-icon [icon]=\"getFontAwesome(item.icon)\" style=\"padding-right: 5px;\"></fa-icon>\r\n <span class=\"ion-text-capitalize\">{{item.text}}</span>\r\n </ion-button>\r\n </div>\r\n</div>\r\n", styles: [".ripple-parent{position:relative;overflow:hidden}:host ::ng-deep span.ion-text-capitalize{font-weight:600}.button-container{font-size:12px;height:30px}.button:hover{font-size:12px;height:30px;border-radius:5px}\n"], components: [{ type: i2.DropDownButtonComponent, selector: "kendo-dropdownbutton", inputs: ["icon", "iconClass", "imageUrl", "size", "shape", "rounded", "themeColor", "tabIndex", "popupSettings", "disabled", "data", "fillMode", "textField", "buttonClass"], outputs: ["itemClick", "open", "close", "focus", "blur"], exportAs: ["kendoDropDownButton"] }, { type: i3.IonRippleEffect, selector: "ion-ripple-effect", inputs: ["type"] }, { type: i3.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { type: i4.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
206
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.4", ngImport: i0, type: ZworkflowbuttonsComponent, decorators: [{
207
+ type: Component,
208
+ args: [{ selector: 'app-zworkflowbuttons', template: "<div *ngIf=\"!group.isLoading && (!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible) && items.length > 0\">\r\n\r\n <div class=\"ion-margin-vertical\" *ngIf=\"isMobileScreen() && items.length > 1 && FirstZbtn === false\">\r\n <kendo-dropdownbutton [data]=\"items\" size=\"large\" [look]=\"'outline'\" class=\"ion-activatable ripple-parent\">\r\n Actions\r\n <ion-ripple-effect></ion-ripple-effect>\r\n </kendo-dropdownbutton>\r\n </div>\r\n\r\n <div *ngIf=\"!isMobileScreen() || items.length === 1 \" style=\"padding: 10px 0px;\" [class]=\"data.DivClass\">\r\n <!-- <button *ngFor=\"let item of items; let i = index\" (click)=\"buttonClick(item.fieldAttribute)\"\r\n kendoButton [togglable]=\"true\" [icon]=\"item.icon\" [hidden]=\"!isBtnVisible(item.visible)\"\r\n style=\"margin-right: 5px;\">\r\n {{item.text}}\r\n </button> -->\r\n <ion-button fill=\"outline\"\r\n color=\"dark\"\r\n size=\"small\"\r\n strong=\"false\"\r\n *ngFor=\"let item of items; let i = index\"\r\n class=\"button-container\"\r\n (click)=\"buttonClick(item.fieldAttribute)\"\r\n [hidden]=\"!isBtnVisible(item.visible)\"\r\n [disabled]=\"group.isTriggered\">\r\n <fa-icon [icon]=\"getFontAwesome(item.icon)\" style=\"padding-right: 5px;\"></fa-icon>\r\n <span class=\"ion-text-capitalize\">{{item.text}}</span>\r\n </ion-button>\r\n </div>\r\n</div>\r\n", styles: [".ripple-parent{position:relative;overflow:hidden}:host ::ng-deep span.ion-text-capitalize{font-weight:600}.button-container{font-size:12px;height:30px}.button:hover{font-size:12px;height:30px;border-radius:5px}\n"] }]
209
+ }], ctorParameters: function () { return [{ type: i1.WebApiService }, { type: i1.ResourceApiService }, { type: i1.WorkflowService }]; }, propDecorators: { data: [{
210
+ type: Input
211
+ }], group: [{
212
+ type: Input
213
+ }], form: [{
214
+ type: Input
215
+ }] } });
216
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiendvcmtmbG93YnV0dG9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tbWhnbG9iYWwtZHluYW1pY2Zvcm0vc3JjL2xpYi96d29ya2Zsb3didXR0b25zL3p3b3JrZmxvd2J1dHRvbnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvendvcmtmbG93YnV0dG9ucy96d29ya2Zsb3didXR0b25zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtCQUErQjtBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQWEsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdkQsNkJBQTZCO0FBRTdCLDhCQUE4QjtBQUM5QixPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFCLE9BQU8sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFhLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSWhFLE9BQU8sRUFDVyxvQkFBb0IsRUFDeEIsZ0JBQWdCLEVBQzdCLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7QUFRekIsTUFBTSxPQUFPLHlCQUF5QjtJQTBCcEMsWUFDVSxhQUE0QixFQUM1QixrQkFBc0MsRUFDdEMsZUFBZ0M7UUFGaEMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUN0QyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUF4QjFDLHdCQUFtQixHQUFHLElBQUksb0JBQW9CLEVBQUUsQ0FBQztRQUVqRCxlQUFlO1FBQ2YsMkdBQTJHO1FBQzNHLGtDQUE2QixHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsK0JBQStCLENBQUMsQ0FBQztRQUNo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QUFDO1lBQ3BFLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7YUFBTTtZQUNMLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQztTQUNwQjtJQUNILENBQUM7SUFpQkgsa0RBQWtEO0lBQ2hELGNBQWM7UUFDWixNQUFNLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUM1QyxPQUFPLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFRCxZQUFZLENBQUMsU0FBUztRQUNwQixJQUFJLFNBQVMsS0FBSyxLQUFLLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDckMsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUNELE1BQU0sQ0FBQyxHQUFHLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDbkUsT0FBTyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRUQsY0FBYyxDQUFDLFFBQWdCO1FBQzdCLElBQUksUUFBUSxJQUFJLEVBQUUsRUFBRTtZQUNsQixRQUFRLEdBQUcsTUFBTSxDQUFDO1NBQ25CO1FBQ0QsT0FBTyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDbkQsQ0FBQzs7c0hBdE9VLHlCQUF5QjswR0FBekIseUJBQXlCLG9IQ3ZCdEMsK2lEQTZCQTsyRkROYSx5QkFBeUI7a0JBTHJDLFNBQVM7K0JBQ0Usc0JBQXNCO21LQUt2QixJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qKioqKioqKioqIEFuZ3VsYXIgKioqKioqKioqKi9cclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbi8qKioqKioqKioqIElvbmljICoqKioqKioqKiovXHJcblxyXG4vKioqKioqKioqKiBQbHVnaW4gKioqKioqKioqKi9cclxuaW1wb3J0IHsgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgY29uY2F0TWFwLCBtYXAsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuLyoqKioqKioqKiogQ29tcG9uZW50ICYgU2VydmljZSAqKioqKioqKioqL1xyXG5pbXBvcnQgeyBNYWluU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL21haW4uc2VydmljZSc7XHJcbmltcG9ydCB7XHJcbiAgWkdyb3VwLCBaRmllbGQsIFpDb21wb25lbnRQcm9wZXJ0aWVzLFxyXG4gIFpDb21wb25lbnQsIFpDb21wb25lbnRIZWxwZXIsIFdlYkFwaVNlcnZpY2UsIFJlc291cmNlQXBpU2VydmljZSwgV29ya2Zsb3dTZXJ2aWNlLCBGb250QXdlU29tZVNlcnZpY2VcclxufSBmcm9tICdtbWhnbG9iYWwtemNvcmUnO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLXp3b3JrZmxvd2J1dHRvbnMnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi96d29ya2Zsb3didXR0b25zLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi96d29ya2Zsb3didXR0b25zLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFp3b3JrZmxvd2J1dHRvbnNDb21wb25lbnQgaW1wbGVtZW50cyBaQ29tcG9uZW50LCBPbkluaXQge1xyXG4gIEBJbnB1dCgpIGRhdGE6IFpGaWVsZDtcclxuICBASW5wdXQoKSBncm91cDogWkdyb3VwO1xyXG4gIEBJbnB1dCgpIGZvcm06IEZvcm1Hcm91cDtcclxuXHJcbiAgY29tcG9uZW50UHJvcGVydGllcyA9IG5ldyBaQ29tcG9uZW50UHJvcGVydGllcygpO1xyXG5cclxuICAvLyBVUkwgcmVxdWlyZWRcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uLG5vLXVuZGVyc2NvcmUtZGFuZ2xlLGlkLWJsYWNrbGlzdCxpZC1tYXRjaFxyXG4gIGUxd2ZzX3dmY0dldFdvcmtmbG93QnV0dG9uVVJMID0gdGhpcy5yZXNvdXJjZUFwaVNlcnZpY2UuZ2V0VVJMKFwiZTF3ZnNfd2ZjR2V0V29ya2Zsb3dCdXR0b25VUkxcIik7XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvbixuby11bmRlcnNjb3JlLWRhbmdsZSxpZC1ibGFja2xpc3QsaWQtbWF0Y2hcclxuICBlMXdmc193ZmNfZ2V0V29ya2Zsb3dJbml0aWFsU3RhdHVzVVJMID0gdGhpcy5yZXNvdXJjZUFwaVNlcnZpY2UuZ2V0VVJMKFwiZTF3ZnNfd2ZjX2dldFdvcmtmbG93SW5pdGlhbFN0YXR1c1VSTFwiKTtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uLCBuby11bmRlcnNjb3JlLWRhbmdsZSwgaWQtYmxhY2tsaXN0LCBpZC1tYXRjaFxyXG4gIGUxd2ZzX3dmY19nZXREb2N1bWVudFN0YXR1c1VSTCA9IHRoaXMucmVzb3VyY2VBcGlTZXJ2aWNlLmdldFVSTChcImUxd2ZzX3dmY19nZXREb2N1bWVudFN0YXR1c1VSTFwiKTtcclxuXHJcbiAgLy9kb21haW5VUkwgPSBcImh0dHBzOi8vbG9jYWxob3N0OjQ0MzAwL1wiO1xyXG4gIC8vZTF3ZnNfd2ZjR2V0V29ya2Zsb3dCdXR0b25VUkwgPSB0aGlzLmRvbWFpblVSTCArIFwiL2FwaS9Xb3JrZmxvd0NsaWVudHMvR2V0V29ya2Zsb3dDbGllbnRCdXR0b25zL1wiO1xyXG4gIC8vZTF3ZnNfd2ZjX2dldFdvcmtmbG93SW5pdGlhbFN0YXR1c1VSTCA9IHRoaXMuZG9tYWluVVJMICsgXCIvYXBpL1dvcmtmbG93Q2xpZW50cy9HZXRXb3JrZmxvd0luaXRpYWxTdGF0dXMvXCI7XHJcbiAgLy9lMXdmc193ZmNfZ2V0RG9jdW1lbnRTdGF0dXNVUkwgPSB0aGlzLmRvbWFpblVSTCArIFwiL2FwaS9Xb3JrZmxvd0NsaWVudHMvR2V0RG9jdW1lbnRTdGF0dXMvXCI7XHJcblxyXG4gIGl0ZW1zOiBBcnJheTxhbnk+ID0gW107XHJcbiAgZGF0YUZvcm1GaWVsZHM6IGFueSA9IHt9O1xyXG4gIEZpcnN0WmJ0biA9IGZhbHNlO1xyXG4gIGlzTG9hZGluZyA9IHRydWU7XHJcbiAgaXNMb2NhbEhvc3RBUEk6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHdlYkFwaVNlcnZpY2U6IFdlYkFwaVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlc291cmNlQXBpU2VydmljZTogUmVzb3VyY2VBcGlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB3b3JrZmxvd1NlcnZpY2U6IFdvcmtmbG93U2VydmljZVxyXG4gICkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgWkNvbXBvbmVudEhlbHBlci5zZXRDb21wb25lbnRQcm9wZXJ0aWVzKHRoaXMpO1xyXG4gICAgWkNvbXBvbmVudEhlbHBlci5yZWdpc3RlckNvbXBvbmVudCh0aGlzKTtcclxuXHJcbiAgICAvLyBDaGVjayBwcm9qZWN0IHJlc291cmNlVVJMIGlzIGl0IGxvY2FsaG9zdFxyXG4gICAgaWYgKHRoaXMuZ3JvdXAucmVzb3VyY2VVUkwpIHtcclxuICAgICAgdGhpcy5pc0xvY2FsSG9zdEFQSSA9IHRoaXMuZ3JvdXAucmVzb3VyY2VVUkwudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhcImxvY2FsaG9zdFwiKSA/IHRydWUgOiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmxvYWRCdXR0b24oKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgbG9hZEJ1dHRvbigpIHtcclxuICAgIHRoaXMuaXRlbXMgPSBbXTtcclxuXHJcbiAgICAvLyBHZXQgV0ZTX0RvY3VtZW50SWQgaWYgYW55LlxyXG4gICAgbGV0IGRvY3VtZW50SWQgPSBudWxsO1xyXG4gICAgaWYgKHRoaXMuZ3JvdXAuek1vZGVsKSB7XHJcbiAgICAgIGRvY3VtZW50SWQgPSB0aGlzLmdyb3VwLnpNb2RlbFsnV0ZTX0RvY3VtZW50SWQnXTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBTZXQgdGhlIGRvY3VtZW50SWQgdG8gdGhlIHNlcnZpY2VcclxuICAgIHRoaXMud29ya2Zsb3dTZXJ2aWNlLmFwcGVuZFdGU19Eb2N1bWVudHNJbmZvKHRoaXMuZGF0YS5Xb3JrZmxvd0NvZGUsIGRvY3VtZW50SWQpO1xyXG5cclxuICAgIC8vIGJ1dHRvbiBjb3VudFxyXG4gICAgdGhpcy5ncm91cC56QnV0dG9uc0NvdW50Kys7XHJcbiAgICBpZiAodGhpcy5ncm91cC56QnV0dG9uc0NvdW50ID09PSAxKSB7XHJcbiAgICAgIHRoaXMuRmlyc3RaYnRuID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICB0cnkge1xyXG5cclxuICAgICAgb2YodHJ1ZSlcclxuICAgICAgICAucGlwZShcclxuICAgICAgICAgIGNvbmNhdE1hcCgoKSA9PiB7XHJcbiAgICAgICAgICAgIC8vIHJldHJpZXZlIHRoZSB3b3JrZmxvdyBidXR0b25cclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMud29ya2Zsb3dTZXJ2aWNlLmdldFdvcmtmbG93QnV0dG9uc0ZpZWxkKFxyXG4gICAgICAgICAgICAgIHRoaXMuZGF0YS5Xb3JrZmxvd0NvZGUsXHJcbiAgICAgICAgICAgICAgdGhpcy5lMXdmc193ZmNHZXRXb3JrZmxvd0J1dHRvblVSTCxcclxuICAgICAgICAgICAgICBTdHJpbmcodGhpcy5pc0xvY2FsSG9zdEFQSSlcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgfSksXHJcbiAgICAgICAgICB0YXAocmVzdWx0RGF0YSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChyZXN1bHREYXRhKSB7XHJcbiAgICAgICAgICAgICAgcmVzdWx0RGF0YS5mb3JFYWNoKChidXR0b246IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgbGFiZWwgPSB0aGlzLmdldEJ1dHRvbkxhYmVsKGJ1dHRvbik7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBhdHRyaWJ1dGVzID0gSlNPTi5wYXJzZShidXR0b24uQXR0cmlidXRlcyk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBidXR0b25MYWJlbCA9IGF0dHJpYnV0ZXMuTGFiZWwgfHwgbGFiZWw7XHJcbiAgICAgICAgICAgICAgICB0aGlzLml0ZW1zLnB1c2goe1xyXG4gICAgICAgICAgICAgICAgICB0ZXh0OiBidXR0b25MYWJlbCxcclxuICAgICAgICAgICAgICAgICAgaWNvbjogWkNvbXBvbmVudEhlbHBlci5nZXRJY29uKGF0dHJpYnV0ZXMuSWNvbiksXHJcbiAgICAgICAgICAgICAgICAgIHZpc2libGU6IGF0dHJpYnV0ZXMuVmlzaWJsZSxcclxuICAgICAgICAgICAgICAgICAgZmllbGRBdHRyaWJ1dGU6IGJ1dHRvbixcclxuICAgICAgICAgICAgICAgICAgaWNvbk5hbWU6IGF0dHJpYnV0ZXMuSWNvbixcclxuICAgICAgICAgICAgICAgICAgY2xpY2s6ICh5KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5idXR0b25DbGljayhidXR0b24pO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgICAgICBjb25zdCBtYXBwZWRJbmZvID0ge1xyXG4gICAgICAgICAgICAgICAgICAncm9sZSc6IFtdLFxyXG4gICAgICAgICAgICAgICAgICAnc3RhdHVzJzogW10sXHJcbiAgICAgICAgICAgICAgICAgICdwYXJlbnRTdGF0dXMnOiBbXVxyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgIC8vWkNvbXBvbmVudEhlbHBlci5jb2xsZWN0V29ya2Zsb3dCdXR0b24odGhpcy5ncm91cCwgdGhpcy5kYXRhLldvcmtmbG93Q29kZSwgYnV0dG9uTGFiZWwsIGJ1dHRvbiwgYXR0cmlidXRlcywgbWFwcGVkSW5mbyk7XHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgY29uc29sZS53YXJuKCd1bmFibGUgdG8gZ2V0IHdvcmtmbG93IGJ1dHRvbi4gZGF0YSByZXR1cm5lZCBudWxsLicpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KSxcclxuICAgICAgICAgIG1hcCgoKSA9PiB7XHJcbiAgICAgICAgICAgIGlmICghdGhpcy5kYXRhLkRpc2FibGVTeW5jV29ya2Zsb3dTdGF0dXMpIHtcclxuICAgICAgICAgICAgICAvLyBTZXQgZGVmYXVsdCBzdGF0dXNcclxuICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2RvdC1ub3RhdGlvblxyXG4gICAgICAgICAgICAgIGlmICghdGhpcy5ncm91cC56TW9kZWxbXCJXRlNfU3RhdHVzTmFtZVwiXSkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcGFyYW1zID0ge1xyXG4gICAgICAgICAgICAgICAgICBcIldvcmtmbG93TWFzdGVyQ29kZVwiOiB0aGlzLmRhdGEuV29ya2Zsb3dDb2RlXHJcbiAgICAgICAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLndlYkFwaVNlcnZpY2UuaHR0cFBvc3QkKHRoaXMuZTF3ZnNfd2ZjX2dldFdvcmtmbG93SW5pdGlhbFN0YXR1c1VSTCwgcGFyYW1zKS5waXBlKFxyXG4gICAgICAgICAgICAgICAgICBtYXAocmVzID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzLkRhdGEpIHtcclxuICAgICAgICAgICAgICAgICAgICAgIFpDb21wb25lbnRIZWxwZXIucHJlc2V0TW9kZWxWYWx1ZShcIldGU19TdGF0dXNJZFwiLCByZXMuRGF0YVtcIklkXCJdLCB0aGlzLmdyb3VwKTtcclxuICAgICAgICAgICAgICAgICAgICAgIFpDb21wb25lbnRIZWxwZXIucHJlc2V0TW9kZWxWYWx1ZShcIldGU19TdGF0dXNOYW1lXCIsIHJlcy5EYXRhW1wiTmFtZVwiXSwgdGhpcy5ncm91cCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICBaQ29tcG9uZW50SGVscGVyLnByZXNldE1vZGVsVmFsdWUoXCJXRlNfU3RhdHVzQ29kZVwiLCByZXMuRGF0YVtcIkNvZGVcIl0sIHRoaXMuZ3JvdXApO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMud29ya2Zsb3dTZXJ2aWNlLnNldEN1cnJlbnREb2N1bWVudFN0YXR1cyhyZXMuRGF0YSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAvLyBXaGVuIGxvYWRpbmcgYWxzbyB0byBnZXQgY3VycmVudCBTdGF0dXMgSW5mb3JtYXRpb24gaWYgYW55LlxyXG4gICAgICAgICAgICAgICAgY29uc3QgZG9jSW5mb1BhcmFtID0ge1xyXG4gICAgICAgICAgICAgICAgICBcIldvcmtmbG93TWFzdGVyQ29kZVwiOiB0aGlzLmRhdGEuV29ya2Zsb3dDb2RlLFxyXG4gICAgICAgICAgICAgICAgICBcIkRvY3VtZW50SWRcIjogZG9jdW1lbnRJZCxcclxuICAgICAgICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy53ZWJBcGlTZXJ2aWNlLmh0dHBQb3N0JCh0aGlzLmUxd2ZzX3dmY19nZXREb2N1bWVudFN0YXR1c1VSTCwgZG9jSW5mb1BhcmFtKS5waXBlKFxyXG4gICAgICAgICAgICAgICAgICBtYXAocmVzID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLndvcmtmbG93U2VydmljZS5zZXRDdXJyZW50RG9jdW1lbnRTdGF0dXMocmVzKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzLkRhdGEpIHtcclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMud29ya2Zsb3dTZXJ2aWNlLnNldEN1cnJlbnREb2N1bWVudFN0YXR1cyhyZXMuRGF0YSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSlcclxuXHJcbiAgICAgICAgKS5zdWJzY3JpYmUoKTtcclxuXHJcbiAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICBjb25zb2xlLmVycm9yKFwiZXJyb3I6IFwiLCBlcnJvcik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBidXR0b25DbGljayhidXR0b246IGFueSkge1xyXG4gICAgLy8gVHlwZSAxID09IGZ1bmN0aW9uYWw7XHJcbiAgICAvLyBUeXBlIDIgPT0gR09UTztcclxuICAgIGNvbnN0IGF0dHJpYnV0ZXMgPSBKU09OLnBhcnNlKGJ1dHRvbi5BdHRyaWJ1dGVzKTtcclxuICAgIHN3aXRjaCAoYnV0dG9uLlR5cGVDb2RlLnRvVXBwZXJDYXNlKCkpIHtcclxuICAgICAgY2FzZSBcIkZVTkNUSU9OXCI6XHJcbiAgICAgICAgdGhpcy5ncm91cC5pc1RyaWdnZXJlZCA9IHRydWU7XHJcbiAgICAgICAgY29uc3QgbWUgPSB0aGlzLmdyb3VwO1xyXG4gICAgICAgIGlmICghYXR0cmlidXRlc1snRGlzYWJsZVRyaWdnZXJUaW1lciddKSB7XHJcbiAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgbWVbJ2lzVHJpZ2dlcmVkJ10gPSBmYWxzZTtcclxuICAgICAgICAgIH0sIDUwMCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiRnVuY3Rpb25hbCBCdXR0b246IFwiLCBidXR0b24uTmFtZSk7XHJcbiAgICAgICAgdGhpcy53b3JrZmxvd1NlcnZpY2UuZnVuY3Rpb25hbEJ1dHRvbl9PbkNsaWNrKGF0dHJpYnV0ZXMsIHRoaXMuZ3JvdXApO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFwiR09UT1wiOlxyXG4gICAgICAgICAgdGhpcy5ncm91cC5pc1RyaWdnZXJlZCA9IHRydWU7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhcIkdPVE8gQnV0dG9uOiBcIiwgYnV0dG9uLk5hbWUpO1xyXG4gICAgICAgICAgdGhpcy53b3JrZmxvd1NlcnZpY2UuZ290b0J1dHRvbl9PbmNsaWNrKGJ1dHRvbiwgdGhpcy5kYXRhLCBhdHRyaWJ1dGVzLCB0aGlzLmdyb3VwLCB0aGlzLmlzTG9jYWxIb3N0QVBJKS5zdWJzY3JpYmUocmVzID0+IHtcclxuICAgICAgICAgICAgdGhpcy5sb2FkQnV0dG9uKCk7XHJcbiAgICAgICAgICAgIHRoaXMuZ3JvdXAuaXNUcmlnZ2VyZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgaWYgKHJlcykge1xyXG4gICAgICAgICAgICAgIHRoaXMud29ya2Zsb3dTZXJ2aWNlLnRyaWdnZXJTZW5kRW1haWwodGhpcy5ncm91cCkuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiSW52YWxpZCBCdXR0b24gVHlwZS4gXCIsIGJ1dHRvbi5OYW1lKTtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuXHJcbiAgLyoqKioqKioqKioqKioqKioqKioqIEJ1dHRvbiBDb25maWcgKioqKioqKioqKioqKioqKioqKiovXHJcbiAgcHJpdmF0ZSBnZXRCdXR0b25MYWJlbChidXR0b246IGFueSkge1xyXG4gICAgbGV0IGxhYmVsRXhwciA9IGJ1dHRvbi5OYW1lLm1hdGNoKC9ee3suKn19JC9naSk7XHJcbiAgICBpZiAobGFiZWxFeHByKSB7XHJcbiAgICAgIGxhYmVsRXhwciA9IGxhYmVsRXhwclswXS5zbGljZSgyLCAtMik7XHJcbiAgICAgIGNvbnN0IGxhYmVsID0gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cFZhbHVlKGxhYmVsRXhwciwgdGhpcy5ncm91cCk7XHJcbiAgICAgIHJldHVybiBsYWJlbDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBidXR0b24uTmFtZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRFbmFibGUgPSAoc3RhdHVzOiBib29sZWFuKSA9PiB7XHJcbiAgICB0aGlzLmNvbXBvbmVudFByb3BlcnRpZXMuaXNSZWFkT25seSA9ICFzdGF0dXM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0VmlzaWJsZSA9IChzdGF0dXM6IGJvb2xlYW4pID0+IHtcclxuICAgIHRoaXMuY29tcG9uZW50UHJvcGVydGllcy5pc1Zpc2libGUgPSBzdGF0dXM7XHJcbiAgICB0aGlzLmRhdGEuVmlzaWJsZSA9IHN0YXR1cztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRSZXF1aXJlID0gKHN0YXR1czogYm9vbGVhbikgPT4ge1xyXG4gICAgdGhpcy5jb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVxdWlyZWQgPSBzdGF0dXM7XHJcbiAgICBaQ29tcG9uZW50SGVscGVyLmNoYW5nZVZhbGlkYXRvcihzdGF0dXMsIHRoaXMuZ3JvdXAsIHRoaXMuZGF0YS5WYWx1ZSwgdGhpcy5jb21wb25lbnRQcm9wZXJ0aWVzLCBWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuICB9XHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqKioqIENvbW1vbiAqKioqKioqKioqKioqKioqKioqKi9cclxuICBpc01vYmlsZVNjcmVlbigpIHtcclxuICAgIGNvbnN0IHYgPSBaQ29tcG9uZW50SGVscGVyLmlzTW9iaWxlU2NyZWVuKCk7XHJcbiAgICByZXR1cm4gdjtcclxuICB9XHJcblxyXG4gIGlzQnRuVmlzaWJsZShmaWVsZEV4cHIpIHtcclxuICAgIGlmIChmaWVsZEV4cHIgIT09IGZhbHNlICYmICFmaWVsZEV4cHIpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICBjb25zdCB2ID0gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cEV2YWxWYWx1ZS5jYWxsKHRoaXMsIGZpZWxkRXhwcik7XHJcbiAgICByZXR1cm4gdjtcclxuICB9XHJcblxyXG4gIGdldEZvbnRBd2Vzb21lKGljb25OYW1lOiBzdHJpbmcpIHtcclxuICAgIGlmIChpY29uTmFtZSA9PSBcIlwiKSB7XHJcbiAgICAgIGljb25OYW1lID0gXCJoZWxwXCI7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gWkNvbXBvbmVudEhlbHBlci5nZXRGb250QXdlc29tZShpY29uTmFtZSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgKm5nSWY9XCIhZ3JvdXAuaXNMb2FkaW5nICYmICghIWNvbXBvbmVudFByb3BlcnRpZXMuaXNWaXNpYmxlRmllbGQgPyBncm91cFtjb21wb25lbnRQcm9wZXJ0aWVzLmlzVmlzaWJsZUZpZWxkXSA6IGNvbXBvbmVudFByb3BlcnRpZXMuaXNWaXNpYmxlKSAmJiBpdGVtcy5sZW5ndGggPiAwXCI+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJpb24tbWFyZ2luLXZlcnRpY2FsXCIgKm5nSWY9XCJpc01vYmlsZVNjcmVlbigpICYmIGl0ZW1zLmxlbmd0aCA+IDEgJiYgRmlyc3RaYnRuID09PSBmYWxzZVwiPlxyXG4gICAgPGtlbmRvLWRyb3Bkb3duYnV0dG9uIFtkYXRhXT1cIml0ZW1zXCIgc2l6ZT1cImxhcmdlXCIgW2xvb2tdPVwiJ291dGxpbmUnXCIgY2xhc3M9XCJpb24tYWN0aXZhdGFibGUgcmlwcGxlLXBhcmVudFwiPlxyXG4gICAgICBBY3Rpb25zXHJcbiAgICAgIDxpb24tcmlwcGxlLWVmZmVjdD48L2lvbi1yaXBwbGUtZWZmZWN0PlxyXG4gICAgPC9rZW5kby1kcm9wZG93bmJ1dHRvbj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiAqbmdJZj1cIiFpc01vYmlsZVNjcmVlbigpIHx8IGl0ZW1zLmxlbmd0aCA9PT0gMSBcIiBzdHlsZT1cInBhZGRpbmc6IDEwcHggMHB4O1wiIFtjbGFzc109XCJkYXRhLkRpdkNsYXNzXCI+XHJcbiAgICA8IS0tIDxidXR0b24gKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXM7IGxldCBpID0gaW5kZXhcIiAoY2xpY2spPVwiYnV0dG9uQ2xpY2soaXRlbS5maWVsZEF0dHJpYnV0ZSlcIlxyXG4gICAgICAgICAgICBrZW5kb0J1dHRvbiBbdG9nZ2xhYmxlXT1cInRydWVcIiBbaWNvbl09XCJpdGVtLmljb25cIiBbaGlkZGVuXT1cIiFpc0J0blZpc2libGUoaXRlbS52aXNpYmxlKVwiXHJcbiAgICAgICAgICAgIHN0eWxlPVwibWFyZ2luLXJpZ2h0OiA1cHg7XCI+XHJcbiAgICAgIHt7aXRlbS50ZXh0fX1cclxuICAgIDwvYnV0dG9uPiAtLT5cclxuICAgIDxpb24tYnV0dG9uIGZpbGw9XCJvdXRsaW5lXCJcclxuICAgICAgICAgICAgICAgIGNvbG9yPVwiZGFya1wiXHJcbiAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxyXG4gICAgICAgICAgICAgICAgc3Ryb25nPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXM7IGxldCBpID0gaW5kZXhcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJidXR0b24tY29udGFpbmVyXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJidXR0b25DbGljayhpdGVtLmZpZWxkQXR0cmlidXRlKVwiXHJcbiAgICAgICAgICAgICAgICBbaGlkZGVuXT1cIiFpc0J0blZpc2libGUoaXRlbS52aXNpYmxlKVwiXHJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZ3JvdXAuaXNUcmlnZ2VyZWRcIj5cclxuICAgICAgPGZhLWljb24gW2ljb25dPVwiZ2V0Rm9udEF3ZXNvbWUoaXRlbS5pY29uKVwiIHN0eWxlPVwicGFkZGluZy1yaWdodDogNXB4O1wiPjwvZmEtaWNvbj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJpb24tdGV4dC1jYXBpdGFsaXplXCI+e3tpdGVtLnRleHR9fTwvc3Bhbj5cclxuICAgIDwvaW9uLWJ1dHRvbj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW1oZ2xvYmFsLWR5bmFtaWNmb3JtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9tbWhnbG9iYWwtZHluYW1pY2Zvcm0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==