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,81 @@
1
+ /********** Angular **********/
2
+ import { Injectable } from "@angular/core";
3
+ /********** Service & Directive **********/
4
+ import { ZComponentHelper } from 'mmhglobal-zcore';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "mmhglobal-middleware";
7
+ // import { ZGridBindingDirective } from "../zgrid/zgrid.binding.directive";
8
+ /********** zComponent **********/
9
+ export class ZComponentService {
10
+ constructor(componentObjectService) {
11
+ this.componentObjectService = componentObjectService;
12
+ }
13
+ isSkipComponentType(componentType) {
14
+ return ZComponentHelper.isSkipComponentType(componentType);
15
+ }
16
+ loadComponent(componentFactoryResolver, fieldElement, field, group, form) {
17
+ // if(field.Name === 'FormDetailContactGrid') {
18
+ // debugger;
19
+ // }
20
+ if (this.isSkipComponentType(field.Type)) {
21
+ return;
22
+ }
23
+ let componentFactory;
24
+ const componentName = this.componentObjectService.getObject(field.Type);
25
+ if (componentName) {
26
+ componentFactory = componentFactoryResolver.resolveComponentFactory(componentName);
27
+ }
28
+ else {
29
+ componentFactory = componentFactoryResolver.resolveComponentFactory(this.componentObjectService.getObject("unknown"));
30
+ }
31
+ const viewContainerRef = fieldElement.viewContainerRef;
32
+ viewContainerRef.clear();
33
+ if (!form) {
34
+ console.warn('FormGroup is empty!');
35
+ debugger;
36
+ }
37
+ const componentRef = viewContainerRef.createComponent(componentFactory);
38
+ componentRef.instance.data = field;
39
+ componentRef.instance.group = group;
40
+ componentRef.instance.form = form;
41
+ // (componentRef.instance as ZComponent).outputEvent.subscribe((event: any) => group.outputEvent(event));
42
+ }
43
+ appendComponentToDynamicForm(componentFactoryResolver, injector, appRef, field, group, containerId) {
44
+ if (this.isSkipComponentType(field.Type)) {
45
+ return;
46
+ }
47
+ let componentRef;
48
+ const componentName = this.componentObjectService.getObject(field.Type);
49
+ // 1. Create a component reference from the component
50
+ if (componentName) {
51
+ componentRef = componentFactoryResolver
52
+ .resolveComponentFactory(componentName)
53
+ .create(injector);
54
+ }
55
+ else {
56
+ componentRef = componentFactoryResolver
57
+ .resolveComponentFactory(this.componentObjectService.getObject("unknown"))
58
+ .create(injector);
59
+ }
60
+ // 2. Attach component to the appRef so that it's inside the ng component tree
61
+ appRef.attachView(componentRef.hostView);
62
+ // 3. Get DOM element from component
63
+ const domElem = componentRef.hostView
64
+ .rootNodes[0];
65
+ // 4. Append DOM element to the body
66
+ const dynamicFormHost = document.querySelector("#" + containerId);
67
+ dynamicFormHost.appendChild(domElem);
68
+ componentRef.instance.data = field;
69
+ componentRef.instance.group = group;
70
+ return componentRef;
71
+ }
72
+ }
73
+ ZComponentService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.4", ngImport: i0, type: ZComponentService, deps: [{ token: i1.ComponentObjectService }], target: i0.ɵɵFactoryTarget.Injectable });
74
+ ZComponentService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.4", ngImport: i0, type: ZComponentService, providedIn: 'root' });
75
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.4", ngImport: i0, type: ZComponentService, decorators: [{
76
+ type: Injectable,
77
+ args: [{
78
+ providedIn: 'root'
79
+ }]
80
+ }], ctorParameters: function () { return [{ type: i1.ComponentObjectService }]; } });
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiemNvbXBvbmVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvc2VydmljZXMvemNvbXBvbmVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtCQUErQjtBQUMvQixPQUFPLEVBQUUsVUFBVSxFQUE2QyxNQUFNLGVBQWUsQ0FBQztBQUd0RiwyQ0FBMkM7QUFDM0MsT0FBTyxFQUFjLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQUcvRCw0RUFBNEU7QUFFNUUsa0NBQWtDO0FBS2xDLE1BQU0sT0FBTyxpQkFBaUI7SUFDNUIsWUFDVSxzQkFBOEM7UUFBOUMsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtJQUNwRCxDQUFDO0lBRUwsbUJBQW1CLENBQUMsYUFBcUI7UUFDdkMsT0FBTyxnQkFBZ0IsQ0FBQyxtQkFBbUIsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsYUFBYSxDQUNYLHdCQUFrRCxFQUNsRCxZQUFtQyxFQUNuQyxLQUFVLEVBQ1YsS0FBVSxFQUNWLElBQWU7UUFFZiwrQ0FBK0M7UUFDL0MsY0FBYztRQUNkLElBQUk7UUFFSixJQUFJLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDeEMsT0FBTztTQUNSO1FBRUQsSUFBSSxnQkFBZ0IsQ0FBQztRQUNyQixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4RSxJQUFJLGFBQWEsRUFBRTtZQUNqQixnQkFBZ0IsR0FBRyx3QkFBd0IsQ0FBQyx1QkFBdUIsQ0FDakUsYUFBYSxDQUNkLENBQUM7U0FDSDthQUFNO1lBQ0wsZ0JBQWdCLEdBQUcsd0JBQXdCLENBQUMsdUJBQXVCLENBQ2pFLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQ2pELENBQUM7U0FDSDtRQUVELE1BQU0sZ0JBQWdCLEdBQUcsWUFBWSxDQUFDLGdCQUFnQixDQUFDO1FBQ3ZELGdCQUFnQixDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDVCxPQUFPLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUM7WUFDcEMsUUFBUSxDQUFDO1NBQ1Y7UUFDRCxNQUFNLFlBQVksR0FBRyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUN2RSxZQUFZLENBQUMsUUFBdUIsQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ2xELFlBQVksQ0FBQyxRQUF1QixDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkQsWUFBWSxDQUFDLFFBQXVCLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNsRCx5R0FBeUc7SUFDM0csQ0FBQztJQUVELDRCQUE0QixDQUMxQix3QkFBa0QsRUFDbEQsUUFBYSxFQUNiLE1BQVcsRUFDWCxLQUFVLEVBQ1YsS0FBVSxFQUNWLFdBQW1CO1FBRW5CLElBQUksSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUN4QyxPQUFPO1NBQ1I7UUFFRCxJQUFJLFlBQVksQ0FBQztRQUNqQixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4RSxxREFBcUQ7UUFDckQsSUFBSSxhQUFhLEVBQUU7WUFDakIsWUFBWSxHQUFHLHdCQUF3QjtpQkFDcEMsdUJBQXVCLENBQUMsYUFBYSxDQUFDO2lCQUN0QyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDckI7YUFBTTtZQUNMLFlBQVksR0FBRyx3QkFBd0I7aUJBQ3BDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7aUJBQ3pFLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUNyQjtRQUVELDhFQUE4RTtRQUM5RSxNQUFNLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUV6QyxvQ0FBb0M7UUFDcEMsTUFBTSxPQUFPLEdBQUksWUFBWSxDQUFDLFFBQWlDO2FBQzVELFNBQVMsQ0FBQyxDQUFDLENBQWdCLENBQUM7UUFFL0Isb0NBQW9DO1FBQ3BDLE1BQU0sZUFBZSxHQUFRLFFBQVEsQ0FBQyxhQUFhLENBQUMsR0FBRyxHQUFHLFdBQVcsQ0FBQyxDQUFDO1FBQ3ZFLGVBQWUsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFcEMsWUFBWSxDQUFDLFFBQXVCLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztRQUNsRCxZQUFZLENBQUMsUUFBdUIsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ3BELE9BQU8sWUFBWSxDQUFDO0lBQ3RCLENBQUM7OzhHQXhGVSxpQkFBaUI7a0hBQWpCLGlCQUFpQixjQUZoQixNQUFNOzJGQUVQLGlCQUFpQjtrQkFIN0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyIvKioqKioqKioqKiBBbmd1bGFyICoqKioqKioqKiovXHJcbmltcG9ydCB7IEluamVjdGFibGUsIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwgRW1iZWRkZWRWaWV3UmVmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuLyoqKioqKioqKiogU2VydmljZSAmIERpcmVjdGl2ZSAqKioqKioqKioqL1xyXG5pbXBvcnQgeyBaQ29tcG9uZW50LCBaQ29tcG9uZW50SGVscGVyIH0gZnJvbSAnbW1oZ2xvYmFsLXpjb3JlJztcclxuaW1wb3J0IHsgQ29tcG9uZW50T2JqZWN0U2VydmljZSB9IGZyb20gJ21taGdsb2JhbC1taWRkbGV3YXJlJztcclxuaW1wb3J0IHsgRmllbGRFbGVtZW50RGlyZWN0aXZlIH0gZnJvbSAnLi4vZGlyZWN0aXZlcy9maWVsZGVsZW1lbnQuZGlyZWN0aXZlJztcclxuLy8gaW1wb3J0IHsgWkdyaWRCaW5kaW5nRGlyZWN0aXZlIH0gZnJvbSBcIi4uL3pncmlkL3pncmlkLmJpbmRpbmcuZGlyZWN0aXZlXCI7XHJcblxyXG4vKioqKioqKioqKiB6Q29tcG9uZW50ICoqKioqKioqKiovICBcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFpDb21wb25lbnRTZXJ2aWNlIHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgY29tcG9uZW50T2JqZWN0U2VydmljZTogQ29tcG9uZW50T2JqZWN0U2VydmljZSxcclxuICApIHsgfVxyXG4gICBcclxuICBpc1NraXBDb21wb25lbnRUeXBlKGNvbXBvbmVudFR5cGU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIFpDb21wb25lbnRIZWxwZXIuaXNTa2lwQ29tcG9uZW50VHlwZShjb21wb25lbnRUeXBlKTtcclxuICB9XHJcblxyXG4gIGxvYWRDb21wb25lbnQoXHJcbiAgICBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcclxuICAgIGZpZWxkRWxlbWVudDogRmllbGRFbGVtZW50RGlyZWN0aXZlLFxyXG4gICAgZmllbGQ6IGFueSxcclxuICAgIGdyb3VwOiBhbnksXHJcbiAgICBmb3JtOiBGb3JtR3JvdXBcclxuICApIHtcclxuICAgIC8vIGlmKGZpZWxkLk5hbWUgPT09ICdGb3JtRGV0YWlsQ29udGFjdEdyaWQnKSB7XHJcbiAgICAvLyAgIGRlYnVnZ2VyO1xyXG4gICAgLy8gfVxyXG5cclxuICAgIGlmICh0aGlzLmlzU2tpcENvbXBvbmVudFR5cGUoZmllbGQuVHlwZSkpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBjb21wb25lbnRGYWN0b3J5O1xyXG4gICAgY29uc3QgY29tcG9uZW50TmFtZSA9IHRoaXMuY29tcG9uZW50T2JqZWN0U2VydmljZS5nZXRPYmplY3QoZmllbGQuVHlwZSk7XHJcbiAgICBpZiAoY29tcG9uZW50TmFtZSkge1xyXG4gICAgICBjb21wb25lbnRGYWN0b3J5ID0gY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KFxyXG4gICAgICAgIGNvbXBvbmVudE5hbWVcclxuICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbXBvbmVudEZhY3RvcnkgPSBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoXHJcbiAgICAgICAgdGhpcy5jb21wb25lbnRPYmplY3RTZXJ2aWNlLmdldE9iamVjdChcInVua25vd25cIilcclxuICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCB2aWV3Q29udGFpbmVyUmVmID0gZmllbGRFbGVtZW50LnZpZXdDb250YWluZXJSZWY7XHJcbiAgICB2aWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XHJcbiAgICBpZiAoIWZvcm0pIHtcclxuICAgICAgY29uc29sZS53YXJuKCdGb3JtR3JvdXAgaXMgZW1wdHkhJyk7XHJcbiAgICAgIGRlYnVnZ2VyO1xyXG4gICAgfVxyXG4gICAgY29uc3QgY29tcG9uZW50UmVmID0gdmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoY29tcG9uZW50RmFjdG9yeSk7XHJcbiAgICAoY29tcG9uZW50UmVmLmluc3RhbmNlIGFzIFpDb21wb25lbnQpLmRhdGEgPSBmaWVsZDtcclxuICAgIChjb21wb25lbnRSZWYuaW5zdGFuY2UgYXMgWkNvbXBvbmVudCkuZ3JvdXAgPSBncm91cDtcclxuICAgIChjb21wb25lbnRSZWYuaW5zdGFuY2UgYXMgWkNvbXBvbmVudCkuZm9ybSA9IGZvcm07XHJcbiAgICAvLyAoY29tcG9uZW50UmVmLmluc3RhbmNlIGFzIFpDb21wb25lbnQpLm91dHB1dEV2ZW50LnN1YnNjcmliZSgoZXZlbnQ6IGFueSkgPT4gZ3JvdXAub3V0cHV0RXZlbnQoZXZlbnQpKTtcclxuICB9XHJcblxyXG4gIGFwcGVuZENvbXBvbmVudFRvRHluYW1pY0Zvcm0oXHJcbiAgICBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcclxuICAgIGluamVjdG9yOiBhbnksXHJcbiAgICBhcHBSZWY6IGFueSxcclxuICAgIGZpZWxkOiBhbnksXHJcbiAgICBncm91cDogYW55LFxyXG4gICAgY29udGFpbmVySWQ6IHN0cmluZ1xyXG4gICkge1xyXG4gICAgaWYgKHRoaXMuaXNTa2lwQ29tcG9uZW50VHlwZShmaWVsZC5UeXBlKSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGNvbXBvbmVudFJlZjtcclxuICAgIGNvbnN0IGNvbXBvbmVudE5hbWUgPSB0aGlzLmNvbXBvbmVudE9iamVjdFNlcnZpY2UuZ2V0T2JqZWN0KGZpZWxkLlR5cGUpO1xyXG4gICAgLy8gMS4gQ3JlYXRlIGEgY29tcG9uZW50IHJlZmVyZW5jZSBmcm9tIHRoZSBjb21wb25lbnRcclxuICAgIGlmIChjb21wb25lbnROYW1lKSB7XHJcbiAgICAgIGNvbXBvbmVudFJlZiA9IGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlclxyXG4gICAgICAgIC5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShjb21wb25lbnROYW1lKVxyXG4gICAgICAgIC5jcmVhdGUoaW5qZWN0b3IpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29tcG9uZW50UmVmID0gY29tcG9uZW50RmFjdG9yeVJlc29sdmVyXHJcbiAgICAgICAgLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KHRoaXMuY29tcG9uZW50T2JqZWN0U2VydmljZS5nZXRPYmplY3QoXCJ1bmtub3duXCIpKVxyXG4gICAgICAgIC5jcmVhdGUoaW5qZWN0b3IpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIDIuIEF0dGFjaCBjb21wb25lbnQgdG8gdGhlIGFwcFJlZiBzbyB0aGF0IGl0J3MgaW5zaWRlIHRoZSBuZyBjb21wb25lbnQgdHJlZVxyXG4gICAgYXBwUmVmLmF0dGFjaFZpZXcoY29tcG9uZW50UmVmLmhvc3RWaWV3KTtcclxuXHJcbiAgICAvLyAzLiBHZXQgRE9NIGVsZW1lbnQgZnJvbSBjb21wb25lbnRcclxuICAgIGNvbnN0IGRvbUVsZW0gPSAoY29tcG9uZW50UmVmLmhvc3RWaWV3IGFzIEVtYmVkZGVkVmlld1JlZjxhbnk+KVxyXG4gICAgICAucm9vdE5vZGVzWzBdIGFzIEhUTUxFbGVtZW50O1xyXG5cclxuICAgIC8vIDQuIEFwcGVuZCBET00gZWxlbWVudCB0byB0aGUgYm9keVxyXG4gICAgY29uc3QgZHluYW1pY0Zvcm1Ib3N0OiBhbnkgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiI1wiICsgY29udGFpbmVySWQpO1xyXG4gICAgZHluYW1pY0Zvcm1Ib3N0LmFwcGVuZENoaWxkKGRvbUVsZW0pO1xyXG5cclxuICAgIChjb21wb25lbnRSZWYuaW5zdGFuY2UgYXMgWkNvbXBvbmVudCkuZGF0YSA9IGZpZWxkO1xyXG4gICAgKGNvbXBvbmVudFJlZi5pbnN0YW5jZSBhcyBaQ29tcG9uZW50KS5ncm91cCA9IGdyb3VwO1xyXG4gICAgcmV0dXJuIGNvbXBvbmVudFJlZjtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,265 @@
1
+ /********** Angular **********/
2
+ import { Component, Input } from '@angular/core';
3
+ import { Validators } from '@angular/forms';
4
+ /********** Plugin **********/
5
+ import { map } from 'rxjs/operators';
6
+ /********** Component & Service **********/
7
+ import { ZComponentProperties, ZComponentHelper } from 'mmhglobal-zcore';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "mmhglobal-zcore";
10
+ import * as i2 from "@ionic/angular";
11
+ import * as i3 from "@fortawesome/angular-fontawesome";
12
+ import * as i4 from "@angular/common";
13
+ export class UiactionbuttonComponent {
14
+ constructor(fieldService, webApiService, resourceApiService, workflowService, actionSheetCtrl) {
15
+ this.fieldService = fieldService;
16
+ this.webApiService = webApiService;
17
+ this.resourceApiService = resourceApiService;
18
+ this.workflowService = workflowService;
19
+ this.actionSheetCtrl = actionSheetCtrl;
20
+ this.topRightActionButton = [];
21
+ this.isWorkflowButton = false;
22
+ this.componentProperties = new ZComponentProperties();
23
+ this.setEnable = (status) => {
24
+ this.componentProperties.isReadOnly = !status;
25
+ };
26
+ this.setVisible = (status) => {
27
+ this.componentProperties.isVisible = status;
28
+ this.data.Visible = status;
29
+ };
30
+ this.setRequire = (status) => {
31
+ this.componentProperties.isRequired = status;
32
+ ZComponentHelper.changeValidator(status, this.group, this.data.Value, this.componentProperties, Validators.required);
33
+ };
34
+ /******************** zWorkflowButton ********************/
35
+ // URL required
36
+ // eslint-disable-next-line @typescript-eslint/naming-convention,no-underscore-dangle,id-blacklist,id-match
37
+ this.e1wfs_wfcGetWorkflowButtonURL = this.resourceApiService.getURL("e1wfs_wfcGetWorkflowButtonURL");
38
+ // eslint-disable-next-line @typescript-eslint/naming-convention,no-underscore-dangle,id-blacklist,id-match
39
+ this.e1wfs_wfc_getWorkflowInitialStatusURL = this.resourceApiService.getURL("e1wfs_wfc_getWorkflowInitialStatusURL");
40
+ // eslint-disable-next-line @typescript-eslint/naming-convention, no-underscore-dangle, id-blacklist, id-match
41
+ this.e1wfs_wfc_getDocumentStatusURL = this.resourceApiService.getURL("e1wfs_wfc_getDocumentStatusURL");
42
+ }
43
+ /******************** Common function ********************/
44
+ ngOnInit() {
45
+ this.data = this.getFirstzButton(this.group.fields);
46
+ // this.visible = ZComponentHelper.isVisible(buttonData);
47
+ if (this.data) {
48
+ ZComponentHelper.setComponentProperties(this);
49
+ ZComponentHelper.registerComponent(this);
50
+ if (!ZComponentHelper.isNullUndefinedEmpty(this.data.WorkflowCode)) {
51
+ // handle as zWorkflowButton
52
+ this.isWorkflowButton = true;
53
+ this.loadWorkflowButton();
54
+ }
55
+ else {
56
+ // handle as zButton
57
+ const field$ = this.fieldService.getFormFieldCode(this.data.Value, "FormField", null, null);
58
+ field$.subscribe((data) => {
59
+ this.actionBtnList = data;
60
+ this.reloadButtonList();
61
+ });
62
+ }
63
+ return;
64
+ }
65
+ }
66
+ isMobileScreen() {
67
+ const v = ZComponentHelper.isMobileScreen();
68
+ return v;
69
+ }
70
+ isBtnVisible(fieldExpr) {
71
+ if (fieldExpr !== false && !fieldExpr) {
72
+ return true;
73
+ }
74
+ const v = ZComponentHelper.getGroupEvalValue.call(this, fieldExpr);
75
+ return v;
76
+ }
77
+ /******************** zButton ********************/
78
+ getFirstzButton(data) {
79
+ // data.forEach(d => {
80
+ for (let i = 0; i < data.length - 1; i++) {
81
+ if (data[i].Type === "zbuttons" || data[i].Type === "zworkflowbuttons") {
82
+ return data[i];
83
+ }
84
+ else {
85
+ if (Array.isArray(data[i].Value)) {
86
+ this.getFirstzButton(data[i].Value);
87
+ }
88
+ }
89
+ }
90
+ return null;
91
+ }
92
+ onAction() {
93
+ if (this.isWorkflowButton) {
94
+ //this.loadWorkflowButton();
95
+ this.actionSheetCtrl
96
+ .create({
97
+ header: "Choose an Action",
98
+ buttons: this.topRightActionButton
99
+ })
100
+ .then(actionSheetEl => {
101
+ actionSheetEl.present();
102
+ });
103
+ }
104
+ else {
105
+ //this.reloadButtonList();
106
+ this.actionSheetCtrl
107
+ .create({
108
+ header: "Choose an Action",
109
+ buttons: this.topRightActionButton
110
+ })
111
+ .then(actionSheetEl => {
112
+ actionSheetEl.present();
113
+ });
114
+ }
115
+ }
116
+ reloadButtonList() {
117
+ this.topRightActionButton = [];
118
+ this.actionBtnList.forEach((button) => {
119
+ const visible = ZComponentHelper.getGroupEvalValue.call(this, button.Visible, this.group);
120
+ if (visible !== false) {
121
+ const label = this.getButtonLabel(button);
122
+ const buttonRole = this.getButtonRole(button, label);
123
+ this.topRightActionButton.push({
124
+ text: label,
125
+ handler: () => {
126
+ this.buttonClick(button);
127
+ },
128
+ role: buttonRole
129
+ });
130
+ }
131
+ });
132
+ }
133
+ buttonClick(button) {
134
+ // debugger;
135
+ this.group['DismissType'] = button.DismissType;
136
+ this.group.subject.next({
137
+ type: "buttonClick",
138
+ target: button.ClickEvent,
139
+ data: null
140
+ });
141
+ }
142
+ getButtonLabel(button) {
143
+ let buttonLabel = button.Label;
144
+ if (!buttonLabel) {
145
+ buttonLabel = button.Name;
146
+ }
147
+ let labelExpr = buttonLabel.match(/^{{.*}}$/gi);
148
+ if (labelExpr) {
149
+ labelExpr = labelExpr[0].slice(2, -2);
150
+ const label = ZComponentHelper.getGroupValue(labelExpr, this.group);
151
+ return label;
152
+ }
153
+ else {
154
+ return buttonLabel;
155
+ }
156
+ }
157
+ getButtonRole(button, label) {
158
+ // console.log("getButtonRole: ", label, button.ClickEvent);
159
+ const lowerCaseLabel = label.toLowerCase();
160
+ if (lowerCaseLabel.indexOf("cancel") !== -1 ||
161
+ lowerCaseLabel.indexOf("close") !== -1) {
162
+ return "cancel";
163
+ }
164
+ return null;
165
+ }
166
+ loadWorkflowButton() {
167
+ // actionBtnList: Array<ZField>;
168
+ this.topRightActionButton = [];
169
+ // Get WFS_DocumentId if any.
170
+ let documentId = null;
171
+ if (this.group.zModel) {
172
+ documentId = this.group.zModel['WFS_DocumentId'];
173
+ }
174
+ // Set the documentId to the service
175
+ this.workflowService.appendWFS_DocumentsInfo(this.data.WorkflowCode, documentId);
176
+ try {
177
+ // Set param for field
178
+ const field$ = this.workflowService.getWorkflowButtonsField(this.data.WorkflowCode, this.e1wfs_wfcGetWorkflowButtonURL, String(false));
179
+ field$.subscribe(data => {
180
+ data.forEach((button) => {
181
+ const label = this.getButtonLabel(button);
182
+ const attributes = JSON.parse(button.Attributes);
183
+ const buttonLabel = attributes.Label || label;
184
+ const _isVisible = this.isBtnVisible(button.Visible);
185
+ if (_isVisible) {
186
+ this.topRightActionButton.push({
187
+ text: buttonLabel,
188
+ fieldAttribute: button,
189
+ iconName: attributes.Icon,
190
+ handler: (y) => {
191
+ this.workflowButtonClick(button);
192
+ }
193
+ });
194
+ }
195
+ //ZComponentHelper.collectWorkflowButton(this.group, this.data.WorkflowCode, buttonLabel, button, attributes, mappedInfo);
196
+ });
197
+ });
198
+ if (!this.data.DisableSyncWorkflowStatus) {
199
+ // Set default status
200
+ // eslint-disable-next-line @typescript-eslint/dot-notation
201
+ if (!this.group.zModel["WFS_StatusName"]) {
202
+ const params = {
203
+ "WorkflowMasterCode": this.data.WorkflowCode
204
+ };
205
+ return this.webApiService.httpPost$(this.e1wfs_wfc_getWorkflowInitialStatusURL, params).pipe(map(res => {
206
+ if (res.Data) {
207
+ ZComponentHelper.presetModelValue("WFS_StatusId", res.Data["Id"], this.group);
208
+ ZComponentHelper.presetModelValue("WFS_StatusName", res.Data["Name"], this.group);
209
+ ZComponentHelper.presetModelValue("WFS_StatusCode", res.Data["Code"], this.group);
210
+ this.workflowService.setCurrentDocumentStatus(res.Data);
211
+ }
212
+ })).subscribe();
213
+ }
214
+ else {
215
+ // When loading also to get current Status Information if any.
216
+ const docInfoParam = {
217
+ "WorkflowMasterCode": this.data.WorkflowCode,
218
+ "DocumentId": documentId,
219
+ };
220
+ this.webApiService.httpPost$(this.e1wfs_wfc_getDocumentStatusURL, docInfoParam).pipe(map(res => {
221
+ this.workflowService.setCurrentDocumentStatus(res);
222
+ if (res.Data) {
223
+ this.workflowService.setCurrentDocumentStatus(res.Data);
224
+ }
225
+ })).subscribe();
226
+ }
227
+ }
228
+ }
229
+ catch (error) {
230
+ console.error("error: ", error);
231
+ }
232
+ }
233
+ workflowButtonClick(button) {
234
+ // Type 1 == functional;
235
+ // Type 2 == GOTO;
236
+ const attributes = JSON.parse(button.Attributes);
237
+ switch (button.TypeCode.toUpperCase()) {
238
+ case "FUNCTION":
239
+ console.log("Functional Button: ", button.Name);
240
+ this.workflowService.functionalButton_OnClick(attributes, this.group);
241
+ break;
242
+ case "GOTO":
243
+ console.log("GOTO Button: ", button.Name);
244
+ this.workflowService.gotoButton_Onclick(button, this.data, attributes, this.group, false).subscribe(res => {
245
+ this.loadWorkflowButton();
246
+ if (res) {
247
+ this.workflowService.triggerSendEmail(this.group).subscribe();
248
+ }
249
+ });
250
+ break;
251
+ default:
252
+ console.log("Invalid Button Type. ", button.Name);
253
+ break;
254
+ }
255
+ }
256
+ }
257
+ UiactionbuttonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.4", ngImport: i0, type: UiactionbuttonComponent, deps: [{ token: i1.FieldService }, { token: i1.WebApiService }, { token: i1.ResourceApiService }, { token: i1.WorkflowService }, { token: i2.ActionSheetController }], target: i0.ɵɵFactoryTarget.Component });
258
+ UiactionbuttonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.4", type: UiactionbuttonComponent, selector: "app-uiactionbutton", inputs: { group: "group" }, ngImport: i0, template: "<ion-button (click)=\"onAction()\" [disabled]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\" \r\n *ngIf=\"isMobileScreen() && (!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\"\r\n class=\"ion-activatable ripple-parent\">\r\n <!-- <ion-icon name=\"more\" slot=\"icon-only\"></ion-icon> -->\r\n <fa-icon [icon]=\"'ellipsis-v'\"></fa-icon>\r\n <ion-ripple-effect type=\"unbounded\"></ion-ripple-effect>\r\n</ion-button>", styles: [":host ion-button{width:48px;height:48px;justify-content:center;margin-right:4px;cursor:pointer}:host ion-button fa-icon{text-align:center;justify-content:center;text-overflow:ellipsis;text-transform:none;white-space:nowrap;font-feature-settings:\"kern\" off;font-kerning:none;text-decoration:none;font-size:21px}:host ion-button:hover{color:#fff;background-color:#0006;border-radius:20px}\n"], components: [{ type: i2.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { type: i3.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }, { type: i2.IonRippleEffect, selector: "ion-ripple-effect", inputs: ["type"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
259
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.4", ngImport: i0, type: UiactionbuttonComponent, decorators: [{
260
+ type: Component,
261
+ args: [{ selector: 'app-uiactionbutton', template: "<ion-button (click)=\"onAction()\" [disabled]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\" \r\n *ngIf=\"isMobileScreen() && (!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\"\r\n class=\"ion-activatable ripple-parent\">\r\n <!-- <ion-icon name=\"more\" slot=\"icon-only\"></ion-icon> -->\r\n <fa-icon [icon]=\"'ellipsis-v'\"></fa-icon>\r\n <ion-ripple-effect type=\"unbounded\"></ion-ripple-effect>\r\n</ion-button>", styles: [":host ion-button{width:48px;height:48px;justify-content:center;margin-right:4px;cursor:pointer}:host ion-button fa-icon{text-align:center;justify-content:center;text-overflow:ellipsis;text-transform:none;white-space:nowrap;font-feature-settings:\"kern\" off;font-kerning:none;text-decoration:none;font-size:21px}:host ion-button:hover{color:#fff;background-color:#0006;border-radius:20px}\n"] }]
262
+ }], ctorParameters: function () { return [{ type: i1.FieldService }, { type: i1.WebApiService }, { type: i1.ResourceApiService }, { type: i1.WorkflowService }, { type: i2.ActionSheetController }]; }, propDecorators: { group: [{
263
+ type: Input
264
+ }] } });
265
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWlhY3Rpb25idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvdWlhY3Rpb25idXR0b24vdWlhY3Rpb25idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvdWlhY3Rpb25idXR0b24vdWlhY3Rpb25idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0JBQStCO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUs1Qyw4QkFBOEI7QUFDOUIsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJDLDJDQUEyQztBQUMzQyxPQUFPLEVBRVksb0JBQW9CLEVBQUUsZ0JBQWdCLEVBRXhELE1BQU0saUJBQWlCLENBQUM7Ozs7OztBQVN6QixNQUFNLE9BQU8sdUJBQXVCO0lBU2xDLFlBQ1UsWUFBMEIsRUFDMUIsYUFBNEIsRUFDNUIsa0JBQXNDLEVBQ3RDLGVBQWdDLEVBQ2hDLGVBQXNDO1FBSnRDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLG9CQUFlLEdBQWYsZUFBZSxDQUF1QjtRQVpoRCx5QkFBb0IsR0FBVSxFQUFFLENBQUM7UUFFakMscUJBQWdCLEdBQVksS0FBSyxDQUFDO1FBR2xDLHdCQUFtQixHQUFHLElBQUksb0JBQW9CLEVBQUUsQ0FBQztRQStDMUMsY0FBUyxHQUFHLENBQUMsTUFBZSxFQUFFLEVB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QkFDUCxJQUFJLENBQUMsZUFBZSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztxQkFDL0Q7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsTUFBTTtZQUNSO2dCQUNFLE9BQU8sQ0FBQyxHQUFHLENBQUMsdUJBQXVCLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNsRCxNQUFNO1NBQ1Q7SUFDSCxDQUFDOztvSEFwU1UsdUJBQXVCO3dHQUF2Qix1QkFBdUIsc0ZDeEJwQyxxakJBTWE7MkZEa0JBLHVCQUF1QjtrQkFObkMsU0FBUzsrQkFDRSxvQkFBb0I7a09BTXJCLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qKioqKioqKioqIEFuZ3VsYXIgKioqKioqKioqKi9cclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBEaXJlY3RpdmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJzsgXHJcbmltcG9ydCB7IFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG4vKioqKioqKioqKiBJb25pYyAqKioqKioqKioqL1xyXG5pbXBvcnQgeyBBY3Rpb25TaGVldENvbnRyb2xsZXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XHJcblxyXG4vKioqKioqKioqKiBQbHVnaW4gKioqKioqKioqKi9cclxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuLyoqKioqKioqKiogQ29tcG9uZW50ICYgU2VydmljZSAqKioqKioqKioqL1xyXG5pbXBvcnQgeyBcclxuICAgRmllbGRTZXJ2aWNlLCBXZWJBcGlTZXJ2aWNlLCBSZXNvdXJjZUFwaVNlcnZpY2UsIFdvcmtmbG93U2VydmljZSxcclxuICAgWkdyb3VwLCBaRmllbGQsIFpDb21wb25lbnRQcm9wZXJ0aWVzLCBaQ29tcG9uZW50SGVscGVyLFxyXG4gICBaQ29tcG9uZW50T3V0cHV0RXZlbnRcclxufSBmcm9tICdtbWhnbG9iYWwtemNvcmUnOyBcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC11aWFjdGlvbmJ1dHRvbicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3VpYWN0aW9uYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi91aWFjdGlvbmJ1dHRvbi5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIFVpYWN0aW9uYnV0dG9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBASW5wdXQoKSBncm91cDogWkdyb3VwO1xyXG4gIHRvcFJpZ2h0QWN0aW9uQnV0dG9uOiBhbnlbXSA9IFtdO1xyXG4gIGFjdGlvbkJ0bkxpc3Q6IEFycmF5PFpGaWVsZD47XHJcbiAgaXNXb3JrZmxvd0J1dHRvbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIC8vIHZpc2libGU6Ym9vbGVhbiA9IHRydWU7XHJcbiAgcHJpdmF0ZSBkYXRhOiBhbnk7XHJcbiAgY29tcG9uZW50UHJvcGVydGllcyA9IG5ldyBaQ29tcG9uZW50UHJvcGVydGllcygpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZmllbGRTZXJ2aWNlOiBGaWVsZFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHdlYkFwaVNlcnZpY2U6IFdlYkFwaVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlc291cmNlQXBpU2VydmljZTogUmVzb3VyY2VBcGlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB3b3JrZmxvd1NlcnZpY2U6IFdvcmtmbG93U2VydmljZSxcclxuICAgIHByaXZhdGUgYWN0aW9uU2hlZXRDdHJsOiBBY3Rpb25TaGVldENvbnRyb2xsZXJcclxuICApIHsgfVxyXG5cclxuICAvKioqKioqKioqKioqKioqKioqKiogQ29tbW9uIGZ1bmN0aW9uICoqKioqKioqKioqKioqKioqKioqL1xyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5kYXRhID0gdGhpcy5nZXRGaXJzdHpCdXR0b24odGhpcy5ncm91cC5maWVsZHMpO1xyXG4gICAgLy8gdGhpcy52aXNpYmxlID0gWkNvbXBvbmVudEhlbHBlci5pc1Zpc2libGUoYnV0dG9uRGF0YSk7XHJcblxyXG4gICAgaWYgKHRoaXMuZGF0YSkge1xyXG4gICAgICBaQ29tcG9uZW50SGVscGVyLnNldENvbXBvbmVudFByb3BlcnRpZXModGhpcyk7XHJcbiAgICAgIFpDb21wb25lbnRIZWxwZXIucmVnaXN0ZXJDb21wb25lbnQodGhpcyk7XHJcblxyXG4gICAgICBpZiAoIVpDb21wb25lbnRIZWxwZXIuaXNOdWxsVW5kZWZpbmVkRW1wdHkodGhpcy5kYXRhLldvcmtmbG93Q29kZSkpIHtcclxuICAgICAgICAvLyBoYW5kbGUgYXMgeldvcmtmbG93QnV0dG9uXHJcbiAgICAgICAgdGhpcy5pc1dvcmtmbG93QnV0dG9uID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmxvYWRXb3JrZmxvd0J1dHRvbigpO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIC8vIGhhbmRsZSBhcyB6QnV0dG9uXHJcbiAgICAgICAgY29uc3QgZmllbGQkID0gdGhpcy5maWVsZFNlcnZpY2UuZ2V0Rm9ybUZpZWxkQ29kZShcclxuICAgICAgICAgIHRoaXMuZGF0YS5WYWx1ZSxcclxuICAgICAgICAgIFwiRm9ybUZpZWxkXCIsXHJcbiAgICAgICAgICBudWxsLFxyXG4gICAgICAgICAgbnVsbFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgZmllbGQkLnN1YnNjcmliZSgoZGF0YTogQXJyYXk8WkZpZWxkPikgPT4ge1xyXG4gICAgICAgICAgdGhpcy5hY3Rpb25CdG5MaXN0ID0gZGF0YTtcclxuICAgICAgICAgIHRoaXMucmVsb2FkQnV0dG9uTGlzdCgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpc01vYmlsZVNjcmVlbigpIHtcclxuICAgIGNvbnN0IHYgPSBaQ29tcG9uZW50SGVscGVyLmlzTW9iaWxlU2NyZWVuKCk7XHJcbiAgICByZXR1cm4gdjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRFbmFibGUgPSAoc3RhdHVzOiBib29sZWFuKSA9PiB7XHJcbiAgICB0aGlzLmNvbXBvbmVudFByb3BlcnRpZXMuaXNSZWFkT25seSA9ICFzdGF0dXM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0VmlzaWJsZSA9IChzdGF0dXM6IGJvb2xlYW4pID0+IHtcclxuICAgIHRoaXMuY29tcG9uZW50UHJvcGVydGllcy5pc1Zpc2libGUgPSBzdGF0dXM7XHJcbiAgICB0aGlzLmRhdGEuVmlzaWJsZSA9IHN0YXR1cztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRSZXF1aXJlID0gKHN0YXR1czogYm9vbGVhbikgPT4ge1xyXG4gICAgdGhpcy5jb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVxdWlyZWQgPSBzdGF0dXM7XHJcbiAgICBaQ29tcG9uZW50SGVscGVyLmNoYW5nZVZhbGlkYXRvcihzdGF0dXMsIHRoaXMuZ3JvdXAsIHRoaXMuZGF0YS5WYWx1ZSwgdGhpcy5jb21wb25lbnRQcm9wZXJ0aWVzLCBWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNCdG5WaXNpYmxlKGZpZWxkRXhwcikge1xyXG4gICAgaWYgKGZpZWxkRXhwciAhPT0gZmFsc2UgJiYgIWZpZWxkRXhwcikge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgIGNvbnN0IHYgPSBaQ29tcG9uZW50SGVscGVyLmdldEdyb3VwRXZhbFZhbHVlLmNhbGwodGhpcywgZmllbGRFeHByKTtcclxuICAgIHJldHVybiB2O1xyXG4gIH1cclxuXHJcbiAgLyoqKioqKioqKioqKioqKioqKioqIHpCdXR0b24gKioqKioqKioqKioqKioqKioqKiovXHJcbiAgZ2V0Rmlyc3R6QnV0dG9uKGRhdGE6IGFueVtdKSB7XHJcbiAgICAvLyBkYXRhLmZvckVhY2goZCA9PiB7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRhdGEubGVuZ3RoIC0gMTsgaSsrKSB7XHJcbiAgICAgIGlmIChkYXRhW2ldLlR5cGUgPT09IFwiemJ1dHRvbnNcIiB8fCBkYXRhW2ldLlR5cGUgPT09IFwiendvcmtmbG93YnV0dG9uc1wiKSB7XHJcbiAgICAgICAgcmV0dXJuIGRhdGFbaV07XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZGF0YVtpXS5WYWx1ZSkpIHtcclxuICAgICAgICAgIHRoaXMuZ2V0Rmlyc3R6QnV0dG9uKGRhdGFbaV0uVmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICBvbkFjdGlvbigpIHtcclxuICAgIGlmICh0aGlzLmlzV29ya2Zsb3dCdXR0b24pIHtcclxuICAgICAgLy90aGlzLmxvYWRXb3JrZmxvd0J1dHRvbigpO1xyXG4gICAgICB0aGlzLmFjdGlvblNoZWV0Q3RybFxyXG4gICAgICAgIC5jcmVhdGUoe1xyXG4gICAgICAgICAgaGVhZGVyOiBcIkNob29zZSBhbiBBY3Rpb25cIixcclxuICAgICAgICAgIGJ1dHRvbnM6IHRoaXMudG9wUmlnaHRBY3Rpb25CdXR0b25cclxuICAgICAgICB9KVxyXG4gICAgICAgIC50aGVuKGFjdGlvblNoZWV0RWwgPT4ge1xyXG4gICAgICAgICAgYWN0aW9uU2hlZXRFbC5wcmVzZW50KCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgLy90aGlzLnJlbG9hZEJ1dHRvbkxpc3QoKTtcclxuICAgICAgdGhpcy5hY3Rpb25TaGVldEN0cmxcclxuICAgICAgICAuY3JlYXRlKHtcclxuICAgICAgICAgIGhlYWRlcjogXCJDaG9vc2UgYW4gQWN0aW9uXCIsXHJcbiAgICAgICAgICBidXR0b25zOiB0aGlzLnRvcFJpZ2h0QWN0aW9uQnV0dG9uXHJcbiAgICAgICAgfSlcclxuICAgICAgICAudGhlbihhY3Rpb25TaGVldEVsID0+IHtcclxuICAgICAgICAgIGFjdGlvblNoZWV0RWwucHJlc2VudCgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZWxvYWRCdXR0b25MaXN0KCkge1xyXG4gICAgdGhpcy50b3BSaWdodEFjdGlvbkJ1dHRvbiA9IFtdO1xyXG4gICAgdGhpcy5hY3Rpb25CdG5MaXN0LmZvckVhY2goKGJ1dHRvbjogWkZpZWxkKSA9PiB7XHJcbiAgICAgIGNvbnN0IHZpc2libGUgPSBaQ29tcG9uZW50SGVscGVyLmdldEdyb3VwRXZhbFZhbHVlLmNhbGwoXHJcbiAgICAgICAgdGhpcyxcclxuICAgICAgICBidXR0b24uVmlzaWJsZSxcclxuICAgICAgICB0aGlzLmdyb3VwXHJcbiAgICAgICk7XHJcbiAgICAgIGlmICh2aXNpYmxlICE9PSBmYWxzZSkge1xyXG4gICAgICAgIGNvbnN0IGxhYmVsID0gdGhpcy5nZXRCdXR0b25MYWJlbChidXR0b24pO1xyXG4gICAgICAgIGNvbnN0IGJ1dHRvblJvbGUgPSB0aGlzLmdldEJ1dHRvblJvbGUoYnV0dG9uLCBsYWJlbCk7XHJcbiAgICAgICAgdGhpcy50b3BSaWdodEFjdGlvbkJ1dHRvbi5wdXNoKHtcclxuICAgICAgICAgIHRleHQ6IGxhYmVsLFxyXG4gICAgICAgICAgaGFuZGxlcjogKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmJ1dHRvbkNsaWNrKGJ1dHRvbik7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgcm9sZTogYnV0dG9uUm9sZVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYnV0dG9uQ2xpY2soYnV0dG9uOiBhbnkpIHtcclxuICAgIC8vIGRlYnVnZ2VyO1xyXG4gICAgdGhpcy5ncm91cFsnRGlzbWlzc1R5cGUnXSA9IGJ1dHRvbi5EaXNtaXNzVHlwZTtcclxuICAgIHRoaXMuZ3JvdXAuc3ViamVjdC5uZXh0KHtcclxuICAgICAgdHlwZTogXCJidXR0b25DbGlja1wiLFxyXG4gICAgICB0YXJnZXQ6IGJ1dHRvbi5DbGlja0V2ZW50LFxyXG4gICAgICBkYXRhOiBudWxsXHJcbiAgICB9IGFzIFpDb21wb25lbnRPdXRwdXRFdmVudCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEJ1dHRvbkxhYmVsKGJ1dHRvbjogYW55KSB7XHJcbiAgICBsZXQgYnV0dG9uTGFiZWwgPSBidXR0b24uTGFiZWw7XHJcbiAgICBpZiAoIWJ1dHRvbkxhYmVsKSB7XHJcbiAgICAgIGJ1dHRvbkxhYmVsID0gYnV0dG9uLk5hbWU7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGxhYmVsRXhwciA9IGJ1dHRvbkxhYmVsLm1hdGNoKC9ee3suKn19JC9naSk7XHJcbiAgICBpZiAobGFiZWxFeHByKSB7XHJcbiAgICAgIGxhYmVsRXhwciA9IGxhYmVsRXhwclswXS5zbGljZSgyLCAtMik7XHJcbiAgICAgIGNvbnN0IGxhYmVsID0gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cFZhbHVlKGxhYmVsRXhwciwgdGhpcy5ncm91cCk7XHJcbiAgICAgIHJldHVybiBsYWJlbDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBidXR0b25MYWJlbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0QnV0dG9uUm9sZShidXR0b246IGFueSwgbGFiZWw6IHN0cmluZykge1xyXG4gICAgLy8gY29uc29sZS5sb2coXCJnZXRCdXR0b25Sb2xlOiBcIiwgbGFiZWwsIGJ1dHRvbi5DbGlja0V2ZW50KTtcclxuICAgIGNvbnN0IGxvd2VyQ2FzZUxhYmVsID0gbGFiZWwudG9Mb3dlckNhc2UoKTtcclxuICAgIGlmIChcclxuICAgICAgbG93ZXJDYXNlTGFiZWwuaW5kZXhPZihcImNhbmNlbFwiKSAhPT0gLTEgfHxcclxuICAgICAgbG93ZXJDYXNlTGFiZWwuaW5kZXhPZihcImNsb3NlXCIpICE9PSAtMVxyXG4gICAgKSB7XHJcbiAgICAgIHJldHVybiBcImNhbmNlbFwiO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICAvKioqKioqKioqKioqKioqKioqKiogeldvcmtmbG93QnV0dG9uICoqKioqKioqKioqKioqKioqKioqL1xyXG4gIC8vIFVSTCByZXF1aXJlZFxyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb24sbm8tdW5kZXJzY29yZS1kYW5nbGUsaWQtYmxhY2tsaXN0LGlkLW1hdGNoXHJcbiAgZTF3ZnNfd2ZjR2V0V29ya2Zsb3dCdXR0b25VUkwgPSB0aGlzLnJlc291cmNlQXBpU2VydmljZS5nZXRVUkwoXCJlMXdmc193ZmNHZXRXb3JrZmxvd0J1dHRvblVSTFwiKTtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uLG5vLXVuZGVyc2NvcmUtZGFuZ2xlLGlkLWJsYWNrbGlzdCxpZC1tYXRjaFxyXG4gIGUxd2ZzX3dmY19nZXRXb3JrZmxvd0luaXRpYWxTdGF0dXNVUkwgPSB0aGlzLnJlc291cmNlQXBpU2VydmljZS5nZXRVUkwoXCJlMXdmc193ZmNfZ2V0V29ya2Zsb3dJbml0aWFsU3RhdHVzVVJMXCIpO1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb24sIG5vLXVuZGVyc2NvcmUtZGFuZ2xlLCBpZC1ibGFja2xpc3QsIGlkLW1hdGNoXHJcbiAgZTF3ZnNfd2ZjX2dldERvY3VtZW50U3RhdHVzVVJMID0gdGhpcy5yZXNvdXJjZUFwaVNlcnZpY2UuZ2V0VVJMKFwiZTF3ZnNfd2ZjX2dldERvY3VtZW50U3RhdHVzVVJMXCIpO1xyXG5cclxuXHJcbiAgcHJpdmF0ZSBsb2FkV29ya2Zsb3dCdXR0b24oKSB7XHJcbiAgICAvLyAgYWN0aW9uQnRuTGlzdDogQXJyYXk8WkZpZWxkPjtcclxuICAgIHRoaXMudG9wUmlnaHRBY3Rpb25CdXR0b24gPSBbXTtcclxuXHJcbiAgICAvLyBHZXQgV0ZTX0RvY3VtZW50SWQgaWYgYW55LlxyXG4gICAgbGV0IGRvY3VtZW50SWQgPSBudWxsO1xyXG4gICAgaWYgKHRoaXMuZ3JvdXAuek1vZGVsKSB7XHJcbiAgICAgIGRvY3VtZW50SWQgPSB0aGlzLmdyb3VwLnpNb2RlbFsnV0ZTX0RvY3VtZW50SWQnXTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBTZXQgdGhlIGRvY3VtZW50SWQgdG8gdGhlIHNlcnZpY2VcclxuICAgIHRoaXMud29ya2Zsb3dTZXJ2aWNlLmFwcGVuZFdGU19Eb2N1bWVudHNJbmZvKHRoaXMuZGF0YS5Xb3JrZmxvd0NvZGUsIGRvY3VtZW50SWQpO1xyXG5cclxuICAgIHRyeSB7XHJcbiAgICAgIC8vIFNldCBwYXJhbSBmb3IgZmllbGRcclxuICAgICAgY29uc3QgZmllbGQkID0gdGhpcy53b3JrZmxvd1NlcnZpY2UuZ2V0V29ya2Zsb3dCdXR0b25zRmllbGQoXHJcbiAgICAgICAgdGhpcy5kYXRhLldvcmtmbG93Q29kZSxcclxuICAgICAgICB0aGlzLmUxd2ZzX3dmY0dldFdvcmtmbG93QnV0dG9uVVJMLFxyXG4gICAgICAgIFN0cmluZyhmYWxzZSlcclxuICAgICAgKTtcclxuXHJcbiAgICAgIGZpZWxkJC5zdWJzY3JpYmUoZGF0YSA9PiB7XHJcbiAgICAgICAgZGF0YS5mb3JFYWNoKChidXR0b246IGFueSkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgbGFiZWwgPSB0aGlzLmdldEJ1dHRvbkxhYmVsKGJ1dHRvbik7XHJcbiAgICAgICAgICBjb25zdCBhdHRyaWJ1dGVzID0gSlNPTi5wYXJzZShidXR0b24uQXR0cmlidXRlcyk7XHJcbiAgICAgICAgICBjb25zdCBidXR0b25MYWJlbCA9IGF0dHJpYnV0ZXMuTGFiZWwgfHwgbGFiZWw7XHJcbiAgICAgICAgICBjb25zdCBfaXNWaXNpYmxlID0gdGhpcy5pc0J0blZpc2libGUoYnV0dG9uLlZpc2libGUpO1xyXG5cclxuICAgICAgICAgIGlmIChfaXNWaXNpYmxlKSB7XHJcbiAgICAgICAgICAgIHRoaXMudG9wUmlnaHRBY3Rpb25CdXR0b24ucHVzaCh7XHJcbiAgICAgICAgICAgICAgdGV4dDogYnV0dG9uTGFiZWwsXHJcbiAgICAgICAgICAgICAgZmllbGRBdHRyaWJ1dGU6IGJ1dHRvbixcclxuICAgICAgICAgICAgICBpY29uTmFtZTogYXR0cmlidXRlcy5JY29uLFxyXG4gICAgICAgICAgICAgIGhhbmRsZXI6ICh5KSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLndvcmtmbG93QnV0dG9uQ2xpY2soYnV0dG9uKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgLy9aQ29tcG9uZW50SGVscGVyLmNvbGxlY3RXb3JrZmxvd0J1dHRvbih0aGlzLmdyb3VwLCB0aGlzLmRhdGEuV29ya2Zsb3dDb2RlLCBidXR0b25MYWJlbCwgYnV0dG9uLCBhdHRyaWJ1dGVzLCBtYXBwZWRJbmZvKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgICBpZiAoIXRoaXMuZGF0YS5EaXNhYmxlU3luY1dvcmtmbG93U3RhdHVzKSB7XHJcbiAgICAgICAgLy8gU2V0IGRlZmF1bHQgc3RhdHVzXHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9kb3Qtbm90YXRpb25cclxuICAgICAgICBpZiAoIXRoaXMuZ3JvdXAuek1vZGVsW1wiV0ZTX1N0YXR1c05hbWVcIl0pIHtcclxuICAgICAgICAgIGNvbnN0IHBhcmFtcyA9IHtcclxuICAgICAgICAgICAgXCJXb3JrZmxvd01hc3RlckNvZGVcIjogdGhpcy5kYXRhLldvcmtmbG93Q29kZVxyXG4gICAgICAgICAgfTtcclxuXHJcbiAgICAgICAgICByZXR1cm4gdGhpcy53ZWJBcGlTZXJ2aWNlLmh0dHBQb3N0JCh0aGlzLmUxd2ZzX3dmY19nZXRXb3JrZmxvd0luaXRpYWxTdGF0dXNVUkwsIHBhcmFtcykucGlwZShcclxuICAgICAgICAgICAgbWFwKHJlcyA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKHJlcy5EYXRhKSB7XHJcbiAgICAgICAgICAgICAgICBaQ29tcG9uZW50SGVscGVyLnByZXNldE1vZGVsVmFsdWUoXCJXRlNfU3RhdHVzSWRcIiwgcmVzLkRhdGFbXCJJZFwiXSwgdGhpcy5ncm91cCk7XHJcbiAgICAgICAgICAgICAgICBaQ29tcG9uZW50SGVscGVyLnByZXNldE1vZGVsVmFsdWUoXCJXRlNfU3RhdHVzTmFtZVwiLCByZXMuRGF0YVtcIk5hbWVcIl0sIHRoaXMuZ3JvdXApO1xyXG4gICAgICAgICAgICAgICAgWkNvbXBvbmVudEhlbHBlci5wcmVzZXRNb2RlbFZhbHVlKFwiV0ZTX1N0YXR1c0NvZGVcIiwgcmVzLkRhdGFbXCJDb2RlXCJdLCB0aGlzLmdyb3VwKTtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLndvcmtmbG93U2VydmljZS5zZXRDdXJyZW50RG9jdW1lbnRTdGF0dXMocmVzLkRhdGEpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICkuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIC8vIFdoZW4gbG9hZGluZyBhbHNvIHRvIGdldCBjdXJyZW50IFN0YXR1cyBJbmZvcm1hdGlvbiBpZiBhbnkuXHJcbiAgICAgICAgICBjb25zdCBkb2NJbmZvUGFyYW0gPSB7XHJcbiAgICAgICAgICAgIFwiV29ya2Zsb3dNYXN0ZXJDb2RlXCI6IHRoaXMuZGF0YS5Xb3JrZmxvd0NvZGUsXHJcbiAgICAgICAgICAgIFwiRG9jdW1lbnRJZFwiOiBkb2N1bWVudElkLFxyXG4gICAgICAgICAgfTtcclxuXHJcbiAgICAgICAgICB0aGlzLndlYkFwaVNlcnZpY2UuaHR0cFBvc3QkKHRoaXMuZTF3ZnNfd2ZjX2dldERvY3VtZW50U3RhdHVzVVJMLCBkb2NJbmZvUGFyYW0pLnBpcGUoXHJcbiAgICAgICAgICAgIG1hcChyZXMgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMud29ya2Zsb3dTZXJ2aWNlLnNldEN1cnJlbnREb2N1bWVudFN0YXR1cyhyZXMpO1xyXG4gICAgICAgICAgICAgIGlmIChyZXMuRGF0YSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy53b3JrZmxvd1NlcnZpY2Uuc2V0Q3VycmVudERvY3VtZW50U3RhdHVzKHJlcy5EYXRhKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICApLnN1YnNjcmliZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoXCJlcnJvcjogXCIsIGVycm9yKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHdvcmtmbG93QnV0dG9uQ2xpY2soYnV0dG9uOiBhbnkpIHtcclxuICAgIC8vIFR5cGUgMSA9PSBmdW5jdGlvbmFsO1xyXG4gICAgLy8gVHlwZSAyID09IEdPVE87XHJcbiAgICBjb25zdCBhdHRyaWJ1dGVzID0gSlNPTi5wYXJzZShidXR0b24uQXR0cmlidXRlcyk7XHJcbiAgICBzd2l0Y2ggKGJ1dHRvbi5UeXBlQ29kZS50b1VwcGVyQ2FzZSgpKSB7XHJcbiAgICAgIGNhc2UgXCJGVU5DVElPTlwiOlxyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiRnVuY3Rpb25hbCBCdXR0b246IFwiLCBidXR0b24uTmFtZSk7XHJcbiAgICAgICAgdGhpcy53b3JrZmxvd1NlcnZpY2UuZnVuY3Rpb25hbEJ1dHRvbl9PbkNsaWNrKGF0dHJpYnV0ZXMsIHRoaXMuZ3JvdXApO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFwiR09UT1wiOlxyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiR09UTyBCdXR0b246IFwiLCBidXR0b24uTmFtZSk7XHJcbiAgICAgICAgdGhpcy53b3JrZmxvd1NlcnZpY2UuZ290b0J1dHRvbl9PbmNsaWNrKGJ1dHRvbiwgdGhpcy5kYXRhLCBhdHRyaWJ1dGVzLCB0aGlzLmdyb3VwLCBmYWxzZSkuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgICAgICB0aGlzLmxvYWRXb3JrZmxvd0J1dHRvbigpO1xyXG4gICAgICAgICAgaWYgKHJlcykge1xyXG4gICAgICAgICAgICB0aGlzLndvcmtmbG93U2VydmljZS50cmlnZ2VyU2VuZEVtYWlsKHRoaXMuZ3JvdXApLnN1YnNjcmliZSgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiSW52YWxpZCBCdXR0b24gVHlwZS4gXCIsIGJ1dHRvbi5OYW1lKTtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGlvbi1idXR0b24gKGNsaWNrKT1cIm9uQWN0aW9uKClcIiBbZGlzYWJsZWRdPVwiKCEhY29tcG9uZW50UHJvcGVydGllcy5pc1JlYWRPbmx5RmllbGQgPyBncm91cFtjb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVhZE9ubHlGaWVsZF0gOiBjb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVhZE9ubHkpXCIgXHJcbiAgKm5nSWY9XCJpc01vYmlsZVNjcmVlbigpICYmICghIWNvbXBvbmVudFByb3BlcnRpZXMuaXNWaXNpYmxlRmllbGQgPyBncm91cFtjb21wb25lbnRQcm9wZXJ0aWVzLmlzVmlzaWJsZUZpZWxkXSA6IGNvbXBvbmVudFByb3BlcnRpZXMuaXNWaXNpYmxlKVwiXHJcbiAgY2xhc3M9XCJpb24tYWN0aXZhdGFibGUgcmlwcGxlLXBhcmVudFwiPlxyXG4gIDwhLS0gPGlvbi1pY29uIG5hbWU9XCJtb3JlXCIgc2xvdD1cImljb24tb25seVwiPjwvaW9uLWljb24+IC0tPlxyXG4gIDxmYS1pY29uIFtpY29uXT1cIidlbGxpcHNpcy12J1wiPjwvZmEtaWNvbj5cclxuICA8aW9uLXJpcHBsZS1lZmZlY3QgdHlwZT1cInVuYm91bmRlZFwiPjwvaW9uLXJpcHBsZS1lZmZlY3Q+XHJcbjwvaW9uLWJ1dHRvbj4iXX0=
@@ -0,0 +1,67 @@
1
+ /********** Angular **********/
2
+ import { Component, Input } from '@angular/core';
3
+ /********** Ionic **********/
4
+ /********** Plugin **********/
5
+ /********** Component & Service **********/
6
+ import { ZComponentHelper } from 'mmhglobal-zcore';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@angular/router";
9
+ import * as i2 from "mmhglobal-zcore";
10
+ import * as i3 from "@ionic/angular";
11
+ import * as i4 from "@fortawesome/angular-fontawesome";
12
+ import * as i5 from "@progress/kendo-angular-layout";
13
+ import * as i6 from "@angular/common";
14
+ export class UiappmenucontentComponent {
15
+ constructor(router, menuService, authService, zcoreService) {
16
+ this.router = router;
17
+ this.menuService = menuService;
18
+ this.authService = authService;
19
+ this.zcoreService = zcoreService;
20
+ this.colorArray = [
21
+ { stroke: '#F59600', color: '#F59600' },
22
+ { stroke: '#F5C800', color: '#F5C800' },
23
+ { stroke: '#F5EF00', color: '#F5EF00' },
24
+ { stroke: '#8FE300', color: '#8FE300' },
25
+ { stroke: '#00B33D', color: '#00B33D' },
26
+ { stroke: '#095D9D', color: '#095D9D' },
27
+ { stroke: '#2116AA', color: '#2116AA' },
28
+ { stroke: '#6509A4', color: '#6509A4' },
29
+ { stroke: '#C4006F', color: '#C4006F' },
30
+ { stroke: '#F52B00', color: '#F52B00' }
31
+ ];
32
+ }
33
+ ngOnInit() {
34
+ }
35
+ getDivClass(item) {
36
+ return item.Type === 'dropdown-submenu' ? 'flex-show' : 'col-xs-4 col-sm-4 col-md-3 col-xl-2';
37
+ }
38
+ getMenuList(item) {
39
+ return item.Type === 'dropdown-submenu' ? this.menuService.getMenuFolder(item.URL) : null;
40
+ }
41
+ menuOnClick(pathName, appClientPath) {
42
+ const startupPage = this.zcoreService.getEnvironment().startUpPage;
43
+ if (appClientPath && startupPage.toLocaleLowerCase() == 'launcher') {
44
+ ZComponentHelper.openAppClientPath(pathName, appClientPath, this.authService);
45
+ return false;
46
+ }
47
+ else {
48
+ this.router.navigate([pathName]);
49
+ }
50
+ }
51
+ setMapInput(key, value) {
52
+ const mapInput = document.createElement('input');
53
+ mapInput.type = 'hidden';
54
+ mapInput.name = key;
55
+ mapInput.setAttribute('value', value);
56
+ return mapInput;
57
+ }
58
+ }
59
+ UiappmenucontentComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.4", ngImport: i0, type: UiappmenucontentComponent, deps: [{ token: i1.Router }, { token: i2.MenuService }, { token: i2.AuthService }, { token: i2.ZCoreService }], target: i0.ɵɵFactoryTarget.Component });
60
+ UiappmenucontentComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.4", type: UiappmenucontentComponent, selector: "app-uiappmenucontent", inputs: { items: "items" }, ngImport: i0, template: "<ion-grid>\r\n <ion-row>\r\n <ion-col [ngClass]=\"getDivClass(item)\" *ngFor=\"let item of items; index as i\">\r\n <div *ngIf=\"item.Type !== 'dropdown-submenu'\" class=\"menu-btn ion-activatable ripple-parent\" (click)=\"menuOnClick(item.URL, item.AppClientPath)\">\r\n <ion-label class=\"menu-btn-label menu-btn-icon\">\r\n <!-- <fa-icon [icon]=\"item.Icon\"></fa-icon> -->\r\n <fa-stack size=\"1x\">\r\n <fa-icon [icon]=\"['fas', 'square']\" stackItemSize=\"2x\"\r\n [styles]=\"colorArray[i%10]\"></fa-icon>\r\n <fa-icon [icon]=\"['fas', item.Icon ]\" [inverse]=\"true\" stackItemSize=\"1x\"\r\n transform=\"grow-2\"></fa-icon>\r\n </fa-stack>\r\n <ion-badge color=\"danger\" class=\"pending-counter\"\r\n *ngIf=\"item['PendingCounter'] && item['PendingCounter'] > 0\">\r\n {{item['PendingCounter']}}\r\n </ion-badge>\r\n </ion-label>\r\n <ion-label class=\"menu-btn-label\">{{ item.Label }}</ion-label>\r\n <ion-ripple-effect></ion-ripple-effect>\r\n </div>\r\n <kendo-panelbar *ngIf=\"item.Type === 'dropdown-submenu'\" keepItemContent=\"true\">\r\n <kendo-panelbar-item [title]=\"item.Label\" [expanded]=\"true\" icon=\"folder\">\r\n <ng-template kendoPanelBarContent>\r\n <app-uiappmenucontent [items]=\"getMenuList(item)\"></app-uiappmenucontent>\r\n </ng-template>\r\n </kendo-panelbar-item>\r\n </kendo-panelbar>\r\n </ion-col>\r\n </ion-row>\r\n</ion-grid>\r\n", styles: [".menu-btn{display:flex;flex-flow:column;justify-content:center;align-items:stretch;background-color:#fff;padding:10px 5px;border:1px solid #ccc;border-radius:5px;min-height:100px;cursor:pointer}.menu-btn:hover{color:#fff;background-color:#0006}.ripple-parent{position:relative;overflow:hidden}.menu-btn-label{flex:1;text-align:center;font-size:12px}.menu-btn-icon{zoom:2}.pending-counter{background-color:#ff243a;border-radius:1em;box-sizing:border-box;color:#fff;height:1.5em;line-height:1;max-width:5em;min-width:1.5em;overflow:hidden;padding:.25em;right:2px;text-overflow:ellipsis;top:2px;transform:scale(.25);transform-origin:top right;display:inline-block;position:absolute;text-align:center;font-size:2.2em}\n"], components: [{ type: i3.IonGrid, selector: "ion-grid", inputs: ["fixed"] }, { type: i3.IonRow, selector: "ion-row" }, { type: i3.IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { type: i3.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { type: i4.FaStackComponent, selector: "fa-stack", inputs: ["size"] }, { type: i4.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }, { type: i3.IonBadge, selector: "ion-badge", inputs: ["color", "mode"] }, { type: i3.IonRippleEffect, selector: "ion-ripple-effect", inputs: ["type"] }, { type: i5.PanelBarComponent, selector: "kendo-panelbar", inputs: ["expandMode", "selectable", "animate", "height", "keepItemContent", "items"], outputs: ["stateChange", "select", "expand", "collapse"], exportAs: ["kendoPanelbar"] }, { type: i5.PanelBarItemComponent, selector: "kendo-panelbar-item", inputs: ["id", "icon", "iconClass", "imageUrl", "disabled", "selected", "expanded", "title", "content", "items", "template"], exportAs: ["kendoPanelbarItem"] }, { type: UiappmenucontentComponent, selector: "app-uiappmenucontent", inputs: ["items"] }], directives: [{ type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.FaStackItemSizeDirective, selector: "fa-icon[stackItemSize],fa-duotone-icon[stackItemSize]", inputs: ["stackItemSize", "size"] }, { type: i5.PanelBarContentDirective, selector: "[kendoPanelBarContent]" }] });
61
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.4", ngImport: i0, type: UiappmenucontentComponent, decorators: [{
62
+ type: Component,
63
+ args: [{ selector: 'app-uiappmenucontent', template: "<ion-grid>\r\n <ion-row>\r\n <ion-col [ngClass]=\"getDivClass(item)\" *ngFor=\"let item of items; index as i\">\r\n <div *ngIf=\"item.Type !== 'dropdown-submenu'\" class=\"menu-btn ion-activatable ripple-parent\" (click)=\"menuOnClick(item.URL, item.AppClientPath)\">\r\n <ion-label class=\"menu-btn-label menu-btn-icon\">\r\n <!-- <fa-icon [icon]=\"item.Icon\"></fa-icon> -->\r\n <fa-stack size=\"1x\">\r\n <fa-icon [icon]=\"['fas', 'square']\" stackItemSize=\"2x\"\r\n [styles]=\"colorArray[i%10]\"></fa-icon>\r\n <fa-icon [icon]=\"['fas', item.Icon ]\" [inverse]=\"true\" stackItemSize=\"1x\"\r\n transform=\"grow-2\"></fa-icon>\r\n </fa-stack>\r\n <ion-badge color=\"danger\" class=\"pending-counter\"\r\n *ngIf=\"item['PendingCounter'] && item['PendingCounter'] > 0\">\r\n {{item['PendingCounter']}}\r\n </ion-badge>\r\n </ion-label>\r\n <ion-label class=\"menu-btn-label\">{{ item.Label }}</ion-label>\r\n <ion-ripple-effect></ion-ripple-effect>\r\n </div>\r\n <kendo-panelbar *ngIf=\"item.Type === 'dropdown-submenu'\" keepItemContent=\"true\">\r\n <kendo-panelbar-item [title]=\"item.Label\" [expanded]=\"true\" icon=\"folder\">\r\n <ng-template kendoPanelBarContent>\r\n <app-uiappmenucontent [items]=\"getMenuList(item)\"></app-uiappmenucontent>\r\n </ng-template>\r\n </kendo-panelbar-item>\r\n </kendo-panelbar>\r\n </ion-col>\r\n </ion-row>\r\n</ion-grid>\r\n", styles: [".menu-btn{display:flex;flex-flow:column;justify-content:center;align-items:stretch;background-color:#fff;padding:10px 5px;border:1px solid #ccc;border-radius:5px;min-height:100px;cursor:pointer}.menu-btn:hover{color:#fff;background-color:#0006}.ripple-parent{position:relative;overflow:hidden}.menu-btn-label{flex:1;text-align:center;font-size:12px}.menu-btn-icon{zoom:2}.pending-counter{background-color:#ff243a;border-radius:1em;box-sizing:border-box;color:#fff;height:1.5em;line-height:1;max-width:5em;min-width:1.5em;overflow:hidden;padding:.25em;right:2px;text-overflow:ellipsis;top:2px;transform:scale(.25);transform-origin:top right;display:inline-block;position:absolute;text-align:center;font-size:2.2em}\n"] }]
64
+ }], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.MenuService }, { type: i2.AuthService }, { type: i2.ZCoreService }]; }, propDecorators: { items: [{
65
+ type: Input
66
+ }] } });
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWlhcHBtZW51Y29udGVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tbWhnbG9iYWwtZHluYW1pY2Zvcm0vc3JjL2xpYi91aWFwcG1lbnVjb250ZW50L3VpYXBwbWVudWNvbnRlbnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvdWlhcHBtZW51Y29udGVudC91aWFwcG1lbnVjb250ZW50LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtCQUErQjtBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd6RCw2QkFBNkI7QUFFN0IsOEJBQThCO0FBRTlCLDJDQUEyQztBQUMzQyxPQUFPLEVBQTJDLGdCQUFnQixFQUFnQixNQUFNLGlCQUFpQixDQUFDOzs7Ozs7OztBQVExRyxNQUFNLE9BQU8seUJBQXlCO0lBa0JwQyxZQUNVLE1BQWMsRUFDZCxXQUF3QixFQUN4QixXQUF3QixFQUN4QixZQUEwQjtRQUgxQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFuQnBDLGVBQVUsR0FBVTtZQUNsQixFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRTtZQUV2QyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRTtZQUN2QyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRTtZQUN2QyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRTtZQUN2QyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRTtZQUN2QyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRTtZQUN2QyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRTtZQUV2QyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRTtZQUN2QyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRTtZQUN2QyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRTtTQUN4QyxDQUFDO0lBT0UsQ0FBQztJQUVMLFFBQVE7SUFDUixDQUFDO0lBRU0sV0FBVyxDQUFDLElBQUk7UUFDckIsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLHFDQUFxQyxDQUFDO0lBQ2hHLENBQUM7SUFFTSxXQUFXLENBQUMsSUFBSTtRQUNyQixPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssa0JBQWtCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQzVGLENBQUM7SUFFTSxXQUFXLENBQUMsUUFBZ0IsRUFBRSxhQUFzQjtRQUN6RCxNQUFNLFdBQVcsR0FBVyxJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWMsRUFBRSxDQUFDLFdBQVcsQ0FBQztRQUUzRSxJQUFJLGFBQWEsSUFBSSxXQUFXLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxVQUFVLEVBQUU7WUFDbEUsZ0JBQWdCLENBQUMsaUJBQWlCLENBQUMsUUFBUSxFQUFFLGFBQWEsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDOUUsT0FBTyxLQUFLLENBQUM7U0FDZDthQUNJO1lBQ0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1NBQ2xDO0lBQ0gsQ0FBQztJQUVPLFdBQVcsQ0FBQyxHQUFXLEVBQUUsS0FBYTtRQUM1QyxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pELFFBQVEsQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLFFBQVEsQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDO1FBQ3BCLFFBQVEsQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRXRDLE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7O3NIQXZEVSx5QkFBeUI7MEdBQXpCLHlCQUF5Qix3RkNqQnRDLDJrREE4QkEsdW1FRGJhLHlCQUF5QjsyRkFBekIseUJBQXlCO2tCQUxyQyxTQUFTOytCQUNFLHNCQUFzQjs0S0FLdkIsS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLyoqKioqKioqKiogQW5ndWxhciAqKioqKioqKioqL1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuXHJcbi8qKioqKioqKioqIElvbmljICoqKioqKioqKiovXHJcblxyXG4vKioqKioqKioqKiBQbHVnaW4gKioqKioqKioqKi9cclxuXHJcbi8qKioqKioqKioqIENvbXBvbmVudCAmIFNlcnZpY2UgKioqKioqKioqKi9cclxuaW1wb3J0IHsgT0F1dGhNZW51SXRlbSwgTWVudVNlcnZpY2UsIEF1dGhTZXJ2aWNlLCBaQ29tcG9uZW50SGVscGVyLCBaQ29yZVNlcnZpY2UgfSBmcm9tICdtbWhnbG9iYWwtemNvcmUnO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLXVpYXBwbWVudWNvbnRlbnQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi91aWFwcG1lbnVjb250ZW50LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi91aWFwcG1lbnVjb250ZW50LmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVaWFwcG1lbnVjb250ZW50Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBASW5wdXQoKSBpdGVtczogQXJyYXk8T0F1dGhNZW51SXRlbT47XHJcblxyXG4gIGNvbG9yQXJyYXk6IGFueVtdID0gW1xyXG4gICAgeyBzdHJva2U6ICcjRjU5NjAwJywgY29sb3I6ICcjRjU5NjAwJyB9LFxyXG5cclxuICAgIHsgc3Ryb2tlOiAnI0Y1QzgwMCcsIGNvbG9yOiAnI0Y1QzgwMCcgfSxcclxuICAgIHsgc3Ryb2tlOiAnI0Y1RUYwMCcsIGNvbG9yOiAnI0Y1RUYwMCcgfSxcclxuICAgIHsgc3Ryb2tlOiAnIzhGRTMwMCcsIGNvbG9yOiAnIzhGRTMwMCcgfSxcclxuICAgIHsgc3Ryb2tlOiAnIzAwQjMzRCcsIGNvbG9yOiAnIzAwQjMzRCcgfSxcclxuICAgIHsgc3Ryb2tlOiAnIzA5NUQ5RCcsIGNvbG9yOiAnIzA5NUQ5RCcgfSxcclxuICAgIHsgc3Ryb2tlOiAnIzIxMTZBQScsIGNvbG9yOiAnIzIxMTZBQScgfSxcclxuXHJcbiAgICB7IHN0cm9rZTogJyM2NTA5QTQnLCBjb2xvcjogJyM2NTA5QTQnIH0sXHJcbiAgICB7IHN0cm9rZTogJyNDNDAwNkYnLCBjb2xvcjogJyNDNDAwNkYnIH0sXHJcbiAgICB7IHN0cm9rZTogJyNGNTJCMDAnLCBjb2xvcjogJyNGNTJCMDAnIH1cclxuICBdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIG1lbnVTZXJ2aWNlOiBNZW51U2VydmljZSxcclxuICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB6Y29yZVNlcnZpY2U6IFpDb3JlU2VydmljZVxyXG4gICkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldERpdkNsYXNzKGl0ZW0pIHtcclxuICAgIHJldHVybiBpdGVtLlR5cGUgPT09ICdkcm9wZG93bi1zdWJtZW51JyA/ICdmbGV4LXNob3cnIDogJ2NvbC14cy00IGNvbC1zbS00IGNvbC1tZC0zIGNvbC14bC0yJztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRNZW51TGlzdChpdGVtKSB7XHJcbiAgICByZXR1cm4gaXRlbS5UeXBlID09PSAnZHJvcGRvd24tc3VibWVudScgPyB0aGlzLm1lbnVTZXJ2aWNlLmdldE1lbnVGb2xkZXIoaXRlbS5VUkwpIDogbnVsbDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBtZW51T25DbGljayhwYXRoTmFtZTogc3RyaW5nLCBhcHBDbGllbnRQYXRoPzogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBzdGFydHVwUGFnZTogc3RyaW5nID0gdGhpcy56Y29yZVNlcnZpY2UuZ2V0RW52aXJvbm1lbnQoKS5zdGFydFVwUGFnZTtcclxuXHJcbiAgICBpZiAoYXBwQ2xpZW50UGF0aCAmJiBzdGFydHVwUGFnZS50b0xvY2FsZUxvd2VyQ2FzZSgpID09ICdsYXVuY2hlcicpIHtcclxuICAgICAgWkNvbXBvbmVudEhlbHBlci5vcGVuQXBwQ2xpZW50UGF0aChwYXRoTmFtZSwgYXBwQ2xpZW50UGF0aCwgdGhpcy5hdXRoU2VydmljZSk7IFxyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3BhdGhOYW1lXSk7XHJcbiAgICB9XHJcbiAgfSBcclxuXHJcbiAgcHJpdmF0ZSBzZXRNYXBJbnB1dChrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZykge1xyXG4gICAgY29uc3QgbWFwSW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpO1xyXG4gICAgbWFwSW5wdXQudHlwZSA9ICdoaWRkZW4nO1xyXG4gICAgbWFwSW5wdXQubmFtZSA9IGtleTtcclxuICAgIG1hcElucHV0LnNldEF0dHJpYnV0ZSgndmFsdWUnLCB2YWx1ZSk7XHJcblxyXG4gICAgcmV0dXJuIG1hcElucHV0O1xyXG4gIH1cclxufVxyXG4iLCI8aW9uLWdyaWQ+XHJcbiAgPGlvbi1yb3c+XHJcbiAgICA8aW9uLWNvbCBbbmdDbGFzc109XCJnZXREaXZDbGFzcyhpdGVtKVwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIGl0ZW1zOyBpbmRleCBhcyBpXCI+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJpdGVtLlR5cGUgIT09ICdkcm9wZG93bi1zdWJtZW51J1wiIGNsYXNzPVwibWVudS1idG4gaW9uLWFjdGl2YXRhYmxlIHJpcHBsZS1wYXJlbnRcIiAoY2xpY2spPVwibWVudU9uQ2xpY2soaXRlbS5VUkwsIGl0ZW0uQXBwQ2xpZW50UGF0aClcIj5cclxuICAgICAgICA8aW9uLWxhYmVsIGNsYXNzPVwibWVudS1idG4tbGFiZWwgbWVudS1idG4taWNvblwiPlxyXG4gICAgICAgICAgPCEtLSA8ZmEtaWNvbiBbaWNvbl09XCJpdGVtLkljb25cIj48L2ZhLWljb24+IC0tPlxyXG4gICAgICAgICAgPGZhLXN0YWNrIHNpemU9XCIxeFwiPlxyXG4gICAgICAgICAgICA8ZmEtaWNvbiBbaWNvbl09XCJbJ2ZhcycsICdzcXVhcmUnXVwiIHN0YWNrSXRlbVNpemU9XCIyeFwiXHJcbiAgICAgICAgICAgICAgICAgICAgIFtzdHlsZXNdPVwiY29sb3JBcnJheVtpJTEwXVwiPjwvZmEtaWNvbj5cclxuICAgICAgICAgICAgPGZhLWljb24gW2ljb25dPVwiWydmYXMnLCBpdGVtLkljb24gXVwiIFtpbnZlcnNlXT1cInRydWVcIiBzdGFja0l0ZW1TaXplPVwiMXhcIlxyXG4gICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm09XCJncm93LTJcIj48L2ZhLWljb24+XHJcbiAgICAgICAgICA8L2ZhLXN0YWNrPlxyXG4gICAgICAgICAgPGlvbi1iYWRnZSBjb2xvcj1cImRhbmdlclwiIGNsYXNzPVwicGVuZGluZy1jb3VudGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpdGVtWydQZW5kaW5nQ291bnRlciddICYmIGl0ZW1bJ1BlbmRpbmdDb3VudGVyJ10gPiAwXCI+XHJcbiAgICAgICAgICAgIHt7aXRlbVsnUGVuZGluZ0NvdW50ZXInXX19XHJcbiAgICAgICAgICA8L2lvbi1iYWRnZT5cclxuICAgICAgICA8L2lvbi1sYWJlbD5cclxuICAgICAgICA8aW9uLWxhYmVsIGNsYXNzPVwibWVudS1idG4tbGFiZWxcIj57eyBpdGVtLkxhYmVsIH19PC9pb24tbGFiZWw+XHJcbiAgICAgICAgPGlvbi1yaXBwbGUtZWZmZWN0PjwvaW9uLXJpcHBsZS1lZmZlY3Q+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8a2VuZG8tcGFuZWxiYXIgKm5nSWY9XCJpdGVtLlR5cGUgPT09ICdkcm9wZG93bi1zdWJtZW51J1wiIGtlZXBJdGVtQ29udGVudD1cInRydWVcIj5cclxuICAgICAgICA8a2VuZG8tcGFuZWxiYXItaXRlbSBbdGl0bGVdPVwiaXRlbS5MYWJlbFwiIFtleHBhbmRlZF09XCJ0cnVlXCIgaWNvbj1cImZvbGRlclwiPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIGtlbmRvUGFuZWxCYXJDb250ZW50PlxyXG4gICAgICAgICAgICA8YXBwLXVpYXBwbWVudWNvbnRlbnQgW2l0ZW1zXT1cImdldE1lbnVMaXN0KGl0ZW0pXCI+PC9hcHAtdWlhcHBtZW51Y29udGVudD5cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9rZW5kby1wYW5lbGJhci1pdGVtPlxyXG4gICAgICA8L2tlbmRvLXBhbmVsYmFyPlxyXG4gICAgPC9pb24tY29sPlxyXG4gIDwvaW9uLXJvdz5cclxuPC9pb24tZ3JpZD5cclxuIl19
@@ -0,0 +1,41 @@
1
+ /********** Angular **********/
2
+ import { Component, Input } from '@angular/core';
3
+ /********** Ionic **********/
4
+ /********** Plugin **********/
5
+ /********** Component & Service **********/
6
+ // import { ZComponentDebugService } from '../services/zcomponent.debug.service';
7
+ import { ZComponentHelper } from 'mmhglobal-zcore';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "mmhglobal-zcore";
10
+ import * as i2 from "@ionic/angular";
11
+ import * as i3 from "../zform/zform.component";
12
+ import * as i4 from "@angular/common";
13
+ export class UicontentComponent {
14
+ constructor(zcoreService) {
15
+ this.zcoreService = zcoreService;
16
+ }
17
+ ngOnInit() {
18
+ console.log(this.group);
19
+ }
20
+ isSITEnvironment() {
21
+ // return environment.e1OauthUrl.startsWith('https://oauthdev.');
22
+ return this.zcoreService.isDebugSession() && !this.isFieldElement();
23
+ }
24
+ isFieldElement() {
25
+ return this.group.fieldName === 'field';
26
+ // return false;
27
+ }
28
+ isMobileScreen() {
29
+ const v = ZComponentHelper.isMobileScreen();
30
+ return v;
31
+ }
32
+ }
33
+ UicontentComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.4", ngImport: i0, type: UicontentComponent, deps: [{ token: i1.ZCoreService }], target: i0.ɵɵFactoryTarget.Component });
34
+ UicontentComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.4", type: UicontentComponent, selector: "app-uicontent", inputs: { group: "group" }, ngImport: i0, template: "<ion-grid>\r\n <ion-row *ngIf=\"group.isLoading\" class=\"ion-text-center\">\r\n <ion-col class=\"ion-margin ion-padding\">\r\n <ion-spinner></ion-spinner>\r\n\r\n </ion-col>\r\n </ion-row>\r\n <ion-row *ngIf=\"!group.isLoading\">\r\n <ion-col>\r\n <app-zform [group]=\"group\"></app-zform>\r\n </ion-col>\r\n <!-- <pre style=\"font-size: x-small;\">{{group.zModel | json}}</pre> -->\r\n </ion-row>\r\n <ion-row *ngIf=\"isSITEnvironment() && !group.isLoading\" style=\"padding-top: 50px;\">\r\n <ion-col>\r\n <app-zform [group]=\"group\" fieldName=\"debug\"></app-zform>\r\n </ion-col>\r\n </ion-row>\r\n <!-- require for mobile screen -->\r\n <div *ngIf=\"!isSITEnvironment() && !group.isLoading && isMobileScreen()\" style=\"height: 150px;\"></div>\r\n</ion-grid>\r\n", styles: [""], components: [{ type: i2.IonGrid, selector: "ion-grid", inputs: ["fixed"] }, { type: i2.IonRow, selector: "ion-row" }, { type: i2.IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { type: i2.IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { type: i3.ZformComponent, selector: "app-zform", inputs: ["group", "fieldName"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
35
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.4", ngImport: i0, type: UicontentComponent, decorators: [{
36
+ type: Component,
37
+ args: [{ selector: 'app-uicontent', template: "<ion-grid>\r\n <ion-row *ngIf=\"group.isLoading\" class=\"ion-text-center\">\r\n <ion-col class=\"ion-margin ion-padding\">\r\n <ion-spinner></ion-spinner>\r\n\r\n </ion-col>\r\n </ion-row>\r\n <ion-row *ngIf=\"!group.isLoading\">\r\n <ion-col>\r\n <app-zform [group]=\"group\"></app-zform>\r\n </ion-col>\r\n <!-- <pre style=\"font-size: x-small;\">{{group.zModel | json}}</pre> -->\r\n </ion-row>\r\n <ion-row *ngIf=\"isSITEnvironment() && !group.isLoading\" style=\"padding-top: 50px;\">\r\n <ion-col>\r\n <app-zform [group]=\"group\" fieldName=\"debug\"></app-zform>\r\n </ion-col>\r\n </ion-row>\r\n <!-- require for mobile screen -->\r\n <div *ngIf=\"!isSITEnvironment() && !group.isLoading && isMobileScreen()\" style=\"height: 150px;\"></div>\r\n</ion-grid>\r\n", styles: [""] }]
38
+ }], ctorParameters: function () { return [{ type: i1.ZCoreService }]; }, propDecorators: { group: [{
39
+ type: Input
40
+ }] } });
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWljb250ZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21taGdsb2JhbC1keW5hbWljZm9ybS9zcmMvbGliL3VpY29udGVudC91aWNvbnRlbnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvdWljb250ZW50L3VpY29udGVudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQkFBK0I7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekQsNkJBQTZCO0FBRTdCLDhCQUE4QjtBQUU5QiwyQ0FBMkM7QUFDM0MsaUZBQWlGO0FBQ2pGLE9BQU8sRUFBVSxnQkFBZ0IsRUFBZ0IsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7O0FBUXpFLE1BQU0sT0FBTyxrQkFBa0I7SUFJN0IsWUFDVSxZQUEwQjtRQUExQixpQkFBWSxHQUFaLFlBQVksQ0FBYztJQUNoQyxDQUFDO0lBRUwsUUFBUTtRQUNOLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxpRUFBaUU7UUFDakUsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3RFLENBQUM7SUFFRCxjQUFjO1FBQ1osT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsS0FBSyxPQUFPLENBQUM7UUFDeEMsZ0JBQWdCO0lBQ2xCLENBQUM7SUFFRCxjQUFjO1FBQ1osTUFBTSxDQUFDLEdBQUcsZ0JBQWdCLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDNUMsT0FBTyxDQUFDLENBQUM7SUFDWCxDQUFDOzsrR0F6QlUsa0JBQWtCO21HQUFsQixrQkFBa0IsaUZDakIvQiwreUJBcUJBOzJGREphLGtCQUFrQjtrQkFMOUIsU0FBUzsrQkFDRSxlQUFlO21HQU1oQixLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKioqKioqKioqKiBBbmd1bGFyICoqKioqKioqKiovXHJcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuLyoqKioqKioqKiogSW9uaWMgKioqKioqKioqKi9cclxuXHJcbi8qKioqKioqKioqIFBsdWdpbiAqKioqKioqKioqL1xyXG5cclxuLyoqKioqKioqKiogQ29tcG9uZW50ICYgU2VydmljZSAqKioqKioqKioqL1xyXG4vLyBpbXBvcnQgeyBaQ29tcG9uZW50RGVidWdTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvemNvbXBvbmVudC5kZWJ1Zy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgWkdyb3VwLCBaQ29tcG9uZW50SGVscGVyLCBaQ29yZVNlcnZpY2UgfSBmcm9tICdtbWhnbG9iYWwtemNvcmUnO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLXVpY29udGVudCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3VpY29udGVudC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdWljb250ZW50LmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVaWNvbnRlbnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBASW5wdXQoKSBncm91cDogWkdyb3VwO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgemNvcmVTZXJ2aWNlOiBaQ29yZVNlcnZpY2VcclxuICApIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGNvbnNvbGUubG9nKHRoaXMuZ3JvdXApO1xyXG4gIH1cclxuXHJcbiAgaXNTSVRFbnZpcm9ubWVudCgpIHtcclxuICAgIC8vIHJldHVybiBlbnZpcm9ubWVudC5lMU9hdXRoVXJsLnN0YXJ0c1dpdGgoJ2h0dHBzOi8vb2F1dGhkZXYuJyk7XHJcbiAgICByZXR1cm4gdGhpcy56Y29yZVNlcnZpY2UuaXNEZWJ1Z1Nlc3Npb24oKSAmJiAhdGhpcy5pc0ZpZWxkRWxlbWVudCgpO1xyXG4gIH1cclxuXHJcbiAgaXNGaWVsZEVsZW1lbnQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5ncm91cC5maWVsZE5hbWUgPT09ICdmaWVsZCc7XHJcbiAgICAvLyByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBpc01vYmlsZVNjcmVlbigpIHtcclxuICAgIGNvbnN0IHYgPSBaQ29tcG9uZW50SGVscGVyLmlzTW9iaWxlU2NyZWVuKCk7XHJcbiAgICByZXR1cm4gdjtcclxuICB9XHJcbn1cclxuIiwiPGlvbi1ncmlkPlxyXG4gIDxpb24tcm93ICpuZ0lmPVwiZ3JvdXAuaXNMb2FkaW5nXCIgY2xhc3M9XCJpb24tdGV4dC1jZW50ZXJcIj5cclxuICAgIDxpb24tY29sIGNsYXNzPVwiaW9uLW1hcmdpbiBpb24tcGFkZGluZ1wiPlxyXG4gICAgICA8aW9uLXNwaW5uZXI+PC9pb24tc3Bpbm5lcj5cclxuXHJcbiAgICA8L2lvbi1jb2w+XHJcbiAgPC9pb24tcm93PlxyXG4gIDxpb24tcm93ICpuZ0lmPVwiIWdyb3VwLmlzTG9hZGluZ1wiPlxyXG4gICAgPGlvbi1jb2w+XHJcbiAgICAgIDxhcHAtemZvcm0gW2dyb3VwXT1cImdyb3VwXCI+PC9hcHAtemZvcm0+XHJcbiAgICA8L2lvbi1jb2w+XHJcbiAgICA8IS0tIDxwcmUgc3R5bGU9XCJmb250LXNpemU6IHgtc21hbGw7XCI+e3tncm91cC56TW9kZWwgfCBqc29ufX08L3ByZT4gLS0+XHJcbiAgPC9pb24tcm93PlxyXG4gIDxpb24tcm93ICpuZ0lmPVwiaXNTSVRFbnZpcm9ubWVudCgpICYmICFncm91cC5pc0xvYWRpbmdcIiBzdHlsZT1cInBhZGRpbmctdG9wOiA1MHB4O1wiPlxyXG4gICAgPGlvbi1jb2w+XHJcbiAgICAgIDxhcHAtemZvcm0gW2dyb3VwXT1cImdyb3VwXCIgZmllbGROYW1lPVwiZGVidWdcIj48L2FwcC16Zm9ybT5cclxuICAgIDwvaW9uLWNvbD5cclxuICA8L2lvbi1yb3c+XHJcbiAgPCEtLSByZXF1aXJlIGZvciBtb2JpbGUgc2NyZWVuIC0tPlxyXG4gIDxkaXYgKm5nSWY9XCIhaXNTSVRFbnZpcm9ubWVudCgpICYmICFncm91cC5pc0xvYWRpbmcgJiYgaXNNb2JpbGVTY3JlZW4oKVwiIHN0eWxlPVwiaGVpZ2h0OiAxNTBweDtcIj48L2Rpdj5cclxuPC9pb24tZ3JpZD5cclxuIl19