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 @@
1
+ {"version":3,"file":"mmhglobal-dynamicform.mjs","sources":["../../../projects/mmhglobal-dynamicform/src/lib/uiactionbutton/uiactionbutton.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/uiactionbutton/uiactionbutton.component.html","../../../projects/mmhglobal-dynamicform/src/lib/services/zcomponent.debug.service.ts","../../../projects/mmhglobal-dynamicform/src/lib/directives/fieldelement.directive.ts","../../../projects/mmhglobal-dynamicform/src/lib/services/zcomponent.service.ts","../../../projects/mmhglobal-dynamicform/src/lib/zformcontrol/zformcontrol.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/zformcontrol/zformcontrol.component.html","../../../projects/mmhglobal-dynamicform/src/lib/zform/zform.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/zform/zform.component.html","../../../projects/mmhglobal-dynamicform/src/lib/directives/scrollbar.theme.directive.ts","../../../projects/mmhglobal-dynamicform/src/lib/zmodal/zmodal.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/zmodal/zmodal.component.html","../../../projects/mmhglobal-dynamicform/src/lib/zmodal/zmodal-mobile.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/services/main.service.ts","../../../projects/mmhglobal-dynamicform/src/lib/zgrid/zgrid.binding.directive.ts","../../../projects/mmhglobal-dynamicform/src/lib/zgrid/zgrid.popup.anchor-target.directive.ts","../../../projects/mmhglobal-dynamicform/src/lib/zselectmultiple/zselectmultiple.directive.ts","../../../projects/mmhglobal-dynamicform/src/lib/zdatetime/dateParser.pipe.ts","../../../projects/mmhglobal-dynamicform/src/lib/zcodeeditor/zcodeeditor.pipe.ts","../../../projects/mmhglobal-dynamicform/src/lib/zdiv/zdiv.pipe.ts","../../../projects/mmhglobal-dynamicform/src/lib/zreport/zreport.config.ts","../../../projects/mmhglobal-dynamicform/src/lib/zreport/zreport.component.html","../../../projects/mmhglobal-dynamicform/src/lib/ztab/ztab.pipe.ts","../../../projects/mmhglobal-dynamicform/src/lib/zgrid/date-range-cell-filter.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/zscheduler/zscheduler.toolbar.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/uipage/uipage.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/uimenubutton/uimenubutton.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/uimenubutton/uimenubutton.component.html","../../../projects/mmhglobal-dynamicform/src/lib/uiheader/uiheader.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/uiheader/uiheader.component.html","../../../projects/mmhglobal-dynamicform/src/lib/uicontent/uicontent.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/uicontent/uicontent.component.html","../../../projects/mmhglobal-dynamicform/src/lib/uimenucontent/uimenucontent.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/uimenucontent/uimenucontent.component.html","../../../projects/mmhglobal-dynamicform/src/lib/uiappmenucontent/uiappmenucontent.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/uiappmenucontent/uiappmenucontent.component.html","../../../projects/mmhglobal-dynamicform/src/lib/uivalidationmessage/uivalidationmessage.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/uivalidationmessage/uivalidationmessage.component.html","../../../projects/mmhglobal-dynamicform/src/lib/zbullet/zbullet.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/zbullet/zbullet.component.html","../../../projects/mmhglobal-dynamicform/src/lib/zbuttons/zbuttons.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/zbuttons/zbuttons.component.html","../../../projects/mmhglobal-dynamicform/src/lib/zcard/zcard.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/zcard/zcard.component.html","../../../projects/mmhglobal-dynamicform/src/lib/zchart/zchart.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/zchart/zchart.component.html","../../../projects/mmhglobal-dynamicform/src/lib/zcheckbox/zcheckbox.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/zcheckbox/zcheckbox.component.html","../../../projects/mmhglobal-dynamicform/src/lib/zchip/zchip.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/zchip/zchip.component.html","../../../projects/mmhglobal-dynamicform/src/lib/zcodeeditor/zcodeeditor.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/zcodeeditor/zcodeeditor.component.html","../../../projects/mmhglobal-dynamicform/src/lib/zdaterange/zdaterange.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/zdaterange/zdaterange.component.html","../../../projects/mmhglobal-dynamicform/src/lib/zdatetime/zdatetime.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/zdatetime/zdatetime.component.html","../../../projects/mmhglobal-dynamicform/src/lib/zdiv/zdiv.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/zdiv/zdiv.component.html","../../../projects/mmhglobal-dynamicform/src/lib/zgauge/zgauge.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/zgauge/zgauge.component.html","../../../projects/mmhglobal-dynamicform/src/lib/zselectmultiple/zselectmultiple.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/zselectmultiple/zselectmultiple.component.html","../../../projects/mmhglobal-dynamicform/src/lib/ztextarea/ztextarea.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/ztextarea/ztextarea.component.html","../../../projects/mmhglobal-dynamicform/src/lib/zgrid/zgrid.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/zgrid/zgrid.component.html","../../../projects/mmhglobal-dynamicform/src/lib/zimg/zimg.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/zimg/zimg.component.html","../../../projects/mmhglobal-dynamicform/src/lib/zkcard/zkcard.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/zkcard/zkcard.component.html","../../../projects/mmhglobal-dynamicform/src/lib/zlabel/zlabel.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/zlabel/zlabel.component.html","../../../projects/mmhglobal-dynamicform/src/lib/zmfb/zmfb.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/zmfb/zmfb.component.html","../../../projects/mmhglobal-dynamicform/src/lib/znumeric/znumeric.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/znumeric/znumeric.component.html","../../../projects/mmhglobal-dynamicform/src/lib/zpostselectinput/zpostselectinput.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/zpostselectinput/zpostselectinput.component.html","../../../projects/mmhglobal-dynamicform/src/lib/zquerybuilder/zquerybuilder.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/zquerybuilder/zquerybuilder.component.html","../../../projects/mmhglobal-dynamicform/src/lib/zreport/zreport.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/zscheduler/zscheduler.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/zscheduler/zscheduler.component.html","../../../projects/mmhglobal-dynamicform/src/lib/ztab/ztab.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/ztab/ztab.component.html","../../../projects/mmhglobal-dynamicform/src/lib/ztext/ztext.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/ztext/ztext.component.html","../../../projects/mmhglobal-dynamicform/src/lib/ztexteditor/ztexteditor.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/ztexteditor/ztexteditor.component.html","../../../projects/mmhglobal-dynamicform/src/lib/ztree/ztree.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/ztree/ztree.component.html","../../../projects/mmhglobal-dynamicform/src/lib/ztreelist/ztreelist.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/ztreelist/ztreelist.component.html","../../../projects/mmhglobal-dynamicform/src/lib/ztrendcard/ztrendcard.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/ztrendcard/ztrendcard.component.html","../../../projects/mmhglobal-dynamicform/src/lib/zunknown/zunknown.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/zunknown/zunknown.component.html","../../../projects/mmhglobal-dynamicform/src/lib/zudf/zudf.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/zudf/zudf.component.html","../../../projects/mmhglobal-dynamicform/src/lib/zupload/zupload.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/zupload/zupload.component.html","../../../projects/mmhglobal-dynamicform/src/lib/zworkflowbuttons/zworkflowbuttons.component.ts","../../../projects/mmhglobal-dynamicform/src/lib/zworkflowbuttons/zworkflowbuttons.component.html","../../../projects/mmhglobal-dynamicform/src/lib/mmhglobal-dynamicform.module.ts","../../../projects/mmhglobal-dynamicform/src/public-api.ts","../../../projects/mmhglobal-dynamicform/src/mmhglobal-dynamicform.ts"],"sourcesContent":["/********** Angular **********/\r\nimport { Component, OnInit, Input, Directive } from '@angular/core'; \r\nimport { Validators } from '@angular/forms';\r\n\r\n/********** Ionic **********/\r\nimport { ActionSheetController } from '@ionic/angular';\r\n\r\n/********** Plugin **********/\r\nimport { map } from 'rxjs/operators';\r\n\r\n/********** Component & Service **********/\r\nimport { \r\n FieldService, WebApiService, ResourceApiService, WorkflowService,\r\n ZGroup, ZField, ZComponentProperties, ZComponentHelper,\r\n ZComponentOutputEvent\r\n} from 'mmhglobal-zcore'; \r\n\r\n\r\n@Component({\r\n selector: 'app-uiactionbutton',\r\n templateUrl: './uiactionbutton.component.html',\r\n styleUrls: ['./uiactionbutton.component.scss'],\r\n})\r\n\r\nexport class UiactionbuttonComponent implements OnInit {\r\n @Input() group: ZGroup;\r\n topRightActionButton: any[] = [];\r\n actionBtnList: Array<ZField>;\r\n isWorkflowButton: boolean = false;\r\n // visible:boolean = true;\r\n private data: any;\r\n componentProperties = new ZComponentProperties();\r\n\r\n constructor(\r\n private fieldService: FieldService,\r\n private webApiService: WebApiService,\r\n private resourceApiService: ResourceApiService,\r\n private workflowService: WorkflowService,\r\n private actionSheetCtrl: ActionSheetController\r\n ) { }\r\n\r\n /******************** Common function ********************/\r\n ngOnInit() {\r\n this.data = this.getFirstzButton(this.group.fields);\r\n // this.visible = ZComponentHelper.isVisible(buttonData);\r\n\r\n if (this.data) {\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n\r\n if (!ZComponentHelper.isNullUndefinedEmpty(this.data.WorkflowCode)) {\r\n // handle as zWorkflowButton\r\n this.isWorkflowButton = true;\r\n this.loadWorkflowButton();\r\n }\r\n else {\r\n // handle as zButton\r\n const field$ = this.fieldService.getFormFieldCode(\r\n this.data.Value,\r\n \"FormField\",\r\n null,\r\n null\r\n );\r\n field$.subscribe((data: Array<ZField>) => {\r\n this.actionBtnList = data;\r\n this.reloadButtonList();\r\n });\r\n }\r\n\r\n return;\r\n }\r\n }\r\n\r\n isMobileScreen() {\r\n const v = ZComponentHelper.isMobileScreen();\r\n return v;\r\n }\r\n\r\n public setEnable = (status: boolean) => {\r\n this.componentProperties.isReadOnly = !status;\r\n }\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n }\r\n\r\n public setRequire = (status: boolean) => {\r\n this.componentProperties.isRequired = status;\r\n ZComponentHelper.changeValidator(status, this.group, this.data.Value, this.componentProperties, Validators.required);\r\n }\r\n\r\n private isBtnVisible(fieldExpr) {\r\n if (fieldExpr !== false && !fieldExpr) {\r\n return true;\r\n }\r\n const v = ZComponentHelper.getGroupEvalValue.call(this, fieldExpr);\r\n return v;\r\n }\r\n\r\n /******************** zButton ********************/\r\n getFirstzButton(data: any[]) {\r\n // data.forEach(d => {\r\n for (let i = 0; i < data.length - 1; i++) {\r\n if (data[i].Type === \"zbuttons\" || data[i].Type === \"zworkflowbuttons\") {\r\n return data[i];\r\n } else {\r\n if (Array.isArray(data[i].Value)) {\r\n this.getFirstzButton(data[i].Value);\r\n }\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n onAction() {\r\n if (this.isWorkflowButton) {\r\n //this.loadWorkflowButton();\r\n this.actionSheetCtrl\r\n .create({\r\n header: \"Choose an Action\",\r\n buttons: this.topRightActionButton\r\n })\r\n .then(actionSheetEl => {\r\n actionSheetEl.present();\r\n });\r\n }\r\n else {\r\n //this.reloadButtonList();\r\n this.actionSheetCtrl\r\n .create({\r\n header: \"Choose an Action\",\r\n buttons: this.topRightActionButton\r\n })\r\n .then(actionSheetEl => {\r\n actionSheetEl.present();\r\n });\r\n }\r\n }\r\n\r\n private reloadButtonList() {\r\n this.topRightActionButton = [];\r\n this.actionBtnList.forEach((button: ZField) => {\r\n const visible = ZComponentHelper.getGroupEvalValue.call(\r\n this,\r\n button.Visible,\r\n this.group\r\n );\r\n if (visible !== false) {\r\n const label = this.getButtonLabel(button);\r\n const buttonRole = this.getButtonRole(button, label);\r\n this.topRightActionButton.push({\r\n text: label,\r\n handler: () => {\r\n this.buttonClick(button);\r\n },\r\n role: buttonRole\r\n });\r\n }\r\n });\r\n }\r\n\r\n private buttonClick(button: any) {\r\n // debugger;\r\n this.group['DismissType'] = button.DismissType;\r\n this.group.subject.next({\r\n type: \"buttonClick\",\r\n target: button.ClickEvent,\r\n data: null\r\n } as ZComponentOutputEvent);\r\n }\r\n\r\n private getButtonLabel(button: any) {\r\n let buttonLabel = button.Label;\r\n if (!buttonLabel) {\r\n buttonLabel = button.Name;\r\n }\r\n\r\n let labelExpr = buttonLabel.match(/^{{.*}}$/gi);\r\n if (labelExpr) {\r\n labelExpr = labelExpr[0].slice(2, -2);\r\n const label = ZComponentHelper.getGroupValue(labelExpr, this.group);\r\n return label;\r\n } else {\r\n return buttonLabel;\r\n }\r\n }\r\n\r\n private getButtonRole(button: any, label: string) {\r\n // console.log(\"getButtonRole: \", label, button.ClickEvent);\r\n const lowerCaseLabel = label.toLowerCase();\r\n if (\r\n lowerCaseLabel.indexOf(\"cancel\") !== -1 ||\r\n lowerCaseLabel.indexOf(\"close\") !== -1\r\n ) {\r\n return \"cancel\";\r\n }\r\n return null;\r\n }\r\n\r\n /******************** zWorkflowButton ********************/\r\n // URL required\r\n // eslint-disable-next-line @typescript-eslint/naming-convention,no-underscore-dangle,id-blacklist,id-match\r\n e1wfs_wfcGetWorkflowButtonURL = this.resourceApiService.getURL(\"e1wfs_wfcGetWorkflowButtonURL\");\r\n // eslint-disable-next-line @typescript-eslint/naming-convention,no-underscore-dangle,id-blacklist,id-match\r\n e1wfs_wfc_getWorkflowInitialStatusURL = this.resourceApiService.getURL(\"e1wfs_wfc_getWorkflowInitialStatusURL\");\r\n // eslint-disable-next-line @typescript-eslint/naming-convention, no-underscore-dangle, id-blacklist, id-match\r\n e1wfs_wfc_getDocumentStatusURL = this.resourceApiService.getURL(\"e1wfs_wfc_getDocumentStatusURL\");\r\n\r\n\r\n private loadWorkflowButton() {\r\n // actionBtnList: Array<ZField>;\r\n this.topRightActionButton = [];\r\n\r\n // Get WFS_DocumentId if any.\r\n let documentId = null;\r\n if (this.group.zModel) {\r\n documentId = this.group.zModel['WFS_DocumentId'];\r\n }\r\n\r\n // Set the documentId to the service\r\n this.workflowService.appendWFS_DocumentsInfo(this.data.WorkflowCode, documentId);\r\n\r\n try {\r\n // Set param for field\r\n const field$ = this.workflowService.getWorkflowButtonsField(\r\n this.data.WorkflowCode,\r\n this.e1wfs_wfcGetWorkflowButtonURL,\r\n String(false)\r\n );\r\n\r\n field$.subscribe(data => {\r\n data.forEach((button: any) => {\r\n const label = this.getButtonLabel(button);\r\n const attributes = JSON.parse(button.Attributes);\r\n const buttonLabel = attributes.Label || label;\r\n const _isVisible = this.isBtnVisible(button.Visible);\r\n\r\n if (_isVisible) {\r\n this.topRightActionButton.push({\r\n text: buttonLabel,\r\n fieldAttribute: button,\r\n iconName: attributes.Icon,\r\n handler: (y) => {\r\n this.workflowButtonClick(button);\r\n }\r\n });\r\n }\r\n //ZComponentHelper.collectWorkflowButton(this.group, this.data.WorkflowCode, buttonLabel, button, attributes, mappedInfo);\r\n });\r\n });\r\n\r\n if (!this.data.DisableSyncWorkflowStatus) {\r\n // Set default status\r\n // eslint-disable-next-line @typescript-eslint/dot-notation\r\n if (!this.group.zModel[\"WFS_StatusName\"]) {\r\n const params = {\r\n \"WorkflowMasterCode\": this.data.WorkflowCode\r\n };\r\n\r\n return this.webApiService.httpPost$(this.e1wfs_wfc_getWorkflowInitialStatusURL, params).pipe(\r\n map(res => {\r\n if (res.Data) {\r\n ZComponentHelper.presetModelValue(\"WFS_StatusId\", res.Data[\"Id\"], this.group);\r\n ZComponentHelper.presetModelValue(\"WFS_StatusName\", res.Data[\"Name\"], this.group);\r\n ZComponentHelper.presetModelValue(\"WFS_StatusCode\", res.Data[\"Code\"], this.group);\r\n\r\n this.workflowService.setCurrentDocumentStatus(res.Data);\r\n }\r\n })\r\n ).subscribe();\r\n } else {\r\n // When loading also to get current Status Information if any.\r\n const docInfoParam = {\r\n \"WorkflowMasterCode\": this.data.WorkflowCode,\r\n \"DocumentId\": documentId,\r\n };\r\n\r\n this.webApiService.httpPost$(this.e1wfs_wfc_getDocumentStatusURL, docInfoParam).pipe(\r\n map(res => {\r\n this.workflowService.setCurrentDocumentStatus(res);\r\n if (res.Data) {\r\n this.workflowService.setCurrentDocumentStatus(res.Data);\r\n }\r\n })\r\n ).subscribe();\r\n }\r\n }\r\n\r\n } catch (error) {\r\n console.error(\"error: \", error);\r\n }\r\n }\r\n\r\n workflowButtonClick(button: any) {\r\n // Type 1 == functional;\r\n // Type 2 == GOTO;\r\n const attributes = JSON.parse(button.Attributes);\r\n switch (button.TypeCode.toUpperCase()) {\r\n case \"FUNCTION\":\r\n console.log(\"Functional Button: \", button.Name);\r\n this.workflowService.functionalButton_OnClick(attributes, this.group);\r\n break;\r\n case \"GOTO\":\r\n console.log(\"GOTO Button: \", button.Name);\r\n this.workflowService.gotoButton_Onclick(button, this.data, attributes, this.group, false).subscribe(res => {\r\n this.loadWorkflowButton();\r\n if (res) {\r\n this.workflowService.triggerSendEmail(this.group).subscribe();\r\n }\r\n });\r\n break;\r\n default:\r\n console.log(\"Invalid Button Type. \", button.Name);\r\n break;\r\n }\r\n }\r\n}\r\n","<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>","/********** Angular **********/\r\nimport { Injectable } from \"@angular/core\";\r\nimport { FormGroup } from '@angular/forms';\r\nimport { Router } from '@angular/router';\r\nimport { HttpParams } from '@angular/common/http';\r\n\r\n/********** Ionic **********/\r\nimport { IonicSelectableComponent } from 'ionic-selectable';\r\n\r\n/********** Plugin **********/\r\nimport { BehaviorSubject, of, forkJoin, Observable } from 'rxjs';\r\nimport { tap, switchMap, map } from 'rxjs/operators';\r\n\r\n/********** Component & Service **********/\r\nimport {\r\n AlertButton, AlertService, AuthService, FieldService, MESSAGETYPE,\r\n ResourceApiService, ToastService, WebApiService, ZComponentHelper, ZComponentOutputEvent,\r\n ZField, ZGroup, ZTreeTemplateParams\r\n} from \"mmhglobal-zcore\";\r\nimport { ModalResponse, ModalService } from 'mmhglobal-zmodal';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ZComponentDebugService {\r\n constructor(\r\n private router: Router,\r\n private alertService: AlertService,\r\n private authService: AuthService,\r\n private fieldService: FieldService,\r\n private resourceApiService: ResourceApiService,\r\n private toastService: ToastService,\r\n private modalService: ModalService,\r\n private webApiService: WebApiService\r\n ) { }\r\n\r\n private scope: any;\r\n\r\n get debug(): any {\r\n return this.scope.group._debug;\r\n }\r\n\r\n get group(): ZGroup {\r\n return this.scope.group;\r\n }\r\n\r\n public onInitDebugger(group: ZGroup) {\r\n group._debug = new ZGroup(true);\r\n group._isDebugging = true;\r\n group._debug.zData = {\r\n collectedActivities: [],\r\n activityCount: 0,\r\n collectedWorkflowButtons: [],\r\n workflowButtonCount: 0\r\n };\r\n group._debug.zComponents = {};\r\n group.isListForm = false;\r\n }\r\n\r\n\r\n public onStartDebugger(fieldElements: Array<ZField>, me: any) {\r\n this.scope = me;\r\n if (!me.group._debug) {\r\n me.group._debug = {};\r\n }\r\n\r\n const d: ZGroup = me.group._debug;\r\n me.form = me.toFormGroup(fieldElements);\r\n d.form = me.form;\r\n if (me.subscription) {\r\n me.subscription.unsubscribe();\r\n }\r\n\r\n Object.assign(d, {\r\n // zData: { collectedActivities: [], activityCount: 0 },\r\n zModel: {},\r\n subject: new BehaviorSubject<ZComponentOutputEvent>(null),\r\n isEdit: true,\r\n isNew: false,\r\n _debug: me.group._debug,\r\n _group: me.group,\r\n resourceURL: this.resourceApiService.getURL('field'),\r\n treeItemTemplate: this.treeItemTemplate,\r\n onItemClick: this.onItemClick,\r\n onTreeNodeChange: this.onTreeNodeChange,\r\n onAddNode: this.onAddNode,\r\n onRemoveNode: this.onRemoveNode,\r\n treeNodesExpandAll: this.treeNodesExpandAll,\r\n treeNodesCollapseAll: this.treeNodesCollapseAll,\r\n refreshTreeModel: this.refreshTreeModel,\r\n addNode: this.addNode,\r\n refreshActivityLogData: this.LoadGridData.bind(this),\r\n GoToFieldElement: this.gotoFieldElement.bind(this),\r\n ListWatchName: this.listWatchName,\r\n onChangeWatchName: this.onChangeWatchName.bind(this),\r\n getWatchName: this.getWatchName.bind(this),\r\n fieldElementonEditorCodeChange: this.fieldElementonEditorCodeChange.bind(this),\r\n gridActivityLogColumnFields: this.fieldService.getFormFieldCode(\r\n 'debugActivityLog',\r\n \"FormField\",\r\n this.group,\r\n \"debugActivityLogField\"\r\n ),\r\n gridActivityLogOnItemClick: this.gridActivityLogOnItemClick.bind(this),\r\n updateModel: this.updateModel.bind(this),\r\n refreshWorkflowButtonData: this.loadWorkflowData.bind(this),\r\n gridWorkflowButtonColumnFields: this.fieldService.getFormFieldCode(\r\n 'debugWorkflowButton',\r\n 'FormField',\r\n this.group,\r\n \"debugWorkflowButtonField\"\r\n ),\r\n gridWorkflowButtonOnItemClick: this.gridWorkflowButtonOnItemClick.bind(this)\r\n });\r\n if (!d.zData) {\r\n d.zData = { collectedActivities: [], activityCount: 0 };\r\n }\r\n\r\n me.subscription = d.subject.subscribe((event: ZComponentOutputEvent) =>\r\n this.subjectEvent(event, d, this)\r\n );\r\n ZComponentHelper.setFieldsDivClass(this.group._projectName, this.group.fieldName, fieldElements, this.authService);\r\n return this.loadDebugZModel(me);\r\n }\r\n\r\n private loadDebugZModel(me: any) {\r\n const d: ZGroup = me.group._debug;\r\n\r\n const downloadList = [];\r\n downloadList.push(this.getProjectId());\r\n\r\n const formType = me.group.isListForm ? 'ListField' : 'FormField';\r\n const fieldName = me.group.fieldName;\r\n const fieldzModel = this.getFieldzModel(formType, fieldName);\r\n downloadList.push(fieldzModel);\r\n\r\n return forkJoin(downloadList);\r\n }\r\n\r\n private getProjectId() {\r\n const d = this.debug;\r\n const url = this.resourceApiService.getURL('projectsURL');\r\n return this.webApiService.getApi(url, {}, d.zData, 'ProjectOptions', null, d, false);\r\n }\r\n\r\n private getFieldzModel(type: string, activityName: string) {\r\n if (type === 'FormField') {\r\n return this.getFormFieldzModel(activityName);\r\n } else {\r\n return this.getListFieldzModel(activityName);\r\n }\r\n }\r\n\r\n private getFormFieldzModel(activityName: string) {\r\n const d: ZGroup = this.debug;\r\n const url = this.resourceApiService.getURL('field');\r\n return this.webApiService.httpGet$(url, { name: activityName, type: 'FormField' }).pipe(\r\n tap((respData: any) => {\r\n // console.log('respData: ', respData);\r\n Object.assign(d.zModel, respData);\r\n d.form.patchValue(d.zModel);\r\n d.form.markAsPristine();\r\n const fields = JSON.parse(d.zModel.Code);\r\n Object.assign(d, {\r\n treeModel: ZComponentHelper.convertTreeModel(fields)\r\n });\r\n })\r\n );\r\n }\r\n\r\n private getListFieldzModel(activityName: string) {\r\n const d = this.debug;\r\n const url = this.resourceApiService.getURL('fieldsMapping');\r\n const url2 = this.resourceApiService.getURL('field');\r\n return this.webApiService.httpGet$(url, { name: activityName }).pipe(\r\n switchMap((fieldMapping: any) => {\r\n // console.log('fieldMapping: ', fieldMapping);\r\n return this.webApiService.httpGet$(url2, { id: fieldMapping.FieldElementMasterId });\r\n }),\r\n tap((respData: any) => {\r\n Object.assign(d.zModel, respData);\r\n d.form.patchValue(d.zModel);\r\n d.form.markAsPristine();\r\n const fields = JSON.parse(d.zModel.Code);\r\n Object.assign(d, {\r\n treeModel: ZComponentHelper.convertTreeModel(fields)\r\n });\r\n })\r\n )\r\n }\r\n\r\n\r\n private subjectEvent(event: ZComponentOutputEvent, group: ZGroup, me: any) {\r\n if (!event || !event.target || event.target.startsWith(\"modalGroup.\")) {\r\n return;\r\n }\r\n // console.log(\"** Debug - SubjectEvent\", event);\r\n let callFunc;\r\n\r\n try {\r\n callFunc = ZComponentHelper.getGroupEvalValue.call(\r\n me,\r\n event.target\r\n );\r\n // ZComponentHelper.getGroupValue(event.Target, group);\r\n } catch (error) {\r\n console.warn(\r\n \"Error when getGroupValue: \",\r\n event.target,\r\n \" > Error: \",\r\n error\r\n );\r\n }\r\n\r\n // callFunc(event);\r\n if (typeof callFunc === \"function\") {\r\n const newFunc = callFunc.bind(me);\r\n newFunc(event, group, me);\r\n } else if (typeof callFunc === \"string\") {\r\n if (event.type.endsWith(\"onNavigateTo\")) {\r\n const nUrl = event.target.replace(\"/:id\", \"/\" + event.data);\r\n this.router.navigate([nUrl]);\r\n return;\r\n }\r\n\r\n if (event.type === \"zgrid-cellClick\") {\r\n // (callFunc.startsWith('edit')) { zgrid-cellClick\r\n const cName = callFunc.slice(4);\r\n // debugger;\r\n // const modalGroupParam: ModalPageParams = {};\r\n // modalGroupParam.controllerName = cName;\r\n // modalGroupParam.referId = event.data.Id;\r\n // modalGroupParam.colFields$ = event.columnFields$;\r\n // modalGroupParam.parentGroup = me.group;\r\n\r\n // this.openModalForm(modalGroupParam);\r\n this.modalService.show(event.columnFields$ || cName, group, '', null, null, {}, event.data.Id); // TODO\r\n }\r\n } else if (typeof callFunc === \"object\") {\r\n if (event.type === \"zgrid-cellClick\") {\r\n if (callFunc.navigateUrl) {\r\n const url = callFunc.navigateUrl.replace(\":id\", event.data.Id);\r\n this.router.navigate([url]);\r\n return;\r\n }\r\n\r\n // const modalGroupParam: ModalPageParams = {};\r\n // modalGroupParam.controllerName = callFunc.ctrlName;\r\n // modalGroupParam.referId = event.data.Id;\r\n // modalGroupParam.colFields$ = event.columnFields$;\r\n // modalGroupParam.parentGroup = me.group;\r\n // modalGroupParam.formHeader = callFunc.formHeader;\r\n\r\n if (callFunc.formHeader) {\r\n // this.openModalForm(modalGroupParam);\r\n\r\n this.modalService.show(event.columnFields$ || callFunc.ctrlName, group, callFunc.formHeader, null, null, {}, event.data.Id);\r\n return;\r\n }\r\n console.warn(\r\n \"Invalid callFunc type: \",\r\n callFunc,\r\n \" event.Target: \",\r\n event.target\r\n );\r\n }\r\n // this.openModalFormByComponent(callFunc.type, event.Data.Id);\r\n } else {\r\n console.warn(\r\n \"Function not defined in group for: \",\r\n event.target,\r\n \", Event: \",\r\n event\r\n );\r\n }\r\n }\r\n\r\n private gridActivityLogOnItemClick(event: any) {\r\n // console.log('gridActivityLogOnItemClick: ', event);\r\n const rec = event.dataItem;\r\n switch (rec.type) {\r\n case 'ListField':\r\n case 'FormField':\r\n this.getFieldzModel(rec.type, rec.activityName).subscribe(() => {\r\n this.selectTab(0);\r\n });\r\n break;\r\n case 'ResourceServerAPI':\r\n const watchNameValue = '_debug.zData.collectedActivities[' + (rec.index - 1) + '].reference';\r\n this.setWatchNameValue(watchNameValue);\r\n this.selectTab(1);\r\n break;\r\n case 'HttpGet$':\r\n case 'HttpPost$':\r\n case 'HttpPut$':\r\n case 'HttpDelete$':\r\n this.setWatchNameValue('_debug.zData.collectedActivities[' + (rec.index - 1) + ']');\r\n this.selectTab(1);\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n private selectTab(index: number) {\r\n // debugger;\r\n // this.debug.zComponents[\"ztab_debuggerTabs\"].state.lastSelectedTabIndex = index;\r\n // ZComponentHelper.getComponent(this.debug, 'ztab_debuggerTabs').state.lastSelectedTabIndex = index;\r\n ZComponentHelper.getComponent(this.debug, 'ztab_debuggerTabs').selectTab(index);\r\n }\r\n\r\n private setWatchNameValue(newValue: string) {\r\n this.debug.zModel['DebugWatchName'] = newValue;\r\n ZComponentHelper.setModelValue('WatchName', newValue, this.debug, true);\r\n }\r\n\r\n public LoadGridData() {\r\n const activityLogGrid = ZComponentHelper.getComponent(this.debug, 'zgrid_ActivityLogGrid');\r\n if (activityLogGrid) {\r\n activityLogGrid.setData(this.debug.zData.collectedActivities);\r\n }\r\n }\r\n\r\n private listWatchName(component: IonicSelectableComponent, searchText: string, pageNo: number,\r\n me: any, dataItem: any, recordId?: string) {\r\n\r\n const watchList = [\r\n { Name: 'group.zModel' },\r\n { Name: 'group.zData' },\r\n { Name: 'group.fields' },\r\n { Name: 'group.form.value' },\r\n { Name: 'group.backNavigationPage' },\r\n { Name: 'group.parentReferenceField' },\r\n { Name: 'group.parentReferenceId' },\r\n { Name: 'Object.keys(group.zComponents)' },\r\n { Name: 'group.gridOptions.zgrid.grid.data' }\r\n // { Name: 'Object.keys(_debug.zComponents)' },\r\n // { Name: '_debug.zModel' },\r\n // { Name: '_debug.zData' },\r\n // { Name: '_debug.zData.collectedActivities' },\r\n ];\r\n\r\n let results;\r\n if (searchText) {\r\n results = watchList.filter((s) => s.Name.toLowerCase().indexOf(searchText.toLowerCase()) !== -1);\r\n }\r\n\r\n if (pageNo === 0 && searchText) {\r\n return of({ dataSet: results });\r\n } else if (pageNo === 0) {\r\n return of({ dataSet: watchList });\r\n } else {\r\n return of({ dataSet: [] });\r\n }\r\n }\r\n\r\n private getWatchName() {\r\n return this.debug.zModel.DebugWatchName;\r\n }\r\n\r\n private onChangeWatchName(event: any, group: ZGroup, me: any) {\r\n // console.log('onChangeWatchName: ', event.data.value);\r\n const newValue = event.data.value;\r\n if (newValue) {\r\n this.debug.zModel['DebugWatchName'] = newValue.replace('group', '_group');\r\n }\r\n }\r\n\r\n private fieldElementonEditorCodeChange(el: ZComponentOutputEvent) {\r\n this.refreshTreeModel();\r\n }\r\n\r\n\r\n private treeNodesExpandAll() {\r\n this.debug.zComponents['ztree_debugZTree'].expandAll();\r\n }\r\n\r\n private treeNodesCollapseAll() {\r\n this.debug.zComponents['ztree_debugZTree'].collapseAll();\r\n }\r\n\r\n private refreshTreeModel() {\r\n try {\r\n const d = JSON.parse(this.debug.zModel.Code);\r\n // this._addNodesToTree(d);\r\n // group['treeModel'] = this.convertTreeModel(d);\r\n this.debug['treeModel'] = ZComponentHelper.convertTreeModel(d);\r\n } catch {\r\n debugger;\r\n }\r\n }\r\n\r\n private treeItemTemplate(el: ZTreeTemplateParams) {\r\n const getFieldValue = (item: any) => {\r\n if (typeof item._DataValue === \"string\") {\r\n return item._DataValue;\r\n }\r\n return \"...\";\r\n };\r\n return (\r\n el.dataItem.Name +\r\n \" - [\" +\r\n el.dataItem.Type +\r\n \"] = \" +\r\n getFieldValue(el.dataItem)\r\n );\r\n }\r\n\r\n async onItemClick(event: ZComponentOutputEvent) {\r\n // debugger;\r\n console.log(\"onItemClick data received: \", event);\r\n const modalFields = this.fieldService.getFormFieldCode(\r\n \"mvEditFieldNodeForm\",\r\n \"FormField\",\r\n null,\r\n null\r\n );\r\n const dataItem = Object.assign({}, event.data);\r\n dataItem.Value = dataItem._DataValue;\r\n delete dataItem._DataValue;\r\n const zmodel = {\r\n nodeModel: JSON.stringify(dataItem, null, 2)\r\n };\r\n const modal = await this.modalService.show(modalFields, this.debug._group, 'Field Element Info', null, null, zmodel);\r\n modal.subscribe((modalData: ModalResponse) => {\r\n if (modalData.responseType === \"cancel\") {\r\n return;\r\n }\r\n const newData = JSON.parse(modalData.data.nodeModel);\r\n if (newData.Value) {\r\n newData._DataValue = newData.Value;\r\n newData.Value = null;\r\n }\r\n this.updateTreeNode(newData, this.debug['treeModel'], event.event);\r\n const newTreeModel = JSON.parse(JSON.stringify(this.debug['treeModel']));\r\n const revertedModel = ZComponentHelper.revertTreeModel(newTreeModel);\r\n const newCode = JSON.stringify(revertedModel, null, 2);\r\n ZComponentHelper.setModelValue(\"Code\", newCode, this.debug);\r\n this.updateModel();\r\n // this.mainService.updateModel(null, this.debug);\r\n });\r\n }\r\n\r\n private updateTreeNode(newNode: any, treeModel: any, index: string) {\r\n const treeIndex = index.split(\"_\");\r\n if (treeIndex.length > 1) {\r\n const newIndex = treeIndex.slice(1).join(\"_\");\r\n this.updateTreeNode(newNode, treeModel[+treeIndex[0]].Value, newIndex);\r\n } else {\r\n if (treeModel[+treeIndex[0]].Value) {\r\n newNode.Value = treeModel[+treeIndex[0]].Value;\r\n }\r\n treeModel[+treeIndex[0]] = newNode;\r\n }\r\n }\r\n\r\n\r\n\r\n private insertTreeNode(newNode: any, treeModel: any, index: string) {\r\n const treeIndex = index.split(\"_\");\r\n if (treeIndex.length > 1) {\r\n const newIndex = treeIndex.slice(1).join(\"_\");\r\n this.insertTreeNode(newNode, treeModel[+treeIndex[0]].Value, newIndex);\r\n } else {\r\n if (treeIndex[0]) {\r\n if (!Array.isArray(treeModel[+treeIndex[0]].Value)) {\r\n treeModel[+treeIndex[0]].Value = [];\r\n }\r\n treeModel[+treeIndex[0]].Value.push(newNode);\r\n } else {\r\n treeModel.push(newNode);\r\n }\r\n }\r\n }\r\n\r\n private removeTreeNode(treeModel: any, index: string) {\r\n const treeIndex = index.split(\"_\");\r\n if (treeIndex.length > 1) {\r\n const newIndex = treeIndex.slice(1).join(\"_\");\r\n this.removeTreeNode(treeModel[+treeIndex[0]].Value, newIndex);\r\n } else {\r\n treeModel.splice(+treeIndex[0], 1);\r\n }\r\n }\r\n\r\n private onTreeNodeChange(el: ZComponentOutputEvent) {\r\n console.log(\"onTreeNodeChange: \", el);\r\n const codeData = JSON.stringify(el.data);\r\n ZComponentHelper.setModelValue(\"Code\", codeData, this.debug);\r\n }\r\n\r\n private addNode() {\r\n const el: ZComponentOutputEvent = {\r\n data: {},\r\n rowData: {},\r\n event: \"\",\r\n target: \"\",\r\n type: \"\",\r\n columnFields$: null\r\n };\r\n this.onAddNode(el);\r\n }\r\n\r\n private async onAddNode(el: ZComponentOutputEvent) {\r\n console.log('onAddNode is called', el);\r\n const modalFields = this.fieldService.getFormFieldCode(\r\n \"mvEditFieldNodeForm\",\r\n \"FormField\",\r\n null,\r\n null\r\n );\r\n // const dataItem = Object.assign({}, el.data);\r\n // dataItem.Value = dataItem._DataValue;\r\n // delete dataItem._DataValue;\r\n const initialModel = {\r\n Name: 'Name', DisplayName: 'Name', Value: 'Name', Type: 'text',\r\n gridColVisible: true,\r\n width: 150,\r\n minWidth: 100,\r\n enableFiltering: true,\r\n enableSorting: true,\r\n pinnedLeft: false,\r\n PlaceHolder: \"Name\",\r\n IsRequired: false,\r\n MinLength: 2,\r\n MaxLength: 50,\r\n Label: \"Name:\",\r\n DivClass: \"col-xs-12 col-sm-6 col-md-6 col-lg-3\",\r\n ReadOnly: false,\r\n ShowLabel: true,\r\n Visible: true,\r\n //EnableHiding: true,\r\n //cellFilter: \"\",\r\n //filterCellFiltered: false,\r\n //enablePinning: true,\r\n //pinnedRight: false,\r\n //UpdateOnBlur: true,\r\n //AppendDivClearFix: false,\r\n };\r\n const zmodel = {\r\n nodeModel: JSON.stringify(initialModel, null, 2)\r\n };\r\n\r\n // const modal: HTMLIonModalElement = await this.mainService.openModalForm(modalGroupParam);\r\n const modal = await this.modalService.show(modalFields, this.debug, 'Add Field Element Item', null, null, zmodel);\r\n\r\n modal.subscribe((modalData: ModalResponse) => {\r\n if (modalData.responseType === \"cancel\") {\r\n return;\r\n }\r\n const newData = JSON.parse(modalData.data.nodeModel);\r\n if (newData.Value) {\r\n newData._DataValue = newData.Value;\r\n newData.Value = null;\r\n }\r\n this.insertTreeNode(newData, this.debug[\"treeModel\"], el.event);\r\n const newTreeModel = JSON.parse(JSON.stringify(this.debug['treeModel']));\r\n const revertedModel = ZComponentHelper.revertTreeModel(newTreeModel);\r\n const newCode = JSON.stringify(revertedModel, null, 2);\r\n ZComponentHelper.setModelValue(\"Code\", newCode, this.debug);\r\n this.updateModel();\r\n // this.mainService.updateModel(null, this.debug);\r\n });\r\n }\r\n\r\n private onRemoveNode(el: ZComponentOutputEvent) {\r\n this.alertService.show('Remove Node', 'Are you sure?',\r\n [\r\n { text: \"No\", cssClass: \"secondary\" } as AlertButton,\r\n { text: \"Yes\", cssClass: \"primary\" } as AlertButton\r\n ])\r\n .subscribe(reply => {\r\n if (reply === 'Yes') {\r\n console.log('Remove Node', el);\r\n this.removeTreeNode(this.debug[\"treeModel\"], el.event);\r\n const newTreeModel = JSON.parse(JSON.stringify(this.debug['treeModel']));\r\n const revertedModel = ZComponentHelper.revertTreeModel(newTreeModel);\r\n const newCode = JSON.stringify(revertedModel, null, 2);\r\n ZComponentHelper.setModelValue(\"Code\", newCode, this.debug);\r\n }\r\n });\r\n }\r\n\r\n private gotoFieldElement() {\r\n this.router.navigate(['admin/field']);\r\n }\r\n\r\n private updateModel() {\r\n const debug = this.debug;\r\n const fg = this.debug.form as FormGroup;\r\n if (!fg.dirty) {\r\n console.warn(\"Debug Form is not dirty hence record is not save.\");\r\n return;\r\n }\r\n\r\n if (!fg.valid) {\r\n const errors = ZComponentHelper.getFormGroupErrors(fg, this.alertService);\r\n console.warn(\"Debug Form Validation got error(s):\", errors);\r\n return;\r\n }\r\n\r\n of(debug.zModel)\r\n .pipe(\r\n // switchMap(zmodel => {\r\n // console.log(\"Before update, zModel:\", zmodel);\r\n // return this.beforeUpdateModel(group);\r\n // }),\r\n tap(() => {\r\n Object.assign(debug.zModel, fg.value);\r\n }),\r\n switchMap(() => {\r\n return this.webApiService.httpPut$(\r\n debug.resourceURL + \"/\" + debug.zModel.Id,\r\n debug.zModel\r\n )\r\n .pipe(\r\n map(res => this.handleSuccess(res, \"Record is updated successfully.\")),\r\n );\r\n }),\r\n switchMap((zmodel: any) => {\r\n console.log(\"After Debug Form updated, zModel:\", zmodel);\r\n if (zmodel && zmodel.Data) {\r\n Object.assign(debug.zModel, zmodel.Data);\r\n fg.patchValue(zmodel.Data);\r\n }\r\n fg.markAsPristine();\r\n // this.afterUpdateModel(group);\r\n return of([]);\r\n }))\r\n .subscribe();\r\n }\r\n\r\n\r\n // ******************** Workflow Button ********************\r\n public loadWorkflowData() {\r\n const zgrid_WorkflowButtonGrid = ZComponentHelper.getComponent(this.debug, 'zgrid_WorkflowButtonGrid');\r\n if (zgrid_WorkflowButtonGrid) {\r\n zgrid_WorkflowButtonGrid.setData(this.debug.zData.collectedWorkflowButtons);\r\n }\r\n }\r\n\r\n private gridWorkflowButtonOnItemClick(event: any) {\r\n const dataItem = Object.assign({}, event.dataItem);\r\n const field = dataItem.refField;\r\n const attribute = dataItem.refAttribute;\r\n\r\n // Get Mapped Info\r\n const params = new HttpParams()\r\n .set(\"ButtonId\", field.Id);\r\n this.webApiService.httpPost$(this.resourceApiService.getURL(\"e1wfs_wfc_getmappedButtonInfoURL\"), params).pipe(\r\n map(async res => {\r\n let roleInfo = [];\r\n let statusInfo = [];\r\n let parentStatusInfo = [];\r\n\r\n if (res.MappedRoleList) {\r\n roleInfo = res.MappedRoleList;\r\n }\r\n\r\n if (res.MappedStatusList) {\r\n res.MappedStatusList.forEach((_status: any) => {\r\n statusInfo.push(_status.Name + ' (' + _status.Code + ')');\r\n });\r\n }\r\n\r\n if (res.MappedParentStatusList) {\r\n res.MappedParentStatusList.forEach((_parentStatus: any) => {\r\n parentStatusInfo.push(_parentStatus.Name + ' (' + _parentStatus.Code + ')');\r\n });\r\n }\r\n\r\n const _mappedInfo = {\r\n 'mappedRoleInfo': roleInfo.length > 0 ? roleInfo : 'N.A.',\r\n 'mappedStatusInfo': statusInfo.length > 0 ? statusInfo : 'N.A.',\r\n 'mappedParentStatusInfo': parentStatusInfo.length > 0 ? parentStatusInfo : 'N.A.'\r\n };\r\n\r\n // retreive all important info\r\n const _buttonInfo = {\r\n 'WorkflowId': field.WorkflowId,\r\n 'ButtonId': field.Id,\r\n 'ButtonName': field.Name,\r\n 'ButtonCode': field.Code,\r\n 'ButtonTypeId': field.Type.Id,\r\n 'ButtonTypeName': field.Type.Name,\r\n 'ButtonTypeCode': field.Type.Code,\r\n 'ButtonVisible': attribute.Visible,\r\n 'ButtonClickEvent': attribute.ClickEvent,\r\n 'ButtonURL': attribute.URL,\r\n 'ButtonIcon': attribute.Icon\r\n };\r\n\r\n let _gotoStatusInfo = {\r\n 'GotoStatusId': 'N.A.',\r\n 'GotoStatusName': 'N.A.',\r\n 'GotoStatusCode': 'N.A.'\r\n };\r\n\r\n if (field.Status) {\r\n const _gotoStatus = field.Status\r\n _gotoStatusInfo = {\r\n 'GotoStatusId': _gotoStatus.Id,\r\n 'GotoStatusName': _gotoStatus.Name,\r\n 'GotoStatusCode': _gotoStatus.Code\r\n }\r\n }\r\n\r\n const propertiesModel = Object.assign(_buttonInfo, _gotoStatusInfo, _mappedInfo);\r\n\r\n const modalFields = this.fieldService.getFormFieldCode(\r\n \"mvWorkflowButtonDebugForm\",\r\n \"FormField\",\r\n null,\r\n null\r\n );\r\n const modal = await this.modalService.show(modalFields, this.debug._group, 'Workflow Button Info', null, null, propertiesModel);\r\n modal.subscribe((modalData: ModalResponse) => {\r\n if (modalData.responseType === \"cancel\") {\r\n return;\r\n }\r\n });\r\n })\r\n ).subscribe();\r\n }\r\n\r\n\r\n handleSuccess(res: Response | any, successMsg: string): Response {\r\n if (res == null) {\r\n this.toastService.show(successMsg);\r\n } else if (res.Data !== undefined && res.ProcessingStatus !== undefined) {\r\n if (res.ProcessingStatus === true) {\r\n if (Array.isArray(res.Data)) {\r\n res.Data.map(s => this.webApiService.showHttpResponseMessage(MESSAGETYPE.Success,\r\n `${successMsg} : ${s.CostCode}`, null));\r\n } else {\r\n this.webApiService.showHttpResponseMessage(MESSAGETYPE.Success, successMsg, null);\r\n }\r\n }\r\n } else {\r\n this.toastService.show(successMsg);\r\n }\r\n return res;\r\n }\r\n\r\n handleError(res: any): Observable<any> {\r\n return this.webApiService.handleError(res);\r\n }\r\n}\r\n","import { Directive, ViewContainerRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[fieldelement]'\r\n})\r\nexport class FieldElementDirective {\r\n constructor(public viewContainerRef: ViewContainerRef) { }\r\n}\r\n","/********** Angular **********/\r\nimport { Injectable, ComponentFactoryResolver, EmbeddedViewRef } from \"@angular/core\";\r\nimport { FormGroup } from '@angular/forms';\r\n\r\n/********** Service & Directive **********/\r\nimport { ZComponent, ZComponentHelper } from 'mmhglobal-zcore';\r\nimport { ComponentObjectService } from 'mmhglobal-middleware';\r\nimport { FieldElementDirective } from '../directives/fieldelement.directive';\r\n// import { ZGridBindingDirective } from \"../zgrid/zgrid.binding.directive\";\r\n\r\n/********** zComponent **********/ \r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ZComponentService {\r\n constructor(\r\n private componentObjectService: ComponentObjectService,\r\n ) { }\r\n \r\n isSkipComponentType(componentType: string): boolean {\r\n return ZComponentHelper.isSkipComponentType(componentType);\r\n }\r\n\r\n loadComponent(\r\n componentFactoryResolver: ComponentFactoryResolver,\r\n fieldElement: FieldElementDirective,\r\n field: any,\r\n group: any,\r\n form: FormGroup\r\n ) {\r\n // if(field.Name === 'FormDetailContactGrid') {\r\n // debugger;\r\n // }\r\n\r\n if (this.isSkipComponentType(field.Type)) {\r\n return;\r\n }\r\n\r\n let componentFactory;\r\n const componentName = this.componentObjectService.getObject(field.Type);\r\n if (componentName) {\r\n componentFactory = componentFactoryResolver.resolveComponentFactory(\r\n componentName\r\n );\r\n } else {\r\n componentFactory = componentFactoryResolver.resolveComponentFactory(\r\n this.componentObjectService.getObject(\"unknown\")\r\n );\r\n }\r\n\r\n const viewContainerRef = fieldElement.viewContainerRef;\r\n viewContainerRef.clear();\r\n if (!form) {\r\n console.warn('FormGroup is empty!');\r\n debugger;\r\n }\r\n const componentRef = viewContainerRef.createComponent(componentFactory);\r\n (componentRef.instance as ZComponent).data = field;\r\n (componentRef.instance as ZComponent).group = group;\r\n (componentRef.instance as ZComponent).form = form;\r\n // (componentRef.instance as ZComponent).outputEvent.subscribe((event: any) => group.outputEvent(event));\r\n }\r\n\r\n appendComponentToDynamicForm(\r\n componentFactoryResolver: ComponentFactoryResolver,\r\n injector: any,\r\n appRef: any,\r\n field: any,\r\n group: any,\r\n containerId: string\r\n ) {\r\n if (this.isSkipComponentType(field.Type)) {\r\n return;\r\n }\r\n\r\n let componentRef;\r\n const componentName = this.componentObjectService.getObject(field.Type);\r\n // 1. Create a component reference from the component\r\n if (componentName) {\r\n componentRef = componentFactoryResolver\r\n .resolveComponentFactory(componentName)\r\n .create(injector);\r\n } else {\r\n componentRef = componentFactoryResolver\r\n .resolveComponentFactory(this.componentObjectService.getObject(\"unknown\"))\r\n .create(injector);\r\n }\r\n\r\n // 2. Attach component to the appRef so that it's inside the ng component tree\r\n appRef.attachView(componentRef.hostView);\r\n\r\n // 3. Get DOM element from component\r\n const domElem = (componentRef.hostView as EmbeddedViewRef<any>)\r\n .rootNodes[0] as HTMLElement;\r\n\r\n // 4. Append DOM element to the body\r\n const dynamicFormHost: any = document.querySelector(\"#\" + containerId);\r\n dynamicFormHost.appendChild(domElem);\r\n\r\n (componentRef.instance as ZComponent).data = field;\r\n (componentRef.instance as ZComponent).group = group;\r\n return componentRef;\r\n }\r\n}\r\n","/********** Angular **********/\r\nimport { Component, OnInit, OnDestroy, Input, ViewChild, ComponentFactoryResolver } from \"@angular/core\";\r\nimport { FormGroup } from '@angular/forms';\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\n\r\n/********** Component & Service **********/\r\nimport { FieldElementDirective } from \"../directives/fieldelement.directive\";\r\nimport { ZComponentService } from '../services/zcomponent.service';\r\nimport { ZField, ZGroup } from \"mmhglobal-zcore\";\r\n\r\n\r\n@Component({\r\n selector: \"app-zformcontrol\",\r\n templateUrl: \"./zformcontrol.component.html\",\r\n styleUrls: [\"./zformcontrol.component.scss\"]\r\n})\r\nexport class ZformcontrolComponent implements OnInit, OnDestroy {\r\n\r\n @Input() field: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n // @Input() containerid: string;\r\n @ViewChild(FieldElementDirective, { static: true }) fieldElement: FieldElementDirective;\r\n componentRef: any;\r\n\r\n constructor(\r\n private componentFactoryResolver: ComponentFactoryResolver,\r\n private zcomponentService: ZComponentService\r\n // private appRef: ApplicationRef,\r\n // private injector: Injector,\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.zcomponentService.loadComponent(this.componentFactoryResolver, this.fieldElement, this.field, this.group, this.form);\r\n // this.componentRef = ZComponentHelper.appendComponentToDynamicForm(\r\n // this.componentFactoryResolver,\r\n // this.injector,\r\n // this.appRef,\r\n // this.field,\r\n // this.group,\r\n // this.containerid\r\n // );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n // this.appRef.detachView(this.componentRef.hostView);\r\n // this.componentRef.destroy();\r\n }\r\n}\r\n","<!-- <ion-col size=12 sizeSm=\"12\" sizeMd=\"6\" sizeLg=\"4\" sizeXl=\"3\" fieldelement></ion-col> -->\r\n<span fieldelement></span>","/********** Angular **********/\r\nimport { Component, OnInit, Input, OnDestroy } from \"@angular/core\";\r\nimport { FormGroup, FormControl, ValidatorFn } from \"@angular/forms\";\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\nimport { of, Subscription } from 'rxjs';\r\nimport { switchMap, delay } from 'rxjs/operators';\r\n\r\n/********** Component & Service **********/\r\nimport { ZComponentDebugService } from '../services/zcomponent.debug.service';\r\nimport { AuthService, FieldService, ZComponentHelper, ZGroup, ZField } from 'mmhglobal-zcore';\r\n\r\n\r\n@Component({\r\n selector: \"app-zform\",\r\n templateUrl: \"./zform.component.html\",\r\n styleUrls: [\"./zform.component.scss\"]\r\n})\r\nexport class ZformComponent implements OnInit, OnDestroy {\r\n @Input() group: ZGroup;\r\n @Input() fieldName: string;\r\n form: FormGroup;\r\n fields: Array<ZField>;\r\n isLoading = true;\r\n subscription: Subscription;\r\n fieldIndex = [];\r\n // @ViewChild('frm', {static: true}) form: NgForm;\r\n\r\n constructor(\r\n private authService: AuthService,\r\n private fieldService: FieldService,\r\n private debugService: ZComponentDebugService\r\n // private modalService: ModalService,\r\n // private router: Router\r\n ) { }\r\n\r\n ngOnInit() {\r\n if (!this.fieldName) {\r\n this.onInitNormal();\r\n // this.form = this.toFormGroup(this.group.fields);\r\n // this.group.form = this.form;\r\n // this.fields = this.group.fields;\r\n this.isLoading = false;\r\n } else {\r\n this.fieldService.getFormFieldCode(this.fieldName, 'FormField', this, 'fields').pipe(\r\n switchMap(fieldElements => {\r\n if (this.fieldName === 'debug') {\r\n return this.debugService.onStartDebugger(fieldElements, this);\r\n } else {\r\n this.group.fields = fieldElements;\r\n this.onInitNormal();\r\n }\r\n }),\r\n switchMap(() => {\r\n this.isLoading = false;\r\n if (this.group._isDebugging && this.group._debug.isLoading) {\r\n this.group._debug.isLoading = false;\r\n }\r\n return of([]);\r\n }),\r\n delay(500))\r\n .subscribe(() => {\r\n this.debugService.LoadGridData();\r\n this.debugService.loadWorkflowData();\r\n });\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.subscription) { // for debugger subscription\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n\r\n getGroup() {\r\n if (this.fieldName !== 'debug') {\r\n return this.group;\r\n } else {\r\n return this.group._debug;\r\n }\r\n }\r\n\r\n private onInitNormal() {\r\n this.form = this.toFormGroup(this.group.fields);\r\n this.group.form = this.form;\r\n this.fields = this.group.fields;\r\n ZComponentHelper.setFieldsDivClass(this.group._projectName, this.group.fieldName, this.fields, this.authService);\r\n }\r\n\r\n\r\n ComponentIsVisible(field: ZField): any {\r\n return ZComponentHelper.ComponentIsVisible(field, this.group);\r\n }\r\n\r\n private toFormGroup(fieldElements: Array<ZField>) {\r\n const formControls: { [key: string]: FormControl } = {};\r\n this.getFormControls(fieldElements, formControls);\r\n const newFormGroup = new FormGroup(formControls);\r\n return newFormGroup;\r\n }\r\n\r\n private addToFieldIndex(field: ZField) {\r\n if (!field.Name) {\r\n console.error('Field Name undefined: ', field);\r\n }\r\n if (field.Name && !this.fieldIndex.includes(field.Name)) {\r\n this.fieldIndex.push(field.Name);\r\n } else {\r\n console.error('Field Name Duplication: ' + field.Name + '; ', field);\r\n }\r\n }\r\n\r\n\r\n private getFormControls(\r\n fieldArray: Array<ZField>,\r\n formControls: { [key: string]: FormControl }\r\n ) {\r\n fieldArray.forEach(field => {\r\n this.addToFieldIndex(field);\r\n if (typeof field.Value === \"string\" && field.Value.indexOf(\".\") !== -1) {\r\n if (['zgrid', 'ztree', 'zimg', 'textareajson'].indexOf(field.Type) === -1) {\r\n console.warn(\"FormControl - invalid field value\", field.Value);\r\n }\r\n } else {\r\n if (Array.isArray(field.Value)) {\r\n this.getFormControls(field.Value, formControls);\r\n } else {\r\n const isFormControl = ZComponentHelper.isFormControl(field);\r\n const isVisible = ZComponentHelper.isVisibleFormControl(this, field);\r\n const isRequired = ZComponentHelper.isRequiredFormControl(this, field);\r\n if (isFormControl === true) {\r\n const validators: ValidatorFn[] = ZComponentHelper.getValidators(field, isVisible, isRequired);\r\n formControls[field.Value] = new FormControl(\r\n this.group.zModel[field.Value], validators\r\n );\r\n if (ZComponentHelper.hasCCField(field.Type)) {\r\n const ccValidators: ValidatorFn[] = ZComponentHelper.getCCValidators(field, isVisible, isRequired);\r\n formControls[field.CCValue] = new FormControl(\r\n this.group.zModel[field.CCValue],\r\n ccValidators\r\n );\r\n }\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n private getReadOnlyValue(field: ZField) {\r\n const readOnlyValue = ZComponentHelper.getGroupEvalValue.call(this, field.ReadOnly);\r\n if (typeof readOnlyValue === 'function') {\r\n return readOnlyValue();\r\n }\r\n return readOnlyValue;\r\n }\r\n\r\n trackByFn(index: number, item): number {\r\n //return item['Type'] + '-' + item['Name'];\r\n return index;\r\n }\r\n\r\n // private getValue(field: ZField) {\r\n // if (field.Type.indexOf('date') !== -1) {\r\n // return new Date(this.group.zModel[field.Value]);\r\n // } else {\r\n // return this.group.zModel[field.Value];\r\n // }\r\n // }\r\n}\r\n","<div class=\"e1-form\">\r\n <!--<div class=\"k-overlay\" *ngIf=\"isLoading\"></div>-->\r\n <form [formGroup]=\"form\" autocomplete=\"off\" *ngIf=\"!isLoading\">\r\n <ion-grid>\r\n <ion-row id=\"dynamic-form-host\" class=\"ion-align-items-start\">\r\n <app-zformcontrol *ngFor=\"let field of fields; trackBy: trackByFn\"\r\n [ngClass]=\"group[field['isVisibleField']] ? field.DivClass :\r\n ((field.Visible === true) ? field.DivClass : 'flex-hide')\"\r\n [field]=\"field\"\r\n [group]=\"getGroup()\"\r\n [form]=\"form\"\r\n id=\"{{field.Type}}-{{field.Name}}\"></app-zformcontrol>\r\n </ion-row>\r\n </ion-grid>\r\n </form>\r\n</div>\r\n","import { NgModule, Directive, ElementRef, OnInit } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[appScrollbarTheme]'\r\n})\r\nexport class ScrollbarThemeDirective implements OnInit {\r\n\r\n constructor(private el: ElementRef) {\r\n }\r\n\r\n private stylesheet = `\r\n ::-webkit-scrollbar {\r\n width: 5px;\r\n }\r\n ::-webkit-scrollbar-track {\r\n background: var(--ion-color-light);\r\n }\r\n ::-webkit-scrollbar-thumb {\r\n border-radius: 2px;\r\n background: var(--ion-color-light-shade);\r\n border: 0 solid #020202;\r\n }\r\n ::-webkit-scrollbar-thumb:hover {\r\n }\r\n `;\r\n\r\n // background: linear-gradient(var(--ion-color-medium-tint), var(--ion-color-light));\r\n\r\n ngOnInit(): void {\r\n const styleElmt = this.el.nativeElement.shadowRoot.querySelector('style');\r\n if (styleElmt) {\r\n styleElmt.append(this.stylesheet);\r\n } else {\r\n const barStyle = document.createElement('style');\r\n barStyle.append(this.stylesheet);\r\n this.el.nativeElement.shadowRoot.appendChild(barStyle);\r\n }\r\n }\r\n\r\n\r\n\r\n}\r\n\r\n\r\n\r\n","/********** Angular **********/\r\nimport { Component, OnInit, OnDestroy, Input } from \"@angular/core\";\r\nimport { FormGroup } from '@angular/forms';\r\n\r\n/********** Ionic **********/\r\nimport { ModalController, Platform } from \"@ionic/angular\";\r\n\r\n/********** Plugin **********/\r\nimport { Subscription, Observable } from \"rxjs\";\r\nimport { DialogContentBase, DialogRef } from '@progress/kendo-angular-dialog';\r\n\r\n/********** Component & Service **********/\r\nimport { \r\n ZGroup, ModalPageParams,\r\n WebApiService, AlertService, ZCoreService, FieldService, ResourceApiService,\r\n ZComponentHelper, ZComponentOutputEvent\r\n} from \"mmhglobal-zcore\";\r\nimport { ZmodalHelper, ModalResponse } from 'mmhglobal-zmodal';\r\n\r\n\r\n@Component({\r\n selector: 'app-zmodal',\r\n templateUrl: './zmodal.component.html',\r\n styleUrls: ['./zmodal.component.scss'],\r\n})\r\nexport class ZmodalComponent extends DialogContentBase implements OnInit, OnDestroy {\r\n @Input() modalParams: ModalPageParams;\r\n\r\n group: ZGroup = new ZGroup(true);\r\n subscription: Subscription;\r\n backButtonSubscription: Subscription;\r\n\r\n constructor( \r\n public dialog: DialogRef,\r\n private modalCtrl: ModalController,\r\n private zcoreService: ZCoreService,\r\n private webApiService: WebApiService,\r\n private resourceApiService: ResourceApiService,\r\n private fieldService: FieldService,\r\n private platform: Platform,\r\n private alertService: AlertService\r\n\r\n ) {\r\n super(dialog);\r\n }\r\n\r\n // get modalGroup() {\r\n // return this.group;\r\n // }\r\n\r\n ngOnInit() {\r\n ZmodalHelper.onInit_ModalForm(this);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n ZmodalHelper.onDestroy_ModalForm(this);\r\n }\r\n\r\n onCancel(event?: ZComponentOutputEvent) {\r\n ZmodalHelper.onCancel(this, event);\r\n // this.dialog.close();\r\n }\r\n\r\n onConfirm(event: ZComponentOutputEvent) {\r\n ZmodalHelper.onConfirm(this, event);\r\n // const fg = this.group.form as FormGroup;\r\n // if (!this.group.form) {\r\n // return;\r\n // }\r\n\r\n // if (!fg.dirty) {\r\n // console.warn('Form is not dirty hence modalform record is not saved.');\r\n // this.onCancel();\r\n // return;\r\n // }\r\n\r\n // if (!fg.valid) {\r\n // const errors = ZComponentHelper.getFormGroupErrors(fg, this.alertService);\r\n // console.warn(\"Form Validation got error(s):\", errors);\r\n // return;\r\n // }\r\n\r\n // Object.assign(this.group.zModel, fg.value);\r\n // this.modalCtrl.dismiss(this.group.zModel, \"confirm\");\r\n // if (ZComponentHelper.isMobileScreen()) {\r\n // this.modalCtrl.dismiss(event.data, \"confirm\");\r\n // } else {\r\n // this.dialog.close(event.data);\r\n // }\r\n }\r\n\r\n onInitClose(event?: ZComponentOutputEvent) {\r\n ZmodalHelper.onInitClose(this,event);\r\n }\r\n\r\n isSITEnvironment() {\r\n return this.zcoreService.isDebugSession();\r\n }\r\n\r\n\r\n // to serve actionButton at formHeader\r\n subjectEvent(event: ZComponentOutputEvent, group: ZGroup, me: any) {\r\n if (!event || !event.target || !event.target.startsWith('modalGroup')) {\r\n return;\r\n }\r\n console.log(\">> SubjectEvent\", event);\r\n // const target = event.target.replace('modalGroup.', 'group.');\r\n const callFunc = ZComponentHelper.getGroupEvalValue.call(this, event.target, group);\r\n // callFunc(event);\r\n if (typeof callFunc === \"function\") {\r\n const fg = this.group.form as FormGroup;\r\n Object.assign(this.group.zModel, fg.value);\r\n event.data = this.group.zModel;\r\n if (event.target.startsWith('modalGroup.modalAnswer') || event.target.startsWith('modalGroup.modalClose') || event.target.startsWith('modalGroup.modalCancel')) {\r\n const newFunc = callFunc.bind(this);\r\n newFunc(event);\r\n } else {\r\n const newFunc = callFunc.bind(group.ctrlScope);\r\n newFunc(event);\r\n }\r\n } else {\r\n console.warn(\r\n \"Function not defined in group for: \",\r\n callFunc,\r\n \", Event: \",\r\n event\r\n );\r\n }\r\n }\r\n\r\n getModel$(group: any, id: string): Observable<any> {\r\n const recId = id || group.referenceId;\r\n return this.webApiService.httpGet$(group.resourceURL + \"/\" + recId, null);\r\n }\r\n\r\n getGridStyle() {\r\n // debugger;\r\n if (!this.isMobileScreen) {\r\n return {\r\n \"height.px\": 500,\r\n \"width.px\": 700\r\n };\r\n }\r\n return;\r\n }\r\n\r\n isMobileScreen() {\r\n const v = ZComponentHelper.isMobileScreen();\r\n return v;\r\n }\r\n}\r\n","<ion-header *ngIf=\"isMobileScreen()\">\r\n <ion-toolbar>\r\n <ion-buttons slot=\"start\">\r\n <ion-button (click)=\"onCancel()\">\r\n <!-- <ion-icon name=\"close\"></ion-icon> -->\r\n <fa-icon [icon]=\"'times'\" size=\"lg\"></fa-icon>\r\n </ion-button>\r\n </ion-buttons>\r\n <ion-title>\r\n {{ modalParams.formHeader }}\r\n </ion-title>\r\n <ion-buttons slot=\"primary\" *ngIf=\"!group.isLoading\">\r\n <app-uiactionbutton [group]=\"group\"></app-uiactionbutton>\r\n </ion-buttons>\r\n </ion-toolbar>\r\n</ion-header>\r\n\r\n<ion-content appScrollbarTheme [ngStyle]=\"getGridStyle()\">\r\n <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 </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 </ion-row>\r\n <ion-row *ngIf=\"isSITEnvironment() && !group.isLoading\">\r\n <ion-col>\r\n <pre style=\"font-size: x-small;\">{{group.zModel | json}}</pre>\r\n </ion-col>\r\n </ion-row>\r\n </ion-grid>\r\n</ion-content>\r\n\r\n","/********** Angular **********/\r\nimport { Component, OnInit, OnDestroy, Input } from \"@angular/core\";\r\nimport { FormGroup } from '@angular/forms';\r\n\r\n/********** Ionic **********/\r\n// import { ModalController, Platform } from \"@ionic/angular\";\r\n\r\n/********** Plugin **********/\r\n// import { switchMap, tap } from \"rxjs/operators\";\r\nimport { Subscription, of, BehaviorSubject, Observable, fromEvent } from \"rxjs\";\r\n\r\n/********** Component & Service **********/\r\n// import { FieldService } from \"../mmhglobal-zcore/field.service\";\r\n// import { ResourceApiService } from \"../mmhglobal-zcore/resourceapi.service\";\r\nimport {\r\n WebApiService, ModalPageParams,\r\n ZGroup, ZCoreService, ZComponentHelper, ZComponentOutputEvent, FieldService,\r\n} from \"mmhglobal-zcore\";\r\nimport { ZmodalHelper } from 'mmhglobal-zmodal';\r\n\r\n\r\n@Component({\r\n selector: \"app-zmodal\",\r\n templateUrl: \"./zmodal.component.html\",\r\n styleUrls: [\"./zmodal.component.scss\"]\r\n})\r\nexport class ZmodalMobileComponent implements OnInit, OnDestroy {\r\n @Input() modalParams: ModalPageParams;\r\n\r\n group: ZGroup = new ZGroup(true);\r\n subscription: Subscription;\r\n backButtonSubscription: Subscription;\r\n\r\n constructor(\r\n private webApiService: WebApiService,\r\n private zcoreService: ZCoreService,\r\n private fieldService: FieldService // Use in mmhglobal-zmodal.helper\r\n ) {\r\n }\r\n\r\n // get modalGroup() {\r\n // return this.group;\r\n // }\r\n\r\n ngOnInit() {\r\n ZmodalHelper.onInit_ModalForm(this);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n ZmodalHelper.onDestroy_ModalForm(this);\r\n }\r\n\r\n onCancel(event?: ZComponentOutputEvent) {\r\n ZmodalHelper.onCancel(this, event);\r\n // this.modalCtrl.dismiss(null, \"cancel\");\r\n }\r\n\r\n onConfirm(event: ZComponentOutputEvent) {\r\n ZmodalHelper.onConfirm(this, event);\r\n // const fg = this.group.form as FormGroup;\r\n // if (!this.group.form) {\r\n // return;\r\n // }\r\n\r\n // if (!fg.dirty) {\r\n // console.warn('Form is not dirty hence modalform record is not saved.');\r\n // this.onCancel();\r\n // return;\r\n // }\r\n\r\n // if (!fg.valid) {\r\n // const errors = ZComponentHelper.getFormGroupErrors(fg, this.alertService);\r\n // console.warn(\"Form Validation got error(s):\", errors);\r\n // return;\r\n // }\r\n\r\n // // Object.assign(this.group.zModel, fg.value);\r\n // // this.modalCtrl.dismiss(this.group.zModel, \"confirm\");\r\n // // if (ZComponentHelper.isMobileScreen()) {\r\n // this.modalCtrl.dismiss(event.data, \"confirm\");\r\n // // } else {\r\n // // this.dialog.close(event.data);\r\n // // }\r\n }\r\n\r\n onInitClose(event?: ZComponentOutputEvent) {\r\n ZmodalHelper.onInitClose(this, event);\r\n }\r\n\r\n // to serve actionButton at formHeader\r\n subjectEvent(event: ZComponentOutputEvent, group: ZGroup, me: any) {\r\n if (!event || !event.target || !event.target.startsWith('modalGroup')) {\r\n return;\r\n }\r\n console.log(\">> SubjectEvent\", event);\r\n // const target = event.target.replace('modalGroup.', 'group.');\r\n const callFunc = ZComponentHelper.getGroupEvalValue.call(this, event.target, group);\r\n // callFunc(event);\r\n if (typeof callFunc === \"function\") {\r\n const fg = this.group.form as FormGroup;\r\n Object.assign(this.group.zModel, fg.value);\r\n event.data = this.group.zModel;\r\n if (event.target.startsWith('modalGroup.modalAnswer') || event.target.startsWith('modalGroup.modalCancel')) {\r\n const newFunc = callFunc.bind(this);\r\n newFunc(event);\r\n } else {\r\n const newFunc = callFunc.bind(group.ctrlScope);\r\n newFunc(event);\r\n }\r\n } else {\r\n console.warn(\r\n \"Function not defined in group for: \",\r\n callFunc,\r\n \", Event: \",\r\n event\r\n );\r\n }\r\n }\r\n\r\n getModel$(group: any, id: string): Observable<any> {\r\n const recId = id || group.referenceId;\r\n return this.webApiService.httpGet$(group.resourceURL + \"/\" + recId, null);\r\n }\r\n\r\n getGridStyle() {\r\n // debugger;\r\n if (!this.isMobileScreen) {\r\n return {\r\n \"height.px\": 500,\r\n \"width.px\": 700\r\n };\r\n }\r\n return;\r\n }\r\n\r\n isMobileScreen() {\r\n const v = ZComponentHelper.isMobileScreen();\r\n return v;\r\n }\r\n\r\n isSITEnvironment() {\r\n return this.zcoreService.isDebugSession();\r\n }\r\n}\r\n","/********** Angular **********/\r\nimport { Injectable } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { Router } from '@angular/router';\r\n\r\n/********** Ionic **********/\r\nimport { ModalController, NavController } from '@ionic/angular';\r\n\r\n/********** Plugin **********/\r\nimport { Observable, BehaviorSubject, Subscription, of, from } from 'rxjs';\r\nimport { tap, switchMap, take, map } from 'rxjs/operators';\r\n\r\n/********** Component & Service **********/\r\nimport {\r\n AlertButton, MESSAGETYPE, ModalPageParams,\r\n AlertService, CacheService, FieldService, ResourceApiService, ToastService, WebApiService,\r\n ZComponentHelper, ZComponentOutputEvent, ZComponentSize, ZCoreService, ZField, ZGroup\r\n} from 'mmhglobal-zcore';\r\nimport { ModalService, ModalResponse } from 'mmhglobal-zmodal';\r\n// import { ModalService } from '../zmodal/modal.service';\r\nimport { ZComponentDebugService } from './zcomponent.debug.service';\r\nimport { ZmodalComponent } from '../zmodal/zmodal.component';\r\nimport { ZmodalMobileComponent } from '../zmodal/zmodal-mobile.component';\r\nimport { ZGrid } from '../zgrid/zgrid.component';\r\n// import { ZmodalPage } from '../zmodal/zmodal.page';\r\n\r\n// import { ZComponentHelper, ZComponentOutputEvent, ModalPageParams, ZGrid } from '../dynamicform/zcomponent.model';\r\n// import { ZGroup, ZField } from '../model/zgroup.model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class MainService {\r\n private group: ZGroup;\r\n private oauthEnvironmentUrl: string;\r\n\r\n constructor(\r\n private router: Router,\r\n private modalCtrl: ModalController,\r\n private navController: NavController,\r\n private alertService: AlertService,\r\n private cacheService: CacheService,\r\n private fieldService: FieldService,\r\n private resourceApiService: ResourceApiService,\r\n private toastService: ToastService,\r\n private webApiService: WebApiService,\r\n private zcoreService: ZCoreService,\r\n private modalService: ModalService,\r\n private debugService: ZComponentDebugService\r\n ) {\r\n console.log('MainService constructor');\r\n this.oauthEnvironmentUrl = this.zcoreService.getEnvironment().e1OauthUrl + '/';\r\n }\r\n\r\n startUp() {\r\n console.log('At main.service (StartUp) ...');\r\n }\r\n\r\n setGroup(group: ZGroup) {\r\n this.group = group;\r\n this.fieldService.setGroup(group);\r\n this.resourceApiService.setGroup(group);\r\n this.webApiService.setGroup(group);\r\n const isDebugging = this.zcoreService.isDebugSession() || false;\r\n if (isDebugging) {\r\n this.debugService.onInitDebugger(group);\r\n }\r\n }\r\n\r\n getResourceServerData() {\r\n return this.resourceApiService.loadData();\r\n }\r\n\r\n getGroupFields(\r\n ctrlName: string,\r\n formType: \"ListField\" | \"FormField\",\r\n group: ZGroup,\r\n propertyName: string\r\n ) {\r\n return this.fieldService.getFormFieldCode(\r\n ctrlName,\r\n formType,\r\n group,\r\n propertyName\r\n );\r\n }\r\n\r\n initializeGroup(\r\n group: ZGroup,\r\n ctrlName: string,\r\n pageName: string,\r\n me: any\r\n ): Subscription {\r\n if (me.subscription) {\r\n me.subscription.unsubscribe();\r\n }\r\n const resourceName = group.resourceURLName || ctrlName;\r\n group.resourceURLName = resourceName;\r\n\r\n Object.assign(group, {\r\n resourceURL: this.resourceApiService.getURL(resourceName),\r\n gridColumnFields: this.fieldService.getFormFieldCode(\r\n ctrlName,\r\n \"FormField\",\r\n null,\r\n null\r\n ),\r\n ctrlScope: me,\r\n pageName,\r\n ctrlName,\r\n // createModelURL: \"/create\" + ctrlName.toLowerCase(),\r\n editModelURL: ctrlName.toLowerCase(),\r\n // listModelURL: \"/list\" + ctrlName.toLowerCase(),\r\n // formHeader: \"...\",\r\n isLoading: true,\r\n fields: [],\r\n zModel: {},\r\n zComponents: {},\r\n zData: {},\r\n subject: new BehaviorSubject<ZComponentOutputEvent>(null),\r\n // form: null as FormGroup, // removed for bug fix.\r\n cancelButtonName: \"Close\",\r\n zButtonsCount: 0,\r\n // topRightActionButton: [],\r\n // onAction: this.onAction.bind(this),\r\n backNavigation: this.backNavigation.bind(this),\r\n historyBack: this.historyBack.bind(this),\r\n refreshPage: this.refreshPage,\r\n refreshGrid: this.refreshGrid.bind(this),\r\n updateModel: this.updateModel.bind(this),\r\n createModel: this.createModel.bind(this),\r\n cloneNewModel: this.cloneNewModel.bind(this),\r\n deleteModel: this.deleteModel.bind(this),\r\n newModel: this.newModel.bind(this),\r\n // _isDebugging: environment.debugSession || false,\r\n // _debug: {\r\n // zData: { collectedActivities: [], activityCount: 0 }\r\n // }\r\n // afterGetModelSuccess: null,\r\n // beforeUpdateModel: null,\r\n // isEdit: false\r\n });\r\n\r\n me.subscription = group.subject.subscribe((event: ZComponentOutputEvent) =>\r\n this.subjectEvent(event, group, me)\r\n );\r\n\r\n return me.subscription;\r\n }\r\n\r\n getModel$(group: ZGroup, id: string): Observable<any> {\r\n const recId = id || group.referenceId;\r\n return this.webApiService\r\n .httpGet$(group.resourceURL + \"/\" + recId, null)\r\n .pipe(\r\n tap((zmodel) => {\r\n group.zModel = zmodel;\r\n if (\r\n group.parentReferenceField &&\r\n Object.keys(zmodel).indexOf(group.parentReferenceField) !== -1 &&\r\n !group.backNavigationPage.endsWith(\".edit\")\r\n ) {\r\n group.backNavigationPage =\r\n group.backNavigationPage +\r\n \"/\" +\r\n zmodel[group.parentReferenceField].toString() +\r\n \"/edit\";\r\n }\r\n }),\r\n switchMap(() => {\r\n if (group.afterGetModelSuccess) {\r\n return this.afterGetModelSuccess(group);\r\n }\r\n return of([]);\r\n })\r\n );\r\n }\r\n\r\n canExit(form: FormGroup): boolean | Observable<boolean> {\r\n if (!form || !form.dirty) {\r\n return true;\r\n }\r\n\r\n if (form['skipDirtyCheck']) {\r\n return true;\r\n }\r\n\r\n return this.alertService\r\n .show(\"Data not save yet\", \"Are you sure want to discard the changes?\", [\r\n \"Cancel\",\r\n \"Discard Changes\",\r\n ])\r\n .pipe(\r\n switchMap((reply) => {\r\n if (reply === \"Discard Changes\") {\r\n return of(true);\r\n }\r\n return of(false);\r\n })\r\n );\r\n // const replySub = new Subject<boolean>();\r\n // this.alertCtrl\r\n // .create({\r\n // header: \"Data not save yet\",\r\n // // subHeader: 'SubHeader statement here',\r\n // message: \"Are you sure want to discard the changes?\",\r\n // buttons: [\r\n // {\r\n // text: \"Cancel\",\r\n // role: \"cancel\",\r\n // cssClass: \"secondary\",\r\n // handler: () => {\r\n // replySub.next(false);\r\n // }\r\n // },\r\n // {\r\n // text: \"Discard Changes\",\r\n // cssClass: \"warning\",\r\n // handler: () => {\r\n // replySub.next(true);\r\n // }\r\n // }\r\n // ]\r\n // })\r\n // .then(alertElement => {\r\n // alertElement.present();\r\n // });\r\n // return replySub.asObservable().pipe(take(1));\r\n }\r\n\r\n // async openModalForm(modalParams: ModalPageParams) {\r\n // // console.log(\"openModalForm\");\r\n // console.error(\r\n // \"Please use ModalService.show instead of MainService.openModalForm!\"\r\n // );\r\n // // const modal = this.modalService.show(modalParams.colFields$ || modalParams.controllerName, modalParams.parentGroup,\r\n // // modalParams.formHeader, modalParams.zModel, modalParams.referId);\r\n // const modal = await this.modalCtrl.create({\r\n // component: ZmodalPage,\r\n // backdropDismiss: true,\r\n // componentProps: {\r\n // modalParams,\r\n // },\r\n // });\r\n // modal.present();\r\n // return modal;\r\n // // .onWillDismiss((zmodel: any) => {\r\n // // this.\r\n // // });\r\n // }\r\n\r\n closeModalForm() {\r\n this.modalCtrl.dismiss();\r\n }\r\n\r\n subjectEvent(event: ZComponentOutputEvent, group: ZGroup, me: any) {\r\n if (!event || !event.target || event.target.startsWith(\"modalGroup.\")) {\r\n return;\r\n }\r\n console.log(\">> SubjectEvent\", event);\r\n let callFunc;\r\n\r\n try {\r\n callFunc = ZComponentHelper.getGroupEvalValue.call(\r\n group.ctrlScope,\r\n event.target,\r\n group\r\n );\r\n // ZComponentHelper.getGroupValue(event.Target, group);\r\n } catch (error) {\r\n console.warn(\r\n \"Error when getGroupValue: \",\r\n event.target,\r\n \" > Error: \",\r\n error\r\n );\r\n }\r\n\r\n // callFunc(event);\r\n if (typeof callFunc === \"function\") {\r\n const newFunc = callFunc.bind(me);\r\n newFunc(event, group, me);\r\n } else if (typeof callFunc === \"string\") {\r\n if (event.type.endsWith(\"onNavigateTo\")) {\r\n const nUrl = event.target.replace(\"/:id\", \"/\" + event.data);\r\n this.router.navigate([nUrl]);\r\n return;\r\n }\r\n\r\n if (event.type === \"zgrid-cellClick\") {\r\n // (callFunc.startsWith('edit')) { zgrid-cellClick\r\n const cName = callFunc.slice(4);\r\n // // debugger;\r\n // const modalGroupParam: ModalPageParams = {};\r\n // modalGroupParam.controllerName = cName;\r\n // modalGroupParam.referId = event.data.Id;\r\n // modalGroupParam.colFields$ = event.columnFields$;\r\n // modalGroupParam.parentGroup = me.group;\r\n\r\n // this.openModalForm(modalGroupParam);\r\n this.modalService.show(\r\n event.columnFields$ || cName,\r\n group,\r\n \"\",\r\n {},\r\n event.data.Id\r\n );\r\n }\r\n } else if (typeof callFunc === \"object\") {\r\n if (event.type === \"zgrid-cellClick\") {\r\n if (callFunc.navigateUrl) {\r\n const url = callFunc.navigateUrl.replace(\":id\", event.data.Id);\r\n this.router.navigate([url]);\r\n return;\r\n }\r\n\r\n const modalGroupParam: ModalPageParams = {};\r\n modalGroupParam.controllerName = callFunc.ctrlName;\r\n modalGroupParam.referId = event.data.Id;\r\n modalGroupParam.colFields$ = event.columnFields$;\r\n modalGroupParam.parentGroup = me.group;\r\n modalGroupParam.formHeader = callFunc.formHeader;\r\n\r\n if (callFunc.formHeader) {\r\n // this.openModalForm(modalGroupParam);\r\n this.modalService.show(\r\n event.columnFields$ || callFunc.ctrlName,\r\n group,\r\n callFunc.formHeader,\r\n {},\r\n event.data.Id\r\n );\r\n return;\r\n }\r\n console.warn(\r\n \"Invalid callFunc type: \",\r\n callFunc,\r\n \" event.Target: \",\r\n event.target\r\n );\r\n }\r\n // this.openModalFormByComponent(callFunc.type, event.Data.Id);\r\n } else {\r\n console.warn(\r\n \"Function not defined in group for: \",\r\n event.target,\r\n \", Event: \",\r\n event\r\n );\r\n }\r\n }\r\n\r\n handleSuccess(res: Response | any, successMsg: string): Response {\r\n this.group.isTriggered = false;\r\n\r\n if (res) {\r\n if (res.ProcessingStatus) {\r\n this.webApiService.showHttpResponseMessage(\r\n MESSAGETYPE.Success,\r\n successMsg,\r\n null\r\n );\r\n }\r\n return res;\r\n }\r\n }\r\n\r\n handleError(res: any): Observable<any> {\r\n this.group.isTriggered = false;\r\n return this.webApiService.handleError(res);\r\n }\r\n\r\n private backNavigation(event: ZComponentOutputEvent, group: ZGroup, me: any) {\r\n if (group.beforeBackNavigationPage) {\r\n group.beforeBackNavigationPage(group).subscribe(() => {\r\n group['isTriggered'] = false;\r\n this.router.navigate([group.backNavigationPage]);\r\n\r\n //if (group['reload']) {\r\n // group['isTriggered'] = false;\r\n // this.router.routeReuseStrategy.shouldReuseRoute = function () {\r\n // return false;\r\n // }\r\n // this.router.onSameUrlNavigation = 'reload';\r\n //}\r\n //this.router.navigate([group.backNavigationPage],);\r\n })\r\n }\r\n else {\r\n group['isTriggered'] = false;\r\n\r\n //this.router.routeReuseStrategy.shouldReuseRoute = function () {\r\n // return false;\r\n //}\r\n //this.router.onSameUrlNavigation = 'reload';\r\n\r\n this.router.navigate([group.backNavigationPage]);\r\n }\r\n }\r\n\r\n private historyBack() {\r\n this.group.isTriggered = false;\r\n this.navController.pop();\r\n }\r\n\r\n public refreshGrid(\r\n event: ZComponentOutputEvent,\r\n group: ZGroup,\r\n me: any,\r\n gridOptionName?: string\r\n ) {\r\n gridOptionName = gridOptionName || \"gridOptions\";\r\n if (event && event.target) {\r\n const gridOption = event.target\r\n .trim()\r\n .replace(\"(\", \"\")\r\n .replace(\")\", \"\")\r\n .replace(\"group.refreshGrid\", \"\");\r\n if (gridOption.length > 0) {\r\n gridOptionName = gridOption;\r\n }\r\n }\r\n\r\n const zgridControl = group[gridOptionName] as ZGrid;\r\n if (zgridControl) {\r\n zgridControl.getData();\r\n }\r\n group['isTriggered'] = false;\r\n }\r\n\r\n private refreshPage() {\r\n if (this.group) {\r\n this.group.isTriggered = false;\r\n }\r\n location.reload();\r\n // this.router.routeReuseStrategy.shouldReuseRoute = () => false;\r\n // this.router.onSameUrlNavigation = 'reload';\r\n // console.log('Path: ', this.activatedRoute['_routerState'].snapshot.url);\r\n // this.router.navigate(['/crm/customer']);\r\n }\r\n\r\n getCloneNewCacheZModel(group: ZGroup) {\r\n const cacheZModel = this.cacheService.getCache(\"cloneNewModel\");\r\n if (cacheZModel) {\r\n this.cacheService.clearCache(\"cloneNewModel\");\r\n group.zModel = cacheZModel;\r\n group.zModel.Id = 0;\r\n }\r\n group.isTriggered = false;\r\n }\r\n\r\n private newModel(event: ZComponentOutputEvent, group: ZGroup) {\r\n let _group: ZGroup = group;\r\n\r\n if (event) {\r\n if (event.data && event.data.SubType) {\r\n _group = group['_' + event.data.SubType];\r\n }\r\n }\r\n\r\n of([])\r\n .pipe(\r\n switchMap((zmodel) => {\r\n console.log(\"Before new, zModel:\", zmodel);\r\n return this.beforeNewModel(_group);\r\n }),\r\n tap(() => {\r\n const referenceId = group.parentReferenceId || \"0\";\r\n console.log(\"current url: \", this.router.url);\r\n const pathSegment = this.router.url.split(\"/\");\r\n const lastSegment = pathSegment[pathSegment.length - 1];\r\n if (lastSegment === \"edit\") {\r\n const newPath = pathSegment.slice(0, pathSegment.length - 2);\r\n newPath.push(referenceId);\r\n newPath.push(\"new\");\r\n const cacheZModel = this.cacheService.getCache(\"cloneNewModel\");\r\n if (!cacheZModel) {\r\n // Skip if it CloneNew\r\n this.router.navigateByUrl(this.group.backNavigationPage, { skipLocationChange: true }).then(() => {\r\n this.group.zModel = {};\r\n this.group.isEdit = false;\r\n this.group.isNew = true;\r\n this.group.isTriggered = false;\r\n this.router.navigate(newPath);\r\n });\r\n }\r\n else {\r\n this.router.navigate(newPath);\r\n }\r\n } else if (lastSegment === \"new\") {\r\n group.zModel = {};\r\n group.form.reset();\r\n //group.form.markAsPristine();\r\n group.isEdit = false;\r\n group.isNew = true;\r\n group.isTriggered = false;\r\n group.zModel[\r\n group.parentReferenceField\r\n ] = group.parentReferenceId.toString();\r\n } else {\r\n group.isTriggered = false;\r\n this.router.navigate([group.editModelURL, referenceId, \"new\"], {\r\n relativeTo: group.ctrlScope.activatedRoute,\r\n });\r\n //this.router.navigate([group.editModelURL, referenceId, \"new\"]);\r\n }\r\n })\r\n )\r\n .subscribe();\r\n }\r\n\r\n public createModel(event: ZComponentOutputEvent, group: ZGroup) {\r\n let createModelres = null;\r\n let fg: FormGroup = group.form as FormGroup;\r\n let _group: ZGroup = group;\r\n\r\n if (event) {\r\n if (event.data && event.data.SubType) {\r\n fg = group['_' + event.data.SubType].form as FormGroup;\r\n _group = group['_' + event.data.SubType];\r\n }\r\n }\r\n\r\n if (!fg.dirty) {\r\n console.warn(\"Form is not dirty hence record is not save.\");\r\n return;\r\n }\r\n\r\n if (!fg.valid) {\r\n const errors = ZComponentHelper.getFormGroupErrors(fg, this.alertService, group);\r\n console.warn(\"Form Validation got error(s):\", errors);\r\n return;\r\n }\r\n\r\n of(_group.zModel)\r\n .pipe(\r\n switchMap((zmodel) => {\r\n console.log(\"Before create, zModel:\", zmodel);\r\n return this.beforeCreateModel(_group);\r\n }),\r\n tap(() => {\r\n Object.assign(_group.zModel, fg.value);\r\n }),\r\n switchMap(() => {\r\n const newModel = Object.assign({}, _group.zModel);\r\n ZComponentHelper.removeNullFields(newModel);\r\n // Object.keys(newModel).forEach((key) => {\r\n // if (newModel[key] === null) {\r\n // delete newModel[key];\r\n // }\r\n // });\r\n // if (!newModel.Id) {\r\n // newModel.Id = 0;\r\n // }\r\n\r\n return this.webApiService\r\n .httpPost$(\r\n _group.resourceURL, // + \"/\" + group.zModel.Id,\r\n newModel\r\n )\r\n .pipe(\r\n tap((resp) => {\r\n createModelres = resp;\r\n return resp;\r\n }),\r\n map((res) =>\r\n this.handleSuccess(res, \"Record is created successfully.\")\r\n )\r\n );\r\n }),\r\n switchMap((zmodel: any) => {\r\n\r\n console.log(\"After created, zModel:\", zmodel);\r\n if (zmodel) {\r\n\r\n //support old and new webapi method\r\n if (zmodel.Data) {\r\n Object.assign(_group.zModel, zmodel.Data);\r\n fg.patchValue(zmodel.Data);\r\n }\r\n else if (zmodel[\"Id\"]) {\r\n Object.assign(_group.zModel, zmodel);\r\n fg.patchValue(zmodel);\r\n }\r\n\r\n _group.referenceId = _group.zModel.Id;\r\n fg.markAsPristine();\r\n }\r\n\r\n return this.afterCreateModel(_group);\r\n }),\r\n tap((resp) => {\r\n if (createModelres.ProcessingStatus == null || createModelres.ProcessingStatus == true) {\r\n if (resp && _group.zModel.Id !== 0) {\r\n _group.isNew = false;\r\n _group.isEdit = true;\r\n _group.isTriggered = false;\r\n _group.cancelButtonName = \"Close\";\r\n Object.assign(_group.zModel, resp);\r\n fg.patchValue(resp);\r\n }\r\n fg.markAsPristine();\r\n } else {\r\n fg.markAsDirty();\r\n }\r\n // console.log(\"Done updateModel updated zModel:\", fg.value);\r\n // this.toastService.show(\"Record is created successfully.\");\r\n })\r\n )\r\n .subscribe();\r\n }\r\n\r\n public updateModel(event: ZComponentOutputEvent, group: ZGroup) {\r\n let fg: FormGroup = group.form as FormGroup;\r\n let _group: ZGroup = group;\r\n\r\n if (event) {\r\n if (event.data && event.data.SubType) {\r\n fg = group['_' + event.data.SubType].form as FormGroup;\r\n _group = group['_' + event.data.SubType];\r\n }\r\n }\r\n\r\n if (!fg.dirty) {\r\n console.warn(\"Form is not dirty hence record is not save.\");\r\n return;\r\n }\r\n\r\n if (!fg.valid) {\r\n const errors = ZComponentHelper.getFormGroupErrors(fg, this.alertService, group);\r\n console.warn(\"Form Validation got error(s):\", errors);\r\n return;\r\n }\r\n\r\n of(_group.zModel)\r\n .pipe(\r\n switchMap((zmodel) => {\r\n console.log(\"Before update, zModel:\", zmodel);\r\n return this.beforeUpdateModel(_group);\r\n }),\r\n tap(() => {\r\n Object.assign(_group.zModel, fg.value);\r\n }),\r\n switchMap(() => {\r\n return this.webApiService\r\n .httpPut$(_group.resourceURL + \"/\" + _group.zModel.Id, _group.zModel)\r\n .pipe(\r\n map((res) =>\r\n this.handleSuccess(res, \"Record is updated successfully.\")\r\n )\r\n );\r\n }),\r\n switchMap((zmodel: any) => {\r\n console.log(\"After updated, zModel:\", zmodel);\r\n if (zmodel && zmodel.Data) {\r\n Object.assign(_group.zModel, zmodel.Data);\r\n fg.patchValue(zmodel.Data);\r\n // console.log(\"Done updateModel updated zModel:\", fg.value);\r\n }\r\n else if (zmodel && zmodel[\"Id\"]) {\r\n Object.assign(_group.zModel, zmodel);\r\n fg.patchValue(zmodel);\r\n // console.log(\"Done updateModel updated zModel:\", fg.value);\r\n }\r\n\r\n group.isTriggered = false;\r\n _group.isTriggered = false;\r\n\r\n fg.markAsPristine();\r\n return this.afterUpdateModel(_group);\r\n })\r\n )\r\n .subscribe();\r\n // Object.assign(group.zModel, fg.value);\r\n // this.webApiService\r\n // .httpPut$(group.resourceURL + \"/\" + group.zModel.Id, group.zModel)\r\n // .subscribe(resp => {\r\n // Object.assign(group.zModel, resp);\r\n // fg.patchValue(resp);\r\n // fg.markAsPristine();\r\n // console.log(\"Done updateModel updated zModel:\", fg.value);\r\n // });\r\n }\r\n\r\n private cloneNewModel(event: ZComponentOutputEvent, group: ZGroup) {\r\n let _group: ZGroup = group;\r\n\r\n if (event) {\r\n if (event.data && event.data.SubType) {\r\n _group = group['_' + event.data.SubType];\r\n }\r\n }\r\n\r\n Object.assign(_group.zModel, _group.form.value);\r\n _group.zModel.Id = 0;\r\n\r\n const clearFields = [\"WFS_DocumentId\", \"WFS_StatusCode\", \"WFS_StatusName\"];\r\n clearFields.forEach((field) => {\r\n if (_group.zModel.hasOwnProperty(field)) {\r\n _group.zModel[field] = null;\r\n }\r\n });\r\n\r\n this.cacheService.setCache(\"cloneNewModel\", group.zModel);\r\n this.newModel(null, group);\r\n group.isTriggered = false;\r\n _group.isTriggered = false;\r\n }\r\n\r\n private deleteModel(event: ZComponentOutputEvent, group: ZGroup) {\r\n let fg: FormGroup = group.form as FormGroup;\r\n let _group: ZGroup = group;\r\n\r\n if (event) {\r\n if (event.data && event.data.SubType) {\r\n fg = group['_' + event.data.SubType].form as FormGroup;\r\n _group = group['_' + event.data.SubType];\r\n }\r\n }\r\n\r\n of(_group.zModel)\r\n .pipe(\r\n switchMap((zmodel) => {\r\n console.log(\"Before delete, zModel:\", zmodel);\r\n return this.beforeDeleteModel(_group);\r\n }),\r\n switchMap(() => {\r\n group.isTriggered = false;\r\n _group.isTriggered = false;\r\n return this.alertService.show(\"Delete Record\", \"Are you sure?\",\r\n [\r\n { text: \"No\", cssClass: \"secondary\" } as AlertButton,\r\n { text: \"Yes\", cssClass: \"primary\" } as AlertButton\r\n ]);\r\n }),\r\n switchMap((reply: string) => {\r\n if (reply === \"Yes\") {\r\n Object.assign(_group.zModel, fg.value);\r\n _group.zModel.Disabled = true;\r\n\r\n return this.webApiService\r\n .httpPut$(_group.resourceURL + \"/\" + _group.zModel.Id, _group.zModel)\r\n .pipe(\r\n map((res) =>\r\n this.handleSuccess(res, \"Record is deleted successfully.\")\r\n ),\r\n switchMap((zmodel) => {\r\n console.log(\"After deleted, zModel:\", zmodel);\r\n return this.afterDeleteModel(_group);\r\n }),\r\n tap((resp) => {\r\n this.historyBack();\r\n })\r\n );\r\n } else {\r\n return of([]);\r\n }\r\n })\r\n )\r\n .subscribe();\r\n }\r\n\r\n private beforeUpdateModel(group: ZGroup) {\r\n if (!group.beforeUpdateModel) {\r\n console.warn(\"group.beforeUpdateModel is undefined\");\r\n return of({});\r\n }\r\n return group.beforeUpdateModel(group);\r\n }\r\n\r\n private beforeDeleteModel(group: ZGroup) {\r\n if (!group.beforeDeleteModel) {\r\n console.warn(\"group.beforeUpdateModel is undefined\");\r\n return of({});\r\n }\r\n return group.beforeDeleteModel(group);\r\n }\r\n\r\n private beforeNewModel(group: ZGroup) {\r\n if (!group.beforeNewModel) {\r\n console.warn(\"group.beforeNewodel is undefined\");\r\n return of({});\r\n }\r\n return group.beforeNewModel(group);\r\n }\r\n\r\n private beforeCreateModel(group: ZGroup) {\r\n if (!group.beforeCreateModel) {\r\n console.warn(\"group.beforeUpdateModel is undefined\");\r\n return of({});\r\n }\r\n return group.beforeCreateModel(group);\r\n }\r\n\r\n beforePageInitialise(group: ZGroup) {\r\n if (!group.beforePageInitialise) {\r\n console.warn(\"group.beforePageInitialise is undefined\");\r\n return of({});\r\n }\r\n return group.beforePageInitialise(group);\r\n }\r\n\r\n private afterGetModelSuccess(group: ZGroup): Observable<any> {\r\n if (!group.zModel.Id) {\r\n console.warn(\"zModel.Id is not defined\", group.zModel);\r\n return of({});\r\n }\r\n if (!group.afterGetModelSuccess) {\r\n console.warn(\"group.afterGetModelSuccess is not defined\");\r\n return of({});\r\n }\r\n return group.afterGetModelSuccess(group);\r\n }\r\n\r\n afterNewModel(group: ZGroup): Observable<any> {\r\n if (!group.afterNewModel) {\r\n console.warn(\"group.afterNewModel is not defined\");\r\n return of({});\r\n }\r\n return group.afterNewModel(group);\r\n }\r\n\r\n private afterCreateModel(group: ZGroup): Observable<any> {\r\n if (!group.afterCreateModel) {\r\n console.warn(\"group.afterCreateModel is not defined\");\r\n return of({});\r\n }\r\n return group.afterCreateModel(group);\r\n }\r\n\r\n private afterUpdateModel(group: ZGroup): Observable<any> {\r\n if (!group.afterUpdateModel) {\r\n console.warn(\"group.afterUpdateModel is not defined\");\r\n return of({});\r\n }\r\n return group.afterUpdateModel(group);\r\n }\r\n\r\n private afterDeleteModel(group: ZGroup): Observable<any> {\r\n if (!group.afterDeleteModel) {\r\n console.warn(\"group.afterDeleteModel is not defined\");\r\n return of({});\r\n }\r\n return group.afterDeleteModel(group);\r\n }\r\n\r\n afterPageInitialise(group: ZGroup) {\r\n if (!group.afterPageInitialise) {\r\n console.warn(\"group.afterPageInitialise is undefined\");\r\n return of({});\r\n }\r\n return group.afterPageInitialise(group);\r\n }\r\n\r\n // private onAction(group: ZGroup) {\r\n // this.actionSheetCtrl\r\n // .create({\r\n // header: \"Choose an Action\",\r\n // buttons: group.topRightActionButton\r\n // })\r\n // .then(actionSheetEl => {\r\n // actionSheetEl.present();\r\n // });\r\n // }\r\n\r\n // setModelValue(propertyName: string, value: any, group: ZGroup) {\r\n // group.zModel[propertyName] = value;\r\n // if (group.isLoading) {\r\n // return;\r\n // }\r\n // const fg = group.form as FormGroup;\r\n // if (!fg) {\r\n // eslint-disable-next-line , no-debugger\r\n // debugger;\r\n // }\r\n // const fc = fg.controls[propertyName];\r\n // if (!fc) {\r\n // eslint-disable-next-line no-debugger\r\n // debugger;\r\n // }\r\n // fc.setValue(value);\r\n // fc.markAsDirty();\r\n // }\r\n\r\n public async showzModal(\r\n colFields$: string | Observable<Array<ZField>>,\r\n parentGroup: ZGroup,\r\n formHeader: string,\r\n zModel?: any,\r\n referId?: string,\r\n componentSize?: ZComponentSize,\r\n skipIsDirtyCheck?: boolean\r\n ) {\r\n const modalcomponent = ZmodalComponent;\r\n const modalmobilecomponent = ZmodalMobileComponent;\r\n\r\n if (parentGroup) {\r\n // disable isTriggered before display the popup.\r\n parentGroup.isTriggered = false;\r\n }\r\n return await this.modalService.show(colFields$, parentGroup, formHeader, modalcomponent, modalmobilecomponent, zModel, referId, componentSize, skipIsDirtyCheck)\r\n //const modal = await this.modalService.show();\r\n }\r\n\r\n\r\n public cookieStorePost(name: string, value: any): Observable<any> {\r\n // for Post to CookieStore\r\n const cookieStoreURL = this.oauthEnvironmentUrl + \"api/CookieStores\";\r\n const cookieStoreValue = {\r\n 'Name': name,\r\n 'Value': JSON.stringify(value)\r\n };\r\n\r\n return this.webApiService.httpPost$(cookieStoreURL, cookieStoreValue).pipe(map(res => {\r\n if (res) {\r\n console.log(\"grid config saved(\" + res.status + \"): \", res);\r\n return res;\r\n }\r\n }));\r\n }\r\n\r\n public cookieStoreGet(name: string, accessToken: string): Observable<any> {\r\n const cookieStoreURL = this.oauthEnvironmentUrl + \"api/CookieStores/?name=\" + name;\r\n\r\n return this.webApiService.httpGet$(cookieStoreURL, { headers: accessToken }).pipe(map(res => {\r\n if (res) {\r\n return res;\r\n }\r\n }));\r\n }\r\n\r\n public cookieStoreDeleteMultiple(name: string): Observable<any> {\r\n // for Post to CookieStore\r\n const cookieStoreURL = this.oauthEnvironmentUrl + \"Admin/DeleteMultipleCookies\";\r\n const cookieStoreValue = {\r\n 'containName': name\r\n };\r\n\r\n return this.webApiService.httpPost$(cookieStoreURL, cookieStoreValue).pipe(map(res => {\r\n if (res) {\r\n return res;\r\n }\r\n }));\r\n }\r\n}\r\n\r\nexport function refreshGrid(group: ZGroup) {\r\n const zgridControl = group[\"gridOptions\"] as ZGrid;\r\n if (zgridControl) {\r\n zgridControl.getData();\r\n }\r\n group.isTriggered = false;\r\n}\r\n","/********** Angular **********/\r\nimport { Directive, OnInit, OnDestroy, Input, Inject } from \"@angular/core\";\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\nimport { Router } from \"@angular/router\";\r\nimport { Subscription, Observable, Subject, of, AsyncSubject } from \"rxjs\";\r\nimport { tap, delay, switchMap, concatMap } from \"rxjs/operators\";\r\nimport {\r\n DataBindingDirective,\r\n GridComponent,\r\n DataStateChangeEvent,\r\n PageChangeEvent,\r\n} from \"@progress/kendo-angular-grid\";\r\nimport {\r\n SortDescriptor,\r\n State,\r\n FilterDescriptor,\r\n} from \"@progress/kendo-data-query\";\r\n\r\n/********** Component & Service **********/\r\nimport {\r\n AuthService, GridCaching, WebApiService,\r\n ZComponentHelper, ZField, ZGridPostApiParams, ZGridColumnSettings,\r\n ZGridStatePersistingService, ZGroup, StorageSessionService\r\n} from \"mmhglobal-zcore\";\r\n\r\n\r\n@Directive({\r\n selector: \"[zgridbinding]\",\r\n})\r\nexport class ZGridBindingDirective extends DataBindingDirective implements OnInit, OnDestroy {\r\n private serviceSubscription: Subscription;\r\n @Input() zgridbinding: {\r\n data: ZField;\r\n group: ZGroup;\r\n params: ZGridPostApiParams;\r\n gridSubject: Subject<any>;\r\n };\r\n\r\n state: State = {\r\n skip: 0,\r\n take: 10,\r\n };\r\n\r\n gridColumns: any[] = [];\r\n\r\n usableColumns: any[] = [];\r\n\r\n resourceURL = null;\r\n\r\n paginationApiPostUrl = null;\r\n\r\n dataSource = null;\r\n\r\n get field() {\r\n return this.zgridbinding.data;\r\n }\r\n\r\n get grp() {\r\n return this.zgridbinding.group;\r\n }\r\n\r\n get gridSubject() {\r\n return this.zgridbinding.gridSubject;\r\n }\r\n\r\n get params(): ZGridPostApiParams {\r\n return this.zgridbinding.params;\r\n }\r\n\r\n get getData() {\r\n return this.grid.data;\r\n }\r\n\r\n constructor(\r\n @Inject(GridComponent) grid,\r\n private webapiService: WebApiService,\r\n private authService: AuthService,\r\n private storageService: StorageSessionService,\r\n private router: Router,\r\n private zGridStatePersistingService: ZGridStatePersistingService\r\n ) {\r\n super(grid);\r\n }\r\n\r\n public ngOnInit(): void {\r\n if (this.field.SkipDirective) {\r\n return;\r\n }\r\n\r\n super.ngOnInit();\r\n this.grid.loading = true;\r\n this.state.take = this.field.PageSize || 20;\r\n this.pageSize = this.state.take;\r\n this.dataSource = this.field.DataSource ? this.field.DataSource : null;\r\n\r\n if (!this.dataSource) {\r\n this.resourceURL = ZComponentHelper.getGroupValue(\r\n this.field.ResourceURL,\r\n this.grp\r\n );\r\n // console.log(\"At zgrid.component (OnInit) resourceURL: \", resourceURL);\r\n if (!this.resourceURL) {\r\n this.grid.loading = false;\r\n if (this.zgridbinding.data.Name !== \"ActivityLogGrid\") {\r\n console.warn(\r\n \"No initialise for Field.ResourceURL: \",\r\n this.field.ResourceURL\r\n );\r\n }\r\n return;\r\n }\r\n\r\n const array = this.resourceURL.split(\"/api/\");\r\n if (!!array[1]) {\r\n array[1] = \"Page\" + array[1];\r\n this.paginationApiPostUrl = array.join(\"/api/\");\r\n } else {\r\n const arr = this.resourceURL.split(\"/\");\r\n arr[arr.length - 2] = \"Page\" + arr[arr.length - 2];\r\n this.paginationApiPostUrl = arr.join(\"/\");\r\n }\r\n\r\n this.setFilterParamsByParentRefId();\r\n }\r\n\r\n this.gridSubject.next(this);\r\n this.generateGridColumns();\r\n }\r\n\r\n private setFilterParamsByParentRefId() {\r\n // Use field own referenceId if available\r\n const refId = this.getFieldReferenceId() || this.grp.referenceId;\r\n const refField = this.field.ReferenceField || this.grp.parentReferenceField;\r\n if (refId && refField) {\r\n const filterValue = {\r\n key: refField,\r\n ops: \"=\",\r\n value: refId,\r\n };\r\n // if (this.params.filterParams.find(x => x.key === filterValue.key) === undefined) {\r\n this.params.filterParams.push(filterValue);\r\n // }\r\n }\r\n }\r\n\r\n private getFieldReferenceId() {\r\n let fieldReferenceId = null;\r\n if (this.field.ReferenceId) {\r\n fieldReferenceId = ZComponentHelper.getGroupValue(\r\n this.field.ReferenceId,\r\n this.grp\r\n );\r\n }\r\n return fieldReferenceId;\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n if (this.serviceSubscription) {\r\n this.serviceSubscription.unsubscribe();\r\n }\r\n super.ngOnDestroy();\r\n }\r\n\r\n public generateGridColumns() {\r\n const columnFields$: Observable<any> = ZComponentHelper.getGroupValue(\r\n this.field.ColumnFields,\r\n this.grp\r\n );\r\n columnFields$\r\n .pipe(\r\n tap((data) => {\r\n const gridSetting = this.getGridSettings();\r\n const fieldName = this.field[\"FieldElementName\"];\r\n\r\n ZComponentHelper.getGridColumns(\r\n data,\r\n this.gridColumns,\r\n this.zgridbinding.group,\r\n this.authService,\r\n fieldName,\r\n gridSetting,\r\n this.usableColumns\r\n );\r\n this.getFilterParamsColumns();\r\n this.getFilter();\r\n this.getFilterParams();\r\n this.getSorting();\r\n this.getGrantType();\r\n this.setHiddenColumn(gridSetting);\r\n\r\n this.params.referId = this.getFieldReferenceId() || this.grp.referenceId || null;\r\n //}),\r\n //switchMap(() => {\r\n // //Get Session\r\n // return this.getGridSessionFilter(this.grp, this);\r\n //}),\r\n //switchMap(() => {\r\n // //Before get grid data\r\n // return this.beforeGridGetData(this.grp, this);\r\n //}),\r\n //switchMap(() => {\r\n // //Set grid data\r\n // return this.setGridSessionFilter(this.grp, this);\r\n })\r\n )\r\n .subscribe(() => {\r\n this.getDataBinding();\r\n });\r\n }\r\n\r\n private getFilterParamsColumns() {\r\n const colFields: Array<string> = [];\r\n this.gridColumns.forEach((field) => {\r\n if (field.valueExpr) {\r\n colFields.push(field.valueExpr + \" as \" + field.field);\r\n } else {\r\n colFields.push(field.field);\r\n }\r\n });\r\n\r\n if (colFields.length > 0) {\r\n if (colFields.indexOf(\"Id\") === -1) {\r\n colFields.push(\"Id\");\r\n }\r\n }\r\n\r\n let tmpGridColumn: any[] = [];\r\n tmpGridColumn.push(colFields.join(\",\"));\r\n if (this.usableColumns.length > 0) {\r\n tmpGridColumn.push(this.usableColumns.join(\",\"));\r\n }\r\n this.params.columns = tmpGridColumn.join(\",\");\r\n }\r\n\r\n private getFilter() {\r\n if (this.params.filters && this.field.Filters) {\r\n this.params.filters = this.params.filters + \" && \" + this.field.Filters;\r\n } else if (!this.params.filters && this.field.Filters) {\r\n this.params.filters = this.field.Filters;\r\n }\r\n\r\n if (this.field.Filters && this.field.Filters.indexOf(\"group.\") !== -1) {\r\n const filterKeyValPairs = this.field.Filters.split(\" \");\r\n const grpValues = filterKeyValPairs.filter(\r\n (element) => element.trim().indexOf(\"group.\") !== -1\r\n );\r\n\r\n grpValues.forEach((val) => {\r\n const actualVal = ZComponentHelper.getGroupValue(val, this.grp);\r\n this.params.filters = this.params.filters.replace(val, actualVal);\r\n });\r\n }\r\n }\r\n\r\n private getFilterParams() {\r\n if (this.field['FilterParams']) {\r\n if (this.field['FilterParams'].indexOf(\"group.\") !== -1) {\r\n this.params.filterParams = ZComponentHelper.getGroupValue(this.field['FilterParams'], this.grp);\r\n } else {\r\n this.params.filterParams = this.field['FilterParams'];\r\n }\r\n }\r\n }\r\n\r\n private getSorting() {\r\n if (this.field.SortOrder) {\r\n if (this.field.SortOrder.indexOf(\"group.\") !== -1) {\r\n this.params.sortOrder = ZComponentHelper.getGroupValue(this.field.SortOrder, this.grp);\r\n } else {\r\n this.params.sortOrder = this.field.SortOrder;\r\n }\r\n }\r\n }\r\n\r\n private getGrantType() {\r\n if (this.field.GrantType) {\r\n this.params.grantType = ZComponentHelper.getGroupValue(this.field.GrantType.toString(), this.grp);\r\n }\r\n }\r\n\r\n private setHiddenColumn(gridSetting: ZGridColumnSettings[]) {\r\n if (this.gridColumns && gridSetting) {\r\n // filter out hidden == false array.\r\n const gridSettingHiddenCol = gridSetting.filter(function (item) {\r\n return item['hidden'] == true;\r\n });\r\n\r\n // find and set the hidden to current column setting.\r\n Object.values(gridSettingHiddenCol).forEach(value => {\r\n if (this.gridColumns.find((c) => c.field === value.field)) {\r\n this.gridColumns.find((c) => c.field === value.field)['hidden'] = value['hidden'];\r\n }\r\n });\r\n }\r\n }\r\n\r\n\r\n public getDataBinding(): void {\r\n this.grid.loading = true;\r\n\r\n if (!this.dataSource) {\r\n this.params.pageSize = this.state.take;\r\n if (this.field.ExternalPagination) {\r\n // For POST method Page WebAPI\r\n this.webapiService\r\n .postApi(\r\n this.paginationApiPostUrl,\r\n this.params,\r\n null,\r\n null,\r\n null,\r\n null,\r\n true\r\n )\r\n .subscribe((data) => {\r\n this.aggregateHandling(data.dataSet);\r\n this.grid.data = { data: data.dataSet, total: data.totalCount };\r\n this.grid.loading = false;\r\n this.gridSubject.next(this);\r\n this.notifyDataChange();\r\n });\r\n } else {\r\n // For GET method\r\n this.webapiService\r\n .getApi(this.resourceURL, null, null, null, null, null, true)\r\n .subscribe((data) => {\r\n let _data = null;\r\n let _totalCount = 0;\r\n\r\n if (data.dataSet) {\r\n _data = data.dataSet;\r\n _totalCount = data.totalCount;\r\n } else {\r\n _data = data;\r\n _totalCount = data.length;\r\n }\r\n\r\n this.aggregateHandling(_data);\r\n this.grid.data = { data: _data, total: _totalCount };\r\n this.grid.pageSize = _totalCount;\r\n this.grid.loading = false;\r\n this.gridSubject.next(this);\r\n this.notifyDataChange();\r\n });\r\n }\r\n } else {\r\n const ds = ZComponentHelper.getGroupValue(\r\n this.field.DataSource,\r\n this.grp\r\n );\r\n\r\n if (ds) {\r\n this.grid.data = {\r\n data: ds,\r\n total: ds.length,\r\n };\r\n this.grid.pageSize = ds.length;\r\n }\r\n this.gridSubject.next(this);\r\n this.grid.loading = false;\r\n }\r\n }\r\n\r\n public clearData(): void {\r\n this.grid.data = { data: [], total: 0 };\r\n }\r\n\r\n\r\n private aggregateHandling(data: any) {\r\n const aggregateColumns = this.gridColumns.filter(x => x.aggregateType);\r\n\r\n aggregateColumns.forEach(col => {\r\n const field = col.field;\r\n\r\n let _aggregateValue = null;\r\n switch (col.aggregateType.slice(0, -1).toLowerCase()) {\r\n case \"total\": {\r\n _aggregateValue = data.reduce((total, next) => total + next[field], 0);\r\n break;\r\n }\r\n case \"sum\": {\r\n _aggregateValue = data.reduce((total, next) => total + next[field], 0);\r\n break;\r\n }\r\n case \"average\": {\r\n _aggregateValue = data.reduce((total, next) => total + next[field], 0) / data.length;\r\n break;\r\n }\r\n case \"count\": {\r\n _aggregateValue = data.length;\r\n break;\r\n }\r\n case \"max\": {\r\n _aggregateValue = data.reduce((p, c) => p[field] > c[field] ? p : c)[field];\r\n break;\r\n }\r\n case \"min\": {\r\n _aggregateValue = data.reduce((p, c) => p[field] < c[field] ? p : c)[field];\r\n break;\r\n }\r\n }\r\n\r\n col.aggregateValue = _aggregateValue;\r\n });\r\n }\r\n\r\n private aggregateResetValue() {\r\n const aggregateColumns = this.gridColumns.filter(x => x.aggregateType);\r\n aggregateColumns.forEach(col => {\r\n col.aggregateValue = 0;\r\n });\r\n }\r\n\r\n\r\n public pageChange(event: PageChangeEvent): void {\r\n this.params.pageNo = event.skip / this.params.pageSize;\r\n this.state.skip = event.skip;\r\n this.getDataBinding();\r\n }\r\n\r\n public sortChange(sort: SortDescriptor[]): void {\r\n this.sort = sort;\r\n this.params.sortColumnNames = [];\r\n this.params.sortOrders = [];\r\n\r\n sort.forEach((f) => {\r\n if (f.dir) {\r\n this.params.sortOrders.push(f.dir);\r\n\r\n const field = this.gridColumns.find((c) => c.field === f.field);\r\n if (field.valueExpr !== undefined) {\r\n this.params.sortColumnNames.push(field.valueExpr);\r\n } else {\r\n this.params.sortColumnNames.push(f.field);\r\n }\r\n }\r\n });\r\n this.getDataBinding();\r\n }\r\n\r\n public filterChange(event: any): void {\r\n this.params.pageNo = 0;\r\n this.params.filterParams = [];\r\n this.setFilterParamsByParentRefId();\r\n\r\n console.log(event);\r\n if (event) {\r\n if (event.filters.length > 0) {\r\n event.filters.forEach((item) => {\r\n const field = this.gridColumns.find((c) => c.field === item.field);\r\n\r\n if (item.filters) {\r\n item.filters.forEach((f: FilterDescriptor) => {\r\n if (f.value === null) {\r\n f.value = \"\"; // convert null to \"\"\r\n }\r\n this.params.filterParams.push({\r\n key: f.field as string,\r\n ops: this.mapFilterOperator(f.operator),\r\n value: f.value,\r\n });\r\n });\r\n } else {\r\n if (item.value === null) {\r\n item.value = \"\"; // convert null to \"\"\r\n }\r\n this.params.filterParams.push({\r\n key:\r\n field.valueExpr !== undefined\r\n ? `(${field.valueExpr})`\r\n : item.field,\r\n ops: this.mapFilterOperator(item.operator),\r\n value: item.value,\r\n });\r\n }\r\n });\r\n }\r\n }\r\n\r\n this.setGridSessionFilter(this.grp, this);\r\n this.getDataBinding();\r\n\r\n\r\n }\r\n\r\n public dataStateChange(state: DataStateChangeEvent): void {\r\n // this.state = state;\r\n this.skip = state.skip;\r\n this.pageSize = state.take;\r\n this.state.skip = state.skip;\r\n this.state.take = state.take;\r\n this.grid.loading = true;\r\n this.aggregateResetValue();\r\n }\r\n\r\n private mapFilterOperator(operator: any) {\r\n switch (operator) {\r\n case \"eq\":\r\n return \"eq\";\r\n case \"neq\":\r\n return \"neq\";\r\n case \"lt\":\r\n return \"lt\";\r\n case \"lte\":\r\n return \"lte\";\r\n case \"gt\":\r\n return \"gt\";\r\n case \"gte\":\r\n return \"gte\";\r\n case \"startswith\":\r\n return \"startswith\";\r\n case \"endswith\":\r\n return \"endswith\";\r\n case \"isnull\":\r\n return \"isnull\";\r\n case \"isnotnull\":\r\n return \"isnotnull\";\r\n case \"contains\": {\r\n if (!this.field['FilterContainsUsingEqual']) {\r\n return \"contains\";\r\n } \r\n }\r\n default:\r\n return \"==\";\r\n // eq, neq, isnull, isnotnull, endswith, startswith\r\n }\r\n }\r\n\r\n private getGridSettings(): ZGridColumnSettings[] {\r\n const _storageKey = 'ionic-field::' + this.authService.e1Token.userName + '::' + this.field.Name + '::' + this.router.url;\r\n\r\n // Find any setting from localstorage..\r\n let _arrGridCaching: GridCaching[] = this.zGridStatePersistingService.get(_storageKey);\r\n if (_arrGridCaching) {\r\n const _gridCaching: GridCaching = JSON.parse(_arrGridCaching['Value']);\r\n if (_gridCaching) {\r\n return _gridCaching.gridSettings.columnsConfig.sort((a, b) => a.orderIndex - b.orderIndex);\r\n }\r\n }\r\n }\r\n\r\n public beforeGridGetData(group: ZGroup, me: any) {\r\n console.warn(\"beforeDataBinding triggered\");\r\n if (!group.beforeGridGetData) {\r\n console.warn(\"group.beforeDataBinding is undefined\");\r\n return of(true);\r\n }\r\n return group.beforeGridGetData(group, me);\r\n }\r\n\r\n private getGridSessionFilter(group: ZGroup, me: any) {\r\n if (!group[\"GridStorageKey\"]) {\r\n return of([]);\r\n }\r\n\r\n const StorageKey = group[\"GridStorageKey\"];\r\n\r\n if (this.storageService) {\r\n const subject = new Subject<void>();\r\n\r\n of(true)\r\n .pipe(\r\n switchMap(() => {\r\n return this.storageService.get(StorageKey);\r\n }),\r\n tap(data => {\r\n if (!data || !data.value || data.value === \"null\") {\r\n subject.next(); \r\n }\r\n else {\r\n const result = JSON.parse(data.value);\r\n this.state.filter = JSON.parse(result[\"StateFilter\"]);\r\n this.params.filterParams = JSON.parse(result[\"FilterParams\"]);\r\n\r\n this.state.filter.filters.forEach((d: any) => {\r\n if (d.field.includes('UTC')) {\r\n d.value = new Date(d.value);\r\n }\r\n });\r\n\r\n subject.next(); \r\n }\r\n })\r\n ).subscribe();\r\n\r\n return subject.asObservable();\r\n }\r\n else {\r\n return of([]);\r\n }\r\n }\r\n\r\n private setGridSessionFilter(group: ZGroup, me: any) {\r\n if (!group[\"GridStorageKey\"]) {\r\n return null;\r\n }\r\n\r\n const StorageKey = group[\"GridStorageKey\"]; \r\n\r\n if (me.state.filter && this.storageService && this.field['SaveFilter']) {\r\n //list of data for StateFilter and FilterParams\r\n const lstGridFilter = { \"StateFilter\": JSON.stringify(me.state.filter), \"FilterParams\": JSON.stringify(me.params.filterParams) }\r\n //create session storage\r\n this.storageService.set(StorageKey, JSON.stringify(lstGridFilter));\r\n }\r\n }\r\n\r\n}\r\n","import { Directive, ElementRef, ViewContainerRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[popupAnchor]',\r\n exportAs: 'popupAnchor'\r\n})\r\nexport class ZGridPopupAnchorDirective {\r\n constructor(public element: ElementRef\r\n ) {\r\n }\r\n}\r\n","/********** Angular **********/\r\nimport { Directive, HostListener, Input } from '@angular/core';\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\nimport { ComboBoxComponent } from '@progress/kendo-angular-dropdowns';\r\n\r\n/********** Component & Service **********/\r\n\r\n\r\n@Directive({\r\n selector: 'kendo-combobox[openOnFocus]'\r\n})\r\nexport class OpenOnFocusDirective {\r\n\r\n @Input() openOnFocus: ComboBoxComponent;\r\n\r\n @HostListener('focus') onFocus() {\r\n if (this.openOnFocus) {\r\n if (!this.openOnFocus.readonly) {\r\n this.openOnFocus.toggle(true);\r\n }\r\n }\r\n }\r\n\r\n @HostListener('blur') onBlur() {\r\n if (this.openOnFocus) {\r\n this.openOnFocus.toggle(false);\r\n }\r\n }\r\n}","import { Pipe, PipeTransform } from \"@angular/core\";\r\n\r\n@Pipe({\r\n name: \"dateParser\",\r\n pure: true,\r\n})\r\nexport class DateParserFilter implements PipeTransform {\r\n transform(items: any): any {\r\n // debugger;\r\n if (!items) {\r\n return items;\r\n }\r\n // filter items array, items which match and return true will be\r\n // kept, false will be filtered out\r\n try {\r\n const d = new Date(items);\r\n return d;\r\n } catch (error) {\r\n console.log(\"DateParserFilter error: \", error);\r\n return null;\r\n }\r\n }\r\n}\r\n","/********** Angular **********/\r\nimport { Pipe, PipeTransform } from '@angular/core';\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\n\r\n/********** Component & Service **********/\r\n\r\n\r\n@Pipe({\r\n name: 'editorfilter',\r\n pure: false\r\n})\r\nexport class EditorFilter implements PipeTransform {\r\n transform(source: any): any {\r\n if (!source) {\r\n return;\r\n }\r\n if (typeof source === \"string\") {\r\n try {\r\n const jsonValue = JSON.parse(source);\r\n return JSON.stringify(jsonValue, null, 2);\r\n // return this.safeStringify(jsonValue);\r\n } catch {\r\n return source;\r\n }\r\n }\r\n if (typeof source === \"object\" || Array.isArray(source)) {\r\n try {\r\n return JSON.stringify(source, null, 2);\r\n // return this.safeStringify(source);\r\n } catch {\r\n return \"problem - [Circular structure to JSON]\";\r\n }\r\n }\r\n\r\n }\r\n\r\n private safeStringify(jsonValue: any) {\r\n // Note: cache should not be re-used by repeated calls to JSON.stringify.\r\n const cache: Array<any> = [];\r\n return JSON.stringify(jsonValue, (key, value) => {\r\n if (typeof value === 'object' && value !== null) {\r\n // Duplicate reference found, discard key\r\n if (cache.includes(value)) {\r\n // debugger;\r\n // return \"problem - [Circular structure to JSON]\";\r\n return;\r\n }\r\n // Store value in our collection\r\n cache.push(value);\r\n }\r\n return value;\r\n }, 2);\r\n // cache = null; // Enable garbage collection\r\n }\r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'divzlayout',\r\n pure: true\r\n})\r\nexport class DivzLayout implements PipeTransform {\r\n transform(items: any, zlayout: string): any {\r\n if (!items || !zlayout) {\r\n return items;\r\n }\r\n\r\n // if got zlayout, in div: 2 = 2 col per row; 3 = 1 col per row; \r\n if (zlayout == \"2\") {\r\n Object.values(items).forEach(value => {\r\n value['DivClass'] = \"col-sm-6\";\r\n });\r\n }\r\n else if (zlayout == '3') {\r\n Object.values(items).forEach(value => {\r\n value['DivClass'] = \"col-sm-12\";\r\n });\r\n }\r\n\r\n return items;\r\n }\r\n}","import { Component, Injectable } from \"@angular/core\";\r\n// import * as $ from 'jquery';\r\ndeclare var $: any;\r\n\r\n@Component({\r\n selector: \"app-zreport\",\r\n templateUrl: \"./zreport.component.html\",\r\n styleUrls: [\"./zreport.component.scss\"],\r\n})\r\n\r\n// @dynamic\r\nexport class ExportOptions {\r\n viewerToolTipOpening = null;\r\n resourceURL = null;\r\n ReportSource = null;\r\n ready = null;\r\n exportBegin = null;\r\n exportEnd = null;\r\n onRenderingEnd = null;\r\n viewerContainerStyle = null;\r\n isVisible = null;\r\n paramToResizeReportViewer = null;\r\n resizeReportView = null;\r\n // public static instance: ExportOptions;\r\n // public static init(component: any) {\r\n // if (!ExportOptions.instance) {\r\n // ExportOptions.instance = new ExportOptions();\r\n // }\r\n // ExportOptions.instance.bindEvents(component);\r\n\r\n // // Add the options when init. Sometime it will not init the class.\r\n // ExportOptions.instance.hideOptions = [\"PDF\", \"CSV\", \"XLS\", \"XLSX\", \"RTF\", \"IMAGE\", \"MHTML\", \"XPS\"];\r\n // }\r\n\r\n private largeMenuBound = false;\r\n private sideMenuBound = false;\r\n private reportSource = \"\";\r\n private hideOptions = [];\r\n\r\n public update(reportSource: string) {\r\n this.reportSource = reportSource;\r\n // show all extensions\r\n //$('[data-command-parameter]').show();\r\n\r\n // check to hide options\r\n this.hideUnwantedOptions();\r\n }\r\n\r\n public bindEvents(component: any) {\r\n this.exportOption(component);\r\n\r\n const sideMenu = $(\".trv-side-menu\").children(\"ul\").data('kendoPanelBar');\r\n const largeMenu = $(\".trv-menu-large\").data(\"kendoMenu\");\r\n const smallMenu = $(\".trv-menu-small\");\r\n\r\n // hide export button if all option is not available\r\n if (this.hideOptions.length == 8) {\r\n const exportButton = $(\"[data-command*='telerik_ReportViewer_export']\")\r\n exportButton.hide();\r\n }\r\n\r\n // bind to the 'open' event of the main menu\r\n if (!this.largeMenuBound && largeMenu) {\r\n largeMenu.bind(\"open\", () => {\r\n this.hideUnwantedOptions();\r\n });\r\n\r\n this.largeMenuBound = true;\r\n }\r\n\r\n // bind to the 'expand' event of the side menu\r\n if (!this.sideMenuBound && smallMenu) {\r\n if (sideMenu) {\r\n sideMenu.bind(\"expand\", () => {\r\n // recheck export options\r\n //if (reloadHideOptions) {\r\n // thisComponent.exportOption(thisComponent);\r\n //}\r\n this.hideUnwantedOptions();\r\n });\r\n }\r\n\r\n this.sideMenuBound = true;\r\n }\r\n }\r\n\r\n public exportOption(component: any) {\r\n const _data = component.data;\r\n if (_data.EnableExportPDF) {\r\n this.hideOptions = this.hideOptions.filter(item => item !== \"PDF\");\r\n }\r\n if (_data.EnableExportCSV) {\r\n this.hideOptions = this.hideOptions.filter(item => item !== \"CSV\");\r\n }\r\n if (_data.EnableExportExcel) {\r\n this.hideOptions = this.hideOptions.filter(item => item !== \"XLS\");\r\n this.hideOptions = this.hideOptions.filter(item => item !== \"XLSX\");\r\n }\r\n if (_data.EnableExportRTF) {\r\n this.hideOptions = this.hideOptions.filter(item => item !== \"RTF\");\r\n }\r\n if (_data.EnableExportTIFF) {\r\n this.hideOptions = this.hideOptions.filter(item => item !== \"IMAGE\");\r\n }\r\n if (_data.EnableExportMHTML) {\r\n this.hideOptions = this.hideOptions.filter(item => item !== \"MHTML\");\r\n }\r\n if (_data.EnableExportXPS) {\r\n this.hideOptions = this.hideOptions.filter(item => item !== \"XPS\");\r\n }\r\n }\r\n\r\n public hideUnwantedOptions() {\r\n // show all extensions\r\n $('[data-command-parameter]').show();\r\n\r\n // hide the specified extensions\r\n $.each(this.hideOptions, function (index, item) {\r\n var hiddenOption = $('[data-command-parameter=\"' + item + '\"]');\r\n if (hiddenOption && hiddenOption.length) {\r\n hiddenOption.hide();\r\n }\r\n });\r\n }\r\n\r\n public resizeViewer() {\r\n return null;\r\n }\r\n}\r\n","<div *ngIf=\"isVisible\" width=\"100%\" height=\"800px\">\r\n <tr-viewer #ReportViewer\r\n [containerStyle]=\"viewerContainerStyle\"\r\n [serviceUrl]=\"resourceURL\"\r\n [reportSource]=\"ReportSource\"\r\n [viewMode]=\"'INTERACTIVE'\"\r\n [scaleMode]=\"'SPECIFIC'\"\r\n [pageMode]=\"'SINGLE_PAGE'\"\r\n [scale]=\"1.0\"\r\n [ready]=\"ready(this)\"\r\n [exportBegin]=\"exportBegin(this)\"\r\n [exportEnd]=\"exportEnd(this)\"\r\n [viewerToolTipOpening]=\"viewerToolTipOpening\"\r\n [enableAccessibility]=\"false\"\r\n [pageReady] = \"resizeReportView()\"\r\n [renderingEnd]=\"onRenderingEnd\">\r\n </tr-viewer>\r\n</div>\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'tabfilter',\r\n pure: true\r\n})\r\nexport class TabFilter implements PipeTransform {\r\n transform(items: any, filter: string): any {\r\n // debugger;\r\n if (!items || !filter) {\r\n return items;\r\n }\r\n // filter items array, items which match and return true will be\r\n // kept, false will be filtered out\r\n return items.filter(item => {\r\n const target = item.TabArea + '';\r\n return target.indexOf(filter) !== -1;\r\n });\r\n }\r\n}","import { Component, Input } from \"@angular/core\";\r\nimport { BaseFilterCellComponent, FilterService } from \"@progress/kendo-angular-grid\";\r\nimport { FilterDescriptor, CompositeFilterDescriptor } from \"@progress/kendo-data-query/dist/es/main\";\r\n\r\n@Component({\r\n selector: 'date-range-filter-cell',\r\n styles: [`\r\n kendo-daterange > kendo-dateinput.range-filter {\r\n display: inline-block;\r\n }\r\n .k-button {\r\n margin-left: 4px;\r\n }\r\n ` ],\r\n template: `\r\n <kendo-daterange >\r\n <kendo-dateinput\r\n class=\"range-filter\"\r\n kendoDateRangeStartInput\r\n [format]=\"'dd-MM-yyyy'\"\r\n placeholder=\"dd-MM-yyyy\"\r\n [value]=\"start\"\r\n (valueChange)=\"filterRange($event, end)\"\r\n style=\"width:84px\">\r\n </kendo-dateinput>\r\n -\r\n <kendo-dateinput\r\n class=\"range-filter\"\r\n kendoDateRangeEndInput\r\n [format]=\"'dd-MM-yyyy'\"\r\n placeholder=\"dd-MM-yyyy\"\r\n [value]=\"end\"\r\n (valueChange)=\"filterRange(start, $event)\"\r\n style=\"width:85px\">\r\n </kendo-dateinput>\r\n </kendo-daterange>\r\n <button\r\n *ngIf=\"hasFilter\"\r\n class=\"k-button k-button-icon\"\r\n title=\"Clear\"\r\n (click)=\"clearFilter()\">\r\n <span class=\"k-icon k-i-filter-clear\" style=\"width:15px\"></span>\r\n </button>\r\n `\r\n})\r\nexport class DateRangeFilterCellComponent extends BaseFilterCellComponent {\r\n @Input()\r\n public filter: any;\r\n\r\n @Input()\r\n public field: string;\r\n\r\n constructor(filterService: FilterService) {\r\n super(filterService);\r\n }\r\n\r\n public get start(): Date {\r\n const first = this.findByOperator(\"gte\");\r\n\r\n return (first || <FilterDescriptor>{}).value;\r\n }\r\n\r\n public get end(): Date {\r\n const end = this.findByOperator(\"lte\");\r\n return (end || <FilterDescriptor>{}).value;\r\n }\r\n\r\n public get hasFilter(): boolean {\r\n return this.filtersByField(this.field).length > 0;\r\n }\r\n\r\n public clearFilter(): void {\r\n this.filterService.filter(\r\n this.removeFilter(this.field)\r\n );\r\n }\r\n\r\n public filterRange(start: Date, end: Date): void {\r\n this.filter = this.removeFilter(this.field);\r\n\r\n const filters = [];\r\n\r\n if (start) {\r\n filters.push({\r\n field: this.field,\r\n operator: \"gte\",\r\n value: start\r\n });\r\n }\r\n\r\n if (end) {\r\n filters.push({\r\n field: this.field,\r\n operator: \"lte\",\r\n value: end\r\n });\r\n }\r\n\r\n const root = this.filter || {\r\n logic: \"and\",\r\n filters: []\r\n };\r\n\r\n if (filters.length) {\r\n root.filters.push(...filters);\r\n }\r\n\r\n this.filterService.filter(root);\r\n }\r\n\r\n private findByOperator(op: string): FilterDescriptor {\r\n return this.filtersByField(this.field)\r\n .filter(({ operator }) => operator === op)[0];\r\n }\r\n}\r\n","/********** Angular **********/\r\nimport { Component, Input, HostListener } from \"@angular/core\";\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\nimport { of } from \"rxjs\";\r\nimport { delay, take } from \"rxjs/operators\";\r\nimport { ToolbarService } from \"@progress/kendo-angular-scheduler\";\r\n\r\n/********** Component & Service **********/\r\n\r\n\r\n@Component({\r\n selector: \"zschedulertoolbar\",\r\n template: `\r\n <div class=\"k-scheduler-navigation\">\r\n <button class=\"k-nav-today\" (click)=\"today()\">\r\n Today\r\n </button>\r\n <button class=\"k-nav-prev\" (click)=\"prev($event)\">\r\n <span class=\"k-icon k-i-arrow-60-left\"></span>\r\n </button> &nbsp;\r\n <span>\r\n <a class=\"k-nav-current\" #anchor\r\n >\r\n <!-- <span class=\"k-icon k-i-calendar\"></span> -->\r\n {{ selectedDate | kendoDate: \"dd-MMM-yyyy\" }}\r\n </a>\r\n </span> &nbsp;\r\n <button class=\"k-nav-next\" (click)=\"next($event)\">\r\n <span class=\"k-icon k-i-arrow-60-right\"></span>\r\n </button>\r\n </div>\r\n <kendo-popup\r\n style=\"margin:15px 0px 0px 0px;\"\r\n [anchor]=\"anchor\"\r\n (anchorViewportLeave)=\"showCalendar = false\"\r\n *ngIf=\"showCalendar\"\r\n >\r\n <kendo-calendar\r\n [focusedDate]=\"selectedDate\"\r\n (blur)=\"onBlur_Calendar()\"\r\n (valueChange)=\"onChange_Calendar($event)\"\r\n ></kendo-calendar>\r\n </kendo-popup>\r\n `,\r\n styleUrls: [\"./zscheduler.toolbar.component.css\"]\r\n})\r\nexport class ZSchedulerToolBarComponent {\r\n @Input() local: any = {};\r\n @Input() public selectedDate: Date;\r\n showCalendar = false;\r\n\r\n constructor(public toolbarService: ToolbarService) {}\r\n\r\n public today(): void {\r\n this.toolbarService.navigate({\r\n type: \"today\"\r\n });\r\n }\r\n\r\n public next(event: any): void {\r\n this.toolbarService.navigate({\r\n type: \"next\"\r\n });\r\n }\r\n\r\n public prev(event: any): void {\r\n this.toolbarService.navigate({\r\n type: \"prev\"\r\n });\r\n }\r\n\r\n onChange_Calendar(value: any): void {\r\n this.local.inProgress = true;\r\n this.toolbarService.navigate({\r\n type: 'select-date',\r\n date: value\r\n });\r\n this.toggleCalendar();\r\n of([])\r\n .pipe(take(1), delay(1000))\r\n .subscribe(() => (this.local.inProgress = false));\r\n }\r\n\r\n onBlur_Calendar(): void {\r\n this.toggleCalendar();\r\n }\r\n\r\n toggleCalendar(status?: boolean) {\r\n if (status === false) {\r\n this.showCalendar = false;\r\n return;\r\n }\r\n this.showCalendar = !this.showCalendar;\r\n }\r\n\r\n @HostListener(\"keydown\", [\"$event\"])\r\n public keydown(event: any): void {\r\n if (event.keyCode === 27 && this.showCalendar === true) {\r\n this.toggleCalendar(false);\r\n }\r\n }\r\n\r\n @HostListener(\"document:click\", [\"$event\"])\r\n public documentClick(event: any): void {\r\n if (event.target.className === \"k-nav-current\") {\r\n this.toggleCalendar();\r\n } else {\r\n if (this.showCalendar === true) {\r\n this.toggleCalendar(false);\r\n }\r\n }\r\n }\r\n}\r\n","/********** Angular **********/\r\nimport { Component } from \"@angular/core\";\r\nimport { ActivatedRoute } from \"@angular/router\";\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\nimport { Subscription, of, Observable } from \"rxjs\";\r\nimport { switchMap, tap } from \"rxjs/operators\";\r\n\r\n/********** Component & Service **********/\r\nimport { MainService } from \"../services/main.service\";\r\nimport { ZGroup, IDeactivateComponent } from \"mmhglobal-zcore\";\r\n// import { IDeactivateComponent } from \"src/app/services/candeactivate.guard\";\r\n\r\n\r\n@Component({\r\n template: ``,\r\n})\r\nexport class UipageComponent implements IDeactivateComponent {\r\n // ctrlName = \"e1crm_bpactivity\";\r\n group: ZGroup = new ZGroup(true);\r\n subscription: Subscription;\r\n\r\n constructor(\r\n // public fieldService: FieldService,\r\n public mainService: MainService,\r\n public activatedRoute: ActivatedRoute\r\n ) {\r\n mainService.setGroup(this.group);\r\n // console.log(\"At \" + this.ctrlName + \" (constructor)\");\r\n }\r\n\r\n canExit(): boolean | Observable<boolean> {\r\n return this.mainService.canExit(this.group.form);\r\n }\r\n\r\n pageOnInit(ctrlName: string, pageName: string, isListForm: boolean, projectName?: string) {\r\n this.group._projectName = projectName;\r\n\r\n return this.mainService.getResourceServerData().pipe(\r\n switchMap((rsData) => {\r\n this.group.isListForm = isListForm;\r\n return this.activatedRoute.paramMap;\r\n }),\r\n tap((paramMap) => {\r\n const actName = paramMap.get(\"act\");\r\n this.group.isNew = actName === \"new\" ? true : false;\r\n this.group.isEdit = actName === \"edit\" ? true : false;\r\n if (actName === \"edit\") {\r\n this.group.referenceId = paramMap.get(\"id\");\r\n } else if (actName === \"new\") {\r\n this.group.parentReferenceId =\r\n paramMap.get(\"parentreferenceid\") || paramMap.get(\"id\");\r\n this.group.backNavigationPage =\r\n this.group.backNavigationPage +\r\n \"/\" +\r\n this.group.parentReferenceId.toString() +\r\n \"/edit\";\r\n }\r\n if (actName) {\r\n this.group.actName = actName;\r\n }\r\n this.mainService.initializeGroup(this.group, ctrlName, pageName, this);\r\n\r\n if (\r\n actName === \"new\" &&\r\n this.group.parentReferenceField &&\r\n this.group.parentReferenceId\r\n ) {\r\n this.group.zModel[\r\n this.group.parentReferenceField\r\n ] = this.group.parentReferenceId.toString();\r\n }\r\n }),\r\n switchMap(() => {\r\n const formType = isListForm ? \"ListField\" : \"FormField\";\r\n const formFieldName = this.group.fieldName\r\n ? this.group.fieldName\r\n : ctrlName;\r\n this.group.fieldName = formFieldName;\r\n return this.mainService.getGroupFields(\r\n formFieldName,\r\n formType,\r\n this.group,\r\n \"fields\"\r\n );\r\n }),\r\n switchMap((fields) => {\r\n return this.mainService.beforePageInitialise(this.group);\r\n }),\r\n switchMap((fields) => {\r\n if (this.group.actName === \"new\") {\r\n this.mainService.getCloneNewCacheZModel(this.group);\r\n return this.mainService.afterNewModel(this.group);\r\n } else {\r\n return of(fields);\r\n }\r\n }),\r\n switchMap(() => {\r\n // console.log('CtrName: ' + ctrlName + ' field Element: ', fields);\r\n if (this.group.referenceId && this.group.referenceId !== \"0\") {\r\n if (typeof this.group.getModel === \"function\") {\r\n return this.group.getModel(this.group, this.group.referenceId);\r\n } else {\r\n return this.mainService.getModel$(\r\n this.group,\r\n this.group.referenceId\r\n );\r\n }\r\n } else {\r\n return of({});\r\n }\r\n }),\r\n switchMap((zmodel) => {\r\n if (this.group.parentReferenceField) {\r\n this.group.parentReferenceId = this.group.zModel[\r\n this.group.parentReferenceField\r\n ];\r\n }\r\n return this.mainService.afterPageInitialise(this.group);\r\n })\r\n );\r\n // .subscribe(() => {\r\n // console.log(\"At activity-one.page ngOnInit() completed\");\r\n // this.group.isLoading = false;\r\n // });\r\n }\r\n\r\n pageDestroy(): void {\r\n console.log(this.group.pageName + \" ngOnDestroy.\");\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n}\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input } from \"@angular/core\";\r\nimport { Router } from '@angular/router';\r\n\r\n/********** Ionic **********/\r\nimport { MenuController } from '@ionic/angular';\r\n\r\n/********** Plugin **********/\r\n// import { AsyncSubject, of } from 'rxjs';\r\n\r\n/********** Component & Service **********/\r\nimport { ZGroup } from 'mmhglobal-zcore';\r\n\r\n\r\n@Component({\r\n selector: 'app-uimenubutton',\r\n templateUrl: './uimenubutton.component.html',\r\n styleUrls: ['./uimenubutton.component.scss'],\r\n})\r\nexport class UimenubuttonComponent implements OnInit {\r\n @Input() group: ZGroup;\r\n\r\n constructor(\r\n public menuCtrl: MenuController,\r\n private router: Router\r\n ) { }\r\n\r\n ngOnInit() { }\r\n\r\n\r\n toggleMenu() {\r\n this.menuCtrl.toggle();\r\n }\r\n\r\n backNavigate() {\r\n if (this.group.beforeBackNavigationPage) {\r\n this.group.beforeBackNavigationPage(this.group).subscribe(() => {\r\n this.router.navigate([this.group.backNavigationPage]);\r\n })\r\n }\r\n else {\r\n this.router.navigate([this.group.backNavigationPage]);\r\n }\r\n }\r\n}\r\n","<!--<ion-buttons *ngIf=\"!group || !group.backNavigationPage\" (click)=\"toggleMenu()\" class=\"ion-activatable ripple-parent\">\r\n <fa-icon [icon]=\"'bars'\"></fa-icon>\r\n <ion-ripple-effect type=\"unbounded\"></ion-ripple-effect>\r\n</ion-buttons>\r\n<ion-buttons *ngIf=\"group && group.backNavigationPage\" (click)=\"backNavigate()\" class=\"ion-activatable ripple-parent\">\r\n <fa-icon [icon]=\"'arrow-left'\"></fa-icon>\r\n <ion-ripple-effect type=\"unbounded\"></ion-ripple-effect>\r\n</ion-buttons>-->\r\n\r\n<ion-buttons (click)=\"toggleMenu()\" class=\"ion-activatable ripple-parent\">\r\n <fa-icon [icon]=\"'bars'\"></fa-icon>\r\n <ion-ripple-effect type=\"unbounded\"></ion-ripple-effect>\r\n</ion-buttons>\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input } from \"@angular/core\";\r\nimport { Router } from '@angular/router';\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\n\r\n/********** Component & Service **********/\r\nimport { ZGroup, ZCoreService, AuthService, ZComponentHelper } from \"mmhglobal-zcore\";\r\n\r\n\r\n@Component({\r\n selector: \"app-uiheader\",\r\n templateUrl: \"./uiheader.component.html\",\r\n styleUrls: [\"./uiheader.component.scss\"]\r\n})\r\nexport class UiheaderComponent implements OnInit {\r\n @Input() group: ZGroup;\r\n @Input() topFormHeader: string;\r\n public formHeader: string;\r\n public profileImgUrl: string;\r\n public username: string;\r\n public userDisplayName: string;\r\n // backNavigate = null;\r\n\r\n constructor(\r\n private router: Router,\r\n private zcoreService: ZCoreService,\r\n private authService: AuthService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n // if (this.group.backNavigationPage) {\r\n // if (this.group.backNavigationPage.indexOf('/', 1) > 1) {\r\n // this.backNavigate = this.group.backNavigationPage;\r\n // } else {\r\n // this.backNavigate = \"/_appmenu/\" + this.group.backNavigationPage;\r\n // }\r\n // }\r\n const environment = this.zcoreService.getEnvironment();\r\n this.profileImgUrl = environment.e1OauthUrl + '/api/ProfileImage?id=' + this.authService.e1Token.myProfile.UserName + '&size=80x80';\r\n const _myProfile = this.authService.e1Token.myProfile;\r\n if (_myProfile) {\r\n this.username = _myProfile.UserName;\r\n this.userDisplayName = _myProfile.LastName;\r\n }\r\n\r\n if (this.topFormHeader) {\r\n this.formHeader = this.topFormHeader;\r\n }\r\n }\r\n\r\n public bindFormHeader() { \r\n if (!this.topFormHeader) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n \r\n public onLogout() {\r\n this.authService.logout();\r\n this.router.navigateByUrl('/auth');\r\n }\r\n\r\n public isMobileScreen() {\r\n const v = ZComponentHelper.isMobileScreen();\r\n return v;\r\n }\r\n}\r\n","<ion-header>\r\n <ion-toolbar>\r\n <app-uimenubutton slot=\"start\" [group]=\"group\"></app-uimenubutton>\r\n \r\n <ion-title class=\"toolbar-title\">\r\n <div *ngIf=\"!bindFormHeader()\">\r\n {{ formHeader }}\r\n </div>\r\n <div *ngIf=\"bindFormHeader()\">\r\n {{ group.formHeader }}\r\n </div>\r\n </ion-title>\r\n\r\n <div slot=\"end\" *ngIf=\"!isMobileScreen()\" class=\"end-panel\">\r\n <ion-avatar class=\"profile-avatar\">\r\n <img src=\"{{profileImgUrl}}\" [routerLink]=\"['userProfile']\">\r\n </ion-avatar>\r\n <ion-label class=\"profile-username\">{{userDisplayName}}</ion-label>\r\n\r\n <div class=\"profile-vl\"></div>\r\n\r\n <!--<fa-icon slot=\"end\" class=\"fa-lg\" [icon]=\"['fas', 'sign-out-alt']\" (click)=\"onLogout()\" style=\"cursor: pointer;\"></fa-icon>-->\r\n\r\n <ion-button (click)=\"onLogout()\" fill=\"none\" size=\"small\">\r\n <fa-icon [icon]=\"['fas', 'sign-out-alt']\" style=\"margin-right: 5px;\"></fa-icon> logout\r\n </ion-button>\r\n </div>\r\n\r\n <div *ngIf=\"group\">\r\n <ion-buttons slot=\"primary\" *ngIf=\"!group.isLoading\">\r\n <app-uiactionbutton [group]=\"group\"></app-uiactionbutton>\r\n <!-- <ion-button (click)=\"onAction()\" [disabled]=\"false\">\r\n <ion-icon name=\"checkmark\" slot=\"icon-only\"></ion-icon>\r\n </ion-button> -->\r\n </ion-buttons>\r\n </div>\r\n\r\n </ion-toolbar>\r\n</ion-header>\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input } from '@angular/core';\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\n\r\n/********** Component & Service **********/\r\n// import { ZComponentDebugService } from '../services/zcomponent.debug.service';\r\nimport { ZGroup, ZComponentHelper, ZCoreService } from 'mmhglobal-zcore';\r\n\r\n\r\n@Component({\r\n selector: 'app-uicontent',\r\n templateUrl: './uicontent.component.html',\r\n styleUrls: ['./uicontent.component.scss'],\r\n})\r\nexport class UicontentComponent implements OnInit {\r\n\r\n @Input() group: ZGroup;\r\n\r\n constructor(\r\n private zcoreService: ZCoreService\r\n ) { }\r\n\r\n ngOnInit() {\r\n console.log(this.group);\r\n }\r\n\r\n isSITEnvironment() {\r\n // return environment.e1OauthUrl.startsWith('https://oauthdev.');\r\n return this.zcoreService.isDebugSession() && !this.isFieldElement();\r\n }\r\n\r\n isFieldElement() {\r\n return this.group.fieldName === 'field';\r\n // return false;\r\n }\r\n\r\n isMobileScreen() {\r\n const v = ZComponentHelper.isMobileScreen();\r\n return v;\r\n }\r\n}\r\n","<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","/********** Angular **********/\r\nimport { Component, OnInit, Input } from \"@angular/core\";\r\nimport { Router } from '@angular/router';\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\nimport { FaIconLibrary } from '@fortawesome/angular-fontawesome';\r\n\r\n/********** Component & Service **********/\r\nimport { ZGroup } from \"mmhglobal-zcore\";\r\n\r\n\r\nexport interface UiMenuContentItem {\r\n url: string;\r\n icon: string | Array<string>;\r\n title: string;\r\n}\r\n\r\nexport interface UiMenuContentCategory {\r\n category:string;\r\n content:Array<UiMenuContentItem>\r\n}\r\n\r\n@Component({\r\n selector: 'app-uimenucontent',\r\n templateUrl: './uimenucontent.component.html',\r\n styleUrls: ['./uimenucontent.component.scss'],\r\n})\r\nexport class UimenucontentComponent implements OnInit {\r\n @Input() items: Array<UiMenuContentCategory> | Array<UiMenuContentItem>;\r\n\r\n \r\n constructor() { }\r\n\r\n ngOnInit() {\r\n if (this.items && this.items.length > 0) {\r\n console.error('Pls stop use hardcode submenu. Now the submenu can define in e1 Menu Relationship.');\r\n }\r\n }\r\n\r\n CheckisCategory(e: UiMenuContentCategory | UiMenuContentItem): e is UiMenuContentCategory { \r\n return (<UiMenuContentCategory>e).category !== undefined;\r\n }\r\n\r\n isCategory(){\r\n let v = false;\r\n if (this.items.length > 0) {\r\n if (this.CheckisCategory(this.items[0])) {\r\n v = true;\r\n }\r\n }\r\n return v; \r\n }\r\n\r\n}\r\n","<div *ngIf=\"this.isCategory()\">\r\n <ion-row *ngFor=\"let cat of items\">\r\n <kendo-panelbar keepItemContent=\"true\" style=\"width: 100%;padding:10px;\">\r\n <kendo-panelbar-item [title]=\"[cat.category]\" [expanded]=\"true\" icon=\"folder\" >\r\n <ng-template kendoPanelBarContent>\r\n <div class=\"ion-row\" style=\"padding: 6px 12px;\">\r\n <ion-grid>\r\n <ion-row>\r\n <ion-col sizeXs=\"4\" sizeMd=\"3\" sizeXl=\"2\" *ngFor=\"let item of cat.content\">\r\n <div class=\"menu-btn ion-activatable ripple-parent\" [routerLink]=\"[item.url]\">\r\n <ion-label class=\"menu-btn-label menu-btn-icon\">\r\n <!-- <ion-icon [name]=\"item.icon\"></ion-icon> -->\r\n <fa-icon [icon]=\"item.icon\" style=\"\"></fa-icon>\r\n </ion-label>\r\n <ion-label class=\"menu-btn-label\">{{ item.title }}</ion-label>\r\n <ion-ripple-effect></ion-ripple-effect>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n </ion-grid>\r\n </div>\r\n </ng-template>\r\n </kendo-panelbar-item>\r\n </kendo-panelbar>\r\n </ion-row>\r\n</div>\r\n<ion-grid *ngIf=\"!this.isCategory()\">\r\n <ion-row>\r\n <ion-col sizeXs=\"4\" sizeMd=\"3\" sizeXl=\"2\" *ngFor=\"let item of items\">\r\n <div class=\"menu-btn ion-activatable ripple-parent\" [routerLink]=\"[item.url]\">\r\n <ion-label class=\"menu-btn-label menu-btn-icon\">\r\n <!-- <ion-icon [name]=\"item.icon\"></ion-icon> -->\r\n <fa-icon [icon]=\"item.icon\" style=\"\"></fa-icon>\r\n </ion-label>\r\n <ion-label class=\"menu-btn-label\">{{ item.title }}</ion-label>\r\n <ion-ripple-effect></ion-ripple-effect>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n</ion-grid>\r\n\r\n\r\n\r\n\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\n\r\n/********** Component & Service **********/\r\nimport { OAuthMenuItem, MenuService, AuthService, ZComponentHelper, ZCoreService } from 'mmhglobal-zcore';\r\n\r\n\r\n@Component({\r\n selector: 'app-uiappmenucontent',\r\n templateUrl: './uiappmenucontent.component.html',\r\n styleUrls: ['./uiappmenucontent.component.scss'],\r\n})\r\nexport class UiappmenucontentComponent implements OnInit {\r\n @Input() items: Array<OAuthMenuItem>;\r\n\r\n colorArray: any[] = [\r\n { stroke: '#F59600', color: '#F59600' },\r\n\r\n { stroke: '#F5C800', color: '#F5C800' },\r\n { stroke: '#F5EF00', color: '#F5EF00' },\r\n { stroke: '#8FE300', color: '#8FE300' },\r\n { stroke: '#00B33D', color: '#00B33D' },\r\n { stroke: '#095D9D', color: '#095D9D' },\r\n { stroke: '#2116AA', color: '#2116AA' },\r\n\r\n { stroke: '#6509A4', color: '#6509A4' },\r\n { stroke: '#C4006F', color: '#C4006F' },\r\n { stroke: '#F52B00', color: '#F52B00' }\r\n ];\r\n\r\n constructor(\r\n private router: Router,\r\n private menuService: MenuService,\r\n private authService: AuthService,\r\n private zcoreService: ZCoreService\r\n ) { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n public getDivClass(item) {\r\n return item.Type === 'dropdown-submenu' ? 'flex-show' : 'col-xs-4 col-sm-4 col-md-3 col-xl-2';\r\n }\r\n\r\n public getMenuList(item) {\r\n return item.Type === 'dropdown-submenu' ? this.menuService.getMenuFolder(item.URL) : null;\r\n }\r\n\r\n public menuOnClick(pathName: string, appClientPath?: string) {\r\n const startupPage: string = this.zcoreService.getEnvironment().startUpPage;\r\n\r\n if (appClientPath && startupPage.toLocaleLowerCase() == 'launcher') {\r\n ZComponentHelper.openAppClientPath(pathName, appClientPath, this.authService); \r\n return false;\r\n }\r\n else {\r\n this.router.navigate([pathName]);\r\n }\r\n } \r\n\r\n private setMapInput(key: string, value: string) {\r\n const mapInput = document.createElement('input');\r\n mapInput.type = 'hidden';\r\n mapInput.name = key;\r\n mapInput.setAttribute('value', value);\r\n\r\n return mapInput;\r\n }\r\n}\r\n","<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","/********** Angular **********/\r\nimport { Component, OnInit, Input } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\n\r\n/********** Component & Service **********/\r\nimport { ZGroup, ZField, ZComponentHelper } from 'mmhglobal-zcore';\r\n\r\n\r\n@Component({\r\n selector: 'app-uivalidationmessage',\r\n templateUrl: './uivalidationmessage.component.html',\r\n styleUrls: ['./uivalidationmessage.component.scss'],\r\n})\r\nexport class UivalidationmessageComponent implements OnInit {\r\n @Input() group: ZGroup;\r\n @Input() data: ZField;\r\n @Input() form: FormGroup;\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {}\r\n\r\n getValidationError(form: FormGroup, data: ZField) {\r\n return ZComponentHelper.getValidationError(form, data);\r\n } \r\n\r\n isMobileScreen() {\r\n const v = ZComponentHelper.isMobileScreen();\r\n return v;\r\n }\r\n\r\n getIconClass() {\r\n if (!this.isMobileScreen()) {\r\n return \"k-icon k-i-warning validation_icon\"\r\n }\r\n else {\r\n return \"k-icon k-i-warning\"\r\n }\r\n }\r\n}\r\n","<div *ngIf=\"form.get(data.Value).invalid && (form.get(data.Value).dirty || form.get(data.Value).touched)\"\r\n class=\"divvalidation\">\r\n <div kendoTooltip\r\n position=\"left\"\r\n showOn=\"hover\">\r\n <span #warning\r\n [class]=\"getIconClass()\"\r\n [title]=\"getValidationError(form, data)\"></span>\r\n </div>\r\n</div>\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input } from \"@angular/core\";\r\nimport { FormGroup } from '@angular/forms';\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\n\r\n/********** Component & Service **********/\r\nimport { \r\n ZField, ZGroup, ZComponentProperties,\r\n ZComponent, ZComponentHelper \r\n} from 'mmhglobal-zcore';\r\n\r\n\r\n@Component({\r\n selector: 'app-zbullet',\r\n templateUrl: './zbullet.component.html',\r\n styleUrls: ['./zbullet.component.scss'],\r\n})\r\nexport class ZBulletComponent implements ZComponent, OnInit {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n\r\n componentProperties = new ZComponentProperties();\r\n dataSource: Array<any>;\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n this.data.ListType = this.data.ListType ? this.data.ListType : \"ul\";\r\n this.setupDataSource();\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n }\r\n \r\n private setupDataSource() {\r\n if (!this.data.DataSource) {\r\n console.error(\"No data source found for zhip\");\r\n return;\r\n }\r\n\r\n if (this.data.DataSource.indexOf(\"group.\") !== -1) {\r\n this.dataSource = ZComponentHelper.getGroupValue(\r\n this.data.DataSource,\r\n this.group\r\n );\r\n }\r\n else {\r\n this.dataSource = this.data.DataSource as any;\r\n }\r\n }\r\n\r\n getReadOnlyValue() {\r\n const readOnlyValue = ZComponentHelper.getGroupEvalValue.call(this, this.data.ReadOnly);\r\n if (typeof readOnlyValue === 'function') {\r\n return readOnlyValue();\r\n }\r\n return readOnlyValue;\r\n }\r\n\r\n isVisible() {\r\n if (this.componentProperties.isVisible === null) {\r\n return ZComponentHelper.isVisible.call(this, this.data);\r\n } else {\r\n return this.componentProperties.isVisible;\r\n }\r\n }\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n }\r\n\r\n public setData = (data: any) => {\r\n this.dataSource = data;\r\n }\r\n\r\n getIon_InvalidClass(form: FormGroup, data: ZField) {\r\n return ZComponentHelper.getIon_InvalidClass(form, data);\r\n }\r\n\r\n getClass(form: FormGroup, data: ZField) {\r\n return `${ZComponentHelper.getIon_InvalidClass(form, data)} ${data.DivClass}`;\r\n }\r\n}","<ion-item [formGroup]=\"form\" *ngIf=\"componentProperties.isVisible\" [ngClass]=\"getClass(form, data)\">\r\n <div class=\"ion-row\" style=\"justify-content: space-between; width: 100%\">\r\n <span style=\"flex: 1;\" class=\"listContainer\">\r\n <ul *ngIf=\"data.ListType === 'ul'\" [style.list-style-type]=\"data.BulletStyle ? data.BulletStyle : 'disc'\">\r\n <li *ngFor=\"let item of dataSource\">\r\n <ion-label class=\"ion-text-wrap\" Position=\"Fixed\" [color]=\"item.Color ? item.Color : 'black'\">\r\n {{item.Label}}\r\n </ion-label>\r\n </li>\r\n </ul>\r\n <ol *ngIf=\"data.ListType === 'ol'\">\r\n <li *ngFor=\"let item of dataSource\">\r\n <ion-label class=\"ion-text-wrap\" Position=\"Fixed\" [color]=\"item.Color ? item.Color : 'black'\">\r\n {{item.Label}}\r\n </ion-label>\r\n </li>\r\n </ol>\r\n <!-- <dl *ngIf=\"data.ListType === 'dl'\">\r\n <dd *ngFor=\"let item of dataSource\">\r\n <ion-label class=\"ion-text-wrap\" Position=\"Fixed\" [color]=\"item.Color ? item.Color : 'black'\">\r\n {{item.Label}}\r\n </ion-label>\r\n </dd>\r\n </dl> -->\r\n </span>\r\n </div>\r\n</ion-item>","/********** Angular **********/\r\nimport { Component, OnInit, Input } from '@angular/core';\r\nimport { FormGroup, Validators } from '@angular/forms';\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\n\r\n/********** Component & Service **********/\r\nimport { \r\n FieldService, ZComponent, ZComponentHelper, \r\n ZComponentOutputEvent, ZComponentProperties, ZField, ZGroup, FontAweSomeService\r\n} from 'mmhglobal-zcore';\r\n\r\n\r\n@Component({\r\n selector: \"app-zbuttons\",\r\n templateUrl: \"./zbuttons.component.html\",\r\n styleUrls: [\"./zbuttons.component.scss\"]\r\n})\r\nexport class ZbuttonsComponent implements ZComponent, OnInit {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n\r\n items: Array<any> = [];\r\n FirstZbtn = false;\r\n componentProperties = new ZComponentProperties();\r\n expand = \"\";\r\n\r\n constructor(\r\n private fieldService: FieldService\r\n ) { }\r\n\r\n ngOnInit() {\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n\r\n const field$ = this.fieldService.getFormFieldCode(\r\n this.data.Value,\r\n \"FormField\", null, null\r\n );\r\n\r\n this.group.zButtonsCount++;\r\n if (this.group.zButtonsCount === 1) {\r\n this.FirstZbtn = true;\r\n }\r\n\r\n this.expand = this.data.Expand || \"\";\r\n\r\n try {\r\n field$.subscribe(data => {\r\n // this.items = data;\r\n data.forEach((button: any) => {\r\n if (this.data.SubType) {\r\n button.Name = this.data.SubType + '_' + button.Name; \r\n } \r\n\r\n const label = this.getButtonLabel(button);\r\n\r\n let buttonDisabled = null;\r\n\r\n if (button.Disabled != \"\" && button.Disabled) {\r\n buttonDisabled = button.Disabled === 'true' ? true : ZComponentHelper.getGroupEvalValue.call(this, button.Disabled);\r\n }\r\n\r\n const fill = button['Fill'] ? button['Fill'] : 'outline';\r\n const color = button.Color ? button.Color : 'dark';\r\n\r\n this.items.push({\r\n name: button.Name,\r\n text: label,\r\n icon: ZComponentHelper.getIcon(button.Icon),\r\n visible: button.Visible,\r\n disabled: buttonDisabled,\r\n clickEvent: button.ClickEvent,\r\n iconName: button.Icon,\r\n dismissType: button.DismissType,\r\n disableTriggerTimer: button.DisableTriggerTimer,\r\n fill: fill,\r\n color: color,\r\n SubType: this.data.SubType,\r\n click: (y) => {\r\n this.buttonClick(button);\r\n }\r\n }); \r\n });\r\n });\r\n } catch (error) {\r\n console.error(\"error: \", error);\r\n }\r\n }\r\n\r\n public setLabelText(newText: string, name: string) {\r\n const btn = this.items.find(x => x.name === name);\r\n if (btn) {\r\n btn.text = newText;\r\n }\r\n }\r\n\r\n private buttonClick(button: any) {\r\n // debugger;\r\n this.group.isTriggered = true;\r\n const me = this.group;\r\n if (!this.data['DisableTriggerTimer']) {\r\n setTimeout(function () {\r\n me['isTriggered'] = false;\r\n }, 500);\r\n }\r\n this.group.subject.next({\r\n type: \"buttonClick\",\r\n target: button.ClickEvent,\r\n data: null\r\n } as ZComponentOutputEvent);\r\n }\r\n\r\n BtnClick(item: any) {\r\n // debugger;\r\n this.group.isTriggered = true;\r\n const me = this.group;\r\n if (!item['disableTriggerTimer']) {\r\n setTimeout(function () {\r\n me['isTriggered'] = false;\r\n }, 500);\r\n }\r\n this.group['DismissType'] = item.dismissType;\r\n this.group.subject.next({\r\n type: \"buttonClick\",\r\n target: item.clickEvent,\r\n data: item\r\n } as ZComponentOutputEvent);\r\n }\r\n\r\n private getButtonLabel(button: any) {\r\n if (button.Label) {\r\n let labelExpr = button.Label.match(/^{{.*}}$/gi);\r\n if (labelExpr) {\r\n labelExpr = labelExpr[0].slice(2, -2);\r\n const label = ZComponentHelper.getGroupValue(labelExpr, this.group);\r\n return label;\r\n } else {\r\n return button.Label;\r\n }\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n\r\n private getButtonRole(button: any, label: string) {\r\n // console.log(\"getButtonRole: \", label, button.ClickEvent);\r\n const lowerCaseLabel = label.toLowerCase();\r\n if (\r\n lowerCaseLabel.indexOf(\"cancel\") !== -1 ||\r\n lowerCaseLabel.indexOf(\"close\") !== -1\r\n ) {\r\n return \"cancel\";\r\n }\r\n return null;\r\n }\r\n\r\n isMobileScreen() {\r\n const v = ZComponentHelper.isMobileScreen();\r\n return v;\r\n }\r\n\r\n isBtnVisible(fieldExpr) {\r\n if (fieldExpr !== false && !fieldExpr) {\r\n return true;\r\n }\r\n const v = ZComponentHelper.getGroupEvalValue.call(this, fieldExpr);\r\n return v;\r\n }\r\n\r\n getFontAwesome(iconName: string) {\r\n return ZComponentHelper.getFontAwesome(iconName);\r\n }\r\n\r\n public setEnable = (status: boolean) => {\r\n const fc = this.group.form.controls[this.data.Value];\r\n status ? fc.enable() : fc.disable();\r\n this.componentProperties.isReadOnly = !status;\r\n }\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n }\r\n\r\n public setRequire = (status: boolean) => {\r\n this.componentProperties.isRequired = status;\r\n ZComponentHelper.changeValidator(status, this.group, this.data.Value, this.componentProperties, Validators.required);\r\n }\r\n}\r\n","<!-- <p>\r\n zbuttons {{data.Value}}\r\n</p> -->\r\n<div *ngIf=\"data.AlignButton\" style=\"padding-top: 13px\"></div>\r\n<div *ngIf=\"(!!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 <ng-template kendoDropDownButtonItemTemplate let-dataItem>\r\n <!-- <span class=\"k-icon k-i-{{ dataItem.icon }}\"></span> -->\r\n <span>{{ dataItem.text }}</span>\r\n </ng-template>\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)=\"BtnClick(item.clickEvent)\"\r\n kendoButton [togglable]=\"true\" [icon]=\"item.icon\" [hidden]=\"!isBtnVisible(item.visible)\"\r\n style=\"margin-right: 5px;\">{{item.text}}</button> -->\r\n <ion-button *ngFor=\"let item of items; let i = index\"\r\n [fill]=\"item.fill\"\r\n [color]=\"item.color\"\r\n size=\"small\"\r\n strong=\"false\"\r\n class=\"button-container\"\r\n (click)=\"BtnClick(item)\"\r\n [expand]=\"expand\"\r\n [hidden]=\"!isBtnVisible(item.visible)\"\r\n [disabled]=\"group.isTriggered || item.disabled\">\r\n <fa-icon [icon]=\"getFontAwesome(item.icon)\"></fa-icon>\r\n <div *ngIf=\"item.text\" style=\"padding-right: 5px;\"></div>\r\n <span class=\"ion-text-capitalize\">{{item.text}}</span>\r\n </ion-button>\r\n </div>\r\n</div>\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input } from \"@angular/core\";\r\nimport { FormGroup } from \"@angular/forms\";\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\n\r\n/********** Component & Service **********/\r\nimport { \r\n ZComponent, ZComponentHelper,\r\n ZField, ZGroup, ZComponentProperties, AuthService, FontAweSomeService\r\n} from \"mmhglobal-zcore\";\r\n\r\n\r\n@Component({\r\n selector: \"app-zcard\",\r\n templateUrl: \"./zcard.component.html\",\r\n styleUrls: [\"./zcard.component.scss\"],\r\n})\r\nexport class ZcardComponent implements ZComponent, OnInit {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n\r\n // classStyleObservables: Array<BehaviorSubject<string>>;\r\n\r\n componentProperties = new ZComponentProperties();\r\n\r\n constructor(\r\n private authService: AuthService\r\n ) { }\r\n\r\n options = {\r\n Title: '',\r\n Icon:'Folder'\r\n }\r\n\r\n ngOnInit() {\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n ZComponentHelper.setFieldsDivClass(this.group._projectName, this.group.fieldName, this.data, this.authService);\r\n\r\n this.getFieldDeclarationForSetup(this.data, this.options);\r\n\r\n }\r\n\r\n ComponentIsVisible(field: ZField): any {\r\n return ZComponentHelper.ComponentIsVisible(field, this.group);\r\n }\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n }\r\n\r\n getReadOnlyValue() {\r\n const readOnlyValue = ZComponentHelper.getGroupEvalValue.call(this, this.data.ReadOnly);\r\n if (typeof readOnlyValue === 'function') {\r\n return readOnlyValue();\r\n }\r\n return readOnlyValue;\r\n }\r\n\r\n private getFieldDeclarationForSetup(field: ZField, options: any) {\r\n options.Title = field.Title.includes(\"group.\") ? ZComponentHelper.getGroupEvalValue.call(this, field.Title) : field.Title;\r\n //options.Icon = ZComponentHelper.getIcon(field.Icon.toString())||options.Icon;\r\n }\r\n \r\n public setData = (gData: any) => {\r\n this.getFieldDeclarationForSetup(this.data, this.options);\r\n }\r\n\r\n // getFontAwesome(iconName: string) {\r\n // return ZComponentHelper.getFontAwesome(iconName);\r\n // }\r\n\r\n public setEnable = (status: boolean) => {\r\n const fc = this.group.form.controls[this.data.Value];\r\n status ? fc.enable() : fc.disable();\r\n this.componentProperties.isReadOnly = !status;\r\n }\r\n}\r\n","<div *ngIf=\"(!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\" style=\"margin: 10px 0 6px 0;\">\r\n <kendo-panelbar keepItemContent=\"true\" *ngIf=\"!data.DisableCollapse\">\r\n <kendo-panelbar-item [expanded]=\"!data.DefaultCollapse\" [disabled]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\">\r\n <ng-template kendoPanelBarItemTitle>\r\n <span *ngIf=\"data.Icon\">\r\n <fa-icon [icon]=\"data.Icon\" class=\"zcard-header-icon\"></fa-icon>\r\n </span>\r\n <span *ngIf=\"!data.Icon\">\r\n <i class=\"fas fa-folder\" style=\"color: #000000\"></i>\r\n </span>\r\n <ion-label class=\"zcard-header-title\">{{options.Title}}</ion-label>\r\n </ng-template>\r\n <ng-template kendoPanelBarContent>\r\n <div class=\"ion-row\" style=\"padding: 6px 12px;\">\r\n <app-zformcontrol [ngClass]=\"group[field.isVisibleField] ? field.DivClass : ((field.Visible === true) ? field.DivClass : 'flex-hide')\"\r\n *ngFor=\"let field of data.Value\"\r\n [field]=\"field\"\r\n [group]=\"group\"\r\n [form]=\"form\"\r\n id=\"{{field.Type}}-{{field.Name}}\">\r\n </app-zformcontrol>\r\n </div>\r\n </ng-template>\r\n </kendo-panelbar-item>\r\n </kendo-panelbar>\r\n\r\n <kendo-card *ngIf=\"data.DisableCollapse\" width=\"100%\">\r\n <kendo-card-header>\r\n <div>\r\n <span *ngIf=\"data.Icon\">\r\n <fa-icon [icon]=\"data.Icon\" class=\"zcard-header-icon\"></fa-icon>\r\n </span>\r\n <span *ngIf=\"!data.Icon\">\r\n <i class=\"fas fa-folder\" style=\"color: #000000\"></i>\r\n </span>\r\n <ion-label class=\"card-header-title\">{{options.Title}}</ion-label>\r\n </div>\r\n </kendo-card-header>\r\n <kendo-card-body>\r\n <div class=\"ion-row\">\r\n <app-zformcontrol [ngClass]=\"group[field.isVisibleField] ? field.DivClass : ((field.Visible === true) ? field.DivClass : 'flex-hide')\"\r\n *ngFor=\"let field of data.Value\"\r\n [field]=\"field\"\r\n [group]=\"group\"\r\n [form]=\"form\"\r\n id=\"{{field.Type}}-{{field.Name}}\">\r\n </app-zformcontrol>\r\n </div>\r\n </kendo-card-body>\r\n </kendo-card>\r\n</div>\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input } from \"@angular/core\";\r\nimport { FormGroup, Validators } from '@angular/forms';\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\n// import { groupBy, GroupResult } from '@progress/kendo-data-query';\r\n\r\n/********** Component & Service **********/\r\nimport { \r\n ZComponent, ZComponentHelper,\r\n ZField, ZGroup, ZComponentProperties \r\n} from 'mmhglobal-zcore';\r\n\r\n\r\n@Component({\r\n selector: 'app-zchart',\r\n templateUrl: './zchart.component.html',\r\n styleUrls: ['./zchart.component.scss'],\r\n})\r\nexport class ZchartComponent implements ZComponent, OnInit {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n\r\n isLoading = true;\r\n componentProperties = new ZComponentProperties();\r\n private series: any[] = [];\r\n // = [{\r\n // type: '',\r\n // style: 'smooth',\r\n // name: 'India',\r\n // data: [3.907, 7.943, 7.848, 9.284, 9.263, 9.801, 3.890, 8.238, 9.552, 6.855]\r\n // }, {\r\n // type: '',\r\n // style: 'smooth',\r\n // name: 'Russian Federation',\r\n // data: [4.743, 7.295, 7.175, 6.376, 8.153, 8.535, 5.247, -7.832, 4.3, 4.3]\r\n // }, {\r\n // type: 'bar',\r\n // style: 'smooth',\r\n // name: 'Germany',\r\n // data: [0.010, -0.375, 1.161, 0.684, 3.7, 3.269, 1.083, -5.127, 3.690, 2.995]\r\n // }, {\r\n // type: 'area',\r\n // style: 'smooth',\r\n // name: 'World',\r\n // data: [1.988, 2.733, 3.994, 3.464, 4.001, 3.939, 1.333, -2.245, 4.339, 2.727]\r\n // }];\r\n\r\n private categories = [];\r\n // [2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011];\r\n\r\n options = {\r\n title: 'Chart Title Here',\r\n renderAs: 'canvas', // svg\r\n pannable: false,\r\n zoomable: false,\r\n categoryAxis: {\r\n categories: this.categories,\r\n max: 10,\r\n maxDivisions: null,\r\n labels: { rotation: 'auto' }\r\n },\r\n labels: {\r\n visible: false,\r\n background: \"transparent\"\r\n },\r\n series: this.series,\r\n dataType: 'bar',\r\n dataStyle: 'smooth',\r\n legendPosition: 'bottom',\r\n legendOrientation: 'horizontal',\r\n tooltipFormat: '{0}%',\r\n aggregateType: 'sum',\r\n dataField: null,\r\n categoryField: null,\r\n color: '#05A2FE',\r\n };\r\n\r\n // fieldElement01 = [{\r\n // Name: 'chart01',\r\n // Type: 'zchart',\r\n // Options: 'group.chart01Options',\r\n // DivClass: \"col-md-12 col-md-6\",\r\n // Visible: true\r\n // }];\r\n\r\n // fieldElement02 = [{\r\n // Name: 'chart01',\r\n // Type: 'zchart',\r\n // Title: 'Chart01 Title',\r\n // RenderAs: 'svg',\r\n // Pannable: true,\r\n // Zoomable: true,\r\n // Categories: 'group.chart01Categories',\r\n // Max: 10,\r\n // MaxDivisions: null,\r\n // Rotation: 'auto',\r\n // Series: 'group.chart01Series',\r\n // DataType: 'bar',\r\n // DataStyle: 'smooth',\r\n // LegendPosition: 'bottom',\r\n // LegendOrientation: 'horizonal',\r\n // TooltipFormat: '{0}',\r\n // AggregateType: 'sum',\r\n // DataField: null,\r\n // CategoryField: null,\r\n // DivClass: \"col-md-12 col-md-6\",\r\n // Visible: true\r\n // }];\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n\r\n if (this.data.Options) {\r\n const optionType = typeof (this.data.Options);\r\n if (optionType === 'object') {\r\n Object.assign(this.options, this.data.Options);\r\n } else if (optionType === 'string') {\r\n const optionValue = ZComponentHelper.getGroupEvalValue.call(this, this.data.Options);\r\n if (typeof(optionValue) === 'object') {\r\n Object.assign(this.options, optionValue);\r\n }\r\n }\r\n }\r\n\r\n if (this.data.Options && this.data.Options.categoryAxis && this.data.Options.categoryAxis.categories && typeof (this.data.Options.categoryAxis.categories) === 'string') {\r\n this.options.categoryAxis.categories =\r\n ZComponentHelper.getGroupEvalValue.call(this, this.data.Options.categoryAxis.categories);\r\n }\r\n\r\n if (this.data.Options && this.data.Options.series && typeof (this.data.Options.series) === 'string') {\r\n this.options.series =\r\n ZComponentHelper.getGroupEvalValue.call(this, this.data.Options.series);\r\n }\r\n\r\n\r\n this.getFieldDeclarationForSetup(this.data, this.options);\r\n\r\n this.isLoading = false;\r\n }\r\n\r\n private getFieldDeclarationForSetup(field: ZField, options: any) {\r\n options.title = field.Title || options.title;\r\n options.renderAs = field.RenderAs || options.renderAs;\r\n options.pannable = field.Pannable || options.pannable;\r\n options.zoomable = field.Zoomable || options.zoomable;\r\n options.categoryAxis.categories = ZComponentHelper.getGroupEvalValue.call(this, field.Categories) || [];\r\n options.categoryAxis.max = field.Max || options.categoryAxis.max;\r\n options.categoryAxis.maxDivisions = field.MaxDivisions || options.categoryAxis.maxDivisions;\r\n options.categoryAxis.labels.rotation = field.Rotation || options.categoryAxis.labels.rotation;\r\n options.series = ZComponentHelper.getGroupEvalValue.call(this, field.Series) || [];\r\n options.dataType = field.DataType || options.dataType;\r\n options.dataStyle = field.DataStyle || options.dataStyle;\r\n options.legendPosition = field.LegendPosition || options.legendPosition;\r\n options.legendOrientation = field.LegendOrientation || options.legendOrientation;\r\n options.tooltipFormat = field.TooltipFormat || options.tooltipFormat;\r\n options.aggregateType = field.AggregateType || options.aggregateType;\r\n options.dataField = field.DataField || options.dataField;\r\n options.categoryField = field.CategoryField || options.categoryField;\r\n }\r\n\r\n public onRender(e): void {\r\n // console.log('render');\r\n }\r\n\r\n public onAxisLabelClick(e): void {\r\n // console.log('axisLabelClick', e);\r\n }\r\n\r\n public onLegendItemClick(e): void {\r\n // console.log('legendItemClick', e);\r\n }\r\n\r\n public onLegendItemHover(e): void {\r\n // console.log('legendItemHover', e);\r\n }\r\n\r\n public onPlotAreaClick(e): void {\r\n // console.log('plotAreaClick', e);\r\n }\r\n\r\n public onPlotAreaHover(e): void {\r\n // console.log('plotAreaHover', e);\r\n }\r\n\r\n public onSeriesClick(e): void {\r\n // console.log('seriesClick', e);\r\n const f = ZComponentHelper.getGroupEvalValue.call(this, this.data.OnItemClick);\r\n if (typeof f === 'function') {\r\n const callFunc = f.bind(this.group.ctrlScope);\r\n return callFunc(e);\r\n }\r\n return;\r\n }\r\n\r\n public onSeriesHover(e): void {\r\n // console.log('seriesHover', e);\r\n }\r\n\r\n public setData = (gData: any) => {\r\n this.getFieldDeclarationForSetup(this.data, this.options);\r\n }\r\n\r\n public setEnable = (status: boolean) => {\r\n // const fc = this.group.form.controls[this.data.Value];\r\n // status ? fc.enable() : fc.disable();\r\n this.componentProperties.isReadOnly = !status;\r\n }\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n }\r\n\r\n public setRequire = (status: boolean) => {\r\n this.componentProperties.isRequired = status;\r\n ZComponentHelper.changeValidator(status, this.group, this.data.Value, this.componentProperties, Validators.required);\r\n }\r\n\r\n}\r\n","<div *ngIf=\"!isLoading && (!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\">\r\n <kendo-chart [renderAs]=\"options.renderAs\" [pannable]=\"options.pannable\" [zoomable]=\"options.zoomable\"\r\n [categoryAxis]=\"options.categoryAxis\"\r\n (render)=\"onRender($event)\"\r\n (axisLabelClick)=\"onAxisLabelClick($event)\"\r\n (legendItemClick)=\"onLegendItemClick($event)\"\r\n (legendItemHover)=\"onLegendItemHover($event)\"\r\n (plotAreaClick)=\"onPlotAreaClick($event)\"\r\n (plotAreaHover)=\"onPlotAreaHover($event)\"\r\n (seriesClick)=\"onSeriesClick($event)\"\r\n (seriesHover)=\"onSeriesHover($event)\">\r\n <kendo-chart-title [text]=\"options.title\"></kendo-chart-title>\r\n <kendo-chart-legend [position]=\"options.legendPosition\" [orientation]=\"options.legendOrientation\"></kendo-chart-legend>\r\n <kendo-chart-tooltip [format]=\"options.tooltipFormat\"></kendo-chart-tooltip>\r\n <kendo-chart-series>\r\n <kendo-chart-series-item *ngFor=\"let item of options.series\"\r\n [aggregate]=\"options.aggregateType\"\r\n [type]=\"item.type || options.dataType\" [style]=\"item.style || options.dataStyle\" \r\n [color]=\"item.color || options.color\"\r\n [labels]=\"item.labels || options.labels\" \r\n [field]=\"options.dataField\" [categoryField]=\"options.categoryField\"\r\n [data]=\"item.data\" [name]=\"item.name\">\r\n </kendo-chart-series-item>\r\n </kendo-chart-series>\r\n </kendo-chart>\r\n</div>","/********** Angular **********/\r\nimport { Component, OnInit, Input } from \"@angular/core\";\r\nimport { FormGroup, Validators } from \"@angular/forms\";\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\n\r\n/********** Component & Service **********/\r\nimport { \r\n ZGroup, ZField, ZComponentProperties,\r\n ZComponent, ZComponentHelper, ZComponentOutputEvent,\r\n} from \"mmhglobal-zcore\";\r\n\r\n\r\n@Component({\r\n selector: \"app-zcheckbox\",\r\n templateUrl: \"./zcheckbox.component.html\",\r\n styleUrls: [\"./zcheckbox.component.scss\"],\r\n})\r\nexport class ZcheckboxComponent implements ZComponent, OnInit {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n\r\n componentProperties = new ZComponentProperties();\r\n public showTooltipsInfoIcon: boolean = false;\r\n public showTooltipsInfoBySide: boolean = false;\r\n public tooltipsInfo: any = null;\r\n public tooltipsDisplayText: string = null;\r\n public tooltipsDisplayIcon: any;\r\n public useKendoSwitch: boolean = false;\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n\r\n this.tooltipsInfo = this.data['TooltipsInfo'];\r\n if (this.tooltipsInfo) {\r\n if ((this.tooltipsInfo['Icon'] != null || this.tooltipsInfo['Icon'] != undefined) && !this.isMobileScreen()) {\r\n this.showTooltipsInfoIcon = true;\r\n this.setTooltipsInfoIcon();\r\n }\r\n if (this.tooltipsInfo['SideBySide']) {\r\n this.showTooltipsInfoBySide = true;\r\n }\r\n \r\n this.setTooltipsDisplayText();\r\n }\r\n\r\n this.useKendoSwitch = this.data.UseKendoSwitch ? this.data.UseKendoSwitch : false;\r\n }\r\n\r\n isMobileScreen() {\r\n const v = ZComponentHelper.isMobileScreen();\r\n return v;\r\n }\r\n\r\n onSwitchChange(event: any) {\r\n ZComponentHelper.setModelValue(this.data.Value, event, this.group);\r\n this.group.subject.next({\r\n type: \"onChange\",\r\n target: this.data.OnChange,\r\n data: { value: event, field: this.data },\r\n } as ZComponentOutputEvent);\r\n }\r\n\r\n onChange(event: any) {\r\n if (this.data.OnChange) {\r\n const callFunc = ZComponentHelper.getGroupEvalValue.call(\r\n this,\r\n this.data.OnChange\r\n );\r\n if (typeof callFunc === \"function\") {\r\n const newFunc = callFunc.bind(this.group.ctrlScope);\r\n newFunc(event);\r\n }\r\n }\r\n }\r\n\r\n public setEnable = (status: boolean) => {\r\n const fc = this.group.form.controls[this.data.Value];\r\n status ? fc.enable() : fc.disable();\r\n this.componentProperties.isReadOnly = !status;\r\n };\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n };\r\n\r\n public setRequire = (status: boolean) => {\r\n this.componentProperties.isRequired = status;\r\n ZComponentHelper.changeValidator(\r\n status,\r\n this.group,\r\n this.data.Value,\r\n this.componentProperties,\r\n Validators.required\r\n );\r\n };\r\n\r\n public getLabelStyle() {\r\n return {\r\n order:\r\n this.data.LabelOrder &&\r\n this.data.LabelOrder === \"end\" &&\r\n this.data.LabelPosition !== \"stacked\"\r\n ? 2\r\n : 0,\r\n \"white-space\": \"normal\",\r\n };\r\n }\r\n\r\n public getCheckboxClass() {\r\n const classList = [];\r\n if (this.data.LabelDivClass) {\r\n this.data.LabelDivClass.split(\" \").forEach((x) => {\r\n if (x.indexOf(\"col\") !== -1) {\r\n const divClassSegment = x.split(\"-\");\r\n divClassSegment[divClassSegment.length - 1] = (\r\n 12 - parseInt(divClassSegment[divClassSegment.length - 1])\r\n ).toString();\r\n classList.push(divClassSegment.join(\"-\"));\r\n } else {\r\n classList.push(x);\r\n }\r\n });\r\n }\r\n\r\n return classList.join(\" \");\r\n }\r\n\r\n getClass(form: FormGroup, data: ZField) {\r\n return `ionItem ${this.data.Class}`;\r\n }\r\n\r\n /********** TooltipsInfo **********/\r\n public setTooltipsInfoColor() {\r\n if (this.tooltipsInfo) {\r\n if (this.tooltipsInfo['TextColor']) {\r\n return this.tooltipsInfo['TextColor'];\r\n }\r\n }\r\n\r\n return \"#acacac\"; // default grey\r\n }\r\n\r\n public setTooltipsInfoIcon(displayIcon?: string) {\r\n if (this.showTooltipsInfoIcon) {\r\n if (this.tooltipsInfo.Icon != '') {\r\n if (displayIcon) {\r\n this.tooltipsDisplayIcon = displayIcon;\r\n }\r\n else {\r\n this.tooltipsDisplayIcon = this.tooltipsInfo.Icon;\r\n }\r\n }\r\n else {\r\n this.tooltipsDisplayIcon = 'question-circle'\r\n }\r\n }\r\n }\r\n\r\n public setTooltipsDisplayText(displayText?: string) {\r\n if (this.tooltipsInfo) {\r\n if (displayText) {\r\n this.tooltipsDisplayText = displayText;\r\n }\r\n else {\r\n this.tooltipsDisplayText = this.tooltipsInfo.DisplayText;\r\n }\r\n }\r\n else {\r\n this.tooltipsDisplayText = '<Display text error>';\r\n }\r\n }\r\n\r\n public setTooltipsInfoSideBySide() { \r\n if (this.tooltipsInfo ) {\r\n if (this.tooltipsInfo ['SideBySide'] && !this.showTooltipsInfoIcon) {\r\n return 'tooltipsinfo-right';\r\n }\r\n else {\r\n return '';\r\n }\r\n }\r\n return 'notooltipsinfo-adjustment';\r\n }\r\n\r\n\r\n}\r\n","<ion-item [ngClass]=\"getClass(form, data)\" [formGroup]=\"form\" *ngIf=\"(!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\">\r\n <ion-label *ngIf=\"data.ShowLabel === undefined || data.ShowLabel\"\r\n [attr.for]=\"data.Value\"\r\n [position]=\"data.LabelPosition ? data.LabelPosition : 'stacked'\"\r\n [ngStyle]=\"getLabelStyle()\"\r\n [ngClass]=\"data.LabelDivClass\">\r\n {{data.Label}}\r\n <ion-text *ngIf=\"(!!componentProperties.isRequiredField ? group[componentProperties.isRequiredField] : componentProperties.isRequired)\"\r\n color=\"danger\">\r\n *\r\n </ion-text>\r\n <span kendoTooltip\r\n *ngIf=\"!isMobileScreen() && tooltipsInfo && showTooltipsInfoIcon\"\r\n [title]=\"tooltipsDisplayText\">\r\n <fa-icon [icon]=\"tooltipsDisplayIcon\"\r\n class=\"tooltipsinfo-icon\">\r\n </fa-icon>\r\n </span>\r\n </ion-label>\r\n <div class=\"ion-row divcheckbox\" [ngClass]=\"getCheckboxClass()\">\r\n <div *ngIf=\"useKendoSwitch\">\r\n <span>\r\n <kendo-switch [id]=\"data.Value\"\r\n [formControlName]=\"data.Value\"\r\n [readonly]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n (valueChange)=\"onSwitchChange($event)\"\r\n style=\"margin: 7px 0 0 0; width: 100%\"></kendo-switch>\r\n </span>\r\n </div>\r\n <div *ngIf=\"!useKendoSwitch\" [class]=\"setTooltipsInfoSideBySide()\">\r\n <!--<input kendoCheckBox\r\n type=\"checkbox\"\r\n [id]=\"data.Value\"\r\n [formControlName]=\"data.Value\"\r\n [disabled]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n (valueChange)=\"onChange($event)\" />-->\r\n <ion-checkbox style=\"margin: 8px 0;\"\r\n [id]=\"data.Value\"\r\n [formControlName]=\"data.Value\"\r\n color=\"primary\"\r\n [attr.disabled]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n (ionChange)=\"onChange($event)\"></ion-checkbox>\r\n <kendo-label *ngIf=\"tooltipsInfo && !showTooltipsInfoIcon\"\r\n [text]=\"tooltipsDisplayText\"\r\n class=\"tooltipsinfo-text\"\r\n [style.color]=\"setTooltipsInfoColor()\">\r\n </kendo-label>\r\n <app-uivalidationmessage [group]=\"group\" [data]=\"data\" [form]=\"form\"></app-uivalidationmessage>\r\n </div>\r\n </div>\r\n</ion-item>\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input, ViewChild } from \"@angular/core\";\r\nimport { FormGroup, Validators } from '@angular/forms';\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\nimport { TooltipDirective } from '@progress/kendo-angular-tooltip';\r\n\r\n/********** Component & Service **********/\r\nimport { \r\n ZComponent, ZComponentHelper, ZComponentOutputEvent,\r\n ZGroup, ZField, ZComponentProperties, AuthService \r\n} from 'mmhglobal-zcore';\r\n\r\n\r\n@Component({\r\n selector: 'app-zchip',\r\n templateUrl: './zchip.component.html',\r\n styleUrls: ['./zchip.component.scss'],\r\n})\r\nexport class ZChipComponent implements ZComponent, OnInit {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n\r\n private icon = \"k-icon k-i-cancel\";\r\n private selectedIcon = \"k-icon k-i-check-circle\";\r\n public componentProperties = new ZComponentProperties();\r\n public dataSource;\r\n @ViewChild(TooltipDirective, { static: false }) public tooltipDir: TooltipDirective;\r\n\r\n constructor(\r\n private authService: AuthService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n this.setupDataSource();\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n }\r\n\r\n private setupDataSource() {\r\n if (!this.data.DataSource) {\r\n console.error(\"No data source found for zhip\");\r\n return;\r\n }\r\n\r\n if (this.data.DataSource.indexOf(\"group.\") !== -1) {\r\n this.dataSource = ZComponentHelper.getGroupValue(\r\n this.data.DataSource,\r\n this.group\r\n );\r\n }\r\n else {\r\n this.dataSource = this.data.DataSource;\r\n }\r\n\r\n if (Array.isArray(this.dataSource)) {\r\n this.dataSource.forEach(x => {\r\n x.Label = x.Label ? x.Label : x.Value,\r\n x.Icon = !!x.Selected ? null : (x.Icon ? x.Icon : this.icon),\r\n x.SelectedIcon = x.SelectedIcon ? x.SelectedIcon : this.selectedIcon,\r\n x._Icon = x.Icon ? x.Icon : this.icon;\r\n x._Selected = x.Selected;\r\n })\r\n }\r\n }\r\n\r\n public getClass() {\r\n return this.data.DivClass;\r\n }\r\n\r\n public getChipClass(chip) {\r\n return chip.Class ? chip.Class : \"\";\r\n }\r\n\r\n public setEnable = (status: boolean) => {\r\n this.componentProperties.isReadOnly = !status;\r\n }\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n }\r\n\r\n public setRequire = (status: boolean) => {\r\n this.componentProperties.isRequired = status;\r\n ZComponentHelper.changeValidator(status, this.group, this.data.Value, this.componentProperties, Validators.required);\r\n }\r\n\r\n public chipListChangeSelection(selectedChipIndexes: any): void {\r\n let ind = 0;\r\n for (let chip of this.dataSource) {\r\n if (selectedChipIndexes.includes(ind)) {\r\n chip.Icon = null\r\n }\r\n else {\r\n chip.Icon = this.dataSource.find(x => x.Value === chip.Value)._Icon;\r\n }\r\n ind++;\r\n }\r\n }\r\n\r\n public chipChangeSelection(chip: any) {\r\n this.dataSource.find(x => x.Value === chip.Value)._Selected = !chip._Selected;\r\n\r\n if (this.data.OnChange) {\r\n this.group.subject.next({\r\n type: \"onChange\",\r\n target: this.data.OnChange,\r\n data: { value: this.dataSource, selectedItem: chip, field: this.data }\r\n } as ZComponentOutputEvent);\r\n }\r\n }\r\n\r\n public getDataValue(): any {\r\n return this.dataSource as any;\r\n }\r\n\r\n public mouseover(event: any, chip: any) {\r\n if (this.data.OnHover) {\r\n this.group.subject.next({\r\n type: \"onHover\",\r\n target: this.data.OnHover,\r\n data: { value: this.dataSource, selectedItem: chip, field: this.data }\r\n } as ZComponentOutputEvent);\r\n }\r\n\r\n if (!!this.data['IsShowToolTip']) {\r\n this.showTooltip(event);\r\n }\r\n }\r\n\r\n public showTooltip(e: MouseEvent): void {\r\n const element = e.target as HTMLElement;\r\n this.tooltipDir.toggle(element);\r\n }\r\n}\r\n","<div\r\n *ngIf=\"(!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\"\r\n style=\"margin: 10px 0 6px 0;\" [ngClass]=\"getClass()\">\r\n <ng-template #template let-anchor>\r\n <span>{{ anchor.nativeElement.innerText }}</span>\r\n </ng-template>\r\n <div kendoTooltip [tooltipTemplate]=\"template\">\r\n <kendo-chip-list [selection]=\"data.Multiple ? 'multiple' : 'single'\"\r\n (selectedChange)=\"chipListChangeSelection($event)\">\r\n <kendo-chip *ngFor=\"let chip of dataSource\" [label]=\"chip.Label\" [selected]=\"chip.Selected\"\r\n (mouseover)=\"mouseover($event, chip)\" [ngClass]=\"getChipClass(chip)\" [icon]=\"chip.Icon\"\r\n [selectedIcon]=\"chip.SelectedIcon\" (click)=\"chipChangeSelection(chip)\" >\r\n </kendo-chip>\r\n </kendo-chip-list>\r\n </div>\r\n</div>\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input, ViewChild, OnDestroy } from \"@angular/core\";\r\nimport { FormGroup, Validators } from \"@angular/forms\";\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\nimport { of, Subscription } from \"rxjs\";\r\nimport { delay } from \"rxjs/operators\";\r\nimport { AceEditorComponent } from \"ng2-ace-editor\";\r\nimport \"brace\";\r\nimport \"brace/theme/eclipse\";\r\nimport \"brace/mode/json\";\r\nimport \"brace/mode/javascript\";\r\nimport \"brace/mode/html\";\r\n\r\n/********** Component & Service **********/\r\nimport {\r\n ZComponent, ZComponentHelper, ZComponentOutputEvent,\r\n ZField, ZGroup, ZComponentProperties\r\n} from \"mmhglobal-zcore\";\r\n\r\n\r\ndeclare let ace: any;\r\n\r\n// import { EditorComponent } from 'ngx-monaco-editor';\r\n// import { EditorOptions } from \"ngx-monaco-editor\";\r\n\r\n@Component({\r\n selector: \"app-zcodeeditor\",\r\n templateUrl: \"./zcodeeditor.component.html\",\r\n styleUrls: [\"./zcodeeditor.component.scss\"]\r\n})\r\nexport class ZcodeeditorComponent implements ZComponent, OnInit, OnDestroy {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n code: string | string[] = \"\";\r\n theme = \"eclipse\";\r\n mode = \"javascript\";\r\n subscription: Subscription;\r\n componentProperties = new ZComponentProperties();\r\n \r\n private widthReduce: number;\r\n private heightReduce: number;\r\n\r\n @ViewChild(\"editor\") editor: AceEditorComponent;\r\n\r\n constructor() {}\r\n\r\n ngOnInit() {\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n\r\n this.widthReduce = this.data.WidthReduce || 60;\r\n this.heightReduce = this.data.HeightReduce || 560;\r\n\r\n // const codeValue = this.getValue();\r\n // if (codeValue) {\r\n // this.code = codeValue;\r\n // }\r\n if (this.data.Type === \"textareajson\") {\r\n this.mode = \"json\";\r\n } else if (this.data.Type === \"textareahtml\") {\r\n this.mode = \"html\";\r\n }\r\n console.log(\"zcodeeditor OnInit\");\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n\r\n // https://github.com/fxmontigny/ng2-ace-editor/blob/master/sample/src/app/app.component.ts\r\n // ngAfterViewInit() {\r\n // const Range = ace.require('ace/range')['Range'];\r\n // this.editor\r\n // .getEditor()\r\n // .session.addMarker(new Range(0, 0, 2, 1), 'myMarker', 'fullLine');\r\n\r\n // this.editor.getEditor().session.setOption('useWorker', true);\r\n // }\r\n\r\n getValue() {\r\n let v;\r\n if (this.data.Value.indexOf('.') !== -1) {\r\n v = this.data.Value;\r\n } else {\r\n v = \"group.zModel.\" + this.data.Value;\r\n }\r\n const evalValue = ZComponentHelper.getEvalValue.call(this, v);\r\n if (typeof evalValue === 'function') {\r\n const nextValue = evalValue();\r\n if (nextValue) {\r\n try {\r\n const evalNextValue = ZComponentHelper.getEvalValue.call(this, nextValue, true);\r\n if (typeof evalNextValue === 'boolean') {\r\n return evalNextValue.toString();\r\n }\r\n if (evalNextValue === undefined) {\r\n return 'undefined';\r\n }\r\n if (evalNextValue === null) {\r\n return 'null';\r\n }\r\n return evalNextValue;\r\n } catch {\r\n return;\r\n }\r\n } else {\r\n return;\r\n }\r\n } else {\r\n return evalValue;\r\n }\r\n // if (this.data.Type === \"textareajson\") {\r\n // if (typeof evalValue === \"string\") {\r\n // const jsonValue = JSON.parse(evalValue);\r\n // return JSON.stringify(jsonValue, null, 2);\r\n // }\r\n // if (typeof evalValue === \"object\" || Array.isArray(evalValue)) {\r\n // return JSON.stringify(evalValue, null, 2);\r\n // }\r\n // }\r\n // if (typeof evalValue === 'string') {\r\n // return evalValue;\r\n // }\r\n // // debugger;\r\n // console.warn(\r\n // \"zcodeeditor - Invalid field.Value (\" + this.data.Value + \") setting \",\r\n // evalValue\r\n // );\r\n // return \"\";\r\n }\r\n\r\n getEditorStyle() {\r\n // debugger;\r\n // return { \"height.px\": 500, \"width.px\": window.innerWidth - 60 }; // \"width.px\": this.innerWidth - 25\r\n return {\r\n \"height.px\": this.getEditorHeight(),\r\n \"width.px\": window.innerWidth - this.widthReduce\r\n };\r\n }\r\n\r\n private getEditorHeight() {\r\n const h = window.innerHeight - this.heightReduce;\r\n return (h < 180) ? 180 : h;\r\n }\r\n\r\n onTextChange(newValue: any) {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n // console.log('onTextChange: ', newValue);\r\n this.subscription = of([])\r\n .pipe(delay(500))\r\n .subscribe(() => {\r\n ZComponentHelper.setModelValue(this.data.Value, newValue, this.group, true);\r\n this.group.subject.next({\r\n type: \"zcodeeditor-TextChanged\",\r\n target: this.data.OnChange,\r\n data: newValue\r\n } as ZComponentOutputEvent);\r\n });\r\n }\r\n\r\n public setEnable = (status: boolean) => {\r\n this.componentProperties.isReadOnly = !status;\r\n }\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n }\r\n\r\n public setRequire = (status: boolean) => {\r\n this.componentProperties.isRequired = status;\r\n ZComponentHelper.changeValidator(status, this.group, this.data.Value, this.componentProperties, Validators.required);\r\n }\r\n}\r\n","<div *ngIf=\"(!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\">\r\n <ion-label *ngIf=\"data.ShowLabel\" position=\"stacked\" style=\"margin-bottom: 10px;\">\r\n {{data.Label}} <ion-text *ngIf=\"(!!componentProperties.isRequiredField ? group[componentProperties.isRequiredField] : componentProperties.isRequired)\" color=\"danger\">*</ion-text>\r\n </ion-label>\r\n <div>\r\n <!-- <div ace-editor\r\n [(text)]=\"text\"\r\n ></div> -->\r\n <ace-editor [readOnly]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\" #editor [ngStyle]=\"getEditorStyle()\" (textChanged)=\"onTextChange($event)\" [text]=\"getValue() | editorfilter\" [theme]=\"theme\" [mode]=\"mode\"></ace-editor>\r\n\r\n <!-- <ngx-monaco-editor #editor [options]=\"editorOptions\" [(ngModel)]=\"code\" (onInit)=\"onInit($event)\"></ngx-monaco-editor> -->\r\n </div>\r\n\r\n</div>","/********** Angular **********/\r\nimport { Component, OnInit, Input, ViewChild } from '@angular/core';\r\nimport { FormGroup, Validators } from '@angular/forms';\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\nimport { DateRangeService } from '@progress/kendo-angular-dateinputs';\r\n\r\n/********** Component & Service **********/\r\nimport { \r\n ZField, ZGroup, ZComponentProperties,\r\n ZComponent, ZComponentHelper \r\n} from 'mmhglobal-zcore';\r\n\r\n\r\n@Component({\r\n selector: 'app-zdaterange',\r\n templateUrl: './zdaterange.component.html',\r\n styleUrls: ['./zdaterange.component.scss'],\r\n})\r\nexport class ZdaterangeComponent implements ZComponent, OnInit {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n @ViewChild('zdaterange') public zdaterange: DateRangeService;\r\n // @ViewChild('endDateInput', { static: true }) public endInput: ElementRef;\r\n range: { start: Date, end: Date} = { start: null, end: null};\r\n componentProperties = new ZComponentProperties();\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n\r\n const rangeDateArray = this.data.Value.split(',');\r\n const fromDateString = rangeDateArray[0].trim();\r\n const toDateString = rangeDateArray[1].trim();\r\n \r\n const fromDate = ZComponentHelper.getGroupEvalValue.call(this, fromDateString);\r\n const toDate = ZComponentHelper.getGroupEvalValue.call(this, toDateString);\r\n // this.range = {\r\n // start: fromDate,\r\n // end: toDate\r\n // }\r\n\r\n\r\n const options = ZComponentHelper.getGroupEvalValue.call(this, this.data.Options);\r\n if (options) {\r\n if (options.min && options.max) {\r\n this.setNewRange(new Date(options.min), new Date(options.max));\r\n }\r\n }\r\n\r\n }\r\n\r\n setNewRange(min: Date, max: Date) {\r\n this.zdaterange.setRange({\r\n start: min,\r\n end: max\r\n });\r\n }\r\n\r\n public setEnable = (status: boolean) => {\r\n this.componentProperties.isReadOnly = !status;\r\n }\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n }\r\n\r\n public setRequire = (status: boolean) => {\r\n this.componentProperties.isRequired = status;\r\n ZComponentHelper.changeValidator(status, this.group, this.data.Value, this.componentProperties, Validators.required);\r\n }\r\n\r\n}\r\n","<ion-item [formGroup]=\"form\" *ngIf=\"(!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\">\r\n <ion-label [attr.for]=\"data.Value\" *ngIf=\"data.ShowLabel === undefined || data.ShowLabel\" position=\"stacked\">\r\n {{data.Label}} <ion-text *ngIf=\"(!!componentProperties.isRequiredField ? group[componentProperties.isRequiredField] : componentProperties.isRequired)\" color=\"danger\">*</ion-text>\r\n </ion-label>\r\n <div class=\"ion-row\" style=\"justify-content: space-between; width: 100%\">\r\n <span style=\"flex: 1;\">\r\n <kendo-daterange #zdaterange class=\"ion-row\">\r\n <!-- <label style=\"flex: 1;\"> -->\r\n <!-- <span class=\"label\">Start</span> -->\r\n <kendo-dateinput style=\"flex: 1;\" kendoDateRangeStartInput [(value)]=\"range.start\" \r\n [attr.disabled]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"></kendo-dateinput>\r\n <!-- </label> -->\r\n <!-- <label style=\"flex: 1;\"> -->\r\n <!-- <span class=\"label\">End</span> -->\r\n <!-- <kendo-dateinput style=\"flex: 1;\" kendoDateRangeEndInput [(value)]=\"range.end\"></kendo-dateinput> -->\r\n <!-- </label> -->\r\n\r\n <kendo-daterange-popup [animate]=\"false\"></kendo-daterange-popup>\r\n </kendo-daterange>\r\n </span>\r\n <app-uivalidationmessage [group]=\"group\" [data]=\"data\" [form]=\"form\"></app-uivalidationmessage>\r\n </div>\r\n</ion-item>","/********** Angular **********/\r\nimport { Component, OnInit, Input } from \"@angular/core\";\r\nimport { FormGroup, Validators } from \"@angular/forms\";\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\nimport { PreventableEvent } from '@progress/kendo-angular-dateinputs';\r\n\r\n/********** Component & Service **********/\r\nimport {\r\n ZComponent, ZComponentHelper, ZComponentOutputEvent,\r\n ZField, ZGroup, ZComponentProperties\r\n} from \"mmhglobal-zcore\";\r\n\r\n\r\n// import * as $ from 'jquery';\r\ndeclare var $: any;\r\n\r\n@Component({\r\n selector: \"app-zdatetime\",\r\n templateUrl: \"./zdatetime.component.html\",\r\n styleUrls: [\"./zdatetime.component.scss\"],\r\n})\r\nexport class ZdatetimeComponent implements ZComponent, OnInit {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n dateFormat = \"DD-MMM-YYYY\";\r\n // dateValue = null;\r\n\r\n componentProperties = new ZComponentProperties();\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n\r\n if (this.data.Type === \"ztime\") {\r\n this.dateFormat = \"HH:mm\";\r\n }\r\n if (this.data.Type === \"zuidatetime\") {\r\n this.dateFormat = \"DD-MMM-YYYY h:mm A\";\r\n }\r\n if (this.data.Type === \"zuitime\") {\r\n this.dateFormat = \"HH:mm:ss\";\r\n }\r\n\tif (this.data.Type === \"zshortdate\") {\r\n this.dateFormat = \"MMM-YYYY\";\r\n }\r\n // if (this.group.zModel[this.data.Value]) {\r\n // this.dateValue = new Date(this.group.zModel[this.data.Value]);\r\n // }\r\n }\r\n\r\n toKendoDateFormat() {\r\n return this.dateFormat\r\n .replace(\"DD\", \"dd\")\r\n .replace(\"YYYY\", \"yyyy\")\r\n .replace(\"h\", \"H\")\r\n .replace(\"A\", \"a\");\r\n }\r\n\r\n getReadOnlyValue() {\r\n const readOnlyValue = ZComponentHelper.getGroupEvalValue.call(\r\n this,\r\n this.data.ReadOnly,\r\n this.group\r\n );\r\n if (typeof readOnlyValue === \"function\") {\r\n return readOnlyValue();\r\n }\r\n return readOnlyValue;\r\n }\r\n\r\n isMobileScreen() {\r\n const v = ZComponentHelper.isMobileScreen();\r\n return v;\r\n }\r\n\r\n getDateValue() {\r\n const value = this.form.controls[this.data.Value].value;\r\n if (value) {\r\n return new Date(value);\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n public GetDate(date: Date) {\r\n // convert the date to ISOString\r\n const myDate = new Date(date).toISOString();\r\n // assign to the zModel\r\n ZComponentHelper.setModelValue(this.data.Value, myDate, this.group);\r\n }\r\n\r\n public onChange(value: Date): void {\r\n // console.log(\r\n // \"date change \",\r\n // value.toISOString(),\r\n // \" date value: \",\r\n // new Date(value.toISOString())\r\n // );\r\n // // this.group.zModel[this.data.Value] = value.toISOString();\r\n // const v = value.toISOString();\r\n // this.dateValue = new Date(value.toISOString());\r\n if (value === null) {\r\n ZComponentHelper.setModelValue(\r\n this.data.Value,\r\n value,\r\n this.group\r\n );\r\n } else {\r\n ZComponentHelper.setModelValue(\r\n this.data.Value,\r\n value.toISOString(),\r\n this.group\r\n );\r\n\r\n const fc = this.form.controls[this.data.Value];\r\n fc.setValue(value.toISOString());\r\n }\r\n this.group.subject.next({\r\n type: \"onChange\",\r\n target: this.data.OnChange,\r\n data: value,\r\n } as ZComponentOutputEvent);\r\n }\r\n\r\n public setEnable = (status: boolean) => {\r\n const fc = this.group.form.controls[this.data.Value];\r\n status ? fc.enable() : fc.disable();\r\n this.componentProperties.isReadOnly = !status;\r\n }\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n }\r\n\r\n public setRequire = (status: boolean) => {\r\n this.componentProperties.isRequired = status;\r\n ZComponentHelper.changeValidator(status, this.group, this.data.Value, this.componentProperties, Validators.required);\r\n }\r\n\r\n public SetDateRange = (MinDate: string,MaxDate: string): any =>\r\n {\r\n var thisComponent = this;\r\n\r\n if (!isNaN(Date.parse(MinDate)))\r\n {\r\n this.data.MinDate = new Date(MinDate);\r\n }\r\n if (!isNaN(Date.parse(MaxDate)))\r\n {\r\n this.data.MaxDate = new Date(MaxDate);\r\n }\r\n }\r\n\r\n public handlePreventableEvent(event: PreventableEvent, eventName: string, preventDefault: boolean): void {\r\n // keep \"this\" to use in binding.\r\n var thisComponent = this;\r\n\r\n // need a timeout for ui to display the calender popup\r\n setTimeout(function () {\r\n // only available when popup is shown, get the element by class\r\n // for date\r\n thisComponent.dateAppendEvent(thisComponent);\r\n\r\n // for time\r\n thisComponent.timeAppendEvent(thisComponent);\r\n }, 500);\r\n }\r\n\r\n private dateAppendEvent(thisComponent: any) {\r\n let dateCell = $(\"tbody.k-calendar-tbody\").find(\"td.k-calendar-td\");\r\n for (var i = 0; i < dateCell.length; i++) {\r\n const node = dateCell[i];\r\n\r\n if (node.title != \"\") {\r\n // when date clicked\r\n node.addEventListener(\"click\", function () {\r\n if (!isNaN(Date.parse(node.title))) {\r\n const nodeDate = new Date(node.title).toISOString();\r\n // assign to the zModel\r\n ZComponentHelper.setModelValue(thisComponent.data.Value, nodeDate, thisComponent.group);\r\n }\r\n\r\n // timeout append time click event\r\n setTimeout(function () {\r\n thisComponent.hoursOnClick(thisComponent);\r\n thisComponent.minutesOnClick(thisComponent);\r\n thisComponent.ampmOnClick(thisComponent);\r\n thisComponent.nowOnClick(thisComponent);\r\n }, 500);\r\n });\r\n }\r\n }\r\n\r\n // Today clicked\r\n const todayDate = $(\"span.k-today\")[0];\r\n todayDate.addEventListener(\"click\", function () {\r\n const dateNow = new Date().toJSON().slice(0, 10).replace(/-/g, '/');\r\n // set to Model\r\n thisComponent.setDateTimeToModel(thisComponent, dateNow);\r\n\r\n thisComponent.hoursOnClick(thisComponent);\r\n thisComponent.minutesOnClick(thisComponent);\r\n thisComponent.ampmOnClick(thisComponent);\r\n thisComponent.nowOnClick(thisComponent);\r\n });\r\n }\r\n\r\n private timeAppendEvent(thisComponent: any) {\r\n var timeTab = $(\"button.k-button.k-time-tab\")[0];\r\n timeTab.addEventListener(\"click\", function () {\r\n thisComponent.hoursOnClick(thisComponent);\r\n thisComponent.minutesOnClick(thisComponent);\r\n thisComponent.ampmOnClick(thisComponent);\r\n thisComponent.nowOnClick(thisComponent);\r\n });\r\n }\r\n\r\n private nowOnClick(thisComponent: any) {\r\n const nowTime = $(\"button.k-button.k-bare.k-time-now\")[0];\r\n if (nowTime) {\r\n nowTime.addEventListener(\"click\", function (e) {\r\n // get model current value\r\n let valueDateTime = thisComponent.currentDateTimeValue(thisComponent);\r\n const dateTimeNow = new Date();\r\n\r\n // convert current value to datetime\r\n valueDateTime.setHours(dateTimeNow.getHours());\r\n valueDateTime.setMinutes(dateTimeNow.getMinutes());\r\n valueDateTime.setSeconds(dateTimeNow.getSeconds());\r\n\r\n // set to Model\r\n thisComponent.setDateTimeToModel(thisComponent, valueDateTime);\r\n });\r\n }\r\n }\r\n\r\n private hoursOnClick(thisComponent: any) {\r\n const timeWrapper = $(\"div.k-time-list-wrapper\").find(\"ul\");\r\n if (timeWrapper.length > 0) {\r\n const hour = timeWrapper[0].children;\r\n\r\n for (var i = 0; i < hour.length; i++) {\r\n hour[i].addEventListener(\"click\", function (e) {\r\n // get clicked node value\r\n const nodeValue = e.currentTarget.textContent;\r\n\r\n // get model current value\r\n let valueDateTime = thisComponent.currentDateTimeValue(thisComponent);\r\n\r\n // set new hour\r\n valueDateTime.setHours(nodeValue);\r\n\r\n // set to Model\r\n thisComponent.setDateTimeToModel(thisComponent, valueDateTime);\r\n });\r\n }\r\n }\r\n }\r\n\r\n private minutesOnClick(thisComponent: any) {\r\n const timeWrapper = $(\"div.k-time-list-wrapper\").find(\"ul\");\r\n if (timeWrapper.length > 0) {\r\n const minutes = timeWrapper[1].children;\r\n\r\n for (var i = 0; i < minutes.length; i++) {\r\n minutes[i].addEventListener(\"click\", function (e) {\r\n // get clicked node value\r\n const nodeValue = e.currentTarget.textContent;\r\n\r\n // get model current value\r\n const valueDateTime = thisComponent.currentDateTimeValue(thisComponent);\r\n\r\n // set new minute\r\n valueDateTime.setMinutes(nodeValue);\r\n\r\n // set to Model\r\n thisComponent.setDateTimeToModel(thisComponent, valueDateTime);\r\n });\r\n }\r\n }\r\n }\r\n\r\n private ampmOnClick(thisComponent: any) {\r\n const timeWrapper = $(\"div.k-time-list-wrapper\").find(\"ul\");\r\n if (timeWrapper.length > 0) {\r\n const ampm = timeWrapper[2].children;\r\n\r\n for (var i = 0; i < ampm.length; i++) {\r\n ampm[i].addEventListener(\"click\", function (e) {\r\n // get clicked node value\r\n const nodeValue = e.currentTarget.textContent;\r\n\r\n // get model current value\r\n const valueDateTime = thisComponent.currentDateTimeValue(thisComponent);\r\n\r\n // set new minutes\r\n var _hour = valueDateTime.getHours();\r\n if (nodeValue.toLowerCase() == \"am\") {\r\n _hour -= 12;\r\n }\r\n else {\r\n _hour += 12;\r\n }\r\n valueDateTime.setHours(_hour);\r\n\r\n // set to Model\r\n thisComponent.setDateTimeToModel(thisComponent, valueDateTime);\r\n });\r\n }\r\n }\r\n }\r\n\r\n private currentDateTimeValue(thisComponent: any) {\r\n // get current value\r\n const zModelValue = ZComponentHelper.getZModelValue(thisComponent.data.Value, thisComponent.group, thisComponent.group.zModel);\r\n\r\n let valueDateTime = new Date();\r\n\r\n if (zModelValue != \"\" && zModelValue != undefined) {\r\n // convert current value to datetime\r\n valueDateTime = new Date(zModelValue);\r\n }\r\n\r\n return valueDateTime\r\n }\r\n\r\n private setDateTimeToModel(thisComponent: any, valueDateTime: any) {\r\n // convert the date to ISOString\r\n const newDateTime = new Date(valueDateTime).toISOString();\r\n\r\n // assign to the zModel\r\n ZComponentHelper.setModelValue(thisComponent.data.Value, newDateTime, thisComponent.group);\r\n\r\n // set timeout do add event again after node clicked. if not it only work 1 time.\r\n setTimeout(function () {\r\n thisComponent.hoursOnClick(thisComponent);\r\n thisComponent.minutesOnClick(thisComponent);\r\n thisComponent.ampmOnClick(thisComponent);\r\n thisComponent.nowOnClick(thisComponent);\r\n }, 500);\r\n }\r\n}\r\n","<ion-item [ngClass]=\"data.Class\" [formGroup]=\"form\" *ngIf=\"(!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\">\r\n <ion-label [attr.for]=\"data.Value\" *ngIf=\"data.ShowLabel === undefined || data.ShowLabel\" position=\"stacked\">\r\n {{data.Label}} <ion-text *ngIf=\"componentProperties.isRequired\" color=\"danger\">*</ion-text>\r\n </ion-label>\r\n <div class=\"ion-row\" style=\"justify-content: space-between; width: 100%\">\r\n <span style=\"flex: 1;\">\r\n <ion-datetime *ngIf=\"isMobileScreen()\"\r\n style=\"padding: 8px 0px;\"\r\n [required]=\"(!!componentProperties.isRequiredField ? group[componentProperties.isRequiredField] : componentProperties.isRequired)\"\r\n [placeholder]=\"data.PlaceHolder\"\r\n [id]=\"data.Value\"\r\n [displayFormat]=\"dateFormat\"\r\n [pickerFormat]=\"dateFormat\"\r\n [class.disabled]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n [formControlName]=\"data.Value\"\r\n [readonly]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\">\r\n </ion-datetime>\r\n <kendo-datepicker *ngIf=\"!isMobileScreen() && dateFormat==='MMM-YYYY'\"\r\n [id]=\"data.Value\"\r\n [value]=\"form.get(data.Value).value | dateParser\"\r\n (valueChange)=\"onChange($event)\"\r\n [min]=\"data.MinDate\"\r\n [max]=\"data.MaxDate\"\r\n [activeView]=\"'year'\"\r\n [bottomView]=\"'year'\"\r\n style=\"margin-top: 7px; width: 100%;\"\r\n [class.disabled]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n [readonly]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n [format]=\"toKendoDateFormat()\"\r\n [placeholder]=\"data.PlaceHolder\">\r\n </kendo-datepicker>\r\n <kendo-datepicker *ngIf=\"!isMobileScreen() && dateFormat==='DD-MMM-YYYY'\"\r\n [id]=\"data.Value\"\r\n [value]=\"form.get(data.Value).value | dateParser\"\r\n (valueChange)=\"onChange($event)\"\r\n [min]=\"data.MinDate\"\r\n [max]=\"data.MaxDate\"\r\n style=\"margin-top: 7px; width: 100%;\"\r\n [class.disabled]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n [readonly]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n [format]=\"toKendoDateFormat()\"\r\n [placeholder]=\"data.PlaceHolder\"></kendo-datepicker>\r\n <kendo-datetimepicker *ngIf=\"!isMobileScreen() && dateFormat==='DD-MMM-YYYY h:mm A'\"\r\n [id]=\"data.Value\"\r\n [value]=\"form.get(data.Value).value | dateParser\"\r\n (valueChange)=\"onChange($event)\"\r\n (open)=\"handlePreventableEvent($event, 'open', false)\"\r\n style=\"margin-top: 7px; width: 100%;\"\r\n [class.disabled]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n [readonly]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n [format]=\"toKendoDateFormat()\"\r\n [placeholder]=\"data.PlaceHolder\">\r\n <ng-template kendoCalendarMonthCellTemplate let-date>\r\n <span (click)=\"GetDate(date)\">{{date.getDate()}}</span>\r\n </ng-template>\r\n </kendo-datetimepicker>\r\n <kendo-timepicker *ngIf=\"!isMobileScreen() && (dateFormat==='HH:mm:ss' || dateFormat==='HH:mm')\"\r\n [id]=\"data.Value\"\r\n [value]=\"form.get(data.Value).value | dateParser\"\r\n (valueChange)=\"onChange($event)\"\r\n style=\"margin-top: 7px; width: 100%;\"\r\n [class.disabled]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n [readonly]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n [format]=\"toKendoDateFormat()\"\r\n [placeholder]=\"data.PlaceHolder\"></kendo-timepicker>\r\n </span>\r\n <app-uivalidationmessage [group]=\"group\"\r\n [data]=\"data\"\r\n [form]=\"form\"></app-uivalidationmessage>\r\n </div>\r\n</ion-item>\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input } from \"@angular/core\";\r\nimport { FormGroup, Validators } from \"@angular/forms\";\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\n\r\n/********** Component & Service **********/\r\nimport { \r\n ZComponent, ZComponentHelper,\r\n ZField, ZGroup, ZComponentProperties, AuthService,\r\n} from 'mmhglobal-zcore';\r\n\r\n\r\n@Component({\r\n selector: 'app-zdiv',\r\n templateUrl: './zdiv.component.html',\r\n styleUrls: ['./zdiv.component.scss'],\r\n})\r\nexport class ZdivComponent implements ZComponent, OnInit {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n\r\n componentProperties = new ZComponentProperties();\r\n\r\n constructor(\r\n private authService: AuthService\r\n ) { }\r\n\r\n ngOnInit() {\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n ZComponentHelper.setFieldsDivClass(this.group._projectName, this.group.fieldName, this.data, this.authService);\r\n }\r\n\r\n\r\n ComponentIsVisible(field: ZField): any {\r\n return ZComponentHelper.ComponentIsVisible(field, this.group);\r\n }\r\n\r\n public setEnable = (status: boolean) => {\r\n this.componentProperties.isReadOnly = !status;\r\n }\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n }\r\n\r\n public setRequire = (status: boolean) => {\r\n this.componentProperties.isRequired = status;\r\n ZComponentHelper.changeValidator(status, this.group, this.data.Value, this.componentProperties, Validators.required);\r\n }\r\n\r\n}\r\n","<div *ngIf=\"(!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\" class=\"ion-row\">\r\n <app-zformcontrol \r\n [ngClass]=\"group[field.isVisibleField] ? field.DivClass : \r\n ((field.Visible === true) ? field.DivClass : 'flex-hide')\" \r\n *ngFor=\"let field of data.Value | divzlayout: data.zlayout\" [field]=\"field\"\r\n [group]=\"group\" [form]=\"form\" id=\"{{field.Type}}-{{field.Name}}\">\r\n </app-zformcontrol>\r\n</div>","/********** Angular **********/\r\nimport { Component, OnInit, Input } from \"@angular/core\";\r\nimport { FormGroup } from '@angular/forms';\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\n\r\n/********** Component & Service **********/\r\nimport { \r\n ZComponent, ZComponentHelper,\r\n ZField, ZGroup, ZComponentProperties\r\n} from 'mmhglobal-zcore';\r\n\r\n\r\n@Component({\r\n selector: 'app-zgauge',\r\n templateUrl: './zgauge.component.html',\r\n styleUrls: ['./zgauge.component.scss'],\r\n})\r\nexport class ZgaugeComponent implements ZComponent, OnInit {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n\r\n isLoading = true;\r\n componentProperties = new ZComponentProperties();\r\n private value = 0;\r\n private title = \"\";\r\n private color = [];\r\n private majorTicks = [{ visible: true, color: '#0000ff' }];\r\n private minorTicks = [{ visible: true, color: '#0000ff' }];\r\n private startAngle = 0;\r\n private endAngle = 180;\r\n private minValue = 0;\r\n private maxValue = 200;\r\n\r\n options = {\r\n value: this.value,\r\n title: this.title,\r\n scaleMax: 50,\r\n colors: this.color,\r\n transitions: false,\r\n majorTicks: this.majorTicks,\r\n minorTicks: this.minorTicks,\r\n minValue: this.minValue,\r\n maxValue: this.maxValue,\r\n reverse: false,\r\n startAngle: this.startAngle,\r\n endAngle: this.endAngle,\r\n rangePlaceholderColor: '#e6e5e5',\r\n labelsColor: '#0000ff',\r\n rangeFrom: 0,\r\n rangeTo: 100,\r\n rangeColor: '#ff6358',\r\n rangeLineCap: 'round',\r\n showLabels: true,\r\n rangeSize: 10,\r\n };\r\n\r\n // fieldElement01 = [{\r\n // Name: 'gauge01',\r\n // Type: 'zgauge',\r\n // Value: 'group.gauge01Value',\r\n // title: 'group.gauge01Title',\r\n // majorTicks: 'group.gauge01MajorTicks',\r\n // minorTicks: 'group.gauge01MinorTicks',\r\n // minValue:'group.gauge01MinValue',\r\n // maxValue:'group.gauge01MaxValue',\r\n // Max: 100,\r\n // Color: 'group.gauge01Color',\r\n // DivClass: \"col-md-12 col-md-6\",\r\n // Visible: true,\r\n // transitions:false,\r\n // reverse:false,\r\n // startAngle: 'group.gauge01StartAngle',\r\n // endAngle: 'group.gauge01EndAngle',\r\n // rangePlaceholderColor:'#e6e5e5',\r\n // labelsColor:'#0000ff',\r\n // rangeFrom:0,\r\n // rangeTo:50,\r\n // rangeColor:'#ff6358',\r\n // rangeLineCap:'round',\r\n // showLabels: true,\r\n // rangeSize:10,\r\n // }];\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n\r\n if (this.data.Options) {\r\n const optionType = typeof (this.data.Options);\r\n if (optionType === 'object') {\r\n Object.assign(this.options, this.data.Options);\r\n } else if (optionType === 'string') {\r\n const optionValue = ZComponentHelper.getGroupEvalValue.call(this, this.data.Options);\r\n if (typeof (optionValue) === 'object') {\r\n Object.assign(this.options, optionValue);\r\n }\r\n }\r\n }\r\n\r\n this.getFieldDeclarationForSetup(this.data, this.options);\r\n this.isLoading = false;\r\n }\r\n\r\n private getFieldDeclarationForSetup(field: ZField, options: any) {\r\n options.value = ZComponentHelper.getGroupEvalValue.call(this, field.Value) || options.value;\r\n options.title = ZComponentHelper.getGroupEvalValue.call(this, field.Title) || options.title;\r\n options.scaleMax = field.Max || options.scaleMax;\r\n options.minValue = ZComponentHelper.getGroupEvalValue.call(this, field.MinValue) || options.minValue;\r\n options.maxValue = ZComponentHelper.getGroupEvalValue.call(this, field.MaxValue) || options.maxValue;\r\n options.colors = ZComponentHelper.getGroupEvalValue.call(this, field.Color) || options.colors;\r\n options.transitions = field.Transitions || options.transitions;\r\n options.majorTicks = ZComponentHelper.getGroupEvalValue.call(this, field.MajorTicks) || options.majorTicks;\r\n options.showLabels = field.ShowLabels || options.showLabels;\r\n options.style = field.Style || options.style;\r\n options.minorTicks = ZComponentHelper.getGroupEvalValue.call(this, field.MinorTicks) || options.minorTicks;\r\n options.reverse = field.Reverse || options.reverse;\r\n options.startAngle = ZComponentHelper.getGroupEvalValue.call(this, field.StartAngle) || options.startAngle;\r\n options.endAngle = ZComponentHelper.getGroupEvalValue.call(this, field.EndAngle) || options.endAngle;\r\n options.rangePlaceholderColor = field.RangePlaceholderColor || options.rangePlaceholderColor;\r\n options.rangeFrom = ZComponentHelper.getGroupEvalValue.call(this, field.RangeFrom) || options.rangeFrom;\r\n options.rangeTo = ZComponentHelper.getGroupEvalValue.call(this, field.RangeTo) || options.rangeTo;\r\n options.rangeColor = field.RangeColor || options.rangeColor;\r\n options.rangeLineCap = field.RangeLineCap || options.rangeLineCap;\r\n options.rangeSize = field.RangeSize || options.rangeSize;\r\n options.GaugeAlignment = ZComponentHelper.getGroupEvalValue.call(this, field.GaugeAlignment) || options.GaugeAlignment;\r\n options.paddingValue = options.value.toString() === 'NaN' ? options.GaugeAlignment : '0%';\r\n }\r\n\r\n alignment() {\r\n const alignmentStyle = {\r\n \"padding-right\": this.options[\"paddingValue\"]\r\n };\r\n\r\n return alignmentStyle;\r\n }\r\n\r\n public setEnable(status: boolean) {\r\n // const fc = this.group.form.controls[this.data.Value];\r\n // status ? fc.enable() : fc.disable();\r\n this.componentProperties.isReadOnly = !status;\r\n }\r\n\r\n public setVisible(status: boolean) {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n }\r\n\r\n public setRequire(status: boolean) {\r\n this.componentProperties.isRequired = status;\r\n }\r\n\r\n public setData(gData: any) {\r\n this.getFieldDeclarationForSetup(this.data, this.options);\r\n }\r\n}\r\n","<div *ngIf=\"!isLoading && (!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\" style=\"text-align: center;\">\r\n <div id=\"marketShareContainer\" class=\"ion-row\" class=\"col-xs-12 stats-graph\">\r\n <h6 style=\"color: gray;\">{{ options.title }}</h6>\r\n </div>\r\n <div [ngStyle]='alignment()'>\r\n <kendo-arcgauge [value]=\"options.value\" [transitions]=\"options.transitions\" [colors]=\"options.colors\" style=\"margin-top:50px;width:90% ;height:100%; min-width: 330px;\">\r\n <kendo-arcgauge-scale\r\n [majorTicks]=\"{ visible: true, color: '#0000ff' }\"\r\n [minorTicks]=\"{ visible: true, color: '#0000ff' }\"\r\n [reverse]=\"options.reverse\"\r\n [startAngle]=\"0\"\r\n [endAngle]=\"180\"\r\n [min]=\"options.minValue\"\r\n [max]=\"options.maxValue\"\r\n [rangePlaceholderColor]=\"options.rangePlaceholderColor\"\r\n [rangeSize]=\"options.rangeSize\"\r\n [rangeLineCap]=\"options.rangeLineCap\">\r\n <kendo-arcgauge-scale-labels format=\"l\" [color]=\"options.labelsColor\" [visible]=\"options.showLabels\">\r\n </kendo-arcgauge-scale-labels>\r\n </kendo-arcgauge-scale>\r\n <ng-template kendoArcGaugeCenterTemplate let-value=\"value\" let-color=\"color\">\r\n <span [style.color]=\"color\">{{ value }}</span>\r\n </ng-template>\r\n </kendo-arcgauge>\r\n </div>\r\n</div>\r\n","\r\n/********** Angular **********/\r\nimport { Component, OnInit, Input, ViewChild, OnDestroy, AfterViewInit } from \"@angular/core\";\r\nimport { FormGroup, Validators } from \"@angular/forms\";\r\n\r\n/********** Ionic **********/\r\nimport { IonicSelectableComponent } from \"ionic-selectable\";\r\n\r\n/********** Plugin **********/\r\nimport { interval, throwError, Subscription, Observable, of, Subject, timer } from \"rxjs\";\r\nimport { catchError, tap, debounceTime, delay, timeInterval, takeUntil } from \"rxjs/operators\";\r\n\r\n/********** Component & Service **********/\r\nimport {\r\n ResourceApiService, WebApiService, CacheService, ClickableIcons, ButtonList,\r\n ZComponent, ZComponentHelper, ZComponentOutputEvent,\r\n ZSelectMultipleTemplateParams, ZSelectPostApiParams, zSelectMultipleParams,\r\n ZGroup, ZField, ZComponentProperties, TooltipsInfoProperties \r\n} from \"mmhglobal-zcore\";\r\n\r\n\r\n@Component({\r\n selector: \"app-zselectmultiple\",\r\n templateUrl: \"./zselectmultiple.component.html\",\r\n styleUrls: [\"./zselectmultiple.component.scss\"]\r\n})\r\nexport class ZselectmultipleComponent implements ZComponent, OnInit, OnDestroy {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n @Input() iconList: ClickableIcons[];\r\n @Input() buttonList: ButtonList[];\r\n @ViewChild(\"selectComponent\") selectComponent: IonicSelectableComponent;\r\n\r\n public showTooltipsInfoIcon: boolean = false;\r\n public showTooltipsInfoBySide: boolean = false;\r\n public tooltipsInfo: TooltipsInfoProperties = null;\r\n public tooltipsDisplayText: string = null;\r\n public tooltipsDisplayIcon: any;\r\n items: Array<any> = [];\r\n modelzData: Array<any>;\r\n infinitezData: Array<any> = [];\r\n infiniteSearchText = null;\r\n // subscription: Subscription;\r\n toggleSelectable = true;\r\n itemValueField: string = null;\r\n itemTextField: string = null;\r\n itemDataField: string = null;\r\n itemTemplate = \"{{item[itemTextField]}}\";\r\n infiniteScrollPageNo = 0;\r\n isLoading = true;\r\n componentProperties = new ZComponentProperties();\r\n private debounceSub: Subscription;\r\n allowCustomValue = false;\r\n autoClose: boolean = true;\r\n dataInfo: {} = {\r\n \"itemsResourceURL\": \"\",\r\n \"optionFilters\": \"\",\r\n \"totalCount\": 0\r\n };\r\n\r\n // private loadInfiniteDataSub: Subject<boolean> = new Subject<boolean>();\r\n\r\n constructor(\r\n private resourceApiService: ResourceApiService,\r\n private webApiService: WebApiService,\r\n private cacheService: CacheService\r\n ) { }\r\n\r\n ngOnDestroy(): void {\r\n // if (this.subscription) {\r\n // this.subscription.unsubscribe();\r\n // }\r\n if (this.debounceSub) {\r\n this.debounceSub.unsubscribe();\r\n }\r\n }\r\n\r\n public virtual: any = {\r\n itemHeight: 28,\r\n pageSize: 15\r\n };\r\n\r\n ngOnInit() {\r\n this.isLoading = true;\r\n\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n ZComponentHelper.setSelectMultipleTextValue(this.data.SelectOptions, this);\r\n\r\n this.tooltipsInfo = this.data.TooltipsInfo;\r\n if (this.tooltipsInfo) {\r\n if ((this.tooltipsInfo.Icon != null || this.tooltipsInfo.Icon != undefined) && !this.isMobileScreen()) {\r\n this.showTooltipsInfoIcon = true;\r\n this.setTooltipsInfoIcon();\r\n }\r\n if (this.tooltipsInfo.SideBySide) {\r\n this.showTooltipsInfoBySide = true;\r\n }\r\n\r\n this.setTooltipsDisplayText();\r\n }\r\n\r\n // [Dropdownlist Multiple] - auto close menu when lose focus.\r\n if (this.data.AutoClose === false) this.autoClose = this.data.AutoClose;\r\n\r\n // Handle Clickable Icons\r\n this.iconList = this.data.ClickableIcons;\r\n if (this.iconList) {\r\n if (this.iconList.length > 0) {\r\n this.iconList.forEach((i: any) => {\r\n if (i.Tooltip === undefined) {\r\n i.Tooltip = \"\";\r\n } else {\r\n i.Tooltip = ZComponentHelper.getGroupEvalValue.call(this, i.Tooltip);\r\n }\r\n // Default position top. right | bottom | top | left\r\n if (i.Position === undefined) {\r\n i.Position = \"top\";\r\n }\r\n });\r\n }\r\n }\r\n\r\n // Handle Button beside dropdown\r\n this.buttonList = this.data.ButtonList;\r\n if (this.buttonList) {\r\n this.buttonList.forEach(button => {\r\n if (button.tooltip) {\r\n button.tooltip = ZComponentHelper.getGroupEvalValue.call(this, button.tooltip);\r\n }\r\n\r\n });\r\n }\r\n\r\n // dropdown configuration\r\n this.allowCustomValue = this.data.AllowCustomValue || false; // Allow enter text in dropdownbox\r\n const fieldValue = this.data.Value;\r\n const data = this.data;\r\n const zModel = this.group.zModel;\r\n\r\n /*\r\n * 4 Styles of declare the component�s option list data source.\r\n * Style #1 - Field.SelectOptions defined as an array of object that contain text and value.\r\n * Style #2 - Field.SelectOptions defined as a phase like �item.Id as item.Name for item in group.zData.ProjectOptions�.\r\n * Style #3 - Field.OptionResourceURL defined the name of resource server api.\r\n * Style #4 - Field.InfiniteScroll$ defined the method name as �group.getMoreDataAsScroll�.\r\n */\r\n\r\n if (data.HasInfiniteScroll && data.InfiniteScroll$) {\r\n // when infinitie scroll\r\n let recordId = null;\r\n if (zModel && zModel[fieldValue]) {\r\n // get zModel Value\r\n recordId = zModel[fieldValue].toString();\r\n }\r\n\r\n let getzDataForzModel$: Observable<any> = ZComponentHelper.getInfiniteData(null, '', this, recordId);\r\n if (getzDataForzModel$) {\r\n getzDataForzModel$.subscribe((zdata) => {\r\n console.log(data.Name, ' - initial zData load: ', zdata);\r\n\r\n if (this.group) {\r\n if (this.group.afterLoadzDataOptions) {\r\n this.group.afterLoadzDataOptions(this.group);\r\n }\r\n }\r\n\r\n this.isLoading = false;\r\n });\r\n } else {\r\n this.isLoading = false;\r\n }\r\n\r\n if (!ZComponentHelper.isMobileScreen()) {\r\n this.handleFilter(null, true);\r\n }\r\n }\r\n else {\r\n // Style #1, #2, #3\r\n const isRequired = ZComponentHelper.getGroupEvalValue.call(this, data.IsRequired);\r\n\r\n if (this.data.OptionResourceURL) {\r\n this.lazyLoadDataOptions().subscribe(res => {\r\n const optionData = res.dataSet ? res.dataSet : res;\r\n\r\n if (optionData && optionData.length === 1 && !this.data.DisableAutoFirstSelection) {\r\n this.autoSelectFirstOption(isRequired, optionData[0], fieldValue, zModel.Id);\r\n }\r\n\r\n if (this.group) {\r\n if (this.group.afterLoadzDataOptions) {\r\n this.group.afterLoadzDataOptions(this.group);\r\n }\r\n }\r\n\r\n this.isLoading = false;\r\n });\r\n }\r\n else {\r\n if (Array.isArray(this.data.SelectOptions) && this.data.SelectOptions) {\r\n //skip eval if selectoptions is exist\r\n }\r\n else {\r\n const optionData = ZComponentHelper.getGroupEvalValue.call(this, this.itemDataField);\r\n // append data via timeout after data is loaded.\r\n if (optionData && optionData.length === 1 && !this.data.DisableAutoFirstSelection) {\r\n const thisComponent = this;\r\n setTimeout(function () {\r\n thisComponent.autoSelectFirstOption(isRequired, optionData[0], fieldValue, thisComponent.group.zModel.Id);\r\n\r\n if (this.group) {\r\n if (this.group.afterLoadzDataOptions) {\r\n this.group.afterLoadzDataOptions(this.group);\r\n }\r\n }\r\n }, 100);\r\n }\r\n }\r\n this.isLoading = false;\r\n }\r\n }\r\n }\r\n\r\n // Auto select first option (if required & only 1 option)\r\n private autoSelectFirstOption(required: boolean, data: any, zModelPropertyName: string, id: any) {\r\n if (ZComponentHelper.isNullUndefinedEmpty(id) && required) {\r\n var optionId = data.Id;\r\n if (this.data.Multiple) {\r\n optionId = [optionId];\r\n }\r\n ZComponentHelper.setModelValue(zModelPropertyName, optionId, this.group);\r\n\r\n this.group.subject.next({\r\n type: \"onChange\",\r\n target: this.data.OnChange,\r\n event,\r\n data: { ['value']: optionId, field: this.data }\r\n } as ZComponentOutputEvent);\r\n\r\n this.form.markAsPristine();\r\n }\r\n }\r\n\r\n // Style #3\r\n lazyLoadDataOptions(): Observable<any> {\r\n const resourceUrl = this.resourceApiService.getURL(\r\n this.data.OptionResourceURL\r\n );\r\n\r\n const filterParam = new ZSelectPostApiParams();\r\n filterParam.sorts = this.data.OptionSort;\r\n filterParam.columns = this.data.OptionColumns;\r\n filterParam.filters = this.data.OptionFilter;\r\n\r\n return ZComponentHelper.getDataOptions(\r\n this.data.OptionName,\r\n filterParam,\r\n this.group,\r\n resourceUrl,\r\n this.cacheService,\r\n this.webApiService,\r\n this.data['DisableCache']\r\n );\r\n }\r\n\r\n // Style #4, used in ionic-selectable\r\n getInfiniteData(event: {\r\n component: IonicSelectableComponent;\r\n text: string;\r\n }) {\r\n ZComponentHelper.getInfiniteData(event.component, event.text, this);\r\n }\r\n\r\n getItemsData() {\r\n if (this.data.HasInfiniteScroll) {\r\n return this.infinitezData;\r\n }\r\n\r\n const optionName = this.data.OptionName || this.itemDataField || 'group.zData.' + this.data.Name;\r\n if (Array.isArray(this.data.SelectOptions) && !this.group.zData[optionName.slice(12)]) {\r\n // return selectionOptions;\r\n // return this.data.SelectOptions;\r\n this.group.zData[optionName.slice(12)] = this.data.SelectOptions;\r\n this.itemDataField = optionName;\r\n }\r\n\r\n if (optionName.startsWith('zData.')) {\r\n return this.group.zData[optionName.slice(6)] || [];\r\n }\r\n if (optionName.startsWith('group.zData.')) {\r\n return this.group.zData[optionName.slice(12)] || [];\r\n }\r\n if (optionName.startsWith('group.')) {\r\n return this.group[optionName.slice(6)] || [];\r\n }\r\n if (optionName) {\r\n return this.group[optionName] || [];\r\n }\r\n console.warn(this.data.Name, ' - Invalid setting for OptionName: ', optionName);\r\n }\r\n\r\n onSearch(event: { component: IonicSelectableComponent; text: string }) {\r\n // console.log(\"At zselectmultiple.component (onSearch): \", event);\r\n // event.component is for mobile only\r\n const component = event.component;\r\n if (component) {\r\n component.startSearch();\r\n component.enableInfiniteScroll();\r\n }\r\n\r\n if (this.data.HasInfiniteScroll) {\r\n // If search text, reset page to 0. Get infinite data\r\n if (event.text !== null && event.text !== this.infiniteSearchText) {\r\n this.infiniteScrollPageNo = 0;\r\n this.modelzData = [];\r\n }\r\n this.getInfiniteData(event);\r\n }\r\n else {\r\n // Reset scroll page, empty items\r\n this.infiniteScrollPageNo = 0;\r\n if (component) {\r\n component.items = [];\r\n }\r\n\r\n // Filter zData and push to items\r\n const params: zSelectMultipleParams = {\r\n referId: null,\r\n pageNo: 0,\r\n pageSize: 20,\r\n sortColumnName: \"\",\r\n sortOrder: \"\",\r\n sortColumnNames: [],\r\n sortOrders: [],\r\n filterParams: [],\r\n parameters: \"\"\r\n };\r\n\r\n const searchFields = this.data.SearchFields ? this.data.SearchFields : this.itemTextField;\r\n const filteritems = ZComponentHelper.filterSearchItems(\r\n this.getItemsData(),\r\n event.text,\r\n searchFields,\r\n params.pageNo,\r\n params.pageSize\r\n );\r\n if (component) {\r\n const items = component.items.concat(filteritems);\r\n component.items = items;\r\n component.endInfiniteScroll();\r\n component.endSearch();\r\n this.isLoading = false;\r\n }\r\n }\r\n }\r\n\r\n handleFilter(value: any, justOneTime?: boolean) {\r\n if (this.debounceSub) {\r\n this.debounceSub.unsubscribe();\r\n }\r\n this.debounceSub = of([]).pipe(delay(500)).subscribe(() => {\r\n this.isLoading = true;\r\n this.onSearch({ component: null, text: value });\r\n\r\n if(this.group){\r\n if (this.group.afterLoadzDataOptions) {\r\n this.group.afterLoadzDataOptions(this.group);\r\n }\r\n }\r\n\r\n // if (this.loadInfiniteDataSub) {\r\n // this.loadInfiniteDataSub.unsubscribe();\r\n // }\r\n // this.loadInfiniteDataSub = new Subject(false);\r\n // this.handleFilter(null);\r\n // interval(2000).pipe(takeUntil(this.loadInfiniteDataSub)).subscribe(() => {\r\n // this.onSearch({ component: null, text: value });\r\n // if (justOneTime) {\r\n // this.handleClose();\r\n // }\r\n // });\r\n });\r\n }\r\n\r\n handleOpen() {\r\n if (this.data.HasInfiniteScroll) {\r\n this.handleFilter(null);\r\n // // if (this.loadInfiniteDataSub) {\r\n // // this.loadInfiniteDataSub.unsubscribe();\r\n // // }\r\n // // this.loadInfiniteDataSub = new Subject();\r\n // // // this.handleFilter(null);\r\n // // interval(3000).pipe(takeUntil(this.loadInfiniteDataSub)).subscribe(() => {\r\n // // this.handleFilter(null);\r\n // // });\r\n }\r\n }\r\n\r\n handleClose() {\r\n // if (this.data.HasInfiniteScroll) {\r\n // if (this.loadInfiniteDataSub) {\r\n // this.loadInfiniteDataSub.next(true);\r\n // // this.loadInfiniteDataSub.complete();\r\n // }\r\n // }\r\n }\r\n\r\n handleBlur() {\r\n // this.handleClose();\r\n }\r\n\r\n getItemTemplate(\r\n item: any,\r\n data: any,\r\n group: any,\r\n itemValueField: string,\r\n itemTextField: string\r\n ) {\r\n // ToDO: itemValueField and itemTextField\r\n if (this.data.ItemTemplate) {\r\n const getTemplateFunc = ZComponentHelper.getGroupEvalValue.call(this, this.data.ItemTemplate);\r\n\r\n return getTemplateFunc({\r\n item,\r\n data,\r\n group,\r\n itemValueField,\r\n itemTextField\r\n } as ZSelectMultipleTemplateParams);\r\n } else if (itemTextField) {\r\n return item[itemTextField];\r\n } else {\r\n // return item[itemTextField];\r\n return Object.values(item).join(\", \");\r\n }\r\n }\r\n\r\n getReadOnlyValue() {\r\n const readOnlyValue = ZComponentHelper.getGroupEvalValue.call(this, this.data.ReadOnly);\r\n if (typeof readOnlyValue === 'function') {\r\n const callFunc = readOnlyValue.bind(this.group.ctrlScope);\r\n return callFunc(this.group);\r\n }\r\n return readOnlyValue;\r\n }\r\n\r\n getIsRequiredValue() {\r\n const IsRequiredValue = ZComponentHelper.getGroupEvalValue.call(this, this.data.IsRequired);\r\n if (typeof IsRequiredValue === 'function') {\r\n const callFunc = IsRequiredValue.bind(this.group.ctrlScope);\r\n return callFunc(this.group);\r\n\r\n }\r\n return IsRequiredValue;\r\n }\r\n\r\n getGroupValue(value: string, group: ZGroup) {\r\n return ZComponentHelper.getGroupValue(value, group);\r\n }\r\n\r\n getClass(form: FormGroup, data: ZField) {\r\n const ionInvalidClass = this.getIon_InvalidClass(form, data);\r\n return `${ionInvalidClass ? ionInvalidClass : ''} ${this.data.Class}`;\r\n }\r\n\r\n getIon_InvalidClass(form: FormGroup, data: ZField) {\r\n if (!form) {\r\n //debugger;\r\n }\r\n return ZComponentHelper.getIon_InvalidClass(form, data);\r\n }\r\n\r\n onAddItem(event: any) {\r\n const f = ZComponentHelper.getGroupEvalValue.call(this, this.data.OnAddItem);\r\n if (typeof f === 'function') {\r\n const callFunc = f.bind(this.group.ctrlScope);\r\n return callFunc();\r\n }\r\n console.warn('Invalid declaration of OnAddItem: ', f);\r\n return;\r\n }\r\n\r\n // Component basic function\r\n clearData() {\r\n ZComponentHelper.setModelValue(this.data.Value, \"\", this.group);\r\n }\r\n\r\n clearItems() {\r\n this.selectComponent.clear();\r\n this.selectComponent.close();\r\n }\r\n\r\n confirmItems() {\r\n this.selectComponent.confirm();\r\n this.selectComponent.close();\r\n }\r\n\r\n toggleItems() {\r\n this.selectComponent.toggleItems(this.toggleSelectable);\r\n this.toggleSelectable = !this.toggleSelectable;\r\n\r\n // Confirm items and close Select page\r\n // without having the user to click Confirm button.\r\n // this.confirm();\r\n }\r\n\r\n // Extra icon beside dropdown. Mainly for popup\r\n onIconClick(clickAction: string) {\r\n this.onNavigateTo(clickAction); \r\n }\r\n\r\n onNavigateTo(clickAction: string) {\r\n const n = ZComponentHelper.getGroupEvalValue.call(this, clickAction);\r\n if (n) {\r\n this.group.subject.next({\r\n type: 'ztext-onNavigateTo',\r\n target: clickAction,\r\n data: this.group.zModel[this.data.Value]\r\n } as ZComponentOutputEvent);\r\n }\r\n }\r\n\r\n // Disable Open On Focus\r\n disableOpenOnFocus(comboboxComponent: any) {\r\n if (this.data.DisableOpenOnFocus) {\r\n return null;\r\n }\r\n else {\r\n return comboboxComponent;\r\n }\r\n }\r\n\r\n // OnChange\r\n private onChangeEvent(value: string) {\r\n if (this.data.HasInfiniteScroll && !!this.data.InfiniteScroll$) {\r\n const textField = this.itemTextField.toString();\r\n const valueField = this.itemValueField.toString();\r\n let zdataModel = [];\r\n if (value) {\r\n zdataModel = this.infinitezData.filter(x => x[valueField] === value);\r\n this.modelzData = zdataModel.slice();\r\n }\r\n if (this.itemDataField.startsWith('group.zData.')) {\r\n this.group.zData[this.itemDataField.slice(12)] = zdataModel;\r\n } else if (this.itemDataField.startsWith('group.')) {\r\n this.group[this.itemDataField.slice(6)] = zdataModel;\r\n }\r\n }\r\n\r\n this.group.subject.next({\r\n type: \"onChange\",\r\n target: this.data.OnChange,\r\n event,\r\n data: { value, field: this.data }\r\n } as ZComponentOutputEvent);\r\n }\r\n\r\n onValueChange(value: any) {\r\n // console.log(\"zselectmultiple (onValueChange): \", value);\r\n ZComponentHelper.setModelValue(this.data.Value, value, this.group);\r\n this.onChangeEvent(value);\r\n }\r\n\r\n onChange(event: { component: IonicSelectableComponent; value: any }) {\r\n console.log(\"zselectmultiple (onChange): \", event.value);\r\n ZComponentHelper.setModelValue(this.data.Value, event.value, this.group);\r\n const fc = this.form.controls[this.data.Value];\r\n this.handleClose();\r\n\r\n if (\r\n // this.data.IsRequired &&\r\n this.getIsRequiredValue() &&\r\n (event.value === null || event.value.length === 0)\r\n ) {\r\n fc.setErrors({ required: true });\r\n } else {\r\n fc.setErrors(null);\r\n }\r\n\r\n this.onChangeEvent(event.value);\r\n }\r\n\r\n // Common function\r\n public setEnable = (status: boolean) => {\r\n const fc = this.group.form.controls[this.data.Value];\r\n status ? fc.enable() : fc.disable();\r\n this.componentProperties.isReadOnly = !status;\r\n }\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n }\r\n\r\n public setRequire = (status: boolean) => {\r\n this.componentProperties.isRequired = status;\r\n ZComponentHelper.changeValidator(status, this.group, this.data.Value, this.componentProperties, Validators.required);\r\n }\r\n\r\n public setLabelText(newText: string) {\r\n this.data.Label = newText;\r\n }\r\n\r\n isMobileScreen() {\r\n const v = ZComponentHelper.isMobileScreen();\r\n return v;\r\n }\r\n\r\n /********** TooltipsInfo **********/\r\n public setTooltipsInfoClass() {\r\n if (this.tooltipsInfo && !this.showTooltipsInfoIcon && this.showTooltipsInfoBySide) {\r\n return 'tooltipsinfo-text';\r\n }\r\n return 'tooltipsinfo-text-wide';\r\n }\r\n\r\n public setTooltipsInfoColor() {\r\n if (this.tooltipsInfo) {\r\n if (this.tooltipsInfo.TextColor) {\r\n return this.tooltipsInfo.TextColor;\r\n }\r\n }\r\n\r\n return \"#acacac\"; // default grey\r\n }\r\n\r\n public setTooltipsInfoIcon(displayIcon?: string) {\r\n if (this.showTooltipsInfoIcon) {\r\n if (this.tooltipsInfo.Icon != '') {\r\n if (displayIcon) {\r\n this.tooltipsDisplayIcon = displayIcon;\r\n }\r\n else {\r\n this.tooltipsDisplayIcon = this.tooltipsInfo.Icon;\r\n }\r\n }\r\n else {\r\n this.tooltipsDisplayIcon = 'question-circle'\r\n }\r\n }\r\n }\r\n\r\n public setTooltipsDisplayText(displayText?: string) {\r\n if (this.tooltipsInfo) {\r\n if (displayText) {\r\n this.tooltipsDisplayText = displayText;\r\n }\r\n else {\r\n this.tooltipsDisplayText = this.tooltipsInfo.DisplayText;\r\n }\r\n }\r\n else {\r\n this.tooltipsDisplayText = '<Display text error>';\r\n }\r\n }\r\n\r\n public setTooltipsInfoSideBySide() {\r\n if (this.tooltipsInfo) {\r\n if (this.showTooltipsInfoBySide && !this.showTooltipsInfoIcon ) {\r\n return 'ion-row divselectmultiple tooltipsinfo-right';\r\n }\r\n }\r\n return 'ion-row divselectmultiple';\r\n }\r\n \r\n public getFontAwesome(iconName: string) {\r\n return ZComponentHelper.getFontAwesome(iconName);\r\n }\r\n}\r\n","<ion-item [ngClass]=\"getClass(form, data)\" *ngIf=\"(!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible) && isMobileScreen()\">\r\n\r\n <ion-label *ngIf=\"data.ShowLabel === undefined || data.ShowLabel\" position=\"stacked\">\r\n {{data.Label}}\r\n <ion-text *ngIf=\"componentProperties.isRequired\" color=\"danger\">*</ion-text>\r\n </ion-label>\r\n\r\n <kendo-label *ngIf=\"data.TooltipsInfo && !showTooltipsInfoIcon && !showTooltipsInfoBySide\"\r\n [text]=\"tooltipsDisplayText\"\r\n [class]=\"setTooltipsInfoClass()\"\r\n [style.color]=\"setTooltipsInfoColor()\"></kendo-label>\r\n <div [class]=\"setTooltipsInfoSideBySide()\" *ngIf=\"!isLoading\">\r\n <div style=\"flex-grow: 1;\">\r\n <ionic-selectable #selectComponent item-content\r\n searchFailText=\"Nothing found :(\"\r\n headerColor=\"primary\"\r\n clearButtonText=\"Clear\"\r\n [(ngModel)]=\"group.zModel[data.Value]\"\r\n [id]=\"data.Value\"\r\n [items]=\"getItemsData()\"\r\n [itemValueField]=\"itemValueField\"\r\n [itemTextField]=\"itemTextField\"\r\n [canAddItem]=\"!!data.OnAddItem\"\r\n [canClear]=\"true\"\r\n [placeholder]=\"data.PlaceHolder\"\r\n [canSearch]=\"!data['disable-search']\"\r\n [shouldFocusSearchbar]=\"!data['disable-search']\"\r\n [hasInfiniteScroll]=\"!!data.HasInfiniteScroll\"\r\n [isMultiple]=\"data.Multiple\"\r\n [isEnabled]=\"!(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n [shouldStoreItemValue]=\"true\"\r\n (onSearch)=\"onSearch($event)\"\r\n (onInfiniteScroll)=\"getInfiniteData($event)\"\r\n (onAddItem)=\"onAddItem($event)\"\r\n (onChange)=\"onChange($event)\">\r\n\r\n <ng-template ionicSelectableItemIconTemplate\r\n let-item=\"item\"\r\n let-isItemSelected=\"isItemSelected\">\r\n <fa-icon slot=\"start\"\r\n class=\"isItemSelected\"\r\n size=\"sm\"\r\n [icon]=\"['far', isItemSelected ? 'check-circle': 'circle']\"\r\n [styles]=\"{'color': isItemSelected ? 'dodgerBlue' : 'lightGray'}\"></fa-icon>\r\n </ng-template>\r\n\r\n <ng-template ionicSelectableCloseButtonTemplate>\r\n <!-- <ion-icon name=\"close-circle\"></ion-icon> -->\r\n <fa-icon [icon]=\"'times-circle'\" size=\"md\"></fa-icon>\r\n </ng-template>\r\n\r\n <ng-template ionicSelectableTitleTemplate>\r\n {{data.Label}}\r\n <ion-text *ngIf=\"getIsRequiredValue()\" color=\"danger\">*</ion-text>\r\n </ng-template>\r\n\r\n <ng-template ionicSelectableItemTemplate let-item=\"item\">\r\n {{ getItemTemplate(item, data, group, itemValueField, itemTextField) }}\r\n <!-- <ng-template zselectitemelement [item]=\"item\"></ng-template> -->\r\n </ng-template>\r\n\r\n <!--<ng-template ionicSelectableFooterTemplate>\r\n <ion-toolbar>\r\n <ion-row>\r\n <ion-col>\r\n <ion-button expand=\"full\" ng-reflect-disabled=\"false\" ng-reflect-expand=\"full\" class=\"button button-full button-solid ion-activatable ion-focusable hydrated\" (click)=\"clearItems()\">\r\n Clear\r\n </ion-button>\r\n </ion-col>\r\n <ion-col>\r\n <ion-button expand=\"full\" ng-reflect-disabled=\"false\" ng-reflect-expand=\"full\" class=\"button button-full button-solid ion-activatable ion-focusable hydrated\" (click)=\"confirmItems()\">\r\n OK\r\n </ion-button>\r\n </ion-col>\r\n </ion-row>\r\n </ion-toolbar>\r\n </ng-template>-->\r\n </ionic-selectable>\r\n </div>\r\n <app-uivalidationmessage [group]=\"group\" [data]=\"data\" [form]=\"form\"></app-uivalidationmessage>\r\n <!-- side by side and desktop tooltipsinfo -->\r\n <kendo-label *ngIf=\"tooltipsInfo && !showTooltipsInfoIcon && showTooltipsInfoBySide\"\r\n [text]=\"tooltipsDisplayText\"\r\n [class]=\"setTooltipsInfoClass()\"\r\n [style.color]=\"setTooltipsInfoColor()\"></kendo-label>\r\n </div>\r\n</ion-item>\r\n\r\n\r\n\r\n<ion-item [ngClass]=\"getClass(form, data)\" [formGroup]=\"form\" *ngIf=\"(!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible) && !isMobileScreen()\">\r\n <ion-label [attr.for]=\"data.Value\" *ngIf=\"data.ShowLabel === undefined || data.ShowLabel\" position=\"stacked\">\r\n {{data.Label}}\r\n <ion-text *ngIf=\"(!!componentProperties.isRequiredField ? group[componentProperties.isRequiredField] : componentProperties.isRequired)\" color=\"danger\">*</ion-text>\r\n <span kendoTooltip\r\n *ngIf=\"data.TooltipsInfo && showTooltipsInfoIcon\"\r\n [title]=\"tooltipsDisplayText\">\r\n <fa-icon [icon]=\"tooltipsDisplayIcon\"\r\n class=\"tooltipsinfo-icon\">\r\n </fa-icon>\r\n </span>\r\n </ion-label>\r\n <!-- mobile tooltipsinfo below label-->\r\n <div [class]=\"setTooltipsInfoSideBySide()\">\r\n <div style=\"flex: 1;\">\r\n <kendo-combobox *ngIf=\"!data.Multiple\"\r\n #comboboxComponent\r\n [data]=\"getItemsData()\"\r\n [valueField]=\"itemValueField\"\r\n [textField]=\"itemTextField\"\r\n [formControlName]=\"data.Value\"\r\n [valuePrimitive]=\"true\"\r\n [placeholder]=\"data.PlaceHolder\"\r\n [allowCustom]=\"allowCustomValue\"\r\n [suggest]=\"true\"\r\n [filterable]=\"!!data.HasInfiniteScroll\"\r\n [openOnFocus]=\"disableOpenOnFocus(comboboxComponent)\"\r\n [readonly]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n [ngClass]=\"{'disabled' : (!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)}\"\r\n [loading]=\"isLoading\"\r\n (valueChange)=\"onValueChange($event)\"\r\n (filterChange)=\"handleFilter($event)\"\r\n [virtual]=\"virtual\"\r\n (open)=\"handleOpen()\"\r\n (close)=\"handleClose()\"\r\n (blur)=\"handleBlur()\"\r\n style=\"margin-top: 7px; width: 100%;\">\r\n <ng-template kendoComboBoxItemTemplate let-dataItem>\r\n {{ getItemTemplate(dataItem, data, group, itemValueField, itemTextField) }}\r\n <!-- <span class=\"template\">{{ dataItem.value }}</span> {{ dataItem.text }} -->\r\n </ng-template>\r\n <ng-template kendoTextBoxSuffixTemplate>\r\n\r\n <!-- For Validation feature -->\r\n <app-uivalidationmessage [group]=\"group\"\r\n [data]=\"data\"\r\n [form]=\"form\"\r\n class=\"validation-icon\"></app-uivalidationmessage>\r\n </ng-template>\r\n </kendo-combobox>\r\n <kendo-multiselect *ngIf=\"data.Multiple\"\r\n [data]=\"getItemsData()\"\r\n [valueField]=\"itemValueField\"\r\n [textField]=\"itemTextField\"\r\n [formControlName]=\"data.Value\"\r\n [valuePrimitive]=\"true\"\r\n [placeholder]=\"data.PlaceHolder\"\r\n [allowCustom]=\"allowCustomValue\"\r\n [filterable]=\"!!data.HasInfiniteScroll\"\r\n [checkboxes]=\"data.EnableCheckbox\"\r\n [loading]=\"isLoading\"\r\n [autoClose]=\"autoClose\"\r\n [readonly]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n [ngClass]=\"{'disabled' : (!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)}\"\r\n (valueChange)=\"onValueChange($event)\"\r\n (filterChange)=\"handleFilter($event)\"\r\n (open)=\"handleOpen()\"\r\n (close)=\"handleClose()\"\r\n (blur)=\"handleBlur()\"\r\n style=\"margin-top: 7px; width: 100%;\">\r\n <ng-template kendoMultiSelectItemTemplate let-dataItem>\r\n {{ getItemTemplate(dataItem, data, group, itemValueField, itemTextField) }}\r\n <!-- <span class=\"template\">{{ dataItem.value }}</span> {{ dataItem.text }} -->\r\n </ng-template>\r\n </kendo-multiselect>\r\n </div>\r\n\r\n <div *ngFor=\"let item of iconList\">\r\n <div kendoTooltip style=\"text-align: center; padding-top: 10px;\"\r\n showOn=\"hover\"\r\n [tooltipWidth]=\"item.Width\"\r\n [position]=\"item.Position\">\r\n <span *ngIf=\"!!item && item.Color\"\r\n (click)=\"onIconClick(item.Click)\"\r\n [title]=\"item.Tooltip\"\r\n style=\"margin-top: 10px;\">\r\n <fa-icon [icon]=\"item.Icon\"\r\n [ngStyle]=\"{'padding': '4px 6px', 'color': (item.Color ? item.Color : 'black')}\"></fa-icon>\r\n </span>\r\n </div>\r\n </div>\r\n\r\n <ion-button *ngFor=\"let button of buttonList; let i = button\"\r\n fill=\"outline\"\r\n color=\"dark\"\r\n size=\"small\"\r\n strong=\"false\"\r\n class=\"button-container\"\r\n style=\"margin-top: 7px;\"\r\n (click)=\"onIconClick(button.click)\"\r\n [hidden]=\"!button.visible\"\r\n [disabled]=\"group.isTriggered || button.disabled\">\r\n <fa-icon *ngIf=\"button.icon\" [icon]=\"getFontAwesome(button.icon)\" style=\"padding-right: 5px;\"></fa-icon>\r\n <span class=\"ion-text-capitalize\">{{ button.text }}</span>\r\n </ion-button>\r\n\r\n <app-uivalidationmessage [group]=\"group\"\r\n [data]=\"data\"\r\n [form]=\"form\"></app-uivalidationmessage>\r\n\r\n <!-- side by side and desktop tooltipsinfo -->\r\n <kendo-label *ngIf=\"tooltipsInfo && !showTooltipsInfoIcon && ((showTooltipsInfoBySide && isMobileScreen()) || !isMobileScreen())\"\r\n [text]=\"tooltipsDisplayText\"\r\n [class]=\"setTooltipsInfoClass()\"\r\n [style.color]=\"setTooltipsInfoColor()\"></kendo-label>\r\n\r\n </div>\r\n</ion-item>\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input } from '@angular/core';\r\nimport { FormGroup, Validators } from '@angular/forms';\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\n\r\n/********** Component & Service **********/\r\nimport {\r\n ZComponent, ZComponentHelper, ZComponentOutputEvent,\r\n ZField, ZGroup, ZComponentProperties\r\n} from 'mmhglobal-zcore';\r\n\r\n\r\n@Component({\r\n selector: 'app-ztextarea',\r\n templateUrl: './ztextarea.component.html',\r\n styleUrls: ['./ztextarea.component.scss'],\r\n})\r\nexport class ZtextareaComponent implements ZComponent, OnInit {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n\r\n itemValueField: string = null;\r\n itemTextField: string = null;\r\n itemDataField: string = null;\r\n itemTemplate = \"{{item[itemTextField]}}\";\r\n infinitezData: Array<any> = [];\r\n infiniteSearchText = null;\r\n modelzData: Array<any>;\r\n\r\n componentProperties = new ZComponentProperties();\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n }\r\n\r\n\r\n public setEnable = (status: boolean) => {\r\n const fc = this.group.form.controls[this.data.Value];\r\n status ? fc.enable() : fc.disable();\r\n this.componentProperties.isReadOnly = !status;\r\n }\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n }\r\n\r\n public setRequire = (status: boolean) => {\r\n this.componentProperties.isRequired = status;\r\n ZComponentHelper.changeValidator(status, this.group, this.data.Value, this.componentProperties, Validators.required);\r\n }\r\n\r\n onValueChange(value: any) {\r\n // console.log(\"zselectmultiple (onValueChange): \", value);\r\n ZComponentHelper.setModelValue(this.data.Value, value, this.group);\r\n this.onChangeEvent(value);\r\n }\r\n\r\n private onChangeEvent(value: string) {\r\n if (this.data.HasInfiniteScroll && !!this.data.InfiniteScroll$) {\r\n const textField = this.itemTextField.toString();\r\n const valueField = this.itemValueField.toString();\r\n let zdataModel = [];\r\n if (value) {\r\n zdataModel = this.infinitezData.filter(x => x[valueField] === value);\r\n this.modelzData = zdataModel.slice();\r\n }\r\n if (this.itemDataField.startsWith('group.zData.')) {\r\n this.group.zData[this.itemDataField.slice(12)] = zdataModel;\r\n } else if (this.itemDataField.startsWith('group.')) {\r\n this.group[this.itemDataField.slice(6)] = zdataModel;\r\n }\r\n }\r\n\r\n\r\n this.group.subject.next({\r\n type: \"onChange\",\r\n target: this.data.OnChange,\r\n event,\r\n data: { value, field: this.data }\r\n } as ZComponentOutputEvent);\r\n }\r\n\r\n getReadOnlyValue() {\r\n const readOnlyValue = ZComponentHelper.getGroupEvalValue.call(this, this.data.ReadOnly, this.group);\r\n if (typeof readOnlyValue === 'function') {\r\n return readOnlyValue();\r\n }\r\n return readOnlyValue;\r\n }\r\n\r\n isMobileScreen() {\r\n const v = ZComponentHelper.isMobileScreen();\r\n return v;\r\n }\r\n\r\n getIon_InvalidClass(form: FormGroup, data: ZField) {\r\n return ZComponentHelper.getIon_InvalidClass(form, data);\r\n }\r\n\r\n getClass(form: FormGroup, data: ZField) {\r\n const ionInvalidClass = this.getIon_InvalidClass(form, data);\r\n return `${ionInvalidClass ? ionInvalidClass : ''} ${this.data.Class}`;\r\n }\r\n\r\n onClick() {\r\n if (this.data.OnItemClick) {\r\n this.group.subject.next({\r\n type: \"ztextarea-onClick\",\r\n target: this.data.OnItemClick,\r\n data: this.form.value\r\n } as ZComponentOutputEvent);\r\n }\r\n }\r\n}\r\n","<ion-item [formGroup]=\"form\" *ngIf=\"(!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\" [ngClass]=\"getClass(form, data)\">\r\n <ion-label [attr.for]=\"data.Value\" *ngIf=\"data.ShowLabel === undefined || data.ShowLabel\" position=\"stacked\">\r\n {{data.Label}}\r\n <ion-text *ngIf=\"(!!componentProperties.isRequiredField ? group[componentProperties.isRequiredField] : componentProperties.isRequired)\" color=\"danger\">*</ion-text>\r\n </ion-label>\r\n <div class=\"ion-row\" style=\"justify-content: space-between; width: 100%\">\r\n <span style=\"flex: 1;\">\r\n <ion-textarea *ngIf=\"isMobileScreen()\"\r\n [id]=\"data.Value\"\r\n [formControlName]=\"data.Value\"\r\n [placeholder]=\"data.PlaceHolder\"\r\n [minlength]=\"data.MinLength\"\r\n [maxlength]=\"data.MaxLength\"\r\n [attr.disabled]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n [rows]=\"data.textAreaRows\"></ion-textarea>\r\n <textarea kendoTextArea *ngIf=\"!isMobileScreen()\"\r\n [id]=\"data.Value\"\r\n [formControlName]=\"data.Value\"\r\n [placeholder]=\"data.PlaceHolder\"\r\n [minlength]=\"data.MinLength\"\r\n [maxlength]=\"data.MaxLength\"\r\n [readonly]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n [rows]=\"data.textAreaRows\"\r\n [autoSize]=\"!data.textAreaRows\"\r\n [ngClass]=\"{'disabled' : (!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)}\"\r\n style=\"margin: 7px 0 0 0; width: 100%\"\r\n (valueChange)=\"onValueChange($event)\"\r\n (click)=\"onClick()\"></textarea>\r\n </span>\r\n <app-uivalidationmessage [group]=\"group\" [data]=\"data\" [form]=\"form\"></app-uivalidationmessage>\r\n </div>\r\n</ion-item>\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input, OnDestroy, ViewChild } from \"@angular/core\";\r\nimport { FormGroup, FormBuilder, Validators, FormControl, FormArray, ValidatorFn } from '@angular/forms';\r\nimport { ActivatedRoute, Router } from \"@angular/router\";\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\nimport { Observable, of, Subject, Subscription } from \"rxjs\";\r\nimport { tap, delay, map, switchMap, concatMap } from \"rxjs/operators\";\r\nimport { ExcelExportData } from '@progress/kendo-angular-excel-export';\r\nimport { GridItem, SelectableSettings } from '@progress/kendo-angular-grid';\r\nimport { SortDescriptor, State, process } from \"@progress/kendo-data-query\";\r\nimport { TooltipDirective } from '@progress/kendo-angular-tooltip';\r\nimport {\r\n GridDataResult,\r\n DataStateChangeEvent,\r\n PageChangeEvent,\r\n CellClickEvent,\r\n GridComponent,\r\n RowArgs,\r\n ColumnReorderEvent\r\n} from \"@progress/kendo-angular-grid\";\r\n\r\n/********** Component & Service **********/\r\n// import { environment } from \"src/environments/environment\";\r\nimport { MainService } from \"../services/main.service\";\r\nimport { ZGridBindingDirective } from \"./zgrid.binding.directive\";\r\nimport {\r\n AuthService, WebApiService, ToastService, GridCaching,\r\n ZField, ZGroup, ZComponent, ZComponentProperties, ZComponentHelper, ZComponentOutputEvent, ZCoreService,\r\n ZGridStatePersistingService, ZGridPostApiParams, ZGridSettings, ZGridColumnSettings, ZGridCustomColumn, StorageSessionService\r\n} from 'mmhglobal-zcore';\r\n\r\n\r\nexport interface ZGrid {\r\n params: ZGridPostApiParams;\r\n state: State;\r\n columns: any[];\r\n paginationApiPostUrl: string;\r\n data: ZField;\r\n group: ZGroup;\r\n zgrid: ZGridBindingDirective;\r\n inlineEditedFormGroups: FormGroup;\r\n getGridData: () => any[];\r\n getData: () => void;\r\n clearData: () => void;\r\n setData: (data: any) => void;\r\n setColumns: (columnFieldsName: string, columns: Array<ZGridCustomColumn>) => void;\r\n}\r\n\r\n@Component({\r\n selector: \"app-zgrid\",\r\n templateUrl: \"./zgrid.component.html\",\r\n styleUrls: [\"./zgrid.component.scss\"]\r\n})\r\nexport class ZgridComponent implements ZComponent, OnInit, OnDestroy {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n @ViewChild(TooltipDirective) public tooltipDir: TooltipDirective;\r\n // @ViewChild(ZGridBindingDirective, { static: false }) zgrid: ZGridBindingDirective;\r\n zgrid: any = null;\r\n oauthUrl: string = null;\r\n\r\n gridData: GridDataResult;\r\n selectableSettings: SelectableSettings;\r\n mySelection: any[] = [];\r\n inlineEditedFormGroups: FormGroup;\r\n public formGroup: FormGroup; // for kendo grid built-in\r\n public previousNext: boolean;\r\n\r\n componentProperties = new ZComponentProperties();\r\n\r\n // eslint-disable-next-line @typescript-eslint/naming-convention, no-underscore-dangle, id-blacklist, id-match\r\n _state: State = {\r\n skip: 0,\r\n take: 10\r\n };\r\n\r\n params: ZGridPostApiParams = {\r\n referId: null,\r\n pageNo: 0,\r\n pageSize: 20,\r\n sortColumnName: \"\",\r\n sortOrder: \"\",\r\n sortColumnNames: [],\r\n sortOrders: [],\r\n filterParams: [],\r\n parameters: \"\",\r\n filters: \"\",\r\n columns: \"\",\r\n grantType: 4\r\n };\r\n\r\n gridSubject: Subject<any> = new Subject<any>();\r\n\r\n private widthReduce: number;\r\n private heightReduce: number;\r\n private gData: any;\r\n\r\n columns: any[];\r\n editableColumns: any[];\r\n subscription: Subscription;\r\n pageSizes: boolean | any[];\r\n isLoading: boolean;\r\n gridStorageKey: string;\r\n gridDefaultStateExist: boolean = false;\r\n isNew: boolean = true;\r\n private editedRowIndex: number;\r\n\r\n constructor(\r\n private activatedRoute: ActivatedRoute,\r\n private router: Router,\r\n private formBuilder: FormBuilder,\r\n private authService: AuthService,\r\n private webApiService: WebApiService,\r\n private zGridStatePersistingService: ZGridStatePersistingService,\r\n private toastService: ToastService,\r\n private zcoreService: ZCoreService,\r\n private storageService: StorageSessionService,\r\n private mainService: MainService\r\n ) {\r\n this.oauthUrl = this.zcoreService.getEnvironment().e1OauthUrl + \"/\";\r\n this.allResults = this.allResults.bind(this);\r\n this.refreshData = this.refreshData.bind(this);\r\n this.clearData = this.clearData.bind(this);\r\n this.saveGridSettings = this.saveGridSettings.bind(this);\r\n this.restoreGridSettings = this.restoreGridSettings.bind(this);\r\n }\r\n\r\n\r\n ngOnInit() {\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n\r\n // Grid saved setting key(Used in CookieStore & LocalStorage)\r\n this.gridStorageKey = 'ionic-field::' + this.authService.e1Token.userName + '::' + this.data.Name + '::' + this.router.url;\r\n\r\n of(true)\r\n .pipe(\r\n //concatMap(() => {\r\n // // try get gridsetting from cookiestore\r\n // return this.mainService.cookieStoreGet(this.gridStorageKey, this.authService.e1Token.access_token);\r\n //}),\r\n //switchMap(savedGridCache => {\r\n // if (savedGridCache) { \r\n // // Keep the gridSetting from cookiestore to localStorage\r\n // this.zGridStatePersistingService.set(this.gridStorageKey, savedGridCache);\r\n // return of(true);\r\n // }\r\n // return of(false);\r\n //}),\r\n switchMap(() => {\r\n // Grid default setting\r\n this.columns = [];\r\n this.widthReduce = this.data.WidthReduce || 60;\r\n this.heightReduce = this.data.HeightReduce || 560;\r\n this._state.take = this.data.PageSize || 20;\r\n this.pageSizes = [20, 50, 100, 200, 500];\r\n this.previousNext = this.data['EnablePreviousNextButton'] || false;\r\n\r\n // [Mobile] Disable PageSize\r\n if (this.data.PageSizes === false || ZComponentHelper.isMobileScreen()) {\r\n this.pageSizes = false;\r\n }\r\n\r\n // Grid Selection column\r\n if (this.data.SelectOptions) {\r\n this.selectableSettings = {\r\n // checkboxOnly: this.checkboxOnly,\r\n mode: this.data.SelectOptions === 'single' ? 'single' : 'multiple'\r\n };\r\n }\r\n\r\n // bind this to group using Grid value\r\n if (this.data.Value.startsWith('group.')) {\r\n const gridValue = this.data.Value.slice(6);\r\n this.group[gridValue] = this;\r\n }\r\n\r\n // clear any Subscription\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n // if no ResourceURL, still generate Column first, then insert grid data using DataSource\r\n if (!this.data.ResourceURL) {\r\n this.generateGridColumns().subscribe(() => {\r\n if (this.data.DataSource && this.data.SkipDirective) {\r\n const ds = ZComponentHelper.getGroupValue(\r\n this.data.DataSource,\r\n this.group\r\n );\r\n this.setData(ds);\r\n }\r\n });\r\n }\r\n\r\n // subscribe to set grid setting from directive to component\r\n this.subscription = this.gridSubject.subscribe(grid => {\r\n this.zgrid = grid;\r\n this._state = this.zgrid.state;\r\n this.columns = this.zgrid.gridColumns;\r\n if (this.zgrid) { \r\n if (this.zgrid.grid.data) {\r\n if (!this.zgrid.grid.data.total) {\r\n this.zgrid.grid.data.total = 0;\r\n }\r\n this.gridData = Object.assign({}, this.zgrid.grid.data);\r\n this.createFormControls();\r\n }\r\n\r\n if (!this.zgrid.grid['pageSize']) {\r\n // default to 0 instead of undefined.\r\n this.zgrid.grid['pageSize'] = 0;\r\n }\r\n }\r\n });\r\n\r\n // Check Grid setting exist in localstorage\r\n this.stateExist();\r\n\r\n // Set Filter SessionKey\r\n if (this.data['SaveFilter']) {\r\n this.setGridSessionKey(this.group);\r\n }\r\n return of(true);\r\n }),\r\n tap(() => {\r\n this.gridCallback(this.group);\r\n }),\r\n ).subscribe();\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n\r\n /* Start Grid State (pagination, sortable, filter, ordering) */\r\n get state() {\r\n return this._state;\r\n }\r\n\r\n private stateExist() {\r\n const userGridState = this.zGridStatePersistingService.get(this.gridStorageKey);\r\n\r\n if (userGridState) {\r\n this.gridDefaultStateExist = true;\r\n }\r\n else {\r\n this.gridDefaultStateExist = false;\r\n }\r\n }\r\n\r\n public dataStateChange(state: DataStateChangeEvent): void {\r\n if (this.zgrid) {\r\n this.zgrid.dataStateChange(state);\r\n } else {\r\n this.gridData = process(this.gData, state);\r\n this.createFormControls();\r\n }\r\n }\r\n\r\n public filterable(value: any) {\r\n if (value === false) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n public sortable(value: any) {\r\n if (value === false) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n public locked(colSetting: any) {\r\n if (colSetting['pinnedLeft'] == true) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n /* End Grid State (pagination, sortable, filter, ordering) */\r\n\r\n /* Start Grid Styling, Display */\r\n public getGridStyle() {\r\n return {\r\n \"height.px\": this.getGridHeight(), // window.innerHeight - this.heightReduce, // 450,\r\n \"width.px\": window.innerWidth - this.widthReduce\r\n }; // \"width.px\": this.innerWidth - 35\r\n }\r\n\r\n private getGridHeight() {\r\n const gridHeight = window.innerHeight - this.heightReduce;\r\n return (gridHeight < 250) ? 250 : gridHeight;\r\n // const v = ZComponentHelper.isMobileScreen();\r\n // if(v){\r\n // const h = window.innerHeight - this.heightReduce;\r\n // return (h < 250) ? 250 : h;\r\n // }else{\r\n // return \"auto\";\r\n // } \r\n }\r\n /* End Grid Styling, Display */\r\n\r\n\r\n /* Start Grid Columns */\r\n public isSelectOption() {\r\n let selectOptionExist = false;\r\n if (this.data.SelectOptions) {\r\n this.selectableSettings = {\r\n checkboxOnly: false,\r\n mode: (this.data.SelectOptions == \"multiple\") ? \"multiple\" : \"single\"\r\n };\r\n selectOptionExist = true;\r\n }\r\n return selectOptionExist;\r\n }\r\n\r\n public setColumns(columnName: string, columns: Array<ZGridCustomColumn>) {\r\n this.group[columnName] = this.wrapColumnNamesInFieldElement(columns);\r\n this.generateGridColumns().subscribe();\r\n }\r\n\r\n private wrapColumnNamesInFieldElement(columnList: Array<ZGridCustomColumn>) {\r\n return of(columnList.map(c => {\r\n const isHidden: boolean = c.Hidden;\r\n return {\r\n Name: c.Name,\r\n Value: c.Code,\r\n Type: c.Type,\r\n gridColVisible: !isHidden,\r\n width: 100 + c.Name.length * 4,\r\n enableFiltering: false,\r\n enableSorting: true,\r\n enablePinning: true,\r\n DivClass: \"col-xs-12 col-sm-6\",\r\n IsEditableInGrid: c.Editable\r\n };\r\n }));\r\n }\r\n\r\n private generateGridColumns(): Observable<any> {\r\n const gridSetting = this.getGridSettings();\r\n\r\n const columnFields$: Observable<any> = ZComponentHelper.getGroupValue(\r\n this.data.ColumnFields,\r\n this.group\r\n );\r\n if (!this.data.ColumnFields) {\r\n console.warn('Invalid/Empty grid(' + this.data.Name + ') columnField');\r\n }\r\n return columnFields$.pipe(\r\n tap(data => {\r\n if (!data) {\r\n console.warn('Invalid/Empty grid(' + this.data.Name + ') data to generate column');\r\n }\r\n const fieldName = this.data['FieldElementName'];\r\n this.columns = [];\r\n ZComponentHelper.getGridColumns(data,\r\n this.columns,\r\n this.group,\r\n this.authService,\r\n fieldName,\r\n gridSetting,\r\n null,\r\n this.data);\r\n }),\r\n //switchMap(() => {\r\n // //Get Session\r\n // return this.getGridSessionFilter(this.grp, this);\r\n //}),\r\n //switchMap(() => {\r\n // //Before get grid data\r\n // return this.beforeGridGetData(this.grp, this);\r\n //}),\r\n //switchMap(() => {\r\n // //Set grid data\r\n // return this.setGridSessionFilter(this.grp, this);\r\n //})\r\n );\r\n }\r\n\r\n /* End Grid Columns */\r\n\r\n private editModel(dataItem: any) {\r\n if (this.data.EditClickURL) {\r\n // Edit incell field\r\n const colFields = ZComponentHelper.getGroupValue(this.data.ColumnFields, this.group);\r\n this.group.subject.next({\r\n type: \"zgrid-cellClick\",\r\n target: this.data.EditClickURL,\r\n data: dataItem,\r\n columnFields$: colFields\r\n } as ZComponentOutputEvent);\r\n }\r\n else {\r\n // When clicked route to page\r\n this.router.navigate([this.group.editModelURL, dataItem.Id, 'edit'], {\r\n relativeTo: this.activatedRoute\r\n });\r\n }\r\n }\r\n\r\n public gridCallback(group: ZGroup) {\r\n if (this.data['AfterloadCallback']) {\r\n const me = Object.assign({}, this);\r\n\r\n this.group.subject.next({\r\n type: \"zgrid-AfterloadCallback\",\r\n target: this.data['AfterloadCallback'],\r\n data: me\r\n } as ZComponentOutputEvent);\r\n }\r\n }\r\n\r\n public setData = (gData: any) => {\r\n this.gridData = {\r\n data: gData,\r\n total: (gData ? gData.length : 0)\r\n };\r\n this.gData = gData;\r\n\r\n if (this.zgrid) {\r\n this.zgrid.grid['pageSize'] = gData.length; // set grid size\r\n }\r\n\r\n if (!!this.data.ShowRecordNumber) {\r\n if (this.gridData.data) {\r\n this.gridData.data.forEach((d, i) => {\r\n d.GridNo = i + 1;\r\n });\r\n }\r\n }\r\n\r\n if (this.gData) {\r\n this.createFormControls();\r\n }\r\n }\r\n\r\n public getData() {\r\n if (this.zgrid) {\r\n this.zgrid.getDataBinding();\r\n }\r\n\r\n if (this.data.SkipDirective) {\r\n this.gridData = process(this.gData, this.state);\r\n this.createFormControls();\r\n }\r\n }\r\n\r\n public getGridData() {\r\n return this.gData;\r\n }\r\n\r\n\r\n public getFormControl(rowIndex: number, property: string) {\r\n const formArray: FormArray = this.inlineEditedFormGroups.get('items') as FormArray;\r\n const formItem = formArray.at(rowIndex);\r\n\r\n if (formItem) {\r\n return formItem.get(property);\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n\r\n private createFormControls() {\r\n if (this.columns) {\r\n // only create if there is at least 1 editable column\r\n if (this.columns.find(c => c.isEditableInGrid) === undefined) {\r\n return;\r\n }\r\n\r\n this.inlineEditedFormGroups = new FormGroup({ items: new FormArray([]) });\r\n\r\n if (Array.isArray(this.gridData.data)) {\r\n this.gridData.data.forEach(d => {\r\n const items = {};\r\n this.columns.forEach(c => {\r\n items[c.field] = new FormControl(d[c.field]);\r\n });\r\n const formGroup = new FormGroup(items);\r\n (<FormArray>this.inlineEditedFormGroups.get(\"items\")).push(formGroup);\r\n });\r\n }\r\n }\r\n }\r\n\r\n public createFormGroup(dataItem: any, fieldName: any): FormGroup {\r\n return this.formBuilder.group({\r\n [fieldName]: dataItem[fieldName]\r\n });\r\n }\r\n\r\n public getGroupValue(value: string, group: ZGroup) {\r\n return ZComponentHelper.getGroupValue(this.data.Value, this.group);\r\n }\r\n\r\n\r\n\r\n public onBtnClick(event: any, colSetting: any, rowData: any, cellData: string) {\r\n this.onNavigateTo(event, colSetting, rowData, cellData);\r\n }\r\n\r\n public cellClickHandler(event: CellClickEvent) {\r\n const disableAllColumnCellClickHandler = this.data.DisableCellClickHandler ? this.data.DisableCellClickHandler : false;\r\n const isCommandColumn = event.column.constructor.name == 'CommandColumnComponent' ? true : false;\r\n\r\n if (!disableAllColumnCellClickHandler && !isCommandColumn) {\r\n const inCellEditable = this.data.InCellEditable ? this.data.InCellEditable : false;\r\n if (inCellEditable) {\r\n this.editableColumns = this.columns.filter(s => s.isEditableInDataItem === true);\r\n if (!!this.editableColumns) {\r\n this.editableColumns.map(s => event.sender.editCell(event.rowIndex, event.columnIndex, this.createFormGroup(event.dataItem, s.field)));\r\n }\r\n } else {\r\n console.log(\"cellClick event: \", event);\r\n if (this.data.OnItemClick) {\r\n const func = ZComponentHelper.getGroupEvalValue.call(this, this.data.OnItemClick);\r\n if (typeof func === 'function') {\r\n const callFunc = func.bind(this.group.ctrlScope);\r\n callFunc(event);\r\n }\r\n return;\r\n }\r\n\r\n this.editModel(event.dataItem);\r\n }\r\n }\r\n }\r\n\r\n public editCellCloseHandler(args: any) {\r\n const { formGroup, dataItem } = args;\r\n if (!formGroup.valid) {\r\n args.preventDefault();\r\n } else if (formGroup.dirty) {\r\n this.editableColumns = this.columns.filter(s => s.isEditableInDataItem === true);\r\n this.editableColumns.map(s =>\r\n Object.assign(dataItem, { [s.field]: formGroup.value[s.field] }));\r\n this.mySelection.map(s => (s.Id === dataItem.Id) ? Object.assign(s, dataItem) : null);\r\n }\r\n }\r\n\r\n\r\n public onNavigateTo(event: any, clickAction: any, rowData: any, cellData: string) {\r\n // debugger;\r\n // const n = colSetting.navigateTo.replace('/:id', cellData);\r\n const n = ZComponentHelper.getGroupEvalValue.call(this, clickAction.Click);\r\n if (n) {\r\n event.stopPropagation();\r\n this.group.subject.next({\r\n type: 'zgrid-onNavigateTo',\r\n target: clickAction.Click,\r\n rowData: rowData,\r\n data: cellData\r\n } as ZComponentOutputEvent);\r\n }\r\n }\r\n\r\n public showTooltip(e: MouseEvent): void {\r\n const element = e.target as HTMLElement;\r\n\r\n let isCommandColumn = false;\r\n element.classList.forEach(data => {\r\n if (data == 'k-command-cell') {\r\n isCommandColumn = true;\r\n }\r\n });\r\n\r\n if (((element.nodeName === 'TD' || element.nodeName === 'TH') && element.offsetWidth < element.scrollWidth) && !isCommandColumn) {\r\n this.tooltipDir.toggle(element);\r\n }\r\n else {\r\n this.tooltipDir.hide();\r\n }\r\n }\r\n\r\n public rowSelectionKey(context: RowArgs): any {\r\n return context.dataItem;\r\n }\r\n\r\n public getSelectedValues(): any {\r\n return this.mySelection;\r\n }\r\n\r\n public refreshGrid(event: ZComponentOutputEvent, group: ZGroup, me: any) {\r\n const _gridOptionSegment = event.target.trim().split('.');\r\n const _gridOption = _gridOptionSegment[1];\r\n if (_gridOption) {\r\n const zgridControl = group[_gridOption] as ZGrid;\r\n if (zgridControl) {\r\n zgridControl.getData();\r\n } else {\r\n console.log('Unable to find grid value: ' + _gridOption);\r\n }\r\n } else {\r\n console.log('Invalid refreshGrid event: ', event);\r\n }\r\n }\r\n\r\n public refreshData() {\r\n this.getData();\r\n }\r\n\r\n public clearData() {\r\n this.zgrid.clearData();\r\n }\r\n\r\n\r\n public allResults(): Observable<ExcelExportData> {\r\n const _zgridControl = this.zgrid as ZGrid;\r\n const _zgridComponent = this.zgrid.grid as GridComponent;\r\n const _data = _zgridComponent.data as GridDataResult;\r\n\r\n const paginationApiPostUrl = _zgridControl.paginationApiPostUrl;\r\n\r\n // Need to clone, if not will affect the grid params.\r\n const params = Object.assign({}, this.params);\r\n params.pageNo = 0;\r\n params.pageSize = _data.total;\r\n\r\n return this.webApiService.httpPost$(paginationApiPostUrl, params).pipe(\r\n map((data: any) => {\r\n const result: ExcelExportData = {\r\n data: process(data.dataSet, {}).data\r\n };\r\n\r\n return result;\r\n })\r\n );\r\n }\r\n\r\n public getClass(dataItem: any, col: any) {\r\n let ngClass = \"gridCell \";\r\n if (col.fieldType === 'number' || col.fieldType === 'currency' || col.fieldType === 'znumeric') {\r\n ngClass += \"rightAligned \";\r\n }\r\n\r\n if (dataItem[col.field + '_Class']) {\r\n ngClass += dataItem[col.field + '_Class'] + \" \";\r\n }\r\n\r\n if (col.Class) {\r\n ngClass += col.Class + \" \";\r\n }\r\n\r\n return ngClass;\r\n }\r\n\r\n public getFormat(col: any, defaultFormat?: any) {\r\n let format = \"\";\r\n if (col.FormatOptions === undefined) {\r\n format = defaultFormat ? defaultFormat : \"\";\r\n } else {\r\n const formatArr = col.FormatOptions.split(\".\")\r\n let dp = 0;\r\n\r\n if (formatArr.length > 1) {\r\n dp = formatArr[1].length;\r\n }\r\n\r\n if (dp !== 0) {\r\n format = \"1.\" + dp + \"-\" + dp;\r\n }\r\n }\r\n return format;\r\n }\r\n\r\n\r\n public setHeaderText(columnName: string, newHeaderTitle: string) {\r\n const gridColumns = this.columns;\r\n gridColumns.forEach((col: any) => {\r\n if (col.Name === columnName) {\r\n col.title = newHeaderTitle;\r\n }\r\n });\r\n }\r\n\r\n public setGridIsLoading(triggered: boolean) {\r\n this.isLoading = triggered;\r\n }\r\n\r\n public setGridSessionKey(group: ZGroup) {\r\n if (group[\"GridStorageKey\"]) {\r\n return;\r\n }\r\n else {\r\n group[\"GridStorageKey\"] = 'zgrid_' + group.resourceURL + '_' + this.data.Value + '::' + this.authService.e1Token.userName;\r\n }\r\n\r\n }\r\n\r\n public trackBy(index: number, item: GridItem): any {\r\n //console.log(item.data['Id'] || index);\r\n return index;\r\n }\r\n\r\n /* Grid configuration function */\r\n public saveGridSettings(): void {\r\n const _zgridComponent = this.zgrid.grid as GridComponent;\r\n const _columns = _zgridComponent.columns;\r\n\r\n of(this.columns)\r\n .pipe(\r\n switchMap(() => {\r\n const configValue: ZGridColumnSettings[] = _columns.toArray().map(item => {\r\n const _zGridColumnSettings: ZGridColumnSettings = Object.keys(item)\r\n .filter(propName => {\r\n return !propName.toLowerCase().includes('template')\r\n })\r\n .reduce((acc, curr) => (\r\n {\r\n ...acc,\r\n ...{ [curr]: item[curr] }\r\n })\r\n , {} as ZGridColumnSettings);\r\n return _zGridColumnSettings;\r\n });\r\n\r\n // remove extra element form array\r\n configValue.forEach(item => {\r\n delete item['headerStyle'];\r\n delete item['__ngContext__'];\r\n });\r\n\r\n const gridSetting: ZGridSettings = {\r\n // state: this.state,\r\n columnsConfig: configValue\r\n };\r\n\r\n // Find any setting from localstorage and update, if not just add in.\r\n let _arrGridCaching: GridCaching[] = this.zGridStatePersistingService.get(this.gridStorageKey);\r\n let _gridConfig: GridCaching = null;\r\n if (_arrGridCaching && _arrGridCaching[0]) {\r\n _gridConfig = _arrGridCaching.find(x => x['dataFormFields'] === this.gridStorageKey);\r\n\r\n if (_gridConfig) {\r\n _gridConfig.gridSettings = gridSetting;\r\n }\r\n }\r\n else {\r\n _arrGridCaching = [];\r\n }\r\n\r\n if (!_gridConfig) {\r\n _gridConfig = {\r\n dataFormFields: this.gridStorageKey,\r\n gridSettings: gridSetting\r\n };\r\n\r\n _arrGridCaching.push(_gridConfig);\r\n }\r\n return _arrGridCaching;\r\n }),\r\n concatMap(gridCache => {\r\n // Save grid caching to localstorage\r\n this.zGridStatePersistingService.set(this.gridStorageKey, gridCache);\r\n // Save to CookieStore\r\n return this.mainService.cookieStorePost(this.gridStorageKey, gridCache);\r\n }),\r\n tap(savedGridCache => {\r\n // check is saved state exist to enable/hide restore button\r\n this.stateExist();\r\n }),\r\n tap(() => {\r\n // Alert\r\n this.toastService.show('Grid Setting Saved', \"top\", true, 2000, 'success');\r\n })\r\n ).subscribe();\r\n }\r\n\r\n public restoreGridSettings() {\r\n of(true)\r\n .pipe(\r\n switchMap(() => {\r\n // Clear localstorage grid setting\r\n this.zGridStatePersistingService.remove(this.gridStorageKey);\r\n return of(true)\r\n }),\r\n switchMap(() => {\r\n // delete cookiestore gridSetting by storagekey as name\r\n return this.mainService.cookieStoreDeleteMultiple(this.gridStorageKey);\r\n }),\r\n concatMap(() => {\r\n // Use original column setting\r\n return this.generateGridColumns();\r\n }),\r\n tap(() => {\r\n // check is saved state exist\r\n this.stateExist();\r\n // Alert\r\n this.toastService.show('Grid Setting Restored', \"top\", true, 2000, 'success');\r\n })\r\n ).subscribe();\r\n }\r\n\r\n private getGridSettings(): ZGridColumnSettings[] {\r\n const _storageKey = 'ionic-field::' + this.authService.e1Token.userName + '::' + this.data.Name + '::' + this.router.url;\r\n\r\n // Find any setting from localstorage..\r\n let _arrGridCaching: GridCaching[] = this.zGridStatePersistingService.get(_storageKey);\r\n if (_arrGridCaching) {\r\n const _gridCaching: GridCaching = JSON.parse(_arrGridCaching['Value']);\r\n if (_gridCaching) {\r\n return _gridCaching.gridSettings.columnsConfig.sort((a, b) => a.orderIndex - b.orderIndex);\r\n }\r\n }\r\n }\r\n\r\n /* Inline setting */\r\n public getInlineField(value: any) {\r\n return this.columns.find(x => x.Value === value);\r\n }\r\n\r\n public getInlineForm(rowIndex: number) {\r\n const formArray: FormArray = this.inlineEditedFormGroups.get('items') as FormArray;\r\n return formArray.at(rowIndex)\r\n }\r\n\r\n public getFormControlData(value: any) {\r\n return this.inlineEditedFormGroups.value.items;\r\n }\r\n\r\n\r\n /* Event */\r\n public beforeGridGetData(group: ZGroup, me: any) {\r\n console.warn(\"beforeDataBinding triggered\");\r\n if (!group.beforeGridGetData) {\r\n console.warn(\"group.beforeDataBinding is undefined\");\r\n return of(true);\r\n }\r\n return group.beforeGridGetData(group, me);\r\n }\r\n\r\n public async getGridSessionFilter(group: ZGroup, me: any) {\r\n if (!group[\"GridStorageKey\"]) {\r\n return null;\r\n }\r\n const StorageKey = group[\"GridStorageKey\"];\r\n\r\n if (this.storageService) {\r\n await this.storageService.get(StorageKey)\r\n .then(data => {\r\n if (!data || !data.value || data.value === \"null\") {\r\n return null;\r\n }\r\n else {\r\n const result = JSON.parse(data.value);\r\n this.state.filter = JSON.parse(result[\"StateFilter\"]);\r\n this.params.filterParams = JSON.parse(result[\"FilterParams\"]);\r\n\r\n this.state.filter.filters.forEach((stateFilter: any) => {\r\n if (stateFilter.field.includes('UTC')) {\r\n stateFilter.value = new Date(stateFilter.value);\r\n }\r\n });\r\n\r\n return data;\r\n }\r\n });\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n\r\n public setGridSessionFilter(group: ZGroup, me: any) {\r\n if (!group[\"GridStorageKey\"]) {\r\n return null;\r\n }\r\n const StorageKey = group[\"GridStorageKey\"];\r\n\r\n let lstGridFilter: { [key: string]: string } = {};\r\n\r\n if (me.state.filter && this.storageService && this.data['SaveFilter']) {\r\n //list of data for StateFilter and FilterParams\r\n lstGridFilter = { \"StateFilter\": JSON.stringify(me.state.filter), \"FilterParams\": JSON.stringify(me.params.filterParams) }\r\n //create session storage\r\n this.storageService.set(StorageKey, JSON.stringify(lstGridFilter));\r\n }\r\n }\r\n\r\n /* Available Functions */\r\n public setEnable = (status: boolean) => {\r\n this.componentProperties.isReadOnly = !status;\r\n }\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n }\r\n\r\n public setRequire = (status: boolean) => {\r\n this.componentProperties.isRequired = status;\r\n ZComponentHelper.changeValidator(status, this.group, this.data.Value, this.componentProperties, Validators.required);\r\n }\r\n\r\n\r\n /* onchange Events */\r\n public filterChange(event: any): void {\r\n if (this.zgrid) {\r\n this.zgrid.filterChange(event);\r\n }\r\n }\r\n\r\n public pageChange(event: PageChangeEvent): void { \r\n if (this.zgrid) {\r\n this.zgrid.pageChange(event);\r\n }\r\n }\r\n\r\n public sortChange(sort: SortDescriptor[]): void {\r\n if (this.zgrid) {\r\n this.zgrid.sortChange(sort);\r\n }\r\n }\r\n\r\n public inCellCheckBoxOnChange(event: any, rowIndex: any, column: any) {\r\n const isChecked = event.detail.checked;\r\n this.gData[rowIndex][column.Value] = isChecked;\r\n }\r\n\r\n public columnsOrderChanged(event: ColumnReorderEvent): void {\r\n const _zgridControl = this.zgrid as ZGrid;\r\n const _zgridComponent = this.zgrid.grid as GridComponent;\r\n const _data = _zgridComponent.data as GridDataResult;\r\n\r\n if (this.zgrid) {\r\n const _zgrid = this.zgrid;\r\n }\r\n }\r\n\r\n\r\n /* grid command handler */\r\n public addHandler({ sender }) {\r\n this.isNew = true;\r\n\r\n // close any existing editor\r\n this.closeEditor(sender);\r\n\r\n // loop all column to get validation and create form control\r\n const colFormControl = {};\r\n this.zgrid.gridColumns.forEach(col => {\r\n const validators: ValidatorFn[] = [];\r\n if (col.IsRequired) {\r\n validators.push(Validators.required);\r\n }\r\n if (col.ValidatorPattern) {\r\n validators.push(Validators.pattern(col.ValidatorPattern));\r\n } \r\n\r\n colFormControl[col.Value] = new FormControl(null, validators); \r\n });\r\n\r\n // set form control object to form group\r\n this.formGroup = new FormGroup(colFormControl);\r\n\r\n // add to grid row\r\n sender.addRow(this.formGroup);\r\n }\r\n\r\n public saveHandler({ sender, rowIndex, formGroup, isNew }): void {\r\n // get grid data.\r\n const gridExistingData = this.gData ? this.gData : this.gridData ? this.gridData.data : [];\r\n\r\n // if valid\r\n if (formGroup.valid) {\r\n // check for duplicate UniqueKey\r\n let uniqueKeyExist: boolean;\r\n const uniqueKey = this.data['UniqueKey'];\r\n if (uniqueKey) { \r\n const formUniqueKeyValue = formGroup.value[uniqueKey];\r\n\r\n if (isNew || (!isNew && (gridExistingData[rowIndex][uniqueKey] != formUniqueKeyValue))) {\r\n // if new...\r\n // if edit... if current field, uniquekey value changed. need to check. \r\n gridExistingData.forEach(data => {\r\n if (data[uniqueKey] === formUniqueKeyValue) {\r\n uniqueKeyExist = true;\r\n return;\r\n }\r\n });\r\n }\r\n }\r\n\r\n if (!uniqueKeyExist) {\r\n if (isNew) {\r\n // if new, push to data\r\n gridExistingData.push(formGroup.value);\r\n }\r\n else {\r\n // if edit, update data\r\n gridExistingData[rowIndex] = formGroup.value;\r\n }\r\n\r\n this.setData(gridExistingData);\r\n\r\n sender.closeRow(rowIndex);\r\n }\r\n else {\r\n this.toastService.show('Error occur: Duplicated unique field entry.', 'top', true, 3000, 'danger');\r\n }\r\n }\r\n }\r\n\r\n public cancelHandler({ sender, rowIndex }) {\r\n // cancel any existing editor\r\n sender.closeRow(rowIndex);\r\n }\r\n\r\n public editHandler({ sender, rowIndex, dataItem }) {\r\n this.isNew = false;\r\n\r\n // close any existing editor\r\n this.closeEditor(sender);\r\n \r\n // loop all column to get validation and create form control, append current row value\r\n const colFormControl = {};\r\n this.zgrid.gridColumns.forEach(col => {\r\n const validators: ValidatorFn[] = [];\r\n if (col.IsRequired) {\r\n validators.push(Validators.required);\r\n }\r\n if (col.ValidatorPattern) {\r\n validators.push(Validators.pattern(col.ValidatorPattern));\r\n }\r\n \r\n colFormControl[col.Value] = new FormControl(dataItem[col.Value], validators);\r\n });\r\n\r\n // set form control object to form group\r\n this.formGroup = new FormGroup(colFormControl);\r\n\r\n // set grid row to edit\r\n this.editedRowIndex = rowIndex; \r\n sender.editRow(rowIndex, this.formGroup);\r\n }\r\n\r\n public removeHandler({ sender, dataItem }) {\r\n const index = this.getItemIndex(dataItem, this.gData, this.data['UniqueKey']);\r\n this.gData.splice(index, 1);\r\n\r\n sender.cancelCell();\r\n }\r\n\r\n private closeEditor(grid, rowIndex = this.editedRowIndex) {\r\n grid.closeRow(rowIndex);\r\n this.editedRowIndex = undefined;\r\n this.formGroup = undefined;\r\n }\r\n\r\n private getItemIndex(item: any, data: any[], key: string): number {\r\n for (let idx = 0; idx < data.length; idx++) {\r\n if (data[idx][key] === item[key]) {\r\n return idx;\r\n }\r\n }\r\n\r\n return -1;\r\n }\r\n}\r\n","<!--\r\n<div style=\"margin: 10px\">\r\n <div class=\"card\">\r\n <div class=\"card-block k-form\">\r\n <fieldset>\r\n <legend>Binding types</legend>\r\n <div class=\"k-form-field\">\r\n <span>Bind the data to:</span>\r\n <input [(ngModel)]=\"bindingType\" type=\"radio\" name=\"mode\" id=\"array\" value=\"array\" class=\"k-radio\"\r\n (change)=\"changeBindingType($event)\">\r\n <label class=\"k-radio-label\" for=\"array\">Array object</label>\r\n <input [(ngModel)]=\"bindingType\" type=\"radio\" name=\"mode\" id=\"gridDataResult\" value=\"gridDataResult\" class=\"k-radio\"\r\n (change)=\"changeBindingType($event)\">\r\n <label class=\"k-radio-label\" for=\"gridDataResult\">GridDataResult object</label>\r\n <input [(ngModel)]=\"bindingType\" type=\"radio\" name=\"mode\" id=\"async\" value=\"async\" class=\"k-radio\"\r\n (change)=\"changeBindingType($event)\">\r\n <label class=\"k-radio-label\" for=\"async\">Asynchronous source</label>\r\n </div>\r\n </fieldset>\r\n </div>\r\n </div>\r\n</div> -->\r\n<div style=\"margin: 10px 0 6px 0;\">\r\n <div *ngIf=\"data.Title\" class=\"gridTitle\">{{data.Title}}</div>\r\n <ng-template #template let-anchor>\r\n <span>{{ anchor.nativeElement.innerText }}</span>\r\n </ng-template>\r\n <div kendoTooltip\r\n showOn=\"none\"\r\n [tooltipTemplate]=\"template\"\r\n filter=\".k-grid td\"\r\n (mouseover)=\"showTooltip($event)\"> \r\n <kendo-grid [zgridbinding]=\"{data: data, group: group, params: params, gridSubject: gridSubject}\" [ngClass]=\"data.Class\"\r\n [data]=\"gridData\"\r\n [pageSize]=\"state.take\"\r\n [pageable]=\"{responsive: true, buttonCount: 3, pageSizes: pageSizes, previousNext: previousNext}\"\r\n [skip]=\"state.skip\"\r\n [sort]=\"state.sort\"\r\n [sortable]=\"{allowUnsort: true,mode: 'multiple'}\"\r\n [filter]=\"state.filter\"\r\n [filterable]=\"data.enableFiltering !== false\"\r\n [resizable]=\"true\"\r\n [reorderable]=\"true\"\r\n [columnMenu]=\"data.DisableGridColumnMenu ? false : { filter: true }\"\r\n [hidden]=\"!(!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\"\r\n (cellClick)=\"cellClickHandler($event)\"\r\n (cellClose)=\"editCellCloseHandler($event)\"\r\n (dataStateChange)=\"dataStateChange($event)\"\r\n (pageChange)=\"pageChange($event)\"\r\n (sortChange)=\"sortChange($event)\"\r\n (filterChange)=\"filterChange($event)\"\r\n (columnReorder)=\"columnsOrderChanged($event)\"\r\n [kendoGridSelectBy]=\"rowSelectionKey\"\r\n [selectable]=\"selectableSettings\"\r\n [selectedKeys]=\"mySelection\"\r\n [ngStyle]=\"getGridStyle()\"\r\n [trackBy]=\"trackBy\"\r\n (cancel)=\"cancelHandler($event)\"\r\n (save)=\"saveHandler($event)\"\r\n (remove)=\"removeHandler($event)\"\r\n (edit)=\"editHandler($event)\"\r\n (add)=\"addHandler($event)\">\r\n <ng-template kendoGridToolbarTemplate *ngIf=\"data.AllowRefreshButton || data.AllowExport || data.AllowSaveState || data.EnableGridCommand\">\r\n <button type=\"button\" kendoButton (click)=\"refreshData()\" *ngIf=\"data.AllowRefreshButton\"><span class=\"k-icon k-i-refresh-sm\"></span>&nbsp;Refresh</button>\r\n <button type=\"button\" kendoGridExcelCommand *ngIf=\"data.AllowExport\"><span class=\"k-icon k-i-file-excel\"></span>&nbsp;Export Data to Excel</button>\r\n <button type=\"button\" kendoButton (click)=\"saveGridSettings()\" *ngIf=\"data.AllowSaveState\"><span class=\"k-icon k-i-star\"></span>&nbsp;Save Setting</button>\r\n <button type=\"button\" kendoButton (click)=\"restoreGridSettings()\" *ngIf=\"gridDefaultStateExist\"><span class=\"k-icon k-i-star-outline\"></span>&nbsp;Restore Setting</button>\r\n <button type=\"button\" kendoGridAddCommand *ngIf=\"data.EnableGridCommand \"><span class=\"k-icon k-i-add\"></span>Add New</button>\r\n </ng-template>\r\n <kendo-grid-checkbox-column *ngIf=\"!!data.SelectOptions\" [width]=\"60\" showSelectAll=\"true\" [columnMenu]=\"true\"></kendo-grid-checkbox-column>\r\n <kendo-grid-column *ngFor=\"let col of columns\"\r\n [field]=\"col.field\"\r\n [title]=\"col.title\"\r\n [width]=\"col.width\"\r\n [minResizableWidth]=\"col.minResizableWidth\"\r\n [filter]=\"col.filter\"\r\n [filterable]=\"filterable(col.enableFiltering)\"\r\n [sortable]=\"sortable(col.enableSorting)\"\r\n [headerStyle]=\"{'white-space': 'initial'}\"\r\n [hidden]=\"col.hidden\"\r\n [format]=\"col.format\"\r\n [class]=\"col.Class\"\r\n [locked]=\"locked(col)\"\r\n [columnMenu]=\"!col.disableColumnMenu\"\r\n [editor]=\"col.editorType\">\r\n <div [ngSwitch]=\"true\">\r\n <div *ngSwitchCase=\"col.fieldType === 'number'\r\n || col.fieldType === 'currency'\r\n || col.fieldType === 'znumeric'\">\r\n <ng-template kendoGridFilterCellTemplate let-filter let-column=\"column\">\r\n <kendo-grid-numeric-filter-cell [column]=\"column\" [filter]=\"filter\" operator=\"eq\">\r\n <kendo-filter-eq-operator></kendo-filter-eq-operator>\r\n <kendo-filter-neq-operator></kendo-filter-neq-operator>\r\n <kendo-filter-lt-operator></kendo-filter-lt-operator>\r\n <kendo-filter-lte-operator></kendo-filter-lte-operator>\r\n <kendo-filter-gt-operator></kendo-filter-gt-operator>\r\n <kendo-filter-gte-operator></kendo-filter-gte-operator>\r\n <kendo-filter-isnull-operator></kendo-filter-isnull-operator>\r\n <kendo-filter-isnotnull-operator></kendo-filter-isnotnull-operator>\r\n </kendo-grid-numeric-filter-cell>\r\n </ng-template>\r\n </div>\r\n <div *ngSwitchCase=\"col.fieldType == 'zdate'\r\n || col.fieldType === 'ztime'\r\n || col.fieldType === 'zdatetime'\r\n || col.fieldType === 'zuidatetime'\">\r\n <div *ngIf=\"col.filterByDateRange === true\">\r\n <ng-template kendoGridFilterCellTemplate let-filter let-column=\"column\" operator=\"lte\">\r\n <date-range-filter-cell class=\"date-range-filter\"\r\n [filter]=\"filter\"\r\n [field]=\"col.field\">\r\n <kendo-filter-lt-operator></kendo-filter-lt-operator>\r\n <kendo-filter-lte-operator></kendo-filter-lte-operator>\r\n <kendo-filter-gt-operator></kendo-filter-gt-operator>\r\n <kendo-filter-gte-operator></kendo-filter-gte-operator>\r\n <kendo-filter-isnull-operator></kendo-filter-isnull-operator>\r\n <kendo-filter-isnotnull-operator></kendo-filter-isnotnull-operator>\r\n </date-range-filter-cell>\r\n </ng-template>\r\n </div>\r\n <div *ngIf=\"col.filterByDateRange === false\">\r\n <ng-template kendoGridFilterCellTemplate let-filter let-column=\"column\">\r\n <kendo-grid-date-filter-cell [column]=\"column\" [filter]=\"filter\" operator=\"lte\">\r\n <kendo-filter-lt-operator></kendo-filter-lt-operator>\r\n <kendo-filter-lte-operator></kendo-filter-lte-operator>\r\n <kendo-filter-gt-operator></kendo-filter-gt-operator>\r\n <kendo-filter-gte-operator></kendo-filter-gte-operator>\r\n <kendo-filter-isnull-operator></kendo-filter-isnull-operator>\r\n <kendo-filter-isnotnull-operator></kendo-filter-isnotnull-operator>\r\n </kendo-grid-date-filter-cell>\r\n </ng-template>\r\n </div>\r\n </div>\r\n <div *ngSwitchDefault>\r\n <ng-template kendoGridFilterCellTemplate let-filter let-column=\"column\">\r\n <kendo-grid-string-filter-cell [column]=\"column\" [filter]=\"filter\" operator=\"contains\">\r\n <kendo-filter-contains-operator></kendo-filter-contains-operator>\r\n <kendo-filter-eq-operator></kendo-filter-eq-operator>\r\n <kendo-filter-neq-operator></kendo-filter-neq-operator>\r\n <kendo-filter-startswith-operator></kendo-filter-startswith-operator>\r\n <kendo-filter-endswith-operator></kendo-filter-endswith-operator>\r\n <kendo-filter-isnull-operator></kendo-filter-isnull-operator>\r\n <kendo-filter-isnotnull-operator></kendo-filter-isnotnull-operator>\r\n </kendo-grid-string-filter-cell>\r\n </ng-template>\r\n </div>\r\n </div>\r\n <!-- Grid Edit Template -->\r\n <ng-template kendoGridEditTemplate *ngIf=\"data.EnableGridCommand \" let-dataItem=\"dataItem\" let-column=\"col\" let-formGroup=\"formGroup\" let-isNew=\"isNew\">\r\n <div [ngSwitch]=\"col.fieldType\">\r\n <div *ngSwitchCase=\"'number'\">\r\n <kendo-numerictextbox #cellAnchor [formControl]=\"formGroup.get(col.field)\"></kendo-numerictextbox>\r\n <kendo-popup [anchor]=\"cellAnchor.numericInput\"\r\n *ngIf=\"formGroup.get(col.field).invalid && !(isNew && formGroup.get(col.field).untouched)\"\r\n popupClass=\"k-widget k-tooltip k-tooltip-validation k-invalid-msg\"\r\n style=\"padding-left: 2px; opacity: 0.5;\">\r\n <span class=\"k-icon k-i-warning\"></span>\r\n <ion-label style=\"padding-top: 1px; padding-left: 3px;\"\r\n *ngIf=\"formGroup.get(col.field).invalid && !formGroup.get(col.field).untouched && formGroup.get(col.field).errors?.required\">\r\n {{ col.Name }} required.\r\n </ion-label>\r\n <ion-label style=\"padding-top: 1px; padding-left: 3px;\"\r\n *ngIf=\"formGroup.get(col.field).invalid && !formGroup.get(col.field).untouched && formGroup.get(col.field).errors?.pattern\">\r\n {{ col.ValidatorMessage ? col.ValidatorMessage : \"Please check the input value.\" }}\r\n </ion-label>\r\n </kendo-popup>\r\n </div>\r\n <div *ngSwitchDefault>\r\n <kendo-textbox #cellAnchor [formControl]=\"formGroup.get(col.field)\"></kendo-textbox>\r\n <kendo-popup [anchor]=\"cellAnchor.input\"\r\n *ngIf=\"formGroup.get(col.field).invalid && !(isNew && formGroup.get(col.field).untouched)\"\r\n popupClass=\"k-widget k-tooltip k-tooltip-validation k-invalid-msg\"\r\n style=\"padding-left: 2px; opacity: 0.5;\">\r\n <span class=\"k-icon k-i-warning\"></span>\r\n <!--<ion-label style=\"padding-top: 1px; padding-left: 3px;\">{{ col.Name }} is required.</ion-label>-->\r\n\r\n <ion-label style=\"padding-top: 1px; padding-left: 3px;\"\r\n *ngIf=\"formGroup.get(col.field).invalid && !formGroup.get(col.field).untouched && formGroup.get(col.field).errors?.required\">\r\n {{ col.Name }} required.\r\n </ion-label>\r\n <ion-label style=\"padding-top: 1px; padding-left: 3px;\"\r\n *ngIf=\"formGroup.get(col.field).invalid && !formGroup.get(col.field).untouched && formGroup.get(col.field).errors?.pattern\">\r\n {{ col.ValidatorMessage ? col.ValidatorMessage : \"Please check the input value.\" }}\r\n </ion-label>\r\n </kendo-popup>\r\n </div>\r\n </div>\r\n </ng-template>\r\n <ng-template kendoGridCellTemplate let-dataItem let-rowIndex=\"rowIndex\">\r\n <div style=\"margin: 1px 0;\" *ngIf=\"!col.clickableIcons && col.isEditableInGrid !== true\" [ngSwitch]=\"col.fieldType\"\r\n [ngClass]=\"getClass(dataItem, col)\">\r\n <span *ngSwitchCase=\"'zdate'\">\r\n {{ dataItem[col.field] | date: 'dd/MM/yyyy' }}\r\n </span>\r\n <span *ngSwitchCase=\"'ztime'\">\r\n {{ dataItem[col.field] | date: 'HH:mm' }}\r\n </span>\r\n <span *ngSwitchCase=\"'zshortdate'\">\r\n {{ dataItem[col.field] | date: 'MMM yyyy' }}\r\n </span>\r\n <span *ngSwitchCase=\"'zdatetime'\">\r\n {{ dataItem[col.field] | date: 'dd/MM/yyyy hh:mm:ss aa' }}\r\n </span>\r\n <span *ngSwitchCase=\"'zuidatetime'\">\r\n {{ dataItem[col.field] | date: 'dd/MM/yyyy hh:mm:ss aa' }}\r\n </span>\r\n <span *ngSwitchCase=\"'number'\">\r\n {{ dataItem[col.field] | number }}\r\n </span>\r\n <span *ngSwitchCase=\"'currency'\">\r\n {{ dataItem[col.field] | number: getFormat(col, '1.2-2') }}\r\n </span>\r\n <span *ngSwitchCase=\"'znumeric'\">\r\n {{ dataItem[col.field] | number: getFormat(col) }}\r\n </span>\r\n <span *ngSwitchCase=\"'url'\" style=\"color: blue; cursor: pointer; text-decoration:underline;\">\r\n {{ dataItem[col.field] }}\r\n </span>\r\n <span *ngSwitchDefault>\r\n {{ dataItem[col.field]}}\r\n </span>\r\n </div>\r\n <!-- <span *ngIf=\"!!col.navigateTo\" (click)=\"onNavigateTo($event, col, dataItem, dataItem[col.field])\">\r\n <ion-button color=\"light\" size=\"small\">\r\n {{ col.ClickableIcons }}\r\n <ion-icon slot= \"end\" name=\"arrow-forward\"></ion-icon>\r\n </ion-button>\r\n </span> -->\r\n <div style=\"margin: 5px 0;\" *ngIf=\"col.isEditableInGrid === true && inlineEditedFormGroups\" [ngSwitch]=\"col.fieldType\" [formGroup]=\"inlineEditedFormGroups\"\r\n [ngClass]=\"getClass(dataItem, col)\">\r\n <span *ngSwitchCase=\"'number'\">\r\n <input type=\"number\" [formControl]=\"this.getFormControl(rowIndex, col.field)\" />\r\n </span>\r\n <span *ngSwitchCase=\"'checkbox'\">\r\n <ion-checkbox [disabled]=\"(!!col.ReadOnly ? col.ReadOnly : false)\" [formControl]=\"this.getFormControl(rowIndex, col.field)\" color=\"primary\" (ionChange)=\"inCellCheckBoxOnChange($event, rowIndex, col)\"></ion-checkbox>\r\n </span>\r\n <span *ngSwitchCase=\"'zuiselectmultiple'\">\r\n <app-zselectmultiple style=\"width: 100%;\" [data]=\"getInlineField(col.Value)\" [group]=\"group\" [form]=\"getInlineForm(rowIndex)\"></app-zselectmultiple>\r\n </span>\r\n <span *ngSwitchCase=\"'textarea'\">\r\n <app-ztextarea style=\"width: 100%;\" [data]=\"getInlineField(col.Value)\" [group]=\"group\" [form]=\"getInlineForm(rowIndex)\"></app-ztextarea>\r\n </span>\r\n <span *ngSwitchCase=\"['zuidatetime','zdate', 'ztime','zdatetime','zshortdate'].includes(col.fieldType) ? col.fieldType : ''\">\r\n <app-zdatetime style=\"width: 100%;\" [data]=\"getInlineField(col.Value)\" [group]=\"group\" [form]=\"getInlineForm(rowIndex)\"></app-zdatetime>\r\n </span>\r\n <span *ngSwitchDefault>\r\n <input style=\"width: 100%;\" type=\"text\" [formControl]=\"this.getFormControl(rowIndex, col.field)\" />\r\n </span>\r\n </div>\r\n <span style=\"margin-top: 10px;\" *ngFor=\"let icon of col.clickableIcons\">\r\n <span [ngClass]=\"icon.Class ? icon.Class : ''\" *ngIf=\"!!icon && (!!dataItem.WFS_StatusCode && !!icon)\r\n ? dataItem.WFS_StatusCode !== icon.WFS_StatusCode\r\n : true;\r\n else disabledButton\" (click)=\"onBtnClick($event, icon, dataItem, dataItem[col.field])\">\r\n {{icon.Name || dataItem[col.field]}} <fa-icon [icon]=\"icon.Icon\" style=\"padding: 4px 6px;\">\r\n </fa-icon>\r\n </span>\r\n <ng-template #disabledButton>\r\n </ng-template>\r\n </span>\r\n <!-- <strong>{{ dataItem[col.field] }}</strong> -->\r\n <!-- <span class=\"{{dataItem.Discontinued ? 'discontinued' : 'active'}}\">\r\n {{dataItem.Discontinued ? \"discontinued\" : \"active\"}}\r\n </span> -->\r\n </ng-template>\r\n <ng-template kendoGridFooterTemplate let-column let-columnIndex=\"columnIndex\" *ngIf=\"data.EnableAggregate\">\r\n <div style=\"margin: 5px 0;\" [ngSwitch]=\"col.fieldType\">\r\n {{col.aggregateType}}\r\n <span *ngSwitchCase=\"'zdate'\">\r\n {{ col.aggregateValue | date: 'dd/MM/yyyy' }}\r\n </span>\r\n <span *ngSwitchCase=\"'ztime'\">\r\n {{ col.aggregateValue | date: 'HH:mm' }}\r\n </span>\r\n <span *ngSwitchCase=\"'zshortdate'\">\r\n {{ col.aggregateValue | date: 'MMM yyyy' }}\r\n </span>\r\n <span *ngSwitchCase=\"'zdatetime'\">\r\n {{ col.aggregateValue | date: 'dd/MM/yyyy hh:mm:ss aa' }}\r\n </span>\r\n <span *ngSwitchCase=\"'zuidatetime'\">\r\n {{ col.aggregateValue | date: 'dd/MM/yyyy hh:mm:ss aa' }}\r\n </span>\r\n <span *ngSwitchCase=\"'number'\">\r\n {{ col.aggregateValue | number }}\r\n </span>\r\n <span *ngSwitchCase=\"'currency'\">\r\n {{ col.aggregateValue | number: getFormat(col, '1.2.2') }}\r\n </span>\r\n <span *ngSwitchCase=\"'znumeric'\">\r\n {{ col.aggregateValue | number: getFormat(col) }}\r\n </span>\r\n <span *ngSwitchCase=\"'url'\" style=\"color: blue; cursor: pointer; text-decoration:underline;\">\r\n {{ col.aggregateValue }}\r\n </span>\r\n <span *ngSwitchDefault>\r\n {{ col.aggregateValue }}\r\n </span>\r\n </div>\r\n </ng-template>\r\n </kendo-grid-column>\r\n <kendo-grid-command-column *ngIf=\"data.EnableGridCommand\" width=\"180\" [columnMenu]=\"false\">\r\n <ng-template kendoGridCellTemplate let-isNew=\"isNew\">\r\n <button kendoGridSaveCommand>\r\n {{ isNew ? 'Save' : 'Update' }}\r\n </button>\r\n <button kendoGridCancelCommand [primary]=\"true\">\r\n {{ isNew ? 'Discard changes' : 'Cancel' }}\r\n </button>\r\n <button kendoGridEditCommand>\r\n {{ \"Edit\" }}\r\n </button>\r\n <button kendoGridRemoveCommand>\r\n {{ \"Remove\" }}\r\n </button>\r\n </ng-template>\r\n </kendo-grid-command-column>\r\n <kendo-grid-excel fileName=\"Export.xlsx\" [fetchData]=\"allResults\"></kendo-grid-excel>\r\n </kendo-grid>\r\n <div *ngIf=\"isLoading\" class=\"k-i-loading\"></div>\r\n </div>\r\n</div>\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input, OnDestroy } from \"@angular/core\";\r\nimport { FormGroup, Validators } from '@angular/forms';\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\nimport { Subscription } from \"rxjs\";\r\n\r\n/********** Component & Service **********/\r\nimport {\r\n ZComponent, ZComponentHelper, ZField, ZGroup, ZComponentProperties,\r\n WebApiService, AttachmentService\r\n} from \"mmhglobal-zcore\";\r\n\r\n\r\n@Component({\r\n selector: \"app-zimg\",\r\n templateUrl: \"./zimg.component.html\",\r\n styleUrls: [\"./zimg.component.scss\"]\r\n})\r\nexport class ZimgComponent implements ZComponent, OnInit, OnDestroy {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n imgWidth: string = null;\r\n imgHeight: string = null;\r\n imgSrc: string = null;\r\n randomNumber = Math.random();\r\n componentProperties = new ZComponentProperties();\r\n // imgSourceAvailable = false;\r\n subscription: Subscription;\r\n\r\n Guid;\r\n FileName;\r\n Image:string;\r\n constructor(private attachmentService: AttachmentService) { }\r\n\r\n async ngOnInit() {\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n if (this.data.Size && this.data.Size.toLowerCase().indexOf(\"x\") !== -1) {\r\n const imgSize = this.data.Size.toLowerCase().split(\"x\");\r\n this.imgWidth = imgSize[0];\r\n this.imgHeight = imgSize[1];\r\n }\r\n\r\n this.Guid = this.getGroupValue(this.data['Guid'], this.group);//this.data['Guid'];//this.getGroupValue(this.data['Guid'], this.group);\r\n this.FileName = this.getGroupValue(this.data['FileName'], this.group);//this.getGroupValue(this.data['FileName'], this.group);\r\n\r\n if(this.Guid != undefined && this.FileName != undefined){\r\n let blobfile = await this.attachmentService.getImageBlob(this.FileName, this.Guid);\r\n this.Image= await this.attachmentService.convertBlobToBase64(blobfile);\r\n }\r\n\r\n\r\n\r\n\r\n\r\n // this.subscription = this.group.zModel$\r\n // .asObservable()\r\n // .subscribe((zmodel: any) => {\r\n // this.onDataSourceChange(zmodel);\r\n // });\r\n }\r\n\r\n\r\n\r\n\r\n ngOnDestroy(): void {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n\r\n onDataSourceChange() {\r\n const value = this.getGroupValue(this.data.Value, this.group);\r\n const sourceUrl = this.getGroupValue(this.data.SourceUrl, this.group);\r\n\r\n if (value && sourceUrl) {\r\n // this.imgSrc =\r\n // this.imgSourceAvailable = true;\r\n return (\r\n sourceUrl +\r\n \"?id=\" +\r\n value +\r\n \"&size=\" +\r\n this.data.Size\r\n // + \"&r=\" + this.randomNumber\r\n );\r\n // console.log(\"image source: \", this.imgSrc);\r\n } else {\r\n // this.imgSourceAvailable = false;\r\n }\r\n }\r\n\r\n getGroupValue(value: string, group: any) {\r\n return ZComponentHelper.getGroupValue(value, group);\r\n }\r\n\r\n // getValue(data: string) {\r\n // let gArray: Array<string>;\r\n // if (data) {\r\n // gArray = data.split(\".\");\r\n\r\n // if (gArray.length === 3 && data.startsWith(\"group.zModel\")) {\r\n // return this.group.zModel[gArray[2]];\r\n // } else if (gArray.length === 2 && data.startsWith(\"group.\")) {\r\n // return this.group[gArray[1]];\r\n // }\r\n // }\r\n // return null;\r\n // }\r\n\r\n getImgStyle(): any { }\r\n\r\n onIconClick() {\r\n const iconClick = ZComponentHelper.getGroupEvalValue.call(this, this.data.OnItemClick, this.group);\r\n if (typeof iconClick === 'function') {\r\n return iconClick();\r\n }\r\n\r\n if (!iconClick) {\r\n console.warn('ZImg OnItemClick property is invalid: ', iconClick);\r\n return;\r\n }\r\n\r\n if (typeof iconClick !== 'function') {\r\n console.warn('ZImg OnItemClick property is not a function: ', iconClick);\r\n return;\r\n }\r\n }\r\n\r\n getIconName() {\r\n const iconName = ZComponentHelper.getGroupEvalValue.call(this, this.data.Icon, this.group);\r\n return iconName;\r\n }\r\n\r\n public setEnable = (status: boolean) => {\r\n this.componentProperties.isReadOnly = !status;\r\n }\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n }\r\n\r\n public setRequire = (status: boolean) => {\r\n this.componentProperties.isRequired = status;\r\n ZComponentHelper.changeValidator(status, this.group, this.data.Value, this.componentProperties, Validators.required);\r\n }\r\n}\r\n","<ion-item>\r\n <ion-label *ngIf=\"data.ShowLabel === undefined || data.ShowLabel\" position=\"stacked\">{{data.Label}} <ion-text\r\n *ngIf=\"(!!componentProperties.isRequiredField ? group[componentProperties.isRequiredField] : componentProperties.isRequired)\" color=\"danger\">*</ion-text>\r\n </ion-label>\r\n <img *ngIf=\"!!getGroupValue(data.Value, group)\" [src]=\"onDataSourceChange()\" [width]=\"imgWidth\" [height]=\"imgHeight\" style=\"border-radius: 50%; margin: 5px auto\" />\r\n <img *ngIf=\"this.Guid !==undefined && this.Guid !==FileName\" [src]=\"this.Image\" [width]=\"imgWidth\" [height]=\"imgHeight\" style=\"border-radius: 50%; margin: 5px auto\" />\r\n \r\n <div *ngIf=\"!getGroupValue(data.Value, group)\" (click)=\"onIconClick()\">\r\n <ion-icon name=\"getIconName()\" style=\"zoom:4.0;\">\r\n </ion-icon>\r\n </div>\r\n</ion-item>","/********** Angular **********/\r\nimport { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\nimport { Observable, Subscription } from 'rxjs';\r\nimport { delay, tap } from 'rxjs/operators';\r\nimport { LabelSettings } from '@progress/kendo-angular-progressbar';\r\nimport { State } from '@progress/kendo-data-query';\r\n\r\n/********** Component & Service **********/\r\nimport {\r\n AuthService, ZField, ZGroup, ResourceApiService, WebApiService, GridCaching,\r\n ZComponent, ZComponentHelper, ZComponentOutputEvent,\r\n ZGridStatePersistingService, ZGridColumnSettings, ZGridPostApiParams\r\n} from 'mmhglobal-zcore';\r\n\r\n\r\n@Component({\r\n selector: 'app-zkcard',\r\n templateUrl: './zkcard.component.html',\r\n styleUrls: ['./zkcard.component.scss'],\r\n})\r\nexport class ZkcardComponent implements ZComponent, OnInit, OnDestroy {\r\n\r\n constructor(\r\n private activatedRoute: ActivatedRoute,\r\n private resourceApiService: ResourceApiService,\r\n private authService: AuthService,\r\n private zGridStatePersistingService: ZGridStatePersistingService,\r\n private webapiService: WebApiService,\r\n private router: Router,\r\n ) { }\r\n\r\n data: ZField;\r\n group: ZGroup;\r\n form: FormGroup;\r\n zgrid: any = null;\r\n scrollViewCards: any = { data: [], total: 0 };\r\n responseData: any = { data: [], total: 0 };\r\n params: ZGridPostApiParams = {\r\n referId: null,\r\n pageNo: 0,\r\n pageSize: 20,\r\n sortColumnName: \"\",\r\n sortOrder: \"\",\r\n sortColumnNames: [],\r\n sortOrders: [],\r\n filterParams: [],\r\n parameters: \"\",\r\n filters: \"\",\r\n columns: \"\",\r\n grantType: 4\r\n };\r\n //gridData: GridDataResult;\r\n columns: any[];\r\n gridColumns: any[] = [];\r\n usableColumns: any[] = [];\r\n dataSource = null;\r\n state: State = {\r\n skip: 0,\r\n take: 10,\r\n };\r\n paginationApiPostUrl = null;\r\n resourceURL = null;\r\n subscription: Subscription;\r\n public filterItems: Array<string> = [];\r\n public progressStyles: { [key: string]: any } = {\r\n color: '',\r\n background: 'green'\r\n };\r\n public loadingPanelVisible = false;\r\n\r\n\r\n public label: LabelSettings = {\r\n visible: true,\r\n format: 'percent',\r\n position: 'center'\r\n };\r\n\r\n ngOnInit() {\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n\r\n this.dataSource = this.field.DataSource ? this.field.DataSource : null;\r\n this.filterItems = this.group['filterItems'];\r\n if (!this.dataSource) {\r\n this.resourceURL = ZComponentHelper.getGroupValue(\r\n this.field.ResourceURL,\r\n this.grp\r\n );\r\n // console.log(\"At zgrid.component (OnInit) resourceURL: \", resourceURL);\r\n if (!this.resourceURL) {\r\n // this.grid.loading = false;\r\n //if (this.zgridbinding.data.Name !== \"ActivityLogGrid\") {\r\n // console.warn(\r\n // \"No initialise for Field.ResourceURL: \",\r\n // this.field.ResourceURL\r\n // );\r\n //}\r\n return;\r\n }\r\n\r\n const array = this.resourceURL.split(\"/api/\");\r\n if (!!array[1]) {\r\n array[1] = \"Page\" + array[1];\r\n this.paginationApiPostUrl = array.join(\"/api/\");\r\n } else {\r\n const arr = this.resourceURL.split(\"/\");\r\n arr[arr.length - 2] = \"Page\" + arr[arr.length - 2];\r\n this.paginationApiPostUrl = arr.join(\"/\");\r\n }\r\n\r\n this.setFilterParamsByParentRefId();\r\n }\r\n\r\n this.generateGridColumns();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n\r\n getData() {\r\n if (this.zgrid) {\r\n this.zgrid.getDataBinding();\r\n }\r\n //if (this.data.SkipDirective) {\r\n // this.gridData = process(this.gData, this.state);\r\n // this.createFormControls();\r\n //}\r\n }\r\n\r\n generateGridColumns() {\r\n this.loadingPanelVisible = true;\r\n const columnFields$: Observable<any> = ZComponentHelper.getGroupValue(\r\n this.field.ColumnFields,\r\n this.grp\r\n );\r\n columnFields$\r\n .pipe(\r\n tap((data) => {\r\n\r\n const gridSetting = this.getGridSettings();\r\n const fieldName = this.field[\"FieldElementName\"];\r\n ZComponentHelper.getGridColumns(\r\n data,\r\n this.gridColumns,\r\n this.group,\r\n this.authService,\r\n fieldName,\r\n gridSetting,\r\n this.usableColumns\r\n );\r\n this.getFilterParamsColumns();\r\n this.getFilter();\r\n //this.getSorting();\r\n //this.getGrantType();\r\n //this.setHiddenColumn(gridSetting);\r\n //this.params.referId = this.getFieldReferenceId() || this.grp.referenceId || null;\r\n }),\r\n tap(() => {\r\n this.getDataBinding();\r\n })\r\n )\r\n .subscribe(() => {\r\n });\r\n }\r\n\r\n getDataBinding(): void {\r\n if (!this.dataSource) {\r\n this.param.pageSize = this.field.PageSize ?? 50;\r\n if (this.field.ExternalPagination) {\r\n // For POST method Page WebAPI\r\n this.webapiService\r\n .postApi(\r\n this.paginationApiPostUrl,\r\n this.param,\r\n null,\r\n null,\r\n null,\r\n null,\r\n true\r\n )\r\n .subscribe((data) => {\r\n delay(2500)\r\n this.responseData = { data: data.dataSet, total: data.totalCount };\r\n this.scrollViewCards = { data: data.dataSet, total: data.totalCount };\r\n if (data.dataSet.length > 0) {\r\n this.getRecordsSummary();\r\n }\r\n\r\n if (this.data.ResourceURLAlt) {\r\n this.getNewSurvey();\r\n }\r\n //this.aggregateHandling(data.dataSet);\r\n //this.grid.data = { data: data.dataSet, total: data.totalCount };\r\n //this.grid.loading = false;\r\n this.loadingPanelVisible = false;\r\n //this.notifyDataChange();\r\n });\r\n } else {\r\n // For GET method\r\n this.webapiService\r\n .getApi(this.resourceURL, null, null, null, null, null, true)\r\n .subscribe((data) => {\r\n let _data = null;\r\n let _totalCount = 0;\r\n\r\n if (data.dataSet) {\r\n _data = data.dataSet;\r\n _totalCount = data.totalCount;\r\n } else {\r\n _data = data;\r\n _totalCount = data.length;\r\n }\r\n this.loadingPanelVisible = false;\r\n //this.aggregateHandling(_data);\r\n //this.grid.data = { data: _data, total: _totalCount };\r\n //this.grid.pageSize = _totalCount;\r\n //this.grid.loading = false;\r\n //this.notifyDataChange();\r\n });\r\n }\r\n } else {\r\n const ds = ZComponentHelper.getGroupValue(\r\n this.field.DataSource,\r\n this.grp\r\n );\r\n }\r\n }\r\n\r\n getRecordsSummary() {\r\n let SurveyIds = [];\r\n\r\n this.responseData.data.forEach(value => {\r\n SurveyIds.push(value.Id);\r\n });\r\n\r\n this.webapiService\r\n .postApi(\r\n this.resourceApiService.getURL('ppsapsurveysummaryinfoURL'),\r\n SurveyIds,\r\n null,\r\n null,\r\n null,\r\n null,\r\n true\r\n )\r\n .subscribe(data => {\r\n this.responseData.data.forEach(value => {\r\n data.forEach(x => {\r\n if (x.SurveyId == value.Id) {\r\n value['value'] = Number.isNaN(((x.TotalTakenQuestions / x.TotalQuestions) * 100)) ? 0 : Math.round(((x.TotalTakenQuestions / x.TotalQuestions) * 100));\r\n // value['value'] = 100;\r\n }\r\n })\r\n });\r\n })\r\n }\r\n\r\n getNewSurvey() {\r\n let requestBody = {\r\n columns: \"PartnerMillId,SurveyTemplateId,WFS_StatusCode,WFS_StatusName\",\r\n pageSize: this.field.PageSize ?? 50,\r\n };\r\n\r\n this.webapiService\r\n .postApi(\r\n this.resourceApiService.getPageUrl(this.data.ResourceURLAlt),\r\n requestBody,\r\n null,\r\n null,\r\n null,\r\n null,\r\n true\r\n )\r\n .subscribe((data) => {\r\n data.dataSet.forEach(value => {\r\n value['value'] = 0;\r\n this.scrollViewCards.data.push(value);\r\n this.scrollViewCards.total += 1;\r\n\r\n //data.forEach(x => {\r\n // if (x.SurveyId == value.Id) {\r\n // value['value'] = Number.isNaN(((x.TotalTakenQuestions / x.TotalQuestions) * 100)) ? 0 : Math.round(((x.TotalTakenQuestions / x.TotalQuestions) * 100));\r\n // }\r\n //})\r\n });\r\n })\r\n }\r\n\r\n get field() {\r\n return this.data;\r\n }\r\n\r\n get grp() {\r\n return this.group;\r\n }\r\n\r\n get param(): ZGridPostApiParams {\r\n return this.params;\r\n }\r\n\r\n private getGridSettings(): ZGridColumnSettings[] {\r\n const _storageKey = 'ionic-field::' + this.authService.e1Token.userName;\r\n const _gridName = this.field.Name + '::' + this.field.Value;\r\n\r\n // Find any setting from localstorage..\r\n let _arrGridCaching: GridCaching[] = this.zGridStatePersistingService.get(_storageKey);\r\n if (_arrGridCaching && _arrGridCaching[0]) {\r\n const _gridCaching: GridCaching = _arrGridCaching.find(x => x['dataFormFields'] === _gridName);\r\n\r\n if (_gridCaching) {\r\n return _gridCaching.gridSettings.columnsConfig.sort((a, b) => a.orderIndex - b.orderIndex);\r\n }\r\n }\r\n }\r\n\r\n private setFilterParamsByParentRefId() {\r\n // Use field own referenceId if available\r\n const refId = this.getFieldReferenceId() || this.grp.referenceId;\r\n const refField = this.field.ReferenceField || this.grp.parentReferenceField;\r\n if (refId && this.grp.parentReferenceField) {\r\n const filterValue = {\r\n key: refField,\r\n ops: \"=\",\r\n value: refId,\r\n };\r\n // if (this.params.filterParams.find(x => x.key === filterValue.key) === undefined) {\r\n this.params.filterParams.push(filterValue);\r\n // }\r\n }\r\n }\r\n\r\n private getFieldReferenceId() {\r\n let fieldReferenceId = null;\r\n if (this.field.ReferenceId) {\r\n fieldReferenceId = ZComponentHelper.getGroupValue(\r\n this.field.ReferenceId,\r\n this.grp\r\n );\r\n }\r\n return fieldReferenceId;\r\n }\r\n\r\n private getFilterParamsColumns() {\r\n const colFields: Array<string> = [];\r\n this.gridColumns.forEach((field) => {\r\n if (field.valueExpr) {\r\n colFields.push(field.valueExpr + \" as \" + field.field);\r\n } else {\r\n colFields.push(field.field);\r\n }\r\n });\r\n\r\n if (colFields.length > 0) {\r\n if (colFields.indexOf(\"Id\") === -1) {\r\n colFields.push(\"Id\");\r\n }\r\n }\r\n\r\n let tmpGridColumn: any[] = [];\r\n tmpGridColumn.push(colFields.join(\",\"));\r\n if (this.usableColumns.length > 0) {\r\n tmpGridColumn.push(this.usableColumns.join(\",\"));\r\n }\r\n this.params.columns = tmpGridColumn.join(\",\");\r\n }\r\n\r\n start(event: any) {\r\n this.group;\r\n this.group.isLoading = true;\r\n if (event.WFS_StatusName == 'New') {\r\n let param = {\r\n UserId: this.group['PSAPUSERID'],\r\n SurveyMillId: event.Id\r\n }\r\n\r\n this.webapiService\r\n .postApi(\r\n this.resourceApiService.getURL('ppsapsurveycreateURL'),\r\n param,\r\n null,\r\n null,\r\n null,\r\n null,\r\n true\r\n )\r\n .subscribe((data) => {\r\n this.group.isLoading = false;\r\n if (this.data.EditClickURL) {\r\n // TODO:\r\n // debugger;\r\n // this.router.navigate([this.data.EditClickURL, dataItem.Id]);\r\n const colFields = ZComponentHelper.getGroupValue(this.data.ColumnFields, this.group);\r\n this.group.subject.next({\r\n type: \"zgrid-cellClick\",\r\n target: this.data.EditClickURL,\r\n data: event,\r\n columnFields$: colFields\r\n } as ZComponentOutputEvent);\r\n } else {\r\n this.router.navigate([this.group.editModelURL, data.Id, 'edit'], {\r\n relativeTo: this.activatedRoute\r\n });\r\n }\r\n\r\n });\r\n }\r\n else {\r\n this.group.isLoading = false;\r\n if (this.data.EditClickURL) {\r\n // TODO:\r\n // debugger;\r\n // this.router.navigate([this.data.EditClickURL, dataItem.Id]);\r\n const colFields = ZComponentHelper.getGroupValue(this.data.ColumnFields, this.group);\r\n this.group.subject.next({\r\n type: \"zgrid-cellClick\",\r\n target: this.data.EditClickURL,\r\n data: event,\r\n columnFields$: colFields\r\n } as ZComponentOutputEvent);\r\n } else {\r\n this.router.navigate([this.group.editModelURL, event.Id, 'edit'], {\r\n relativeTo: this.activatedRoute\r\n });\r\n }\r\n }\r\n }\r\n\r\n getFontAwesome(iconName: string) {\r\n return ZComponentHelper.getFontAwesome(iconName);\r\n }\r\n\r\n private getFilter() {\r\n if (this.params.filters && this.field.Filters) {\r\n this.params.filters = this.params.filters + \" && \" + this.field.Filters;\r\n } else if (!this.params.filters && this.field.Filters) {\r\n this.params.filters = this.field.Filters;\r\n }\r\n\r\n if (this.field.Filters && this.field.Filters.indexOf(\"group.\") !== -1) {\r\n const filterKeyValPairs = this.field.Filters.split(\" \");\r\n const grpValues = filterKeyValPairs.filter(\r\n (element) => element.trim().indexOf(\"group.\") !== -1\r\n );\r\n\r\n grpValues.forEach((val) => {\r\n const actualVal = ZComponentHelper.getGroupValue(val, this.grp);\r\n this.params.filters = this.params.filters.replace(val, actualVal);\r\n });\r\n }\r\n }\r\n\r\n valueChange(event: any) {\r\n if (event.length < 1) {\r\n this.scrollViewCards.data = this.responseData.data;\r\n this.scrollViewCards.total = this.responseData.total;\r\n return;\r\n }\r\n this.scrollViewCards.data = this.responseData.data.filter(x => event.includes(x.WFS_StatusName));\r\n this.scrollViewCards.total = this.responseData.data.filter(x => event.includes(x.WFS_StatusName)).length;\r\n }\r\n}\r\n","<!--<kendo-multiselect [data]=\"filterItems\" [value]=\"value\" [placeholder]=\"'Survey Status'\" [filterable]=\"true\"\r\n (valueChange)=\"valueChange($event)\"></kendo-multiselect>\r\n&nbsp;-->\r\n<div class=\"survey-card-list\">\r\n <div *ngFor=\"let card of scrollViewCards.data\">\r\n <!--<scrollview-card [card]=\"card\"></scrollview-card>-->\r\n <kendo-card class=\"custom-card-draft\" *ngIf=\"card.WFS_StatusName == 'Draft'\" [width]=\"'250px'\">\r\n <kendo-card-header class=\"k-hbox\">\r\n <div>\r\n <h1 kendoCardTitle>{{ card.SurveyTemplateName }}</h1>\r\n <p kendoCardSubtitle>Survey Doc No: {{card.DocumentNo}}</p>\r\n </div>\r\n </kendo-card-header>\r\n <kendo-card-body class=\"card-body\">\r\n Mill Name: {{card.PartnerMillName}}\r\n <br />\r\n Survey Status: {{card.WFS_StatusName}}\r\n </kendo-card-body>\r\n <kendo-card-footer>\r\n Survey Progression:\r\n <kendo-progressbar style=\"width: 210px; border-radius:10px\" [value]=\"card.value\" [label]=\"label\" [progressCssStyle]=\"progressStyles\">\r\n </kendo-progressbar>\r\n\r\n <kendo-card-actions class=\"k-hbox-actionBtn\" orientation=\"horizontal\" [layout]=\"'end'\">\r\n <button class=\"k-button k-navigation\"\r\n (click)=\"start(card)\">\r\n <div style=\"justify-content:space-between\">\r\n <span> Continue &nbsp;</span>\r\n <fa-icon [icon]=\"getFontAwesome('play')\"></fa-icon>\r\n </div>\r\n </button>\r\n </kendo-card-actions>\r\n </kendo-card-footer>\r\n </kendo-card>\r\n\r\n <kendo-card class=\"custom-card-submit\" *ngIf=\"card.WFS_StatusName == 'Submitted'\" [width]=\"'250px'\">\r\n <kendo-card-header class=\"k-hbox\">\r\n <div>\r\n <h1 kendoCardTitle>{{ card.SurveyTemplateName }}</h1>\r\n <p kendoCardSubtitle>Survey Doc No: {{card.DocumentNo}}</p>\r\n </div>\r\n </kendo-card-header>\r\n <kendo-card-body class=\"card-body\">\r\n Mill Name: {{card.PartnerMillName}}\r\n <br />\r\n Survey Status: {{card.WFS_StatusName}}\r\n </kendo-card-body>\r\n <kendo-card-footer>\r\n Survey Progression:\r\n <kendo-progressbar style=\"width: 210px; border-radius:10px\" [value]=\"card.value\" [label]=\"label\" [progressCssStyle]=\"progressStyles\">\r\n </kendo-progressbar>\r\n <kendo-card-actions class=\"k-hbox-actionBtn\" orientation=\"horizontal\" [layout]=\"'end'\">\r\n <button class=\"k-button k-navigation\"\r\n (click)=\"start(card)\">\r\n <div style=\"justify-content:space-between\">\r\n <span> View &nbsp;</span>\r\n <fa-icon [icon]=\"getFontAwesome('file-alt')\"></fa-icon>\r\n </div>\r\n </button>\r\n </kendo-card-actions>\r\n </kendo-card-footer>\r\n </kendo-card>\r\n\r\n <kendo-card class=\"custom-card-new\" *ngIf=\"card.WFS_StatusName == 'New'\" [width]=\"'250px'\">\r\n <kendo-card-header class=\"k-hbox\">\r\n <div>\r\n <h1 kendoCardTitle>{{ card.SurveyTemplateName }}</h1>\r\n <p kendoCardSubtitle>{{card.DocumentNo}}</p>\r\n </div>\r\n </kendo-card-header>\r\n <kendo-card-body class=\"card-body\">\r\n Mill Name: {{card.PartnerMillName}}\r\n <br />\r\n Survey Status: {{card.WFS_StatusName}}\r\n </kendo-card-body>\r\n <kendo-card-footer>\r\n Survey Progression: \r\n <kendo-progressbar style=\"width: 210px; border-radius:10px\" [value]=\"card.value\" [label]=\"label\" [progressCssStyle]=\"progressStyles\">\r\n </kendo-progressbar>\r\n <kendo-card-actions class=\"k-hbox-actionBtn\" orientation=\"horizontal\" [layout]=\"'end'\">\r\n <button class=\"k-button k-navigation\"\r\n (click)=\"start(card)\">\r\n <div style=\"justify-content:space-between\">\r\n <span> Start &nbsp;</span>\r\n <fa-icon [icon]=\"getFontAwesome('play')\"></fa-icon>\r\n </div>\r\n </button>\r\n </kendo-card-actions>\r\n </kendo-card-footer>\r\n </kendo-card>\r\n </div>\r\n</div>\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input } from \"@angular/core\";\r\nimport { FormGroup } from '@angular/forms';\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\n\r\n/********** Component & Service **********/\r\nimport { \r\n ZComponent, ZComponentHelper,\r\n ZField, ZGroup, ZComponentProperties \r\n} from 'mmhglobal-zcore';\r\n\r\n\r\n@Component({\r\n selector: 'app-zlabel',\r\n templateUrl: './zlabel.component.html',\r\n styleUrls: ['./zlabel.component.scss'],\r\n})\r\nexport class ZlabelComponent implements ZComponent, OnInit {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n\r\n componentProperties = new ZComponentProperties();\r\n\r\n labelText = \"\";\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n this.labelText = ZComponentHelper.getGroupValue(this.data.Label.toString(), this.group);\r\n }\r\n\r\n getReadOnlyValue() {\r\n const readOnlyValue = ZComponentHelper.getGroupEvalValue.call(this, this.data.ReadOnly);\r\n if (typeof readOnlyValue === 'function') {\r\n return readOnlyValue();\r\n }\r\n return readOnlyValue;\r\n }\r\n\r\n isVisible() {\r\n if (this.componentProperties.isVisible === null) {\r\n return ZComponentHelper.isVisible.call(this, this.data);\r\n } else {\r\n return this.componentProperties.isVisible;\r\n }\r\n }\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n }\r\n\r\n getIon_InvalidClass(form: FormGroup, data: ZField) {\r\n return ZComponentHelper.getIon_InvalidClass(form, data);\r\n }\r\n\r\n getClass(form: FormGroup, data: ZField) {\r\n return `${ZComponentHelper.getIon_InvalidClass(form, data)} ${data.DivClass}`;\r\n }\r\n\r\n public setData = (data: any) => {\r\n this.labelText = data;\r\n }\r\n}","<ion-item [formGroup]=\"form\" *ngIf=\"componentProperties.isVisible\" [ngClass]=\"getClass(form, data)\">\r\n <div class=\"ion-row\" style=\"justify-content: space-between; width: 100%\">\r\n <span style=\"flex: 1;\">\r\n <ion-label class=\"ion-text-wrap label\" Position=\"Fixed\" [color]=\"data.Color\">{{labelText}}</ion-label>\r\n </span>\r\n </div>\r\n</ion-item>\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input } from \"@angular/core\";\r\nimport { FormGroup } from '@angular/forms';\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\nimport { DialItemClickEvent, FabAlign, FabPositionMode } from '@progress/kendo-angular-buttons';\r\n\r\n/********** Component & Service **********/\r\nimport { \r\n FieldService, ResourceApiService, WebApiService, WorkflowService,\r\n ZComponent, ZComponentHelper, ZComponentOutputEvent, ZComponentProperties, ZField, ZGroup\r\n} from 'mmhglobal-zcore';\r\n\r\n\r\n@Component({\r\n selector: 'app-zmfb',\r\n templateUrl: './zmfb.component.html',\r\n styleUrls: ['./zmfb.component.scss'],\r\n})\r\nexport class ZmfbComponent implements ZComponent, OnInit {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n\r\n componentProperties = new ZComponentProperties();\r\n positionMode: FabPositionMode = 'fixed';\r\n bottomEnd: FabAlign = { vertical: 'bottom', horizontal: 'end' };\r\n items: Array<any> = [];\r\n dialOpen: boolean = false; \r\n isWorkflowButton: boolean = false;\r\n buttonColor: string = 'info';\r\n\r\n constructor(\r\n private fieldService: FieldService,\r\n private resourceApiService: ResourceApiService,\r\n private workflowService: WorkflowService\r\n ) { }\r\n\r\n/******************** Common function ********************/\r\n ngOnInit() {\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n\r\n this.data = this.getFirstzButton(this.group.fields);\r\n\r\n if (this.data) {\r\n if (!ZComponentHelper.isNullUndefinedEmpty(this.data.WorkflowCode)) {\r\n // handle as zWorkflowButton\r\n this.isWorkflowButton = true;\r\n this.loadWorkflowButton();\r\n }\r\n else {\r\n const field$ = this.fieldService.getFormFieldCode(\r\n this.data.Value,\r\n \"FormField\",\r\n null,\r\n null\r\n );\r\n\r\n\r\n try {\r\n field$.subscribe(data => {\r\n data.forEach((button: any) => {\r\n const label = this.getButtonLabel(button);\r\n\r\n const _isVisible = this.isBtnVisible(button.Visible);\r\n if (_isVisible) {\r\n this.items.push({\r\n label: label,\r\n icon: ZComponentHelper.getIcon(button.Icon),\r\n 'clickEvent': button.ClickEvent,\r\n 'click': (y) => {\r\n this.buttonClick(button);\r\n }\r\n });\r\n }\r\n });\r\n });\r\n } catch (error) {\r\n console.error(\"error: \", error);\r\n }\r\n }\r\n }\r\n }\r\n\r\n isMobileScreen() {\r\n const v = ZComponentHelper.isMobileScreen();\r\n return v;\r\n }\r\n\r\n isBtnVisible(fieldExpr) {\r\n if (fieldExpr !== false && !fieldExpr) {\r\n return true;\r\n }\r\n const v = ZComponentHelper.getGroupEvalValue.call(this, fieldExpr);\r\n return v;\r\n }\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n }\r\n \r\n /******************** zButton ********************/\r\n private getFirstzButton(data: any[]) {\r\n // data.forEach(d => {\r\n for (let i = 0; i < data.length - 1; i++) {\r\n if (data[i].Type === \"zbuttons\" || data[i].Type === \"zworkflowbuttons\") {\r\n return data[i];\r\n } else {\r\n if (Array.isArray(data[i].Value)) {\r\n this.getFirstzButton(data[i].Value);\r\n }\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n private getButtonLabel(button: any) { \r\n let buttonLabel = button.Label;\r\n if (!buttonLabel) {\r\n buttonLabel = button.Name;\r\n }\r\n\r\n let labelExpr = buttonLabel.match(/^{{.*}}$/gi);\r\n if (labelExpr) {\r\n labelExpr = labelExpr[0].slice(2, -2);\r\n const label = ZComponentHelper.getGroupValue(labelExpr, this.group);\r\n return label;\r\n } else {\r\n return buttonLabel;\r\n }\r\n }\r\n\r\n private buttonClick(button: any) { \r\n this.group.subject.next({\r\n type: \"buttonClick\",\r\n target: button.ClickEvent,\r\n data: null\r\n } as ZComponentOutputEvent);\r\n }\r\n\r\n public events: string[] = [];\r\n\r\n public onBlur(): void {\r\n //console.log('blur');\r\n }\r\n\r\n public onFocus(): void {\r\n if (this.isWorkflowButton) {\r\n this.loadWorkflowButton();\r\n }\r\n //console.log('focus');\r\n }\r\n\r\n public onOpen(e): void {\r\n this.dialOpen = true;\r\n console.log('open');\r\n }\r\n\r\n public onClose(e): void {\r\n this.dialOpen = false;\r\n console.log('close');\r\n }\r\n\r\n public onDialItemClick(e: DialItemClickEvent): void { \r\n e.item.click(); \r\n }\r\n\r\n /******************** zWorkflowButton ********************/\r\n // URL required\r\n // eslint-disable-next-line @typescript-eslint/naming-convention,no-underscore-dangle,id-blacklist,id-match\r\n e1wfs_wfcGetWorkflowButtonURL = this.resourceApiService.getURL(\"e1wfs_wfcGetWorkflowButtonURL\");\r\n // eslint-disable-next-line @typescript-eslint/naming-convention,no-underscore-dangle,id-blacklist,id-match\r\n e1wfs_wfc_getWorkflowInitialStatusURL = this.resourceApiService.getURL(\"e1wfs_wfc_getWorkflowInitialStatusURL\");\r\n // eslint-disable-next-line @typescript-eslint/naming-convention, no-underscore-dangle, id-blacklist, id-match\r\n e1wfs_wfc_getDocumentStatusURL = this.resourceApiService.getURL(\"e1wfs_wfc_getDocumentStatusURL\");\r\n\r\n\r\n private loadWorkflowButton() {\r\n // actionBtnList: Array<ZField>;\r\n this.items = [];\r\n\r\n // Get WFS_DocumentId if any.\r\n let documentId = null;\r\n if (this.group.zModel) {\r\n documentId = this.group.zModel['WFS_DocumentId'];\r\n }\r\n\r\n // Set the documentId to the service\r\n this.workflowService.appendWFS_DocumentsInfo(this.data.WorkflowCode, documentId);\r\n\r\n try {\r\n // Set param for field\r\n const field$ = this.workflowService.getWorkflowButtonsField(\r\n this.data.WorkflowCode,\r\n this.e1wfs_wfcGetWorkflowButtonURL,\r\n String(false)\r\n );\r\n\r\n field$.subscribe(data => {\r\n data.forEach((button: any) => {\r\n const label = this.getButtonLabel(button);\r\n const attributes = JSON.parse(button.Attributes);\r\n const buttonLabel = attributes.Label || label;\r\n const _isVisible = this.isBtnVisible(button.Visible);\r\n\r\n if (_isVisible) { \r\n this.items.push({\r\n label: buttonLabel,\r\n fieldAttribute: button,\r\n icon: ZComponentHelper.getIcon(attributes.Icon),\r\n 'clickEvent': button.ClickEvent,\r\n 'click': (y) => {\r\n this.workflowButtonClick(button);\r\n }\r\n });\r\n } \r\n //ZComponentHelper.collectWorkflowButton(this.group, this.data.WorkflowCode, buttonLabel, button, attributes, mappedInfo);\r\n });\r\n }); \r\n } catch (error) {\r\n console.error(\"error: \", error);\r\n }\r\n }\r\n\r\n workflowButtonClick(button: any) {\r\n // Type 1 == functional;\r\n // Type 2 == GOTO;\r\n const attributes = JSON.parse(button.Attributes);\r\n switch (button.TypeCode.toUpperCase()) {\r\n case \"FUNCTION\":\r\n console.log(\"Functional Button: \", button.Name);\r\n this.workflowService.functionalButton_OnClick(attributes, this.group);\r\n break;\r\n case \"GOTO\":\r\n console.log(\"GOTO Button: \", button.Name);\r\n this.workflowService.gotoButton_Onclick(button, this.data, attributes, this.group, false).subscribe(res => {\r\n this.loadWorkflowButton();\r\n if (res) {\r\n this.workflowService.triggerSendEmail(this.group).subscribe();\r\n }\r\n });\r\n break;\r\n default:\r\n console.log(\"Invalid Button Type. \", button.Name);\r\n break;\r\n }\r\n }\r\n}\r\n","<div class=\"zmfb-wrap\">\r\n <div class=\"k-overlay\" *ngIf=\"dialOpen\"></div>\r\n <kendo-floatingactionbutton icon=\"plus\"\r\n [themeColor]=\"buttonColor\"\r\n [positionMode]=\"positionMode\"\r\n [align]=\"bottomEnd\"\r\n [dialItems]=\"items\"\r\n (blur)=\"onBlur()\"\r\n (focus)=\"onFocus()\"\r\n (open)=\"onOpen($event)\"\r\n (close)=\"onClose($event)\"\r\n (dialItemClick)=\"onDialItemClick($event)\">\r\n <ng-template kendoDialItemTemplate let-item let-isFocused=\"isFocused\">\r\n <span class=\"k-fab-item-text\">\r\n <span>{{ item.label }}</span>\r\n </span>\r\n <kendo-avatar shape=\"circle\" [themeColor]=\"buttonColor\">\r\n <span class=\"k-icon k-i-{{ item.icon }}\"></span>\r\n </kendo-avatar> \r\n </ng-template>\r\n </kendo-floatingactionbutton>\r\n</div>\r\n","/********** Angular **********/\r\nimport { Component, Input, OnInit } from '@angular/core';\r\nimport { FormGroup, Validators } from '@angular/forms';\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\n// import * as $ from 'jquery';\r\ndeclare var $: any;\r\n\r\n/********** Component & Service **********/\r\nimport { \r\n ZComponent, ZComponentHelper, ZComponentOutputEvent,\r\n ZGroup, ZField, ZComponentProperties\r\n} from \"mmhglobal-zcore\";\r\n\r\n\r\n@Component({\r\n selector: 'app-znumeric',\r\n templateUrl: './znumeric.component.html',\r\n styleUrls: ['./znumeric.component.scss'],\r\n})\r\nexport class ZnumericComponent implements ZComponent, OnInit {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup; \r\n\r\n componentProperties = new ZComponentProperties();\r\n constructor() { }\r\n \r\n ngOnInit() {\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n\r\n if (this.data.RightAlign) {\r\n var thisComponent = this;\r\n setTimeout(function () {\r\n // only available when popup is shown, get the element by class \r\n let numericTextbox = $(\"#\" + thisComponent.data.Value).find(\"input\");\r\n if (numericTextbox.length > 0) {\r\n numericTextbox[0].style.textAlign = \"right\";\r\n }\r\n }, 750);\r\n }\r\n // FormatOption can be \"#.00\\\\%\" | \"$#.000\" | \"#\"\r\n }\r\n\r\n valueHandler() {\r\n const dataValue = this.form.get(this.data.Value).value;\r\n if (dataValue != \"\") {\r\n var value: number = +dataValue;//the \"+\" converts string to number\r\n return value;\r\n }\r\n }\r\n \r\n onChange(value: any) { \r\n ZComponentHelper.setModelValue(this.data.Value, value, this.group);\r\n this.group.subject.next({\r\n type: \"onChange\",\r\n target: this.data.OnChange,\r\n event,\r\n data: { value: value, field: this.data }\r\n } as ZComponentOutputEvent);\r\n }\r\n\r\n isMobileScreen() {\r\n const v = ZComponentHelper.isMobileScreen();\r\n return v;\r\n }\r\n\r\n public setEnable = (status: boolean) => {\r\n const fc = this.group.form.controls[this.data.Value];\r\n status ? fc.enable() : fc.disable();\r\n this.componentProperties.isReadOnly = !status;\r\n }\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n }\r\n\r\n public setRequire = (status: boolean) => {\r\n this.componentProperties.isRequired = status;\r\n ZComponentHelper.changeValidator(status, this.group, this.data.Value, this.componentProperties, Validators.required);\r\n }\r\n\r\n getIon_InvalidClass(form: FormGroup, data: ZField) {\r\n return ZComponentHelper.getIon_InvalidClass(form, data);\r\n }\r\n \r\n // Mobile View\r\n public getStyle(RightAlign: boolean) {\r\n let ngStyle = \"\";\r\n if (RightAlign) {\r\n ngStyle += \"right\";\r\n } else {\r\n ngStyle += \"left\";\r\n }\r\n return ngStyle;\r\n } \r\n\r\n public autocorrectHandler() {\r\n if (this.data.AutoCorrect) {\r\n return \"on\";\r\n }\r\n else {\r\n return \"off\";\r\n }\r\n }\r\n\r\n public inputmodeHandler() {\r\n return \"decimal\";\r\n }\r\n \r\n getKendoStyle() {\r\n const isReadOnly = (!!this.componentProperties.isReadOnlyField ? this.group[this.componentProperties.isReadOnlyField] : this.componentProperties.isReadOnly);\r\n \r\n if (isReadOnly) {\r\n return {\r\n \"margin\": \"7px 0 0 0\",\r\n \"width\": \"100%\",\r\n \"background-color\": \"#eaeaea\",\r\n \"color\": \"#545454\"\r\n };\r\n }\r\n else {\r\n return {\r\n \"margin\": \"7px 0 0 0\",\r\n \"width\": \"100%\"\r\n };\r\n }\r\n }\r\n}\r\n","<ion-item [formGroup]=\"form\" *ngIf=\"(!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\" [ngClass]=\"getIon_InvalidClass(form, data)\">\r\n <ion-label [attr.for]=\"data.Value\" *ngIf=\"data.ShowLabel === undefined || data.ShowLabel\" [position]=\"data.LabelPosition ? data.LabelPosition : 'stacked'\">\r\n {{data.Label}} <ion-text *ngIf=\"(!!componentProperties.isRequiredField ? group[componentProperties.isRequiredField] : componentProperties.isRequired)\" color=\"danger\">*</ion-text>\r\n </ion-label> \r\n <div class=\"ion-row\" style=\"justify-content: space-between; width: 100%\">\r\n <span style=\"flex: 1;\">\r\n <ion-input *ngIf=\"isMobileScreen()\"\r\n #znumericField\r\n [id]=\"data.Value\"\r\n type=\"number\"\r\n [autocorrect]=\"autocorrectHandler()\"\r\n [min]=\"data.MinValue\"\r\n [max]=\"data.MaxValue\"\r\n [step]=\"data.StepValue\"\r\n [value]=\"valueHandler()\"\r\n [inputmode]=\"inputmodeHandler()\"\r\n [formControlName]=\"data.Value\"\r\n [attr.disabled]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n [placeholder]=\"data.PlaceHolder\"\r\n [ngStyle]=\"{'text-align': getStyle(data.RightAlign ? true : false)}\">\r\n </ion-input>\r\n <!-- (ionChange)=\"onChange($event)\"\r\n (keyup)=\"handleMobileKeyUp($event)\"\r\n (ionInput)=\"handleMobileInput($event)\"-->\r\n <kendo-numerictextbox *ngIf=\"!isMobileScreen()\"\r\n [spinners]=\"data.ShowSpinners\"\r\n [autoCorrect]=\"data.AutoCorrect\"\r\n [min]=\"data.MinValue\"\r\n [max]=\"data.MaxValue\"\r\n [step]=\"data.StepValue\"\r\n [format]=\"data.FormatOptions\"\r\n [id]=\"data.Value\"\r\n [placeholder]=\"data.PlaceHolder\"\r\n [value]=\"valueHandler()\"\r\n [disabled]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n (valueChange)=\"onChange($event)\"\r\n [ngStyle]=\"getKendoStyle()\">\r\n </kendo-numerictextbox>\r\n </span> \r\n <app-uivalidationmessage [group]=\"group\" [data]=\"data\" [form]=\"form\"></app-uivalidationmessage>\r\n </div>\r\n</ion-item>","\r\n/********** Angular **********/\r\nimport { Component, OnInit, OnDestroy, Input, ViewChild } from \"@angular/core\";\r\nimport { FormGroup, Validators } from \"@angular/forms\";\r\n\r\n/********** Ionic **********/\r\nimport { IonicSelectableComponent } from \"ionic-selectable\";\r\n\r\n/********** Plugin **********/\r\nimport { Subscription, Observable, of } from \"rxjs\";\r\nimport { delay } from 'rxjs/operators';\r\n\r\n/********** Component & Service **********/\r\nimport {\r\n CacheService, ResourceApiService, WebApiService,\r\n ZComponent, ZComponentHelper, ZComponentOutputEvent,\r\n ZSelectMultipleTemplateParams, ZSelectPostApiParams,\r\n ZField, ZGroup, ZComponentProperties\r\n} from \"mmhglobal-zcore\";\r\n\r\n\r\n@Component({\r\n selector: \"app-zpostselectinput\",\r\n templateUrl: \"./zpostselectinput.component.html\",\r\n styleUrls: [\"./zpostselectinput.component.scss\"]\r\n})\r\nexport class ZpostselectinputComponent implements ZComponent, OnInit, OnDestroy {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n @ViewChild(\"selectComponent\", { static: true })\r\n selectComponent: IonicSelectableComponent;\r\n items: Array<any> = [];\r\n modelzData: Array<any>;\r\n infinitezData: Array<any> = [];\r\n infiniteSearchText = null;\r\n // subscription: Subscription;\r\n toggleSelectable = true;\r\n itemValueField: string = null;\r\n itemTextField: string = null;\r\n itemDataField: string = null;\r\n itemTemplate = \"{{item[itemTextField]}}\";\r\n infiniteScrollPageNo = 0;\r\n isLoading = true;\r\n componentProperties = new ZComponentProperties();\r\n private debounceSub: Subscription;\r\n dataInfo: {} = {\r\n \"itemsResourceURL\": \"\",\r\n \"optionFilters\": \"\",\r\n \"totalCount\": 0\r\n };\r\n\r\n constructor(\r\n private resourceApiService: ResourceApiService,\r\n private webApiService: WebApiService,\r\n private cacheService: CacheService\r\n ) { }\r\n\r\n ngOnDestroy(): void {\r\n // if (this.subscription) {\r\n // this.subscription.unsubscribe();\r\n // }\r\n if (this.debounceSub) {\r\n this.debounceSub.unsubscribe();\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.isLoading = true;\r\n\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n\r\n ZComponentHelper.setSelectMultipleTextValue(this.data.CCSelectOptions, this);\r\n\r\n const fieldValue = this.data.CCValue;\r\n let getzDataForzModel$: Observable<any>;\r\n if (this.data.HasInfiniteScroll && this.data.InfiniteScroll$\r\n && this.group.zModel && this.group.zModel[fieldValue]) {\r\n const recordId = this.group.zModel[fieldValue];\r\n getzDataForzModel$ = ZComponentHelper.getInfiniteData(null, '', this, recordId.toString());\r\n if (getzDataForzModel$) {\r\n getzDataForzModel$.subscribe((zdata) => {\r\n console.log(this.data.Name, ' - initial zData load: ', zdata);\r\n this.isLoading = false;\r\n });\r\n } else {\r\n this.isLoading = false;\r\n }\r\n if (!ZComponentHelper.isMobileScreen()) {\r\n this.handleFilter(null, true);\r\n }\r\n } else {\r\n if (this.data.CCOptionResourceURL) {\r\n this.lazyLoadDataOptions().subscribe(() => {\r\n this.isLoading = false;\r\n });\r\n } else {\r\n this.isLoading = false;\r\n }\r\n }\r\n\r\n }\r\n\r\n lazyLoadDataOptions(): Observable<any> {\r\n const resourceUrl = this.resourceApiService.getURL(\r\n this.data.CCOptionResourceURL\r\n );\r\n\r\n const filterParam = new ZSelectPostApiParams();\r\n filterParam.sorts = this.data.CCOptionSort;\r\n filterParam.columns = this.data.CCOptionColumns;\r\n filterParam.filters = this.data.CCOptionFilter;\r\n\r\n return ZComponentHelper.getDataOptions(\r\n this.data.CCOptionName,\r\n filterParam,\r\n this.group,\r\n resourceUrl,\r\n this.cacheService,\r\n this.webApiService,\r\n this.data['DisableCache']\r\n );\r\n }\r\n\r\n\r\n getItemsData() {\r\n if (this.data.HasInfiniteScroll) {\r\n return this.infinitezData;\r\n }\r\n const optionName = this.data.CCOptionName || this.itemDataField || 'group.zData.' + this.data.Name;\r\n if (Array.isArray(this.data.CCSelectOptions) && !this.group.zData[optionName.slice(12)]) {\r\n // return selectionOptions;\r\n // return this.data.SelectOptions;\r\n this.group.zData[optionName.slice(12)] = this.data.CCSelectOptions;\r\n this.itemDataField = optionName;\r\n }\r\n\r\n if (optionName.startsWith('zData.')) {\r\n // this.items = this.group.zData[optionName.slice(6)];\r\n return this.group.zData[optionName.slice(6)] || [];\r\n }\r\n if (optionName.startsWith('group.zData.')) {\r\n // this.items = this.group.zData[optionName.slice(12)];\r\n return this.group.zData[optionName.slice(12)] || [];\r\n }\r\n if (optionName.startsWith('group.')) {\r\n // this.items = this.group[optionName.slice(6)];\r\n return this.group[optionName.slice(6)] || [];\r\n }\r\n if (optionName) {\r\n // this.items = this.group[optionName];\r\n return this.group[optionName] || [];\r\n }\r\n console.warn(this.data.Name, ' - Invalid setting for OptionName: ', optionName);\r\n }\r\n\r\n private onChangeEvent(value: string) {\r\n if (this.data.HasInfiniteScroll && !!this.data.InfiniteScroll$) {\r\n const textField = this.itemTextField.toString();\r\n const valueField = this.itemValueField.toString();\r\n let zdataModel = [];\r\n if (value) {\r\n zdataModel = this.infinitezData.filter(x => x[valueField] === value);\r\n this.modelzData = zdataModel.slice();\r\n }\r\n if (this.itemDataField.startsWith('group.zData.')) {\r\n this.group.zData[this.itemDataField.slice(12)] = zdataModel;\r\n } else if (this.itemDataField.startsWith('group.')) {\r\n this.group[this.itemDataField.slice(6)] = zdataModel;\r\n }\r\n }\r\n\r\n this.group.subject.next({\r\n type: \"onChange\",\r\n target: this.data.CCOnChange,\r\n event,\r\n data: {value, field: this.data}\r\n } as ZComponentOutputEvent);\r\n }\r\n\r\n onValueChange(value: any) {\r\n // console.log(\"zselectmultiple (onValueChange): \", value);\r\n ZComponentHelper.setModelValue(this.data.CCValue, value, this.group);\r\n this.onChangeEvent(value);\r\n }\r\n\r\n onChange(event: { component: IonicSelectableComponent; value: any }) {\r\n console.log(\"zselectmultiple (onChange): \", event.value);\r\n ZComponentHelper.setModelValue(this.data.CCValue, event.value, this.group);\r\n const fc = this.form.controls[this.data.CCValue];\r\n this.handleClose();\r\n\r\n if (\r\n this.data.CCIsRequired &&\r\n (event.value === null || event.value.length === 0)\r\n ) {\r\n fc.setErrors({ required: true });\r\n } else {\r\n fc.setErrors(null);\r\n }\r\n\r\n this.onChangeEvent(event.value);\r\n }\r\n\r\n clearItems() {\r\n this.selectComponent.clear();\r\n this.selectComponent.close();\r\n }\r\n\r\n toggleItems() {\r\n this.selectComponent.toggleItems(this.toggleSelectable);\r\n this.toggleSelectable = !this.toggleSelectable;\r\n }\r\n\r\n confirmItems() {\r\n this.selectComponent.confirm();\r\n this.selectComponent.close();\r\n }\r\n\r\n onSearch(event: { component: IonicSelectableComponent; text: string }) {\r\n // console.log(\"At zselectmultiple.component (onSearch): \", event);\r\n const component = event.component;\r\n if (component) {\r\n component.startSearch();\r\n component.enableInfiniteScroll();\r\n }\r\n\r\n // if (this.subscription) {\r\n // this.subscription.unsubscribe();\r\n // }\r\n\r\n if (this.data.HasInfiniteScroll) {\r\n if (event.text !== null && event.text !== this.infiniteSearchText) {\r\n this.infiniteScrollPageNo = 0;\r\n }\r\n this.getInfiniteData(event);\r\n } else {\r\n this.infiniteScrollPageNo = 0;\r\n if (component) {\r\n component.items = [];\r\n }\r\n const params = {\r\n referId: null,\r\n pageNo: 0,\r\n pageSize: 15,\r\n sortColumnName: \"\",\r\n sortOrder: \"\",\r\n sortColumnNames: [],\r\n sortOrders: [],\r\n filterParams: [],\r\n parameters: \"\"\r\n };\r\n const searchFields = this.data.SearchFields\r\n ? this.data.SearchFields\r\n : this.itemTextField;\r\n const filteritems = ZComponentHelper.filterSearchItems(\r\n this.getItemsData(),\r\n // this.items,\r\n event.text,\r\n searchFields,\r\n params.pageNo,\r\n params.pageSize\r\n );\r\n if (component) {\r\n const items = component.items.concat(filteritems);\r\n component.items = items;\r\n component.endInfiniteScroll();\r\n component.endSearch();\r\n this.isLoading = false;\r\n }\r\n }\r\n }\r\n\r\n getInfiniteData(event: {\r\n component: IonicSelectableComponent;\r\n text: string;\r\n }) {\r\n ZComponentHelper.getInfiniteData(event.component, event.text, this);\r\n }\r\n\r\n handleFilter(value: any, justOneTime?: boolean) {\r\n if (this.debounceSub) {\r\n this.debounceSub.unsubscribe();\r\n }\r\n this.debounceSub = of([]).pipe(delay(500)).subscribe(() => {\r\n this.isLoading = true;\r\n this.onSearch({ component: null, text: value });\r\n // if (this.loadInfiniteDataSub) {\r\n // this.loadInfiniteDataSub.unsubscribe();\r\n // }\r\n // this.loadInfiniteDataSub = new Subject(false);\r\n // this.handleFilter(null);\r\n // interval(2000).pipe(takeUntil(this.loadInfiniteDataSub)).subscribe(() => {\r\n // this.onSearch({ component: null, text: value });\r\n // if (justOneTime) {\r\n // this.handleClose();\r\n // }\r\n // });\r\n });\r\n }\r\n\r\n handleOpen() {\r\n if (this.data.HasInfiniteScroll) {\r\n this.handleFilter(null);\r\n // // if (this.loadInfiniteDataSub) {\r\n // // this.loadInfiniteDataSub.unsubscribe();\r\n // // }\r\n // // this.loadInfiniteDataSub = new Subject();\r\n // // // this.handleFilter(null);\r\n // // interval(3000).pipe(takeUntil(this.loadInfiniteDataSub)).subscribe(() => {\r\n // this.handleFilter(null);\r\n // // });\r\n }\r\n }\r\n\r\n handleClose() {\r\n // if (this.data.HasInfiniteScroll) {\r\n // if (this.loadInfiniteDataSub) {\r\n // this.loadInfiniteDataSub.next(true);\r\n // // this.loadInfiniteDataSub.complete();\r\n // }\r\n // }\r\n }\r\n\r\n handleBlur() {\r\n // this.handleClose();\r\n }\r\n \r\n getItemTemplate(\r\n item: any,\r\n data: any,\r\n group: any,\r\n itemValueField: string,\r\n itemTextField: string\r\n ) {\r\n // ToDO: itemValueField and itemTextField\r\n if (this.data.ItemTemplate) {\r\n const getTemplateFunc = ZComponentHelper.getGroupEvalValue.call(\r\n this,\r\n this.data.ItemTemplate\r\n );\r\n return getTemplateFunc({\r\n item,\r\n data,\r\n group,\r\n itemValueField,\r\n itemTextField\r\n } as ZSelectMultipleTemplateParams);\r\n } else if (itemTextField) {\r\n return item[itemTextField];\r\n } else {\r\n // return item[itemTextField];\r\n return Object.values(item).join(\", \");\r\n }\r\n }\r\n\r\n getReadOnlyValue() {\r\n const readOnlyValue = ZComponentHelper.getGroupEvalValue.call(this, this.data.ReadOnly);\r\n if (typeof readOnlyValue === 'function') {\r\n const callFunc = readOnlyValue.bind(this.group.ctrlScope);\r\n return callFunc(this.group);\r\n }\r\n return readOnlyValue;\r\n }\r\n\r\n getGroupValue(value: string, group: ZGroup) {\r\n return ZComponentHelper.getGroupValue(value, group);\r\n }\r\n\r\n public setEnable = (status: boolean) => {\r\n const fc = this.group.form.controls[this.data.Value];\r\n status ? fc.enable() : fc.disable();\r\n this.componentProperties.isReadOnly = !status;\r\n }\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n }\r\n\r\n public setRequire = (status: boolean) => {\r\n this.componentProperties.isRequired = status;\r\n\r\n ZComponentHelper.changeValidator(status, this.group, this.data.Value, this.componentProperties, Validators.required);\r\n if (ZComponentHelper.hasCCField(this.data.Type)) {\r\n ZComponentHelper.changeValidator(status, this.group, this.data.CCValue, this.componentProperties, Validators.required);\r\n }\r\n }\r\n\r\n isMobileScreen() {\r\n const v = ZComponentHelper.isMobileScreen();\r\n return v;\r\n }\r\n\r\n getIon_InvalidClass(form: FormGroup, data: ZField) {\r\n if (!form) {\r\n //debugger;\r\n }\r\n return ZComponentHelper.getIon_InvalidClass(form, data);\r\n }\r\n\r\n onAddItem(event: any) {\r\n const f = ZComponentHelper.getGroupEvalValue.call(this, this.data.OnAddItem);\r\n if (typeof f === 'function') {\r\n const callFunc = f.bind(this.group.ctrlScope);\r\n return callFunc();\r\n }\r\n console.warn('Invalid declaration of OnAddItem: ', f);\r\n return;\r\n }\r\n}\r\n","<ion-item [ngClass]=\"getIon_InvalidClass(form, data)\" *ngIf=\"(!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible) && isMobileScreen()\">\r\n <ion-label *ngIf=\"data.ShowLabel === undefined || data.ShowLabel\" position=\"stacked\">\r\n {{data.Label}}\r\n <ion-text *ngIf=\"(!!componentProperties.isRequiredField ? group[componentProperties.isRequiredField] : componentProperties.isRequired)\" color=\"danger\">*</ion-text>\r\n </ion-label>\r\n <div class=\"ion-row\" style=\"justify-content: space-between; width: 100%\" *ngIf=\"!isLoading\">\r\n <span style=\"flex-basis: 35%;\">\r\n <ionic-selectable #selectComponent item-content\r\n [id]=\"data.CCValue\" headerColor=\"primary\" clearButtonText=\"Clear\"\r\n [canClear]=\"true\" searchFailText=\"Nothing found :(\" [canSearch]=\"!data['disable-search']\" \r\n [placeholder]=\"data.CCPlaceHolder\" [(ngModel)]=\"group.zModel[data.CCValue]\" \r\n [shouldFocusSearchbar]=\"!data['disable-search']\" [hasInfiniteScroll]=\"!!data.HasInfiniteScroll\"\r\n (onSearch)=\"onSearch($event)\" (onInfiniteScroll)=\"getInfiniteData($event)\" [isMultiple]=\"data.Multiple\"\r\n [isEnabled]=\"!(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\" [items]=\"getItemsData()\"\r\n [itemValueField]=\"itemValueField\" [itemTextField]=\"itemTextField\" [shouldStoreItemValue]=\"true\"\r\n [canAddItem]=\"!!data.OnAddItem\" (onAddItem)=\"onAddItem($event)\"\r\n (onChange)=\"onChange($event)\">\r\n\r\n <ng-template ionicSelectableItemIconTemplate let-item=\"item\" let-isItemSelected=\"isItemSelected\">\r\n <fa-icon slot=\"start\" class=\"isItemSelected\" [icon]=\"['far', isItemSelected ? 'check-circle': 'circle']\" size=\"sm\" [styles]=\"{'color': isItemSelected ? 'dodgerBlue' : 'lightGray'}\"></fa-icon>\r\n </ng-template>\r\n\r\n <ng-template ionicSelectableCloseButtonTemplate>\r\n <!-- <ion-icon name=\"close-circle\"></ion-icon> -->\r\n <fa-icon [icon]=\"'times-circle'\" size=\"md\"></fa-icon>\r\n </ng-template>\r\n\r\n <ng-template ionicSelectableTitleTemplate>\r\n {{data.Label}}\r\n <ion-text *ngIf=\"(!!componentProperties.isRequiredField ? group[componentProperties.isRequiredField] : componentProperties.isRequired)\" color=\"danger\">*</ion-text>\r\n </ng-template>\r\n\r\n <ng-template ionicSelectableItemTemplate let-item=\"item\">\r\n {{ getItemTemplate(item, data, group, itemValueField, itemTextField) }}\r\n <!-- <ng-template zselectitemelement [item]=\"item\"></ng-template> -->\r\n </ng-template>\r\n </ionic-selectable>\r\n </span>\r\n <span style=\"flex-basis: 60%; margin-left: 5px;\" [formGroup]=\"form\">\r\n <ion-input [id]=\"data.Value\" [placeholder]=\"data.PlaceHolder\" [type]=\"'text'\" [formControlName]=\"data.Value\"\r\n [readonly]=\"data.ReadOnly\" [inputmode]=\"'text'\"></ion-input>\r\n </span>\r\n <app-uivalidationmessage style=\"flex-basis: 5%;\" [group]=\"group\" [data]=\"data\" [form]=\"form\"></app-uivalidationmessage>\r\n </div>\r\n</ion-item>\r\n\r\n\r\n<ion-item [formGroup]=\"form\" *ngIf=\"(!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible) && !isMobileScreen()\" [ngClass]=\"getIon_InvalidClass(form, data)\">\r\n <ion-label [attr.for]=\"data.Value\" *ngIf=\"data.ShowLabel === undefined || data.ShowLabel\" position=\"stacked\">\r\n {{data.Label}} <ion-text *ngIf=\"(!!componentProperties.isRequiredField ? group[componentProperties.isRequiredField] : componentProperties.isRequired)\" color=\"danger\">*</ion-text>\r\n </ion-label>\r\n <div class=\"ion-row\" style=\"justify-content: space-between; width: 100%\">\r\n <span style=\"flex-basis: 35%;\">\r\n <kendo-combobox [id]=\"data.CCValue\"\r\n [data]=\"getItemsData()\" [valueField]=\"itemValueField\" [textField]=\"itemTextField\"\r\n [formControlName]=\"data.CCValue\" [valuePrimitive]=\"true\"\r\n [placeholder]=\"data.CCPlaceHolder\"\r\n (valueChange)=\"onValueChange($event)\"\r\n [filterable]=\"!!data.HasInfiniteScroll\"\r\n [readonly]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n (filterChange)=\"handleFilter($event)\"\r\n (open)=\"handleOpen()\"\r\n (close)=\"handleClose()\"\r\n (blur)=\"handleBlur()\"\r\n style=\"margin-top: 7px; width: 100%;\"\r\n [loading]=\"isLoading\">\r\n </kendo-combobox>\r\n </span>\r\n <span style=\"flex-basis: 60%; margin-left: 5px;\" [formGroup]=\"form\">\r\n <input kendoTextBox [id]=\"data.Value\" [placeholder]=\"data.PlaceHolder\" type=\"text\"\r\n [formControlName]=\"data.Value\" \r\n style=\"margin: 7px 0 0 0; width: 100%\"\r\n />\r\n </span>\r\n <app-uivalidationmessage style=\"flex-basis: 5%;\"\r\n [group]=\"group\" [data]=\"data\" [form]=\"form\">\r\n </app-uivalidationmessage>\r\n </div>\r\n</ion-item>","/********** Angular **********/\r\nimport { Component, Input, OnInit, ViewChild } from '@angular/core';\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\nimport { map, switchMap, tap } from 'rxjs/operators';\r\nimport { QueryBuilderConfig, QueryBuilderClassNames, QueryBuilderComponent } from 'angular2-query-builder';\r\n\r\n/********** Component & Service **********/\r\nimport {\r\n FieldService, ZComponentHelper, ZComponentProperties, ZField, ZGroup,\r\n FontAweSomeService, DefaultPageSettingParams, WebApiService, ResourceApiService\r\n} from 'mmhglobal-zcore';\r\nimport { of } from 'rxjs';\r\n\r\n\r\n@Component({\r\n selector: 'app-zquerybuilder',\r\n templateUrl: './zquerybuilder.component.html',\r\n styleUrls: ['./zquerybuilder.component.scss'],\r\n})\r\nexport class ZquerybuilderComponent implements OnInit {\r\n @ViewChild(QueryBuilderComponent, { static: false }) queryBuilder: QueryBuilderComponent;\r\n @Input() classNames: QueryBuilderClassNames;\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n\r\n //qbItems: Array<any> = [];\r\n qbItems = {};\r\n\r\n public componentProperties = new ZComponentProperties();\r\n public queryCtrl: any;\r\n public currentConfig: QueryBuilderConfig = {\r\n fields: {},\r\n allowEmptyRulesets: true\r\n };\r\n public allowRuleset: boolean = true;\r\n public allowCollapse: boolean= false;\r\n public persistValueOnFieldChange: boolean = false; \r\n public isDisabled: boolean = false;\r\n public rule: any;\r\n public value: any;\r\n private fields: any;\r\n\r\n constructor(\r\n private fieldService: FieldService,\r\n private resourceApiService: ResourceApiService,\r\n private webApiService: WebApiService\r\n ) {\r\n }\r\n \r\n ngOnInit() {\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n \r\n if (this.data['AllowCollapse'] === true) {\r\n this.allowCollapse = this.data['AllowCollapse'];\r\n }\r\n\r\n if (this.data['AllowRuleset'] === false) {\r\n this.allowRuleset = this.data['AllowRuleset'];\r\n }\r\n\r\n this.fields = this.fieldService.getFormFieldCode(this.data.Value, \"FormField\", null, null); \r\n \r\n try {\r\n this.fields.subscribe(data => { \r\n data.forEach((field: any) => {\r\n // Handle Options\r\n let optionList = [];\r\n\r\n if (field.Type == 'category' || field.Type == 'multiselect') {\r\n if (field['ValueOptions']) {\r\n field['ValueOptions'].forEach((valueOption: any) => {\r\n optionList.push({\r\n name: valueOption.Name,\r\n value: valueOption.Value\r\n });\r\n });\r\n }\r\n else {\r\n const selectOptions = field['SelectOptions'];\r\n\r\n const param = Object.assign({}, DefaultPageSettingParams);\r\n param.pageSize = selectOptions['PageSize'];\r\n param.columns = selectOptions['Columns'];\r\n param.filters += selectOptions['Filters'];\r\n param.sortColumnName = selectOptions['SortColumnName'];\r\n param.sortOrder = selectOptions['SortOrder'];\r\n\r\n this.webApiService\r\n .httpPost$(this.resourceApiService.getPageUrl(selectOptions['ResourceURL']), param)\r\n .pipe(\r\n map((resp) => {\r\n resp.dataSet.forEach((item: any) => {\r\n optionList.push({\r\n name: item[selectOptions['Name']],\r\n value: item[selectOptions['Value']]\r\n });\r\n })\r\n\r\n this.qbItems[field.Value]['options'] = optionList\r\n })\r\n ).subscribe();\r\n }\r\n }\r\n\r\n // Default rule to display\r\n this.qbItems[field.Value] = {\r\n name: field.Name,\r\n value: field.Value,\r\n type: field.Type,\r\n operatorList: field['Operators'],\r\n options: optionList,\r\n nullable: field['IsNullable'],\r\n defaultValue: field['DefaultValue'] ? field['DefaultValue'] : null\r\n } \r\n });\r\n \r\n this.currentConfig = {\r\n fields: this.qbItems,\r\n allowEmptyRulesets: true\r\n };\r\n \r\n });\r\n\r\n // append default query if any.\r\n if (this.data['DefaultQuery']) {\r\n let defaultQueryValueString = ZComponentHelper.getGroupEvalValue.call(\r\n this,\r\n this.data['DefaultQuery'],\r\n this.group\r\n ); \r\n\r\n if (defaultQueryValueString) {\r\n this.setQueryValue(defaultQueryValueString);\r\n }\r\n }\r\n } catch (error) {\r\n console.error(\"error: \", error);\r\n } \r\n }\r\n \r\n public completeRule(isUndo: boolean, queryValue: any) {\r\n this.isDisabled = isUndo; \r\n const qbResultValueName = this.data.Type + '_' + this.data.Value;\r\n this.group[qbResultValueName] = this.queryBuilder.value \r\n\r\n if (queryValue) {\r\n this.group[qbResultValueName] = queryValue;\r\n }\r\n\r\n if (!isUndo) {\r\n this.group[qbResultValueName] = [];\r\n }\r\n\r\n if (this.group.zModel) {\r\n ZComponentHelper.setModelValue(this.data.Value, this.group[qbResultValueName], this.group);\r\n }\r\n\r\n if (this.data['OnApplyClick'] && !queryValue) {\r\n let callFunc = ZComponentHelper.getGroupEvalValue.call(\r\n this,\r\n this.data['OnApplyClick'],\r\n this.group\r\n );\r\n const newFunc = callFunc.bind(this);\r\n newFunc(this.group, this.group[qbResultValueName], this.fields);\r\n } \r\n }\r\n \r\n public bootstrapClassNames: QueryBuilderClassNames = {\r\n arrowIcon: 'fa fa-chevron-right px-2',\r\n button: 'btn',\r\n buttonGroup: 'btn-group',\r\n rightAlign: 'order-12 ml-auto',\r\n switchRow: 'd-flex px-2',\r\n switchGroup: 'd-flex align-items-center',\r\n switchRadio: 'custom-control-input',\r\n switchLabel: 'custom-control-label',\r\n switchControl: 'custom-control custom-radio custom-control-inline',\r\n row: 'row p-2 m-1',\r\n rule: 'border',\r\n ruleSet: 'border',\r\n invalidRuleSet: 'alert alert-danger',\r\n emptyWarning: 'text-danger mx-auto',\r\n operatorControl: 'form-control',\r\n operatorControlSize: 'col-auto pr-0',\r\n fieldControl: 'form-control',\r\n fieldControlSize: 'col-auto pr-0',\r\n entityControl: 'form-control',\r\n entityControlSize: 'col-auto pr-0',\r\n inputControl: 'form-control',\r\n inputControlSize: 'col-auto'\r\n };\r\n\r\n public conditionList: Array<string> = [\r\n \"AND\",\r\n \"OR\"\r\n ];\r\n\r\n public getOperators(defaultOperatorList: any, rule: any) {\r\n return this.qbItems[rule.field].operatorList ? this.qbItems[rule.field].operatorList : defaultOperatorList;\r\n }\r\n \r\n public getOptionList(optionsList: any, rule: any) {\r\n return this.qbItems[rule.field].options ? this.qbItems[rule.field].options : optionsList;\r\n }\r\n\r\n public setQueryValue(queryValueString: string) {\r\n if (queryValueString) {\r\n const defaultQueryValueJson = toQueryRule(JSON.parse(queryValueString));\r\n this.queryCtrl = defaultQueryValueJson;\r\n\r\n // default lock the query builder if there default query\r\n this.completeRule(true, defaultQueryValueJson);\r\n }\r\n }\r\n}\r\n\r\nexport interface QueryRule {\r\n condition: string;\r\n rules: QueryRule[];\r\n field: string;\r\n type: string;\r\n operator: string;\r\n value: string[];\r\n}\r\n\r\nexport function toQueryRule(queryBuilderModel: any): QueryRule {\r\n let rule = <QueryRule>{};\r\n if (queryBuilderModel.condition) {\r\n rule.condition = queryBuilderModel.condition;\r\n rule.rules = queryBuilderModel.rules.map(q => toQueryRule(q));\r\n } else {\r\n rule.field = queryBuilderModel.field;\r\n rule.type = queryBuilderModel.type;\r\n rule.operator = queryBuilderModel.operator;\r\n rule.value = queryBuilderModel.value instanceof Array\r\n ? queryBuilderModel.type === 'date' ? new Date(queryBuilderModel.value) : queryBuilderModel.value\r\n : [queryBuilderModel.type === 'date' ? new Date(queryBuilderModel.value) : queryBuilderModel.value];\r\n }\r\n return rule;\r\n}\r\n","<ion-item *ngIf=\"(!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\">\r\n <ion-label [attr.for]=\"data.Value\"\r\n *ngIf=\"data.ShowLabel === undefined || data.ShowLabel\"\r\n [position]=\"data.LabelPosition ? data.LabelPosition : 'stacked'\">\r\n {{data.Label}}\r\n <ion-text *ngIf=\"(!!componentProperties.isRequiredField ? group[componentProperties.isRequiredField] : componentProperties.isRequired)\"\r\n color=\"danger\">*</ion-text>\r\n </ion-label>\r\n <div class=\"qbcontainer\">\r\n <query-builder [(ngModel)]='queryCtrl'\r\n [(config)]='currentConfig'\r\n [allowRuleset]='allowRuleset'\r\n [allowCollapse]='allowCollapse'\r\n [persistValueOnFieldChange]='persistValueOnFieldChange'>\r\n <!--AND OR Swtich-->\r\n <ng-container *querySwitchGroup=\"let ruleset; let onChange=onChange\">\r\n <kendo-dropdownlist [(ngModel)]=\"ruleset.condition\"\r\n (ngModelChange)=\"onChange($event, rule)\"\r\n [data]=\"conditionList\"\r\n [disabled]=\"isDisabled\"\r\n style=\"text-transform: uppercase;\">\r\n </kendo-dropdownlist>\r\n </ng-container>\r\n <!--Rule RuleSet Remove Rule Set Button-->\r\n <ng-container *queryButtonGroup=\"let ruleset; let addRule=addRule; let addRuleSet=addRuleSet; let removeRuleSet=removeRuleSet\">\r\n <!--Add Rule Button-->\r\n <ion-button fill=\"outline\"\r\n size=\"small\"\r\n strong=\"false\"\r\n (click)=\"addRule()\"\r\n [disabled]=\"isDisabled\"\r\n class=\"buttonadd\">\r\n <fa-icon [icon]=\"'plus'\" style=\"padding-right: 5px;\"></fa-icon>\r\n <span class=\"ion-text-capitalize\">Add</span>\r\n </ion-button>\r\n <!--Add RuleSet Button-->\r\n <ion-button *ngIf=\"addRuleSet\"\r\n fill=\"outline\"\r\n size=\"small\"\r\n strong=\"false\"\r\n (click)=\"addRuleSet()\"\r\n [disabled]=\"isDisabled\"\r\n class=\"buttonadd\">\r\n <fa-icon [icon]=\"'plus'\" style=\"padding-right: 5px;\"></fa-icon>\r\n <span class=\"ion-text-capitalize\">Add Rule Set</span>\r\n </ion-button>\r\n <!--Remove RuleSet Button-->\r\n <ion-button *ngIf=\"removeRuleSet\"\r\n fill=\"outline\"\r\n size=\"small\"\r\n strong=\"false\"\r\n (click)=\"removeRuleSet()\"\r\n [disabled]=\"isDisabled\"\r\n class=\"buttonremove\">\r\n <fa-icon [icon]=\"'times'\" style=\"padding-right: 5px;\"></fa-icon>\r\n <span class=\"ion-text-capitalize\">Remove Rule Set</span>\r\n </ion-button>\r\n </ng-container>\r\n <!--Remove Rule Button-->\r\n <ng-container *queryRemoveButton=\"let rule; let removeRule=removeRule\">\r\n <ion-button fill=\"outline\"\r\n size=\"small\"\r\n strong=\"false\"\r\n (click)=\"removeRule(rule)\"\r\n [disabled]=\"isDisabled\"\r\n class=\"buttonremove\">\r\n <fa-icon [icon]=\"'minus'\"\r\n style=\"padding-right: 5px;\"></fa-icon>\r\n <span class=\"ion-text-capitalize\">Remove Rule</span>\r\n </ion-button>\r\n </ng-container>\r\n <!--Name dropdown-->\r\n <ng-container *queryField=\"let rule; let fields=fields; let onChange=onChange; let getFields=getFields\">\r\n <kendo-dropdownlist [(ngModel)]=\"rule.field\"\r\n (ngModelChange)=\"onChange($event, rule)\"\r\n [data]=\"getFields(rule.entity)\"\r\n textField=\"name\"\r\n valueField=\"value\"\r\n [value]=\"value\"\r\n [valuePrimitive]=\"true\"\r\n [disabled]=\"isDisabled\"\r\n style=\"padding-right:10px;\">\r\n </kendo-dropdownlist>\r\n </ng-container>\r\n <!--Operator dropdown-->\r\n <ng-container *queryOperator=\"let rule; let operators=operators; let onChange=onChange\" style=\"padding:10px\">\r\n <kendo-dropdownlist [(ngModel)]=\"rule.operator\"\r\n (ngModelChange)=\"onChange($event, rule)\"\r\n [data]=\"getOperators(operators, rule)\"\r\n textField=\"name\"\r\n valueField=\"value\"\r\n [value]=\"value\"\r\n [valuePrimitive]=\"true\"\r\n [disabled]=\"isDisabled\"\r\n style=\"padding-right:10px;\">\r\n </kendo-dropdownlist>\r\n </ng-container>\r\n <!--Text Field-->\r\n <ng-container *queryInput=\"let rule; let field=field; type: 'string'; let onChange=onChange\">\r\n <kendo-textbox [(ngModel)]=\"rule.value\"\r\n (ngModelChange)=\"onChange()\"\r\n [clearButton]=\"true\"\r\n [disabled]=\"isDisabled\"\r\n class=\"customTextbox\">\r\n </kendo-textbox>\r\n </ng-container>\r\n <!--TextArea Field-->\r\n <ng-container *queryInput=\"let rule; type: 'textarea'; let onChange=onChange\">\r\n <kendo-textarea [(ngModel)]=\"rule.value\"\r\n (ngModelChange)=\"onChange()\"\r\n [rows]=\"5\"\r\n [cols]=\"40\"\r\n resizable=\"none\"\r\n [disabled]=\"isDisabled\">\r\n </kendo-textarea>\r\n </ng-container>\r\n <!--Number Field-->\r\n <ng-container *queryInput=\"let rule; let field=field; type: 'number'; let onChange=onChange\">\r\n <kendo-numerictextbox [(ngModel)]=\"rule.value\"\r\n (ngModelChange)=\"onChange()\"\r\n [value]=\"value\"\r\n [decimals]=\"0\"\r\n [disabled]=\"isDisabled\">\r\n </kendo-numerictextbox>\r\n </ng-container>\r\n <!--Date Field-->\r\n <ng-container *queryInput=\"let rule; type: 'date'; let onChange=onChange\">\r\n <kendo-datepicker [(ngModel)]=\"rule.value\"\r\n (ngModelChange)=\"onChange()\"\r\n calendarType=\"classic\"\r\n [value]=\"value\"\r\n [disabled]=\"isDisabled\">\r\n </kendo-datepicker>\r\n </ng-container>\r\n <!--Category Field-->\r\n <ng-container *queryInput=\"let rule; let options=options; type: 'category'; let onChange=onChange\">\r\n <kendo-dropdownlist [(ngModel)]=\"rule.value\"\r\n (ngModelChange)=\"onChange()\"\r\n [data]=\"getOptionList(options, rule)\"\r\n textField=\"name\"\r\n valueField=\"value\"\r\n [value]=\"value\"\r\n [valuePrimitive]=\"true\"\r\n [disabled]=\"isDisabled\">\r\n </kendo-dropdownlist>\r\n </ng-container>\r\n <!--DropDown MultiSelect Field-->\r\n <ng-container *queryInput=\"let rule; let options=options; type: 'multiselect'; let onChange=onChange\">\r\n <kendo-multiselect [(ngModel)]=\"rule.value\"\r\n (ngModelChange)=\"onChange()\"\r\n [data]=\"getOptionList(options, rule)\"\r\n textField=\"name\"\r\n valueField=\"value\"\r\n [value]=\"value\"\r\n [valuePrimitive]=\"true\"\r\n [autoClose]=\"false\"\r\n style=\"width:30%\"\r\n [disabled]=\"isDisabled\">\r\n </kendo-multiselect>\r\n </ng-container>\r\n <!--Boolean Field-->\r\n <ng-container *queryInput=\"let rule; type: 'boolean'; let onChange=onChange\">\r\n <input type=\"checkbox\"\r\n [(ngModel)]=\"rule.value\"\r\n (ngModelChange)=\"onChange()\"\r\n class=\"customCheckBox\"\r\n [disabled]=\"isDisabled\"\r\n kendoCheckBox />\r\n </ng-container>\r\n </query-builder>\r\n <br>\r\n <div *ngIf=\"data.ShowQueryResult\">\r\n <div>\r\n <label>Query Result</label>\r\n </div>\r\n <textarea class=\"output\"\r\n resizable=\"none\"\r\n [rows]=\"10\"\r\n [cols]=\"40\">{{queryCtrl | json}}</textarea>\r\n <br>\r\n </div>\r\n <div style=\"width:100%\" slot=\"end\">\r\n <ion-button *ngIf=\"!isDisabled\"\r\n strong=\"false\"\r\n (click)=\"completeRule(true, null)\"\r\n class=\"buttonapply\">\r\n <fa-icon [icon]=\"'save'\" style=\"padding-right: 5px;\"></fa-icon>\r\n <span class=\"ion-text-capitalize\">Apply</span>\r\n </ion-button>\r\n <ion-button *ngIf=\"isDisabled\"\r\n strong=\"false\"\r\n (click)=\"completeRule(false, null)\"\r\n class=\"buttonapply\">\r\n <fa-icon [icon]=\"'save'\" style=\"padding-right: 5px;\"></fa-icon>\r\n <span class=\"ion-text-capitalize\">Undo Apply</span>\r\n </ion-button>\r\n </div>\r\n </div>\r\n</ion-item>\r\n","/********** Angular **********/\r\nimport { Component, OnInit, ViewChild, Input, ViewEncapsulation } from \"@angular/core\";\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\nimport { ExportOptions } from \"./zreport.config\";\r\nimport { TelerikReportViewerComponent } from \"@progress/telerik-angular-report-viewer\";\r\n\r\n/********** Component & Service **********/\r\nimport {\r\n ResourceApiService, ZField, ZGroup, ZComponentProperties, ZComponentHelper\r\n} from \"mmhglobal-zcore\";\r\n\r\n\r\n// import * as $ from 'jquery';\r\ndeclare var $: any;\r\n\r\n@Component({\r\n selector: \"app-zreport\",\r\n templateUrl: \"./zreport.component.html\",\r\n styleUrls: [\"./zreport.component.scss\"],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class ZreportComponent implements OnInit {\r\n constructor(private resourceApiService: ResourceApiService) { }\r\n\r\n @ViewChild(\"ReportViewer\")\r\n viewer: TelerikReportViewerComponent;\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n\r\n componentProperties = new ZComponentProperties();\r\n\r\n title = \"Report Viewer\";\r\n viewerContainerStyle = {\r\n position: \"relative\",\r\n width: \"100%\",\r\n height: \"800px\",\r\n [\"font-family\"]: \"ms sans serif\"\r\n };\r\n\r\n resourceURL = null;\r\n ReportSource = null;\r\n\r\n isVisible = true;\r\n\r\n paramToResizeReportViewer = false;\r\n public resizeReportView: Function;\r\n\r\n ngOnInit() {\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n this.resizeReportView = this.onPageReady.bind(this);\r\n\r\n this.resourceURL = this.resourceApiService.getURL(this.data.ResourceURL);\r\n\r\n if (!this.resourceURL) {\r\n this.resourceURL = this.resourceApiService.getURL('e1wfs_wfm_workflowMasterReportURL');\r\n //this.isVisible = false;\r\n }\r\n\r\n if (!!this.data.IsAutoGenerateReport) {\r\n this.ReportSource = ZComponentHelper.getGroupEvalValue.call(this, this.data.ReportSource);\r\n }\r\n }\r\n\r\n public generateReport() {\r\n const rs = this.group[\"ReportSource\"];\r\n this.resourceURL = rs['url'];\r\n this.viewer.setReportSource(rs);\r\n this.viewer.refreshReport();\r\n\r\n if (this.data['AutoResize']) {\r\n this.paramToResizeReportViewer = true;\r\n } else {\r\n this.paramToResizeReportViewer = false;\r\n }\r\n\r\n const thisComponent = this;\r\n const exportButton = $(\"#trv-main-menu-export-command\");\r\n exportButton.on(\"mouseover\", function () {\r\n // trigger to hide list, sometime element not loaded yet.\r\n setTimeout(function () {\r\n // ExportOptions.instance.exportOption(thisComponent);\r\n // ExportOptions.instance.hideUnwantedOptions();\r\n }, 300);\r\n });\r\n }\r\n\r\n ready(thisComponent: any) {\r\n // console.log(\"ready\");\r\n // ExportOptions.init(thisComponent);\r\n }\r\n\r\n viewerToolTipOpening(args: any) {\r\n // console.log(\"viewerToolTipOpening \" + args.toolTip.text);\r\n }\r\n\r\n onRenderingEnd(e, args): void {\r\n // Occurs after rendering the report.\r\n // ExportOptions.instance.update(e.target.reportSource().report);\r\n }\r\n\r\n exportBegin(args: any) {\r\n }\r\n\r\n exportEnd(args: any) {\r\n }\r\n\r\n onPageReady(e: any, args:any) {\r\n if (this.paramToResizeReportViewer) {\r\n var pageHeight = $(\".trv-pages-area .trv-page-wrapper\").height() + $(\".trv-nav\").outerHeight() + 20, // Calculate the report page height\r\n viewer = $(\"#reportViewer1\"),\r\n viewerHeight = viewer.height();\r\n\r\n if (viewerHeight !== pageHeight ) {\r\n viewer.height(pageHeight);\r\n var documentMapSplitter = $(\".trv-document-map-splitter\").data(\"kendoSplitter\");\r\n if (documentMapSplitter !==undefined) {\r\n documentMapSplitter.resize(true);\r\n }\r\n var parameterSplitter = $(\".trv-parameters-splitter\").data(\"kendoSplitter\");\r\n if (parameterSplitter !==undefined) {\r\n parameterSplitter.resize(true);\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","import { Component, OnInit, Input, ChangeDetectorRef, AfterViewInit } from \"@angular/core\";\r\nimport {\r\n ZComponent, ZComponentHelper, ZComponentOutputEvent,\r\n ZGroup, ZField, ZComponentProperties, StorageSessionService, AuthService\r\n} from \"mmhglobal-zcore\";\r\nimport { FormGroup, Validators } from \"@angular/forms\";\r\nimport {\r\n DateChangeEvent,\r\n SlotClickEvent,\r\n EventClickEvent,\r\n EventStyleArgs,\r\n SlotClassArgs\r\n} from \"@progress/kendo-angular-scheduler\";\r\nimport { of } from 'rxjs';\r\nimport { delay, take } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: \"app-zscheduler\",\r\n templateUrl: \"./zscheduler.component.html\",\r\n styleUrls: [\"./zscheduler.component.scss\"]\r\n})\r\nexport class ZschedulerComponent implements ZComponent, OnInit, AfterViewInit {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n @Input() ngStyle: { [klass: string]: any; }\r\n\r\n\r\n isLoading = true;\r\n events: any[] = [];\r\n selectedDate = new Date();\r\n local = {\r\n inProgress: false,\r\n ctrlScope: null\r\n };\r\n // selectedDate: Date = new Date();\r\n selectedViewIndex = 3;\r\n componentProperties = new ZComponentProperties();\r\n\r\n // eventFields: SchedulerModelFields = {\r\n // id: \"Id\",\r\n // title: \"Objective\",\r\n // description: \"Description\",\r\n // // startTimezone: 'StartTimezone',\r\n // start: \"Date_UTC\",\r\n // end: \"End_UTC\"\r\n // // endTimezone: 'EndTimezone',\r\n // // isAllDay: 'IsAllDay',\r\n // // recurrenceRule: 'RecurrenceRule',\r\n // // recurrenceId: 'RecurrenceID',\r\n // // recurrenceExceptions: 'RecurrenceException'\r\n // };\r\n\r\n constructor(\r\n private changeDetector: ChangeDetectorRef,\r\n private storageService: StorageSessionService,\r\n private authService: AuthService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n this.local.ctrlScope = this.group.ctrlScope;\r\n //this.selectedViewIndex = this.data.SelectedViewIndex || this.selectedViewIndex;\r\n //\r\n if (this.data['SaveFilter']) {\r\n this.setSchedulerSessionKey(this.group);\r\n this.getSchedulerSessionFilter(this.group);\r\n }\r\n this.getItems();\r\n }\r\n\r\n ngAfterViewInit() {\r\n //this.selectedViewIndex = this.data.SelectedViewIndex || this.selectedViewIndex;\r\n }\r\n\r\n getEventStyles = (args: EventStyleArgs) => {\r\n\r\n if(args && args.event && args.event.dataItem)\r\n {\r\n const BGColor=args.event.dataItem[\"backgroundColor\"];\r\n const BorderColor=args.event.dataItem[\"borderColor\"];\r\n\r\n if (BGColor && BorderColor) \r\n { return { backgroundColor: BGColor, bordercolor: BorderColor, color: \"white\" }; }\r\n else {\r\n return { backgroundColor: \"#ff7c73\", bordercolor: \"#ff7c73\" , color: \"white\" };\r\n }\r\n\r\n }\r\n }\r\n\r\n public getSlotClass = (args: SlotClassArgs) => {\r\n const hour = args.start.getHours();\r\n args.resources = this.events\r\n return {\r\n args\r\n };\r\n }\r\n\r\n getItems() {\r\n // if (this.isLoading) {\r\n // return [];\r\n // }\r\n // debugger;\r\n const v = this.data.Value;\r\n if (Array.isArray(v)) {\r\n return v;\r\n } else {\r\n const evalValue = ZComponentHelper.getGroupEvalValue.call(this, v);\r\n // debugger;\r\n if (evalValue) {\r\n this.events = evalValue;\r\n if (this.events) {\r\n this.isLoading = false;\r\n }\r\n } else {\r\n console.warn(\"Invalid field.Value setting \", this.data.Value);\r\n return [];\r\n }\r\n }\r\n }\r\n\r\n onDateChange(args: DateChangeEvent): void {\r\n\r\n // this.events = generateEvents(args.dateRange.start, 7);\r\n\r\n if (this.local.inProgress) {\r\n return;\r\n }\r\n\r\n //Set session values\r\n this.group[\"selectedDate\"] = args.selectedDate;\r\n\r\n console.log(\"zschedule component date-change selection: \", args.dateRange);\r\n // this.local.selectedDate = args.dateRange.start;\r\n this.group.subject.next({\r\n type: \"zscheduler-onDateChange\",\r\n target: this.data.CalendarOptions + \".dateClick\",\r\n event: args.dateRange\r\n } as ZComponentOutputEvent);\r\n // We're setting the events after the current change detection cycle\r\n // has completed, hence we need to trigger a new one.\r\n this.changeDetector.detectChanges();\r\n\r\n }\r\n\r\n onSlotDblClick({ sender, start, end, isAllDay }: SlotClickEvent): void {\r\n console.log(\r\n \"zscheduler component slot-double-click: \",\r\n sender,\r\n start,\r\n end,\r\n isAllDay\r\n );\r\n\r\n if (\r\n sender.selectedView.name === \"month\" ||\r\n sender.selectedView.name === \"week\"\r\n ) {\r\n this.local.inProgress = true;\r\n this.selectedViewIndex = 3;\r\n this.selectedDate = start;\r\n of([]).pipe(take(1), delay(1000)).subscribe(() => this.local.inProgress = false);\r\n }\r\n\r\n // this.group.subject.next({\r\n // Type: \"zscheduler-onSlotDblClick\",\r\n // Target: this.data.CalendarOptions + 'select',\r\n // event: { sender, start, end, isAllDay }\r\n // });\r\n // this.closeEditor(sender);\r\n // this.formGroup = this.formBuilder.group({\r\n // 'Start': [start, Validators.required],\r\n // 'End': [end, Validators.required],\r\n // 'StartTimezone': new FormControl(),\r\n // 'EndTimezone': new FormControl(),\r\n // 'IsAllDay': isAllDay,\r\n // 'Title': new FormControl(''),\r\n // 'Description': new FormControl(''),\r\n // 'RecurrenceRule': new FormControl(),\r\n // 'RecurrenceID': new FormControl()\r\n // });\r\n // sender.addEvent(this.formGroup);\r\n }\r\n\r\n onEventDblClick({ sender, event }: EventClickEvent): void {\r\n console.log(\"zscheduler component event-double-click: \", sender, event);\r\n\r\n // this.group.subject.next({\r\n // type: \"zscheduler-onEventDblClick\" + \".eventClick\",\r\n // target: this.data.CalendarOptions,\r\n // event: { sender, event }\r\n // } as ZComponentOutputEvent);\r\n\r\n // this.closeEditor(sender);\r\n // let dataItem = event.dataItem;\r\n // if (this.editService.isRecurring(dataItem)) {\r\n // sender.openRecurringConfirmationDialog(CrudOperation.Edit)\r\n // // The result will be undefined if the dialog was closed.\r\n // .pipe(filter(editMode => editMode !== undefined))\r\n // .subscribe((editMode: EditMode) => {\r\n // if (editMode === EditMode.Series) {\r\n // dataItem = this.editService.findRecurrenceMaster(dataItem);\r\n // }\r\n // this.formGroup = this.createFormGroup(dataItem);\r\n // sender.editEvent(dataItem, { group: this.formGroup, mode: editMode });\r\n // });\r\n // } else {\r\n // this.formGroup = this.createFormGroup(dataItem);\r\n // sender.editEvent(dataItem, { group: this.formGroup });\r\n // }\r\n\r\n if (this.data.OnItemClick) {\r\n\r\n //Restore session\r\n this.beforeSchedulerGetData(this.group);\r\n this.setSchedulerSessionFilter(this.group);\r\n\r\n const func = ZComponentHelper.getGroupEvalValue.call(this, this.data.OnItemClick);\r\n if (typeof func === 'function') {\r\n const callFunc = func.bind(this.group.ctrlScope);\r\n callFunc(event);\r\n }\r\n return;\r\n }\r\n\r\n\r\n }\r\n \r\n public setData = (gData: any) => {\r\n this.selectedViewIndex = gData || this.selectedViewIndex;\r\n //reset data\r\n this.getItems();\r\n\r\n }\r\n\r\n public setEnable = (status: boolean) => {\r\n this.componentProperties.isReadOnly = !status;\r\n }\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n }\r\n\r\n public setRequire = (status: boolean) => {\r\n this.componentProperties.isRequired = status;\r\n ZComponentHelper.changeValidator(status, this.group, this.data.Value, this.componentProperties, Validators.required);\r\n }\r\n\r\n\r\n public setSchedulerSessionKey(group: ZGroup) {\r\n\r\n if (group[\"SchedulerStorageKey\"]) {\r\n return;\r\n }\r\n else {\r\n group[\"SchedulerStorageKey\"] = 'zgrid_' + group.resourceURL + '_' + this.data.Value + '::' + this.authService.e1Token.userName;\r\n }\r\n\r\n }\r\n\r\n public beforeSchedulerGetData(group: ZGroup) {\r\n console.warn(\"beforeDateRangeBinding triggered\");\r\n if (!group.beforeSchedulerGetData) {\r\n console.warn(\"group.beforeDateRangeBinding is undefined\");\r\n return of(true);\r\n }\r\n\r\n return group.beforeSchedulerGetData(group);\r\n }\r\n\r\n async setSchedulerSessionFilter(group: ZGroup) {\r\n\r\n if (!group[\"SchedulerStorageKey\"]) {\r\n return null;\r\n }\r\n const StorageKey = group[\"SchedulerStorageKey\"];\r\n\r\n let lstFilter: { [key: string]: string } = {};\r\n\r\n if (group && this.storageService && this.data['SaveFilter']) {\r\n\r\n //list of data for StateFilter and FilterParams\r\n lstFilter = {\r\n \"SelectedDate\": JSON.stringify(group[\"selectedDate\"])\r\n }\r\n //create session storage \r\n this.storageService.set(StorageKey, JSON.stringify(lstFilter));\r\n\r\n }\r\n\r\n }\r\n\r\n async getSchedulerSessionFilter(group: ZGroup) {\r\n\r\n if (!group[\"SchedulerStorageKey\"]) {\r\n return null;\r\n }\r\n const StorageKey = group[\"SchedulerStorageKey\"];\r\n\r\n if (this.storageService) {\r\n await this.storageService.get(StorageKey)\r\n .then(data => {\r\n if (!data || !data.value || data.value === \"null\") {\r\n return null;\r\n }\r\n else {\r\n const result = JSON.parse(data.value);\r\n this.selectedDate = new Date(JSON.parse(result[\"SelectedDate\"]));\r\n\r\n return data;\r\n }\r\n });\r\n }\r\n else { return null; }\r\n\r\n }\r\n\r\n}\r\n","<ion-item [formGroup]=\"form\" *ngIf=\"(!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\">\r\n <ion-label [attr.for]=\"data.Value\" *ngIf=\"data.ShowLabel\" position=\"stacked\">\r\n {{data.Label}} <ion-text *ngIf=\"(!!componentProperties.isRequiredField ? group[componentProperties.isRequiredField] : componentProperties.isRequired)\" color=\"danger\">*</ion-text>\r\n </ion-label>\r\n <kendo-scheduler *ngIf=\"!isLoading\" [kendoSchedulerBinding]=\"events\" [selectedDate]=\"selectedDate\" (dateChange)=\"onDateChange($event)\"\r\n [selectedViewIndex]=\"selectedViewIndex\" [eventStyles]=\"getEventStyles\" [slotClass]=\"getSlotClass\" \r\n (slotDblClick)=\"onSlotDblClick($event)\" (eventDblClick)=\"onEventDblClick($event)\" scrollTime=\"08:00\"\r\n [style.height]=\"(!!data.Height ? [data.Height] : '600px')\">\r\n <!-- [style.font-size]=\"(!!data.FontSize ? [data.FontSize] : '12px')\"> -->\r\n \r\n <!--Note: line-height same with [eventHeight]-->\r\n <ng-template kendoSchedulerEventTemplate let-event>\r\n <span style=\"margin-left: -5px;line-height: 25px;\">{{ event.title }}</span>\r\n </ng-template>\r\n\r\n <ng-template kendoSchedulerToolbarTemplate let-selectedDate=\"selectedDate\">\r\n <zschedulertoolbar [local]=\"local\" [selectedDate]=\"selectedDate\">\r\n </zschedulertoolbar>\r\n <ul kendoSchedulerToolbarViewSelector></ul>\r\n </ng-template>\r\n\r\n <ng-template kendoSchedulerAllDaySlotTemplate let-date=\"date\">\r\n <strong>{{ date | kendoDate: 'dd-MMM-yyyy' }}</strong>\r\n </ng-template>\r\n <ng-template kendoSchedulerDateHeaderTemplate let-date=\"date\">\r\n <strong>{{ date | kendoDate: \"ccc\" }}</strong>\r\n </ng-template>\r\n\r\n \r\n <!-- <kendo-scheduler-day-view startTime=\"08:00\">\r\n </kendo-scheduler-day-view>\r\n\r\n <kendo-scheduler-week-view startTime=\"08:00\">\r\n </kendo-scheduler-week-view> -->\r\n\r\n <kendo-scheduler-day-view>\r\n </kendo-scheduler-day-view>\r\n\r\n <kendo-scheduler-week-view>\r\n </kendo-scheduler-week-view>\r\n\r\n <kendo-scheduler-month-view [eventHeight]=\"25\"> \r\n </kendo-scheduler-month-view>\r\n\r\n <!-- <kendo-scheduler-timeline-view>\r\n </kendo-scheduler-timeline-view> -->\r\n\r\n <kendo-scheduler-agenda-view>\r\n </kendo-scheduler-agenda-view>\r\n </kendo-scheduler>\r\n\r\n</ion-item>","/********** Angular **********/\r\nimport { Component, OnInit, Input, ViewChild } from '@angular/core';\r\nimport { FormGroup, Validators } from '@angular/forms';\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\nimport { TabStripComponent } from '@progress/kendo-angular-layout';\r\n\r\n/********** Component & Service **********/\r\nimport { \r\n ZComponent, ZComponentHelper, ZTabItem, ZGroup, ZField, \r\n ZComponentProperties, AuthService \r\n} from 'mmhglobal-zcore';\r\n\r\n\r\n@Component({\r\n selector: 'app-ztab',\r\n templateUrl: './ztab.component.html',\r\n styleUrls: ['./ztab.component.scss'],\r\n})\r\nexport class ZtabComponent implements ZComponent, OnInit {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n // private lastSelectedTabIndex: number;\r\n @ViewChild('kendoTabStripInstance') public tabstrip: TabStripComponent;\r\n public state = {\r\n lastSelectedTabIndex: 0,\r\n currentTabs: Array<ZTabItem>(),\r\n allTabs: Array<ZTabItem>()\r\n };\r\n\r\n componentProperties = new ZComponentProperties();\r\n\r\n constructor(\r\n private authService: AuthService\r\n ) {\r\n // this.lastSelectedTabIndex = 0;\r\n }\r\n\r\n ngOnInit() {\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n ZComponentHelper.setFieldsDivClass(this.group._projectName, this.group.fieldName, this.data, this.authService);\r\n this.setCurrentTabs();\r\n this.restoreTabSelection();\r\n }\r\n\r\n private setCurrentTabs() {\r\n this.state.currentTabs = new Array<ZTabItem>();\r\n\r\n if (Array.isArray(this.data.Label)) {\r\n let validIcon = false;\r\n if (this.data.Icon && Array.isArray(this.data.Icon) && this.data.Icon.length === this.data.Label.length) {\r\n validIcon = true;\r\n }\r\n\r\n // eslint-disable-next-line guard-for-in\r\n for (const index in this.data.Label) {\r\n this.state.currentTabs.push(\r\n {\r\n Label: this.data.Label[index],\r\n Icon: validIcon ? this.data.Icon[index] : null,\r\n Visible: true,\r\n Index: parseInt(index)\r\n });\r\n }\r\n this.state.allTabs = this.state.currentTabs;\r\n\r\n if (this.data.TabVisibleFalseIndex) {\r\n this.setTabsVisible(this.data.TabVisibleFalseIndex, false);\r\n }\r\n\r\n } else if (this.data.TabItems) {\r\n let ind = 0;\r\n for (const field of this.data.TabItems) {\r\n this.state.currentTabs.push(\r\n {\r\n Label: field.Label as string,\r\n Icon: field.Icon ? field.Icon as string : null,\r\n Visible: ZComponentHelper.getGroupValue(field.Visible as string, this.group),\r\n Counter: typeof (field[\"Counter\"]) === \"string\" ? ZComponentHelper.getGroupValue(field[\"Counter\"] as string, this.group) : field[\"Counter\"],\r\n Index: ind++\r\n });\r\n }\r\n this.state.allTabs = this.state.currentTabs;\r\n }\r\n }\r\n\r\n private refreshCurrentTabs() {\r\n const previousStateTabs = this.state.allTabs;\r\n\r\n if (Array.isArray(this.data.Label)) {\r\n this.state.currentTabs = new Array<ZTabItem>();\r\n let validIcon = false;\r\n if (this.data.Icon && Array.isArray(this.data.Icon) && this.data.Icon.length === this.data.Label.length) {\r\n validIcon = true;\r\n }\r\n\r\n // eslint-disable-next-line guard-for-in\r\n for (const index in this.data.Label) {\r\n const previousTab = previousStateTabs.filter(x => x.Label == this.data.Label[index]);\r\n const previousTabVisible = previousTab.length > 0 ? previousTab[0].Visible : false;\r\n\r\n const isVisible = previousTabVisible;\r\n if (isVisible) {\r\n this.state.currentTabs.push(\r\n {\r\n Label: this.data.Label[index],\r\n Icon: validIcon ? this.data.Icon[index] : null,\r\n Visible: true,\r\n Index: parseInt(index)\r\n });\r\n }\r\n }\r\n } else {\r\n Object.assign(this.state.currentTabs, this.state.allTabs);\r\n }\r\n }\r\n\r\n ComponentIsVisible(field: ZField): any {\r\n return ZComponentHelper.ComponentIsVisible(field, this.group);\r\n }\r\n\r\n public selectTab = (index: number) => {\r\n this.state.lastSelectedTabIndex = index;\r\n }\r\n\r\n getSelectedTab(tabIndex: number) {\r\n return this.state.lastSelectedTabIndex === tabIndex;\r\n }\r\n\r\n public setSelectTab(tabIndex: number) {\r\n this.state.lastSelectedTabIndex = tabIndex;\r\n }\r\n\r\n restoreTabSelection(): void {\r\n if (this.data.AllowSaveState === false) {\r\n return;\r\n }\r\n\r\n let tabSelections: Map<string, number> = \"tabSelections\" in this.group ? this.group['tabSelections'] : null;\r\n if (tabSelections !== null && tabSelections.has(this.data.Name)) { // subsequent loads\r\n this.state.lastSelectedTabIndex = tabSelections.get(this.data.Name);\r\n\r\n } else if (tabSelections === null) { // first load of first tab\r\n tabSelections = new Map<string, number>();\r\n this.group['tabSelections'] = tabSelections;\r\n tabSelections.set(this.data.Name, 0);\r\n\r\n } else if (!tabSelections.has(this.data.Name)) { // first load of rest tabs\r\n tabSelections.set(this.data.Name, 0);\r\n }\r\n }\r\n\r\n public onTabSelect(e) {\r\n this.state.lastSelectedTabIndex = e.index;\r\n this.saveState(e);\r\n\r\n const func = ZComponentHelper.getGroupEvalValue.call(this, this.data.ClickEvent);\r\n if (typeof func === 'function') {\r\n const callFunc = func.bind(this.group.ctrlScope);\r\n callFunc(e);\r\n }\r\n }\r\n\r\n private saveState(e) {\r\n if (this.data.AllowSaveState === false) {\r\n return;\r\n }\r\n\r\n const tabSelections = this.group['tabSelections'] as Map<string, number>;\r\n tabSelections.set(this.data.Name, e.index);\r\n }\r\n\r\n public setTabsVisible = (tabIndexes: number[], status: boolean) => {\r\n if (this.state.allTabs.length <= Math.max.apply(null, tabIndexes) || Math.min.apply(null, tabIndexes) < 0) {\r\n console.log(\"Invalid Tab index : \" + tabIndexes.join(\",\"));\r\n return;\r\n }\r\n\r\n tabIndexes.forEach(index => {\r\n this.state.allTabs[index].Visible = status;\r\n });\r\n this.refreshCurrentTabs();\r\n }\r\n\r\n public setTabCounter = (tabIndex: number, counter: number | string) => {\r\n const labels = this.data.Label ? this.data.Label : this.data.TabItems;\r\n if (labels.length <= tabIndex || tabIndex < 0) {\r\n console.log(\"Invalid Tab index : \" + tabIndex);\r\n return;\r\n }\r\n\r\n this.state.currentTabs[tabIndex].Counter = counter;\r\n }\r\n\r\n public setEnable = (status: boolean) => {\r\n this.componentProperties.isReadOnly = !status;\r\n }\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n }\r\n\r\n public setRequire = (status: boolean) => {\r\n this.componentProperties.isRequired = status;\r\n ZComponentHelper.changeValidator(status, this.group, this.data.Value, this.componentProperties, Validators.required);\r\n }\r\n\r\n getFontAwesome(iconName: string) {\r\n return ZComponentHelper.getFontAwesome(iconName);\r\n }\r\n}\r\n","<div *ngIf=\"(!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\" style=\"margin: 10px 0 6px 0;\"> \r\n <kendo-tabstrip #kendoTabStripInstance [keepTabContent]=\"true\" (tabSelect)=\"onTabSelect($event)\">\r\n <kendo-tabstrip-tab *ngFor=\"let tab of state.currentTabs; let i = index\" [selected]=\"getSelectedTab(i)\" [disabled]=\"!tab.Visible\">\r\n <ng-template kendoTabTitle *ngIf=\"tab.Visible\" >\r\n <fa-icon *ngIf=\"!!tab.Icon\" [icon]=\"getFontAwesome(tab.Icon)\" style=\"padding-right: 5px;\"></fa-icon>\r\n {{tab.Label}}\r\n <ion-badge class=\"tab-item-counter\" color=\"danger\" *ngIf=\"!!tab.Counter\">{{tab.Counter}}</ion-badge>\r\n </ng-template>\r\n <ng-template kendoTabContent> \r\n <div class=\"ion-row\">\r\n <app-zformcontrol \r\n [ngClass]=\"group[field.isVisibleField] ? field.DivClass : \r\n ((field.Visible === true) ? field.DivClass : 'flex-hide')\" \r\n *ngFor=\"let field of data.Value | tabfilter: tab.Index + ''\"\r\n [field]=\"field\" [group]=\"group\" [form]=\"form\" id=\"{{field.Type}}-{{field.Name}}\">\r\n </app-zformcontrol>\r\n </div>\r\n </ng-template>\r\n </kendo-tabstrip-tab>\r\n </kendo-tabstrip>\r\n</div>","/********** Angular **********/\r\nimport { Component, OnInit, Input } from \"@angular/core\";\r\nimport { FormGroup, Validators } from '@angular/forms';\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\n\r\n/********** Component & Service **********/\r\nimport {\r\n ZGroup, ZField, ZComponentProperties,\r\n ZComponent, ZComponentHelper, ZComponentOutputEvent, ClickableIcons, AdornmentProperties, TooltipsInfoProperties\r\n} from 'mmhglobal-zcore';\r\n\r\n\r\n@Component({\r\n selector: \"app-ztext\",\r\n templateUrl: \"./ztext.component.html\",\r\n styleUrls: [\"./ztext.component.scss\"]\r\n})\r\nexport class ZtextComponent implements ZComponent, OnInit {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n @Input() iconList: ClickableIcons[];\r\n @Input() adornmentList: any[];\r\n\r\n componentProperties = new ZComponentProperties();\r\n public showTooltipsInfoIcon: boolean = false;\r\n public showTooltipsInfoBySide: boolean = false;\r\n public tooltipsInfo: TooltipsInfoProperties = null;\r\n public tooltipsDisplayText: string = null;\r\n public tooltipsDisplayIcon: any;\r\n public showClearButton: any;\r\n public clearButtonIcon: string = \"time-circle\";\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n // this.fControl = this.form.controls[this.data.Value]; //.get(this.data.Value);\r\n // this.fControl = this.form.get(this.data.Value) as FormControl;\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n\r\n this.adornmentList = this.data.AdornmentList;\r\n\r\n if (this.data.OnClick && !this.data.ReadOnly) {\r\n this.componentProperties.isReadOnly = true;\r\n }\r\n\r\n if (!this.componentProperties.isReadOnly) {\r\n this.showClearButton = this.data.ClearButton;\r\n }\r\n\r\n this.tooltipsInfo = this.data.TooltipsInfo;\r\n if (this.tooltipsInfo) {\r\n if ((this.tooltipsInfo.Icon != null || this.tooltipsInfo.Icon != undefined) && !this.isMobileScreen()) {\r\n this.showTooltipsInfoIcon = true;\r\n this.setTooltipsInfoIcon();\r\n }\r\n if (this.tooltipsInfo.SideBySide) {\r\n this.showTooltipsInfoBySide = true;\r\n }\r\n this.setTooltipsDisplayText();\r\n }\r\n\r\n // Handle Clickable Icons\r\n this.iconList = this.data.ClickableIcons;\r\n if (this.iconList) {\r\n if (this.iconList.length > 0) {\r\n this.iconList.forEach((i: any) => {\r\n if (i.Tooltip === undefined) {\r\n i.Tooltip = \"\";\r\n } else {\r\n if (i.Tooltip.indexOf(\"group.\") !== -1) {\r\n i.Tooltip = ZComponentHelper.getGroupEvalValue.call(this, i.Tooltip);\r\n }\r\n }\r\n // Default position top. right | bottom | top | left\r\n if (i.Position === undefined) {\r\n i.Position = \"top\";\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n mapInputType(fieldType: string): string {\r\n switch (fieldType) {\r\n case \"date\":\r\n return \"date\";\r\n case \"ztext\":\r\n return \"text\";\r\n case \"number\":\r\n return \"number\";\r\n case \"currency\":\r\n return \"number\";\r\n case \"email\":\r\n return \"email\";\r\n case \"password\":\r\n return \"password\";\r\n case \"search\":\r\n return \"search\";\r\n case \"tel\":\r\n return \"tel\";\r\n case \"text\":\r\n return \"text\";\r\n case \"time\":\r\n return \"time\";\r\n case \"url\":\r\n return \"url\";\r\n default:\r\n return \"text\";\r\n }\r\n }\r\n\r\n mapInputMode(fieldType: string): string {\r\n switch (fieldType) {\r\n case \"date\":\r\n return \"none\";\r\n case \"ztext\":\r\n return \"text\";\r\n case \"number\":\r\n return \"decimal\";\r\n case \"currency\":\r\n return \"decimal\";\r\n case \"email\":\r\n return \"email\";\r\n case \"password\":\r\n return \"text\";\r\n case \"search\":\r\n return \"search\";\r\n case \"tel\":\r\n return \"tel\";\r\n case \"text\":\r\n return \"text\";\r\n case \"time\":\r\n return \"none\";\r\n case \"url\":\r\n return \"url\";\r\n default:\r\n return \"text\";\r\n }\r\n }\r\n\r\n getReadOnlyValue() {\r\n const readOnlyValue = ZComponentHelper.getGroupEvalValue.call(this, this.data.ReadOnly);\r\n if (typeof readOnlyValue === 'function') {\r\n return readOnlyValue();\r\n }\r\n return readOnlyValue;\r\n }\r\n\r\n isMobileScreen() {\r\n const v = ZComponentHelper.isMobileScreen();\r\n return v;\r\n }\r\n\r\n public setEnable = (status: boolean) => {\r\n const fc = this.group.form.controls[this.data.Value];\r\n status ? fc.enable() : fc.disable();\r\n this.componentProperties.isReadOnly = !status;\r\n }\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n }\r\n\r\n public setRequire = (status: boolean) => {\r\n this.componentProperties.isRequired = status;\r\n ZComponentHelper.changeValidator(status, this.group, this.data.Value, this.componentProperties, Validators.required);\r\n }\r\n\r\n getIon_InvalidClass(form: FormGroup, data: ZField) {\r\n return ZComponentHelper.getIon_InvalidClass(form, data);\r\n }\r\n\r\n public getStyle(RightAlign: boolean) {\r\n let ngStyle = \"\";\r\n if (RightAlign) {\r\n ngStyle += \"right\";\r\n } else {\r\n ngStyle += \"left\";\r\n }\r\n return ngStyle;\r\n }\r\n\r\n public setTextboxClass() {\r\n if (this.data.OnClick && !this.data.ReadOnly) {\r\n return \"notmobile-textbox-onfocus\";\r\n }\r\n return \"notmobile-textbox\";\r\n }\r\n\r\n /********** Textbox Event **********/\r\n public textboxOnClick(): void {\r\n //console.log('TextBox is focused: ', event);\r\n this.group.subject.next({\r\n type: \"ztext-OnClick\",\r\n target: this.data.OnClick,\r\n event,\r\n data: { value: event['OnClick'], field: this.data }\r\n } as ZComponentOutputEvent);\r\n }\r\n\r\n onChange(event: any) {\r\n // console.log('ztext.component - onChange: ', event.target.value); \r\n ZComponentHelper.setComponentModelValue(this.data, event.target.value, this.group);\r\n this.group.subject.next({\r\n type: \"onChange\",\r\n target: this.data.OnChange,\r\n event,\r\n data: { value: event.data, field: this.data }\r\n } as ZComponentOutputEvent);\r\n }\r\n\r\n /********** Icon Button **********/\r\n onIconClick(clickAction: string) {\r\n this.onNavigateTo(clickAction);\r\n }\r\n\r\n onNavigateTo(clickAction: string) {\r\n const n = ZComponentHelper.getGroupEvalValue.call(this, clickAction);\r\n if (n) {\r\n this.group.subject.next({\r\n type: 'ztext-onNavigateTo',\r\n target: clickAction,\r\n data: this.group.zModel[this.data.Value]\r\n } as ZComponentOutputEvent);\r\n }\r\n }\r\n\r\n\r\n /********** Adornment **********/\r\n public getAdornmentBackgroundColor(adornment: AdornmentProperties) {\r\n if (adornment.BackgroundColor) {\r\n return adornment.BackgroundColor + \"!important\";\r\n }\r\n\r\n return \"transparent !important\";\r\n }\r\n\r\n public adornmentLook(adornment: AdornmentProperties) {\r\n if (adornment.AdornmentLook) {\r\n return adornment.AdornmentLook;\r\n }\r\n\r\n return 'clear'\r\n }\r\n\r\n public onAdornmentClick(adornment: AdornmentProperties) {\r\n if (adornment.OnClick) {\r\n this.group.subject.next({\r\n type: 'ztext-adornment',\r\n target: adornment.OnClick,\r\n data: adornment\r\n } as ZComponentOutputEvent);\r\n }\r\n }\r\n\r\n public readOnlyOnClear() {\r\n ZComponentHelper.setModelValue(this.data.Value, null, this.group);\r\n }\r\n\r\n /********** TooltipsInfo **********/\r\n public setTooltipsInfoClass() {\r\n if (this.tooltipsInfo && !this.showTooltipsInfoIcon && this.showTooltipsInfoBySide) {\r\n return 'tooltipsinfo-text';\r\n }\r\n return 'tooltipsinfo-text-wide';\r\n }\r\n\r\n public setTooltipsInfoColor() {\r\n if (this.tooltipsInfo) {\r\n if (this.tooltipsInfo.TextColor) {\r\n return this.tooltipsInfo.TextColor;\r\n }\r\n }\r\n\r\n return \"#acacac\"; // default grey\r\n }\r\n\r\n public setTooltipsInfoIcon(displayIcon?: string) {\r\n if (this.showTooltipsInfoIcon) {\r\n if (this.tooltipsInfo.Icon != '') {\r\n if (displayIcon) {\r\n this.tooltipsDisplayIcon = displayIcon;\r\n }\r\n else {\r\n this.tooltipsDisplayIcon = this.tooltipsInfo.Icon;\r\n }\r\n }\r\n else {\r\n this.tooltipsDisplayIcon = 'question-circle'\r\n }\r\n }\r\n }\r\n\r\n public setTooltipsDisplayText(displayText?: string) {\r\n if (this.tooltipsInfo) {\r\n if (displayText) {\r\n this.tooltipsDisplayText = displayText;\r\n }\r\n else {\r\n this.tooltipsDisplayText = this.tooltipsInfo.DisplayText;\r\n }\r\n }\r\n else {\r\n this.tooltipsDisplayText = '<Display text error>';\r\n }\r\n }\r\n\r\n public setTooltipsInfoSideBySide() {\r\n if (this.tooltipsInfo) {\r\n if (this.showTooltipsInfoBySide && !this.showTooltipsInfoIcon && this.adornmentList.length < 1) {\r\n return 'ion-row divtextbox tooltipsinfo-right';\r\n }\r\n }\r\n return 'ion-row divtextbox';\r\n }\r\n\r\n}\r\n","<ion-item [formGroup]=\"form\"\r\n *ngIf=\"(!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\"\r\n [ngClass]=\"getIon_InvalidClass(form, data)\">\r\n <ion-label [attr.for]=\"data.Value\"\r\n *ngIf=\"data.ShowLabel === undefined || data.ShowLabel\"\r\n [position]=\"data.LabelPosition ? data.LabelPosition : 'stacked'\">\r\n {{data.Label}}\r\n <ion-text *ngIf=\"(!!componentProperties.isRequiredField ? group[componentProperties.isRequiredField] : componentProperties.isRequired)\" color=\"danger\">*</ion-text>\r\n <!-- add icon for tooltips -->\r\n <span kendoTooltip\r\n *ngIf=\"data.TooltipsInfo && showTooltipsInfoIcon\"\r\n [title]=\"tooltipsDisplayText\">\r\n <fa-icon [icon]=\"tooltipsDisplayIcon\"\r\n class=\"tooltipsinfo-icon\">\r\n </fa-icon>\r\n </span>\r\n </ion-label>\r\n <!-- mobile tooltipsinfo below label-->\r\n <kendo-label *ngIf=\"data.TooltipsInfo && !showTooltipsInfoIcon && !showTooltipsInfoBySide && isMobileScreen()\"\r\n [text]=\"tooltipsDisplayText\"\r\n [class]=\"setTooltipsInfoClass()\"\r\n [style.color]=\"setTooltipsInfoColor()\"></kendo-label>\r\n <!-- <ion-input [name]=\"data.Name\" [required]=\"data.IsRequired\" [placeholder]=\"data.PlaceHolder\" [type]=\"mapInputType(data.Type)\"\r\n [(ngModel)]=\"group.zModel[data.Value]\" [minlength]=\"data.MinLength\" [maxlength]=\"data.MaxLength\"\r\n [readonly]=\"data.ReadOnly\" [inputmode]=\"mapInputMode(data.Type)\"></ion-input> -->\r\n <div [class]=\"setTooltipsInfoSideBySide()\">\r\n <div style=\"flex: 1;\">\r\n <ion-input *ngIf=\"isMobileScreen()\"\r\n [id]=\"data.Value\"\r\n [formControlName]=\"data.Value\"\r\n [type]=\"mapInputType(data.Type)\"\r\n [placeholder]=\"data.PlaceHolder\"\r\n clearOnEdit\r\n [minlength]=\"data.MinLength\"\r\n [maxlength]=\"data.MaxLength\"\r\n [attr.disabled]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n [ngStyle]=\"{'text-align': getStyle(data.RightAlign ? true : false)}\"\r\n [inputmode]=\"mapInputMode(data.Type)\"\r\n (click)='textboxOnClick()'\r\n (ionChange)=\"onChange($event)\">\r\n </ion-input>\r\n <kendo-textbox *ngIf=\"!isMobileScreen()\"\r\n [id]=\"data.Value\"\r\n [formControlName]=\"data.Value\"\r\n [type]=\"mapInputType(data.Type)\"\r\n [placeholder]=\"data.PlaceHolder\"\r\n [clearButton]=\"showClearButton\"\r\n [minlength]=\"data.MinLength\"\r\n [maxlength]=\"data.MaxLength\"\r\n [readonly]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n [ngClass]=\"{'disabled' : (!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)}\"\r\n [ngStyle]=\"{'text-align': getStyle(data.RightAlign ? true : false)}\"\r\n (input)=\"onChange($event)\"\r\n (click)=\"textboxOnClick()\"\r\n [class]=\"setTextboxClass()\">\r\n\r\n <ng-template kendoTextBoxSuffixTemplate\r\n *ngIf=\"adornmentList\">\r\n <!-- For Validation feature -->\r\n <!--<app-uivalidationmessage [group]=\"group\"\r\n [data]=\"data\"\r\n [form]=\"form\"\r\n class=\"validation-icon\"></app-uivalidationmessage>-->\r\n <button kendoButton\r\n *ngIf=\"data.OnClick\"\r\n look=\"clear\"\r\n icon=\"close-circle\"\r\n class=\"textbox-clearbutton\"\r\n (click)=\"readOnlyOnClear()\"></button>\r\n <!-- For Adornments feature -->\r\n <div *ngFor=\"let adornment of adornmentList\">\r\n <kendo-textbox-separator *ngIf=\"!adornment.HideSeperator\"\r\n class=\"textbox-separator\"></kendo-textbox-separator>\r\n <button kendoButton\r\n [look]=\"adornmentLook(adornment)\"\r\n [icon]=\"adornment.Icon\"\r\n (click)=\"onAdornmentClick(adornment)\"\r\n [style.background-color]=\"getAdornmentBackgroundColor(adornment)\"></button>\r\n </div>\r\n </ng-template>\r\n </kendo-textbox>\r\n </div>\r\n <!-- For Validation feature pending change to inner textbox -->\r\n <app-uivalidationmessage *ngIf=\"!isMobileScreen()\"\r\n [group]=\"group\"\r\n [data]=\"data\"\r\n [form]=\"form\" ></app-uivalidationmessage>\r\n\r\n <!-- For Mobile Validation feature -->\r\n <app-uivalidationmessage *ngIf=\"isMobileScreen()\"\r\n [group]=\"group\"\r\n [data]=\"data\"\r\n [form]=\"form\"\r\n class=\"validation-icon-mobile\"></app-uivalidationmessage>\r\n\r\n <!-- mobile section for Adornments feature -->\r\n <div *ngFor=\"let adornment of adornmentList\">\r\n <button kendoButton\r\n *ngIf=\"isMobileScreen()\"\r\n [look]=\"adornmentLook(adornment)\"\r\n [icon]=\"adornment.Icon\"\r\n (click)=\"onAdornmentClick(adornment)\"\r\n [style.background-color]=\"getAdornmentBackgroundColor(adornment)\"\r\n class=\"adornments-icon-mobile\"></button>\r\n </div>\r\n\r\n <!-- Icon button feature -->\r\n <div *ngFor=\"let item of iconList\">\r\n <div kendoTooltip\r\n class=\"icon-button\"\r\n showOn=\"hover\"\r\n [tooltipWidth]=\"item.Width\"\r\n [position]=\"item.Position\">\r\n\r\n <span *ngIf=\"!!item \"\r\n (click)=\"onIconClick(item.Click)\"\r\n [title]=\"item.Tooltip\"\r\n style=\"margin-top: 10px;\">\r\n\r\n <fa-icon [icon]=\"item.Icon\"\r\n [ngStyle]=\"{'padding': '4px 6px', 'color': (item.Color ? item.Color : 'black')}\"></fa-icon>\r\n </span>\r\n </div>\r\n </div>\r\n <!-- side by side and desktop tooltipsinfo -->\r\n <kendo-label *ngIf=\"tooltipsInfo && !showTooltipsInfoIcon && ((showTooltipsInfoBySide && isMobileScreen()) || !isMobileScreen())\"\r\n [text]=\"tooltipsDisplayText\"\r\n [class]=\"setTooltipsInfoClass()\"\r\n [style.color]=\"setTooltipsInfoColor()\"></kendo-label>\r\n </div>\r\n</ion-item>\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input, OnDestroy } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\n\r\n/********** Component & Service **********/\r\nimport {\r\n ZField, ZGroup, ZComponentProperties,\r\n ZComponent, ZComponentHelper\r\n} from 'mmhglobal-zcore';\r\n\r\n\r\n@Component({\r\n selector: 'app-ztexteditor',\r\n templateUrl: './ztexteditor.component.html',\r\n styleUrls: ['./ztexteditor.component.scss'],\r\n})\r\nexport class ZtexteditorComponent implements ZComponent, OnInit, OnDestroy {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n\r\n componentProperties = new ZComponentProperties();\r\n private widthReduce: number;\r\n private heightReduce: number;\r\n public value = \"\";\r\n labelText = \"\";\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n\r\n this.widthReduce = this.data.WidthReduce || 60;\r\n this.heightReduce = this.data.HeightReduce || 560;\r\n }\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n }\r\n\r\n getIon_InvalidClass(form: FormGroup, data: ZField) {\r\n return ZComponentHelper.getIon_InvalidClass(form, data);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n\r\n }\r\n\r\n getCompStyle() {\r\n return {\r\n \"height.px\": this.getCompHeight(),\r\n \"width.px\": window.innerWidth - this.widthReduce\r\n }\r\n }\r\n\r\n private getCompHeight() {\r\n const h = window.innerHeight - this.heightReduce;\r\n return (h < 250) ? 250 : h;\r\n }\r\n}\r\n","<ion-item [formGroup]=\"form\" *ngIf=\"(!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\"\r\n [ngClass]=\"getIon_InvalidClass(form, data)\">\r\n <div class=\"ion-row\" style=\"justify-content: space-between; width: 100%\">\r\n <div *ngIf=\"data.Title\" class=\"title\">{{data.Title}}</div>\r\n\r\n <ion-label [attr.for]=\"data.Value\"\r\n *ngIf=\"data.ShowLabel === undefined || data.ShowLabel\"\r\n position=\"stacked\"\r\n style=\"margin-bottom:10px;\">\r\n {{data.Label}}\r\n <ion-text *ngIf=\"(!!componentProperties.isRequiredField ? group[componentProperties.isRequiredField] : componentProperties.isRequired)\"\r\n color=\"danger\">\r\n *\r\n </ion-text>\r\n </ion-label>\r\n\r\n <span style=\"flex: 1;\">\r\n <kendo-editor [id]=\"data.Value\"\r\n [formControlName]=\"data.Value\"\r\n [value]=\"value\"\r\n [ngStyle]=\"getCompStyle()\"\r\n [readonly]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\">\r\n <kendo-toolbar *ngIf=\"data.ToolBarStyle === 'hidden'\">\r\n </kendo-toolbar>\r\n <kendo-toolbar *ngIf=\"data.ToolBarStyle === 'full'\">\r\n <kendo-toolbar-buttongroup>\r\n <kendo-toolbar-button kendoEditorUndoButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorRedoButton></kendo-toolbar-button>\r\n </kendo-toolbar-buttongroup>\r\n <kendo-toolbar-buttongroup>\r\n <kendo-toolbar-button kendoEditorBoldButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorItalicButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorUnderlineButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorStrikethroughButton></kendo-toolbar-button>\r\n </kendo-toolbar-buttongroup>\r\n <kendo-toolbar-buttongroup>\r\n <kendo-toolbar-button kendoEditorSubscriptButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorSuperscriptButton></kendo-toolbar-button>\r\n </kendo-toolbar-buttongroup>\r\n <kendo-toolbar-buttongroup>\r\n <kendo-toolbar-button kendoEditorAlignLeftButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorAlignCenterButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorAlignRightButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorAlignJustifyButton></kendo-toolbar-button>\r\n </kendo-toolbar-buttongroup>\r\n <kendo-toolbar-dropdownlist kendoEditorFormat></kendo-toolbar-dropdownlist>\r\n <kendo-toolbar-dropdownlist kendoEditorFontSize></kendo-toolbar-dropdownlist>\r\n <kendo-toolbar-dropdownlist kendoEditorFontFamily></kendo-toolbar-dropdownlist>\r\n <kendo-toolbar-colorpicker kendoEditorForeColor></kendo-toolbar-colorpicker>\r\n <kendo-toolbar-colorpicker kendoEditorBackColor></kendo-toolbar-colorpicker>\r\n <kendo-toolbar-buttongroup>\r\n <kendo-toolbar-button kendoEditorInsertUnorderedListButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorInsertOrderedListButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorIndentButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorOutdentButton></kendo-toolbar-button>\r\n </kendo-toolbar-buttongroup>\r\n <kendo-toolbar-buttongroup>\r\n <kendo-toolbar-button kendoEditorCreateLinkButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorUnlinkButton></kendo-toolbar-button>\r\n </kendo-toolbar-buttongroup>\r\n <kendo-editor-insert-table-button></kendo-editor-insert-table-button>\r\n <kendo-toolbar-buttongroup>\r\n <kendo-toolbar-button kendoEditorAddColumnBeforeButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorAddColumnAfterButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorAddRowBeforeButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorAddRowAfterButton></kendo-toolbar-button>\r\n </kendo-toolbar-buttongroup>\r\n <kendo-toolbar-buttongroup>\r\n <kendo-toolbar-button kendoEditorDeleteColumnButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorDeleteRowButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorDeleteTableButton></kendo-toolbar-button>\r\n </kendo-toolbar-buttongroup>\r\n <kendo-toolbar-button kendoEditorInsertFileButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorInsertImageButton></kendo-toolbar-button>\r\n <kendo-toolbar-button kendoEditorViewSourceButton></kendo-toolbar-button>\r\n </kendo-toolbar>\r\n </kendo-editor>\r\n </span>\r\n </div>\r\n</ion-item>\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input, ViewChild, ElementRef, AfterViewInit } from \"@angular/core\";\r\nimport { FormGroup, Validators } from \"@angular/forms\";\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\nimport {\r\n TreeItemDropEvent,\r\n TreeItemDragEvent\r\n} from \"@progress/kendo-angular-treeview\";\r\n\r\n/********** Component & Service **********/\r\nimport {\r\n ZComponent, ZComponentHelper, ZComponentOutputEvent, ZComponentProperties,\r\n ZField, ZGroup, ZTreeTemplateParams\r\n} from \"mmhglobal-zcore\";\r\n\r\n@Component({\r\n selector: \"app-ztree\",\r\n templateUrl: \"./ztree.component.html\",\r\n styleUrls: [\"./ztree.component.scss\"]\r\n})\r\nexport class ZtreeComponent implements ZComponent, OnInit, AfterViewInit {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n @ViewChild(\"nodetemplate\", { static: true }) nodetemplate: ElementRef;\r\n items: Array<any> = [];\r\n originalItemList: any = null;\r\n // modelzData: Array<any>;\r\n // modelName: string;\r\n // dataSet: any[] = null;\r\n isNodeDrop = false;\r\n private nodeCounter = 1;\r\n private clickActName = null;\r\n public state = { expandedkeys: [] };\r\n public itemIndex = [];\r\n public selectedKeys: any[] = [];\r\n public absoluteText: boolean = false;\r\n\r\n componentProperties = new ZComponentProperties();\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n\r\n if (this.data.TreeviewExpandAll) {\r\n this.expandAll();\r\n }\r\n\r\n // fix text align issue\r\n if (this.data.OnAddNode || this.data.OnRemoveNode) {\r\n this.absoluteText = true; \r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n // const componentId = ZComponentHelper.getComponentId(this.data);\r\n // this.group.zComponents[componentId] = this;\r\n ZComponentHelper.registerComponent(this);\r\n }\r\n\r\n getItems() {\r\n // if (this.modelName) {\r\n // return this.group[this.modelName];\r\n // }\r\n const fieldValue = this.data.Value;\r\n if (fieldValue) {\r\n this.nodeCounter = 1;\r\n const fValue = ZComponentHelper.getGroupEvalValue.call(this, this.data.Value);\r\n return fValue;\r\n } else {\r\n console.warn('ztree field Value is not set correctly. ', fieldValue);\r\n }\r\n // if (fieldValue && fieldValue.startsWith('group.')) {\r\n // // const newDataSet = JSON.parse(JSON.stringify(this.dataSet));\r\n // const name = fieldValue.slice(6);\r\n // this.nodeCounter = 1;\r\n // // this.group[name] = this.setValuePropToNullAtLeafLeave(this.group[name]);\r\n // this.modelName = name;\r\n // return this.group[name];\r\n // } else {\r\n // console.warn('ztree field Value is not set correctly. ', fieldValue);\r\n // }\r\n }\r\n\r\n public isExpanded = (dataItem: any, index: string) => {\r\n // console.log(index);\r\n return this.state.expandedkeys.indexOf(index) > -1;\r\n // return true;\r\n }\r\n\r\n public expandNode = (field:string, value: string, setAsSelected: boolean) => {\r\n this.itemIndex = [];\r\n const node = this.getItems();\r\n\r\n this.searchNodeIndex(node, value, '', field);\r\n\r\n const index = this.itemIndex;\r\n if (setAsSelected) {\r\n this.selectedKeys = index;\r\n }\r\n const indexArr = [];\r\n index.forEach((i:any) => {\r\n const arr = i.split('_');\r\n let indexs = \"\";\r\n arr.forEach((x:any) => {\r\n indexs = indexs.concat(\"_\").concat(x);\r\n indexArr.push(indexs.substring(1));\r\n })\r\n });\r\n this.state.expandedkeys = this.state.expandedkeys.concat(indexArr);\r\n }\r\n\r\n public collapseNode = (field:string, value: string, collapseParent: boolean) => {\r\n this.itemIndex = [];\r\n const node = this.getItems();\r\n\r\n this.searchNodeIndex(node, value, '', field);\r\n\r\n const index = this.itemIndex;\r\n let indexArr = [];\r\n if (collapseParent) {\r\n index.forEach((i:any) => {\r\n const arr = i.split('_');\r\n let indexs = \"\";\r\n arr.forEach((x:any) => {\r\n indexs = indexs.concat(\"_\").concat(x);\r\n indexArr.push(indexs.substring(1));\r\n })\r\n });\r\n } else {\r\n indexArr = index;\r\n }\r\n\r\n this.state.expandedkeys = this.state.expandedkeys.filter(v => {\r\n return !indexArr.includes(v);\r\n });\r\n }\r\n\r\n public searchNodeIndex(node: any, value: string, key: string, field: string) {\r\n if (key) {\r\n key = key + '_';\r\n }\r\n node.forEach((d: any, i: number) => {\r\n if (d[field] === Number(value) || d[field] === value) {\r\n this.itemIndex = this.itemIndex.concat(key + '' + i);\r\n }\r\n if (Array.isArray(d.Value)) {\r\n const k = key + '' + i;\r\n this.searchNodeIndex(d.Value, value, k, field);\r\n }\r\n });\r\n }\r\n\r\n public expandAll = () => {\r\n const node = this.getItems();\r\n if (node) {\r\n this.expandAllNode(node, '');\r\n } \r\n }\r\n\r\n public collapseAll = () => {\r\n this.state.expandedkeys = [];\r\n }\r\n\r\n private expandAllNode(node: any, key: string) {\r\n if (key) {\r\n key = key + '_';\r\n }\r\n node.forEach((d: any, i: number) => {\r\n if (Array.isArray(d.Value)) {\r\n const k = key + '' + i;\r\n this.state.expandedkeys = this.state.expandedkeys.concat(k);\r\n this.expandAllNode(d.Value, k);\r\n }\r\n });\r\n }\r\n\r\n public handleCollapse(node) {\r\n this.state.expandedkeys = this.state.expandedkeys.filter(k => k !== node.index);\r\n }\r\n\r\n public handleExpand(node) {\r\n this.state.expandedkeys = this.state.expandedkeys.concat(node.index);\r\n }\r\n\r\n public setEnable = (status: boolean) => {\r\n this.componentProperties.isReadOnly = !status;\r\n }\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n }\r\n\r\n public setRequire = (status: boolean) => {\r\n this.componentProperties.isRequired = status;\r\n ZComponentHelper.changeValidator(status, this.group, this.data.Value, this.componentProperties, Validators.required);\r\n }\r\n\r\n getTemplate(dataItem: any, data: ZField, group: ZGroup) {\r\n if (data.ItemTemplate) {\r\n const getTemplateFunc = ZComponentHelper.getGroupEvalValue.call(\r\n this,\r\n data.ItemTemplate\r\n );\r\n if (!getTemplateFunc) {\r\n console.warn(\r\n \"The (\" +\r\n data.ItemTemplate +\r\n \") is not defined correctly. Value contains: \",\r\n getTemplateFunc\r\n );\r\n return;\r\n }\r\n\r\n return getTemplateFunc({\r\n dataItem,\r\n data,\r\n group\r\n } as ZTreeTemplateParams);\r\n } else {\r\n return Object.values(dataItem)\r\n .filter(data => typeof data === \"string\")\r\n .join(\", \");\r\n }\r\n }\r\n\r\n convertToTreeItems(dataSet: any[]) {\r\n const toTreeItems: any[] = [];\r\n const treeIndex: any = {};\r\n const pendingItems: any[] = [];\r\n dataSet.forEach((d: any) => {\r\n if (!d.ParentId) {\r\n toTreeItems.push(d);\r\n treeIndex[d.Id] = d;\r\n } else {\r\n if (treeIndex[d.ParentId]) {\r\n const parentItem = treeIndex[d.ParentId];\r\n if (!parentItem.Value) {\r\n parentItem.Value = [];\r\n }\r\n parentItem.Value.push(d);\r\n treeIndex[d.Id] = d;\r\n } else {\r\n pendingItems.push(d);\r\n }\r\n }\r\n });\r\n\r\n if (pendingItems.length > 0) {\r\n pendingItems.forEach((d: any) => {\r\n if (treeIndex[d.ParentId]) {\r\n const parentItem = treeIndex[d.ParentId];\r\n parentItem.Value.push(d);\r\n treeIndex[d.Id] = d;\r\n }\r\n });\r\n }\r\n\r\n return toTreeItems;\r\n }\r\n\r\n onSelectionChange(event: any) {\r\n let targetName: string;\r\n if (this.clickActName) {\r\n switch (this.clickActName) {\r\n case 'AddNode':\r\n targetName = this.data.OnAddNode;\r\n break;\r\n case 'RemoveNode':\r\n targetName = this.data.OnRemoveNode;\r\n break;\r\n }\r\n } else {\r\n targetName = this.data.OnItemClick;\r\n }\r\n this.clickActName = null;\r\n this.group.subject.next({\r\n type: \"ztree_onSelectionChange\",\r\n target: targetName,\r\n data: event.dataItem,\r\n event: event.index\r\n } as ZComponentOutputEvent);\r\n }\r\n\r\n onAddNode(event: any, dataItem: any, data: ZField, group: ZGroup) {\r\n this.clickActName = 'AddNode';\r\n // event.stopPropagation();\r\n // if (this.data.OnAddNode) {\r\n // const func = ZComponentHelper.getGroupEvalValue.call(this, this.data.OnAddNode);\r\n // if (typeof func === 'function') {\r\n // const callFunc = func.bind(this.group.ctrlScope);\r\n // callFunc(dataItem, data, group, event.index);\r\n // }\r\n // return;\r\n // }\r\n }\r\n\r\n onRemoveNode(event: any, dataItem: any, data: ZField, group: ZGroup) {\r\n this.clickActName = 'RemoveNode';\r\n }\r\n\r\n onEditNode(event: any) {\r\n if (this.data.OnEditNode) {\r\n const func = ZComponentHelper.getGroupEvalValue.call(this, this.data.OnEditNode);\r\n if (typeof func === 'function') {\r\n const callFunc = func.bind(this.group.ctrlScope);\r\n callFunc(event);\r\n }\r\n return;\r\n }\r\n }\r\n\r\n handleNodeDrop(event: TreeItemDropEvent): void {\r\n if(this.data.Draggable === false){\r\n event.setValid(false);\r\n return;\r\n }\r\n\r\n this.isNodeDrop = true;\r\n const dropHandler = ZComponentHelper.getGroupEvalValue.call(\r\n this,\r\n this.data.OnDrop\r\n );\r\n if (typeof dropHandler === \"function\") {\r\n const callFunc = dropHandler.bind(this);\r\n callFunc(event);\r\n }\r\n\r\n // prevent drop if attempting to add to file\r\n // if (isFile(event.destinationItem.item.dataItem.text) && event.dropPosition === DropPosition.Over) {\r\n // event.setValid(false);\r\n // }\r\n }\r\n\r\n handleNodeDragEnd(event: TreeItemDragEvent) {\r\n if (!this.isNodeDrop) {\r\n return;\r\n }\r\n this.isNodeDrop = false;\r\n const items = this.getItems();\r\n // console.log('Items: ', this.items);\r\n const target = [];\r\n this.updateChangeToDataSet(items, target);\r\n // this.dataSet = target;\r\n ZComponentHelper.setModelValue(this.data.Value, target, this.group);\r\n this.group.subject.next({\r\n type: \"ztree-onTreeNodeDragEnd\",\r\n target: this.data.OnChange,\r\n data: target\r\n } as ZComponentOutputEvent);\r\n }\r\n\r\n private updateChangeToDataSet(source: Array<any>, target: Array<any>) {\r\n source.forEach(d => {\r\n if (Array.isArray(d.Value)) {\r\n const t = JSON.parse(JSON.stringify(d));\r\n t.Value = [];\r\n target.push(t);\r\n this.updateChangeToDataSet(d.Value, t.Value);\r\n } else {\r\n const t = Object.assign({}, d);\r\n t.Value = t._DataValue;\r\n delete t._DataValue;\r\n target.push(t);\r\n }\r\n });\r\n }\r\n\r\n // #region search feature - filterable: true\r\n public handleFilter(value: string): void {\r\n if (this.items.length == 0) {\r\n this.items = ZComponentHelper.getGroupEvalValue.call(this, this.data.Value);\r\n if (this.originalItemList == null) {\r\n this.originalItemList = this.items.map(item => Object.assign({}, item));\r\n }\r\n }\r\n\r\n this.items = this.originalItemList.map(item => Object.assign({}, item));\r\n const target = this.search(this.items, value);\r\n const gridValue = this.filterPrefix(this.data.Value);\r\n this.group[gridValue] = target;\r\n }\r\n\r\n private filterPrefix(valueName: any) {\r\n if (valueName.startsWith('zData.')) {\r\n return valueName.slice(6);\r\n }\r\n if (valueName.startsWith('group.zData.')) {\r\n return valueName.slice(12);\r\n }\r\n if (valueName.startsWith('group.')) {\r\n return valueName.slice(6);\r\n }\r\n if (valueName) {\r\n return valueName;\r\n }\r\n }\r\n\r\n private search(items: any[], term: string): any[] {\r\n return items.reduce((acc, item) => {\r\n if (this.contains(item.Name, term)) {\r\n acc.push(item);\r\n } else if (item.Value && item.Value.length > 0) {\r\n const newItems = this.search(item.Value, term);\r\n\r\n if (newItems.length > 0) {\r\n var filterItem = item;\r\n filterItem.Value = newItems;\r\n acc.push(filterItem);\r\n }\r\n }\r\n return acc;\r\n }, []);\r\n }\r\n\r\n private contains(text: string, term: string): boolean {\r\n return text.toLowerCase().indexOf((term || \"\").toLowerCase()) >= 0;\r\n }\r\n // #endregion search feature - filterable: true\r\n}\r\n","<div style=\"width:100%\"\r\n *ngIf=\"(!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\">\r\n <kendo-treeview [nodes]=\"getItems()\"\r\n kendoTreeViewExpandable\r\n kendoTreeViewSelectable\r\n kendoTreeViewDragAndDrop\r\n kendoTreeViewDragAndDropEditing\r\n [isExpanded]=\"isExpanded\"\r\n (collapse)=\"handleCollapse($event)\"\r\n (expand)=\"handleExpand($event)\"\r\n (nodeDrop)=\"handleNodeDrop($event)\"\r\n (nodeDragEnd)=\"handleNodeDragEnd($event)\"\r\n (selectionChange)=\"onSelectionChange($event)\"\r\n [selectedKeys]=\"selectedKeys\"\r\n kendoTreeViewHierarchyBinding\r\n childrenField=\"Value\"\r\n [filterable]=\"data.Filterable\"\r\n textField=\"Name\"\r\n (filterChange)=\"handleFilter($event)\">\r\n\r\n <ng-template kendoTreeViewNodeTemplate let-dataItem #nodetemplate>\r\n\r\n <ion-button *ngIf=\"!!data.OnAddNode\"\r\n (click)=\"onAddNode($event, dataItem, data, group)\"\r\n style=\"zoom: 0.6; margin: 0 0 0 2px;\" mat-raised-button color=\"primary\" size=\"medium\"\r\n [hidden]=\"(!!dataItem.OnAddNodeVisible)\"> \r\n <fa-icon [icon]=\"'plus'\"></fa-icon>\r\n </ion-button>\r\n <ion-button *ngIf=\"!!data.OnRemoveNode\" (click)=\"onRemoveNode($event, dataItem, data, group)\"\r\n style=\"zoom: 0.6; margin: 0 15px 0 10px;\" color=\"danger\" mat-raised-button size=\"medium\"\r\n [hidden]=\"(!!dataItem.OnRemoveNodeVisible)\"> \r\n <fa-icon [icon]=\"'minus'\"></fa-icon>\r\n </ion-button>\r\n\r\n <ion-label *ngIf=\"absoluteText\" style=\"position: absolute; top: 14px;\">\r\n {{ getTemplate(dataItem, data, group) }}\r\n </ion-label>\r\n\r\n <ion-label *ngIf=\"!absoluteText\">\r\n {{ getTemplate(dataItem, data, group) }}\r\n </ion-label>\r\n </ng-template>\r\n </kendo-treeview>\r\n</div>\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input, OnDestroy } from \"@angular/core\";\r\nimport { FormControl, FormGroup, Validators } from \"@angular/forms\";\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\nimport { of, forkJoin, Observable, Subscription, Subject } from 'rxjs';\r\nimport { tap, switchMap } from 'rxjs/operators';\r\nimport { CellClickEvent } from '@progress/kendo-angular-treelist';\r\n\r\n/********** Component & Service **********/\r\nimport {\r\n ZComponent, ZComponentHelper, ZComponentOutputEvent,\r\n ZField, ZGroup, ZComponentProperties, FieldService,\r\n WebApiService, AuthService\r\n} from \"mmhglobal-zcore\";\r\n\r\n\r\nexport interface ZTreeListColumn {\r\n field: string;\r\n title: string;\r\n width: number;\r\n visible: boolean | any;\r\n fieldType: string;\r\n navigateTo: string;\r\n command: any;\r\n class: any;\r\n footerTemplate: boolean;\r\n aggregateType: string;\r\n aggregateTitle: string;\r\n iconOnly?: boolean;\r\n}\r\n\r\nexport class ZTreeListOptions {\r\n constructor(\r\n public sortable?: boolean,\r\n public resizable?: boolean,\r\n public filterable?: boolean,\r\n public reorderable?: boolean,\r\n public columnMenu?: boolean,\r\n public scrollable?: boolean,\r\n public refresh?: boolean,\r\n public autoBind?: boolean,\r\n public dataSource?: string,\r\n public dataBound?: any,\r\n public idField?: string,\r\n public parentIdField?: string,\r\n public columns?: Array<any>,\r\n public aggregate?: any,\r\n public pageAble?: any,\r\n ) { }\r\n}\r\n\r\n@Component({\r\n selector: \"app-ztreelist\",\r\n templateUrl: \"./ztreelist.component.html\",\r\n styleUrls: [\"./ztreelist.component.scss\"],\r\n})\r\nexport class ZtreelistComponent implements ZComponent, OnInit, OnDestroy {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n // @ViewChild(ZTreeListBindingDirective, { static: false }) ztreelist: ZTreeListBindingDirective;\r\n ztreelist: any = null;\r\n subscription: Subscription;\r\n dataSource: string;\r\n idField = \"Id\";\r\n parentIdField = \"ParentId\";\r\n options: ZTreeListOptions = new ZTreeListOptions();\r\n componentProperties = new ZComponentProperties();\r\n fieldgridColVisible: any[];\r\n pageSize = 20;\r\n inlineEditedFormGroups: Array<any> = [];\r\n isLoading: boolean;\r\n treelistSubject: Subject<any> = new Subject<any>();\r\n // treelistSubject: Subject<any> = new Subject<any>();\r\n // subscription: Subscription;\r\n // ztreelist: any = null;\r\n // columns: any[];\r\n\r\n private widthReduce: number;\r\n\r\n private heightReduce: number;\r\n\r\n constructor(\r\n private fieldService: FieldService,\r\n private webapiService: WebApiService,\r\n private activatedRoute: ActivatedRoute,\r\n private router: Router,\r\n private authService: AuthService) { }\r\n // ngAfterViewInit(): void {\r\n // // this.ztreelist.setOptions({data: this.data, group: this.group});\r\n // }\r\n\r\n ngOnInit() {\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n\r\n this.widthReduce = this.data.WidthReduce || 60;\r\n this.heightReduce = this.data.HeightReduce || 560;\r\n this.pageSize = this.data.PageSize || 20;\r\n if (!!this.data.Options) {\r\n this.setLocalOptions();\r\n } else {\r\n this.setFieldElementOptions();\r\n }\r\n \r\n }\r\n\r\n ngOnDestroy() {\r\n // if (this.subscription) {\r\n // this.subscription.unsubscribe();\r\n // }\r\n }\r\n\r\n getGridStyle() {\r\n // debugger;\r\n return {\r\n \"height.px\": this.getGridHeight(), // window.innerHeight - this.heightReduce, // 450,\r\n \"width.px\": window.innerWidth - this.widthReduce,\r\n }; // \"width.px\": this.innerWidth - 35\r\n }\r\n\r\n private getGridHeight() {\r\n const h = window.innerHeight - this.heightReduce;\r\n return h < 180 ? 180 : h;\r\n }\r\n\r\n public setEnable = (status: boolean) => {\r\n const fc = this.group.form.controls[this.data.Value];\r\n status ? fc.enable() : fc.disable();\r\n this.componentProperties.isReadOnly = !status;\r\n }\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n }\r\n\r\n public setRequire = (status: boolean) => {\r\n this.componentProperties.isRequired = status;\r\n ZComponentHelper.changeValidator(status, this.group, this.data.Value, this.componentProperties, Validators.required);\r\n }\r\n\r\n public setData = (gData: any) => {\r\n this.dataSource = gData;\r\n this.createFormControlsForInlineEdit(gData);\r\n if (gData && this.inlineEditedFormGroups && this.inlineEditedFormGroups.length > 0) {\r\n gData.forEach(data => {\r\n const fgVal = this.inlineEditedFormGroups.find(i => i[this.idField] === data[this.idField]);\r\n const fg = fgVal.Fg;\r\n if (fgVal && fg) {\r\n const ke = Object.keys(fg.controls);\r\n Object.keys(fg.controls).forEach(k => {\r\n const fc = fg.controls[k];\r\n if (fc) {\r\n fc.setValue(data[k]);\r\n }\r\n });\r\n }\r\n });\r\n }\r\n }\r\n\r\n public isButtonHidden(col: any, cellContain: any) {\r\n if (col.visible) {\r\n return ZComponentHelper.getGroupEvalValue.call(this, col.visible, cellContain.viewItem.data);\r\n }\r\n\r\n if (!col.hiddenParam || col.hiddenValue === 'undefined') {\r\n return false;\r\n }\r\n\r\n if (cellContain.viewItem.data[col.hiddenParam] === null) {\r\n return true;\r\n }\r\n\r\n if (cellContain.viewItem.data[col.hiddenParam] === col.hiddenValue) {\r\n return true;\r\n } else { return false; }\r\n }\r\n\r\n public buttonClick(button: any, cellContext: any) {\r\n if (button.edit) {\r\n button.edit(cellContext);\r\n } else {\r\n this.group.subject.next({\r\n type: \"buttonClick\",\r\n target: button.ClickEvent,\r\n data: cellContext\r\n } as ZComponentOutputEvent);\r\n }\r\n }\r\n\r\n public onNavigateTo(event: any, colSetting: any, rowData: any, cellData: string) {\r\n // debugger;\r\n // const n = colSetting.navigateTo.replace('/:id', cellData);\r\n event.stopPropagation();\r\n this.group.subject.next({\r\n type: 'zgrid-onNavigateTo',\r\n target: colSetting.navigateTo,\r\n data: cellData\r\n } as ZComponentOutputEvent);\r\n }\r\n\r\n public isColumnsVisible(fieldExpr) {\r\n if (fieldExpr !== false && !fieldExpr) {\r\n return true;\r\n }\r\n const v = ZComponentHelper.getGroupEvalValue.call(this, fieldExpr);\r\n return v;\r\n }\r\n\r\n private setLocalOptions() {\r\n const options: ZTreeListOptions = ZComponentHelper.getGroupValue(\r\n this.data.Options,\r\n this.group\r\n );\r\n if (!options) {\r\n console.warn(\"No initialise for Field.Options: \", this.data.Options);\r\n return;\r\n }\r\n this.options = options;\r\n this.options.idField = this.options.idField || this.idField;\r\n this.options.parentIdField = this.options.parentIdField || this.parentIdField;\r\n\r\n\r\n const _translationFullList = this.authService.SystemLocaleTranslation;\r\n //debugger;\r\n //const _translationFilteredList = _translationFullList ? _translationFullList.filter(x => x['ProjectName'] === projectName && x['ElementName'] === fieldName) : null;\r\n\r\n\r\n //if (this.options.columns && )\r\n //const translatedTitle = _translationFilteredList.find(x => x['PhraseKey'] === field.Name.toLowerCase());\r\n //if (translatedTitle) {\r\n // const _label = field.Label.toString().trim();\r\n //}\r\n\r\n if (\r\n this.options.dataSource &&\r\n typeof this.options.dataSource === \"string\"\r\n ) {\r\n if (this.options.dataSource.startsWith(\"group.\")) {\r\n this.dataSource = ZComponentHelper.getGroupValue(this.options.dataSource, this.group);\r\n } else {\r\n console.error(this.data.Name + \" - has invalid dataSource\");\r\n }\r\n } else {\r\n console.error(this.data.Name + \" - dataSource property is not declared.\");\r\n }\r\n }\r\n\r\n private setFieldElementOptions() {\r\n this.options.sortable = true;\r\n this.options.resizable = true;\r\n this.options.filterable = true;\r\n this.options.resizable = true;\r\n this.options.columnMenu = this.data.DisableGridColumnMenu ? false : true;\r\n this.options.scrollable = true;\r\n this.options.idField = this.data[\"idField\"] || this.idField;\r\n this.options.parentIdField = this.data[\"parentIdField\"] || this.parentIdField;\r\n this.options.columns = [];\r\n this.options.aggregate = [];\r\n this.options.pageAble = this.data.PageSize ? true : false;\r\n\r\n let zfields = [];\r\n this.fieldService.getFormFieldCode(this.data[\"ColumnFieldCode\"], \"FormField\", null, null).pipe(\r\n switchMap(fields => {\r\n zfields = fields;\r\n return this.getButtonsFromZButtons(fields);\r\n }),\r\n tap((buttons) => {\r\n this.setTreeListColumns(zfields, buttons);\r\n }),\r\n switchMap(() => {\r\n return this.getDataBinding();\r\n }),\r\n tap(data => {\r\n this.createFormControlsForInlineEdit(data);\r\n })\r\n ).subscribe(data => {\r\n if (data) {\r\n this.dataSource = data;\r\n }\r\n });\r\n }\r\n\r\n // const zbuttonFields = [] as Array<ZField>;\r\n // fields.forEach(field => {\r\n // if (field.Type === \"zbuttons\") {\r\n // let fieldColVisible = field.gridColVisible;\r\n // if (field.gridColVisible && field.gridColVisible.toString().startsWith('group.')) {\r\n // // field.gridColVisible = ZComponentHelper.getGroupValue(field.gridColVisible.toString(), this.group);\r\n // fieldColVisible = ZComponentHelper.getGroupValue(field.gridColVisible.toString(), this.group);\r\n // }\r\n // // if (field.gridColVisible === true) {\r\n // if (fieldColVisible === true) {\r\n // zbuttonFields.push(field);\r\n // }\r\n // }\r\n // });\r\n\r\n // if (zbuttonFields.length === 0) {\r\n // return of([]);\r\n // }\r\n // zbuttonFields.forEach(zbuttonField => {\r\n // zbuttonResult.push(\r\n // this.fieldService.getFormFieldCode(zbuttonField.Value, \"FormField\", null, null).pipe(\r\n // switchMap(buttons => {\r\n // return of({ zbuttonField, buttons });\r\n // }))\r\n // );\r\n // });\r\n\r\n private getButtonsFromZButtons(fields: Array<ZField>): Observable<any> {\r\n const buttonCmd = [];\r\n const zbuttonResult = [];\r\n fields.forEach(field => {\r\n if (field.Type === \"zbuttons\" && ZComponentHelper.getGroupValue(field.gridColVisible as string, this.group)) {\r\n zbuttonResult.push(\r\n this.fieldService.getFormFieldCode(field.Value, \"FormField\", null, null).pipe(\r\n switchMap(buttons => {\r\n return of({ field, buttons });\r\n }))\r\n );\r\n }\r\n });\r\n\r\n if (zbuttonResult.length === 0) {\r\n return of([]);\r\n }\r\n\r\n return forkJoin(zbuttonResult).pipe(\r\n tap(resp => {\r\n resp.forEach(zbuttonsArray =>\r\n zbuttonsArray[\"buttons\"].forEach((button: any) => {\r\n buttonCmd.push({\r\n zbuttonsName: zbuttonsArray[\"field\"].Value,\r\n name: button.Value,\r\n class: button.Class,\r\n text: button.Label,\r\n icon: button.Icon,\r\n visible: button.Visible,\r\n hiddenParam: button[\"hiddenParam\"],\r\n hiddenValue: button[\"hiddenValue\"],\r\n edit: button.edit,\r\n ClickEvent: button.ClickEvent,\r\n ShowLabel: button.ShowLabel,\r\n color: button.Color\r\n });\r\n })\r\n );\r\n }),\r\n switchMap(() => {\r\n return of(buttonCmd);\r\n })\r\n );\r\n }\r\n\r\n private setTreeListColumns(fields: Array<ZField>, buttons: any) {\r\n fields.forEach(field => {\r\n if (Array.isArray(field.Value)) {\r\n this.setTreeListColumns(field.Value, buttons);\r\n }\r\n if (ZComponentHelper.getGroupValue(field.gridColVisible as string, this.group) === true) {\r\n if (field.Type === \"zbuttons\") {\r\n this.insertCommand(field, buttons);\r\n } else {\r\n if (field.AggregateType && field.AggregateType !== \"\") {\r\n let aggregatetitle = \"\";\r\n if (field.AggregateType === \"sum\") {\r\n aggregatetitle = \"Total: \";\r\n } else {\r\n aggregatetitle = field.AggregateType + \": \";\r\n }\r\n this.insertFooterTemplateField(field, aggregatetitle);\r\n this.options.aggregate.push({\r\n field: field.Value,\r\n aggregate: field.AggregateType\r\n });\r\n } else {\r\n this.insertField(field);\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n private insertField(field: ZField) {\r\n let colTitle = field.Name;\r\n if (colTitle.toString().startsWith('group.')) {\r\n colTitle = ZComponentHelper.getGroupValue(colTitle.toString(), this.group);\r\n }\r\n this.options.columns.push(\r\n Object.assign(field, {\r\n field: field.Value,\r\n title: colTitle,\r\n width: field.width,\r\n visible: true,\r\n fieldType: field.Type,\r\n navigateTo: field.NavigateTo,\r\n command: null,\r\n class: field.DivClass,\r\n footerTemplate: false,\r\n aggregateType: \"\",\r\n aggregateTitle: \"\",\r\n isEditableInGrid: field.IsEditableInGrid\r\n })\r\n );\r\n }\r\n\r\n private insertCommand(field: ZField, buttons: any) {\r\n let colTitle = field.Name;\r\n if (colTitle.toString().startsWith('group.')) {\r\n colTitle = ZComponentHelper.getGroupValue(colTitle.toString(), this.group);\r\n }\r\n this.options.columns.push({\r\n field: field.Name,\r\n title: colTitle,\r\n width: field.width,\r\n visible: field.Visible,\r\n fieldType: field.Type,\r\n navigateTo: field.NavigateTo,\r\n command: buttons.filter(x => x.zbuttonsName === field.Value),\r\n class: field.DivClass,\r\n footerTemplate: false,\r\n aggregateType: \"\",\r\n aggregateTitle: \"\",\r\n isEditableInGrid: field.IsEditableInGrid\r\n });\r\n }\r\n\r\n private insertFooterTemplateField(field: ZField, aggregatetitle: string) {\r\n let colTitle = field.Name;\r\n if (colTitle.toString().startsWith('group.')) {\r\n colTitle = ZComponentHelper.getGroupValue(colTitle.toString(), this.group);\r\n }\r\n this.options.columns.push({\r\n field: field.Value,\r\n title: colTitle,\r\n width: field.width,\r\n visible: true,\r\n fieldType: field.Type,\r\n navigateTo: field.NavigateTo,\r\n command: null,\r\n class: field.DivClass,\r\n footerTemplate: true,\r\n aggregateType: field.AggregateType,\r\n aggregateTitle: aggregatetitle,\r\n isEditableInGrid: field.IsEditableInGrid\r\n });\r\n }\r\n\r\n private getDataBinding(): Observable<any> {\r\n if (this.data.DataSource) {\r\n return of(ZComponentHelper.getGroupValue(this.data.DataSource, this.group));\r\n }\r\n\r\n const resourceUrl = this.getResouceURL();\r\n if (resourceUrl) {\r\n return this.webapiService.getApi(resourceUrl, null, null, null, null, null, true);\r\n }\r\n return of([]);\r\n }\r\n\r\n private getResouceURL() {\r\n return ZComponentHelper.getGroupValue(\r\n this.data.ResourceURL,\r\n this.group\r\n );\r\n }\r\n\r\n cellClickHandler(event: CellClickEvent) {\r\n if (!!this.data.DisableCellClickHandler) {\r\n return;\r\n }\r\n\r\n console.log(\"cellClick event: \", event);\r\n if (this.data.OnItemClick) {\r\n const func = ZComponentHelper.getGroupEvalValue.call(this, this.data.OnItemClick);\r\n if (typeof func === 'function') {\r\n const callFunc = func.bind(this.group.ctrlScope);\r\n callFunc(event);\r\n }\r\n return;\r\n }\r\n\r\n this.editModel(event.dataItem);\r\n }\r\n\r\n private editModel(dataItem: any) {\r\n if (this.data.EditClickURL) {\r\n // TODO:\r\n // debugger;\r\n // this.router.navigate([this.data.EditClickURL, dataItem.Id]);\r\n const colFields = ZComponentHelper.getGroupValue(this.data.ColumnFields, this.group);\r\n this.group.subject.next({\r\n type: \"zgrid-cellClick\",\r\n target: this.data.EditClickURL,\r\n data: dataItem,\r\n columnFields$: colFields\r\n } as ZComponentOutputEvent);\r\n } else {\r\n this.router.navigate([this.group.editModelURL, dataItem.Id, 'edit'], {\r\n relativeTo: this.activatedRoute\r\n });\r\n // console.log('Path: ', this.activatedRoute['_routerState'].snapshot.url);\r\n // const currentPath = this.activatedRoute['_routerState'].snapshot.url;\r\n // this.router.navigate([currentPath + \"/\" + this.group.editModelURL, dataItem.Id]);\r\n }\r\n }\r\n\r\n private createFormControlsForInlineEdit(data: any) {\r\n if (this.options.columns.find(c => c.isEditableInGrid) === undefined || !data) {\r\n return;\r\n }\r\n\r\n this.inlineEditedFormGroups = [];\r\n\r\n data.forEach(d => {\r\n const items = {};\r\n this.options.columns.forEach(c => {\r\n items[c.field] = new FormControl(d[c.field]);\r\n });\r\n const formGroup = new FormGroup(items);\r\n this.inlineEditedFormGroups.push({ Id: d[this.idField], Fg: formGroup });\r\n });\r\n }\r\n\r\n public getInlineField(value: any) {\r\n return this.options.columns.find(x => x.Value === value);\r\n }\r\n\r\n public getInlineForm(dataItem: any) {\r\n return this.inlineEditedFormGroups.find(x => x.Id === dataItem[this.idField]).Fg;\r\n }\r\n\r\n public isInlineEditColVisible(dataItem: any, column: any) {\r\n const isVisible = dataItem[`${column.Value}_Visible`];\r\n return !(isVisible === false);\r\n }\r\n\r\n public getFormat(col: any) {\r\n let format = \"\";\r\n const formatArr = col.FormatOptions.split(\".\")\r\n let dp = 0;\r\n\r\n if (formatArr.length > 1) {\r\n dp = formatArr[1].length;\r\n }\r\n\r\n if (dp !== 0) {\r\n format = \"1.\" + dp + \"-\" + dp;\r\n }\r\n\r\n return format;\r\n }\r\n\r\n public setHeaderText(columnName: string, newHeaderTitle: string) {\r\n const gridColumns = this.options.columns;\r\n gridColumns.forEach((col: any) => {\r\n if (col.Name === columnName || col.field === columnName) {\r\n col.title = newHeaderTitle;\r\n }\r\n });\r\n }\r\n\r\n public getColClass(dataItem: any, col: any) {\r\n let ngClass = \"gridCell \";\r\n if (col.fieldType === 'number' || col.fieldType === 'currency' || col.fieldType === 'znumeric') {\r\n ngClass += \"rightAligned \";\r\n }\r\n\r\n if (dataItem[col.field + '_Class']) {\r\n ngClass += dataItem[col.field + '_Class'] + \" \";\r\n }\r\n\r\n if (col.Class) {\r\n ngClass += col.Class + \" \";\r\n }\r\n\r\n return ngClass;\r\n }\r\n\r\n setGridIsLoading(triggered: boolean) {\r\n this.isLoading = triggered;\r\n }\r\n\r\n onFilterChange(event: any): void {\r\n if (this.ztreelist) {\r\n // to be implement.\r\n }\r\n }\r\n\r\n private mapFilterOperator(operator: any) {\r\n switch (operator) {\r\n case \"eq\":\r\n return \"eq\";\r\n case \"neq\":\r\n return \"neq\";\r\n case \"lt\":\r\n return \"lt\";\r\n case \"lte\":\r\n return \"lte\";\r\n case \"gt\":\r\n return \"gt\";\r\n case \"gte\":\r\n return \"gte\";\r\n case \"startswith\":\r\n return \"startswith\";\r\n case \"endswith\":\r\n return \"endswith\";\r\n case \"isnull\":\r\n return \"isnull\";\r\n case \"isnotnull\":\r\n return \"isnotnull\";\r\n default:\r\n return \"==\";\r\n // eq, neq, isnull, isnotnull, endswith, startswith\r\n }\r\n }\r\n\r\n public filterable(value: any) {\r\n if (value === false) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n public sortable(value: any) {\r\n if (value === false) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n}\r\n","<div *ngIf=\"(!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\" style=\"margin: 10px 0 6px 0;\">\r\n <div *ngIf=\"data.Title\" class=\"treelistTitle\">{{data.Title}}</div>\r\n <kendo-treelist [kendoTreeListFlatBinding]=\"dataSource\" [ngStyle]=\"getGridStyle()\" [idField]=\"options.idField\" [parentIdField]=\"options.parentIdField\"\r\n (cellClick)=\"cellClickHandler($event)\"\r\n [sortable]=\"options.sortable\"\r\n [resizable]=\"options.resizable\"\r\n [filterable]=\"false\"\r\n [reorderable]=\"false\"\r\n [columnMenu]=\"options.columnMenu\"\r\n [scrollable]=\"options.scrollable\"\r\n [aggregate]=\"options.aggregate\"\r\n [pageable]=\"options.pageAble\"\r\n [pageSize]=\"data.PageSize\"\r\n [initiallyExpanded]=\"data.DefaultCollapse === false\"\r\n (filterChange)=\"onFilterChange($event)\"\r\n kendoTreeListExpandable\r\n treelist>\r\n\r\n <!--\r\n [filterable]=\"options.filterable\"\r\n [reorderable]=\"options.resizable\"\r\n -->\r\n <ng-container *ngFor=\"let col of options.columns; index as i\">\r\n <kendo-treelist-column *ngIf=\"!col.command\"\r\n [class]=\"col.class\"\r\n [expandable]=\"i===0\"\r\n [field]=\"col.field\"\r\n [title]=\"col.title || col.field\"\r\n [width]=\"col.width || 250\"\r\n [filterable]=\"filterable(col.enableFiltering)\"\r\n [sortable]=\"sortable(col.enableSorting)\"\r\n [hidden]=\"!isColumnsVisible(col.visible)\">\r\n <div [ngSwitch]=\"true\">\r\n <div *ngSwitchCase=\"col.fieldType === 'number'\r\n || col.fieldType === 'currency'\r\n || col.fieldType === 'znumeric'\">\r\n <ng-template kendoTreeListFilterCellTemplate let-filter let-column=\"column\">\r\n <kendo-treelist-numeric-filter-cell [column]=\"column\" [filter]=\"filter\" operator=\"eq\">\r\n <kendo-filter-eq-operator></kendo-filter-eq-operator>\r\n <kendo-filter-neq-operator></kendo-filter-neq-operator>\r\n <kendo-filter-lt-operator></kendo-filter-lt-operator>\r\n <kendo-filter-lte-operator></kendo-filter-lte-operator>\r\n <kendo-filter-gt-operator></kendo-filter-gt-operator>\r\n <kendo-filter-gte-operator></kendo-filter-gte-operator>\r\n <kendo-filter-isnull-operator></kendo-filter-isnull-operator>\r\n <kendo-filter-isnotnull-operator></kendo-filter-isnotnull-operator>\r\n </kendo-treelist-numeric-filter-cell>\r\n </ng-template>\r\n </div>\r\n <div *ngSwitchCase=\"col.fieldType == 'zdate'\r\n || col.fieldType === 'zdatetime'\r\n || col.fieldType === 'zuidatetime'\">\r\n <div *ngIf=\"col.filterByDateRange === true\">\r\n <ng-template kendoTreeListFilterCellTemplate let-filter let-column=\"column\" operator=\"lte\">\r\n <date-range-filter-cell class=\"date-range-filter\"\r\n [filter]=\"filter\"\r\n [field]=\"col.field\">\r\n <kendo-treelist-filter-lt-operator></kendo-treelist-filter-lt-operator>\r\n <kendo-treelist-filter-lte-operator></kendo-treelist-filter-lte-operator>\r\n <kendo-treelist-filter-gt-operator></kendo-treelist-filter-gt-operator>\r\n <kendo-treelist-filter-gte-operator></kendo-treelist-filter-gte-operator>\r\n <kendo-treelist-filter-isnull-operator></kendo-treelist-filter-isnull-operator>\r\n <kendo-treelist-filter-isnotnull-operator></kendo-treelist-filter-isnotnull-operator>\r\n </date-range-filter-cell>\r\n </ng-template>\r\n </div>\r\n <div *ngIf=\"col.filterByDateRange === false\">\r\n <ng-template kendoTreeListFilterCellTemplate let-filter let-column=\"column\">\r\n <kendo-treelist-date-filter-cell [column]=\"column\" [filter]=\"filter\" operator=\"lte\">\r\n <kendo-treelist-filter-lt-operator></kendo-treelist-filter-lt-operator>\r\n <kendo-treelist-filter-lte-operator></kendo-treelist-filter-lte-operator>\r\n <kendo-treelist-filter-gt-operator></kendo-treelist-filter-gt-operator>\r\n <kendo-treelist-filter-gte-operator></kendo-treelist-filter-gte-operator>\r\n <kendo-treelist-filter-isnull-operator></kendo-treelist-filter-isnull-operator>\r\n <kendo-treelist-filter-isnotnull-operator></kendo-treelist-filter-isnotnull-operator>\r\n </kendo-treelist-date-filter-cell>\r\n </ng-template>\r\n </div>\r\n </div>\r\n <div *ngSwitchDefault>\r\n <ng-template kendoTreeListFilterCellTemplate let-filter let-column=\"column\">\r\n <kendo-treelist-string-filter-cell [column]=\"column\" [filter]=\"filter\" operator=\"contains\">\r\n <kendo-treelist-filter-contains-operator></kendo-treelist-filter-contains-operator>\r\n <kendo-treelist-filter-eq-operator></kendo-treelist-filter-eq-operator>\r\n <kendo-treelist-filter-neq-operator></kendo-treelist-filter-neq-operator>\r\n <kendo-treelist-filter-startswith-operator></kendo-treelist-filter-startswith-operator>\r\n <kendo-treelist-filter-endswith-operator></kendo-treelist-filter-endswith-operator>\r\n <kendo-treelist-filter-isnull-operator></kendo-treelist-filter-isnull-operator>\r\n <kendo-treelist-filter-isnotnull-operator></kendo-treelist-filter-isnotnull-operator>\r\n </kendo-treelist-string-filter-cell>\r\n </ng-template>\r\n </div>\r\n </div>\r\n <ng-template kendoTreeListCellTemplate let-dataItem let-rowIndex=\"rowIndex\" let-cellContext=\"cellContext\">\r\n <div style=\"margin: 7px 0;display: inline;\" [style.color]=\"(!!dataItem.Color ? [dataItem.Color] : 'black')\" *ngIf=\"!col.navigateTo && col.isEditableInGrid !== true\" [ngSwitch]=\"col.fieldType\" [ngClass]=\"getColClass(dataItem, col)\">\r\n <span *ngSwitchCase=\"'zdate'\">\r\n {{ dataItem[col.field] | date: 'dd/MM/yyyy' }}\r\n </span>\r\n <span *ngSwitchCase=\"'zshortdate'\">\r\n {{ dataItem[col.field] | date: 'MMM yyyy' }}\r\n </span>\r\n <span *ngSwitchCase=\"'zdatetime'\">\r\n {{ dataItem[col.field] | date: 'dd/MM/yyyy hh:mm:ss aa' }}\r\n </span>\r\n <span *ngSwitchCase=\"'zuidatetime'\">\r\n {{ dataItem[col.field] | date: 'dd/MM/yyyy hh:mm:ss aa' }}\r\n </span>\r\n <span *ngSwitchCase=\"'number'\">\r\n <div style=\"text-align:right;\">{{ dataItem[col.field] | number }} </div>\r\n </span>\r\n <span *ngSwitchCase=\"'currency'\">\r\n <div style=\"text-align:right;\">{{ dataItem[col.field] | number: '1.2-2' }}</div>\r\n </span>\r\n <span *ngSwitchCase=\"'znumeric'\">\r\n <div style=\"text-align:right;\">{{ dataItem[col.field] | number: getFormat(col) }}</div>\r\n </span>\r\n <span *ngSwitchCase=\"'url'\" style=\"color: blue; cursor: pointer; text-decoration:underline;\">\r\n {{ dataItem[col.field] }}\r\n </span>\r\n <span *ngSwitchDefault>\r\n {{ dataItem[col.field]}}\r\n </span>\r\n </div>\r\n <div style=\"margin: 7px 0;display: inline;\" [style.color]=\"(!!dataItem.Color ? [dataItem.Color] : 'black')\" *ngIf=\"!col.navigateTo && col.isEditableInGrid === true && isInlineEditColVisible(dataItem, col)\" [ngSwitch]=\"col.fieldType\" [ngClass]=\"getColClass(dataItem, col)\">\r\n <span *ngSwitchCase=\"'checkbox'\">\r\n <app-zcheckbox style=\"width: 100%;\" [data]=\"getInlineField(col.Value)\" [group]=\"group\" [form]=\"getInlineForm(dataItem)\" (click)=\"buttonClick(col, cellContext)\"></app-zcheckbox>\r\n </span>\r\n <span *ngSwitchCase=\"'zuiselectmultiple'\">\r\n <app-zselectmultiple style=\"width: 100%;\" [data]=\"getInlineField(col.field)\" [group]=\"group\" [form]=\"getInlineForm(dataItem)\"></app-zselectmultiple>\r\n </span>\r\n <span *ngSwitchCase=\"'textarea'\">\r\n <app-ztextarea style=\"width: 100%;\" [data]=\"getInlineField(col.Value)\" [group]=\"group\" [form]=\"getInlineForm(dataItem)\"></app-ztextarea>\r\n </span>\r\n <span *ngSwitchCase=\"['zuidatetime','zdate','zdatetime','zshortdate'].includes(col.fieldType) ? col.fieldType : ''\">\r\n <app-zdatetime style=\"width: 100%;\" [data]=\"getInlineField(col.Value)\" [group]=\"group\" [form]=\"getInlineForm(dataItem)\"></app-zdatetime>\r\n </span>\r\n </div>\r\n <span *ngIf=\"!!col.navigateTo\" (click)=\"onNavigateTo($event, col, dataItem, dataItem[col.field])\">\r\n <ion-button color=\"light\" size=\"small\">\r\n {{ dataItem[col.field] }}\r\n <!-- <ion-icon slot= \"end\" name=\"arrow-forward\"></ion-icon> -->\r\n <fa-icon slot=\"end\" [icon]=\"'arrow-right'\"></fa-icon>\r\n </ion-button>\r\n </span> \r\n </ng-template>\r\n <ng-template *ngIf=\"col.footerTemplate\" kendoTreeListFooterTemplate let-aggregates=\"aggregates\">\r\n <div *ngIf=\"!col.navigateTo\" [ngSwitch]=\"col.fieldType\" [ngClass]=\"{'rightAligned': col.fieldType === 'number' || col.fieldType === 'currency'}\">\r\n <span *ngSwitchCase=\"'number'\">\r\n <b>\r\n {{ col.aggregateTitle | titlecase }} {{ aggregates[col.field][col.aggregateType] | number }}\r\n </b>\r\n </span>\r\n <span *ngSwitchCase=\"'currency'\">\r\n <b>\r\n {{ col.aggregateTitle | titlecase }} {{ aggregates[col.field][col.aggregateType] | number: '1.2-2' }}\r\n </b>\r\n </span>\r\n </div>\r\n </ng-template>\r\n </kendo-treelist-column>\r\n <kendo-treelist-command-column *ngIf=\"!!col.command\" [title]=\"col.title || col.field\" [width]=\"col.width || 250\">\r\n <ng-template kendoTreeListCellTemplate let-cellContext=\"cellContext\">\r\n <div [ngClass]=\"col.class\">\r\n <button *ngFor=\"let col2 of col.command; index as i\" type=\"button\" [kendoTreeListEditCommand]=\"cellContext\"\r\n [title]=\"col2.text\" (click)=\"buttonClick(col2, cellContext)\"\r\n [hidden]=\"isButtonHidden(col2, cellContext)\">\r\n <fa-icon [icon]=\"col2.icon\" [style.color]=\"(!!col2.color ? [col2.color] : 'black')\">\r\n </fa-icon>\r\n <div *ngIf=\"col2.ShowLabel === undefined || col2.ShowLabel\">{{col2.text}}</div>\r\n </button>\r\n </div>\r\n </ng-template>\r\n </kendo-treelist-command-column>\r\n </ng-container>\r\n\r\n <!-- <kendo-treelist-command-column width=\"140\">\r\n <ng-template kendoTreeListCellTemplate let-isNew=\"isNew\" let-cellContext=\"cellContext\">\r\n <button [kendoTreeListAddCommand]=\"cellContext\"\r\n icon=\"filter-add-expression\" title=\"Add Child\">\r\n </button>\r\n <button [kendoTreeListCancelCommand]=\"cellContext\"\r\n icon=\"cancel\" title=\"{{ isNew ? 'Discard changes' : 'Cancel' }}\">\r\n </button>\r\n </ng-template>\r\n </kendo-treelist-command-column> -->\r\n </kendo-treelist>\r\n</div>\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\n\r\n/********** Component & Service **********/\r\nimport {\r\n ZComponent, ZComponentHelper, ZComponentProperties,\r\n ZField, ZGroup\r\n} from 'mmhglobal-zcore';\r\n\r\n\r\n@Component({\r\n selector: 'app-ztrendcard',\r\n templateUrl: './ztrendcard.component.html',\r\n styleUrls: ['./ztrendcard.component.scss'],\r\n})\r\nexport class ZtrendcardComponent implements ZComponent, OnInit {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n\r\n isLoading = true;\r\n componentProperties = new ZComponentProperties();\r\n private title = \"Undefined\";\r\n private icon = \"address-card\";\r\n private color = \"#000000\";\r\n private value = 0;\r\n\r\n options = {\r\n title: this.title,\r\n icon: this.icon,\r\n color: this.color,\r\n value: this.value\r\n };\r\n\r\n// fieldElement01 = [\r\n// {\"Name\": \"myTrendCard1\",\r\n// \"Value\": \"group.myTrendCard01Value\",\r\n// \"Type\": \"ztrendcard\",\r\n// \"Visible\": \"true\",\r\n// \"DivClass\": \"col-md-3 col-lg-3\",\r\n// \"AppendDivClearFix\": false,\r\n// \"Title\": \"Upcoming Call/Follow-Up Call\",\r\n// \"Icon\": \"phone\",\r\n// \"Color\": \"#F7BC46\",\r\n// }];\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n\r\n if (this.data.Options) {\r\n const optionType = typeof (this.data.Options);\r\n if (optionType === 'object') {\r\n Object.assign(this.options, this.data.Options);\r\n } else if (optionType === 'string') {\r\n const optionValue = ZComponentHelper.getGroupEvalValue.call(this, this.data.Options);\r\n if (typeof (optionValue) === 'object') {\r\n Object.assign(this.options, optionValue);\r\n }\r\n }\r\n }\r\n\r\n this.getFieldDeclarationForSetup(this.data, this.options);\r\n this.isLoading = false;\r\n\r\n }\r\n\r\n private getFieldDeclarationForSetup(field: ZField, options: any) {\r\n options.title = ZComponentHelper.getGroupEvalValue.call(this, field.Title) || options.title;\r\n options.icon =ZComponentHelper.getGroupEvalValue.call(this, field.Icon) || options.icon;\r\n options.color =ZComponentHelper.getGroupEvalValue.call(this, field.Color) || options.color;\r\n options.value = ZComponentHelper.getGroupEvalValue.call(this, field.Value) || options.value;\r\n }\r\n\r\n public setEnable = (status: boolean) => {\r\n // const fc = this.group.form.controls[this.data.Value];\r\n // status ? fc.enable() : fc.disable();\r\n this.componentProperties.isReadOnly = !status;\r\n }\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n }\r\n\r\n public setRequire = (status: boolean) => {\r\n this.componentProperties.isRequired = status;\r\n }\r\n\r\n public setData = (gData: any) => {\r\n if(!gData)\r\n {\r\n this.options.value=0;\r\n }\r\n this.getFieldDeclarationForSetup(this.data, this.options);\r\n }\r\n\r\n}\r\n","<div *ngIf=\"!isLoading && (!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\" style=\"text-align: center;\">\r\n <ion-grid>\r\n <ion-row>\r\n <ion-col>\r\n <!-- <div class=\"trend-btn ion-activatable ripple-parent\" [routerLink]=\"[item.URL]\"> -->\r\n <div class=\"trend-btn ion-activatable ripple-parent\">\r\n <ion-label>\r\n <ion-grid style=\"width: 100%;\">\r\n <ion-row>\r\n <ion-col class=\"trend-btn-icon\" sizeLg=\"4\" sizeXs=\"4\" sizeMd=\"4\" sizeXl=\"4\">\r\n <fa-icon [icon]=\"options.icon\" [style.color]=\"options.color\"></fa-icon>\r\n </ion-col>\r\n <ion-col class=\"trend-btn-value\" sizeLg=\"4\" sizeXs=\"4\" sizeMd=\"4\" sizeXl=\"4\">\r\n <ion-label>{{ options.value }}</ion-label><br/>\r\n </ion-col>\r\n </ion-row>\r\n </ion-grid>\r\n </ion-label>\r\n <ion-label class=\"trend-btn-label\">{{ options.title }}</ion-label>\r\n <ion-ripple-effect></ion-ripple-effect>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n </ion-grid>\r\n</div>\r\n<div style=\"padding-bottom: 10px;\"></div>\r\n\r\n\r\n\r\n\r\n\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\n\r\n/********** Component & Service **********/\r\nimport { ZComponent, ZGroup, ZField } from 'mmhglobal-zcore';\r\n\r\n\r\n@Component({\r\n selector: 'app-zunknown',\r\n templateUrl: './zunknown.component.html',\r\n styleUrls: ['./zunknown.component.scss'],\r\n})\r\nexport class ZunknownComponent implements ZComponent, OnInit {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {}\r\n\r\n}\r\n","<p>\r\n Unknown field Type => {{ data.Type}} >> {{data.Name}}\r\n</p>\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input } from \"@angular/core\";\r\nimport { FormControl, FormGroup, ValidatorFn, Validators } from \"@angular/forms\";\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\nimport { AsyncSubject, forkJoin, Observable, of } from \"rxjs\";\r\nimport { concatMap, map, tap } from \"rxjs/operators\";\r\n\r\n/********** Component & Service **********/\r\nimport {\r\n ZComponent, ZField,\r\n AlertService, AuthService, FieldService, ResourceApiService, ToastService, WebApiService,\r\n ZGroup, ZComponentProperties, ZComponentHelper\r\n} from 'mmhglobal-zcore';\r\n\r\n\r\n@Component({\r\n selector: 'app-zudf',\r\n templateUrl: './zudf.component.html',\r\n styleUrls: ['./zudf.component.scss'],\r\n})\r\nexport class ZudfComponent implements ZComponent, OnInit {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n formField: ZField[];\r\n\r\n componentProperties = new ZComponentProperties();\r\n initialDataValue: any;\r\n\r\n constructor(\r\n private alertService: AlertService,\r\n private authService: AuthService,\r\n private fieldService: FieldService,\r\n private resourceApiService: ResourceApiService,\r\n private toastService: ToastService,\r\n private webApiService: WebApiService\r\n ) { }\r\n \r\n ngOnInit() {\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n\r\n // keep data Value\r\n this.initialDataValue = this.data.Value;\r\n\r\n if (ZComponentHelper.isNullUndefinedEmpty(this.data.Value)) {\r\n this.loadEmptyForm();\r\n }\r\n else {\r\n this.loadZudfForm(); \r\n }\r\n }\r\n\r\n private loadEmptyForm() {\r\n of(true).pipe(\r\n tap(() => {\r\n this.data.SubType = 'zudf';\r\n\r\n // change the value to the result field form \r\n this.data.Value = [];\r\n\r\n // change zudf to zdiv\r\n //this.data.Type = 'zdiv';\r\n }),\r\n tap(() => { \r\n if (!this.group['_zudf_' + this.data.Name]) {\r\n this.group['_zudf_' + this.data.Name] = new ZGroup;\r\n }\r\n\r\n const grp = this.group['_zudf_' + this.data.Name];\r\n \r\n grp.zModel = {};\r\n\r\n // create as new Form Group\r\n this.form = this.toFormGroup(this.data.Value);\r\n\r\n // set to zGroup scope\r\n grp.form = this.form;\r\n }),\r\n tap(() => {\r\n // set to formField for display\r\n this.formField = this.data.Value;\r\n })\r\n ).subscribe(() => {\r\n // set Field div class\r\n ZComponentHelper.setFieldsDivClass(this.group._projectName, this.group.fieldName, this.data, this.authService);\r\n });\r\n }\r\n\r\n private loadZudfForm() {\r\n of(true).pipe(\r\n concatMap(fieldElements => {\r\n const asyncSubject = new AsyncSubject<any>();\r\n this.fieldService.getFormFieldCode(this.data.Value, 'FormField', this, 'fields').pipe(\r\n map(formFieldResult => {\r\n // rename add prefix to all udf field to prevent duplicate from main form\r\n this.appendPrefix(formFieldResult, 'zudf_' + this.data.Name);\r\n\r\n // change the value to the result field form \r\n this.data.Value = formFieldResult;\r\n\r\n // change zudf to zdiv\r\n //this.data.Type = 'zdiv';\r\n\r\n // end subject\r\n asyncSubject.next(true);\r\n asyncSubject.complete();\r\n })\r\n ).subscribe();\r\n\r\n return asyncSubject.asObservable();\r\n }),\r\n tap(() => {\r\n if (!this.group['_zudf_' + this.data.Name]) {\r\n this.group['_zudf_' + this.data.Name] = new ZGroup;\r\n }\r\n\r\n const grp = this.group['_zudf_' + this.data.Name];\r\n\r\n grp.zModel = {};\r\n\r\n // create as new Form Group\r\n this.form = this.toFormGroup(this.data.Value);\r\n\r\n // set to zGroup scope\r\n grp.form = this.form;\r\n }),\r\n tap(() => {\r\n // set to formField for display\r\n this.formField = this.data.Value;\r\n })\r\n ).subscribe(() => {\r\n // set Field div class\r\n ZComponentHelper.setFieldsDivClass(this.group._projectName, this.group.fieldName, this.data, this.authService);\r\n\r\n // TODO: get saved record\r\n //this.getFormFieldzModel();\r\n\r\n // change back the data.Value\r\n if (this.data['DisableReplaceValue']) {\r\n this.data.Value = this.initialDataValue;\r\n }\r\n });\r\n }\r\n\r\n private getFormFieldzModel() {\r\n const form = this.group['_zudf_' + this.data.Name].form;\r\n const zModel = this.group['_zudf_' + this.data.Name].zModel;\r\n const url = this.resourceApiService.getURL('field');\r\n\r\n const respData = { 'parentFormId': 5722, 'zudf_Name': 'test' };\r\n\r\n Object.assign(zModel, respData);\r\n form.patchValue(zModel);\r\n form.markAsPristine();\r\n\r\n //return this.webApiService.httpGet$(url, { name: this.group.fieldName, type: 'FormField' }).pipe(\r\n // tap((respData: any) => {\r\n // debugger;\r\n // Object.assign(zModel, respData);\r\n // form.patchValue(zModel);\r\n // form.markAsPristine();\r\n // })\r\n //);\r\n }\r\n\r\n private toFormGroup(fieldElements: Array<ZField>) {\r\n const formControls: { [key: string]: FormControl } = {};\r\n this.getFormControls(fieldElements, formControls);\r\n const newFormGroup = new FormGroup(formControls);\r\n return newFormGroup;\r\n }\r\n\r\n private getFormControls(fieldArray: Array<ZField>, formControls: { [key: string]: FormControl }) {\r\n fieldArray.forEach(field => {\r\n if (typeof field.Value === \"string\" && field.Value.indexOf(\".\") !== -1) {\r\n if (['zgrid', 'ztree', 'zimg', 'textareajson'].indexOf(field.Type) === -1) {\r\n console.warn(\"FormControl - invalid field value\", field.Value);\r\n }\r\n }\r\n else {\r\n if (Array.isArray(field.Value)) {\r\n this.getFormControls(field.Value, formControls);\r\n }\r\n else {\r\n const isFormControl = ZComponentHelper.isFormControl(field);\r\n const isVisible = ZComponentHelper.isVisibleFormControl(this, field);\r\n const isRequired = ZComponentHelper.isRequiredFormControl(this, field);\r\n if (isFormControl === true) {\r\n const validators: ValidatorFn[] = ZComponentHelper.getValidators(field, isVisible, isRequired);\r\n formControls[field.Value] = new FormControl(\r\n this.group['_zudf_' + this.data.Name].zModel[field.Value],\r\n validators\r\n );\r\n if (ZComponentHelper.hasCCField(field.Type)) {\r\n const ccValidators: ValidatorFn[] = ZComponentHelper.getCCValidators(field, isVisible, isRequired);\r\n formControls[field.CCValue] = new FormControl(\r\n this.group['_zudf_' + this.data.Name].zModel[field.CCValue],\r\n ccValidators\r\n );\r\n }\r\n }\r\n\r\n }\r\n }\r\n });\r\n }\r\n\r\n private appendPrefix(fields: ZField[], prefix: any) {\r\n fields.forEach(field => {\r\n if (Array.isArray(field.Value)) {\r\n this.appendPrefix(field.Value, prefix);\r\n }\r\n else {\r\n field.Name = prefix + '_' + field.Name;\r\n if (field.Type != 'zbuttons') {\r\n field.Value = prefix + '_' + field.Value;\r\n }\r\n field.SubType = prefix;\r\n }\r\n });\r\n }\r\n\r\n ComponentIsVisible(field: ZField): any {\r\n return ZComponentHelper.ComponentIsVisible(field, this.group);\r\n }\r\n\r\n public setEnable = (status: boolean) => {\r\n this.componentProperties.isReadOnly = !status;\r\n }\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n }\r\n\r\n public setRequire = (status: boolean) => {\r\n this.componentProperties.isRequired = status;\r\n ZComponentHelper.changeValidator(status, this.group, this.data.Value, this.componentProperties, Validators.required);\r\n }\r\n\r\n public appendFormControl(zudfControlName: string, zudfControl: FormControl, fieldData: ZField) {\r\n this.form.addControl(zudfControlName, zudfControl);\r\n this.formField.push(fieldData);\r\n }\r\n \r\n public clearFormControl() {\r\n this.formField.forEach(data => {\r\n this.form.removeControl(data.Value); \r\n });\r\n\r\n this.data.Value = this.initialDataValue;\r\n\r\n this.formField = [];\r\n }\r\n}\r\n","<div style=\"padding: 15px\" *ngIf=\"data.Title && (!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\" class=\"ion-row\">\r\n <kendo-card *ngIf=\"data.Title\" width=\"100%\" >\r\n <kendo-card-header >\r\n <div>\r\n <ion-label class=\"card-header-title\">{{data.Title}}</ion-label>\r\n </div>\r\n </kendo-card-header>\r\n <kendo-card-body>\r\n <div class=\"ion-row\">\r\n <app-zformcontrol [ngClass]=\"group[field.isVisibleField] ? field.DivClass : ((field.Visible === true) ? field.DivClass : 'flex-hide')\"\r\n *ngFor=\"let field of formField | divzlayout: data.zlayout\"\r\n [field]=\"field\"\r\n [group]=\"group\"\r\n [form]=\"form\"\r\n id=\"zudf{{data.Name}}-{{field.Type}}-{{field.Name}}\">\r\n </app-zformcontrol>\r\n </div>\r\n </kendo-card-body> \r\n </kendo-card>\r\n</div>\r\n\r\n<div *ngIf=\"!data.Title && (!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\" class=\"ion-row\">\r\n <app-zformcontrol [ngClass]=\"group[field.isVisibleField] ? field.DivClass : ((field.Visible === true) ? field.DivClass : 'flex-hide')\"\r\n *ngFor=\"let field of formField | divzlayout: data.zlayout\"\r\n [field]=\"field\"\r\n [group]=\"group\"\r\n [form]=\"form\"\r\n id=\"zudf{{data.Name}}-{{field.Type}}-{{field.Name}}\">\r\n </app-zformcontrol>\r\n</div>\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input, NgZone, ViewChild } from \"@angular/core\";\r\nimport { FormGroup, Validators } from \"@angular/forms\";\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\n// import { environment } from \"src/environments/environment\";\r\nimport { take } from 'rxjs/operators';\r\nimport { HttpEventType } from '@angular/common/http';\r\nimport {\r\n FileInfo,\r\n SuccessEvent,\r\n RemoveEvent,\r\n UploadEvent,\r\n FileRestrictions,\r\n ChunkSettings,\r\n SelectEvent,\r\n UploadComponent\r\n} from \"@progress/kendo-angular-upload\";\r\n\r\n/********** Component & Service **********/\r\nimport {\r\n AuthService, ZCoreService, CompressImageService,\r\n ZComponent, ZComponentHelper, ZComponentOutputEvent, ZComponentProperties,\r\n ZField, ZGroup, UploadMetaData, ImageCompressionConfig\r\n} from \"mmhglobal-zcore\";\r\n\r\nexport class MyFileInfo implements FileInfo {\r\n name: string;\r\n uid?: string;\r\n myUid?: string;\r\n}\r\n\r\n@Component({\r\n selector: \"app-zupload\",\r\n templateUrl: \"./zupload.component.html\",\r\n styleUrls: [\"./zupload.component.scss\"],\r\n})\r\nexport class ZuploadComponent implements ZComponent, OnInit {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n @ViewChild(\"uploadComponent\") uploadComponent: UploadComponent;\r\n\r\n componentProperties = new ZComponentProperties();\r\n uploadAttachmentUrl: string = null;\r\n uploadSaveUrl = \"/Attachment/Chunk_Upload_Save\"; // should represent an actual API endpoint\r\n uploadRemoveUrl = \"/Attachment/Chunk_Upload_Remove\"; // should represent an actual API endpoint\r\n downloadFileUrl = \"/Attachment/downloadFile\";\r\n getImageUrl = \"/Attachment/getImage\"; // GET method\r\n isAutoUpload = false;\r\n isMultiple = false;\r\n imagePreviews: any[] = [];\r\n uid: string[] = [];\r\n showFileList = true;\r\n fileList: any[] = [];\r\n\r\n public restrictions: FileRestrictions = {\r\n\r\n minFileSize: 1,\r\n maxFileSize: 4194304,\r\n allowedExtensions: [\r\n \"jpg\",\r\n \"jpeg\",\r\n \"png\",\r\n \"bmp\",\r\n \"pdf\",\r\n \"txt\",\r\n \"docx\",\r\n \"doc\",\r\n \"xlsx\",\r\n \"xls\",\r\n \"ppt\",\r\n \"pptx\",\r\n \"csv\",\r\n ],\r\n };\r\n\r\n public chunkSettings: ChunkSettings = {\r\n size: 102400,\r\n maxAutoRetries: 3,\r\n };\r\n\r\n // zModelValue = [{\r\n // name: \"RXJS 01.png\",\r\n // size: 128753,\r\n // uid: \"c96e234d-af61-4587-adcc-3b400ddef884\"\r\n // }];\r\n\r\n // fieldElement = [{\r\n // Name: 'FileUploadList',\r\n // Type: 'zupload',\r\n // Value: 'FileUploadList',\r\n // SelectionOptions: ['jpg', 'jpeg', 'png', 'bmp', 'pdf'],\r\n // UploadMetaData: 'group.UploadMetaData',\r\n // AutoUpload: false,\r\n // AllowRemove: true,\r\n // Multiple: false,\r\n // OnSuccess: 'group.onSuccess()',\r\n // DivClass: \"col-md-12 col-md-6\",\r\n // Visible: true\r\n // }];\r\n\r\n constructor(\r\n private authService: AuthService,\r\n private compressImage: CompressImageService,\r\n private zcoreService: ZCoreService,\r\n private ngZone: NgZone\r\n ) {\r\n this.uploadAttachmentUrl = this.zcoreService.getEnvironment().uploadAttachmentUrl;\r\n this.uploadSaveUrl = this.uploadAttachmentUrl + this.uploadSaveUrl;\r\n this.uploadRemoveUrl = this.uploadAttachmentUrl + this.uploadRemoveUrl;\r\n }\r\n\r\n ngOnInit() {\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n\r\n // this.group['UploadMetaData'] = new UploadMetaData(null, '15', 'SO-No-1234', 'SaleOrder');\r\n\r\n\r\n // this.uploadSaveUrl = uploadAttachmentUrl + this.uploadSaveUrl;\r\n // this.uploadRemoveUrl = uploadAttachmentUrl + this.uploadRemoveUrl;\r\n\r\n if (this.data.SelectOptions) {\r\n this.restrictions.allowedExtensions = (this.data\r\n .SelectOptions as unknown) as string[];\r\n }\r\n\r\n if (this.data.MinFileSize) {\r\n this.restrictions.minFileSize = this.data.MinFileSize;\r\n }\r\n\r\n if (this.data.MaxFileSize) {\r\n this.restrictions.maxFileSize = this.data.MaxFileSize;\r\n }\r\n\r\n this.isAutoUpload = this.data.AutoUpload || false;\r\n\r\n if (!this.data.AllowRemove) {\r\n this.uploadRemoveUrl = \"\";\r\n }\r\n\r\n if (this.data.Multiple) {\r\n this.isMultiple = this.data.Multiple;\r\n }\r\n }\r\n\r\n public setEnable = (status: boolean) => {\r\n const fc = this.group.form.controls[this.data.Value];\r\n status ? fc.enable() : fc.disable();\r\n this.componentProperties.isReadOnly = !status;\r\n };\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n };\r\n\r\n public setRequire = (status: boolean) => {\r\n this.componentProperties.isRequired = status;\r\n ZComponentHelper.changeValidator(\r\n status,\r\n this.group,\r\n this.data.Value,\r\n this.componentProperties,\r\n Validators.required\r\n );\r\n };\r\n\r\n getIon_InvalidClass(form: FormGroup, data: ZField) {\r\n return ZComponentHelper.getIon_InvalidClass(form, data);\r\n }\r\n\r\n onSuccess(e: SuccessEvent): void {\r\n // angular kendo upload didn't filter away Sent event for remove, so we have to handle it here\r\n // upload progress not required for removal, thus it's also removed\r\n // @ts-ignore\r\n if (e.operation === \"remove\" && (e.response.type === HttpEventType.Sent || e.response.type === HttpEventType.UploadProgress)) {\r\n return;\r\n }\r\n\r\n if (!Array.isArray(this.group.zModel[this.data.Value])) {\r\n this.group.zModel[this.data.Value] = [];\r\n }\r\n\r\n const file = e.files[0] as MyFileInfo;\r\n const existingFileIndex = this.group.zModel[this.data.Value].findIndex(f => f.name === file.name && f.uid === file.uid);\r\n if (e.operation === \"upload\") {\r\n // console.log('upload Success: ', e);\r\n file.myUid = file.uid;\r\n delete file['httpSubscription'];\r\n\r\n if (existingFileIndex !== -1) {\r\n this.group.zModel[this.data.Value][existingFileIndex] = file;\r\n } else {\r\n this.group.zModel[this.data.Value].push(file);\r\n }\r\n\r\n } else if (e.operation === \"remove\") {\r\n if (existingFileIndex !== -1) {\r\n this.group.zModel[this.data.Value].splice(existingFileIndex, 1);\r\n }\r\n }\r\n\r\n this.group.subject.next({\r\n type: \"zupload-onSuccess\",\r\n target: this.data.OnSuccess,\r\n event: e,\r\n data: { value: e.files[0], field: this.data },\r\n } as ZComponentOutputEvent);\r\n }\r\n\r\n private compressionConfigHandler(imgConfig: ImageCompressionConfig): ImageCompressionConfig {\r\n if (imgConfig.FileSizeMaxSize) {\r\n imgConfig.FileSizeMaxSizeByte = this.convertSizeToByte(imgConfig.FileSizeMaxSize);\r\n }\r\n\r\n if (imgConfig.FileSizeMinSize) {\r\n imgConfig.FileSizeMinSizeByte = this.convertSizeToByte(imgConfig.FileSizeMinSize);\r\n }\r\n else {\r\n imgConfig.FileSizeMinSizeByte = 0;\r\n }\r\n\r\n return imgConfig;\r\n }\r\n\r\n private convertSizeToByte(sizeString: string): number {\r\n let _tempFileSizeMaxSize: number = 0;\r\n let sizeByByte: number = 0;\r\n let sizeType = 'b';\r\n\r\n // remove all space\r\n const _tempFileSize = sizeString.replace(/ /g, '');\r\n\r\n // check last char is alphabetic\r\n const lastChar = _tempFileSize.substr(_tempFileSize.length - 1);\r\n if (isNaN(parseFloat(lastChar))) {\r\n const secLastChar = _tempFileSize.substr(_tempFileSize.length - 2).slice(0, -1);\r\n\r\n if (isNaN(parseFloat(secLastChar))) {\r\n // check last 2nd char is alphabetic\r\n sizeType = secLastChar + sizeType;\r\n _tempFileSizeMaxSize = parseFloat(_tempFileSize.slice(0, -2));\r\n }\r\n else {\r\n _tempFileSizeMaxSize = parseFloat(_tempFileSize.slice(0, -1));\r\n }\r\n\r\n switch (sizeType.toLowerCase()) {\r\n case \"b\":\r\n sizeByByte = _tempFileSizeMaxSize\r\n break;\r\n case \"kb\":\r\n sizeByByte = _tempFileSizeMaxSize * 1024\r\n break;\r\n case \"mb\":\r\n sizeByByte = _tempFileSizeMaxSize * 1048576\r\n break;\r\n case \"gb\":\r\n sizeByByte = _tempFileSizeMaxSize * 1073741824\r\n break;\r\n }\r\n }\r\n else {\r\n // default using bytes if no size type\r\n sizeByByte = parseFloat(_tempFileSize);\r\n }\r\n\r\n return sizeByByte;\r\n }\r\n\r\n uploadEventHandler(e: UploadEvent) {\r\n // Image Preview\r\n const me = this;\r\n e.files.forEach((file: FileInfo) => {\r\n if (file.rawFile && file.rawFile.type.includes(\"image\")) {\r\n if (!file.validationErrors) {\r\n const reader = new FileReader();\r\n reader.onload = function (ev) {\r\n if (me.data.EnableImagePreview) {\r\n if (!me.uid.includes(file.uid)) {\r\n me.uid.push(file.uid);\r\n me.imagePreviews.push({ ...file, src: <string>reader.result });\r\n }\r\n }\r\n }\r\n reader.readAsDataURL(file.rawFile);\r\n }\r\n }\r\n });\r\n\r\n // Add metadata to the upload event\r\n let additional: UploadMetaData = ZComponentHelper.getGroupEvalValue.call(this, this.data.UploadMetaData);\r\n\r\n if (!(additional instanceof UploadMetaData)) {\r\n console.error(\"UploadMetaData defined at \" + this.data.UploadMetaData + \" is invalid: \", additional);\r\n additional = new UploadMetaData(null, \"0\");\r\n }\r\n\r\n const str = JSON.stringify(additional);\r\n\r\n e.data = { additional: str, };\r\n e.headers = e.headers.append(\"Authorization\", \"Bearer \" + this.authService.e1AccessToken);\r\n }\r\n\r\n onRemove(e: RemoveEvent): void {\r\n // remove file from component memory\r\n const index = this.fileList.findIndex(\r\n (item) => item.uid === e.files[0].uid\r\n );\r\n\r\n if (index >= 0) {\r\n this.fileList.splice(index, 1);\r\n this.group['zupload_' + this.data.Value] = this.fileList;\r\n }\r\n\r\n if (this.data['FileRemovedEvent']) {\r\n this.group.subject.next({\r\n type: \"zupload-fileRemovedEvent\",\r\n target: this.data['FileRemovedEvent'],\r\n data: e\r\n } as ZComponentOutputEvent);\r\n }\r\n else {\r\n const myFile: MyFileInfo = e.files[0] as MyFileInfo;\r\n\r\n // console.log('remove done: ', e);\r\n e.data = {\r\n id: myFile.myUid,\r\n };\r\n e.headers = e.headers.append(\r\n \"Authorization\",\r\n \"Bearer \" + this.authService.e1AccessToken\r\n );\r\n\r\n if (this.data.EnableImagePreview) {\r\n e.files.forEach((file: FileInfo) => {\r\n this.imagePreviews = this.imagePreviews.filter(f => f.uid !== file.uid);\r\n });\r\n }\r\n }\r\n }\r\n\r\n onChange(file: FileInfo[]): void {\r\n if (this.data['FileChangedEvent']) {\r\n this.group.subject.next({\r\n type: \"zupload-fileChangedEvent\",\r\n target: this.data['FileChangedEvent'],\r\n data: file\r\n } as ZComponentOutputEvent);\r\n }\r\n }\r\n\r\n selectEventHandler(e: SelectEvent) {\r\n const me = this;\r\n\r\n if (this.data['SelectFileOnly']) {\r\n // append all file to component memory\r\n e.files.forEach(async (file: FileInfo) => {\r\n if (file.rawFile) {\r\n const reader = new FileReader();\r\n reader.onload = function (ev) {\r\n // clone the data and also add the readed file to the object\r\n const fileData = Object.assign({}, file);\r\n fileData['file'] = ev.target[\"result\"];\r\n // push to component fileList\r\n me.fileList.push(fileData);\r\n me.group['zupload_' + me.data.Value] = me.fileList;\r\n\r\n if (me.data['FileSelectedEvent']) {\r\n // call the project event\r\n me.group.subject.next({\r\n type: \"zupload-fileSelectedEvent\",\r\n target: me.data['FileSelectedEvent'],\r\n data: me.fileList\r\n } as ZComponentOutputEvent);\r\n }\r\n };\r\n await reader.readAsDataURL(file.rawFile);\r\n }\r\n });\r\n }\r\n else {\r\n // Only workable for Auto Upload = false\r\n if (!this.data.AutoUpload) {\r\n // Compression for image file\r\n const imageCompressionEnabled = this.data.Compression ? true : false;\r\n\r\n //Check if Image Compression is enabled.\r\n if (imageCompressionEnabled === true) {\r\n e.files.forEach((file: FileInfo) => {\r\n // Compress only if it is an image file\r\n if (file.rawFile && file.rawFile.type.includes(\"image\")) {\r\n if (!file.validationErrors) {\r\n const imgConfig = this.compressionConfigHandler(this.data.Compression);\r\n if (file.size > imgConfig.FileSizeMinSizeByte) {\r\n me.compressImage.compress(file.rawFile, imgConfig) //Pass in parameter to set the Compression Options\r\n .pipe(take(1))\r\n .subscribe(compressFile => {\r\n this.ngZone.run(() => {\r\n file.rawFile = compressFile;\r\n file.size = compressFile.size;\r\n\r\n // clone the data and also add the readed file to the object\r\n const fileData = Object.assign({}, file);\r\n // push to component fileList\r\n me.fileList.push(fileData);\r\n\r\n const reader = new FileReader();\r\n reader.readAsDataURL(file.rawFile);\r\n });\r\n console.log(`Compressed file size: ${(file.rawFile.size / 1024).toFixed(2)}KB`);\r\n });\r\n } // file size check\r\n } // validationErrors check\r\n } // file type check\r\n }) // loop each file\r\n } // imagecompression check\r\n\r\n // add to group scope\r\n me.group['zupload_' + me.data.Value] = e.files;\r\n }\r\n }\r\n }\r\n\r\n clearFiles() {\r\n this.uploadComponent.clearFiles();\r\n this.group['zupload_' + this.data.Value] = this.fileList;\r\n }\r\n}\r\n","<ion-item [formGroup]=\"form\" *ngIf=\"(!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\" [ngClass]=\"getIon_InvalidClass(form, data)\" style=\"margin-left: -15px;\">\r\n <ion-label [attr.for]=\"data.Value\" *ngIf=\"data.ShowLabel === undefined || data.ShowLabel\" position=\"stacked\" style=\"margin-bottom: 10px;\">\r\n {{data.Label}} <ion-text *ngIf=\"(!!componentProperties.isRequiredField ? group[componentProperties.isRequiredField] : componentProperties.isRequired)\" color=\"danger\">*</ion-text>\r\n </ion-label>\r\n <div class=\"ion-row\" style=\"justify-content: space-between; width: 100%\">\r\n <span style=\"flex: 1;\">\r\n <kendo-upload #uploadComponent\r\n *ngIf=\"!data.SelectFileOnly\"\r\n [id]=\"data.Value\"\r\n [autoUpload]=\"isAutoUpload\"\r\n [saveUrl]=\"uploadSaveUrl\"\r\n [removeUrl]=\"uploadRemoveUrl\"\r\n [restrictions]=\"restrictions\"\r\n [formControlName]=\"data.Value\"\r\n [multiple]=\"isMultiple\"\r\n [chunkable]=\"chunkSettings\"\r\n [showFileList]=\"showFileList\"\r\n (select)=\"selectEventHandler($event)\"\r\n (remove)=\"onRemove($event)\" \r\n (success)=\"onSuccess($event)\"\r\n (upload)=\"uploadEventHandler($event)\">\r\n </kendo-upload>\r\n\r\n <kendo-fileselect #uploadComponent\r\n *ngIf=\"data.SelectFileOnly\"\r\n [id]=\"data.Value\"\r\n (select)=\"selectEventHandler($event)\"\r\n (remove)=\"onRemove($event)\" \r\n (valueChange)=\"onChange($event)\"\r\n [restrictions]=\"restrictions\" >\r\n </kendo-fileselect>\r\n </span>\r\n </div>\r\n</ion-item>\r\n<br />\r\n<!--<div class=\"wrap\" *ngIf=\"data.EnableCompression\">\r\n <ion-label>Enable Compression: </ion-label>\r\n <ion-checkbox style=\"margin: -5px 0;\" color=\"primary\" (ionChange)=\"toogleEnableCompression($event)\"></ion-checkbox>\r\n</div>-->\r\n<ion-label *ngIf=\"imagePreviews.length\" position=\"stacked\">\r\n Image Preview:\r\n</ion-label>\r\n<div *ngIf=\"imagePreviews.length\" >\r\n <img *ngFor=\"let image of imagePreviews\"\r\n [src]=\"image.src\"\r\n alt=\"image preview\"\r\n height=\"100\"\r\n style=\"margin: 5px; border: 1px solid gray;\"/>\r\n</div>\r\n","/********** Angular **********/\r\nimport { Component, OnInit, Input } from '@angular/core';\r\nimport { FormGroup, Validators } from '@angular/forms';\r\n\r\n/********** Ionic **********/\r\n\r\n/********** Plugin **********/\r\nimport { of } from 'rxjs';\r\nimport { concatMap, map, switchMap, tap } from 'rxjs/operators';\r\n\r\n/********** Component & Service **********/\r\nimport { MainService } from '../services/main.service';\r\nimport {\r\n ZGroup, ZField, ZComponentProperties,\r\n ZComponent, ZComponentHelper, WebApiService, ResourceApiService, WorkflowService, FontAweSomeService\r\n} from 'mmhglobal-zcore';\r\n\r\n\r\n@Component({\r\n selector: 'app-zworkflowbuttons',\r\n templateUrl: './zworkflowbuttons.component.html',\r\n styleUrls: ['./zworkflowbuttons.component.scss']\r\n})\r\nexport class ZworkflowbuttonsComponent implements ZComponent, OnInit {\r\n @Input() data: ZField;\r\n @Input() group: ZGroup;\r\n @Input() form: FormGroup;\r\n\r\n componentProperties = new ZComponentProperties();\r\n\r\n // URL required\r\n // eslint-disable-next-line @typescript-eslint/naming-convention,no-underscore-dangle,id-blacklist,id-match\r\n e1wfs_wfcGetWorkflowButtonURL = this.resourceApiService.getURL(\"e1wfs_wfcGetWorkflowButtonURL\");\r\n // eslint-disable-next-line @typescript-eslint/naming-convention,no-underscore-dangle,id-blacklist,id-match\r\n e1wfs_wfc_getWorkflowInitialStatusURL = this.resourceApiService.getURL(\"e1wfs_wfc_getWorkflowInitialStatusURL\");\r\n // eslint-disable-next-line @typescript-eslint/naming-convention, no-underscore-dangle, id-blacklist, id-match\r\n e1wfs_wfc_getDocumentStatusURL = this.resourceApiService.getURL(\"e1wfs_wfc_getDocumentStatusURL\");\r\n\r\n //domainURL = \"https://localhost:44300/\";\r\n //e1wfs_wfcGetWorkflowButtonURL = this.domainURL + \"/api/WorkflowClients/GetWorkflowClientButtons/\";\r\n //e1wfs_wfc_getWorkflowInitialStatusURL = this.domainURL + \"/api/WorkflowClients/GetWorkflowInitialStatus/\";\r\n //e1wfs_wfc_getDocumentStatusURL = this.domainURL + \"/api/WorkflowClients/GetDocumentStatus/\";\r\n\r\n items: Array<any> = [];\r\n dataFormFields: any = {};\r\n FirstZbtn = false;\r\n isLoading = true;\r\n isLocalHostAPI: boolean = false;\r\n\r\n constructor(\r\n private webApiService: WebApiService,\r\n private resourceApiService: ResourceApiService,\r\n private workflowService: WorkflowService\r\n ) { }\r\n\r\n ngOnInit() {\r\n ZComponentHelper.setComponentProperties(this);\r\n ZComponentHelper.registerComponent(this);\r\n\r\n // Check project resourceURL is it localhost\r\n if (this.group.resourceURL) {\r\n this.isLocalHostAPI = this.group.resourceURL.toLowerCase().includes(\"localhost\") ? true : false;\r\n }\r\n\r\n this.loadButton();\r\n }\r\n\r\n private loadButton() {\r\n this.items = [];\r\n\r\n // Get WFS_DocumentId if any.\r\n let documentId = null;\r\n if (this.group.zModel) {\r\n documentId = this.group.zModel['WFS_DocumentId'];\r\n }\r\n\r\n // Set the documentId to the service\r\n this.workflowService.appendWFS_DocumentsInfo(this.data.WorkflowCode, documentId);\r\n\r\n // button count\r\n this.group.zButtonsCount++;\r\n if (this.group.zButtonsCount === 1) {\r\n this.FirstZbtn = true;\r\n }\r\n\r\n try {\r\n\r\n of(true)\r\n .pipe(\r\n concatMap(() => {\r\n // retrieve the workflow button\r\n return this.workflowService.getWorkflowButtonsField(\r\n this.data.WorkflowCode,\r\n this.e1wfs_wfcGetWorkflowButtonURL,\r\n String(this.isLocalHostAPI)\r\n )\r\n }),\r\n tap(resultData => {\r\n if (resultData) {\r\n resultData.forEach((button: any) => {\r\n const label = this.getButtonLabel(button);\r\n const attributes = JSON.parse(button.Attributes);\r\n const buttonLabel = attributes.Label || label;\r\n this.items.push({\r\n text: buttonLabel,\r\n icon: ZComponentHelper.getIcon(attributes.Icon),\r\n visible: attributes.Visible,\r\n fieldAttribute: button,\r\n iconName: attributes.Icon,\r\n click: (y) => {\r\n this.buttonClick(button);\r\n }\r\n });\r\n\r\n const mappedInfo = {\r\n 'role': [],\r\n 'status': [],\r\n 'parentStatus': []\r\n };\r\n //ZComponentHelper.collectWorkflowButton(this.group, this.data.WorkflowCode, buttonLabel, button, attributes, mappedInfo);\r\n });\r\n }\r\n else {\r\n console.warn('unable to get workflow button. data returned null.');\r\n }\r\n }),\r\n map(() => {\r\n if (!this.data.DisableSyncWorkflowStatus) {\r\n // Set default status\r\n // eslint-disable-next-line @typescript-eslint/dot-notation\r\n if (!this.group.zModel[\"WFS_StatusName\"]) {\r\n const params = {\r\n \"WorkflowMasterCode\": this.data.WorkflowCode\r\n };\r\n\r\n return this.webApiService.httpPost$(this.e1wfs_wfc_getWorkflowInitialStatusURL, params).pipe(\r\n map(res => {\r\n if (res.Data) {\r\n ZComponentHelper.presetModelValue(\"WFS_StatusId\", res.Data[\"Id\"], this.group);\r\n ZComponentHelper.presetModelValue(\"WFS_StatusName\", res.Data[\"Name\"], this.group);\r\n ZComponentHelper.presetModelValue(\"WFS_StatusCode\", res.Data[\"Code\"], this.group);\r\n\r\n this.workflowService.setCurrentDocumentStatus(res.Data);\r\n }\r\n })\r\n )\r\n } else {\r\n // When loading also to get current Status Information if any.\r\n const docInfoParam = {\r\n \"WorkflowMasterCode\": this.data.WorkflowCode,\r\n \"DocumentId\": documentId,\r\n };\r\n\r\n this.webApiService.httpPost$(this.e1wfs_wfc_getDocumentStatusURL, docInfoParam).pipe(\r\n map(res => {\r\n this.workflowService.setCurrentDocumentStatus(res);\r\n if (res.Data) {\r\n this.workflowService.setCurrentDocumentStatus(res.Data);\r\n }\r\n })\r\n )\r\n }\r\n }\r\n })\r\n\r\n ).subscribe();\r\n\r\n } catch (error) {\r\n console.error(\"error: \", error);\r\n }\r\n }\r\n\r\n buttonClick(button: any) {\r\n // Type 1 == functional;\r\n // Type 2 == GOTO;\r\n const attributes = JSON.parse(button.Attributes);\r\n switch (button.TypeCode.toUpperCase()) {\r\n case \"FUNCTION\":\r\n this.group.isTriggered = true;\r\n const me = this.group;\r\n if (!attributes['DisableTriggerTimer']) {\r\n setTimeout(function () {\r\n me['isTriggered'] = false;\r\n }, 500);\r\n }\r\n console.log(\"Functional Button: \", button.Name);\r\n this.workflowService.functionalButton_OnClick(attributes, this.group);\r\n break;\r\n case \"GOTO\":\r\n this.group.isTriggered = true;\r\n console.log(\"GOTO Button: \", button.Name);\r\n this.workflowService.gotoButton_Onclick(button, this.data, attributes, this.group, this.isLocalHostAPI).subscribe(res => {\r\n this.loadButton();\r\n this.group.isTriggered = false;\r\n if (res) {\r\n this.workflowService.triggerSendEmail(this.group).subscribe();\r\n }\r\n });\r\n break;\r\n default:\r\n console.log(\"Invalid Button Type. \", button.Name);\r\n break;\r\n }\r\n }\r\n\r\n\r\n\r\n /******************** Button Config ********************/\r\n private getButtonLabel(button: any) {\r\n let labelExpr = button.Name.match(/^{{.*}}$/gi);\r\n if (labelExpr) {\r\n labelExpr = labelExpr[0].slice(2, -2);\r\n const label = ZComponentHelper.getGroupValue(labelExpr, this.group);\r\n return label;\r\n } else {\r\n return button.Name;\r\n }\r\n }\r\n\r\n public setEnable = (status: boolean) => {\r\n this.componentProperties.isReadOnly = !status;\r\n }\r\n\r\n public setVisible = (status: boolean) => {\r\n this.componentProperties.isVisible = status;\r\n this.data.Visible = status;\r\n }\r\n\r\n public setRequire = (status: boolean) => {\r\n this.componentProperties.isRequired = status;\r\n ZComponentHelper.changeValidator(status, this.group, this.data.Value, this.componentProperties, Validators.required);\r\n }\r\n\r\n\r\n/******************** Common ********************/\r\n isMobileScreen() {\r\n const v = ZComponentHelper.isMobileScreen();\r\n return v;\r\n }\r\n\r\n isBtnVisible(fieldExpr) {\r\n if (fieldExpr !== false && !fieldExpr) {\r\n return true;\r\n }\r\n const v = ZComponentHelper.getGroupEvalValue.call(this, fieldExpr);\r\n return v;\r\n }\r\n\r\n getFontAwesome(iconName: string) {\r\n if (iconName == \"\") {\r\n iconName = \"help\";\r\n }\r\n return ZComponentHelper.getFontAwesome(iconName);\r\n }\r\n}\r\n","<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","/********** Angular **********/\r\nimport { NgModule, CUSTOM_ELEMENTS_SCHEMA, ModuleWithProviders } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RouterModule } from '@angular/router';\r\n// import { BrowserAnimationsModule } from \"@angular/platform-browser/animations\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\n\r\n/********** Ionic **********/\r\nimport { IonicModule } from '@ionic/angular';\r\nimport { IonicSelectableModule } from 'ionic-selectable';\r\n\r\n/********** Plugin **********/\r\nimport { AceEditorModule } from 'ng2-ace-editor';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport { QueryBuilderModule } from \"angular2-query-builder\";\r\n\r\n/********** Kendo **********/\r\nimport { ArcGaugeModule } from '@progress/kendo-angular-gauges';\r\nimport { ButtonsModule } from '@progress/kendo-angular-buttons';\r\nimport { ChartsModule } from '@progress/kendo-angular-charts';\r\nimport { CalendarModule, DateInputsModule } from '@progress/kendo-angular-dateinputs';\r\nimport { DropDownsModule } from '@progress/kendo-angular-dropdowns';\r\nimport { EditorModule } from '@progress/kendo-angular-editor';\r\nimport { ExcelModule, GridModule } from '@progress/kendo-angular-grid';\r\nimport { IndicatorsModule } from \"@progress/kendo-angular-indicators\";\r\nimport { IntlModule } from '@progress/kendo-angular-intl';\r\nimport { InputsModule, SwitchModule, TextBoxModule } from '@progress/kendo-angular-inputs';\r\nimport { LabelModule } from '@progress/kendo-angular-label';\r\nimport { LayoutModule, PanelBarModule, TabStripModule } from '@progress/kendo-angular-layout';\r\nimport { PopupModule } from '@progress/kendo-angular-popup';\r\nimport { ProgressBarModule } from \"@progress/kendo-angular-progressbar\";\r\nimport { TelerikReportingModule } from '@progress/telerik-angular-report-viewer';\r\nimport { SchedulerModule } from '@progress/kendo-angular-scheduler';\r\nimport { TreeListModule } from '@progress/kendo-angular-treelist';\r\nimport { TreeViewModule } from '@progress/kendo-angular-treeview';\r\nimport { TooltipModule } from '@progress/kendo-angular-tooltip';\r\nimport { UploadModule, UploadsModule } from '@progress/kendo-angular-upload';\r\n\r\n/********** Service & Directive **********/\r\nimport { ZCoreModule, ZGroup } from 'mmhglobal-zcore';\r\nimport { MmhglobalMiddlewareModule } from 'mmhglobal-middleware';\r\nimport { MmhglobalZmodalModule, ModalService } from 'mmhglobal-zmodal';\r\nimport { MainService } from './services/main.service';\r\nimport { ScrollbarThemeDirective } from './directives/scrollbar.theme.directive';\r\nimport { FieldElementDirective } from './directives/fieldelement.directive';\r\nimport { ZGridBindingDirective } from './zgrid/zgrid.binding.directive';\r\nimport { ZGridPopupAnchorDirective } from './zgrid/zgrid.popup.anchor-target.directive';\r\nimport { OpenOnFocusDirective } from './zselectmultiple/zselectmultiple.directive';\r\n\r\n/********** Addon **********/\r\nimport { DateParserFilter } from './zdatetime/dateParser.pipe';\r\nimport { EditorFilter } from './zcodeeditor/zcodeeditor.pipe';\r\nimport { DivzLayout } from './zdiv/zdiv.pipe';\r\nimport { ExportOptions } from './zreport/zreport.config';\r\nimport { TabFilter } from './ztab/ztab.pipe';\r\nimport { DateRangeFilterCellComponent } from './zgrid/date-range-cell-filter.component';\r\nimport { ZSchedulerToolBarComponent } from './zscheduler/zscheduler.toolbar.component';\r\n\r\n/********** zComponent **********/\r\nimport { UipageComponent } from './uipage/uipage.component';\r\nimport { UiheaderComponent } from './uiheader/uiheader.component';\r\nimport { UicontentComponent } from './uicontent/uicontent.component';\r\n\r\nimport { UimenucontentComponent } from './uimenucontent/uimenucontent.component';\r\nimport { UimenubuttonComponent } from './uimenubutton/uimenubutton.component';\r\nimport { UiappmenucontentComponent } from './uiappmenucontent/uiappmenucontent.component';\r\nimport { UiactionbuttonComponent } from './uiactionbutton/uiactionbutton.component';\r\nimport { UivalidationmessageComponent } from './uivalidationmessage/uivalidationmessage.component';\r\n\r\nimport { ZBulletComponent } from \"./zbullet/zbullet.component\";\r\nimport { ZbuttonsComponent } from \"./zbuttons/zbuttons.component\";\r\nimport { ZcardComponent } from \"./zcard/zcard.component\";\r\nimport { ZchartComponent } from './zchart/zchart.component';\r\nimport { ZcheckboxComponent } from './zcheckbox/zcheckbox.component';\r\nimport { ZChipComponent } from \"./zchip/zchip.component\";\r\nimport { ZcodeeditorComponent } from './zcodeeditor/zcodeeditor.component';\r\nimport { ZdaterangeComponent } from './zdaterange/zdaterange.component';\r\nimport { ZdatetimeComponent } from './zdatetime/zdatetime.component';\r\nimport { ZdivComponent } from './zdiv/zdiv.component';\r\nimport { ZformComponent } from \"./zform/zform.component\";\r\nimport { ZformcontrolComponent } from \"./zformcontrol/zformcontrol.component\";\r\nimport { ZgaugeComponent } from './zgauge/zgauge.component';\r\nimport { ZgridComponent } from \"./zgrid/zgrid.component\";\r\nimport { ZimgComponent } from './zimg/zimg.component';\r\nimport { ZkcardComponent } from './zkcard/zkcard.component';\r\nimport { ZlabelComponent } from './zlabel/zlabel.component';\r\nimport { ZmfbComponent } from './zmfb/zmfb.component';\r\nimport { ZmodalComponent } from \"./zmodal/zmodal.component\";\r\nimport { ZmodalMobileComponent } from \"./zmodal/zmodal-mobile.component\";\r\nimport { ZnumericComponent } from './znumeric/znumeric.component';\r\nimport { ZpostselectinputComponent } from './zpostselectinput/zpostselectinput.component'; \r\nimport { ZquerybuilderComponent } from './zquerybuilder/zquerybuilder.component';\r\nimport { ZreportComponent } from './zreport/zreport.component';\r\nimport { ZschedulerComponent } from './zscheduler/zscheduler.component';\r\nimport { ZselectmultipleComponent } from \"./zselectmultiple/zselectmultiple.component\";\r\nimport { ZtabComponent } from \"./ztab/ztab.component\";\r\nimport { ZtextComponent } from \"./ztext/ztext.component\";\r\nimport { ZtextareaComponent } from './ztextarea/ztextarea.component';\r\nimport { ZtexteditorComponent } from './ztexteditor/ztexteditor.component';\r\nimport { ZtreeComponent } from './ztree/ztree.component';\r\nimport { ZtreelistComponent } from './ztreelist/ztreelist.component';\r\nimport { ZtrendcardComponent } from './ztrendcard/ztrendcard.component';\r\nimport { ZunknownComponent } from \"./zunknown/zunknown.component\";\r\nimport { ZudfComponent } from './zudf/zudf.component';\r\nimport { ZuploadComponent } from './zupload/zupload.component';\r\nimport { ZworkflowbuttonsComponent } from \"./zworkflowbuttons/zworkflowbuttons.component\"; \r\n\r\n@NgModule({\r\n declarations: [\r\n ScrollbarThemeDirective,\r\n FieldElementDirective,\r\n ZGridBindingDirective,\r\n ZGridPopupAnchorDirective,\r\n OpenOnFocusDirective,\r\n DateParserFilter,\r\n EditorFilter,\r\n DivzLayout,\r\n ExportOptions,\r\n TabFilter,\r\n DateRangeFilterCellComponent,\r\n ZSchedulerToolBarComponent,\r\n UiheaderComponent,\r\n UicontentComponent,\r\n UipageComponent,\r\n UiactionbuttonComponent,\r\n UimenucontentComponent,\r\n UimenubuttonComponent,\r\n UiappmenucontentComponent,\r\n UivalidationmessageComponent,\r\n ZBulletComponent,\r\n ZbuttonsComponent,\r\n ZcardComponent,\r\n ZchartComponent,\r\n ZcheckboxComponent,\r\n ZChipComponent,\r\n ZcodeeditorComponent,\r\n ZdaterangeComponent,\r\n ZdatetimeComponent,\r\n ZdivComponent,\r\n ZformComponent,\r\n ZformcontrolComponent,\r\n ZgaugeComponent,\r\n ZgridComponent,\r\n ZimgComponent,\r\n ZkcardComponent,\r\n ZlabelComponent,\r\n ZmfbComponent,\r\n ZmodalComponent,\r\n ZmodalMobileComponent,\r\n ZnumericComponent,\r\n ZpostselectinputComponent,\r\n ZquerybuilderComponent,\r\n ZreportComponent,\r\n ZschedulerComponent,\r\n ZselectmultipleComponent,\r\n ZtabComponent,\r\n ZtextComponent,\r\n ZtextareaComponent,\r\n ZtexteditorComponent,\r\n ZtreeComponent,\r\n ZtreelistComponent,\r\n ZtrendcardComponent,\r\n ZunknownComponent,\r\n ZudfComponent,\r\n ZuploadComponent,\r\n ZworkflowbuttonsComponent\r\n ],\r\n imports: [\r\n IonicModule,\r\n IonicSelectableModule,\r\n CommonModule,\r\n RouterModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n AceEditorModule,\r\n FontAwesomeModule,\r\n QueryBuilderModule,\r\n ArcGaugeModule,\r\n ButtonsModule,\r\n ChartsModule,\r\n CalendarModule,\r\n DateInputsModule,\r\n DropDownsModule,\r\n EditorModule,\r\n GridModule,\r\n ExcelModule,\r\n IndicatorsModule,\r\n IntlModule,\r\n InputsModule,\r\n SwitchModule,\r\n TextBoxModule,\r\n LabelModule,\r\n LayoutModule,\r\n PanelBarModule,\r\n TabStripModule,\r\n PopupModule,\r\n ProgressBarModule,\r\n TelerikReportingModule,\r\n SchedulerModule,\r\n TreeListModule,\r\n TreeViewModule,\r\n TooltipModule,\r\n UploadModule,\r\n UploadsModule,\r\n ZCoreModule,\r\n MmhglobalMiddlewareModule,\r\n MmhglobalZmodalModule\r\n ],\r\n exports: [\r\n ScrollbarThemeDirective,\r\n FieldElementDirective,\r\n ZGridBindingDirective,\r\n ZGridPopupAnchorDirective,\r\n OpenOnFocusDirective,\r\n DateParserFilter,\r\n EditorFilter,\r\n DivzLayout,\r\n ExportOptions,\r\n TabFilter,\r\n DateRangeFilterCellComponent,\r\n ZSchedulerToolBarComponent,\r\n UiheaderComponent,\r\n UicontentComponent,\r\n UipageComponent,\r\n UimenucontentComponent,\r\n UimenubuttonComponent,\r\n UiappmenucontentComponent,\r\n UiactionbuttonComponent,\r\n UivalidationmessageComponent,\r\n ZBulletComponent,\r\n ZbuttonsComponent,\r\n ZcardComponent,\r\n ZchartComponent,\r\n ZcheckboxComponent,\r\n ZChipComponent,\r\n ZcodeeditorComponent,\r\n ZdaterangeComponent,\r\n ZdatetimeComponent,\r\n ZdivComponent,\r\n ZformComponent,\r\n ZformcontrolComponent,\r\n ZgaugeComponent,\r\n ZgridComponent,\r\n ZimgComponent,\r\n ZkcardComponent,\r\n ZlabelComponent,\r\n ZmfbComponent,\r\n ZmodalComponent,\r\n ZmodalMobileComponent,\r\n ZnumericComponent,\r\n ZpostselectinputComponent,\r\n ZquerybuilderComponent,\r\n ZreportComponent,\r\n ZschedulerComponent,\r\n ZselectmultipleComponent,\r\n ZtabComponent,\r\n ZtextComponent,\r\n ZtextareaComponent,\r\n ZtexteditorComponent,\r\n ZtreeComponent,\r\n ZtreelistComponent,\r\n ZtrendcardComponent,\r\n ZunknownComponent,\r\n ZudfComponent,\r\n ZuploadComponent,\r\n ZworkflowbuttonsComponent\r\n ],\r\n providers: [\r\n ModalService\r\n ],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\n\r\nexport class MmhglobalDynamicformModule { }\r\n","/*\r\n * Public API Surface of dynamic-form\r\n */\r\n\r\n/********** Service **********/\r\nexport * from './lib/services/main.service';\r\n// export * from './lib/zmodal/modal.service';\r\n// export * from './lib/services/zcomponent.service';\r\n// export * from './lib/services/zcomponent.debug.service';\r\n\r\n\r\n/********** Directive **********/\r\nexport * from './lib/directives/scrollbar.theme.directive';\r\nexport * from './lib/directives/fieldelement.directive';\r\nexport * from './lib/zgrid/zgrid.binding.directive';\r\nexport * from './lib/zgrid/zgrid.popup.anchor-target.directive'\r\nexport * from './lib/zselectmultiple/zselectmultiple.directive';\r\n\r\n\r\n/********** Module **********/\r\nexport * from './lib/mmhglobal-dynamicform.module'; \r\n\r\n\r\n/********** Addon **********/\r\nexport * from './lib/zdatetime/dateParser.pipe';\r\nexport * from './lib/zcodeeditor/zcodeeditor.pipe';\r\nexport * from './lib/zdiv/zdiv.pipe';\r\nexport * from './lib/zreport/zreport.config';\r\nexport * from './lib/ztab/ztab.pipe';\r\n// export * from './lib/zmodal/zmodal.module';\r\nexport * from './lib/zgrid/date-range-cell-filter.component';\r\nexport * from './lib/zscheduler/zscheduler.toolbar.component';\r\n\r\n\r\n/********** zComponent **********/\r\nexport * from './lib/uicontent/uicontent.component';\r\nexport * from './lib/uiheader/uiheader.component';\r\nexport * from './lib/uipage/uipage.component';\r\nexport * from './lib/uimenucontent/uimenucontent.component';\r\nexport * from './lib/uimenubutton/uimenubutton.component';\r\nexport * from './lib/uiappmenucontent/uiappmenucontent.component';\r\nexport * from './lib/uiactionbutton/uiactionbutton.component';\r\nexport * from './lib/uivalidationmessage/uivalidationmessage.component';\r\nexport * from './lib/zbullet/zbullet.component';\r\nexport * from './lib/zbuttons/zbuttons.component';\r\nexport * from './lib/zcard/zcard.component';\r\nexport * from './lib/zchart/zchart.component';\r\nexport * from './lib/zcheckbox/zcheckbox.component';\r\nexport * from './lib/zchip/zchip.component';\r\nexport * from './lib/zcodeeditor/zcodeeditor.component';\r\nexport * from './lib/zdaterange/zdaterange.component';\r\nexport * from './lib/zdatetime/zdatetime.component';\r\nexport * from './lib/zdiv/zdiv.component';\r\nexport * from './lib/zform/zform.component';\r\nexport * from './lib/zformcontrol/zformcontrol.component';\r\nexport * from './lib/zgauge/zgauge.component';\r\nexport * from './lib/zgrid/zgrid.component';\r\nexport * from './lib/zimg/zimg.component';\r\nexport * from './lib/zkcard/zkcard.component';\r\nexport * from './lib/zlabel/zlabel.component';\r\nexport * from './lib/zmfb/zmfb.component';\r\nexport * from './lib/zmodal/zmodal.component';\r\nexport * from './lib/zmodal/zmodal-mobile.component';\r\nexport * from './lib/znumeric/znumeric.component';\r\nexport * from './lib/zpostselectinput/zpostselectinput.component';\r\nexport * from './lib/zquerybuilder/zquerybuilder.component';\r\nexport * from './lib/zreport/zreport.component';\r\nexport * from './lib/zscheduler/zscheduler.component';\r\nexport * from './lib/zselectmultiple/zselectmultiple.component';\r\nexport * from './lib/ztab/ztab.component';\r\nexport * from './lib/ztext/ztext.component';\r\nexport * from './lib/ztextarea/ztextarea.component';\r\nexport * from './lib/ztexteditor/ztexteditor.component';\r\nexport * from './lib/ztree/ztree.component';\r\nexport * from './lib/ztreelist/ztreelist.component';\r\nexport * from './lib/ztrendcard/ztrendcard.component';\r\nexport * from './lib/zudf/zudf.component';\r\nexport * from './lib/zunknown/zunknown.component';\r\nexport * from './lib/zupload/zupload.component';\r\nexport * from './lib/zworkflowbuttons/zworkflowbuttons.component';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i4","i1","i2","i3","i1.ZComponentService","i2.FieldElementDirective","i2.ZComponentDebugService","i4.ZformcontrolComponent","i5","i6","i5.UiactionbuttonComponent","i6.ZformComponent","i7","i8.ScrollbarThemeDirective","i4.UiactionbuttonComponent","i5.ZformComponent","i7.ScrollbarThemeDirective","i5.ZComponentDebugService","i1.MainService","i4.UimenubuttonComponent","i6.UiactionbuttonComponent","i3.ZformComponent","i5.ZformcontrolComponent","i5.UivalidationmessageComponent","i4.EditorFilter","i3.UivalidationmessageComponent","i6.DateParserFilter","i2.ZformcontrolComponent","i4.DivzLayout","i6.UivalidationmessageComponent","i8","i9","i10","i11.OpenOnFocusDirective","i12","i2.UivalidationmessageComponent","i4.MainService","i6.DateRangeFilterCellComponent","i10.ZselectmultipleComponent","i11.ZtextareaComponent","i12.ZdatetimeComponent","i13","i14","i15","i16.ZGridBindingDirective","i17","i4.ZSchedulerToolBarComponent","i7.TabFilter","i5.DateRangeFilterCellComponent","i6.ZcheckboxComponent","i7.ZselectmultipleComponent","i8.ZtextareaComponent","i9.ZdatetimeComponent","i11","i6.DivzLayout"],"mappings":"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"}